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

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 (277) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/dist/json/attributes.json +343 -195
  3. package/dist/json/importMap.json +20 -0
  4. package/dist/json/tags.json +106 -44
  5. package/dist/json/web-types.json +946 -549
  6. package/dist/vuetify.css +1486 -1085
  7. package/dist/vuetify.d.ts +9036 -8077
  8. package/dist/vuetify.esm.js +1511 -944
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +1510 -943
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +825 -754
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/components/VAlert/VAlert.css +29 -8
  16. package/lib/components/VAlert/VAlert.mjs +31 -17
  17. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  18. package/lib/components/VAlert/VAlert.sass +27 -7
  19. package/lib/components/VAlert/VAlertTitle.mjs +1 -0
  20. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  21. package/lib/components/VAlert/_variables.scss +14 -7
  22. package/lib/components/VApp/VApp.css +1 -0
  23. package/lib/components/VApp/VApp.sass +1 -0
  24. package/lib/components/VAppBar/VAppBar.mjs +7 -3
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAvatar/VAvatar.mjs +15 -14
  30. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  31. package/lib/components/VBanner/VBanner.css +82 -58
  32. package/lib/components/VBanner/VBanner.mjs +39 -43
  33. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  34. package/lib/components/VBanner/VBanner.sass +61 -54
  35. package/lib/components/VBanner/VBannerActions.mjs +34 -2
  36. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  37. package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
  38. package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
  39. package/lib/components/VBanner/VBannerIcon.mjs +20 -0
  40. package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
  41. package/lib/components/VBanner/_variables.scss +10 -14
  42. package/lib/components/VBanner/index.mjs +2 -0
  43. package/lib/components/VBanner/index.mjs.map +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
  45. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  46. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
  47. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  48. package/lib/components/VBtn/VBtn.css +20 -1
  49. package/lib/components/VBtn/VBtn.mjs +20 -7
  50. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  51. package/lib/components/VBtn/VBtn.sass +15 -2
  52. package/lib/components/VBtn/_variables.scss +3 -0
  53. package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
  54. package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
  55. package/lib/components/VCard/VCard.css +13 -11
  56. package/lib/components/VCard/VCard.mjs +5 -2
  57. package/lib/components/VCard/VCard.mjs.map +1 -1
  58. package/lib/components/VCard/VCard.sass +12 -9
  59. package/lib/components/VCard/VCardActions.mjs +1 -2
  60. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  61. package/lib/components/VCard/VCardContent.mjs +3 -0
  62. package/lib/components/VCard/VCardContent.mjs.map +1 -0
  63. package/lib/components/VCard/_variables.scss +11 -5
  64. package/lib/components/VCard/index.mjs +1 -0
  65. package/lib/components/VCard/index.mjs.map +1 -1
  66. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  67. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  68. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  69. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  70. package/lib/components/VChip/VChip.css +3 -0
  71. package/lib/components/VChip/VChip.sass +3 -0
  72. package/lib/components/VChip/_variables.scss +3 -0
  73. package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
  74. package/lib/components/VCombobox/VCombobox.mjs +92 -74
  75. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  76. package/lib/components/VDialog/VDialog.css +31 -11
  77. package/lib/components/VDialog/VDialog.mjs +6 -9
  78. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  79. package/lib/components/VDialog/VDialog.sass +27 -10
  80. package/lib/components/VDialog/_variables.scss +3 -6
  81. package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
  82. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
  83. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  84. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
  85. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  86. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
  87. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  88. package/lib/components/VField/VField.css +1 -1
  89. package/lib/components/VField/VField.mjs +3 -4
  90. package/lib/components/VField/VField.mjs.map +1 -1
  91. package/lib/components/VField/VField.sass +1 -1
  92. package/lib/components/VFileInput/VFileInput.mjs +2 -1
  93. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  94. package/lib/components/VFooter/VFooter.mjs +32 -15
  95. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  96. package/lib/components/VForm/VForm.mjs +25 -11
  97. package/lib/components/VForm/VForm.mjs.map +1 -1
  98. package/lib/components/VIcon/VIcon.css +27 -12
  99. package/lib/components/VIcon/VIcon.mjs +19 -16
  100. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  101. package/lib/components/VIcon/VIcon.sass +27 -16
  102. package/lib/components/VIcon/_variables.scss +1 -0
  103. package/lib/components/VInput/VInput.css +3 -1
  104. package/lib/components/VInput/VInput.mjs +3 -4
  105. package/lib/components/VInput/VInput.mjs.map +1 -1
  106. package/lib/components/VInput/VInput.sass +3 -1
  107. package/lib/components/VInput/_variables.scss +4 -0
  108. package/lib/components/VList/VList.css +7 -6
  109. package/lib/components/VList/VList.mjs +36 -17
  110. package/lib/components/VList/VList.mjs.map +1 -1
  111. package/lib/components/VList/VList.sass +3 -2
  112. package/lib/components/VList/VListChildren.mjs +1 -1
  113. package/lib/components/VList/VListChildren.mjs.map +1 -1
  114. package/lib/components/VList/VListGroup.mjs +28 -10
  115. package/lib/components/VList/VListGroup.mjs.map +1 -1
  116. package/lib/components/VList/VListItem.css +119 -42
  117. package/lib/components/VList/VListItem.mjs +36 -32
  118. package/lib/components/VList/VListItem.mjs.map +1 -1
  119. package/lib/components/VList/VListItem.sass +76 -28
  120. package/lib/components/VList/VListItemAction.mjs +29 -0
  121. package/lib/components/VList/VListItemAction.mjs.map +1 -0
  122. package/lib/components/VList/VListItemAvatar.mjs +10 -16
  123. package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
  124. package/lib/components/VList/VListItemIcon.mjs +23 -0
  125. package/lib/components/VList/VListItemIcon.mjs.map +1 -0
  126. package/lib/components/VList/VListItemMedia.mjs +4 -4
  127. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  128. package/lib/components/VList/_variables.scss +12 -3
  129. package/lib/components/VList/index.mjs +2 -0
  130. package/lib/components/VList/index.mjs.map +1 -1
  131. package/lib/components/VMenu/VMenu.css +2 -12
  132. package/lib/components/VMenu/VMenu.mjs +61 -31
  133. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  134. package/lib/components/VMenu/VMenu.sass +3 -6
  135. package/lib/components/VMenu/shared.mjs +2 -0
  136. package/lib/components/VMenu/shared.mjs.map +1 -0
  137. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  138. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  139. package/lib/components/VOverlay/VOverlay.css +8 -0
  140. package/lib/components/VOverlay/VOverlay.mjs +16 -15
  141. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  142. package/lib/components/VOverlay/VOverlay.sass +9 -0
  143. package/lib/components/VOverlay/_variables.scss +1 -0
  144. package/lib/components/VOverlay/positionStrategies.mjs +7 -3
  145. package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
  146. package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
  147. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  148. package/lib/components/VOverlay/useActivator.mjs +50 -14
  149. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  150. package/lib/components/VPagination/VPagination.mjs +10 -12
  151. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  152. package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
  153. package/lib/components/VRadio/VRadio.mjs +1 -2
  154. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  155. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  156. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  157. package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
  158. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  159. package/lib/components/VRating/VRating.css +2 -2
  160. package/lib/components/VRating/VRating.mjs +13 -3
  161. package/lib/components/VRating/VRating.mjs.map +1 -1
  162. package/lib/components/VRating/VRating.sass +2 -2
  163. package/lib/components/VSelect/VSelect.mjs +70 -91
  164. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  165. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
  166. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  167. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
  168. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  169. package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
  170. package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
  171. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  172. package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
  173. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
  174. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  175. package/lib/components/VSlider/VSlider.css +7 -2
  176. package/lib/components/VSlider/VSlider.sass +11 -5
  177. package/lib/components/VSlider/VSliderTrack.css +6 -6
  178. package/lib/components/VSlider/VSliderTrack.mjs +1 -1
  179. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  180. package/lib/components/VSlider/VSliderTrack.sass +7 -7
  181. package/lib/components/VSlider/_variables.scss +5 -2
  182. package/lib/components/VSnackbar/VSnackbar.css +14 -13
  183. package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
  184. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  185. package/lib/components/VSnackbar/VSnackbar.sass +15 -16
  186. package/lib/components/VSnackbar/_variables.scss +0 -4
  187. package/lib/components/VSwitch/VSwitch.mjs +8 -5
  188. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  189. package/lib/components/VSystemBar/VSystemBar.css +0 -5
  190. package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
  191. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  192. package/lib/components/VSystemBar/VSystemBar.sass +0 -5
  193. package/lib/components/VSystemBar/_variables.scss +0 -3
  194. package/lib/components/VTabs/VTab.mjs +28 -32
  195. package/lib/components/VTabs/VTab.mjs.map +1 -1
  196. package/lib/components/VTabs/VTabs.css +6 -2
  197. package/lib/components/VTabs/VTabs.mjs +7 -8
  198. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  199. package/lib/components/VTabs/VTabs.sass +6 -1
  200. package/lib/components/VTabs/shared.mjs +2 -0
  201. package/lib/components/VTabs/shared.mjs.map +1 -0
  202. package/lib/components/VTextField/VTextField.css +4 -4
  203. package/lib/components/VTextField/VTextField.mjs +5 -9
  204. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  205. package/lib/components/VTextField/VTextField.sass +5 -5
  206. package/lib/components/VTextarea/VTextarea.css +7 -4
  207. package/lib/components/VTextarea/VTextarea.sass +9 -5
  208. package/lib/components/VTimeline/VTimeline.css +187 -48
  209. package/lib/components/VTimeline/VTimeline.mjs +27 -11
  210. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  211. package/lib/components/VTimeline/VTimeline.sass +196 -51
  212. package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
  213. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  214. package/lib/components/VTimeline/_variables.scss +2 -1
  215. package/lib/components/VToolbar/VToolbar.css +8 -1
  216. package/lib/components/VToolbar/VToolbar.mjs +8 -11
  217. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  218. package/lib/components/VToolbar/VToolbar.sass +2 -1
  219. package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
  220. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  221. package/lib/components/VToolbar/_variables.scss +13 -1
  222. package/lib/components/VWindow/VWindow.mjs +0 -8
  223. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  224. package/lib/components/index.d.ts +9025 -8077
  225. package/lib/composables/defaults.mjs +2 -2
  226. package/lib/composables/defaults.mjs.map +1 -1
  227. package/lib/composables/form.mjs +18 -5
  228. package/lib/composables/form.mjs.map +1 -1
  229. package/lib/composables/forwardRef.mjs +10 -6
  230. package/lib/composables/forwardRef.mjs.map +1 -1
  231. package/lib/composables/group.mjs +14 -6
  232. package/lib/composables/group.mjs.map +1 -1
  233. package/lib/composables/index.mjs.map +1 -1
  234. package/lib/composables/items.mjs +56 -0
  235. package/lib/composables/items.mjs.map +1 -0
  236. package/lib/composables/layout.mjs +7 -3
  237. package/lib/composables/layout.mjs.map +1 -1
  238. package/lib/composables/loader.mjs.map +1 -1
  239. package/lib/composables/nested/nested.mjs +27 -14
  240. package/lib/composables/nested/nested.mjs.map +1 -1
  241. package/lib/composables/nested/openStrategies.mjs +63 -36
  242. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  243. package/lib/composables/nested/selectStrategies.mjs +163 -122
  244. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  245. package/lib/composables/overlay.mjs +5 -1
  246. package/lib/composables/overlay.mjs.map +1 -1
  247. package/lib/composables/proxiedModel.mjs.map +1 -1
  248. package/lib/composables/resizeObserver.mjs +1 -9
  249. package/lib/composables/resizeObserver.mjs.map +1 -1
  250. package/lib/composables/router.mjs +17 -5
  251. package/lib/composables/router.mjs.map +1 -1
  252. package/lib/composables/selectLink.mjs +19 -0
  253. package/lib/composables/selectLink.mjs.map +1 -0
  254. package/lib/composables/stack.mjs +7 -4
  255. package/lib/composables/stack.mjs.map +1 -1
  256. package/lib/composables/validation.mjs +6 -3
  257. package/lib/composables/validation.mjs.map +1 -1
  258. package/lib/composables/variant.mjs +0 -3
  259. package/lib/composables/variant.mjs.map +1 -1
  260. package/lib/directives/ripple/index.mjs +15 -3
  261. package/lib/directives/ripple/index.mjs.map +1 -1
  262. package/lib/entry-bundler.mjs +1 -1
  263. package/lib/framework.mjs +12 -7
  264. package/lib/framework.mjs.map +1 -1
  265. package/lib/index.d.ts +18 -2
  266. package/lib/locale/ca.mjs +9 -9
  267. package/lib/locale/ca.mjs.map +1 -1
  268. package/lib/styles/generic/_colors.scss +0 -1
  269. package/lib/styles/main.css +400 -392
  270. package/lib/styles/settings/_utilities.scss +54 -26
  271. package/lib/styles/tools/_states.sass +2 -1
  272. package/lib/util/defineComponent.mjs +37 -6
  273. package/lib/util/defineComponent.mjs.map +1 -1
  274. package/lib/util/getCurrentInstance.mjs +1 -1
  275. package/lib/util/getCurrentInstance.mjs.map +1 -1
  276. package/lib/util/helpers.mjs.map +1 -1
  277. package/package.json +31 -29
