@vuetify/nightly 3.0.0-beta.4 → 3.0.0-beta.9

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 (433) hide show
  1. package/CHANGELOG.md +10 -24
  2. package/dist/json/attributes.json +187 -203
  3. package/dist/json/importMap.json +99 -147
  4. package/dist/json/tags.json +49 -102
  5. package/dist/json/web-types.json +761 -949
  6. package/dist/vuetify.css +13059 -13058
  7. package/dist/vuetify.d.ts +1663 -5104
  8. package/dist/vuetify.esm.js +8655 -7971
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +8654 -7969
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +1115 -1077
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/blueprints/index.mjs +4 -0
  16. package/lib/blueprints/index.mjs.map +1 -0
  17. package/lib/blueprints/md1.mjs +63 -0
  18. package/lib/blueprints/md1.mjs.map +1 -0
  19. package/lib/blueprints/md2.mjs +60 -0
  20. package/lib/blueprints/md2.mjs.map +1 -0
  21. package/lib/blueprints/md3.mjs +74 -0
  22. package/lib/blueprints/md3.mjs.map +1 -0
  23. package/lib/components/VAlert/VAlert.css +0 -3
  24. package/lib/components/VAlert/VAlert.mjs +27 -11
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/VAlert.sass +0 -3
  27. package/lib/components/VApp/VApp.css +2 -5
  28. package/lib/components/VApp/VApp.mjs +3 -4
  29. package/lib/components/VApp/VApp.mjs.map +1 -1
  30. package/lib/components/VApp/VApp.sass +11 -12
  31. package/lib/components/VApp/variables.scss +6 -0
  32. package/lib/components/VAppBar/VAppBar.mjs +4 -3
  33. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -12
  35. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  36. package/lib/components/VAppBar/VAppBarTitle.mjs +4 -3
  37. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  38. package/lib/components/VAppBar/_variables.scss +2 -0
  39. package/lib/components/VAutocomplete/VAutocomplete.css +10 -0
  40. package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -8
  41. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  42. package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
  43. package/lib/components/VAutocomplete/_variables.scss +1 -0
  44. package/lib/components/VAvatar/VAvatar.css +2 -0
  45. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  46. package/lib/components/VAvatar/VAvatar.sass +3 -0
  47. package/lib/components/VBadge/VBadge.mjs +8 -7
  48. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  49. package/lib/components/VBadge/_variables.scss +2 -2
  50. package/lib/components/VBanner/VBanner.css +7 -7
  51. package/lib/components/VBanner/VBanner.mjs +24 -17
  52. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  53. package/lib/components/VBanner/VBanner.sass +6 -7
  54. package/lib/components/VBanner/VBannerActions.mjs +1 -1
  55. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  56. package/lib/components/VBanner/index.mjs +0 -2
  57. package/lib/components/VBanner/index.mjs.map +1 -1
  58. package/lib/components/VBottomNavigation/VBottomNavigation.css +4 -11
  59. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -3
  60. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  61. package/lib/components/VBottomNavigation/VBottomNavigation.sass +5 -12
  62. package/lib/components/VBottomNavigation/_variables.scss +7 -8
  63. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +13 -6
  64. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +30 -19
  65. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  66. package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -3
  67. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
  68. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  69. package/lib/components/VBreadcrumbs/_variables.scss +2 -1
  70. package/lib/components/VBtn/VBtn.css +77 -13
  71. package/lib/components/VBtn/VBtn.mjs +63 -29
  72. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  73. package/lib/components/VBtn/VBtn.sass +86 -14
  74. package/lib/components/VBtn/_variables.scss +8 -1
  75. package/lib/components/VBtnGroup/VBtnGroup.css +1 -0
  76. package/lib/components/VBtnGroup/_variables.scss +2 -0
  77. package/lib/components/VBtnToggle/_variables.scss +1 -0
  78. package/lib/components/VCard/VCard.css +81 -64
  79. package/lib/components/VCard/VCard.mjs +62 -71
  80. package/lib/components/VCard/VCard.mjs.map +1 -1
  81. package/lib/components/VCard/VCard.sass +74 -61
  82. package/lib/components/VCard/VCardActions.mjs +1 -1
  83. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  84. package/lib/components/VCard/VCardItem.mjs +88 -0
  85. package/lib/components/VCard/VCardItem.mjs.map +1 -0
  86. package/lib/components/VCard/_variables.scss +40 -24
  87. package/lib/components/VCard/index.mjs +1 -5
  88. package/lib/components/VCard/index.mjs.map +1 -1
  89. package/lib/components/VCarousel/VCarousel.mjs +5 -4
  90. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  91. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  92. package/lib/components/VCarousel/_variables.scss +1 -0
  93. package/lib/components/VChip/VChip.css +137 -60
  94. package/lib/components/VChip/VChip.mjs +76 -37
  95. package/lib/components/VChip/VChip.mjs.map +1 -1
  96. package/lib/components/VChip/VChip.sass +6 -0
  97. package/lib/components/VChip/_mixins.scss +26 -6
  98. package/lib/components/VChip/_variables.scss +1 -5
  99. package/lib/components/VChipGroup/VChipGroup.mjs +4 -3
  100. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  101. package/lib/components/VChipGroup/VChipGroup.sass +1 -1
  102. package/lib/components/VChipGroup/_variables.scss +1 -1
  103. package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
  104. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  105. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
  106. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  107. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
  108. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  109. package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
  110. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  111. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
  112. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  113. package/lib/components/VColorPicker/_variables.scss +17 -10
  114. package/lib/components/VCombobox/VCombobox.css +10 -0
  115. package/lib/components/VCombobox/VCombobox.mjs +15 -17
  116. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  117. package/lib/components/VCombobox/VCombobox.sass +10 -0
  118. package/lib/components/VCombobox/_variables.scss +1 -0
  119. package/lib/components/VCounter/VCounter.mjs +16 -16
  120. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  121. package/lib/components/VCounter/VCounter.sass +1 -1
  122. package/lib/components/VCounter/_variables.scss +2 -1
  123. package/lib/components/VDialog/VDialog.css +2 -5
  124. package/lib/components/VDialog/VDialog.mjs +26 -26
  125. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  126. package/lib/components/VDialog/VDialog.sass +1 -4
  127. package/lib/components/VDialog/_variables.scss +0 -1
  128. package/lib/components/VDivider/VDivider.mjs +16 -17
  129. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  130. package/lib/components/VDivider/_variables.scss +3 -1
  131. package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -0
  132. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +9 -4
  133. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  134. package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -0
  135. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -7
  136. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  137. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  138. package/lib/components/VExpansionPanel/_variables.scss +15 -10
  139. package/lib/components/VField/VField.css +43 -24
  140. package/lib/components/VField/VField.mjs +18 -11
  141. package/lib/components/VField/VField.mjs.map +1 -1
  142. package/lib/components/VField/VField.sass +32 -18
  143. package/lib/components/VField/VFieldLabel.mjs +8 -9
  144. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  145. package/lib/components/VField/_variables.scss +3 -2
  146. package/lib/components/VFileInput/VFileInput.css +3 -3
  147. package/lib/components/VFileInput/VFileInput.mjs +14 -9
  148. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  149. package/lib/components/VFileInput/VFileInput.sass +3 -3
  150. package/lib/components/VFooter/VFooter.mjs +4 -3
  151. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  152. package/lib/components/VFooter/_variables.scss +2 -1
  153. package/lib/components/VForm/VForm.mjs +4 -4
  154. package/lib/components/VForm/VForm.mjs.map +1 -1
  155. package/lib/components/VGrid/VCol.mjs +2 -1
  156. package/lib/components/VGrid/VCol.mjs.map +1 -1
  157. package/lib/components/VGrid/VContainer.mjs +4 -3
  158. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  159. package/lib/components/VGrid/VRow.mjs +8 -3
  160. package/lib/components/VGrid/VRow.mjs.map +1 -1
  161. package/lib/components/VIcon/VIcon.css +0 -18
  162. package/lib/components/VIcon/VIcon.mjs +20 -21
  163. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  164. package/lib/components/VIcon/VIcon.sass +0 -18
  165. package/lib/components/VIcon/_variables.scss +2 -6
  166. package/lib/components/VIcon/index.mjs.map +1 -1
  167. package/lib/components/VImg/VImg.mjs +1 -0
  168. package/lib/components/VImg/VImg.mjs.map +1 -1
  169. package/lib/components/VInput/VInput.css +2 -1
  170. package/lib/components/VInput/VInput.mjs +10 -6
  171. package/lib/components/VInput/VInput.mjs.map +1 -1
  172. package/lib/components/VInput/VInput.sass +2 -1
  173. package/lib/components/VInput/_variables.scss +0 -1
  174. package/lib/components/VItemGroup/VItem.mjs +3 -0
  175. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  176. package/lib/components/VLabel/VLabel.mjs +4 -3
  177. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  178. package/lib/components/VLabel/_variables.scss +1 -0
  179. package/lib/components/VLayout/VLayout.css +0 -2
  180. package/lib/components/VLayout/VLayout.sass +0 -2
  181. package/lib/components/VLazy/VLazy.mjs +5 -3
  182. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  183. package/lib/components/VList/VList.css +6 -3
  184. package/lib/components/VList/VList.mjs +15 -17
  185. package/lib/components/VList/VList.mjs.map +1 -1
  186. package/lib/components/VList/VList.sass +6 -2
  187. package/lib/components/VList/VListChildren.mjs +25 -7
  188. package/lib/components/VList/VListChildren.mjs.map +1 -1
  189. package/lib/components/VList/VListGroup.mjs +47 -42
  190. package/lib/components/VList/VListGroup.mjs.map +1 -1
  191. package/lib/components/VList/VListItem.css +78 -52
  192. package/lib/components/VList/VListItem.mjs +94 -54
  193. package/lib/components/VList/VListItem.mjs.map +1 -1
  194. package/lib/components/VList/VListItem.sass +67 -38
  195. package/lib/components/VList/VListItemAction.mjs +8 -9
  196. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  197. package/lib/components/VList/VListItemMedia.mjs +4 -3
  198. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  199. package/lib/components/VList/VListSubheader.mjs +4 -3
  200. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  201. package/lib/components/VList/_variables.scss +12 -5
  202. package/lib/components/VList/index.mjs +2 -5
  203. package/lib/components/VList/index.mjs.map +1 -1
  204. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
  205. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  206. package/lib/components/VMain/VMain.css +21 -3
  207. package/lib/components/VMain/VMain.mjs +17 -11
  208. package/lib/components/VMain/VMain.mjs.map +1 -1
  209. package/lib/components/VMain/VMain.sass +18 -3
  210. package/lib/components/VMain/_variables.scss +1 -1
  211. package/lib/components/VMenu/VMenu.mjs +6 -6
  212. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  213. package/lib/components/VMessages/VMessages.mjs +5 -3
  214. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  215. package/lib/components/VMessages/_variables.scss +1 -1
  216. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +12 -17
  217. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +54 -19
  218. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  219. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +15 -20
  220. package/lib/components/VNavigationDrawer/_variables.scss +3 -2
  221. package/lib/components/VNavigationDrawer/sticky.mjs +72 -0
  222. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
  223. package/lib/components/VNavigationDrawer/touch.mjs +5 -2
  224. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  225. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  226. package/lib/components/VOverlay/VOverlay.mjs +18 -14
  227. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  228. package/lib/components/VOverlay/_variables.scss +1 -1
  229. package/lib/components/VOverlay/locationStrategies.mjs +267 -78
  230. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  231. package/lib/components/VOverlay/useActivator.mjs +5 -4
  232. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  233. package/lib/components/VOverlay/util/point.mjs +3 -3
  234. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  235. package/lib/components/VPagination/VPagination.mjs +42 -24
  236. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  237. package/lib/components/VParallax/VParallax.mjs +5 -5
  238. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  239. package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
  240. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  241. package/lib/components/VProgressCircular/_variables.scss +2 -0
  242. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
  243. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  244. package/lib/components/VProgressLinear/_variables.scss +1 -0
  245. package/lib/components/VRadio/VRadio.mjs +8 -17
  246. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  247. package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -5
  248. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  249. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
  250. package/lib/components/VRadioGroup/_variables.scss +3 -4
  251. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
  252. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  253. package/lib/components/VRating/VRating.mjs +6 -5
  254. package/lib/components/VRating/VRating.mjs.map +1 -1
  255. package/lib/components/VRating/VRating.sass +2 -0
  256. package/lib/components/VResponsive/VResponsive.mjs +7 -6
  257. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  258. package/lib/components/VSelect/VSelect.css +10 -0
  259. package/lib/components/VSelect/VSelect.mjs +14 -11
  260. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  261. package/lib/components/VSelect/VSelect.sass +10 -0
  262. package/lib/components/VSelect/_variables.scss +1 -0
  263. package/lib/components/VSelectionControl/VSelectionControl.mjs +15 -9
  264. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  265. package/lib/components/VSelectionControl/_variables.scss +1 -0
  266. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
  267. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  268. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -5
  269. package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
  270. package/lib/components/VSheet/VSheet.mjs +3 -3
  271. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  272. package/lib/components/VSheet/_variables.scss +3 -2
  273. package/lib/components/VSlideGroup/VSlideGroup.mjs +47 -49
  274. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  275. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +7 -3
  276. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  277. package/lib/components/VSlideGroup/_variables.scss +0 -5
  278. package/lib/components/VSlideGroup/index.mjs +2 -2
  279. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  280. package/lib/components/VSlider/VSlider.mjs +7 -9
  281. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  282. package/lib/components/VSlider/VSliderThumb.mjs +6 -5
  283. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  284. package/lib/components/VSlider/VSliderTrack.mjs +11 -10
  285. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  286. package/lib/components/VSlider/slider.mjs +4 -4
  287. package/lib/components/VSlider/slider.mjs.map +1 -1
  288. package/lib/components/VSnackbar/VSnackbar.css +1 -1
  289. package/lib/components/VSnackbar/VSnackbar.mjs +50 -50
  290. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  291. package/lib/components/VSnackbar/_variables.scss +3 -3
  292. package/lib/components/VSwitch/VSwitch.css +7 -0
  293. package/lib/components/VSwitch/VSwitch.sass +6 -0
  294. package/lib/components/VSwitch/_variables.scss +1 -0
  295. package/lib/components/VSystemBar/VSystemBar.mjs +5 -13
  296. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  297. package/lib/components/VSystemBar/_variables.scss +2 -1
  298. package/lib/components/VTable/VTable.css +1 -0
  299. package/lib/components/VTable/VTable.mjs +9 -8
  300. package/lib/components/VTable/VTable.mjs.map +1 -1
  301. package/lib/components/VTable/VTable.sass +1 -0
  302. package/lib/components/VTable/_variables.scss +2 -0
  303. package/lib/components/VTabs/VTab.css +3 -2
  304. package/lib/components/VTabs/VTab.mjs +4 -4
  305. package/lib/components/VTabs/VTab.mjs.map +1 -1
  306. package/lib/components/VTabs/VTab.sass +4 -2
  307. package/lib/components/VTabs/VTabs.mjs +15 -12
  308. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  309. package/lib/components/VTabs/_variables.scss +3 -1
  310. package/lib/components/VTextField/VTextField.css +2 -1
  311. package/lib/components/VTextField/VTextField.mjs +31 -23
  312. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  313. package/lib/components/VTextField/VTextField.sass +2 -1
  314. package/lib/components/VTextField/_variables.scss +1 -1
  315. package/lib/components/VTextarea/VTextarea.css +6 -2
  316. package/lib/components/VTextarea/VTextarea.mjs +39 -22
  317. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  318. package/lib/components/VTextarea/VTextarea.sass +9 -2
  319. package/lib/components/VTextarea/_variables.scss +1 -1
  320. package/lib/components/VTimeline/VTimeline.css +123 -112
  321. package/lib/components/VTimeline/VTimeline.mjs +24 -25
  322. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  323. package/lib/components/VTimeline/VTimeline.sass +132 -113
  324. package/lib/components/VTimeline/VTimelineDivider.mjs +44 -38
  325. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  326. package/lib/components/VTimeline/VTimelineItem.mjs +13 -12
  327. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  328. package/lib/components/VTimeline/_variables.scss +11 -6
  329. package/lib/components/VToolbar/VToolbar.css +17 -32
  330. package/lib/components/VToolbar/VToolbar.mjs +12 -13
  331. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  332. package/lib/components/VToolbar/VToolbar.sass +17 -18
  333. package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
  334. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  335. package/lib/components/VToolbar/_variables.scss +7 -7
  336. package/lib/components/VTooltip/VTooltip.mjs +41 -39
  337. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  338. package/lib/components/VTooltip/_variables.scss +1 -0
  339. package/lib/components/VWindow/VWindow.mjs +4 -4
  340. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  341. package/lib/components/VWindow/VWindowItem.mjs +13 -9
  342. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  343. package/lib/components/VWindow/_variables.scss +1 -0
  344. package/lib/components/index.d.ts +1653 -5068
  345. package/lib/components/transitions/dialog-transition.mjs +3 -0
  346. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  347. package/lib/components/transitions/index.mjs +0 -5
  348. package/lib/components/transitions/index.mjs.map +1 -1
  349. package/lib/composables/border.mjs +5 -6
  350. package/lib/composables/border.mjs.map +1 -1
  351. package/lib/composables/color.mjs +19 -26
  352. package/lib/composables/color.mjs.map +1 -1
  353. package/lib/composables/defaults.mjs +1 -1
  354. package/lib/composables/defaults.mjs.map +1 -1
  355. package/lib/composables/form.mjs +29 -9
  356. package/lib/composables/form.mjs.map +1 -1
  357. package/lib/composables/{forwardRef.mjs → forwardRefs.mjs} +29 -3
  358. package/lib/composables/forwardRefs.mjs.map +1 -0
  359. package/lib/composables/group.mjs.map +1 -1
  360. package/lib/composables/index.mjs +3 -2
  361. package/lib/composables/index.mjs.map +1 -1
  362. package/lib/composables/layout.mjs +12 -12
  363. package/lib/composables/layout.mjs.map +1 -1
  364. package/lib/composables/location.mjs +4 -8
  365. package/lib/composables/location.mjs.map +1 -1
  366. package/lib/composables/proxiedModel.mjs +2 -1
  367. package/lib/composables/proxiedModel.mjs.map +1 -1
  368. package/lib/composables/rtl.mjs +2 -2
  369. package/lib/composables/rtl.mjs.map +1 -1
  370. package/lib/composables/size.mjs +18 -14
  371. package/lib/composables/size.mjs.map +1 -1
  372. package/lib/composables/stack.mjs +22 -12
  373. package/lib/composables/stack.mjs.map +1 -1
  374. package/lib/composables/theme.mjs +18 -10
  375. package/lib/composables/theme.mjs.map +1 -1
  376. package/lib/composables/validation.mjs +14 -4
  377. package/lib/composables/validation.mjs.map +1 -1
  378. package/lib/composables/variant.mjs +4 -2
  379. package/lib/composables/variant.mjs.map +1 -1
  380. package/lib/entry-bundler.mjs +1 -1
  381. package/lib/framework.mjs +7 -2
  382. package/lib/framework.mjs.map +1 -1
  383. package/lib/index.d.ts +39 -47
  384. package/lib/styles/generic/_colors.scss +17 -9
  385. package/lib/styles/generic/_transitions.scss +13 -77
  386. package/lib/styles/main.css +1170 -1420
  387. package/lib/styles/settings/_utilities.scss +16 -5
  388. package/lib/styles/utilities/_index.sass +0 -1
  389. package/lib/util/anchor.mjs +33 -29
  390. package/lib/util/anchor.mjs.map +1 -1
  391. package/lib/util/animation.mjs +2 -2
  392. package/lib/util/animation.mjs.map +1 -1
  393. package/lib/util/box.mjs +12 -0
  394. package/lib/util/box.mjs.map +1 -1
  395. package/lib/util/colorUtils.mjs +2 -2
  396. package/lib/util/colorUtils.mjs.map +1 -1
  397. package/lib/util/colors.mjs +1 -1
  398. package/lib/util/colors.mjs.map +1 -1
  399. package/lib/util/defineComponent.mjs +6 -3
  400. package/lib/util/defineComponent.mjs.map +1 -1
  401. package/lib/util/helpers.mjs +24 -1
  402. package/lib/util/helpers.mjs.map +1 -1
  403. package/lib/util/injectSelf.mjs +12 -0
  404. package/lib/util/injectSelf.mjs.map +1 -0
  405. package/package.json +10 -10
  406. package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
  407. package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
  408. package/lib/components/VBanner/VBannerIcon.mjs +0 -20
  409. package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
  410. package/lib/components/VBreadcrumbs/shared.mjs +0 -2
  411. package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
  412. package/lib/components/VCard/VCardAvatar.mjs +0 -3
  413. package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
  414. package/lib/components/VCard/VCardContent.mjs +0 -3
  415. package/lib/components/VCard/VCardContent.mjs.map +0 -1
  416. package/lib/components/VCard/VCardHeader.mjs +0 -3
  417. package/lib/components/VCard/VCardHeader.mjs.map +0 -1
  418. package/lib/components/VCard/VCardHeaderText.mjs +0 -3
  419. package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
  420. package/lib/components/VCard/VCardImg.mjs +0 -3
  421. package/lib/components/VCard/VCardImg.mjs.map +0 -1
  422. package/lib/components/VList/VListItemAvatar.mjs +0 -23
  423. package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
  424. package/lib/components/VList/VListItemHeader.mjs +0 -3
  425. package/lib/components/VList/VListItemHeader.mjs.map +0 -1
  426. package/lib/components/VList/VListItemIcon.mjs +0 -23
  427. package/lib/components/VList/VListItemIcon.mjs.map +0 -1
  428. package/lib/components/VTimeline/shared.mjs +0 -2
  429. package/lib/components/VTimeline/shared.mjs.map +0 -1
  430. package/lib/composables/forwardRef.mjs.map +0 -1
  431. package/lib/presets/default/index.mjs +0 -71
  432. package/lib/presets/default/index.mjs.map +0 -1
  433. package/lib/styles/utilities/_text.sass +0 -9
