@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.
- package/CHANGELOG.md +53 -2
- package/dist/json/attributes.json +343 -195
- package/dist/json/importMap.json +20 -0
- package/dist/json/tags.json +106 -44
- package/dist/json/web-types.json +946 -549
- package/dist/vuetify.css +1486 -1085
- package/dist/vuetify.d.ts +9036 -8077
- package/dist/vuetify.esm.js +1511 -944
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1510 -943
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +825 -754
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +29 -8
- package/lib/components/VAlert/VAlert.mjs +31 -17
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +27 -7
- package/lib/components/VAlert/VAlertTitle.mjs +1 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +14 -7
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VAppBar/VAppBar.mjs +7 -3
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.mjs +15 -14
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +82 -58
- package/lib/components/VBanner/VBanner.mjs +39 -43
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +61 -54
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.mjs +2 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +20 -1
- package/lib/components/VBtn/VBtn.mjs +20 -7
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +15 -2
- package/lib/components/VBtn/_variables.scss +3 -0
- package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
- package/lib/components/VCard/VCard.css +13 -11
- package/lib/components/VCard/VCard.mjs +5 -2
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +12 -9
- package/lib/components/VCard/VCardActions.mjs +1 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/_variables.scss +11 -5
- package/lib/components/VCard/index.mjs +1 -0
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +1 -1
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +3 -0
- package/lib/components/VChip/VChip.sass +3 -0
- package/lib/components/VChip/_variables.scss +3 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +92 -74
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +31 -11
- package/lib/components/VDialog/VDialog.mjs +6 -9
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +27 -10
- package/lib/components/VDialog/_variables.scss +3 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VField/VField.css +1 -1
- package/lib/components/VField/VField.mjs +3 -4
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +2 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +32 -15
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +25 -11
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +27 -12
- package/lib/components/VIcon/VIcon.mjs +19 -16
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +27 -16
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VInput/VInput.css +3 -1
- package/lib/components/VInput/VInput.mjs +3 -4
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +3 -1
- package/lib/components/VInput/_variables.scss +4 -0
- package/lib/components/VList/VList.css +7 -6
- package/lib/components/VList/VList.mjs +36 -17
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +3 -2
- package/lib/components/VList/VListChildren.mjs +1 -1
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +28 -10
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +119 -42
- package/lib/components/VList/VListItem.mjs +36 -32
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +76 -28
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +10 -16
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +4 -4
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +12 -3
- package/lib/components/VList/index.mjs +2 -0
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +2 -12
- package/lib/components/VMenu/VMenu.mjs +61 -31
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +3 -6
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +8 -0
- package/lib/components/VOverlay/VOverlay.mjs +16 -15
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +9 -0
- package/lib/components/VOverlay/_variables.scss +1 -0
- package/lib/components/VOverlay/positionStrategies.mjs +7 -3
- package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +50 -14
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +10 -12
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VRadio/VRadio.mjs +1 -2
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +13 -3
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -2
- package/lib/components/VSelect/VSelect.mjs +70 -91
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
- package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.sass +11 -5
- package/lib/components/VSlider/VSliderTrack.css +6 -6
- package/lib/components/VSlider/VSliderTrack.mjs +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +7 -7
- package/lib/components/VSlider/_variables.scss +5 -2
- package/lib/components/VSnackbar/VSnackbar.css +14 -13
- package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -16
- package/lib/components/VSnackbar/_variables.scss +0 -4
- package/lib/components/VSwitch/VSwitch.mjs +8 -5
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +0 -5
- package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -5
- package/lib/components/VSystemBar/_variables.scss +0 -3
- package/lib/components/VTabs/VTab.mjs +28 -32
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.css +6 -2
- package/lib/components/VTabs/VTabs.mjs +7 -8
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +6 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +4 -4
- package/lib/components/VTextField/VTextField.mjs +5 -9
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -5
- package/lib/components/VTextarea/VTextarea.css +7 -4
- package/lib/components/VTextarea/VTextarea.sass +9 -5
- package/lib/components/VTimeline/VTimeline.css +187 -48
- package/lib/components/VTimeline/VTimeline.mjs +27 -11
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +196 -51
- package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +2 -1
- package/lib/components/VToolbar/VToolbar.css +8 -1
- package/lib/components/VToolbar/VToolbar.mjs +8 -11
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +13 -1
- package/lib/components/VWindow/VWindow.mjs +0 -8
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/index.d.ts +9025 -8077
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/form.mjs +18 -5
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRef.mjs +10 -6
- package/lib/composables/forwardRef.mjs.map +1 -1
- package/lib/composables/group.mjs +14 -6
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/items.mjs +56 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +7 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +27 -14
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +63 -36
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +163 -122
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/overlay.mjs +5 -1
- package/lib/composables/overlay.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -9
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/router.mjs +17 -5
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- package/lib/composables/stack.mjs +7 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/validation.mjs +6 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +0 -3
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/ripple/index.mjs +15 -3
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +12 -7
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +18 -2
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +400 -392
- package/lib/styles/settings/_utilities.scss +54 -26
- package/lib/styles/tools/_states.sass +2 -1
- package/lib/util/defineComponent.mjs +37 -6
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +1 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs.map +1 -1
- 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
|
-
//
|
|
3
|
-
import {
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
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":["
|
|
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
|
-
|
|
10
|
-
|
|
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.
|
|
22
|
-
'v-list-item-media--end': props.
|
|
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","
|
|
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:
|
|
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:
|
|
41
|
-
$list-item-min-height:
|
|
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";
|
|
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
|
-
//
|
|
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
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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","
|
|
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
|
-
|
|
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 @@
|
|
|
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
|
-
|
|
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
|
|