@@ -0,0 +1,29 @@
1
+ import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
2
+ // Composables
3
+ import { makeTagProps } from "../../composables/tag.mjs"; // Utilities
4
+
5
+ import { defineComponent } from "../../util/index.mjs";
6
+ export const VListItemAction = defineComponent({
7
+ name: 'VListItemAction',
8
+ props: {
9
+ start: Boolean,
10
+ end: Boolean,
11
+ ...makeTagProps()
12
+ },
13
+
14
+ setup(props, _ref) {
15
+ let {
16
+ slots
17
+ } = _ref;
18
+ return () => {
19
+ return _createVNode(props.tag, {
20
+ "class": ['v-list-item-action', {
21
+ 'v-list-item-action--start': props.start,
22
+ 'v-list-item-action--end': props.end
23
+ }]
24
+ }, slots);
25
+ };
26
+ }
27
+
28
+ });
29
+ //# sourceMappingURL=VListItemAction.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/VList/VListItemAction.tsx"],"names":["makeTagProps","defineComponent","VListItemAction","name","props","start","Boolean","end","setup","slots"],"mappings":";AAAA;SACSA,Y,qCAET;;SACSC,e;AAET,OAAO,MAAMC,eAAe,GAAGD,eAAe,CAAC;AAC7CE,EAAAA,IAAI,EAAE,iBADuC;AAG7CC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC,OADF;AAELC,IAAAA,GAAG,EAAED,OAFA;AAIL,OAAGN,YAAY;AAJV,GAHsC;;AAU7CQ,EAAAA,KAAK,CAAEJ,KAAF,QAAoB;AAAA,QAAX;AAAEK,MAAAA;AAAF,KAAW;AACvB,WAAO,MAAM;AACX;AAAA,iBAEW,CACL,oBADK,EAEL;AACE,uCAA6BL,KAAK,CAACC,KADrC;AAEE,qCAA2BD,KAAK,CAACG;AAFnC,SAFK;AAFX,SAScE,KATd;AAYD,KAbD;AAcD;;AAzB4C,CAAD,CAAvC","sourcesContent":["// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemAction = defineComponent({\n name: 'VListItemAction',\n\n props: {\n start: Boolean,\n end: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-item-action',\n {\n 'v-list-item-action--start': props.start,\n 'v-list-item-action--end': props.end,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n"],"file":"VListItemAction.mjs"}
@@ -1,28 +1,22 @@
1
- import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
2
- // Composables
3
- import { makeTagProps } from "../../composables/tag.mjs"; // Utilities
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
2
+ // Components
3
+ import { makeVAvatarProps, VAvatar } from "../VAvatar/VAvatar.mjs"; // Utilities
4
4
 