@@ -7,8 +7,9 @@ import { VSlideYTransition } from "../transitions/index.mjs"; // Composables
7
7
  import { makeTransitionProps, MaybeTransition } from "../../composables/transition.mjs";
8
8
  import { useTextColor } from "../../composables/color.mjs"; // Utilities
9
9
 
10
- import { defineComponent, wrapInArray } from "../../util/index.mjs";
11
10
  import { computed } from 'vue';
11
+ import { defineComponent, useRender, wrapInArray } from "../../util/index.mjs"; // Types
12
+
12
13
  export const VMessages = defineComponent({
13
14
  name: 'VMessages',
14
15
  props: {
@@ -36,7 +37,7 @@ export const VMessages = defineComponent({
36
37
  textColorClasses,
37
38
  textColorStyles
38
39
  } = useTextColor(computed(() => props.color));
39
- return () => _createVNode(MaybeTransition, {
40
+ useRender(() => _createVNode(MaybeTransition, {
40
41
  "transition": props.transition,
41
42
  "tag": "div",
42
43
  "class": ['v-messages', textColorClasses.value],
@@ -48,7 +49,8 @@ export const VMessages = defineComponent({
48
49
  }, [slots.message ? slots.message({
49
50
  message
50
51
  }) : message]))]
51
- });
52
+ }));
53
+ return {};
52
54
  }
53
55
 
54
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VMessages.mjs","names":["VSlideYTransition","makeTransitionProps","MaybeTransition","useTextColor","defineComponent","wrapInArray","computed","VMessages","name","props","active","Boolean","color","String","messages","type","Array","default","transition","component","leaveAbsolute","group","setup","slots","textColorClasses","textColorStyles","value","map","message","i"],"sources":["../../../src/components/VMessages/VMessages.tsx"],"sourcesContent":["// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, wrapInArray } from '@/util'\nimport { computed } from 'vue'\nimport type { PropType } from 'vue'\n\nexport const VMessages = defineComponent({\n name: 'VMessages',\n\n props: {\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true,\n },\n }),\n },\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n return () => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n ) }\n </MaybeTransition>\n )\n },\n})\n"],"mappings":";AAAA;AACA,yB,CAEA;;SACSA,iB,oCAET;;SACSC,mB,EAAqBC,e;SACrBC,Y,uCAET;;SACSC,e,EAAiBC,W;AAC1B,SAASC,QAAT,QAAyB,KAAzB;AAGA,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC;EACvCI,IAAI,EAAE,WADiC;EAGvCC,KAAK,EAAE;IACLC,MAAM,EAAEC,OADH;IAELC,KAAK,EAAEC,MAFF;IAGLC,QAAQ,EAAE;MACRC,IAAI,EAAE,CAACC,KAAD,EAAQH,MAAR,CADE;MAERI,OAAO,EAAE,MAAO;IAFR,CAHL;IAQL,GAAGhB,mBAAmB,CAAC;MACrBiB,UAAU,EAAE;QACVC,SAAS,EAAEnB,iBADD;QAEVoB,aAAa,EAAE,IAFL;QAGVC,KAAK,EAAE;MAHG;IADS,CAAD;EARjB,CAHgC;;EAoBvCC,KAAK,CAAEb,KAAF,QAAoB;IAAA,IAAX;MAAEc;IAAF,CAAW;IACvB,MAAMT,QAAQ,GAAGR,QAAQ,CAAC,MAAMD,WAAW,CAACI,KAAK,CAACK,QAAP,CAAlB,CAAzB;IACA,MAAM;MAAEU,gBAAF;MAAoBC;IAApB,IAAwCtB,YAAY,CAACG,QAAQ,CAAC,MAAMG,KAAK,CAACG,KAAb,CAAT,CAA1D;IAEA,OAAO;MAAA,cAEUH,KAAK,CAACS,UAFhB;MAAA,OAGC,KAHD;MAAA,SAII,CACL,YADK,EAELM,gBAAgB,CAACE,KAFZ,CAJJ;MAAA,SAQKD,eAAe,CAACC;IARrB;MAAA,gBAUDjB,KAAK,CAACC,MAAN,IACAI,QAAQ,CAACY,KAAT,CAAeC,GAAf,CAAmB,CAACC,OAAD,EAAUC,CAAV;QAAA,SAET,qBAFS;QAAA,OAGR,GAAEA,CAAE,IAAGf,QAAQ,CAACY,KAAM;MAHd,IAKbH,KAAK,CAACK,OAAN,GAAgBL,KAAK,CAACK,OAAN,CAAc;QAAEA;MAAF,CAAd,CAAhB,GAA6CA,OALhC,EAAnB,CAXC;IAAA,EAAP;EAsBD;;AA9CsC,CAAD,CAAjC"}
1
+ {"version":3,"file":"VMessages.mjs","names":["VSlideYTransition","makeTransitionProps","MaybeTransition","useTextColor","computed","defineComponent","useRender","wrapInArray","VMessages","name","props","active","Boolean","color","String","messages","type","Array","default","transition","component","leaveAbsolute","group","setup","slots","textColorClasses","textColorStyles","value","map","message","i"],"sources":["../../../src/components/VMessages/VMessages.tsx"],"sourcesContent":["// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VMessages = defineComponent({\n name: 'VMessages',\n\n props: {\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true,\n },\n }),\n },\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n useRender(() => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n ) }\n </MaybeTransition>\n ))\n\n return {}\n },\n})\n"],"mappings":";AAAA;AACA,yB,CAEA;;SACSA,iB,oCAET;;SACSC,mB,EAAqBC,e;SACrBC,Y,uCAET;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,e,EAAiBC,S,EAAWC,W,gCAErC;;AAGA,OAAO,MAAMC,SAAS,GAAGH,eAAe,CAAC;EACvCI,IAAI,EAAE,WADiC;EAGvCC,KAAK,EAAE;IACLC,MAAM,EAAEC,OADH;IAELC,KAAK,EAAEC,MAFF;IAGLC,QAAQ,EAAE;MACRC,IAAI,EAAE,CAACC,KAAD,EAAQH,MAAR,CADE;MAERI,OAAO,EAAE,MAAO;IAFR,CAHL;IAQL,GAAGjB,mBAAmB,CAAC;MACrBkB,UAAU,EAAE;QACVC,SAAS,EAAEpB,iBADD;QAEVqB,aAAa,EAAE,IAFL;QAGVC,KAAK,EAAE;MAHG;IADS,CAAD;EARjB,CAHgC;;EAoBvCC,KAAK,CAAEb,KAAF,QAAoB;IAAA,IAAX;MAAEc;IAAF,CAAW;IACvB,MAAMT,QAAQ,GAAGX,QAAQ,CAAC,MAAMG,WAAW,CAACG,KAAK,CAACK,QAAP,CAAlB,CAAzB;IACA,MAAM;MAAEU,gBAAF;MAAoBC;IAApB,IAAwCvB,YAAY,CAACC,QAAQ,CAAC,MAAMM,KAAK,CAACG,KAAb,CAAT,CAA1D;IAEAP,SAAS,CAAC;MAAA,cAEOI,KAAK,CAACS,UAFb;MAAA,OAGF,KAHE;MAAA,SAIC,CACL,YADK,EAELM,gBAAgB,CAACE,KAFZ,CAJD;MAAA,SAQED,eAAe,CAACC;IARlB;MAAA,gBAUJjB,KAAK,CAACC,MAAN,IACAI,QAAQ,CAACY,KAAT,CAAeC,GAAf,CAAmB,CAACC,OAAD,EAAUC,CAAV;QAAA,SAET,qBAFS;QAAA,OAGR,GAAEA,CAAE,IAAGf,QAAQ,CAACY,KAAM;MAHd,IAKbH,KAAK,CAACK,OAAN,GAAgBL,KAAK,CAACK,OAAN,CAAc;QAAEA;MAAF,CAAd,CAAhB,GAA6CA,OALhC,EAAnB,CAXI;IAAA,EAAD,CAAT;IAuBA,OAAO,EAAP;EACD;;AAhDsC,CAAD,CAAjC"}
@@ -1,4 +1,4 @@
1
- // Defaults
1
+ // VMessages
2
2
  $messages-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default;
3
3
  $messages-font-size: 12px !default;
4
4
  $messages-line-height: $messages-font-size !default;
@@ -7,7 +7,7 @@
7
7
  max-width: 100%;
8
8
  pointer-events: auto;
9
9
  transition-duration: 0.2s;
10
- transition-property: box-shadow, transform, visibility, width;
10
+ transition-property: box-shadow, transform, visibility, width, height, left, right, top, bottom;
11
11
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
12
12
  will-change: transform;
13
13
  position: absolute;
@@ -29,29 +29,17 @@
29
29
  left: 0;
30
30
  border-top-width: thin;
31
31
  }
