@vuetify/nightly 3.0.0-beta.10 → 3.0.0-beta.13
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 +13 -2
- package/dist/json/attributes.json +37 -29
- package/dist/json/importMap.json +46 -46
- package/dist/json/tags.json +10 -8
- package/dist/json/web-types.json +101 -87
- package/dist/vuetify.css +545 -441
- package/dist/vuetify.d.ts +12095 -10059
- package/dist/vuetify.esm.js +401 -266
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +371 -236
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +496 -490
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +171 -0
- package/lib/blueprints/md1.d.ts +167 -0
- package/lib/blueprints/md2.d.ts +167 -0
- package/lib/blueprints/md3.d.ts +167 -0
- package/lib/components/VAlert/index.d.ts +185 -0
- package/lib/components/VApp/index.d.ts +83 -0
- package/lib/components/VAppBar/VAppBar.css +3 -0
- package/lib/components/VAppBar/VAppBar.sass +3 -0
- package/lib/components/VAppBar/index.d.ts +156 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +1569 -0
- package/lib/components/VAvatar/VAvatar.css +44 -2
- package/lib/components/VAvatar/VAvatar.mjs +16 -12
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +5 -1
- package/lib/components/VAvatar/_variables.scss +9 -4
- package/lib/components/VAvatar/index.d.ts +80 -0
- package/lib/components/VBadge/index.d.ts +123 -0
- package/lib/components/VBanner/index.d.ts +122 -0
- package/lib/components/VBottomNavigation/index.d.ts +143 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +2 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +301 -0
- package/lib/components/VBtn/VBtn.css +8 -3
- package/lib/components/VBtn/VBtn.mjs +16 -6
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/index.d.ts +210 -0
- package/lib/components/VBtnGroup/index.d.ts +65 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -3
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/index.d.ts +175 -0
- package/lib/components/VCard/VCard.css +8 -3
- package/lib/components/VCard/index.d.ts +230 -0
- package/lib/components/VCarousel/VCarousel.mjs +3 -3
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +80 -0
- package/lib/components/VCheckbox/index.d.ts +291 -0
- package/lib/components/VChip/index.d.ts +195 -0
- package/lib/components/VChipGroup/index.d.ts +89 -0
- package/lib/components/VCode/index.d.ts +19 -0
- package/lib/components/VColorPicker/index.d.ts +116 -0
- package/lib/components/VCombobox/VCombobox.mjs +1 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +1590 -0
- package/lib/components/VCounter/index.d.ts +223 -0
- package/lib/components/VDefaultsProvider/index.d.ts +26 -0
- package/lib/components/VDialog/VDialog.css +2 -0
- package/lib/components/VDialog/VDialog.mjs +17 -12
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +2 -0
- package/lib/components/VDialog/index.d.ts +859 -0
- package/lib/components/VDivider/index.d.ts +22 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -3
- package/lib/components/VExpansionPanel/index.d.ts +206 -0
- package/lib/components/VField/VField.css +27 -24
- package/lib/components/VField/VField.mjs +1 -1
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +23 -21
- package/lib/components/VField/index.d.ts +332 -0
- package/lib/components/VFileInput/VFileInput.mjs +3 -3
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +236 -0
- package/lib/components/VFooter/VFooter.css +7 -0
- package/lib/components/VFooter/VFooter.sass +1 -1
- package/lib/components/VFooter/_variables.scss +11 -0
- package/lib/components/VFooter/index.d.ts +76 -0
- package/lib/components/VForm/index.d.ts +72 -0
- package/lib/components/VGrid/index.d.ts +154 -0
- package/lib/components/VHover/index.d.ts +30 -0
- package/lib/components/VIcon/index.d.ts +124 -0
- package/lib/components/VImg/VImg.mjs +29 -27
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +89 -0
- package/lib/components/VInput/VInput.mjs +4 -4
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/index.d.ts +325 -0
- package/lib/components/VItemGroup/index.d.ts +210 -0
- package/lib/components/VKbd/index.d.ts +19 -0
- package/lib/components/VLabel/VLabel.css +4 -1
- package/lib/components/VLabel/VLabel.mjs +4 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +3 -1
- package/lib/components/VLabel/index.d.ts +16 -0
- package/lib/components/VLayout/index.d.ts +75 -0
- package/lib/components/VLazy/index.d.ts +85 -0
- package/lib/components/VList/VListItem.css +8 -3
- package/lib/components/VList/VListItem.mjs +4 -4
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +1250 -0
- package/lib/components/VLocaleProvider/index.d.ts +23 -0
- package/lib/components/VMain/index.d.ts +26 -0
- package/lib/components/VMenu/VMenu.mjs +16 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +817 -0
- package/lib/components/VMessages/index.d.ts +234 -0
- package/lib/components/VNavigationDrawer/index.d.ts +148 -0
- package/lib/components/VNoSsr/index.d.ts +7 -0
- package/lib/components/VOverlay/VOverlay.mjs +4 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +579 -0
- package/lib/components/VOverlay/useActivator.mjs +27 -1
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +6 -3
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +247 -0
- package/lib/components/VParallax/VParallax.mjs +24 -10
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +18 -0
- package/lib/components/VProgressCircular/index.d.ts +68 -0
- package/lib/components/VProgressLinear/index.d.ts +101 -0
- package/lib/components/VRadio/index.d.ts +103 -0
- package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +2 -2
- package/lib/components/VRadioGroup/_variables.scss +0 -1
- package/lib/components/VRadioGroup/index.d.ts +186 -0
- package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +242 -0
- package/lib/components/VRating/index.d.ts +356 -0
- package/lib/components/VResponsive/index.d.ts +23 -0
- package/lib/components/VSelect/VSelect.mjs +1 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +1521 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +275 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +5 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +5 -0
- package/lib/components/VSelectionControlGroup/index.d.ts +47 -0
- package/lib/components/VSheet/index.d.ts +68 -0
- package/lib/components/VSlideGroup/index.d.ts +151 -0
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.mjs +14 -4
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +6 -2
- package/lib/components/VSlider/VSliderTrack.css +20 -20
- package/lib/components/VSlider/VSliderTrack.mjs +7 -3
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +14 -14
- package/lib/components/VSlider/_variables.scss +2 -2
- package/lib/components/VSlider/index.d.ts +239 -0
- package/lib/components/VSlider/slider.mjs +2 -2
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +3 -2
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +892 -0
- package/lib/components/VSwitch/index.d.ts +175 -0
- package/lib/components/VSystemBar/index.d.ts +61 -0
- package/lib/components/VTable/index.d.ts +39 -0
- package/lib/components/VTabs/VTab.mjs +1 -0
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +178 -0
- package/lib/components/VTextField/VTextField.css +2 -3
- package/lib/components/VTextField/VTextField.sass +2 -4
- package/lib/components/VTextField/index.d.ts +582 -0
- package/lib/components/VTextarea/VTextarea.css +5 -3
- package/lib/components/VTextarea/VTextarea.mjs +2 -1
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +5 -4
- package/lib/components/VTextarea/index.d.ts +218 -0
- package/lib/components/VThemeProvider/index.d.ts +24 -0
- package/lib/components/VTimeline/VTimeline.css +21 -6
- package/lib/components/VTimeline/VTimeline.mjs +6 -1
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +16 -2
- package/lib/components/VTimeline/_variables.scss +4 -3
- package/lib/components/VTimeline/index.d.ts +154 -0
- package/lib/components/VToolbar/VToolbar.css +0 -1
- package/lib/components/VToolbar/VToolbar.sass +0 -1
- package/lib/components/VToolbar/index.d.ts +414 -0
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/index.d.ts +799 -0
- package/lib/components/VValidation/index.d.ts +61 -0
- package/lib/components/VWindow/index.d.ts +428 -0
- package/lib/components/index.d.ts +12037 -10009
- package/lib/components/transitions/index.d.ts +454 -0
- package/lib/composables/display.mjs +3 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/items.mjs.map +1 -1
- package/lib/composables/locale.mjs +10 -3
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +28 -10
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/router.mjs +10 -2
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +4 -4
- package/lib/composables/selectLink.mjs.map +1 -1
- package/lib/composables/theme.mjs +37 -33
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +46 -51
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +31 -22
- package/lib/locale/adapters/vue-i18n.d.ts +35 -0
- package/lib/locale/adapters/vue-intl.d.ts +42 -0
- package/lib/styles/main.css +73 -73
- package/lib/styles/settings/_colors.scss +84 -84
- package/lib/styles/tools/_states.sass +8 -3
- package/lib/util/getCurrentInstance.mjs +2 -3
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs +6 -11
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +4 -2
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { JSXComponent, PropType, ComponentInternalInstance, Ref, ComputedRef, InjectionKey } from 'vue';
|
|
3
|
+
|
|
4
|
+
declare type IconValue = string | JSXComponent;
|
|
5
|
+
declare const IconValue: PropType<IconValue>;
|
|
6
|
+
|
|
7
|
+
interface GroupItem {
|
|
8
|
+
id: number;
|
|
9
|
+
value: Ref<unknown>;
|
|
10
|
+
disabled: Ref<boolean | undefined>;
|
|
11
|
+
}
|
|
12
|
+
interface GroupProvide {
|
|
13
|
+
register: (item: GroupItem, cmp: ComponentInternalInstance) => void;
|
|
14
|
+
unregister: (id: number) => void;
|
|
15
|
+
select: (id: number, value: boolean) => void;
|
|
16
|
+
selected: Ref<Readonly<number[]>>;
|
|
17
|
+
isSelected: (id: number) => boolean;
|
|
18
|
+
prev: () => void;
|
|
19
|
+
next: () => void;
|
|
20
|
+
selectedClass: Ref<string | undefined>;
|
|
21
|
+
items: ComputedRef<{
|
|
22
|
+
id: number;
|
|
23
|
+
value: unknown;
|
|
24
|
+
disabled: boolean | undefined;
|
|
25
|
+
}[]>;
|
|
26
|
+
disabled: Ref<boolean | undefined>;
|
|
27
|
+
getItemIndex: (value: unknown) => number;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
declare const VSlideGroup: vue.DefineComponent<{
|
|
31
|
+
modelValue: {
|
|
32
|
+
type: null;
|
|
33
|
+
default: undefined;
|
|
34
|
+
};
|
|
35
|
+
multiple: BooleanConstructor;
|
|
36
|
+
mandatory: vue.PropType<boolean | "force">;
|
|
37
|
+
max: NumberConstructor;
|
|
38
|
+
selectedClass: {
|
|
39
|
+
type: vue.PropType<string>;
|
|
40
|
+
default: string;
|
|
41
|
+
};
|
|
42
|
+
disabled: BooleanConstructor;
|
|
43
|
+
tag: {
|
|
44
|
+
type: StringConstructor;
|
|
45
|
+
default: string;
|
|
46
|
+
};
|
|
47
|
+
centerActive: BooleanConstructor;
|
|
48
|
+
direction: {
|
|
49
|
+
type: StringConstructor;
|
|
50
|
+
default: string;
|
|
51
|
+
};
|
|
52
|
+
symbol: {
|
|
53
|
+
type: null;
|
|
54
|
+
default: InjectionKey<GroupProvide>;
|
|
55
|
+
};
|
|
56
|
+
nextIcon: {
|
|
57
|
+
type: vue.PropType<IconValue>;
|
|
58
|
+
default: string;
|
|
59
|
+
};
|
|
60
|
+
prevIcon: {
|
|
61
|
+
type: vue.PropType<IconValue>;
|
|
62
|
+
default: string;
|
|
63
|
+
};
|
|
64
|
+
showArrows: {
|
|
65
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
66
|
+
validator: (v: any) => boolean;
|
|
67
|
+
};
|
|
68
|
+
}, {
|
|
69
|
+
selected: vue.Ref<readonly number[]>;
|
|
70
|
+
scrollTo: (location: 'prev' | 'next') => void;
|
|
71
|
+
scrollOffset: vue.Ref<number>;
|
|
72
|
+
focus: (location?: 'next' | 'prev' | 'first' | 'last') => void;
|
|
73
|
+
}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
74
|
+
'update:modelValue': (value: any) => true;
|
|
75
|
+
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
76
|
+
modelValue: {
|
|
77
|
+
type: null;
|
|
78
|
+
default: undefined;
|
|
79
|
+
};
|
|
80
|
+
multiple: BooleanConstructor;
|
|
81
|
+
mandatory: vue.PropType<boolean | "force">;
|
|
82
|
+
max: NumberConstructor;
|
|
83
|
+
selectedClass: {
|
|
84
|
+
type: vue.PropType<string>;
|
|
85
|
+
default: string;
|
|
86
|
+
};
|
|
87
|
+
disabled: BooleanConstructor;
|
|
88
|
+
tag: {
|
|
89
|
+
type: StringConstructor;
|
|
90
|
+
default: string;
|
|
91
|
+
};
|
|
92
|
+
centerActive: BooleanConstructor;
|
|
93
|
+
direction: {
|
|
94
|
+
type: StringConstructor;
|
|
95
|
+
default: string;
|
|
96
|
+
};
|
|
97
|
+
symbol: {
|
|
98
|
+
type: null;
|
|
99
|
+
default: InjectionKey<GroupProvide>;
|
|
100
|
+
};
|
|
101
|
+
nextIcon: {
|
|
102
|
+
type: vue.PropType<IconValue>;
|
|
103
|
+
default: string;
|
|
104
|
+
};
|
|
105
|
+
prevIcon: {
|
|
106
|
+
type: vue.PropType<IconValue>;
|
|
107
|
+
default: string;
|
|
108
|
+
};
|
|
109
|
+
showArrows: {
|
|
110
|
+
type: (StringConstructor | BooleanConstructor)[];
|
|
111
|
+
validator: (v: any) => boolean;
|
|
112
|
+
};
|
|
113
|
+
}>> & {
|
|
114
|
+
"onUpdate:modelValue"?: ((value: any) => any) | undefined;
|
|
115
|
+
}, {
|
|
116
|
+
symbol: any;
|
|
117
|
+
direction: string;
|
|
118
|
+
disabled: boolean;
|
|
119
|
+
multiple: boolean;
|
|
120
|
+
tag: string;
|
|
121
|
+
modelValue: any;
|
|
122
|
+
selectedClass: string;
|
|
123
|
+
nextIcon: IconValue;
|
|
124
|
+
prevIcon: IconValue;
|
|
125
|
+
centerActive: boolean;
|
|
126
|
+
}>;
|
|
127
|
+
declare type VSlideGroup = InstanceType<typeof VSlideGroup>;
|
|
128
|
+
|
|
129
|
+
declare const VSlideGroupItem: vue.DefineComponent<{
|
|
130
|
+
value: null;
|
|
131
|
+
disabled: BooleanConstructor;
|
|
132
|
+
selectedClass: StringConstructor;
|
|
133
|
+
}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
134
|
+
[key: string]: any;
|
|
135
|
+
}>[] | undefined, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
136
|
+
'group:selected': (val: {
|
|
137
|
+
value: boolean;
|
|
138
|
+
}) => true;
|
|
139
|
+
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
140
|
+
value: null;
|
|
141
|
+
disabled: BooleanConstructor;
|
|
142
|
+
selectedClass: StringConstructor;
|
|
143
|
+
}>> & {
|
|
144
|
+
"onGroup:selected"?: ((val: {
|
|
145
|
+
value: boolean;
|
|
146
|
+
}) => any) | undefined;
|
|
147
|
+
}, {
|
|
148
|
+
disabled: boolean;
|
|
149
|
+
}>;
|
|
150
|
+
|
|
151
|
+
export { VSlideGroup, VSlideGroupItem };
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
|
|
11
11
|
.v-slider__container {
|
|
12
12
|
position: relative;
|
|
13
|
+
min-height: inherit;
|
|
13
14
|
width: 100%;
|
|
14
15
|
height: 100%;
|
|
15
16
|
display: flex;
|
|
@@ -26,8 +27,8 @@
|
|
|
26
27
|
|
|
27
28
|
.v-slider.v-input--horizontal {
|
|
28
29
|
align-items: center;
|
|
29
|
-
margin-
|
|
30
|
-
margin-
|
|
30
|
+
margin-inline-start: 8px;
|
|
31
|
+
margin-inline-end: 8px;
|
|
31
32
|
}
|
|
32
33
|
.v-slider.v-input--horizontal .v-input__control {
|
|
33
34
|
min-height: 32px;
|
|
@@ -50,4 +51,8 @@
|
|
|
50
51
|
|
|
51
52
|
.v-slider--has-labels .v-input__control {
|
|
52
53
|
margin-bottom: 4px;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.v-slider__label {
|
|
57
|
+
margin-inline-end: 12px;
|
|
53
58
|
}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
|
1
|
+
import { mergeProps as _mergeProps, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VSlider.css"; // Components
|
|
4
4
|
|
|
5
|
+
import { filterInputProps, makeVInputProps, VInput } from "../VInput/VInput.mjs";
|
|
6
|
+
import { VLabel } from "../VLabel/index.mjs";
|
|
5
7
|
import { VSliderThumb } from "./VSliderThumb.mjs";
|
|
6
|
-
import { VSliderTrack } from "./VSliderTrack.mjs";
|
|
7
|
-
import { filterInputProps, makeVInputProps, VInput } from "../VInput/VInput.mjs"; // Composables
|
|
8
|
+
import { VSliderTrack } from "./VSliderTrack.mjs"; // Composables
|
|
8
9
|
|
|
9
10
|
import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
|
|
10
11
|
import { makeSliderProps, useSlider } from "./slider.mjs";
|
|
11
|
-
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; //
|
|
12
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
12
13
|
|
|
13
14
|
import { computed, ref } from 'vue';
|
|
14
15
|
import { defineComponent, useRender } from "../../util/index.mjs";
|
|
@@ -67,6 +68,7 @@ export const VSlider = defineComponent({
|
|
|
67
68
|
const trackStop = computed(() => position(model.value));
|
|
68
69
|
useRender(() => {
|
|
69
70
|
const [inputProps, _] = filterInputProps(props);
|
|
71
|
+
const hasPrepend = !!(props.label || slots.label || slots.prepend);
|
|
70
72
|
return _createVNode(VInput, _mergeProps({
|
|
71
73
|
"class": ['v-slider', {
|
|
72
74
|
'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,
|
|
@@ -77,6 +79,14 @@ export const VSlider = defineComponent({
|
|
|
77
79
|
}, inputProps, {
|
|
78
80
|
"focused": isFocused.value
|
|
79
81
|
}), { ...slots,
|
|
82
|
+
prepend: hasPrepend ? slotProps => {
|
|
83
|
+
var _slots$label, _slots$prepend;
|
|
84
|
+
|
|
85
|
+
return _createVNode(_Fragment, null, [((_slots$label = slots.label) == null ? void 0 : _slots$label.call(slots, slotProps)) ?? props.label ? _createVNode(VLabel, {
|
|
86
|
+
"class": "v-slider__label",
|
|
87
|
+
"text": props.label
|
|
88
|
+
}, null) : undefined, (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps)]);
|
|
89
|
+
} : undefined,
|
|
80
90
|
default: _ref2 => {
|
|
81
91
|
let {
|
|
82
92
|
id
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSlider.mjs","names":["
|
|
1
|
+
{"version":3,"file":"VSlider.mjs","names":["filterInputProps","makeVInputProps","VInput","VLabel","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","makeSliderProps","useSlider","useProxiedModel","computed","ref","defineComponent","useRender","VSlider","name","props","modelValue","type","Number","String","default","emits","value","v","setup","slots","thumbContainerRef","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","handleSliderMouseUp","newValue","model","handleMouseMove","getActiveThumb","$el","undefined","parseFloat","isFocused","focus","blur","trackStop","inputProps","_","hasPrepend","label","prepend","disabled","slotProps","id","elevation"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VSlider = defineComponent({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n useRender(() => {\n const [inputProps, _] = filterInputProps(props)\n const hasPrepend = !!(props.label || slots.label || slots.prepend)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n prepend: hasPrepend ? slotProps => (\n <>\n { slots.label?.(slotProps) ?? props.label\n ? (\n <VLabel\n class=\"v-slider__label\"\n text={ props.label }\n />\n ) : undefined\n }\n\n { slots.prepend?.(slotProps) }\n </>\n ) : undefined,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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"}
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
// Elements
|
|
20
20
|
.v-slider__container
|
|
21
21
|
position: relative
|
|
22
|
+
min-height: inherit
|
|
22
23
|
width: 100%
|
|
23
24
|
height: 100%
|
|
24
25
|
display: flex
|
|
@@ -35,8 +36,8 @@
|
|
|
35
36
|
// Modifiers
|
|
36
37
|
.v-slider.v-input--horizontal
|
|
37
38
|
align-items: center
|
|
38
|
-
margin-
|
|
39
|
-
margin-
|
|
39
|
+
margin-inline-start: $slider-horizontal-start
|
|
40
|
+
margin-inline-end: $slider-horizontal-end
|
|
40
41
|
|
|
41
42
|
.v-input__control
|
|
42
43
|
min-height: $slider-horizontal-min-height
|
|
@@ -56,3 +57,6 @@
|
|
|
56
57
|
|
|
57
58
|
.v-slider--has-labels .v-input__control
|
|
58
59
|
margin-bottom: $slider-tick-label-margin-top * .5
|
|
60
|
+
|
|
61
|
+
.v-slider__label
|
|
62
|
+
margin-inline-end: $slider-label-margin-end
|
|
@@ -44,16 +44,16 @@
|
|
|
44
44
|
height: var(--v-slider-tick-size);
|
|
45
45
|
transform: translate(calc(var(--v-slider-tick-size) / -2), calc(var(--v-slider-tick-size) / -2));
|
|
46
46
|
}
|
|
47
|
-
.v-slider-track__tick
|
|
47
|
+
.v-slider-track__tick--first .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider-track__tick--first .v-slider-track__tick-label {
|
|
48
48
|
transform: none;
|
|
49
49
|
}
|
|
50
|
-
.v-slider-track__tick
|
|
50
|
+
.v-slider-track__tick--first .v-slider-track__tick-label.v-locale--is-rtl, .v-locale--is-rtl .v-slider-track__tick--first .v-slider-track__tick-label {
|
|
51
51
|
transform: translateX(100%);
|
|
52
52
|
}
|
|
53
|
-
.v-slider-track__tick
|
|
53
|
+
.v-slider-track__tick--last .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider-track__tick--last .v-slider-track__tick-label {
|
|
54
54
|
transform: translateX(-100%);
|
|
55
55
|
}
|
|
56
|
-
.v-slider-track__tick
|
|
56
|
+
.v-slider-track__tick--last .v-slider-track__tick-label.v-locale--is-rtl, .v-locale--is-rtl .v-slider-track__tick--last .v-slider-track__tick-label {
|
|
57
57
|
transform: none;
|
|
58
58
|
}
|
|
59
59
|
|
|
@@ -82,33 +82,33 @@
|
|
|
82
82
|
.v-slider.v-input--horizontal .v-slider-track__tick.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick {
|
|
83
83
|
transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / -2));
|
|
84
84
|
}
|
|
85
|
-
.v-slider.v-input--horizontal .v-slider-track__tick
|
|
85
|
+
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
86
|
+
margin-top: calc(var(--v-slider-track-size) / 2 + 8px);
|
|
87
|
+
}
|
|
88
|
+
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
89
|
+
transform: translateX(-50%);
|
|
90
|
+
}
|
|
91
|
+
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
92
|
+
transform: translateX(50%);
|
|
93
|
+
}
|
|
94
|
+
.v-slider.v-input--horizontal .v-slider-track__tick--first {
|
|
86
95
|
margin-inline-start: calc(var(--v-slider-tick-size) + 1px);
|
|
87
96
|
}
|
|
88
|
-
.v-slider.v-input--horizontal .v-slider-track__tick
|
|
97
|
+
.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label {
|
|
89
98
|
transform: translateX(0%);
|
|
90
99
|
}
|
|
91
|
-
.v-slider.v-input--horizontal .v-slider-track__tick
|
|
100
|
+
.v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--first .v-slider-track__tick-label {
|
|
92
101
|
transform: translateX(0%);
|
|
93
102
|
}
|
|
94
|
-
.v-slider.v-input--horizontal .v-slider-track__tick
|
|
103
|
+
.v-slider.v-input--horizontal .v-slider-track__tick--last {
|
|
95
104
|
margin-inline-start: calc(100% - var(--v-slider-tick-size) - 1px);
|
|
96
105
|
}
|
|
97
|
-
.v-slider.v-input--horizontal .v-slider-track__tick
|
|
106
|
+
.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label {
|
|
98
107
|
transform: translateX(-100%);
|
|
99
108
|
}
|
|
100
|
-
.v-slider.v-input--horizontal .v-slider-track__tick
|
|
109
|
+
.v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick--last .v-slider-track__tick-label {
|
|
101
110
|
transform: translateX(100%);
|
|
102
111
|
}
|
|
103
|
-
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
104
|
-
margin-top: calc(var(--v-slider-track-size) / 2 + 8px);
|
|
105
|
-
}
|
|
106
|
-
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
107
|
-
transform: translateX(-50%);
|
|
108
|
-
}
|
|
109
|
-
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
110
|
-
transform: translateX(50%);
|
|
111
|
-
}
|
|
112
112
|
|
|
113
113
|
.v-slider.v-input--vertical .v-slider-track {
|
|
114
114
|
height: 100%;
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
.v-slider.v-input--vertical .v-slider-track__tick.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--vertical .v-slider-track__tick {
|
|
134
134
|
transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / 2));
|
|
135
135
|
}
|
|
136
|
-
.v-slider.v-input--vertical .v-slider-track__tick
|
|
136
|
+
.v-slider.v-input--vertical .v-slider-track__tick--last {
|
|
137
137
|
bottom: calc(0% + var(--v-slider-tick-size) + 1px);
|
|
138
138
|
}
|
|
139
139
|
.v-slider.v-input--vertical .v-slider-track__tick .v-slider-track__tick-label {
|
|
@@ -39,7 +39,9 @@ export const VSliderTrack = defineComponent({
|
|
|
39
39
|
trackColor,
|
|
40
40
|
trackFillColor,
|
|
41
41
|
trackSize,
|
|
42
|
-
vertical
|
|
42
|
+
vertical,
|
|
43
|
+
min,
|
|
44
|
+
max
|
|
43
45
|
} = slider;
|
|
44
46
|
const {
|
|
45
47
|
roundedClasses
|
|
@@ -73,11 +75,13 @@ export const VSliderTrack = defineComponent({
|
|
|
73
75
|
var _slots$tickLabel;
|
|
74
76
|
|
|
75
77
|
const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
|
|
76
|
-
const directionValue = tick.
|
|
78
|
+
const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined;
|
|
77
79
|
return _createVNode("div", {
|
|
78
80
|
"key": tick.value,
|
|
79
81
|
"class": ['v-slider-track__tick', {
|
|
80
|
-
'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop
|
|
82
|
+
'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,
|
|
83
|
+
'v-slider-track__tick--first': tick.value === min.value,
|
|
84
|
+
'v-slider-track__tick--last': tick.value === max.value
|
|
81
85
|
}],
|
|
82
86
|
"style": {
|
|
83
87
|
[directionProperty]: directionValue
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","defineComponent","useRender","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","slots","slider","Error","color","horizontalDirection","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","directionValue","position","undefined","label","direction"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\nexport const VSliderTrack = defineComponent({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n horizontalDirection,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n const directionValue =
|
|
1
|
+
{"version":3,"file":"VSliderTrack.mjs","names":["VSliderSymbol","useBackgroundColor","useRounded","computed","inject","convertToUnit","defineComponent","useRender","VSliderTrack","name","props","start","type","Number","required","stop","emits","setup","slots","slider","Error","color","horizontalDirection","parsedTicks","rounded","showTicks","tickSize","trackColor","trackFillColor","trackSize","vertical","min","max","roundedClasses","backgroundColorClasses","trackFillColorClasses","backgroundColorStyles","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","value","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","ticks","slice","reverse","map","tick","index","directionProperty","directionValue","position","undefined","label","direction"],"sources":["../../../src/components/VSlider/VSliderTrack.tsx"],"sourcesContent":["// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent, useRender } from '@/util'\n\nexport const VSliderTrack = defineComponent({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n color,\n horizontalDirection,\n parsedTicks,\n rounded,\n showTicks,\n tickSize,\n trackColor,\n trackFillColor,\n trackSize,\n vertical,\n min,\n max,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n const directionValue = tick.value !== min.value && tick.value !== max.value ? convertToUnit(tick.position, '%') : undefined\n\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n 'v-slider-track__tick--first': tick.value === min.value,\n 'v-slider-track__tick--last': tick.value === max.value,\n },\n ]}\n style={{ [directionProperty]: directionValue }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n useRender(() => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n ]}\n style={{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n ) }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n"],"mappings":"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"}
|
|
@@ -47,14 +47,14 @@
|
|
|
47
47
|
height: var(--v-slider-tick-size)
|
|
48
48
|
transform: translate(calc(var(--v-slider-tick-size) / -2), calc(var(--v-slider-tick-size) / -2))
|
|
49
49
|
|
|
50
|
-
|
|
50
|
+
&--first .v-slider-track__tick-label
|
|
51
51
|
@include tools.ltr()
|
|
52
52
|
transform: none
|
|
53
53
|
|
|
54
54
|
@include tools.rtl()
|
|
55
55
|
transform: translateX(100%)
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
&--last .v-slider-track__tick-label
|
|
58
58
|
@include tools.ltr()
|
|
59
59
|
transform: translateX(-100%)
|
|
60
60
|
|
|
@@ -87,7 +87,16 @@
|
|
|
87
87
|
@include tools.rtl()
|
|
88
88
|
transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / -2))
|
|
89
89
|
|
|
90
|
-
|
|
90
|
+
.v-slider-track__tick-label
|
|
91
|
+
margin-top: calc(var(--v-slider-track-size) / 2 + #{$slider-tick-label-margin-top})
|
|
92
|
+
|
|
93
|
+
@include tools.ltr()
|
|
94
|
+
transform: translateX(-50%)
|
|
95
|
+
|
|
96
|
+
@include tools.rtl()
|
|
97
|
+
transform: translateX(50%)
|
|
98
|
+
|
|
99
|
+
&--first
|
|
91
100
|
margin-inline-start: calc(var(--v-slider-tick-size) + 1px)
|
|
92
101
|
|
|
93
102
|
.v-slider-track__tick-label
|
|
@@ -97,7 +106,7 @@
|
|
|
97
106
|
@include tools.rtl()
|
|
98
107
|
transform: translateX(0%)
|
|
99
108
|
|
|
100
|
-
|
|
109
|
+
&--last
|
|
101
110
|
margin-inline-start: calc(100% - var(--v-slider-tick-size) - 1px)
|
|
102
111
|
|
|
103
112
|
.v-slider-track__tick-label
|
|
@@ -107,15 +116,6 @@
|
|
|
107
116
|
@include tools.rtl()
|
|
108
117
|
transform: translateX(100%)
|
|
109
118
|
|
|
110
|
-
.v-slider-track__tick-label
|
|
111
|
-
margin-top: calc(var(--v-slider-track-size) / 2 + #{$slider-tick-label-margin-top})
|
|
112
|
-
|
|
113
|
-
@include tools.ltr()
|
|
114
|
-
transform: translateX(-50%)
|
|
115
|
-
|
|
116
|
-
@include tools.rtl()
|
|
117
|
-
transform: translateX(50%)
|
|
118
|
-
|
|
119
119
|
// Vertical
|
|
120
120
|
.v-slider.v-input--vertical
|
|
121
121
|
.v-slider-track
|
|
@@ -141,7 +141,7 @@
|
|
|
141
141
|
@include tools.rtl()
|
|
142
142
|
transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / 2))
|
|
143
143
|
|
|
144
|
-
|
|
144
|
+
&--last
|
|
145
145
|
bottom: calc(0% + var(--v-slider-tick-size) + 1px)
|
|
146
146
|
|
|
147
147
|
.v-slider-track__tick-label
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
@use '../../styles/settings';
|
|
2
2
|
@use '../../styles/tools';
|
|
3
3
|
|
|
4
|
-
$slider-horizontal-
|
|
4
|
+
$slider-horizontal-start: 8px !default;
|
|
5
5
|
$slider-horizontal-min-height: 32px !default;
|
|
6
|
-
$slider-horizontal-
|
|
6
|
+
$slider-horizontal-end: 8px !default;
|
|
7
7
|
$slider-label-margin-end: 12px !default;
|
|
8
8
|
$slider-label-margin-start: 12px !default;
|
|
9
9
|
$slider-state-track-background-opacity: 0.4 !default;
|