5
5
  import { defineComponent } from "../../util/index.mjs";
6
6
  export const VListItemAvatar = defineComponent({
7
7
  name: 'VListItemAvatar',
8
- props: {
9
- left: Boolean,
10
- right: Boolean,
11
- ...makeTagProps()
12
- },
8
+ props: makeVAvatarProps(),
13
9
 
14
10
  setup(props, _ref) {
15
11
  let {
16
12
  slots
17
13
  } = _ref;
18
- return () => {
19
- return _createVNode(props.tag, {
20
- "class": ['v-list-item-avatar', {
21
- 'v-list-item-avatar--start': props.left,
22
- 'v-list-item-avatar--end': props.right
23
- }]
24
- }, slots);
25
- };
14
+ return () => _createVNode(VAvatar, _mergeProps({
15
+ "class": ['v-list-item-avatar', {
16
+ 'v-list-item-avatar--start': props.start,
17
+ 'v-list-item-avatar--end': props.end
18
+ }]
19
+ }, props), slots);
26
20
  }
27
21
 
28
22
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/VListItemAvatar.tsx"],"names":["makeTagProps","defineComponent","VListItemAvatar","name","props","left","Boolean","right","setup","slots"],"mappings":";AAAA;SACSA,Y,qCAET;;SACSC,e;AAET,OAAO,MAAMC,eAAe,GAAGD,eAAe,CAAC;AAC7CE,EAAAA,IAAI,EAAE,iBADuC;AAG7CC,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAEC,OADD;AAELC,IAAAA,KAAK,EAAED,OAFF;AAIL,OAAGN,YAAY;AAJV,GAHsC;;AAU7CQ,EAAAA,KAAK,CAAEJ,KAAF,QAAoB;AAAA,QAAX;AAAEK,MAAAA;AAAF,KAAW;AACvB,WAAO,MAAM;AACX;AAAA,iBAEW,CACL,oBADK,EAEL;AACE,uCAA6BL,KAAK,CAACC,IADrC;AAEE,qCAA2BD,KAAK,CAACG;AAFnC,SAFK;AAFX,SAScE,KATd;AAYD,KAbD;AAcD;;AAzB4C,CAAD,CAAvC","sourcesContent":["// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemAvatar = defineComponent({\n name: 'VListItemAvatar',\n\n props: {\n left: Boolean,\n right: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-item-avatar',\n {\n 'v-list-item-avatar--start': props.left,\n 'v-list-item-avatar--end': props.right,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n"],"file":"VListItemAvatar.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/VListItemAvatar.tsx"],"names":["makeVAvatarProps","VAvatar","defineComponent","VListItemAvatar","name","props","setup","slots","start","end"],"mappings":";AAAA;SACSA,gB,EAAkBC,O,kCAE3B;;SACSC,e;AAET,OAAO,MAAMC,eAAe,GAAGD,eAAe,CAAC;AAC7CE,EAAAA,IAAI,EAAE,iBADuC;AAG7CC,EAAAA,KAAK,EAAEL,gBAAgB,EAHsB;;AAK7CM,EAAAA,KAAK,CAAED,KAAF,QAAoB;AAAA,QAAX;AAAEE,MAAAA;AAAF,KAAW;AACvB,WAAO;AAAA,eAEI,CACL,oBADK,EAEL;AACE,qCAA6BF,KAAK,CAACG,KADrC;AAEE,mCAA2BH,KAAK,CAACI;AAFnC,OAFK;AAFJ,OASEJ,KATF,GAUOE,KAVP,CAAP;AAaD;;AAnB4C,CAAD,CAAvC","sourcesContent":["// Components\nimport { makeVAvatarProps, VAvatar } from '@/components/VAvatar/VAvatar'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemAvatar = defineComponent({\n name: 'VListItemAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n return () => (\n <VAvatar\n class={[\n 'v-list-item-avatar',\n {\n 'v-list-item-avatar--start': props.start,\n 'v-list-item-avatar--end': props.end,\n },\n ]}\n { ...props }\n v-slots={ slots }\n />\n )\n },\n})\n"],"file":"VListItemAvatar.mjs"}
@@ -0,0 +1,23 @@
1
+ import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
2
+ // Components
3
+ import { makeVIconProps, VIcon } from "../VIcon/VIcon.mjs"; // Utilities
4
+
5
+ import { defineComponent } from "../../util/index.mjs";
6
+ export const VListItemIcon = defineComponent({
7
+ name: 'VListItemIcon',
8
+ props: makeVIconProps(),
9
+
10
+ setup(props, _ref) {
11
+ let {
12
+ slots
13
+ } = _ref;
14
+ return () => _createVNode(VIcon, _mergeProps({
15
+ "class": ['v-list-item-icon', {
16
+ 'v-list-item-icon--start': props.start,
17
+ 'v-list-item-icon--end': props.end
18
+ }]
19
+ }, props), slots);
20
+ }
21
+
22
+ });
23
+ //# sourceMappingURL=VListItemIcon.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/VList/VListItemIcon.tsx"],"names":["makeVIconProps","VIcon","defineComponent","VListItemIcon","name","props","setup","slots","start","end"],"mappings":";AAAA;SACSA,c,EAAgBC,K,8BAEzB;;SACSC,e;AAET,OAAO,MAAMC,aAAa,GAAGD,eAAe,CAAC;AAC3CE,EAAAA,IAAI,EAAE,eADqC;AAG3CC,EAAAA,KAAK,EAAEL,cAAc,EAHsB;;AAK3CM,EAAAA,KAAK,CAAED,KAAF,QAAoB;AAAA,QAAX;AAAEE,MAAAA;AAAF,KAAW;AACvB,WAAO;AAAA,eAEI,CACL,kBADK,EAEL;AACE,mCAA2BF,KAAK,CAACG,KADnC;AAEE,iCAAyBH,KAAK,CAACI;AAFjC,OAFK;AAFJ,OASEJ,KATF,GAUOE,KAVP,CAAP;AAaD;;AAnB0C,CAAD,CAArC","sourcesContent":["// Components\nimport { makeVIconProps, VIcon } from '@/components/VIcon/VIcon'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemIcon = defineComponent({\n name: 'VListItemIcon',\n\n props: makeVIconProps(),\n\n setup (props, { slots }) {\n return () => (\n <VIcon\n class={[\n 'v-list-item-icon',\n {\n 'v-list-item-icon--start': props.start,\n 'v-list-item-icon--end': props.end,\n },\n ]}\n { ...props }\n v-slots={ slots }\n />\n )\n },\n})\n"],"file":"VListItemIcon.mjs"}
@@ -6,8 +6,8 @@ import { defineComponent } from "../../util/index.mjs";
6
6
  export const VListItemMedia = defineComponent({
7
7
  name: 'VListItemMedia',
8
8
  props: {
9
- left: Boolean,
10
- right: Boolean,
9
+ start: Boolean,
10
+ end: Boolean,
11
11
  ...makeTagProps()
12
12
  },
13
13
 
@@ -18,8 +18,8 @@ export const VListItemMedia = defineComponent({
18
18
  return () => {
19
19
  return _createVNode(props.tag, {
20
20
  "class": ['v-list-item-media', {
21
- 'v-list-item-media--start': props.left,
22
- 'v-list-item-media--end': props.right
21
+ 'v-list-item-media--start': props.start,
22
+ 'v-list-item-media--end': props.end
23
23
  }]
24
24
  }, slots);
25
25
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/VListItemMedia.tsx"],"names":["makeTagProps","defineComponent","VListItemMedia","name","props","left","Boolean","right","setup","slots"],"mappings":";AAAA;SACSA,Y,qCAET;;SACSC,e;AAET,OAAO,MAAMC,cAAc,GAAGD,eAAe,CAAC;AAC5CE,EAAAA,IAAI,EAAE,gBADsC;AAG5CC,EAAAA,KAAK,EAAE;AACLC,IAAAA,IAAI,EAAEC,OADD;AAELC,IAAAA,KAAK,EAAED,OAFF;AAIL,OAAGN,YAAY;AAJV,GAHqC;;AAU5CQ,EAAAA,KAAK,CAAEJ,KAAF,QAAoB;AAAA,QAAX;AAAEK,MAAAA;AAAF,KAAW;AACvB,WAAO,MAAM;AACX;AAAA,iBAEW,CACL,mBADK,EAEL;AACE,sCAA4BL,KAAK,CAACC,IADpC;AAEE,oCAA0BD,KAAK,CAACG;AAFlC,SAFK;AAFX,SAScE,KATd;AAYD,KAbD;AAcD;;AAzB2C,CAAD,CAAtC","sourcesContent":["// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemMedia = defineComponent({\n name: 'VListItemMedia',\n\n props: {\n left: Boolean,\n right: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-item-media',\n {\n 'v-list-item-media--start': props.left,\n 'v-list-item-media--end': props.right,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n"],"file":"VListItemMedia.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/VListItemMedia.tsx"],"names":["makeTagProps","defineComponent","VListItemMedia","name","props","start","Boolean","end","setup","slots"],"mappings":";AAAA;SACSA,Y,qCAET;;SACSC,e;AAET,OAAO,MAAMC,cAAc,GAAGD,eAAe,CAAC;AAC5CE,EAAAA,IAAI,EAAE,gBADsC;AAG5CC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC,OADF;AAELC,IAAAA,GAAG,EAAED,OAFA;AAIL,OAAGN,YAAY;AAJV,GAHqC;;AAU5CQ,EAAAA,KAAK,CAAEJ,KAAF,QAAoB;AAAA,QAAX;AAAEK,MAAAA;AAAF,KAAW;AACvB,WAAO,MAAM;AACX;AAAA,iBAEW,CACL,mBADK,EAEL;AACE,sCAA4BL,KAAK,CAACC,KADpC;AAEE,oCAA0BD,KAAK,CAACG;AAFlC,SAFK;AAFX,SAScE,KATd;AAYD,KAbD;AAcD;;AAzB2C,CAAD,CAAtC","sourcesContent":["// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemMedia = defineComponent({\n name: 'VListItemMedia',\n\n props: {\n start: Boolean,\n end: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-item-media',\n {\n 'v-list-item-media--start': props.start,\n 'v-list-item-media--end': props.end,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n"],"file":"VListItemMedia.mjs"}
@@ -17,6 +17,7 @@ $list-positions: absolute fixed !default;
17
17
  $list-rounded-border-radius: map.get(settings.$rounded, null) !default;
18
18
  $list-indent-size: 16px !default;
19
19
 
20
+ $list-nav-padding: 8px !default;
20
21
  $list-nav-subheader-font-size: .75rem !default;
21
22
 
22
23
  $list-subheader-font-size: .875rem !default;
@@ -24,7 +25,7 @@ $list-subheader-font-weight: 500 !default;
24
25
  $list-subheader-inset-margin: 56px !default;
25
26
  $list-subheader-inset-padding-start: 72px !default;
26
27
  $list-subheader-line-height: 1.375rem !default;
27
- $list-subheader-min-height: 48px !default;
28
+ $list-subheader-min-height: 40px !default;
28
29
  $list-subheader-padding-end: 16px !default;
29
30
  $list-subheader-padding-start: 16px !default;
30
31
  $list-subheader-padding-top: 0 !default;
@@ -37,8 +38,8 @@ $list-item-border-radius: 0 !default;
37
38
  $list-item-border-style: settings.$border-style-root !default;
38
39
  $list-item-border-width: 0 !default;
39
40
  $list-item-border-thin-width: thin !default;
40
- $list-item-elevation: 0 !default;
41
- $list-item-min-height: 48px !default;
41
+ $list-item-elevation: 1 !default;
42
+ $list-item-min-height: 40px !default;
42
43
  $list-item-padding: 8px 16px !default;
43
44
  $list-item-plain-opacity: .62 !default;
44
45
  $list-item-rounded-border-radius: map.get(settings.$rounded, null) !default;
@@ -54,6 +55,13 @@ $list-item-avatar-margin-start: 16px !default;
54
55
  $list-item-avatar-size: 40px !default;
55
56
  $list-item-avatar-margin-y: 4px !default;
56
57
 
58
+ $list-item-action-margin-end: 12px !default;
59
+ $list-item-action-margin-start: 12px !default;
60
+
61
+ $list-item-icon-margin-end: 32px !default;
62
+ $list-item-icon-margin-start: 32px !default;
63
+ $list-item-icon-size: 16px !default;
64
+
57
65
  $list-item-media-margin-bottom: 0 !default;
58
66
  $list-item-media-margin-end: 16px !default;
59
67
  $list-item-media-margin-start: 16px !default;
@@ -63,6 +71,7 @@ $list-item-media-two-line-margin-top: -4px !default;
63
71
  $list-item-media-three-line-margin-bottom: 0 !default;
64
72
  $list-item-media-three-line-margin-top: 0 !default;
65
73
 
74
+ $list-item-nav-margin-top: 4px !default;
66
75
  $list-item-nav-title-font-size: .8125rem !default;
67
76
  $list-item-nav-title-font-weight: 500 !default;
68
77
  $list-item-nav-title-letter-spacing: normal !default;
@@ -2,8 +2,10 @@ export { VList } from "./VList.mjs";
2
2
  export { VListSubheader } from "./VListSubheader.mjs";
3
3
  export { VListImg } from "./VListImg.mjs";
4
4
  export { VListItem } from "./VListItem.mjs";
5
+ export { VListItemAction } from "./VListItemAction.mjs";
5
6
  export { VListItemAvatar } from "./VListItemAvatar.mjs";
6
7
  export { VListItemHeader } from "./VListItemHeader.mjs";
8
+ export { VListItemIcon } from "./VListItemIcon.mjs";
7
9
  export { VListItemMedia } from "./VListItemMedia.mjs";
8
10
  export { VListItemSubtitle } from "./VListItemSubtitle.mjs";
9
11
  export { VListItemTitle } from "./VListItemTitle.mjs";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/index.ts"],"names":["VList","VListSubheader","VListImg","VListItem","VListItemAvatar","VListItemHeader","VListItemMedia","VListItemSubtitle","VListItemTitle","VListGroup"],"mappings":"SAASA,K;SACAC,c;SACAC,Q;SACAC,S;SACAC,e;SACAC,e;SACAC,c;SACAC,iB;SACAC,c;SACAC,U","sourcesContent":["export { VList } from './VList'\nexport { VListSubheader } from './VListSubheader'\nexport { VListImg } from './VListImg'\nexport { VListItem } from './VListItem'\nexport { VListItemAvatar } from './VListItemAvatar'\nexport { VListItemHeader } from './VListItemHeader'\nexport { VListItemMedia } from './VListItemMedia'\nexport { VListItemSubtitle } from './VListItemSubtitle'\nexport { VListItemTitle } from './VListItemTitle'\nexport { VListGroup } from './VListGroup'\n"],"file":"index.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/index.ts"],"names":["VList","VListSubheader","VListImg","VListItem","VListItemAction","VListItemAvatar","VListItemHeader","VListItemIcon","VListItemMedia","VListItemSubtitle","VListItemTitle","VListGroup"],"mappings":"SAASA,K;SACAC,c;SACAC,Q;SACAC,S;SACAC,e;SACAC,e;SACAC,e;SACAC,a;SACAC,c;SACAC,iB;SACAC,c;SACAC,U","sourcesContent":["export { VList } from './VList'\nexport { VListSubheader } from './VListSubheader'\nexport { VListImg } from './VListImg'\nexport { VListItem } from './VListItem'\nexport { VListItemAction } from './VListItemAction'\nexport { VListItemAvatar } from './VListItemAvatar'\nexport { VListItemHeader } from './VListItemHeader'\nexport { VListItemIcon } from './VListItemIcon'\nexport { VListItemMedia } from './VListItemMedia'\nexport { VListItemSubtitle } from './VListItemSubtitle'\nexport { VListItemTitle } from './VListItemTitle'\nexport { VListGroup } from './VListGroup'\n"],"file":"index.mjs"}
@@ -4,21 +4,11 @@
4
4
  border-radius: 4px;
5
5
  }
6
6
  .v-menu .v-overlay__content > .v-card,
7
- .v-menu .v-overlay__content > .v-sheet {
7
+ .v-menu .v-overlay__content > .v-sheet,
8
+ .v-menu .v-overlay__content > .v-list {
8
9
  background: rgb(var(--v-theme-surface));
9
10
  border-radius: inherit;
10
11
  overflow: auto;
11
12
  height: 100%;
12
- }
13
- .v-menu .v-overlay__content > .v-card::before,
14
- .v-menu .v-overlay__content > .v-sheet::before {
15
- border-radius: inherit;
16
- z-index: -1;
17
- content: "";
18
- position: absolute;
19
- top: 0;
20
- left: 0;
21
- width: 100%;
22
- height: 100%;
23
13
  box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12);
24
14
  }
@@ -8,23 +8,17 @@ import { VDialogTransition } from "../transitions/index.mjs"; // Composables
8
8
  import { makeTransitionProps } from "../../composables/transition.mjs";
9
9
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
10
10
 
11
- import { computed } from 'vue';
12
- import { genericComponent, getUid } from "../../util/index.mjs"; // Types
11
+ import { computed, inject, provide, ref, watch } from 'vue';
12
+ import { genericComponent, getUid, useRender } from "../../util/index.mjs";
13
+ import { VMenuSymbol } from "./shared.mjs"; // Types
13
14
 
15
+ import { useForwardRef } from "../../composables/forwardRef.mjs";
14
16
  export const VMenu = genericComponent()({
15
17
  name: 'VMenu',
16
18
  inheritAttrs: false,
17
19
  props: {
18
20
  // TODO
19
- // closeOnClick: {
20
- // type: Boolean,
21
- // default: true,
22
- // },
23
- // closeOnContentClick: {
24
- // type: Boolean,
25
- // default: true,
26
- // },
27
- disableKeys: Boolean,
21
+ // disableKeys: Boolean,
28
22
  modelValue: Boolean,
29
23
  id: String,
30
24
  ...makeTransitionProps({
@@ -45,26 +39,62 @@ export const VMenu = genericComponent()({
45
39
  const isActive = useProxiedModel(props, 'modelValue');
46
40
  const uid = getUid();
47
41
  const id = computed(() => props.id || `v-menu-${uid}`);
48
- return () => {
49
- return _createVNode(VOverlay, _mergeProps({
50
- "modelValue": isActive.value,
51
- "onUpdate:modelValue": $event => isActive.value = $event,
52
- "class": ['v-menu'],
53
- "transition": props.transition,
54
- "absolute": true,
55
- "positionStrategy": "connected",
56
- "scrollStrategy": "reposition",
57
- "scrim": false,
58
- "activatorProps": {
59
- 'aria-haspopup': 'menu',
60
- 'aria-expanded': String(isActive.value),
61
- 'aria-owns': id.value
62
- }
63
- }, attrs), {
64
- default: slots.default,
65
- activator: slots.activator
66
- });
67
- };
42
+ const overlay = ref();
43
+ const parent = inject(VMenuSymbol, null);
44
+ let openChildren = 0;
45
+ provide(VMenuSymbol, {
46
+ register() {
47
+ ++openChildren;
48
+ },
49
+
50
+ unregister() {
51
+ --openChildren;
52
+ },
53
+
54
+ closeParents() {
55
+ setTimeout(() => {
56
+ if (!openChildren) {
57
+ isActive.value = false;
58
+ parent == null ? void 0 : parent.closeParents();
59
+ }
60
+ }, 40);
61
+ }
62
+
63
+ });
64
+ watch(isActive, val => {
65
+ val ? parent == null ? void 0 : parent.register() : parent == null ? void 0 : parent.unregister();
66
+ });
67
+
68
+ function onClickOutside() {
69
+ parent == null ? void 0 : parent.closeParents();
70
+ }
71
+
72
+ useRender(() => _createVNode(VOverlay, _mergeProps({
73
+ "ref": overlay,
74
+ "modelValue": isActive.value,
75
+ "onUpdate:modelValue": $event => isActive.value = $event,
76
+ "class": ['v-menu'],
77
+ "transition": props.transition,
78
+ "absolute": true,
79
+ "closeOnContentClick": true,
80
+ "positionStrategy": "connected",
81
+ "scrollStrategy": "reposition",
82
+ "scrim": false,
83
+ "openDelay": "300",
84
+ "closeDelay": "250",
85
+ "activatorProps": {
86
+ 'aria-haspopup': 'menu',
87
+ 'aria-expanded': String(isActive.value),
88
+ 'aria-owns': id.value
89
+ },
90
+ "onClick:outside": onClickOutside
91
+ }, attrs), {
92
+ default: slots.default,
93
+ activator: slots.activator
94
+ }));
95
+ return useForwardRef({
96
+ id
97
+ }, overlay);
68
98
  }
69
99
 
70
100
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VMenu/VMenu.tsx"],"names":["VOverlay","VDialogTransition","makeTransitionProps","useProxiedModel","computed","genericComponent","getUid","VMenu","name","inheritAttrs","props","disableKeys","Boolean","modelValue","id","String","transition","component","emits","value","setup","attrs","slots","isActive","uid","default","activator"],"mappings":";AAAA;AACA,qB,CAEA;;SACSA,Q;SACAC,iB,oCAET;;SACSC,mB;SACAC,e,8CAET;;AACA,SAASC,QAAT,QAAyB,KAAzB;SACSC,gB,EAAkBC,M,gCAE3B;;AAGA,OAAO,MAAMC,KAAK,GAAGF,gBAAgB,GAEhC;AACHG,EAAAA,IAAI,EAAE,OADH;AAGHC,EAAAA,YAAY,EAAE,KAHX;AAKHC,EAAAA,KAAK,EAAE;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,IAAAA,WAAW,EAAEC,OAVR;AAWLC,IAAAA,UAAU,EAAED,OAXP;AAYLE,IAAAA,EAAE,EAAEC,MAZC;AAcL,OAAGb,mBAAmB,CAAC;AACrBc,MAAAA,UAAU,EAAE;AAAEC,QAAAA,SAAS,EAAEhB;AAAb;AADS,KAAD;AAdjB,GALJ;AAwBHiB,EAAAA,KAAK,EAAE;AACL,yBAAsBC,KAAD,IAAoB;AADpC,GAxBJ;;AA4BHC,EAAAA,KAAK,CAAEV,KAAF,QAA2B;AAAA,QAAlB;AAAEW,MAAAA,KAAF;AAASC,MAAAA;AAAT,KAAkB;AAC9B,UAAMC,QAAQ,GAAGpB,eAAe,CAACO,KAAD,EAAQ,YAAR,CAAhC;AAEA,UAAMc,GAAG,GAAGlB,MAAM,EAAlB;AACA,UAAMQ,EAAE,GAAGV,QAAQ,CAAC,MAAMM,KAAK,CAACI,EAAN,IAAa,UAASU,GAAI,EAAjC,CAAnB;AAEA,WAAO,MAAM;AACX;AAAA,sBAEcD,QAAQ,CAACJ,KAFvB;AAAA,yCAEcI,QAAQ,CAACJ,KAFvB;AAAA,iBAGW,CACL,QADK,CAHX;AAAA,sBAMiBT,KAAK,CAACM,UANvB;AAAA;AAAA,4BAQqB,WARrB;AAAA,0BASmB,YATnB;AAAA,iBAUY,KAVZ;AAAA,0BAWoB;AACd,2BAAiB,MADH;AAEd,2BAAiBD,MAAM,CAACQ,QAAQ,CAACJ,KAAV,CAFT;AAGd,uBAAaL,EAAE,CAACK;AAHF;AAXpB,SAgBSE,KAhBT,GAiBa;AACPI,QAAAA,OAAO,EAAEH,KAAK,CAACG,OADR;AAEPC,QAAAA,SAAS,EAAEJ,KAAK,CAACI;AAFV,OAjBb;AAuBD,KAxBD;AAyBD;;AA3DE,CAFgC,CAA9B","sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\nimport { VDialogTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, getUid } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const VMenu = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VMenu',\n\n inheritAttrs: false,\n\n props: {\n // TODO\n // closeOnClick: {\n // type: Boolean,\n // default: true,\n // },\n // closeOnContentClick: {\n // type: Boolean,\n // default: true,\n // },\n disableKeys: Boolean,\n modelValue: Boolean,\n id: String,\n\n ...makeTransitionProps({\n transition: { component: VDialogTransition },\n } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n return () => {\n return (\n <VOverlay\n v-model={ isActive.value }\n class={[\n 'v-menu',\n ]}\n transition={ props.transition }\n absolute\n positionStrategy=\"connected\"\n scrollStrategy=\"reposition\"\n scrim={ false }\n activatorProps={{\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }}\n { ...attrs }\n v-slots={{\n default: slots.default,\n activator: slots.activator,\n }}\n />\n )\n }\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"file":"VMenu.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VMenu/VMenu.tsx"],"names":["VOverlay","VDialogTransition","makeTransitionProps","useProxiedModel","computed","inject","provide","ref","watch","genericComponent","getUid","useRender","VMenuSymbol","useForwardRef","VMenu","name","inheritAttrs","props","modelValue","Boolean","id","String","transition","component","emits","value","setup","attrs","slots","isActive","uid","overlay","parent","openChildren","register","unregister","closeParents","setTimeout","val","onClickOutside","default","activator"],"mappings":"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","sourcesContent":["// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\nimport { VDialogTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref, watch } from 'vue'\nimport { genericComponent, getUid, useRender } from '@/util'\nimport { VMenuSymbol } from './shared'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport { useForwardRef } from '@/composables/forwardRef'\n\nexport const VMenu = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VMenu',\n\n inheritAttrs: false,\n\n props: {\n // TODO\n // disableKeys: Boolean,\n modelValue: Boolean,\n id: String,\n\n ...makeTransitionProps({\n transition: { component: VDialogTransition },\n } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n let openChildren = 0\n provide(VMenuSymbol, {\n register () {\n ++openChildren\n },\n unregister () {\n --openChildren\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n useRender(() => (\n <VOverlay\n ref={ overlay }\n v-model={ isActive.value }\n class={[\n 'v-menu',\n ]}\n transition={ props.transition }\n absolute\n closeOnContentClick\n positionStrategy=\"connected\"\n scrollStrategy=\"reposition\"\n scrim={ false }\n openDelay=\"300\"\n closeDelay=\"250\"\n activatorProps={{\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }}\n onClick:outside={ onClickOutside }\n { ...attrs }\n v-slots={{\n default: slots.default,\n activator: slots.activator,\n }}\n />\n ))\n\n return useForwardRef({ id }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n"],"file":"VMenu.mjs"}
@@ -9,14 +9,11 @@
9
9
  @include tools.rounded($menu-content-border-radius)
10
10
 
11
11
  > .v-card,
12
- > .v-sheet
12
+ > .v-sheet,
13
+ > .v-list
13
14
  background: rgb(var(--v-theme-surface))
14
15
  border-radius: inherit
15
16
  overflow: auto
16
17
  height: 100%
17
18
 
18
- &::before
19
- border-radius: inherit
20
- z-index: -1
21
- @include tools.absolute(true)
22
- @include tools.elevation($menu-elevation)
19
+ @include tools.elevation($menu-elevation)
@@ -0,0 +1,2 @@
1
+ export const VMenuSymbol = Symbol.for('vuetify:v-menu');
2
+ //# sourceMappingURL=shared.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/components/VMenu/shared.ts"],"names":["VMenuSymbol","Symbol","for"],"mappings":"AAQA,OAAO,MAAMA,WAAsC,GAAGC,MAAM,CAACC,GAAP,CAAW,gBAAX,CAA/C","sourcesContent":["import type { InjectionKey } from 'vue'\n\ninterface MenuProvide {\n register (): void\n unregister (): void\n closeParents (): void\n}\n\nexport const VMenuSymbol: InjectionKey<MenuProvide> = Symbol.for('vuetify:v-menu')\n"],"file":"shared.mjs"}
@@ -85,7 +85,7 @@ export const VNavigationDrawer = defineComponent({
85
85
  roundedClasses
86
86
  } = useRounded(props);
87
87
  const router = useRouter();
88
- const isActive = useProxiedModel(props, 'modelValue');
88
+ const isActive = useProxiedModel(props, 'modelValue', null, v => !!v);
89
89
  const isHovering = ref(false);
90
90
  const width = computed(() => {
91
91
  return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","useDisplay","useProxiedModel","useRouter","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","position","validator","value","includes","tag","emits","val","setup","attrs","slots","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","isHovering","isTemporary","currentRoute","rootEl","isDragging","dragProgress","dragStyles","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","priority","parseInt","elementSize","active","disableTransitions","absolute","scrimStyles","opacity","transition","undefined","left","right","top","bottom","hasImage","prepend","append"],"mappings":"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","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 { 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,\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 position: {\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')\n const isHovering = ref(false)\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, 'position'),\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 priority: computed(() => parseInt(props.priority, 10)),\n position: toRef(props, 'position'),\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.position === 'bottom',\n 'v-navigation-drawer--end': props.position === '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.position === '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 ]}\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"],"file":"VNavigationDrawer.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VNavigationDrawer/VNavigationDrawer.tsx"],"names":["makeBorderProps","useBorder","makeElevationProps","useElevation","makeLayoutItemProps","useLayoutItem","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","useDisplay","useProxiedModel","useRouter","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","position","validator","value","includes","tag","emits","val","setup","attrs","slots","themeClasses","borderClasses","backgroundColorClasses","backgroundColorStyles","elevationClasses","mobile","roundedClasses","router","isActive","v","isHovering","isTemporary","currentRoute","rootEl","isDragging","dragProgress","dragStyles","layoutSize","size","layoutItemStyles","layoutRect","layoutItemScrimStyles","id","priority","parseInt","elementSize","active","disableTransitions","absolute","scrimStyles","opacity","transition","undefined","left","right","top","bottom","hasImage","prepend","append"],"mappings":"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","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 { 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 position: {\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 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, 'position'),\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 priority: computed(() => parseInt(props.priority, 10)),\n position: toRef(props, 'position'),\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.position === 'bottom',\n 'v-navigation-drawer--end': props.position === '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.position === '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 ]}\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"],"file":"VNavigationDrawer.mjs"}
@@ -11,6 +11,13 @@
11
11
  padding-inline-end: var(--v-scrollbar-offset);
12
12
  overflow-y: hidden !important;
13
13
  }
14
+ html.v-overlay-scroll-blocked {
15
+ position: fixed;
16
+ top: var(--v-body-scroll-y);
17
+ left: var(--v-body-scroll-x);
18
+ width: 100%;
19
+ height: 100%;
20
+ }
14
21
 
15
22
  .v-overlay {
16
23
  border-radius: inherit;
@@ -21,6 +28,7 @@
21
28
  top: 0;
22
29
  bottom: 0;
23
30
  right: 0;
31
+ z-index: 2000;
24
32
  }
25
33
 
26
34
  .v-overlay__content {
@@ -14,8 +14,7 @@ import { useRtl } from "../../composables/rtl.mjs";
14
14
  import { useTeleport } from "../../composables/teleport.mjs";
15
15
  import { makeDimensionProps, useDimension } from "../../composables/dimensions.mjs";
16
16
  import { makeLazyProps, useLazy } from "../../composables/lazy.mjs";
17
- import { useStack } from "../../composables/stack.mjs";
18
- import { useOverlay } from "../../composables/overlay.mjs"; // Directives
17
+ import { useStack } from "../../composables/stack.mjs"; // Directives
19
18
 
20
19
  import { ClickOutside } from "../../directives/click-outside/index.mjs"; // Utilities
21
20
 
@@ -94,17 +93,21 @@ export const VOverlay = genericComponent()({
94
93
  const scrimColor = useBackgroundColor(computed(() => {
95
94
  return typeof props.scrim === 'string' ? props.scrim : null;
96
95
  }));
96
+ const {
97
+ isTop
98
+ } = useStack(isActive);
97
99
  const {
98
100
  activatorEl,
99
101
  activatorRef,
100
- activatorEvents
101
- } = useActivator(props, isActive);
102
+ activatorEvents,
103
+ contentEvents
104
+ } = useActivator(props, {
105
+ isActive,
106
+ isTop
107
+ });
102
108
  const {
103
109
  dimensionStyles
104
110
  } = useDimension(props);
105
- const {
106
- isTop
107
- } = useStack(isActive);
108
111
  const root = ref();
109
112
  const contentEl = ref();
110
113
  const {
@@ -185,9 +188,6 @@ export const VOverlay = genericComponent()({
185
188
  });
186
189
  }
187
190
 
188
- const {
189
- overlayZIndex
190
- } = useOverlay(isActive);
191
191
  useRender(() => {
192
192
  var _slots$activator, _slots$default;
193
193
 
@@ -207,8 +207,7 @@ export const VOverlay = genericComponent()({
207
207
  'v-overlay--contained': props.contained
208
208
  }, themeClasses.value, rtlClasses.value],
209
209
  "style": {
210
- top: convertToUnit(top.value),
211
- zIndex: overlayZIndex.value
210
+ top: convertToUnit(top.value)
212
211
  },
213
212
  "ref": root
214
213
  }, attrs), [_createVNode(Scrim, {
@@ -224,11 +223,11 @@ export const VOverlay = genericComponent()({
224
223
  emit('afterLeave');
225
224
  }
226
225
  }, {
227
- default: () => [_withDirectives(_createVNode("div", {
226
+ default: () => [_withDirectives(_createVNode("div", _mergeProps({
228
227
  "ref": contentEl,
229
228
  "class": ['v-overlay__content', props.contentClass],
230
229
  "style": [dimensionStyles.value, contentStyles.value]
231
- }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
230
+ }, toHandlers(contentEvents.value)), [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
232
231
  isActive
233
232
  })]), [[_vShow, isActive.value], [_resolveDirective("click-outside"), {
234
233
  handler: onClickOutside,
@@ -241,7 +240,9 @@ export const VOverlay = genericComponent()({
241
240
  return {
242
241
  animateClick,
243
242
  contentEl,
244
- activatorEl
243
+ activatorEl,
244
+ isTop,
245
+ updatePosition
245
246
  };
246
247
  }
247
248