32
- .v-navigation-drawer--start {
32
+ .v-navigation-drawer--left {
33
33
  top: 0;
34
- border-inline-end-width: thin;
35
- }
36
- .v-navigation-drawer--start.v-locale--is-ltr, .v-locale--is-ltr .v-navigation-drawer--start {
37
34
  left: 0;
38
35
  right: auto;
36
+ border-right-width: thin;
39
37
  }
40
- .v-navigation-drawer--start.v-locale--is-rtl, .v-locale--is-rtl .v-navigation-drawer--start {
41
- left: auto;
42
- right: 0;
43
- }
44
- .v-navigation-drawer--end {
38
+ .v-navigation-drawer--right {
45
39
  top: 0;
46
- border-inline-start-width: thin;
47
- }
48
- .v-navigation-drawer--end.v-locale--is-ltr, .v-locale--is-ltr .v-navigation-drawer--end {
49
40
  left: auto;
50
41
  right: 0;
51
- }
52
- .v-navigation-drawer--end.v-locale--is-rtl, .v-locale--is-rtl .v-navigation-drawer--end {
53
- left: 0;
54
- right: auto;
42
+ border-left-width: thin;
55
43
  }
56
44
  .v-navigation-drawer--floating {
57
45
  border: none;
@@ -59,6 +47,13 @@
59
47
  .v-navigation-drawer--temporary {
60
48
  box-shadow: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), 0px 16px 24px 2px rgba(0, 0, 0, 0.14), 0px 6px 30px 5px rgba(0, 0, 0, 0.12);
61
49
  }
50
+ .v-navigation-drawer--sticky {
51
+ height: auto;
52
+ transition: box-shadow, transform, visibility, width, height, left, right;
53
+ }
54
+ .v-navigation-drawer .v-list {
55
+ overflow: hidden;
56
+ }
62
57
 
63
58
  .v-navigation-drawer__content {
64
59
  flex: 0 1 auto;
@@ -8,16 +8,20 @@ import { makeLayoutItemProps, useLayoutItem } from "../../composables/layout.mjs
8
8
  import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
9
9
  import { makeTagProps } from "../../composables/tag.mjs";
10
10
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
11
+ import { provideDefaults } from "../../composables/defaults.mjs";
11
12
  import { useBackgroundColor } from "../../composables/color.mjs";
12
13
  import { useDisplay } from "../../composables/display.mjs";
13
14
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
14
15
  import { useRouter } from "../../composables/router.mjs";
16
+ import { useRtl } from "../../composables/index.mjs";
15
17
  import { useSsrBoot } from "../../composables/ssrBoot.mjs";
18
+ import { useSticky } from "./sticky.mjs";
16
19
  import { useTouch } from "./touch.mjs"; // Utilities
17
20
 
18
21
  import { computed, onBeforeMount, ref, toRef, Transition, watch } from 'vue';
19
- import { convertToUnit, defineComponent } from "../../util/index.mjs"; // Types
22
+ import { convertToUnit, defineComponent, toPhysical, useRender } from "../../util/index.mjs"; // Types
20
23
 
24
+ const locations = ['start', 'end', 'left', 'right', 'bottom'];
21
25
  export const VNavigationDrawer = defineComponent({
22
26
  name: 'VNavigationDrawer',
23
27
  props: {
@@ -34,7 +38,11 @@ export const VNavigationDrawer = defineComponent({
34
38
  rail: Boolean,
35
39
  railWidth: {
36
40
  type: [Number, String],
37
- default: 72
41
+ default: 56
42
+ },
43
+ scrim: {
44
+ type: [String, Boolean],
45
+ default: true
38
46
  },
39
47
  image: String,
40
48
  temporary: Boolean,
@@ -45,9 +53,10 @@ export const VNavigationDrawer = defineComponent({
45
53
  },
46
54
  location: {
47
55
  type: String,
48
- default: 'left',
49
- validator: value => ['left', 'right', 'bottom'].includes(value)
56
+ default: 'start',
57
+ validator: value => locations.includes(value)
50
58
  },
59
+ sticky: Boolean,
51
60
  ...makeBorderProps(),
52
61
  ...makeElevationProps(),
53
62
  ...makeLayoutItemProps(),
@@ -66,6 +75,9 @@ export const VNavigationDrawer = defineComponent({
66
75
  attrs,
67
76
  slots
68
77
  } = _ref;
78
+ const {
79
+ isRtl
80
+ } = useRtl();
69
81
  const {
70
82
  themeClasses
71
83
  } = provideTheme(props);
@@ -87,14 +99,19 @@ export const VNavigationDrawer = defineComponent({
87
99
  } = useRounded(props);
88
100
  const router = useRouter();
89
101
  const isActive = useProxiedModel(props, 'modelValue', null, v => !!v);
90
- const isHovering = ref(false);
91
102
  const {
92
103
  ssrBootStyles
93
104
  } = useSsrBoot();
105
+ const rootEl = ref();
106
+ const isHovering = ref(false);
94
107
  const width = computed(() => {
95
108
  return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
96
109
  });
110
+ const location = computed(() => {
111
+ return toPhysical(props.location, isRtl.value);
112
+ });
97
113
  const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary));
114
+ const isSticky = computed(() => props.sticky && !isTemporary.value && location.value !== 'bottom');
98
115
 
99
116
  if (!props.disableResizeWatcher) {
100
117
  watch(isTemporary, val => !props.permanent && (isActive.value = !val));
@@ -111,7 +128,6 @@ export const VNavigationDrawer = defineComponent({
111
128
  if (props.modelValue != null || isTemporary.value) return;
112
129
  isActive.value = props.permanent || !mobile.value;
113
130
  });
114
- const rootEl = ref();
115
131
  const {
116
132
  isDragging,
117
133
  dragProgress,
@@ -121,7 +137,7 @@ export const VNavigationDrawer = defineComponent({
121
137
  isTemporary,
122
138
  width,
123
139
  touchless: toRef(props, 'touchless'),
124
- position: toRef(props, 'location')
140
+ position: location
125
141
  });
126
142
  const layoutSize = computed(() => {
127
143
  const size = isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width.value;
@@ -134,13 +150,25 @@ export const VNavigationDrawer = defineComponent({
134
150
  } = useLayoutItem({
135
151
  id: props.name,
136
152
  order: computed(() => parseInt(props.order, 10)),
137
- position: toRef(props, 'location'),
153
+ position: location,
138
154
  layoutSize,
139
155
  elementSize: width,
140
156
  active: computed(() => isActive.value || isDragging.value),
141
157
  disableTransitions: computed(() => isDragging.value),
142
- absolute: toRef(props, 'absolute')
158
+ absolute: computed(() => // eslint-disable-next-line @typescript-eslint/no-use-before-define
159
+ props.absolute || isSticky.value && typeof isStuck.value !== 'string')
160
+ });
161
+ const {
162
+ isStuck,
163
+ stickyStyles
164
+ } = useSticky({
165
+ rootEl,
166
+ isSticky,
167
+ layoutItemStyles
143
168
  });
169
+ const scrimColor = useBackgroundColor(computed(() => {
170
+ return typeof props.scrim === 'string' ? props.scrim : null;
171
+ }));
144
172
  const scrimStyles = computed(() => ({ ...(isDragging.value ? {
145
173
  opacity: dragProgress.value * 0.2,
146
174
  transition: 'none'
@@ -153,7 +181,12 @@ export const VNavigationDrawer = defineComponent({
153
181
  } : undefined),
154
182
  ...layoutItemScrimStyles.value
155
183
  }));
156
- return () => {
184
+ provideDefaults({
185
+ VList: {
186
+ bgColor: 'transparent'
187
+ }
188
+ });
189
+ useRender(() => {
157
190
  var _slots$image, _slots$prepend, _slots$default, _slots$append;
158
191
 
159
192
  const hasImage = slots.image || props.image;
@@ -161,20 +194,19 @@ export const VNavigationDrawer = defineComponent({
161
194
  "ref": rootEl,
162
195
  "onMouseenter": () => isHovering.value = true,
163
196
  "onMouseleave": () => isHovering.value = false,
164
- "class": ['v-navigation-drawer', {
165
- 'v-navigation-drawer--bottom': props.location === 'bottom',
166
- 'v-navigation-drawer--end': props.location === 'right',
197
+ "class": ['v-navigation-drawer', `v-navigation-drawer--${location.value}`, {
167
198
  'v-navigation-drawer--expand-on-hover': props.expandOnHover,
168
199
  'v-navigation-drawer--floating': props.floating,
169
200
  'v-navigation-drawer--is-hovering': isHovering.value,
170
201
  'v-navigation-drawer--rail': props.rail,
171
- 'v-navigation-drawer--start': props.location === 'left',
172
202
  'v-navigation-drawer--temporary': isTemporary.value,
173
- 'v-navigation-drawer--active': isActive.value
203
+ 'v-navigation-drawer--active': isActive.value,
204
+ 'v-navigation-drawer--sticky': isSticky.value
174
205
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, elevationClasses.value, roundedClasses.value],
175
- "style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value]
206
+ "style": [backgroundColorStyles.value, layoutItemStyles.value, dragStyles.value, ssrBootStyles.value, stickyStyles.value]
176
207
  }, attrs), {
177
208
  default: () => [hasImage && _createVNode("div", {
209
+ "key": "image",
178
210
  "class": "v-navigation-drawer__img"
179
211
  }, [slots.image ? (_slots$image = slots.image) == null ? void 0 : _slots$image.call(slots, {
180
212
  image: props.image
@@ -191,12 +223,15 @@ export const VNavigationDrawer = defineComponent({
191
223
  }), _createVNode(Transition, {
192
224
  "name": "fade-transition"
193
225
  }, {
194
- default: () => [isTemporary.value && (isDragging.value || isActive.value) && _createVNode("div", {
195
- "class": "v-navigation-drawer__scrim",
196
- "style": scrimStyles.value,
226
+ default: () => [isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && _createVNode("div", {
227
+ "class": ['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value],
228
+ "style": [scrimStyles.value, scrimColor.backgroundColorStyles.value],
197
229
  "onClick": () => isActive.value = false
198
230
  }, null)]
199
231
  })]);
232
+ });
233
+ return {
234
+ isStuck
200
235
  };
201
236
  }
202
237
 
@@ -1 +1 @@
1
- {"version":3,"file":"VNavigationDrawer.mjs","names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","useDisplay","useProxiedModel","useRouter","useSsrBoot","useTouch","computed","onBeforeMount","ref","toRef","Transition","watch","convertToUnit","defineComponent","VNavigationDrawer","name","props","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","image","temporary","touchless","width","location","validator","value","includes","tag","emits","val","setup","attrs","slots","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","isHovering","ssrBootStyles","isTemporary","currentRoute","rootEl","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","scrimStyles","opacity","transition","undefined","left","right","top","bottom","hasImage","prepend","append"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: Boolean,\n railWidth: {\n type: [Number, String],\n default: 72,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<'left' | 'right' | 'bottom'>,\n default: 'left',\n validator: (value: any) => ['left', 'right', 'bottom'].includes(value),\n },\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const isHovering = ref(false)\n const { ssrBootStyles } = useSsrBoot()\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (isActive.value = !val))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const rootEl = ref<HTMLElement>()\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: toRef(props, 'location'),\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: toRef(props, 'absolute'),\n })\n\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n return () => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n {\n 'v-navigation-drawer--bottom': props.location === 'bottom',\n 'v-navigation-drawer--end': props.location === 'right',\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--start': props.location === 'left',\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && (\n <div\n class=\"v-navigation-drawer__scrim\"\n style={ scrimStyles.value }\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VNavigationDrawer.mjs","names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","provideDefaults","useBackgroundColor","useDisplay","useProxiedModel","useRouter","useRtl","useSsrBoot","useSticky","useTouch","computed","onBeforeMount","ref","toRef","Transition","watch","convertToUnit","defineComponent","toPhysical","useRender","locations","VNavigationDrawer","name","props","color","String","disableResizeWatcher","Boolean","disableRouteWatcher","expandOnHover","floating","modelValue","type","default","permanent","rail","railWidth","Number","scrim","image","temporary","touchless","width","location","validator","value","includes","sticky","tag","emits","val","setup","attrs","slots","isRtl","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","ssrBootStyles","rootEl","isHovering","isTemporary","isSticky","currentRoute","isDragging","dragProgress","dragStyles","position","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","order","parseInt","elementSize","active","disableTransitions","absolute","isStuck","stickyStyles","scrimColor","scrimStyles","opacity","transition","undefined","left","right","top","bottom","VList","bgColor","hasImage","prepend","append"],"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"sourcesContent":["// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useRtl } from '@/composables'\nimport { useSsrBoot } from '@/composables/ssrBoot'\nimport { useSticky } from './sticky'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent, toPhysical, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst locations = ['start', 'end', 'left', 'right', 'bottom'] as const\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: Boolean,\n railWidth: {\n type: [Number, String],\n default: 56,\n },\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n location: {\n type: String as PropType<typeof locations[number]>,\n default: 'start',\n validator: (value: any) => locations.includes(value),\n },\n sticky: Boolean,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const { ssrBootStyles } = useSsrBoot()\n\n const rootEl = ref<HTMLElement>()\n const isHovering = ref(false)\n\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const location = computed(() => {\n return toPhysical(props.location, isRtl.value) as 'left' | 'right' | 'bottom'\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const isSticky = computed(() =>\n props.sticky &&\n !isTemporary.value &&\n location.value !== 'bottom'\n )\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (isActive.value = !val))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: location,\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n order: computed(() => parseInt(props.order, 10)),\n position: location,\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: computed(() =>\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n props.absolute || (isSticky.value && typeof isStuck.value !== 'string')\n ),\n })\n\n const { isStuck, stickyStyles } = useSticky({ rootEl, isSticky, layoutItemStyles })\n\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n provideDefaults({\n VList: {\n bgColor: 'transparent',\n },\n })\n\n useRender(() => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n `v-navigation-drawer--${location.value}`,\n {\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n 'v-navigation-drawer--sticky': isSticky.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ssrBootStyles.value,\n stickyStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div key=\"image\" class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && !!props.scrim && (\n <div\n class={['v-navigation-drawer__scrim', scrimColor.backgroundColorClasses.value]}\n style={[scrimStyles.value, scrimColor.backgroundColorStyles.value]}\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n })\n\n return {\n isStuck,\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n"],"mappings":";AAAA;AACA,iC,CAEA;;SACSA,e,EAAiBC,S;SACjBC,kB,EAAoBC,Y;SACpBC,mB,EAAqBC,a;SACrBC,gB,EAAkBC,U;SAClBC,Y;SACAC,c,EAAgBC,Y;SAChBC,e;SACAC,kB;SACAC,U;SACAC,e;SACAC,S;SACAC,M;SACAC,U;SACAC,S;SACAC,Q,uBAET;;AACA,SAASC,QAAT,EAAmBC,aAAnB,EAAkCC,GAAlC,EAAuCC,KAAvC,EAA8CC,UAA9C,EAA0DC,KAA1D,QAAuE,KAAvE;SACSC,a,EAAeC,e,EAAiBC,U,EAAYC,S,gCAErD;;AAGA,MAAMC,SAAS,GAAG,CAAC,OAAD,EAAU,KAAV,EAAiB,MAAjB,EAAyB,OAAzB,EAAkC,QAAlC,CAAlB;AAEA,OAAO,MAAMC,iBAAiB,GAAGJ,eAAe,CAAC;EAC/CK,IAAI,EAAE,mBADyC;EAG/CC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAELC,oBAAoB,EAAEC,OAFjB;IAGLC,mBAAmB,EAAED,OAHhB;IAILE,aAAa,EAAEF,OAJV;IAKLG,QAAQ,EAAEH,OALL;IAMLI,UAAU,EAAE;MACVC,IAAI,EAAEL,OADI;MAEVM,OAAO,EAAE;IAFC,CANP;IAULC,SAAS,EAAEP,OAVN;IAWLQ,IAAI,EAAER,OAXD;IAYLS,SAAS,EAAE;MACTJ,IAAI,EAAE,CAACK,MAAD,EAASZ,MAAT,CADG;MAETQ,OAAO,EAAE;IAFA,CAZN;IAgBLK,KAAK,EAAE;MACLN,IAAI,EAAE,CAACP,MAAD,EAASE,OAAT,CADD;MAELM,OAAO,EAAE;IAFJ,CAhBF;IAoBLM,KAAK,EAAEd,MApBF;IAqBLe,SAAS,EAAEb,OArBN;IAsBLc,SAAS,EAAEd,OAtBN;IAuBLe,KAAK,EAAE;MACLV,IAAI,EAAE,CAACK,MAAD,EAASZ,MAAT,CADD;MAELQ,OAAO,EAAE;IAFJ,CAvBF;IA2BLU,QAAQ,EAAE;MACRX,IAAI,EAAEP,MADE;MAERQ,OAAO,EAAE,OAFD;MAGRW,SAAS,EAAGC,KAAD,IAAgBzB,SAAS,CAAC0B,QAAV,CAAmBD,KAAnB;IAHnB,CA3BL;IAgCLE,MAAM,EAAEpB,OAhCH;IAkCL,GAAGrC,eAAe,EAlCb;IAmCL,GAAGE,kBAAkB,EAnChB;IAoCL,GAAGE,mBAAmB,EApCjB;IAqCL,GAAGE,gBAAgB,EArCd;IAsCL,GAAGE,YAAY,CAAC;MAAEkD,GAAG,EAAE;IAAP,CAAD,CAtCV;IAuCL,GAAGjD,cAAc;EAvCZ,CAHwC;EA6C/CkD,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAkB;EADlC,CA7CwC;;EAiD/CC,KAAK,CAAE5B,KAAF,QAA2B;IAAA,IAAlB;MAAE6B,KAAF;MAASC;IAAT,CAAkB;IAC9B,MAAM;MAAEC;IAAF,IAAYhD,MAAM,EAAxB;IACA,MAAM;MAAEiD;IAAF,IAAmBvD,YAAY,CAACuB,KAAD,CAArC;IACA,MAAM;MAAEiC;IAAF,IAAoBjE,SAAS,CAACgC,KAAD,CAAnC;IACA,MAAM;MAAEkC,sBAAF;MAA0BC;IAA1B,IAAoDxD,kBAAkB,CAACW,KAAK,CAACU,KAAD,EAAQ,OAAR,CAAN,CAA5E;IACA,MAAM;MAAEoC;IAAF,IAAuBlE,YAAY,CAAC8B,KAAD,CAAzC;IACA,MAAM;MAAEqC;IAAF,IAAazD,UAAU,EAA7B;IACA,MAAM;MAAE0D;IAAF,IAAqBhE,UAAU,CAAC0B,KAAD,CAArC;IACA,MAAMuC,MAAM,GAAGzD,SAAS,EAAxB;IACA,MAAM0D,QAAQ,GAAG3D,eAAe,CAACmB,KAAD,EAAQ,YAAR,EAAsB,IAAtB,EAA4ByC,CAAC,IAAI,CAAC,CAACA,CAAnC,CAAhC;IACA,MAAM;MAAEC;IAAF,IAAoB1D,UAAU,EAApC;IAEA,MAAM2D,MAAM,GAAGtD,GAAG,EAAlB;IACA,MAAMuD,UAAU,GAAGvD,GAAG,CAAC,KAAD,CAAtB;IAEA,MAAM8B,KAAK,GAAGhC,QAAQ,CAAC,MAAM;MAC3B,OAAQa,KAAK,CAACY,IAAN,IAAcZ,KAAK,CAACM,aAApB,IAAqCsC,UAAU,CAACtB,KAAjD,GACHR,MAAM,CAACd,KAAK,CAACmB,KAAP,CADH,GAEHL,MAAM,CAACd,KAAK,CAACY,IAAN,GAAaZ,KAAK,CAACa,SAAnB,GAA+Bb,KAAK,CAACmB,KAAtC,CAFV;IAGD,CAJqB,CAAtB;IAKA,MAAMC,QAAQ,GAAGjC,QAAQ,CAAC,MAAM;MAC9B,OAAOQ,UAAU,CAACK,KAAK,CAACoB,QAAP,EAAiBW,KAAK,CAACT,KAAvB,CAAjB;IACD,CAFwB,CAAzB;IAGA,MAAMuB,WAAW,GAAG1D,QAAQ,CAAC,MAAM,CAACa,KAAK,CAACW,SAAP,KAAqB0B,MAAM,CAACf,KAAP,IAAgBtB,KAAK,CAACiB,SAA3C,CAAP,CAA5B;IACA,MAAM6B,QAAQ,GAAG3D,QAAQ,CAAC,MACxBa,KAAK,CAACwB,MAAN,IACA,CAACqB,WAAW,CAACvB,KADb,IAEAF,QAAQ,CAACE,KAAT,KAAmB,QAHI,CAAzB;;IAMA,IAAI,CAACtB,KAAK,CAACG,oBAAX,EAAiC;MAC/BX,KAAK,CAACqD,WAAD,EAAclB,GAAG,IAAI,CAAC3B,KAAK,CAACW,SAAP,KAAqB6B,QAAQ,CAAClB,KAAT,GAAiB,CAACK,GAAvC,CAArB,CAAL;IACD;;IAED,IAAI,CAAC3B,KAAK,CAACK,mBAAP,IAA8BkC,MAAlC,EAA0C;MACxC/C,KAAK,CAAC+C,MAAM,CAACQ,YAAR,EAAsB,MAAMF,WAAW,CAACvB,KAAZ,KAAsBkB,QAAQ,CAAClB,KAAT,GAAiB,KAAvC,CAA5B,CAAL;IACD;;IAED9B,KAAK,CAAC,MAAMQ,KAAK,CAACW,SAAb,EAAwBgB,GAAG,IAAI;MAClC,IAAIA,GAAJ,EAASa,QAAQ,CAAClB,KAAT,GAAiB,IAAjB;IACV,CAFI,CAAL;IAIAlC,aAAa,CAAC,MAAM;MAClB,IAAIY,KAAK,CAACQ,UAAN,IAAoB,IAApB,IAA4BqC,WAAW,CAACvB,KAA5C,EAAmD;MAEnDkB,QAAQ,CAAClB,KAAT,GAAiBtB,KAAK,CAACW,SAAN,IAAmB,CAAC0B,MAAM,CAACf,KAA5C;IACD,CAJY,CAAb;IAMA,MAAM;MAAE0B,UAAF;MAAcC,YAAd;MAA4BC;IAA5B,IAA2ChE,QAAQ,CAAC;MACxDsD,QADwD;MAExDK,WAFwD;MAGxD1B,KAHwD;MAIxDD,SAAS,EAAE5B,KAAK,CAACU,KAAD,EAAQ,WAAR,CAJwC;MAKxDmD,QAAQ,EAAE/B;IAL8C,CAAD,CAAzD;IAQA,MAAMgC,UAAU,GAAGjE,QAAQ,CAAC,MAAM;MAChC,MAAMkE,IAAI,GAAGR,WAAW,CAACvB,KAAZ,GAAoB,CAApB,GACTtB,KAAK,CAACY,IAAN,IAAcZ,KAAK,CAACM,aAApB,GAAoCQ,MAAM,CAACd,KAAK,CAACa,SAAP,CAA1C,GACAM,KAAK,CAACG,KAFV;MAIA,OAAO0B,UAAU,CAAC1B,KAAX,GAAmB+B,IAAI,GAAGJ,YAAY,CAAC3B,KAAvC,GAA+C+B,IAAtD;IACD,CAN0B,CAA3B;IAQA,MAAM;MAAEC,gBAAF;MAAoBC,UAApB;MAAgCC;IAAhC,IAA0DpF,aAAa,CAAC;MAC5EqF,EAAE,EAAEzD,KAAK,CAACD,IADkE;MAE5E2D,KAAK,EAAEvE,QAAQ,CAAC,MAAMwE,QAAQ,CAAC3D,KAAK,CAAC0D,KAAP,EAAc,EAAd,CAAf,CAF6D;MAG5EP,QAAQ,EAAE/B,QAHkE;MAI5EgC,UAJ4E;MAK5EQ,WAAW,EAAEzC,KAL+D;MAM5E0C,MAAM,EAAE1E,QAAQ,CAAC,MAAMqD,QAAQ,CAAClB,KAAT,IAAkB0B,UAAU,CAAC1B,KAApC,CAN4D;MAO5EwC,kBAAkB,EAAE3E,QAAQ,CAAC,MAAM6D,UAAU,CAAC1B,KAAlB,CAPgD;MAQ5EyC,QAAQ,EAAE5E,QAAQ,CAAC,MACjB;MACAa,KAAK,CAAC+D,QAAN,IAAmBjB,QAAQ,CAACxB,KAAT,IAAkB,OAAO0C,OAAO,CAAC1C,KAAf,KAAyB,QAF9C;IAR0D,CAAD,CAA7E;IAcA,MAAM;MAAE0C,OAAF;MAAWC;IAAX,IAA4BhF,SAAS,CAAC;MAAE0D,MAAF;MAAUG,QAAV;MAAoBQ;IAApB,CAAD,CAA3C;IAEA,MAAMY,UAAU,GAAGvF,kBAAkB,CAACQ,QAAQ,CAAC,MAAM;MACnD,OAAO,OAAOa,KAAK,CAACe,KAAb,KAAuB,QAAvB,GAAkCf,KAAK,CAACe,KAAxC,GAAgD,IAAvD;IACD,CAF6C,CAAT,CAArC;IAGA,MAAMoD,WAAW,GAAGhF,QAAQ,CAAC,OAAO,EAClC,IAAG6D,UAAU,CAAC1B,KAAX,GAAmB;QACpB8C,OAAO,EAAEnB,YAAY,CAAC3B,KAAb,GAAqB,GADV;QAEpB+C,UAAU,EAAE;MAFQ,CAAnB,GAGCC,SAHJ,CADkC;MAKlC,IAAGf,UAAU,CAACjC,KAAX,GAAmB;QACpBiD,IAAI,EAAE9E,aAAa,CAAC8D,UAAU,CAACjC,KAAX,CAAiBiD,IAAlB,CADC;QAEpBC,KAAK,EAAE/E,aAAa,CAAC8D,UAAU,CAACjC,KAAX,CAAiBkD,KAAlB,CAFA;QAGpBC,GAAG,EAAEhF,aAAa,CAAC8D,UAAU,CAACjC,KAAX,CAAiBmD,GAAlB,CAHE;QAIpBC,MAAM,EAAEjF,aAAa,CAAC8D,UAAU,CAACjC,KAAX,CAAiBoD,MAAlB;MAJD,CAAnB,GAKCJ,SALJ,CALkC;MAWlC,GAAGd,qBAAqB,CAAClC;IAXS,CAAP,CAAD,CAA5B;IAcA5C,eAAe,CAAC;MACdiG,KAAK,EAAE;QACLC,OAAO,EAAE;MADJ;IADO,CAAD,CAAf;IAMAhF,SAAS,CAAC,MAAM;MAAA;;MACd,MAAMiF,QAAQ,GAAI/C,KAAK,CAACd,KAAN,IAAehB,KAAK,CAACgB,KAAvC;MAEA;QAAA,OAGY2B,MAHZ;QAAA,gBAIqB,MAAOC,UAAU,CAACtB,KAAX,GAAmB,IAJ/C;QAAA,gBAKqB,MAAOsB,UAAU,CAACtB,KAAX,GAAmB,KAL/C;QAAA,SAMa,CACL,qBADK,EAEJ,wBAAuBF,QAAQ,CAACE,KAAM,EAFlC,EAGL;UACE,wCAAwCtB,KAAK,CAACM,aADhD;UAEE,iCAAiCN,KAAK,CAACO,QAFzC;UAGE,oCAAoCqC,UAAU,CAACtB,KAHjD;UAIE,6BAA6BtB,KAAK,CAACY,IAJrC;UAKE,kCAAkCiC,WAAW,CAACvB,KALhD;UAME,+BAA+BkB,QAAQ,CAAClB,KAN1C;UAOE,+BAA+BwB,QAAQ,CAACxB;QAP1C,CAHK,EAYLU,YAAY,CAACV,KAZR,EAaLY,sBAAsB,CAACZ,KAblB,EAcLW,aAAa,CAACX,KAdT,EAeLc,gBAAgB,CAACd,KAfZ,EAgBLgB,cAAc,CAAChB,KAhBV,CANb;QAAA,SAwBa,CACLa,qBAAqB,CAACb,KADjB,EAELgC,gBAAgB,CAAChC,KAFZ,EAGL4B,UAAU,CAAC5B,KAHN,EAILoB,aAAa,CAACpB,KAJT,EAKL2C,YAAY,CAAC3C,KALR;MAxBb,GA+BWO,KA/BX;QAAA,gBAiCQgD,QAAQ;UAAA,OACC,OADD;UAAA,SACe;QADf,IAEJ/C,KAAK,CAACd,KAAN,mBACEc,KAAK,CAACd,KADR,qBACE,kBAAAc,KAAK,EAAS;UAAEd,KAAK,EAAEhB,KAAK,CAACgB;QAAf,CAAT,CADP;UAAA,OAEchB,KAAK,CAACgB,KAFpB;UAAA,OAEgC;QAFhC,QAFI,EAjChB,EA0CQc,KAAK,CAACgD,OAAN;UAAA,SACW;QADX,sBAEIhD,KAAK,CAACgD,OAFV,qBAEI,oBAAAhD,KAAK,CAFT,EA1CR;UAAA,SAgDiB;QAhDjB,sBAiDUA,KAAK,CAACpB,OAjDhB,qBAiDU,oBAAAoB,KAAK,CAjDf,IAoDQA,KAAK,CAACiD,MAAN;UAAA,SACW;QADX,qBAEIjD,KAAK,CAACiD,MAFV,qBAEI,mBAAAjD,KAAK,CAFT,EApDR;MAAA;QAAA,QA2DqB;MA3DrB;QAAA,gBA4DQe,WAAW,CAACvB,KAAZ,KAAsB0B,UAAU,CAAC1B,KAAX,IAAoBkB,QAAQ,CAAClB,KAAnD,KAA6D,CAAC,CAACtB,KAAK,CAACe,KAArE;UAAA,SAES,CAAC,4BAAD,EAA+BmD,UAAU,CAAChC,sBAAX,CAAkCZ,KAAjE,CAFT;UAAA,SAGS,CAAC6C,WAAW,CAAC7C,KAAb,EAAoB4C,UAAU,CAAC/B,qBAAX,CAAiCb,KAArD,CAHT;UAAA,WAIY,MAAMkB,QAAQ,CAAClB,KAAT,GAAiB;QAJnC,QA5DR;MAAA;IAsED,CAzEQ,CAAT;IA2EA,OAAO;MACL0C;IADK,CAAP;EAGD;;AAtO8C,CAAD,CAAzC"}
@@ -27,29 +27,17 @@
27
27
  left: 0
28
28
  border-top-width: $navigation-drawer-border-thin-width
29
29
 
30
- &--start
30
+ &--left
31
31
  top: 0
32
- border-inline-end-width: $navigation-drawer-border-thin-width
33
-
34
- @include tools.ltr()
35
- left: 0
36
- right: auto
37
-
38
- @include tools.rtl()
39
- left: auto
40
- right: 0
32
+ left: 0
33
+ right: auto
34
+ border-right-width: $navigation-drawer-border-thin-width
41
35
 
42
- &--end
36
+ &--right
43
37
  top: 0
44
- border-inline-start-width: $navigation-drawer-border-thin-width
45
-
46
- @include tools.ltr()
47
- left: auto
48
- right: 0
49
-
50
- @include tools.rtl()
51
- left: 0
52
- right: auto
38
+ left: auto
39
+ right: 0
40
+ border-left-width: $navigation-drawer-border-thin-width
53
41
 
54
42
  &--floating
55
43
  border: none
@@ -57,6 +45,13 @@
57
45
  &--temporary
58
46
  @include tools.elevation($navigation-drawer-temporary-elevation)
59
47
 
48
+ &--sticky
49
+ height: auto
50
+ transition: box-shadow, transform, visibility, width, height, left, right
51
+
52
+ .v-list
53
+ overflow: hidden
54
+
60
55
  .v-navigation-drawer__content
61
56
  flex: 0 1 auto
62
57
  height: $navigation-drawer-content-height
@@ -1,7 +1,7 @@
1
1
  @use 'sass:map';
2
2
  @use '../../styles/settings';
3
3
 
4
- // Defaults
4
+ // VNavigationDrawer
5
5
  $navigation-drawer-background: rgb(var(--v-theme-surface)) !default;
6
6
  $navigation-drawer-border-color: settings.$border-color-root !default;
7
7
  $navigation-drawer-border-radius: map.get(settings.$rounded, '0') !default;
@@ -21,10 +21,11 @@ $navigation-drawer-overflow-scrolling: touch !default;
21
21
  $navigation-drawer-rounded-border-radius: settings.$border-radius-root !default;
22
22
  $navigation-drawer-temporary-elevation: 16 !default;
23
23
  $navigation-drawer-transition-duration: 0.2s !default;
24
- $navigation-drawer-transition-property: box-shadow, transform, visibility, width !default;
24
+ $navigation-drawer-transition-property: box-shadow, transform, visibility, width, height, left, right, top, bottom !default;
25
25
  $navigation-drawer-transition-timing-function: settings.$standard-easing !default;
26
26
  $navigation-drawer-will-change: transform !default;
27
27
 
28
+ // Lists
28
29
  $navigation-drawer-border: (
29
30
  $navigation-drawer-border-color,
30
31
  $navigation-drawer-border-style,
@@ -0,0 +1,72 @@
1
+ import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';
2
+ import { convertToUnit } from "../../util/index.mjs";
3
+ export function useSticky(_ref) {
4
+ let {
5
+ rootEl,
6
+ isSticky,
7
+ layoutItemStyles
8
+ } = _ref;
9
+ const isStuck = ref(false);
10
+ const stuckPosition = ref(0);
11
+ const stickyStyles = computed(() => {
12
+ const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
13
+ return [isSticky.value ? {
14
+ top: 'auto',
15
+ bottom: 'auto',
16
+ height: undefined
17
+ } : undefined, isStuck.value ? {
18
+ [side]: convertToUnit(stuckPosition.value)
19
+ } : {
20
+ top: layoutItemStyles.value.top
21
+ }];
22
+ });
23
+ onMounted(() => {
24
+ watch(isSticky, val => {
25
+ if (val) {
26
+ window.addEventListener('scroll', onScroll, {
27
+ passive: true
28
+ });
29
+ } else {
30
+ window.removeEventListener('scroll', onScroll);
31
+ }
32
+ }, {
33
+ immediate: true
34
+ });
35
+ });
36
+ onBeforeUnmount(() => {
37
+ document.removeEventListener('scroll', onScroll);
38
+ });
39
+ let lastScrollTop = 0;
40
+
41
+ function onScroll() {
42
+ var _layoutItemStyles$val;
43
+
44
+ const direction = lastScrollTop > window.scrollY ? 'up' : 'down';
45
+ const rect = rootEl.value.getBoundingClientRect();
46
+ const layoutTop = parseFloat((_layoutItemStyles$val = layoutItemStyles.value.top) != null ? _layoutItemStyles$val : 0);
47
+ const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop);
48
+ const bottom = rect.height + Math.max(stuckPosition.value, layoutTop) - window.scrollY - window.innerHeight;
49
+
50
+ if (rect.height < window.innerHeight - layoutTop) {
51
+ isStuck.value = 'top';
52
+ stuckPosition.value = layoutTop;
53
+ } else if (direction === 'up' && isStuck.value === 'bottom' || direction === 'down' && isStuck.value === 'top') {
54
+ stuckPosition.value = window.scrollY + rect.top;
55
+ isStuck.value = true;
56
+ } else if (direction === 'down' && bottom <= 0) {
57
+ stuckPosition.value = 0;
58
+ isStuck.value = 'bottom';
59
+ } else if (direction === 'up' && top <= 0) {
60
+ stuckPosition.value = rect.top + top;
61
+ isStuck.value = 'top';
62
+ }
63
+
64
+ lastScrollTop = window.scrollY;
65
+ }
66
+
67
+ return {
68
+ isStuck,
69
+ stickyStyles
70
+ };
71
+ }
72
+ //# sourceMappingURL=sticky.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sticky.mjs","names":["computed","onBeforeUnmount","onMounted","ref","watch","convertToUnit","useSticky","rootEl","isSticky","layoutItemStyles","isStuck","stuckPosition","stickyStyles","side","value","top","bottom","height","undefined","val","window","addEventListener","onScroll","passive","removeEventListener","immediate","document","lastScrollTop","direction","scrollY","rect","getBoundingClientRect","layoutTop","parseFloat","Math","max","innerHeight"],"sources":["../../../src/components/VNavigationDrawer/sticky.ts"],"sourcesContent":["import type { CSSProperties, Ref } from 'vue'\nimport { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { convertToUnit } from '@/util'\n\ninterface StickyProps {\n rootEl: Ref<HTMLElement | undefined>\n isSticky: Ref<boolean>\n layoutItemStyles: Ref<CSSProperties>\n}\n\nexport function useSticky ({ rootEl, isSticky, layoutItemStyles }: StickyProps) {\n const isStuck = ref<boolean | 'top' | 'bottom'>(false)\n const stuckPosition = ref(0)\n\n const stickyStyles = computed(() => {\n const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value\n return [\n isSticky.value ? { top: 'auto', bottom: 'auto', height: undefined } : undefined,\n isStuck.value\n ? { [side]: convertToUnit(stuckPosition.value) }\n : { top: layoutItemStyles.value.top },\n ]\n })\n\n onMounted(() => {\n watch(isSticky, val => {\n if (val) {\n window.addEventListener('scroll', onScroll, { passive: true })\n } else {\n window.removeEventListener('scroll', onScroll)\n }\n }, { immediate: true })\n })\n\n onBeforeUnmount(() => {\n document.removeEventListener('scroll', onScroll)\n })\n\n let lastScrollTop = 0\n function onScroll () {\n const direction = lastScrollTop > window.scrollY ? 'up' : 'down'\n const rect = rootEl.value!.getBoundingClientRect()\n const layoutTop = parseFloat(layoutItemStyles.value.top ?? 0)\n const top = window.scrollY - Math.max(0, stuckPosition.value - layoutTop)\n const bottom =\n rect.height +\n Math.max(stuckPosition.value, layoutTop) -\n window.scrollY -\n window.innerHeight\n\n if (rect.height < window.innerHeight - layoutTop) {\n isStuck.value = 'top'\n stuckPosition.value = layoutTop\n } else if (\n (direction === 'up' && isStuck.value === 'bottom') ||\n (direction === 'down' && isStuck.value === 'top')\n ) {\n stuckPosition.value = window.scrollY + rect.top\n isStuck.value = true\n } else if (direction === 'down' && bottom <= 0) {\n stuckPosition.value = 0\n isStuck.value = 'bottom'\n } else if (direction === 'up' && top <= 0) {\n stuckPosition.value = rect.top + top\n isStuck.value = 'top'\n }\n\n lastScrollTop = window.scrollY\n }\n\n return { isStuck, stickyStyles }\n}\n"],"mappings":"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"}
@@ -1,5 +1,8 @@
1
- import { useVelocity } from "../../composables/touch.mjs";
2
- import { computed, onBeforeUnmount, onMounted, ref } from 'vue';
1
+ // Composables
2
+ import { useVelocity } from "../../composables/touch.mjs"; // Utilities
3
+
4
+ import { computed, onBeforeUnmount, onMounted, ref } from 'vue'; // Types
5
+
3
6
  export function useTouch(_ref) {
4
7
  let {
5
8
  isActive,
@@ -1 +1 @@
1
- {"version":3,"file":"touch.mjs","names":["useVelocity","computed","onBeforeUnmount","onMounted","ref","useTouch","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","progress","Math","max","min","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","abs","dy","thresholdMet","preventDefault","velocity","identifier","vx","x","vy","y","direction","left","right","bottom","dragStyles","transform","transition","undefined","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["import { useVelocity } from '@/composables/touch'\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => position.value !== 'bottom')\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = ref(false)\n const dragProgress = ref(0)\n const offset = ref(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"touch.mjs","names":["useVelocity","computed","onBeforeUnmount","onMounted","ref","useTouch","isActive","isTemporary","width","touchless","position","window","addEventListener","onTouchstart","passive","onTouchmove","onTouchend","removeEventListener","isHorizontal","value","addMovement","endTouch","getVelocity","maybeDragging","isDragging","dragProgress","offset","start","getOffset","pos","active","document","documentElement","clientWidth","clientHeight","oops","getProgress","limit","progress","Math","max","min","e","touchX","changedTouches","clientX","touchY","clientY","touchZone","inTouchZone","inElement","cancelable","dx","abs","dy","thresholdMet","preventDefault","velocity","identifier","vx","x","vy","y","direction","left","right","bottom","dragStyles","transform","transition","undefined","Error"],"sources":["../../../src/components/VNavigationDrawer/touch.ts"],"sourcesContent":["// Composables\nimport { useVelocity } from '@/composables/touch'\n\n// Utilities\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => position.value !== 'bottom')\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = ref(false)\n const dragProgress = ref(0)\n const offset = ref(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VNoSsr.mjs","names":["useHydration","defineComponent","ref","VNoSsr","name","setup","_","slots","show","value","default"],"sources":["../../../src/components/VNoSsr/VNoSsr.tsx"],"sourcesContent":["// Composables\nimport { useHydration } from '@/composables/hydration'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { ref } from 'vue'\n\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n\n setup (_, { slots }) {\n const show = ref(false)\n\n useHydration(() => (show.value = true))\n\n return () => show.value && slots.default?.()\n },\n\n})\n"],"mappings":"AAAA;SACSA,Y,2CAET;;SACSC,e;AACT,SAASC,GAAT,QAAoB,KAApB;AAEA,OAAO,MAAMC,MAAM,GAAGF,eAAe,CAAC;EACpCG,IAAI,EAAE,QAD8B;;EAGpCC,KAAK,CAAEC,CAAF,QAAgB;IAAA,IAAX;MAAEC;IAAF,CAAW;IACnB,MAAMC,IAAI,GAAGN,GAAG,CAAC,KAAD,CAAhB;IAEAF,YAAY,CAAC,MAAOQ,IAAI,CAACC,KAAL,GAAa,IAArB,CAAZ;IAEA,OAAO;MAAA;;MAAA,OAAMD,IAAI,CAACC,KAAL,uBAAcF,KAAK,CAACG,OAApB,qBAAc,oBAAAH,KAAK,CAAnB,CAAN;IAAA,CAAP;EACD;;AATmC,CAAD,CAA9B"}
1
+ {"version":3,"file":"VNoSsr.mjs","names":["useHydration","defineComponent","ref","VNoSsr","name","setup","_","slots","show","value","default"],"sources":["../../../src/components/VNoSsr/VNoSsr.tsx"],"sourcesContent":["// Composables\nimport { useHydration } from '@/composables/hydration'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { ref } from 'vue'\n\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n\n setup (_, { slots }) {\n const show = ref(false)\n\n useHydration(() => (show.value = true))\n\n return () => show.value && slots.default?.()\n },\n})\n"],"mappings":"AAAA;SACSA,Y,2CAET;;SACSC,e;AACT,SAASC,GAAT,QAAoB,KAApB;AAEA,OAAO,MAAMC,MAAM,GAAGF,eAAe,CAAC;EACpCG,IAAI,EAAE,QAD8B;;EAGpCC,KAAK,CAAEC,CAAF,QAAgB;IAAA,IAAX;MAAEC;IAAF,CAAW;IACnB,MAAMC,IAAI,GAAGN,GAAG,CAAC,KAAD,CAAhB;IAEAF,YAAY,CAAC,MAAOQ,IAAI,CAACC,KAAL,GAAa,IAArB,CAAZ;IAEA,OAAO;MAAA;;MAAA,OAAMD,IAAI,CAACC,KAAL,uBAAcF,KAAK,CAACG,OAApB,qBAAc,oBAAAH,KAAK,CAAnB,CAAN;IAAA,CAAP;EACD;;AATmC,CAAD,CAA9B"}