@vuetify/nightly 3.0.0-beta.2 → 3.0.0-beta.5

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 (764) hide show
  1. package/CHANGELOG.md +13 -45
  2. package/dist/_component-variables.sass +61 -0
  3. package/dist/json/attributes.json +398 -370
  4. package/dist/json/importMap.json +207 -219
  5. package/dist/json/tags.json +99 -121
  6. package/dist/json/web-types.json +1246 -1055
  7. package/dist/vuetify.css +994 -858
  8. package/dist/vuetify.d.ts +8241 -5547
  9. package/dist/vuetify.esm.js +8872 -8039
  10. package/dist/vuetify.esm.js.map +1 -1
  11. package/dist/vuetify.js +8871 -8038
  12. package/dist/vuetify.js.map +1 -1
  13. package/dist/vuetify.min.css +2 -2
  14. package/dist/vuetify.min.js +1142 -1077
  15. package/dist/vuetify.min.js.map +1 -1
  16. package/lib/blueprints/index.mjs +4 -0
  17. package/lib/blueprints/index.mjs.map +1 -0
  18. package/lib/blueprints/md1.mjs +63 -0
  19. package/lib/blueprints/md1.mjs.map +1 -0
  20. package/lib/blueprints/md2.mjs +60 -0
  21. package/lib/blueprints/md2.mjs.map +1 -0
  22. package/lib/blueprints/md3.mjs +74 -0
  23. package/lib/blueprints/md3.mjs.map +1 -0
  24. package/lib/components/VAlert/VAlert.css +5 -5
  25. package/lib/components/VAlert/VAlert.mjs +19 -8
  26. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  27. package/lib/components/VAlert/VAlert.sass +0 -2
  28. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  29. package/lib/components/VAlert/index.mjs.map +1 -1
  30. package/lib/components/VApp/VApp.css +2 -5
  31. package/lib/components/VApp/VApp.mjs +3 -4
  32. package/lib/components/VApp/VApp.mjs.map +1 -1
  33. package/lib/components/VApp/VApp.sass +11 -12
  34. package/lib/components/VApp/index.mjs.map +1 -1
  35. package/lib/components/VApp/variables.scss +6 -0
  36. package/lib/components/VAppBar/VAppBar.mjs +8 -7
  37. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  38. package/lib/components/VAppBar/VAppBar.sass +0 -1
  39. package/lib/components/VAppBar/VAppBarNavIcon.mjs +11 -14
  40. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  41. package/lib/components/VAppBar/VAppBarTitle.mjs +7 -4
  42. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  43. package/lib/components/VAppBar/_variables.scss +2 -0
  44. package/lib/components/VAppBar/index.mjs.map +1 -1
  45. package/lib/components/VAutocomplete/VAutocomplete.mjs +76 -53
  46. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  47. package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
  48. package/lib/components/VAutocomplete/index.mjs.map +1 -1
  49. package/lib/components/VAvatar/VAvatar.css +1 -1
  50. package/lib/components/VAvatar/VAvatar.mjs +3 -2
  51. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  52. package/lib/components/VAvatar/VAvatar.sass +1 -2
  53. package/lib/components/VAvatar/_mixins.scss +0 -1
  54. package/lib/components/VAvatar/index.mjs.map +1 -1
  55. package/lib/components/VBadge/VBadge.css +3 -6
  56. package/lib/components/VBadge/VBadge.mjs +21 -48
  57. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  58. package/lib/components/VBadge/VBadge.sass +2 -5
  59. package/lib/components/VBadge/_variables.scss +3 -4
  60. package/lib/components/VBadge/index.mjs.map +1 -1
  61. package/lib/components/VBanner/VBanner.css +7 -7
  62. package/lib/components/VBanner/VBanner.mjs +34 -22
  63. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  64. package/lib/components/VBanner/VBanner.sass +6 -8
  65. package/lib/components/VBanner/VBannerActions.mjs +1 -1
  66. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  67. package/lib/components/VBanner/VBannerText.mjs.map +1 -1
  68. package/lib/components/VBanner/index.mjs +0 -2
  69. package/lib/components/VBanner/index.mjs.map +1 -1
  70. package/lib/components/VBottomNavigation/VBottomNavigation.css +5 -12
  71. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +5 -4
  72. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  73. package/lib/components/VBottomNavigation/VBottomNavigation.sass +6 -14
  74. package/lib/components/VBottomNavigation/_variables.scss +7 -8
  75. package/lib/components/VBottomNavigation/index.mjs.map +1 -1
  76. package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
  77. package/lib/components/VBottomSheet/index.mjs.map +1 -1
  78. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +31 -15
  79. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  80. package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +0 -1
  81. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  82. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
  83. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  84. package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
  85. package/lib/components/VBtn/VBtn.css +83 -24
  86. package/lib/components/VBtn/VBtn.mjs +80 -31
  87. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  88. package/lib/components/VBtn/VBtn.sass +57 -8
  89. package/lib/components/VBtn/_variables.scss +7 -4
  90. package/lib/components/VBtn/index.mjs.map +1 -1
  91. package/lib/components/VBtnGroup/VBtnGroup.css +1 -1
  92. package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
  93. package/lib/components/VBtnGroup/VBtnGroup.sass +0 -1
  94. package/lib/components/VBtnGroup/_variables.scss +2 -0
  95. package/lib/components/VBtnGroup/index.mjs.map +1 -1
  96. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  97. package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
  98. package/lib/components/VBtnToggle/_variables.scss +1 -0
  99. package/lib/components/VBtnToggle/index.mjs.map +1 -1
  100. package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
  101. package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
  102. package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
  103. package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
  104. package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
  105. package/lib/components/VCalendar/index.mjs.map +1 -1
  106. package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
  107. package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
  108. package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
  109. package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
  110. package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
  111. package/lib/components/VCalendar/modes/column.mjs.map +1 -1
  112. package/lib/components/VCalendar/modes/common.mjs.map +1 -1
  113. package/lib/components/VCalendar/modes/index.mjs.map +1 -1
  114. package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
  115. package/lib/components/VCalendar/util/events.mjs.map +1 -1
  116. package/lib/components/VCalendar/util/parser.mjs.map +1 -1
  117. package/lib/components/VCalendar/util/props.mjs.map +1 -1
  118. package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
  119. package/lib/components/VCard/VCard.css +91 -73
  120. package/lib/components/VCard/VCard.mjs +61 -70
  121. package/lib/components/VCard/VCard.mjs.map +1 -1
  122. package/lib/components/VCard/VCard.sass +71 -59
  123. package/lib/components/VCard/VCardActions.mjs +1 -1
  124. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  125. package/lib/components/VCard/VCardItem.mjs +88 -0
  126. package/lib/components/VCard/VCardItem.mjs.map +1 -0
  127. package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
  128. package/lib/components/VCard/VCardText.mjs.map +1 -1
  129. package/lib/components/VCard/VCardTitle.mjs.map +1 -1
  130. package/lib/components/VCard/_variables.scss +39 -24
  131. package/lib/components/VCard/index.mjs +1 -5
  132. package/lib/components/VCard/index.mjs.map +1 -1
  133. package/lib/components/VCarousel/VCarousel.mjs +5 -3
  134. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  135. package/lib/components/VCarousel/VCarousel.sass +0 -1
  136. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  137. package/lib/components/VCarousel/_variables.scss +1 -0
  138. package/lib/components/VCarousel/index.mjs.map +1 -1
  139. package/lib/components/VCheckbox/VCheckbox.mjs +13 -45
  140. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  141. package/lib/components/VCheckbox/VCheckbox.sass +0 -1
  142. package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
  143. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
  144. package/lib/components/VCheckbox/index.mjs +1 -0
  145. package/lib/components/VCheckbox/index.mjs.map +1 -1
  146. package/lib/components/VChip/VChip.css +142 -65
  147. package/lib/components/VChip/VChip.mjs +80 -41
  148. package/lib/components/VChip/VChip.mjs.map +1 -1
  149. package/lib/components/VChip/VChip.sass +6 -1
  150. package/lib/components/VChip/_mixins.scss +26 -6
  151. package/lib/components/VChip/_variables.scss +1 -5
  152. package/lib/components/VChip/index.mjs.map +1 -1
  153. package/lib/components/VChipGroup/VChipGroup.mjs +5 -4
  154. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  155. package/lib/components/VChipGroup/VChipGroup.sass +1 -1
  156. package/lib/components/VChipGroup/_variables.scss +1 -1
  157. package/lib/components/VChipGroup/index.mjs.map +1 -1
  158. package/lib/components/VCode/VCode.sass +1 -2
  159. package/lib/components/VCode/_variables.scss +1 -1
  160. package/lib/components/VCode/index.mjs.map +1 -1
  161. package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
  162. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  163. package/lib/components/VColorPicker/VColorPicker.sass +0 -1
  164. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
  165. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  166. package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
  167. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
  168. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  169. package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
  170. package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
  171. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  172. package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
  173. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
  174. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  175. package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
  176. package/lib/components/VColorPicker/_variables.scss +17 -10
  177. package/lib/components/VColorPicker/index.mjs.map +1 -1
  178. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  179. package/lib/components/VCombobox/VCombobox.mjs +82 -66
  180. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  181. package/lib/components/VCombobox/VCombobox.sass +0 -2
  182. package/lib/components/VCombobox/index.mjs.map +1 -1
  183. package/lib/components/VCounter/VCounter.mjs +16 -16
  184. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  185. package/lib/components/VCounter/VCounter.sass +1 -2
  186. package/lib/components/VCounter/_variables.scss +2 -1
  187. package/lib/components/VCounter/index.mjs.map +1 -1
  188. package/lib/components/VData/VData.mjs.map +1 -1
  189. package/lib/components/VData/index.mjs.map +1 -1
  190. package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
  191. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  192. package/lib/components/VDataIterator/index.mjs.map +1 -1
  193. package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
  194. package/lib/components/VDataTable/Row.mjs.map +1 -1
  195. package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
  196. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  197. package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
  198. package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
  199. package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
  200. package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
  201. package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
  202. package/lib/components/VDataTable/index.mjs.map +1 -1
  203. package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
  204. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  205. package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
  206. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  207. package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
  208. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
  209. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  210. package/lib/components/VDatePicker/index.mjs.map +1 -1
  211. package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
  212. package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
  213. package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
  214. package/lib/components/VDatePicker/util/index.mjs.map +1 -1
  215. package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
  216. package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
  217. package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
  218. package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
  219. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  220. package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
  221. package/lib/components/VDialog/VDialog.css +2 -6
  222. package/lib/components/VDialog/VDialog.mjs +29 -25
  223. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  224. package/lib/components/VDialog/VDialog.sass +1 -6
  225. package/lib/components/VDialog/_variables.scss +0 -2
  226. package/lib/components/VDialog/index.mjs.map +1 -1
  227. package/lib/components/VDivider/VDivider.mjs +16 -17
  228. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  229. package/lib/components/VDivider/VDivider.sass +0 -1
  230. package/lib/components/VDivider/_variables.scss +3 -1
  231. package/lib/components/VDivider/index.mjs.map +1 -1
  232. package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -7
  233. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -4
  234. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  235. package/lib/components/VExpansionPanel/VExpansionPanel.sass +0 -1
  236. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  237. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -6
  238. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  239. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  240. package/lib/components/VExpansionPanel/_variables.scss +15 -10
  241. package/lib/components/VExpansionPanel/index.mjs.map +1 -1
  242. package/lib/components/VField/VField.css +9 -9
  243. package/lib/components/VField/VField.mjs +24 -15
  244. package/lib/components/VField/VField.mjs.map +1 -1
  245. package/lib/components/VField/VField.sass +6 -8
  246. package/lib/components/VField/VFieldLabel.mjs +8 -9
  247. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  248. package/lib/components/VField/_variables.scss +3 -3
  249. package/lib/components/VField/index.mjs.map +1 -1
  250. package/lib/components/VFileInput/VFileInput.mjs +3 -2
  251. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  252. package/lib/components/VFileInput/VFileInput.sass +0 -1
  253. package/lib/components/VFileInput/index.mjs.map +1 -1
  254. package/lib/components/VFooter/VFooter.mjs +5 -4
  255. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  256. package/lib/components/VFooter/VFooter.sass +0 -1
  257. package/lib/components/VFooter/_variables.scss +2 -1
  258. package/lib/components/VFooter/index.mjs.map +1 -1
  259. package/lib/components/VForm/VForm.mjs +3 -3
  260. package/lib/components/VForm/VForm.mjs.map +1 -1
  261. package/lib/components/VForm/index.mjs.map +1 -1
  262. package/lib/components/VGrid/VCol.mjs.map +1 -1
  263. package/lib/components/VGrid/VContainer.mjs +4 -3
  264. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  265. package/lib/components/VGrid/VRow.mjs.map +1 -1
  266. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  267. package/lib/components/VGrid/index.mjs.map +1 -1
  268. package/lib/components/VHover/VHover.mjs.map +1 -1
  269. package/lib/components/VHover/index.mjs.map +1 -1
  270. package/lib/components/VIcon/VIcon.css +0 -8
  271. package/lib/components/VIcon/VIcon.mjs +21 -24
  272. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  273. package/lib/components/VIcon/VIcon.sass +0 -9
  274. package/lib/components/VIcon/_variables.scss +2 -5
  275. package/lib/components/VIcon/index.mjs.map +1 -1
  276. package/lib/components/VImg/VImg.mjs.map +1 -1
  277. package/lib/components/VImg/VImg.sass +0 -1
  278. package/lib/components/VImg/index.mjs.map +1 -1
  279. package/lib/components/VInput/VInput.mjs +13 -8
  280. package/lib/components/VInput/VInput.mjs.map +1 -1
  281. package/lib/components/VInput/VInput.sass +0 -1
  282. package/lib/components/VInput/index.mjs.map +1 -1
  283. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  284. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  285. package/lib/components/VItemGroup/VItemGroup.sass +0 -1
  286. package/lib/components/VItemGroup/index.mjs.map +1 -1
  287. package/lib/components/VKbd/VKbd.sass +0 -1
  288. package/lib/components/VKbd/_variables.scss +1 -1
  289. package/lib/components/VKbd/index.mjs.map +1 -1
  290. package/lib/components/VLabel/VLabel.mjs +4 -3
  291. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  292. package/lib/components/VLabel/VLabel.sass +0 -1
  293. package/lib/components/VLabel/_variables.scss +1 -0
  294. package/lib/components/VLabel/index.mjs.map +1 -1
  295. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  296. package/lib/components/VLayout/VLayoutItem.mjs +1 -1
  297. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  298. package/lib/components/VLayout/index.mjs.map +1 -1
  299. package/lib/components/VLazy/VLazy.mjs +5 -3
  300. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  301. package/lib/components/VLazy/index.mjs.map +1 -1
  302. package/lib/components/VList/VList.css +0 -6
  303. package/lib/components/VList/VList.mjs +62 -48
  304. package/lib/components/VList/VList.mjs.map +1 -1
  305. package/lib/components/VList/VList.sass +0 -2
  306. package/lib/components/VList/VListChildren.mjs +43 -5
  307. package/lib/components/VList/VListChildren.mjs.map +1 -1
  308. package/lib/components/VList/VListGroup.mjs +18 -7
  309. package/lib/components/VList/VListGroup.mjs.map +1 -1
  310. package/lib/components/VList/VListImg.mjs.map +1 -1
  311. package/lib/components/VList/VListItem.css +14 -13
  312. package/lib/components/VList/VListItem.mjs +25 -19
  313. package/lib/components/VList/VListItem.mjs.map +1 -1
  314. package/lib/components/VList/VListItem.sass +1 -2
  315. package/lib/components/VList/VListItemAction.mjs +8 -9
  316. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  317. package/lib/components/VList/VListItemAvatar.mjs +4 -3
  318. package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
  319. package/lib/components/VList/VListItemHeader.mjs.map +1 -1
  320. package/lib/components/VList/VListItemIcon.mjs +4 -3
  321. package/lib/components/VList/VListItemIcon.mjs.map +1 -1
  322. package/lib/components/VList/VListItemMedia.mjs +4 -3
  323. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  324. package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
  325. package/lib/components/VList/VListItemTitle.mjs.map +1 -1
  326. package/lib/components/VList/VListSubheader.mjs +7 -6
  327. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  328. package/lib/components/VList/_variables.scss +0 -1
  329. package/lib/components/VList/index.mjs +2 -2
  330. package/lib/components/VList/index.mjs.map +1 -1
  331. package/lib/components/VList/list.mjs.map +1 -1
  332. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
  333. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  334. package/lib/components/VLocaleProvider/index.mjs.map +1 -1
  335. package/lib/components/VMain/VMain.mjs +4 -3
  336. package/lib/components/VMain/VMain.mjs.map +1 -1
  337. package/lib/components/VMain/VMain.sass +0 -1
  338. package/lib/components/VMain/_variables.scss +1 -1
  339. package/lib/components/VMain/index.mjs.map +1 -1
  340. package/lib/components/VMenu/VMenu.mjs +10 -6
  341. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  342. package/lib/components/VMenu/VMenu.sass +0 -1
  343. package/lib/components/VMenu/_variables.scss +0 -1
  344. package/lib/components/VMenu/index.mjs.map +1 -1
  345. package/lib/components/VMenu/shared.mjs.map +1 -1
  346. package/lib/components/VMessages/VMessages.mjs +5 -3
  347. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  348. package/lib/components/VMessages/VMessages.sass +0 -1
  349. package/lib/components/VMessages/_variables.scss +1 -1
  350. package/lib/components/VMessages/index.mjs.map +1 -1
  351. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +17 -11
  352. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  353. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
  354. package/lib/components/VNavigationDrawer/_variables.scss +2 -1
  355. package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
  356. package/lib/components/VNavigationDrawer/touch.mjs +5 -2
  357. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  358. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  359. package/lib/components/VNoSsr/index.mjs.map +1 -1
  360. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  361. package/lib/components/VOtpInput/index.mjs.map +1 -1
  362. package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
  363. package/lib/components/VOverflowBtn/index.mjs.map +1 -1
  364. package/lib/components/VOverlay/VOverlay.css +0 -1
  365. package/lib/components/VOverlay/VOverlay.mjs +54 -28
  366. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  367. package/lib/components/VOverlay/VOverlay.sass +0 -2
  368. package/lib/components/VOverlay/_variables.scss +0 -1
  369. package/lib/components/VOverlay/index.mjs.map +1 -1
  370. package/lib/components/VOverlay/locationStrategies.mjs +395 -0
  371. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -0
  372. package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
  373. package/lib/components/VOverlay/scrollStrategies.mjs +2 -2
  374. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  375. package/lib/components/VOverlay/useActivator.mjs +11 -4
  376. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  377. package/lib/components/VOverlay/util/point.mjs +3 -3
  378. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  379. package/lib/components/VPagination/VPagination.mjs +22 -17
  380. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  381. package/lib/components/VPagination/VPagination.sass +0 -1
  382. package/lib/components/VPagination/index.mjs.map +1 -1
  383. package/lib/components/VParallax/VParallax.mjs +5 -5
  384. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  385. package/lib/components/VParallax/index.mjs.map +1 -1
  386. package/lib/components/VPicker/VPicker.mjs.map +1 -1
  387. package/lib/components/VPicker/index.mjs.map +1 -1
  388. package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
  389. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  390. package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
  391. package/lib/components/VProgressCircular/_variables.scss +2 -0
  392. package/lib/components/VProgressCircular/index.mjs.map +1 -1
  393. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
  394. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  395. package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
  396. package/lib/components/VProgressLinear/_variables.scss +1 -0
  397. package/lib/components/VProgressLinear/index.mjs.map +1 -1
  398. package/lib/components/VRadio/VRadio.mjs +5 -3
  399. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  400. package/lib/components/VRadio/index.mjs.map +1 -1
  401. package/lib/components/VRadioGroup/VRadioGroup.mjs +10 -5
  402. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  403. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
  404. package/lib/components/VRadioGroup/_variables.scss +3 -4
  405. package/lib/components/VRadioGroup/index.mjs.map +1 -1
  406. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
  407. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  408. package/lib/components/VRangeSlider/index.mjs.map +1 -1
  409. package/lib/components/VRating/VRating.mjs +9 -7
  410. package/lib/components/VRating/VRating.mjs.map +1 -1
  411. package/lib/components/VRating/VRating.sass +2 -1
  412. package/lib/components/VRating/index.mjs.map +1 -1
  413. package/lib/components/VResponsive/VResponsive.mjs +7 -6
  414. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  415. package/lib/components/VResponsive/index.mjs.map +1 -1
  416. package/lib/components/VSelect/VSelect.mjs +90 -38
  417. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  418. package/lib/components/VSelect/VSelect.sass +0 -2
  419. package/lib/components/VSelect/index.mjs.map +1 -1
  420. package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
  421. package/lib/components/VSelectionControl/VSelectionControl.mjs +17 -14
  422. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  423. package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
  424. package/lib/components/VSelectionControl/_variables.scss +1 -0
  425. package/lib/components/VSelectionControl/index.mjs.map +1 -1
  426. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +5 -4
  427. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  428. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -6
  429. package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
  430. package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
  431. package/lib/components/VSheet/VSheet.mjs +10 -6
  432. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  433. package/lib/components/VSheet/VSheet.sass +0 -1
  434. package/lib/components/VSheet/_variables.scss +3 -2
  435. package/lib/components/VSheet/index.mjs.map +1 -1
  436. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  437. package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
  438. package/lib/components/VSlideGroup/VSlideGroup.mjs +48 -49
  439. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  440. package/lib/components/VSlideGroup/VSlideGroup.sass +0 -1
  441. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +4 -3
  442. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  443. package/lib/components/VSlideGroup/_variables.scss +0 -5
  444. package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
  445. package/lib/components/VSlideGroup/index.mjs +2 -2
  446. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  447. package/lib/components/VSlider/VSlider.mjs +7 -9
  448. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  449. package/lib/components/VSlider/VSlider.sass +0 -2
  450. package/lib/components/VSlider/VSliderThumb.mjs +6 -5
  451. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  452. package/lib/components/VSlider/VSliderThumb.sass +0 -2
  453. package/lib/components/VSlider/VSliderTrack.mjs +13 -11
  454. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  455. package/lib/components/VSlider/VSliderTrack.sass +0 -2
  456. package/lib/components/VSlider/index.mjs.map +1 -1
  457. package/lib/components/VSlider/slider.mjs +4 -4
  458. package/lib/components/VSlider/slider.mjs.map +1 -1
  459. package/lib/components/VSnackbar/VSnackbar.css +5 -23
  460. package/lib/components/VSnackbar/VSnackbar.mjs +55 -52
  461. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  462. package/lib/components/VSnackbar/VSnackbar.sass +0 -19
  463. package/lib/components/VSnackbar/_variables.scss +2 -0
  464. package/lib/components/VSnackbar/index.mjs.map +1 -1
  465. package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
  466. package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
  467. package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
  468. package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
  469. package/lib/components/VSparkline/index.mjs.map +1 -1
  470. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  471. package/lib/components/VSpeedDial/index.mjs.map +1 -1
  472. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  473. package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
  474. package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
  475. package/lib/components/VStepper/index.mjs.map +1 -1
  476. package/lib/components/VSwitch/VSwitch.mjs +8 -2
  477. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  478. package/lib/components/VSwitch/VSwitch.sass +0 -1
  479. package/lib/components/VSwitch/_variables.scss +1 -0
  480. package/lib/components/VSwitch/index.mjs.map +1 -1
  481. package/lib/components/VSystemBar/VSystemBar.mjs +5 -13
  482. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  483. package/lib/components/VSystemBar/VSystemBar.sass +0 -1
  484. package/lib/components/VSystemBar/_variables.scss +2 -1
  485. package/lib/components/VSystemBar/index.mjs.map +1 -1
  486. package/lib/components/VTable/VTable.mjs +9 -8
  487. package/lib/components/VTable/VTable.mjs.map +1 -1
  488. package/lib/components/VTable/VTable.sass +0 -1
  489. package/lib/components/VTable/_variables.scss +2 -0
  490. package/lib/components/VTable/index.mjs.map +1 -1
  491. package/lib/components/VTabs/VTab.css +1 -1
  492. package/lib/components/VTabs/VTab.mjs +6 -5
  493. package/lib/components/VTabs/VTab.mjs.map +1 -1
  494. package/lib/components/VTabs/VTab.sass +1 -2
  495. package/lib/components/VTabs/VTabs.css +8 -9
  496. package/lib/components/VTabs/VTabs.mjs +9 -7
  497. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  498. package/lib/components/VTabs/VTabs.sass +4 -6
  499. package/lib/components/VTabs/_variables.scss +2 -0
  500. package/lib/components/VTabs/index.mjs.map +1 -1
  501. package/lib/components/VTabs/shared.mjs.map +1 -1
  502. package/lib/components/VTextField/VTextField.mjs +10 -7
  503. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  504. package/lib/components/VTextField/VTextField.sass +0 -1
  505. package/lib/components/VTextField/_variables.scss +1 -1
  506. package/lib/components/VTextField/index.mjs.map +1 -1
  507. package/lib/components/VTextarea/VTextarea.mjs +4 -4
  508. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  509. package/lib/components/VTextarea/VTextarea.sass +0 -2
  510. package/lib/components/VTextarea/_variables.scss +1 -0
  511. package/lib/components/VTextarea/index.mjs.map +1 -1
  512. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  513. package/lib/components/VThemeProvider/index.mjs.map +1 -1
  514. package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
  515. package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
  516. package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
  517. package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
  518. package/lib/components/VTimePicker/index.mjs.map +1 -1
  519. package/lib/components/VTimeline/VTimeline.mjs +24 -25
  520. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  521. package/lib/components/VTimeline/VTimeline.sass +3 -3
  522. package/lib/components/VTimeline/VTimelineDivider.mjs +42 -38
  523. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  524. package/lib/components/VTimeline/VTimelineItem.mjs +12 -12
  525. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  526. package/lib/components/VTimeline/_variables.scss +11 -6
  527. package/lib/components/VTimeline/index.mjs.map +1 -1
  528. package/lib/components/VToolbar/VToolbar.css +15 -6
  529. package/lib/components/VToolbar/VToolbar.mjs +25 -18
  530. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  531. package/lib/components/VToolbar/VToolbar.sass +15 -7
  532. package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
  533. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  534. package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
  535. package/lib/components/VToolbar/_variables.scss +6 -2
  536. package/lib/components/VToolbar/index.mjs.map +1 -1
  537. package/lib/components/VTooltip/VTooltip.mjs +44 -40
  538. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  539. package/lib/components/VTooltip/VTooltip.sass +0 -1
  540. package/lib/components/VTooltip/_variables.scss +1 -0
  541. package/lib/components/VTooltip/index.mjs.map +1 -1
  542. package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
  543. package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
  544. package/lib/components/VTreeview/index.mjs.map +1 -1
  545. package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
  546. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  547. package/lib/components/VValidation/index.mjs.map +1 -1
  548. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  549. package/lib/components/VVirtualScroll/index.mjs.map +1 -1
  550. package/lib/components/VWindow/VWindow.mjs +6 -6
  551. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  552. package/lib/components/VWindow/VWindow.sass +0 -2
  553. package/lib/components/VWindow/VWindowItem.mjs +18 -11
  554. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  555. package/lib/components/VWindow/_variables.scss +1 -0
  556. package/lib/components/VWindow/index.mjs.map +1 -1
  557. package/lib/components/index.d.ts +6631 -3928
  558. package/lib/components/index.mjs.map +1 -1
  559. package/lib/components/transitions/createTransition.mjs.map +1 -1
  560. package/lib/components/transitions/dialog-transition.mjs +64 -8
  561. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  562. package/lib/components/transitions/expand-transition.mjs.map +1 -1
  563. package/lib/components/transitions/index.mjs.map +1 -1
  564. package/lib/composables/border.mjs +5 -6
  565. package/lib/composables/border.mjs.map +1 -1
  566. package/lib/composables/color.mjs.map +1 -1
  567. package/lib/composables/defaults.mjs.map +1 -1
  568. package/lib/composables/delay.mjs.map +1 -1
  569. package/lib/composables/density.mjs.map +1 -1
  570. package/lib/composables/dimensions.mjs.map +1 -1
  571. package/lib/composables/display.mjs +13 -11
  572. package/lib/composables/display.mjs.map +1 -1
  573. package/lib/composables/elevation.mjs.map +1 -1
  574. package/lib/composables/filter.mjs +33 -13
  575. package/lib/composables/filter.mjs.map +1 -1
  576. package/lib/composables/focus.mjs.map +1 -1
  577. package/lib/composables/form.mjs +6 -6
  578. package/lib/composables/form.mjs.map +1 -1
  579. package/lib/composables/forwardRef.mjs.map +1 -1
  580. package/lib/composables/group.mjs.map +1 -1
  581. package/lib/composables/hydration.mjs.map +1 -1
  582. package/lib/composables/icons.mjs +15 -3
  583. package/lib/composables/icons.mjs.map +1 -1
  584. package/lib/composables/index.mjs.map +1 -1
  585. package/lib/composables/intersectionObserver.mjs.map +1 -1
  586. package/lib/composables/items.mjs +39 -11
  587. package/lib/composables/items.mjs.map +1 -1
  588. package/lib/composables/layout.mjs +3 -3
  589. package/lib/composables/layout.mjs.map +1 -1
  590. package/lib/composables/lazy.mjs.map +1 -1
  591. package/lib/composables/loader.mjs.map +1 -1
  592. package/lib/composables/locale.mjs +11 -8
  593. package/lib/composables/locale.mjs.map +1 -1
  594. package/lib/composables/location.mjs +66 -0
  595. package/lib/composables/location.mjs.map +1 -0
  596. package/lib/composables/mutationObserver.mjs.map +1 -1
  597. package/lib/composables/nested/nested.mjs.map +1 -1
  598. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  599. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  600. package/lib/composables/position.mjs +4 -25
  601. package/lib/composables/position.mjs.map +1 -1
  602. package/lib/composables/proxiedModel.mjs.map +1 -1
  603. package/lib/composables/refs.mjs.map +1 -1
  604. package/lib/composables/resizeObserver.mjs.map +1 -1
  605. package/lib/composables/rounded.mjs.map +1 -1
  606. package/lib/composables/router.mjs +25 -23
  607. package/lib/composables/router.mjs.map +1 -1
  608. package/lib/composables/rtl.mjs.map +1 -1
  609. package/lib/composables/scopeId.mjs +11 -0
  610. package/lib/composables/scopeId.mjs.map +1 -0
  611. package/lib/composables/scroll.mjs.map +1 -1
  612. package/lib/composables/selectLink.mjs.map +1 -1
  613. package/lib/composables/size.mjs +2 -2
  614. package/lib/composables/size.mjs.map +1 -1
  615. package/lib/composables/ssrBoot.mjs +3 -2
  616. package/lib/composables/ssrBoot.mjs.map +1 -1
  617. package/lib/composables/stack.mjs +23 -22
  618. package/lib/composables/stack.mjs.map +1 -1
  619. package/lib/composables/tag.mjs.map +1 -1
  620. package/lib/composables/teleport.mjs.map +1 -1
  621. package/lib/composables/theme.mjs +94 -93
  622. package/lib/composables/theme.mjs.map +1 -1
  623. package/lib/composables/toggleScope.mjs +18 -0
  624. package/lib/composables/toggleScope.mjs.map +1 -0
  625. package/lib/composables/touch.mjs.map +1 -1
  626. package/lib/composables/transition.mjs.map +1 -1
  627. package/lib/composables/validation.mjs +15 -7
  628. package/lib/composables/validation.mjs.map +1 -1
  629. package/lib/composables/variant.mjs +5 -3
  630. package/lib/composables/variant.mjs.map +1 -1
  631. package/lib/directives/click-outside/index.mjs.map +1 -1
  632. package/lib/directives/color/index.mjs.map +1 -1
  633. package/lib/directives/index.mjs.map +1 -1
  634. package/lib/directives/intersect/index.mjs.map +1 -1
  635. package/lib/directives/mutate/index.mjs.map +1 -1
  636. package/lib/directives/resize/index.mjs.map +1 -1
  637. package/lib/directives/ripple/VRipple.sass +0 -1
  638. package/lib/directives/ripple/index.mjs.map +1 -1
  639. package/lib/directives/scroll/index.mjs.map +1 -1
  640. package/lib/directives/touch/index.mjs.map +1 -1
  641. package/lib/entry-bundler.mjs +1 -1
  642. package/lib/entry-bundler.mjs.map +1 -1
  643. package/lib/framework.mjs +36 -26
  644. package/lib/framework.mjs.map +1 -1
  645. package/lib/iconsets/fa-svg.d.ts +2 -1
  646. package/lib/iconsets/fa-svg.mjs.map +1 -1
  647. package/lib/iconsets/fa.d.ts +2 -1
  648. package/lib/iconsets/fa.mjs.map +1 -1
  649. package/lib/iconsets/fa4.d.ts +2 -1
  650. package/lib/iconsets/fa4.mjs.map +1 -1
  651. package/lib/iconsets/md.d.ts +2 -1
  652. package/lib/iconsets/md.mjs.map +1 -1
  653. package/lib/iconsets/mdi-svg.d.ts +2 -1
  654. package/lib/iconsets/mdi-svg.mjs.map +1 -1
  655. package/lib/iconsets/mdi.d.ts +2 -1
  656. package/lib/iconsets/mdi.mjs.map +1 -1
  657. package/lib/index.d.ts +151 -145
  658. package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
  659. package/lib/locale/adapters/vue-intl.mjs.map +1 -1
  660. package/lib/locale/af.mjs.map +1 -1
  661. package/lib/locale/ar.mjs.map +1 -1
  662. package/lib/locale/az.mjs.map +1 -1
  663. package/lib/locale/bg.mjs.map +1 -1
  664. package/lib/locale/ca.mjs.map +1 -1
  665. package/lib/locale/ckb.mjs.map +1 -1
  666. package/lib/locale/cs.mjs.map +1 -1
  667. package/lib/locale/da.mjs.map +1 -1
  668. package/lib/locale/de.mjs.map +1 -1
  669. package/lib/locale/el.mjs.map +1 -1
  670. package/lib/locale/en.mjs.map +1 -1
  671. package/lib/locale/es.mjs.map +1 -1
  672. package/lib/locale/et.mjs.map +1 -1
  673. package/lib/locale/fa.mjs.map +1 -1
  674. package/lib/locale/fi.mjs.map +1 -1
  675. package/lib/locale/fr.mjs.map +1 -1
  676. package/lib/locale/he.mjs.map +1 -1
  677. package/lib/locale/hr.mjs.map +1 -1
  678. package/lib/locale/hu.mjs.map +1 -1
  679. package/lib/locale/id.mjs.map +1 -1
  680. package/lib/locale/index.mjs.map +1 -1
  681. package/lib/locale/it.mjs.map +1 -1
  682. package/lib/locale/ja.mjs.map +1 -1
  683. package/lib/locale/ko.mjs.map +1 -1
  684. package/lib/locale/lt.mjs.map +1 -1
  685. package/lib/locale/lv.mjs.map +1 -1
  686. package/lib/locale/nl.mjs.map +1 -1
  687. package/lib/locale/no.mjs.map +1 -1
  688. package/lib/locale/pl.mjs.map +1 -1
  689. package/lib/locale/pt.mjs.map +1 -1
  690. package/lib/locale/ro.mjs.map +1 -1
  691. package/lib/locale/ru.mjs.map +1 -1
  692. package/lib/locale/sk.mjs.map +1 -1
  693. package/lib/locale/sl.mjs.map +1 -1
  694. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  695. package/lib/locale/sr-Latn.mjs.map +1 -1
  696. package/lib/locale/sv.mjs.map +1 -1
  697. package/lib/locale/th.mjs.map +1 -1
  698. package/lib/locale/tr.mjs.map +1 -1
  699. package/lib/locale/uk.mjs.map +1 -1
  700. package/lib/locale/vi.mjs.map +1 -1
  701. package/lib/locale/zh-Hans.mjs.map +1 -1
  702. package/lib/locale/zh-Hant.mjs.map +1 -1
  703. package/lib/services/goto/easing-patterns.mjs.map +1 -1
  704. package/lib/services/goto/index.mjs.map +1 -1
  705. package/lib/services/goto/util.mjs.map +1 -1
  706. package/lib/styles/tools/_states.sass +9 -2
  707. package/lib/styles/tools/_utilities.sass +1 -1
  708. package/lib/styles/tools/_variant.sass +6 -6
  709. package/lib/util/anchor.mjs +58 -0
  710. package/lib/util/anchor.mjs.map +1 -0
  711. package/lib/util/animation.mjs +2 -2
  712. package/lib/util/animation.mjs.map +1 -1
  713. package/lib/util/box.mjs +12 -0
  714. package/lib/util/box.mjs.map +1 -1
  715. package/lib/util/color/APCA.mjs.map +1 -1
  716. package/lib/util/color/transformCIELAB.mjs.map +1 -1
  717. package/lib/util/color/transformSRGB.mjs.map +1 -1
  718. package/lib/util/colorUtils.mjs.map +1 -1
  719. package/lib/util/colors.mjs.map +1 -1
  720. package/lib/util/console.mjs.map +1 -1
  721. package/lib/util/createSimpleFunctional.mjs.map +1 -1
  722. package/lib/util/dateTimeUtils.mjs.map +1 -1
  723. package/lib/util/defineComponent.mjs.map +1 -1
  724. package/lib/util/dom.mjs.map +1 -1
  725. package/lib/util/easing.mjs.map +1 -1
  726. package/lib/util/getCurrentInstance.mjs +19 -0
  727. package/lib/util/getCurrentInstance.mjs.map +1 -1
  728. package/lib/util/getScrollParent.mjs.map +1 -1
  729. package/lib/util/globals.mjs +0 -3
  730. package/lib/util/globals.mjs.map +1 -1
  731. package/lib/util/helpers.mjs +10 -6
  732. package/lib/util/helpers.mjs.map +1 -1
  733. package/lib/util/index.mjs +1 -0
  734. package/lib/util/index.mjs.map +1 -1
  735. package/lib/util/isFixedPosition.mjs.map +1 -1
  736. package/lib/util/propsFactory.mjs.map +1 -1
  737. package/lib/util/useRender.mjs.map +1 -1
  738. package/package.json +32 -26
  739. package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
  740. package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
  741. package/lib/components/VBanner/VBannerIcon.mjs +0 -20
  742. package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
  743. package/lib/components/VBreadcrumbs/shared.mjs +0 -2
  744. package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
  745. package/lib/components/VCard/VCardAvatar.mjs +0 -3
  746. package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
  747. package/lib/components/VCard/VCardContent.mjs +0 -3
  748. package/lib/components/VCard/VCardContent.mjs.map +0 -1
  749. package/lib/components/VCard/VCardHeader.mjs +0 -3
  750. package/lib/components/VCard/VCardHeader.mjs.map +0 -1
  751. package/lib/components/VCard/VCardHeaderText.mjs +0 -3
  752. package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
  753. package/lib/components/VCard/VCardImg.mjs +0 -3
  754. package/lib/components/VCard/VCardImg.mjs.map +0 -1
  755. package/lib/components/VOverlay/positionStrategies.mjs +0 -207
  756. package/lib/components/VOverlay/positionStrategies.mjs.map +0 -1
  757. package/lib/components/VOverlay/util/anchor.mjs +0 -52
  758. package/lib/components/VOverlay/util/anchor.mjs.map +0 -1
  759. package/lib/components/VTimeline/shared.mjs +0 -2
  760. package/lib/components/VTimeline/shared.mjs.map +0 -1
  761. package/lib/composables/overlay.mjs +0 -34
  762. package/lib/composables/overlay.mjs.map +0 -1
  763. package/lib/presets/default/index.mjs +0 -71
  764. package/lib/presets/default/index.mjs.map +0 -1
@@ -0,0 +1,395 @@
1
+ // Utilities
2
+ import { computed, effectScope, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';
3
+ import { clamp, consoleError, convertToUnit, destructComputed, flipAlign, flipCorner, flipSide, getAxis, getScrollParents, IN_BROWSER, isFixedPosition, nullifyTransforms, parseAnchor, propsFactory } from "../../util/index.mjs";
4
+ import { Box, getOverflow } from "../../util/box.mjs";
5
+ import { anchorToPoint, getOffset } from "./util/point.mjs"; // Types
6
+
7
+ const locationStrategies = {
8
+ static: staticLocationStrategy,
9
+ // specific viewport position, usually centered
10
+ connected: connectedLocationStrategy // connected to a certain element
11
+
12
+ };
13
+ export const makeLocationStrategyProps = propsFactory({
14
+ locationStrategy: {
15
+ type: [String, Function],
16
+ default: 'static',
17
+ validator: val => typeof val === 'function' || val in locationStrategies
18
+ },
19
+ location: {
20
+ type: String,
21
+ default: 'bottom'
22
+ },
23
+ origin: {
24
+ type: String,
25
+ default: 'auto'
26
+ },
27
+ offset: [Number, String, Array]
28
+ });
29
+ export function useLocationStrategies(props, data) {
30
+ const contentStyles = ref({});
31
+ const updateLocation = ref();
32
+ let scope;
33
+ watchEffect(async () => {
34
+ var _scope;
35
+
36
+ (_scope = scope) == null ? void 0 : _scope.stop();
37
+ updateLocation.value = undefined;
38
+ if (!(IN_BROWSER && data.isActive.value && props.locationStrategy)) return;
39
+ scope = effectScope();
40
+ await nextTick();
41
+ scope.run(() => {
42
+ if (typeof props.locationStrategy === 'function') {
43
+ var _props$locationStrate;
44
+
45
+ updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
46
+ } else {
47
+ var _locationStrategies$p;
48
+
49
+ updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
50
+ }
51
+ });
52
+ });
53
+ IN_BROWSER && window.addEventListener('resize', onResize, {
54
+ passive: true
55
+ });
56
+ onScopeDispose(() => {
57
+ var _scope2;
58
+
59
+ IN_BROWSER && window.removeEventListener('resize', onResize);
60
+ updateLocation.value = undefined;
61
+ (_scope2 = scope) == null ? void 0 : _scope2.stop();
62
+ });
63
+
64
+ function onResize(e) {
65
+ var _updateLocation$value;
66
+
67
+ (_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
68
+ }
69
+
70
+ return {
71
+ contentStyles,
72
+ updateLocation
73
+ };
74
+ }
75
+
76
+ function staticLocationStrategy() {// TODO
77
+ }
78
+ /** Get size of element ignoring max-width/max-height */
79
+
80
+
81
+ function getIntrinsicSize(el) {
82
+ // const scrollables = new Map<Element, [number, number]>()
83
+ // el.querySelectorAll('*').forEach(el => {
84
+ // const x = el.scrollLeft
85
+ // const y = el.scrollTop
86
+ // if (x || y) {
87
+ // scrollables.set(el, [x, y])
88
+ // }
89
+ // })
90
+ // const initialMaxWidth = el.style.maxWidth
91
+ // const initialMaxHeight = el.style.maxHeight
92
+ // el.style.removeProperty('max-width')
93
+ // el.style.removeProperty('max-height')
94
+
95
+ /* eslint-disable-next-line sonarjs/prefer-immediate-return */
96
+ const contentBox = nullifyTransforms(el);
97
+ contentBox.x -= parseFloat(el.style.left || 0);
98
+ contentBox.y -= parseFloat(el.style.top || 0); // el.style.maxWidth = initialMaxWidth
99
+ // el.style.maxHeight = initialMaxHeight
100
+ // scrollables.forEach((position, el) => {
101
+ // el.scrollTo(...position)
102
+ // })
103
+
104
+ return contentBox;
105
+ }
106
+
107
+ function connectedLocationStrategy(data, props, contentStyles) {
108
+ const activatorFixed = isFixedPosition(data.activatorEl.value);
109
+
110
+ if (activatorFixed) {
111
+ Object.assign(contentStyles.value, {
112
+ position: 'fixed'
113
+ });
114
+ }
115
+
116
+ const {
117
+ preferredAnchor,
118
+ preferredOrigin
119
+ } = destructComputed(() => {
120
+ const parsedAnchor = parseAnchor(props.location, data.isRtl.value);
121
+ const parsedOrigin = props.origin === 'overlap' ? parsedAnchor : props.origin === 'auto' ? flipSide(parsedAnchor) : parseAnchor(props.origin, data.isRtl.value); // Some combinations of props may produce an invalid origin
122
+
123
+ if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {
124
+ return {
125
+ preferredAnchor: flipCorner(parsedAnchor),
126
+ preferredOrigin: flipCorner(parsedOrigin)
127
+ };
128
+ } else {
129
+ return {
130
+ preferredAnchor: parsedAnchor,
131
+ preferredOrigin: parsedOrigin
132
+ };
133
+ }
134
+ });
135
+ const [minWidth, minHeight, maxWidth, maxHeight] = ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'].map(key => {
136
+ return computed(() => {
137
+ const val = parseFloat(props[key]);
138
+ return isNaN(val) ? Infinity : val;
139
+ });
140
+ });
141
+ const offset = computed(() => {
142
+ if (Array.isArray(props.offset)) {
143
+ return props.offset;
144
+ }
145
+
146
+ if (typeof props.offset === 'string') {
147
+ const offset = props.offset.split(' ').map(parseFloat);
148
+ if (offset.length < 2) offset.push(0);
149
+ return offset;
150
+ }
151
+
152
+ return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];
153
+ });
154
+ let observe = false;
155
+
156
+ if (IN_BROWSER) {
157
+ const observer = new ResizeObserver(() => {
158
+ if (observe) updateLocation();
159
+ });
160
+ observer.observe(data.activatorEl.value);
161
+ observer.observe(data.contentEl.value);
162
+ onScopeDispose(() => {
163
+ observer.disconnect();
164
+ });
165
+ } // eslint-disable-next-line max-statements
166
+
167
+
168
+ function updateLocation() {
169
+ observe = false;
170
+ requestAnimationFrame(() => {
171
+ requestAnimationFrame(() => observe = true);
172
+ });
173
+ const targetBox = data.activatorEl.value.getBoundingClientRect();
174
+ const contentBox = getIntrinsicSize(data.contentEl.value);
175
+ const scrollParents = getScrollParents(data.contentEl.value);
176
+ const viewportMargin = 12;
177
+
178
+ if (!scrollParents.length) {
179
+ scrollParents.push(document.documentElement);
180
+
181
+ if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
182
+ contentBox.x += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);
183
+ contentBox.y += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);
184
+ }
185
+ }
186
+
187
+ const viewport = scrollParents.reduce((box, el) => {
188
+ const rect = el.getBoundingClientRect();
189
+ const scrollBox = new Box({
190
+ x: el === document.documentElement ? 0 : rect.x,
191
+ y: el === document.documentElement ? 0 : rect.y,
192
+ width: el.clientWidth,
193
+ height: el.clientHeight
194
+ });
195
+
196
+ if (box) {
197
+ return new Box({
198
+ x: Math.max(box.left, scrollBox.left),
199
+ y: Math.max(box.top, scrollBox.top),
200
+ width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),
201
+ height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top)
202
+ });
203
+ }
204
+
205
+ return scrollBox;
206
+ }, undefined);
207
+ viewport.x += viewportMargin;
208
+ viewport.y += viewportMargin;
209
+ viewport.width -= viewportMargin * 2;
210
+ viewport.height -= viewportMargin * 2;
211
+ let placement = {
212
+ anchor: preferredAnchor.value,
213
+ origin: preferredOrigin.value
214
+ };
215
+
216
+ function checkOverflow(_placement) {
217
+ const box = new Box(contentBox);
218
+ const targetPoint = anchorToPoint(_placement.anchor, targetBox);
219
+ const contentPoint = anchorToPoint(_placement.origin, box);
220
+ let {
221
+ x,
222
+ y
223
+ } = getOffset(targetPoint, contentPoint);
224
+
225
+ switch (_placement.anchor.side) {
226
+ case 'top':
227
+ y -= offset.value[0];
228
+ break;
229
+
230
+ case 'bottom':
231
+ y += offset.value[0];
232
+ break;
233
+
234
+ case 'left':
235
+ x -= offset.value[0];
236
+ break;
237
+
238
+ case 'right':
239
+ x += offset.value[0];
240
+ break;
241
+ }
242
+
243
+ switch (_placement.anchor.align) {
244
+ case 'top':
245
+ y -= offset.value[1];
246
+ break;
247
+
248
+ case 'bottom':
249
+ y += offset.value[1];
250
+ break;
251
+
252
+ case 'left':
253
+ x -= offset.value[1];
254
+ break;
255
+
256
+ case 'right':
257
+ x += offset.value[1];
258
+ break;
259
+ }
260
+
261
+ box.x += x;
262
+ box.y += y;
263
+ box.width = Math.min(box.width, maxWidth.value);
264
+ box.height = Math.min(box.height, maxHeight.value);
265
+ const overflows = getOverflow(box, viewport);
266
+ return {
267
+ overflows,
268
+ x,
269
+ y
270
+ };
271
+ }
272
+
273
+ let x = 0;
274
+ let y = 0;
275
+ const available = {
276
+ x: 0,
277
+ y: 0
278
+ };
279
+ const flipped = {
280
+ x: false,
281
+ y: false
282
+ };
283
+ let resets = -1;
284
+
285
+ while (true) {
286
+ if (resets++ > 10) {
287
+ consoleError('Infinite loop detected in connectedLocationStrategy');
288
+ break;
289
+ }
290
+
291
+ const {
292
+ x: _x,
293
+ y: _y,
294
+ overflows
295
+ } = checkOverflow(placement);
296
+ x += _x;
297
+ y += _y;
298
+ contentBox.x += _x;
299
+ contentBox.y += _y; // flip
300
+
301
+ {
302
+ const axis = getAxis(placement.anchor);
303
+ const hasOverflowX = overflows.x.before || overflows.x.after;
304
+ const hasOverflowY = overflows.y.before || overflows.y.after;
305
+ let reset = false;
306
+ ['x', 'y'].forEach(key => {
307
+ if (key === 'x' && hasOverflowX && !flipped.x || key === 'y' && hasOverflowY && !flipped.y) {
308
+ const newPlacement = {
309
+ anchor: { ...placement.anchor
310
+ },
311
+ origin: { ...placement.origin
312
+ }
313
+ };
314
+ const flip = key === 'x' ? axis === 'y' ? flipAlign : flipSide : axis === 'y' ? flipSide : flipAlign;
315
+ newPlacement.anchor = flip(newPlacement.anchor);
316
+ newPlacement.origin = flip(newPlacement.origin);
317
+ const {
318
+ overflows: newOverflows
319
+ } = checkOverflow(newPlacement);
320
+
321
+ if (newOverflows[key].before <= overflows[key].before && newOverflows[key].after <= overflows[key].after || newOverflows[key].before + newOverflows[key].after < (overflows[key].before + overflows[key].after) / 2) {
322
+ placement = newPlacement;
323
+ reset = flipped[key] = true;
324
+ }
325
+ }
326
+ });
327
+ if (reset) continue;
328
+ } // shift
329
+
330
+ if (overflows.x.before) {
331
+ x += overflows.x.before;
332
+ contentBox.x += overflows.x.before;
333
+ }
334
+
335
+ if (overflows.x.after) {
336
+ x -= overflows.x.after;
337
+ contentBox.x -= overflows.x.after;
338
+ }
339
+
340
+ if (overflows.y.before) {
341
+ y += overflows.y.before;
342
+ contentBox.y += overflows.y.before;
343
+ }
344
+
345
+ if (overflows.y.after) {
346
+ y -= overflows.y.after;
347
+ contentBox.y -= overflows.y.after;
348
+ } // size
349
+
350
+
351
+ {
352
+ const overflows = getOverflow(contentBox, viewport);
353
+ available.x = viewport.width - overflows.x.before - overflows.x.after;
354
+ available.y = viewport.height - overflows.y.before - overflows.y.after;
355
+ x += overflows.x.before;
356
+ contentBox.x += overflows.x.before;
357
+ y += overflows.y.before;
358
+ contentBox.y += overflows.y.before;
359
+ }
360
+ break;
361
+ }
362
+
363
+ const axis = getAxis(placement.anchor);
364
+ Object.assign(contentStyles.value, {
365
+ '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,
366
+ transformOrigin: `${placement.origin.side} ${placement.origin.align}`,
367
+ // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,
368
+ top: convertToUnit(pixelRound(y)),
369
+ left: convertToUnit(pixelRound(x)),
370
+ minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),
371
+ maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
372
+ maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
373
+ });
374
+ }
375
+
376
+ watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation(), {
377
+ immediate: !activatorFixed
378
+ });
379
+ if (activatorFixed) nextTick(() => updateLocation());
380
+ requestAnimationFrame(() => {
381
+ if (contentStyles.value.maxHeight) updateLocation();
382
+ });
383
+ return {
384
+ updateLocation
385
+ };
386
+ }
387
+
388
+ function pixelRound(val) {
389
+ return Math.round(val * devicePixelRatio) / devicePixelRatio;
390
+ }
391
+
392
+ function pixelCeil(val) {
393
+ return Math.ceil(val * devicePixelRatio) / devicePixelRatio;
394
+ }
395
+ //# sourceMappingURL=locationStrategies.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"locationStrategies.mjs","names":["computed","effectScope","nextTick","onScopeDispose","ref","watch","watchEffect","clamp","consoleError","convertToUnit","destructComputed","flipAlign","flipCorner","flipSide","getAxis","getScrollParents","IN_BROWSER","isFixedPosition","nullifyTransforms","parseAnchor","propsFactory","Box","getOverflow","anchorToPoint","getOffset","locationStrategies","static","staticLocationStrategy","connected","connectedLocationStrategy","makeLocationStrategyProps","locationStrategy","type","String","Function","default","validator","val","location","origin","offset","Number","Array","useLocationStrategies","props","data","contentStyles","updateLocation","scope","stop","value","undefined","isActive","run","window","addEventListener","onResize","passive","removeEventListener","e","getIntrinsicSize","el","contentBox","x","parseFloat","style","left","y","top","activatorFixed","activatorEl","Object","assign","position","preferredAnchor","preferredOrigin","parsedAnchor","isRtl","parsedOrigin","side","align","minWidth","minHeight","maxWidth","maxHeight","map","key","isNaN","Infinity","isArray","split","length","push","observe","observer","ResizeObserver","contentEl","disconnect","requestAnimationFrame","targetBox","getBoundingClientRect","scrollParents","viewportMargin","document","documentElement","getPropertyValue","viewport","reduce","box","rect","scrollBox","width","clientWidth","height","clientHeight","Math","max","min","right","bottom","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","transformOrigin","pixelRound","pixelCeil","immediate","round","devicePixelRatio","ceil"],"sources":["../../../src/components/VOverlay/locationStrategies.ts"],"sourcesContent":["// Utilities\nimport { computed, effectScope, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue'\nimport {\n clamp,\n consoleError,\n convertToUnit,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getOverflow } from '@/util/box'\nimport { anchorToPoint, getOffset } from './util/point'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n isRtl: Ref<boolean>\n}\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | (\n (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n ) => undefined | { updateLocation: (e: Event) => void }\n )\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType<StrategyProps['offset']>,\n})\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n updateLocation.value = undefined\n\n if (!(IN_BROWSER && data.isActive.value && props.locationStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n })\n\n IN_BROWSER && window.addEventListener('resize', onResize, { passive: true })\n\n onScopeDispose(() => {\n IN_BROWSER && window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n scope?.stop()\n })\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n contentBox.x -= parseFloat(el.style.left || 0)\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = isFixedPosition(data.activatorEl.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n if (IN_BROWSER) {\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation()\n })\n observer.observe(data.activatorEl.value!)\n observer.observe(data.contentEl.value!)\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n }\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => {\n requestAnimationFrame(() => observe = true)\n })\n\n const targetBox = data.activatorEl.value!.getBoundingClientRect()\n const contentBox = getIntrinsicSize(data.contentEl.value!)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value!.style.top && data.contentEl.value!.style.left)) {\n contentBox.x += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce<Box>((box: Box | undefined, el) => {\n const rect = el.getBoundingClientRect()\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: convertToUnit(pixelRound(x)),\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n { immediate: !activatorFixed }\n )\n\n if (activatorFixed) nextTick(() => updateLocation())\n requestAnimationFrame(() => {\n if (contentStyles.value.maxHeight) updateLocation()\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VOverlay/requestNewFrame.ts"],"names":["clean","frames","requestNewFrame","cb","length","push","run","raf","cancelAnimationFrame","requestAnimationFrame","frame","shift"],"mappings":"AAAA,IAAIA,KAAK,GAAG,IAAZ;AACA,MAAMC,MAAM,GAAG,EAAf;AAEA;AACA;AACA;AACA;;AACA,OAAO,SAASC,eAAT,CAA0BC,EAA1B,EAA0C;AAC/C,MAAI,CAACH,KAAD,IAAUC,MAAM,CAACG,MAArB,EAA6B;AAC3BH,IAAAA,MAAM,CAACI,IAAP,CAAYF,EAAZ;AACAG,IAAAA,GAAG;AACJ,GAHD,MAGO;AACLN,IAAAA,KAAK,GAAG,KAAR;AACAG,IAAAA,EAAE;AACFG,IAAAA,GAAG;AACJ;AACF;AAED,IAAIC,GAAG,GAAG,CAAC,CAAX;;AACA,SAASD,GAAT,GAAgB;AACdE,EAAAA,oBAAoB,CAACD,GAAD,CAApB;AACAA,EAAAA,GAAG,GAAGE,qBAAqB,CAAC,MAAM;AAChC,UAAMC,KAAK,GAAGT,MAAM,CAACU,KAAP,EAAd;AACA,QAAID,KAAJ,EAAWA,KAAK;AAEhB,QAAIT,MAAM,CAACG,MAAX,EAAmBE,GAAG,GAAtB,KACKN,KAAK,GAAG,IAAR;AACN,GAN0B,CAA3B;AAOD","sourcesContent":["let clean = true\nconst frames = [] as any[]\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame (cb: () => void) {\n if (!clean || frames.length) {\n frames.push(cb)\n run()\n } else {\n clean = false\n cb()\n run()\n }\n}\n\nlet raf = -1\nfunction run () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n const frame = frames.shift()\n if (frame) frame()\n\n if (frames.length) run()\n else clean = true\n })\n}\n"],"file":"requestNewFrame.mjs"}
1
+ {"version":3,"file":"requestNewFrame.mjs","names":["clean","frames","requestNewFrame","cb","length","push","run","raf","cancelAnimationFrame","requestAnimationFrame","frame","shift"],"sources":["../../../src/components/VOverlay/requestNewFrame.ts"],"sourcesContent":["let clean = true\nconst frames = [] as any[]\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame (cb: () => void) {\n if (!clean || frames.length) {\n frames.push(cb)\n run()\n } else {\n clean = false\n cb()\n run()\n }\n}\n\nlet raf = -1\nfunction run () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n const frame = frames.shift()\n if (frame) frame()\n\n if (frames.length) run()\n else clean = true\n })\n}\n"],"mappings":"AAAA,IAAIA,KAAK,GAAG,IAAZ;AACA,MAAMC,MAAM,GAAG,EAAf;AAEA;AACA;AACA;AACA;;AACA,OAAO,SAASC,eAAT,CAA0BC,EAA1B,EAA0C;EAC/C,IAAI,CAACH,KAAD,IAAUC,MAAM,CAACG,MAArB,EAA6B;IAC3BH,MAAM,CAACI,IAAP,CAAYF,EAAZ;IACAG,GAAG;EACJ,CAHD,MAGO;IACLN,KAAK,GAAG,KAAR;IACAG,EAAE;IACFG,GAAG;EACJ;AACF;AAED,IAAIC,GAAG,GAAG,CAAC,CAAX;;AACA,SAASD,GAAT,GAAgB;EACdE,oBAAoB,CAACD,GAAD,CAApB;EACAA,GAAG,GAAGE,qBAAqB,CAAC,MAAM;IAChC,MAAMC,KAAK,GAAGT,MAAM,CAACU,KAAP,EAAd;IACA,IAAID,KAAJ,EAAWA,KAAK;IAEhB,IAAIT,MAAM,CAACG,MAAX,EAAmBE,GAAG,GAAtB,KACKN,KAAK,GAAG,IAAR;EACN,CAN0B,CAA3B;AAOD"}
@@ -92,10 +92,10 @@ function repositionScrollStrategy(data) {
92
92
 
93
93
  function update(e) {
94
94
  requestNewFrame(() => {
95
- var _data$updatePosition$, _data$updatePosition;
95
+ var _data$updateLocation$, _data$updateLocation;
96
96
 
97
97
  const start = performance.now();
98
- (_data$updatePosition$ = (_data$updatePosition = data.updatePosition).value) == null ? void 0 : _data$updatePosition$.call(_data$updatePosition, e);
98
+ (_data$updateLocation$ = (_data$updateLocation = data.updateLocation).value) == null ? void 0 : _data$updateLocation$.call(_data$updateLocation, e);
99
99
  const time = performance.now() - start;
100
100
  slow = time / (1000 / 60) > 2;
101
101
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"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","updatePosition","time","cancelAnimationFrame","requestAnimationFrame","addEventListener","passive","removeEventListener"],"mappings":"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","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 updatePosition: 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.updatePosition.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"],"file":"scrollStrategies.mjs"}
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,7 +1,8 @@
1
- // Utilities
2
- import { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from "../../util/index.mjs";
1
+ // Composables
3
2
  import { makeDelayProps, useDelay } from "../../composables/delay.mjs";
4
- import { VMenuSymbol } from "../VMenu/shared.mjs";
3
+ import { VMenuSymbol } from "../VMenu/shared.mjs"; // Utilities
4
+
5
+ import { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from "../../util/index.mjs";
5
6
  import { computed, effectScope, inject, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue'; // Types
6
7
 
7
8
  export const makeActivatorProps = propsFactory({
@@ -220,7 +221,13 @@ function _useActivator(props, vm, _ref2) {
220
221
  if (selector === 'parent') {
221
222
  var _vm$proxy, _vm$proxy$$el;
222
223
 
223
- activator = vm == null ? void 0 : (_vm$proxy = vm.proxy) == null ? void 0 : (_vm$proxy$$el = _vm$proxy.$el) == null ? void 0 : _vm$proxy$$el.parentNode;
224
+ 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
+ while (el.hasAttribute('data-no-activator')) {
227
+ el = el.parentNode;
228
+ }
229
+
230
+ activator = el;
224
231
  } else if (typeof selector === 'string') {
225
232
  // Selector
226
233
  activator = document.querySelector(selector);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VOverlay/useActivator.tsx"],"names":["getCurrentInstance","IN_BROWSER","isComponentInstance","propsFactory","SUPPORTS_FOCUS_VISIBLE","makeDelayProps","useDelay","VMenuSymbol","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","document","querySelector","nodeType","Node","ELEMENT_NODE"],"mappings":"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","sourcesContent":["// Utilities\nimport { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from '@/util'\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { VMenuSymbol } from '@/components/VMenu/shared'\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 && props.openOnHover && !isHovered) {\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 activator = vm?.proxy?.$el?.parentNode\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"],"file":"useActivator.mjs"}
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 && props.openOnHover && !isHovered) {\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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"}