@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,68 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { PropType } from 'vue';
|
|
3
|
+
|
|
4
|
+
declare const VProgressCircular: vue.DefineComponent<{
|
|
5
|
+
theme: StringConstructor;
|
|
6
|
+
tag: Omit<{
|
|
7
|
+
type: StringConstructor;
|
|
8
|
+
default: string;
|
|
9
|
+
}, "type" | "default"> & {
|
|
10
|
+
type: PropType<string>;
|
|
11
|
+
default: string;
|
|
12
|
+
};
|
|
13
|
+
size: {
|
|
14
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
15
|
+
default: string;
|
|
16
|
+
};
|
|
17
|
+
bgColor: StringConstructor;
|
|
18
|
+
color: StringConstructor;
|
|
19
|
+
indeterminate: PropType<boolean | "disable-shrink">;
|
|
20
|
+
modelValue: {
|
|
21
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
22
|
+
default: number;
|
|
23
|
+
};
|
|
24
|
+
rotate: {
|
|
25
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
26
|
+
default: number;
|
|
27
|
+
};
|
|
28
|
+
width: {
|
|
29
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
30
|
+
default: number;
|
|
31
|
+
};
|
|
32
|
+
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
33
|
+
theme: StringConstructor;
|
|
34
|
+
tag: Omit<{
|
|
35
|
+
type: StringConstructor;
|
|
36
|
+
default: string;
|
|
37
|
+
}, "type" | "default"> & {
|
|
38
|
+
type: PropType<string>;
|
|
39
|
+
default: string;
|
|
40
|
+
};
|
|
41
|
+
size: {
|
|
42
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
43
|
+
default: string;
|
|
44
|
+
};
|
|
45
|
+
bgColor: StringConstructor;
|
|
46
|
+
color: StringConstructor;
|
|
47
|
+
indeterminate: PropType<boolean | "disable-shrink">;
|
|
48
|
+
modelValue: {
|
|
49
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
50
|
+
default: number;
|
|
51
|
+
};
|
|
52
|
+
rotate: {
|
|
53
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
54
|
+
default: number;
|
|
55
|
+
};
|
|
56
|
+
width: {
|
|
57
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
58
|
+
default: number;
|
|
59
|
+
};
|
|
60
|
+
}>>, {
|
|
61
|
+
width: string | number;
|
|
62
|
+
rotate: string | number;
|
|
63
|
+
size: string | number;
|
|
64
|
+
tag: string;
|
|
65
|
+
modelValue: string | number;
|
|
66
|
+
}>;
|
|
67
|
+
|
|
68
|
+
export { VProgressCircular };
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
|
|
3
|
+
declare const VProgressLinear: vue.DefineComponent<{
|
|
4
|
+
theme: StringConstructor;
|
|
5
|
+
tag: {
|
|
6
|
+
type: StringConstructor;
|
|
7
|
+
default: string;
|
|
8
|
+
};
|
|
9
|
+
rounded: {
|
|
10
|
+
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
11
|
+
default: undefined;
|
|
12
|
+
};
|
|
13
|
+
active: {
|
|
14
|
+
type: BooleanConstructor;
|
|
15
|
+
default: boolean;
|
|
16
|
+
};
|
|
17
|
+
bgColor: StringConstructor;
|
|
18
|
+
bgOpacity: (StringConstructor | NumberConstructor)[];
|
|
19
|
+
bufferValue: {
|
|
20
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
21
|
+
default: number;
|
|
22
|
+
};
|
|
23
|
+
clickable: BooleanConstructor;
|
|
24
|
+
color: StringConstructor;
|
|
25
|
+
height: {
|
|
26
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
27
|
+
default: number;
|
|
28
|
+
};
|
|
29
|
+
indeterminate: BooleanConstructor;
|
|
30
|
+
max: {
|
|
31
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
32
|
+
default: number;
|
|
33
|
+
};
|
|
34
|
+
modelValue: {
|
|
35
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
36
|
+
default: number;
|
|
37
|
+
};
|
|
38
|
+
reverse: BooleanConstructor;
|
|
39
|
+
stream: BooleanConstructor;
|
|
40
|
+
striped: BooleanConstructor;
|
|
41
|
+
roundedBar: BooleanConstructor;
|
|
42
|
+
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
43
|
+
'update:modelValue': (value: number) => true;
|
|
44
|
+
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
45
|
+
theme: StringConstructor;
|
|
46
|
+
tag: {
|
|
47
|
+
type: StringConstructor;
|
|
48
|
+
default: string;
|
|
49
|
+
};
|
|
50
|
+
rounded: {
|
|
51
|
+
type: (StringConstructor | BooleanConstructor | NumberConstructor)[];
|
|
52
|
+
default: undefined;
|
|
53
|
+
};
|
|
54
|
+
active: {
|
|
55
|
+
type: BooleanConstructor;
|
|
56
|
+
default: boolean;
|
|
57
|
+
};
|
|
58
|
+
bgColor: StringConstructor;
|
|
59
|
+
bgOpacity: (StringConstructor | NumberConstructor)[];
|
|
60
|
+
bufferValue: {
|
|
61
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
62
|
+
default: number;
|
|
63
|
+
};
|
|
64
|
+
clickable: BooleanConstructor;
|
|
65
|
+
color: StringConstructor;
|
|
66
|
+
height: {
|
|
67
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
68
|
+
default: number;
|
|
69
|
+
};
|
|
70
|
+
indeterminate: BooleanConstructor;
|
|
71
|
+
max: {
|
|
72
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
73
|
+
default: number;
|
|
74
|
+
};
|
|
75
|
+
modelValue: {
|
|
76
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
77
|
+
default: number;
|
|
78
|
+
};
|
|
79
|
+
reverse: BooleanConstructor;
|
|
80
|
+
stream: BooleanConstructor;
|
|
81
|
+
striped: BooleanConstructor;
|
|
82
|
+
roundedBar: BooleanConstructor;
|
|
83
|
+
}>> & {
|
|
84
|
+
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
85
|
+
}, {
|
|
86
|
+
reverse: boolean;
|
|
87
|
+
max: string | number;
|
|
88
|
+
height: string | number;
|
|
89
|
+
active: boolean;
|
|
90
|
+
tag: string;
|
|
91
|
+
indeterminate: boolean;
|
|
92
|
+
rounded: string | number | boolean;
|
|
93
|
+
modelValue: string | number;
|
|
94
|
+
bufferValue: string | number;
|
|
95
|
+
clickable: boolean;
|
|
96
|
+
stream: boolean;
|
|
97
|
+
striped: boolean;
|
|
98
|
+
roundedBar: boolean;
|
|
99
|
+
}>;
|
|
100
|
+
|
|
101
|
+
export { VProgressLinear };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { JSXComponent, PropType } from 'vue';
|
|
3
|
+
|
|
4
|
+
declare function deepEqual(a: any, b: any): boolean;
|
|
5
|
+
|
|
6
|
+
declare type IconValue = string | JSXComponent;
|
|
7
|
+
declare const IconValue: PropType<IconValue>;
|
|
8
|
+
|
|
9
|
+
declare const VRadio: vue.DefineComponent<{
|
|
10
|
+
density: {
|
|
11
|
+
type: vue.PropType<"default" | "compact" | "comfortable" | null>;
|
|
12
|
+
default: string;
|
|
13
|
+
validator: (v: any) => boolean;
|
|
14
|
+
};
|
|
15
|
+
theme: StringConstructor;
|
|
16
|
+
color: StringConstructor;
|
|
17
|
+
disabled: BooleanConstructor;
|
|
18
|
+
error: BooleanConstructor;
|
|
19
|
+
id: StringConstructor;
|
|
20
|
+
inline: BooleanConstructor;
|
|
21
|
+
label: StringConstructor;
|
|
22
|
+
falseIcon: {
|
|
23
|
+
type: vue.PropType<(string & {}) | IconValue>;
|
|
24
|
+
default: (string & {}) | IconValue;
|
|
25
|
+
};
|
|
26
|
+
trueIcon: {
|
|
27
|
+
type: vue.PropType<(string & {}) | IconValue>;
|
|
28
|
+
default: (string & {}) | IconValue;
|
|
29
|
+
};
|
|
30
|
+
ripple: {
|
|
31
|
+
type: BooleanConstructor;
|
|
32
|
+
default: boolean;
|
|
33
|
+
};
|
|
34
|
+
multiple: {
|
|
35
|
+
type: vue.PropType<boolean | null>;
|
|
36
|
+
default: null;
|
|
37
|
+
};
|
|
38
|
+
name: StringConstructor;
|
|
39
|
+
readonly: BooleanConstructor;
|
|
40
|
+
trueValue: null;
|
|
41
|
+
falseValue: null;
|
|
42
|
+
modelValue: null;
|
|
43
|
+
type: StringConstructor;
|
|
44
|
+
value: null;
|
|
45
|
+
valueComparator: {
|
|
46
|
+
type: vue.PropType<typeof deepEqual>;
|
|
47
|
+
default: typeof deepEqual;
|
|
48
|
+
};
|
|
49
|
+
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
50
|
+
density: {
|
|
51
|
+
type: vue.PropType<"default" | "compact" | "comfortable" | null>;
|
|
52
|
+
default: string;
|
|
53
|
+
validator: (v: any) => boolean;
|
|
54
|
+
};
|
|
55
|
+
theme: StringConstructor;
|
|
56
|
+
color: StringConstructor;
|
|
57
|
+
disabled: BooleanConstructor;
|
|
58
|
+
error: BooleanConstructor;
|
|
59
|
+
id: StringConstructor;
|
|
60
|
+
inline: BooleanConstructor;
|
|
61
|
+
label: StringConstructor;
|
|
62
|
+
falseIcon: {
|
|
63
|
+
type: vue.PropType<(string & {}) | IconValue>;
|
|
64
|
+
default: (string & {}) | IconValue;
|
|
65
|
+
};
|
|
66
|
+
trueIcon: {
|
|
67
|
+
type: vue.PropType<(string & {}) | IconValue>;
|
|
68
|
+
default: (string & {}) | IconValue;
|
|
69
|
+
};
|
|
70
|
+
ripple: {
|
|
71
|
+
type: BooleanConstructor;
|
|
72
|
+
default: boolean;
|
|
73
|
+
};
|
|
74
|
+
multiple: {
|
|
75
|
+
type: vue.PropType<boolean | null>;
|
|
76
|
+
default: null;
|
|
77
|
+
};
|
|
78
|
+
name: StringConstructor;
|
|
79
|
+
readonly: BooleanConstructor;
|
|
80
|
+
trueValue: null;
|
|
81
|
+
falseValue: null;
|
|
82
|
+
modelValue: null;
|
|
83
|
+
type: StringConstructor;
|
|
84
|
+
value: null;
|
|
85
|
+
valueComparator: {
|
|
86
|
+
type: vue.PropType<typeof deepEqual>;
|
|
87
|
+
default: typeof deepEqual;
|
|
88
|
+
};
|
|
89
|
+
}>>, {
|
|
90
|
+
inline: boolean;
|
|
91
|
+
error: boolean;
|
|
92
|
+
disabled: boolean;
|
|
93
|
+
multiple: boolean | null;
|
|
94
|
+
readonly: boolean;
|
|
95
|
+
density: "default" | "compact" | "comfortable" | null;
|
|
96
|
+
ripple: boolean;
|
|
97
|
+
falseIcon: (string & {}) | IconValue;
|
|
98
|
+
trueIcon: (string & {}) | IconValue;
|
|
99
|
+
valueComparator: typeof deepEqual;
|
|
100
|
+
}>;
|
|
101
|
+
declare type VRadio = InstanceType<typeof VRadio>;
|
|
102
|
+
|
|
103
|
+
export { VRadio };
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
.v-radio-group {
|
|
2
|
-
|
|
1
|
+
.v-radio-group > .v-input__control {
|
|
2
|
+
flex-direction: column;
|
|
3
3
|
}
|
|
4
4
|
.v-radio-group > .v-label {
|
|
5
|
-
grid-area: label;
|
|
6
5
|
margin-inline-start: 12px;
|
|
7
6
|
}
|
|
8
7
|
.v-radio-group > .v-label + .v-selection-control-group {
|
|
@@ -78,7 +78,8 @@ export const VRadioGroup = defineComponent({
|
|
|
78
78
|
isReadonly
|
|
79
79
|
} = _ref2;
|
|
80
80
|
return _createVNode(_Fragment, null, [label && _createVNode(VLabel, {
|
|
81
|
-
"for": id.value
|
|
81
|
+
"for": id.value,
|
|
82
|
+
"clickable": true
|
|
82
83
|
}, {
|
|
83
84
|
default: () => [label]
|
|
84
85
|
}), _createVNode(VSelectionControlGroup, _mergeProps(controlProps, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VRadioGroup.mjs","names":["filterControlProps","makeSelectionControlProps","filterInputProps","makeVInputProps","VInput","VLabel","VSelectionControlGroup","IconValue","provideDefaults","useProxiedModel","computed","toRef","defineComponent","filterInputAttrs","getUid","useRender","VRadioGroup","name","inheritAttrs","props","height","type","Number","String","default","trueIcon","falseIcon","emits","val","setup","attrs","slots","uid","id","model","VRadio","color","density","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","label","for","value","isDisabled","isReadonly"],"sources":["../../../src/components/VRadioGroup/VRadioGroup.tsx"],"sourcesContent":["// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroup } from '@/components/VSelectionControlGroup'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n const model = useProxiedModel(props, 'modelValue')\n\n provideDefaults({\n VRadio: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n },\n })\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n v-model={ model.value }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-model={ model.value }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n"],"mappings":";AAAA;AACA,2B,CAEA;;SACSA,kB,EAAoBC,yB;SACpBC,gB,EAAkBC,e,EAAiBC,M;SACnCC,M;SACAC,sB,+CAET;;SACSC,S;SACAC,e;SACAC,e,8CAET;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,e,EAAiBC,gB,EAAkBC,M,EAAQC,S;AAEpD,OAAO,MAAMC,WAAW,GAAGJ,eAAe,CAAC;EACzCK,IAAI,EAAE,aADmC;EAGzCC,YAAY,EAAE,KAH2B;EAKzCC,KAAK,EAAE;IACLC,MAAM,EAAE;MACNC,IAAI,EAAE,CAACC,MAAD,EAASC,MAAT,CADA;MAENC,OAAO,EAAE;IAFH,CADH;IAML,GAAGrB,eAAe,EANb;IAOL,GAAGF,yBAAyB,EAPvB;IASLwB,QAAQ,EAAE;MACRJ,IAAI,EAAEd,SADE;MAERiB,OAAO,EAAE;IAFD,CATL;IAaLE,SAAS,EAAE;MACTL,IAAI,EAAEd,SADG;MAETiB,OAAO,EAAE;IAFA,CAbN;IAiBLH,IAAI,EAAE;MACJA,IAAI,EAAEE,MADF;MAEJC,OAAO,EAAE;IAFL;EAjBD,CALkC;EA4BzCG,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAc;EAD9B,CA5BkC;;EAgCzCC,KAAK,CAAEV,KAAF,QAA2B;IAAA,IAAlB;MAAEW,KAAF;MAASC;IAAT,CAAkB;IAC9B,MAAMC,GAAG,GAAGlB,MAAM,EAAlB;IACA,MAAMmB,EAAE,GAAGvB,QAAQ,CAAC,MAAMS,KAAK,CAACc,EAAN,IAAa,eAAcD,GAAI,EAAtC,CAAnB;IACA,MAAME,KAAK,GAAGzB,eAAe,CAACU,KAAD,EAAQ,YAAR,CAA7B;IAEAX,eAAe,CAAC;MACd2B,MAAM,EAAE;QACNC,KAAK,EAAEzB,KAAK,CAACQ,KAAD,EAAQ,OAAR,CADN;QAENkB,OAAO,EAAE1B,KAAK,CAACQ,KAAD,EAAQ,SAAR;MAFR;IADM,CAAD,CAAf;IAOAJ,SAAS,CAAC,MAAM;MACd,MAAM,CAACuB,UAAD,EAAaC,YAAb,IAA6B1B,gBAAgB,CAACiB,KAAD,CAAnD;MACA,MAAM,CAACU,UAAD,EAAaC,EAAb,IAAmBvC,gBAAgB,CAACiB,KAAD,CAAzC;MACA,MAAM,CAACuB,YAAD,EAAeC,EAAf,IAAqB3C,kBAAkB,CAACmB,KAAD,CAA7C;MACA,MAAMyB,KAAK,GAAGb,KAAK,CAACa,KAAN,GACVb,KAAK,CAACa,KAAN,CAAY;QACZA,KAAK,EAAEzB,KAAK,CAACyB,KADD;QAEZzB,KAAK,EAAE;UAAE0B,GAAG,EAAEZ,EAAE,CAACa;QAAV;MAFK,CAAZ,CADU,GAKV3B,KAAK,CAACyB,KALV;MAOA;QAAA,SAEU;MAFV,GAGSN,UAHT,EAISE,UAJT;QAAA,cAKcN,KAAK,CAACY,KALpB;QAAA,iCAKcZ,KAAK,CAACY,KALpB;QAAA,MAMSb,EAAE,CAACa;MANZ,MASM,GAAGf,KATT;QAUMP,OAAO,EAAE;UAAA,IAAC;YACRS,EADQ;YAERc,UAFQ;YAGRC;UAHQ,CAAD;UAAA,sCAMHJ,KAAK;YAAA,OACSX,EAAE,CAACa;
|
|
1
|
+
{"version":3,"file":"VRadioGroup.mjs","names":["filterControlProps","makeSelectionControlProps","filterInputProps","makeVInputProps","VInput","VLabel","VSelectionControlGroup","IconValue","provideDefaults","useProxiedModel","computed","toRef","defineComponent","filterInputAttrs","getUid","useRender","VRadioGroup","name","inheritAttrs","props","height","type","Number","String","default","trueIcon","falseIcon","emits","val","setup","attrs","slots","uid","id","model","VRadio","color","density","inputAttrs","controlAttrs","inputProps","_1","controlProps","_2","label","for","value","isDisabled","isReadonly"],"sources":["../../../src/components/VRadioGroup/VRadioGroup.tsx"],"sourcesContent":["// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroup } from '@/components/VSelectionControlGroup'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n trueIcon: {\n type: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n const model = useProxiedModel(props, 'modelValue')\n\n provideDefaults({\n VRadio: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n },\n })\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n v-model={ model.value }\n id={ id.value }\n >\n {{\n ...slots,\n default: ({\n id,\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel for={ id.value } clickable>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-model={ model.value }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n"],"mappings":"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"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
@use './variables' as *
|
|
2
2
|
|
|
3
3
|
.v-radio-group
|
|
4
|
-
|
|
4
|
+
> .v-input__control
|
|
5
|
+
flex-direction: column
|
|
5
6
|
|
|
6
7
|
> .v-label
|
|
7
|
-
grid-area: $radio-group-label-grid-area
|
|
8
8
|
margin-inline-start: $radio-group-label-margin-inline-start
|
|
9
9
|
|
|
10
10
|
+ .v-selection-control-group
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import * as vue from 'vue';
|
|
2
|
+
import { PropType, JSXComponent } from 'vue';
|
|
3
|
+
|
|
4
|
+
declare function deepEqual(a: any, b: any): boolean;
|
|
5
|
+
declare type EventProp<T = (...args: any[]) => any> = T | T[];
|
|
6
|
+
declare const EventProp: PropType<EventProp<(...args: any[]) => any>>;
|
|
7
|
+
|
|
8
|
+
declare type ValidationResult = string | boolean;
|
|
9
|
+
declare type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
|
|
10
|
+
|
|
11
|
+
declare type IconValue = string | JSXComponent;
|
|
12
|
+
declare const IconValue: PropType<IconValue>;
|
|
13
|
+
|
|
14
|
+
declare const VRadioGroup: vue.DefineComponent<{
|
|
15
|
+
trueIcon: {
|
|
16
|
+
type: vue.PropType<IconValue>;
|
|
17
|
+
default: string;
|
|
18
|
+
};
|
|
19
|
+
falseIcon: {
|
|
20
|
+
type: vue.PropType<IconValue>;
|
|
21
|
+
default: string;
|
|
22
|
+
};
|
|
23
|
+
type: {
|
|
24
|
+
type: StringConstructor;
|
|
25
|
+
default: string;
|
|
26
|
+
};
|
|
27
|
+
density: {
|
|
28
|
+
type: vue.PropType<"default" | "compact" | "comfortable" | null>;
|
|
29
|
+
default: string;
|
|
30
|
+
validator: (v: any) => boolean;
|
|
31
|
+
};
|
|
32
|
+
theme: StringConstructor;
|
|
33
|
+
color: StringConstructor;
|
|
34
|
+
disabled: BooleanConstructor;
|
|
35
|
+
error: BooleanConstructor;
|
|
36
|
+
id: StringConstructor;
|
|
37
|
+
inline: BooleanConstructor;
|
|
38
|
+
label: StringConstructor;
|
|
39
|
+
ripple: {
|
|
40
|
+
type: BooleanConstructor;
|
|
41
|
+
default: boolean;
|
|
42
|
+
};
|
|
43
|
+
multiple: {
|
|
44
|
+
type: vue.PropType<boolean | null>;
|
|
45
|
+
default: null;
|
|
46
|
+
};
|
|
47
|
+
name: StringConstructor;
|
|
48
|
+
readonly: BooleanConstructor;
|
|
49
|
+
trueValue: null;
|
|
50
|
+
falseValue: null;
|
|
51
|
+
modelValue: null;
|
|
52
|
+
value: null;
|
|
53
|
+
valueComparator: {
|
|
54
|
+
type: vue.PropType<typeof deepEqual>;
|
|
55
|
+
default: typeof deepEqual;
|
|
56
|
+
};
|
|
57
|
+
errorMessages: {
|
|
58
|
+
type: vue.PropType<string | string[]>;
|
|
59
|
+
default: () => never[];
|
|
60
|
+
};
|
|
61
|
+
maxErrors: {
|
|
62
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
63
|
+
default: number;
|
|
64
|
+
};
|
|
65
|
+
rules: {
|
|
66
|
+
type: vue.PropType<ValidationRule[]>;
|
|
67
|
+
default: () => never[];
|
|
68
|
+
};
|
|
69
|
+
validationValue: null;
|
|
70
|
+
appendIcon: vue.PropType<IconValue>;
|
|
71
|
+
prependIcon: vue.PropType<IconValue>;
|
|
72
|
+
hideDetails: vue.PropType<boolean | "auto">;
|
|
73
|
+
messages: {
|
|
74
|
+
type: vue.PropType<string | string[]>;
|
|
75
|
+
default: () => never[];
|
|
76
|
+
};
|
|
77
|
+
direction: {
|
|
78
|
+
type: vue.PropType<"horizontal" | "vertical">;
|
|
79
|
+
default: string;
|
|
80
|
+
validator: (v: any) => boolean;
|
|
81
|
+
};
|
|
82
|
+
'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
83
|
+
'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
84
|
+
height: {
|
|
85
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
86
|
+
default: string;
|
|
87
|
+
};
|
|
88
|
+
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
89
|
+
'update:modelValue': (val: any) => true;
|
|
90
|
+
}, string, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, Readonly<vue.ExtractPropTypes<{
|
|
91
|
+
trueIcon: {
|
|
92
|
+
type: vue.PropType<IconValue>;
|
|
93
|
+
default: string;
|
|
94
|
+
};
|
|
95
|
+
falseIcon: {
|
|
96
|
+
type: vue.PropType<IconValue>;
|
|
97
|
+
default: string;
|
|
98
|
+
};
|
|
99
|
+
type: {
|
|
100
|
+
type: StringConstructor;
|
|
101
|
+
default: string;
|
|
102
|
+
};
|
|
103
|
+
density: {
|
|
104
|
+
type: vue.PropType<"default" | "compact" | "comfortable" | null>;
|
|
105
|
+
default: string;
|
|
106
|
+
validator: (v: any) => boolean;
|
|
107
|
+
};
|
|
108
|
+
theme: StringConstructor;
|
|
109
|
+
color: StringConstructor;
|
|
110
|
+
disabled: BooleanConstructor;
|
|
111
|
+
error: BooleanConstructor;
|
|
112
|
+
id: StringConstructor;
|
|
113
|
+
inline: BooleanConstructor;
|
|
114
|
+
label: StringConstructor;
|
|
115
|
+
ripple: {
|
|
116
|
+
type: BooleanConstructor;
|
|
117
|
+
default: boolean;
|
|
118
|
+
};
|
|
119
|
+
multiple: {
|
|
120
|
+
type: vue.PropType<boolean | null>;
|
|
121
|
+
default: null;
|
|
122
|
+
};
|
|
123
|
+
name: StringConstructor;
|
|
124
|
+
readonly: BooleanConstructor;
|
|
125
|
+
trueValue: null;
|
|
126
|
+
falseValue: null;
|
|
127
|
+
modelValue: null;
|
|
128
|
+
value: null;
|
|
129
|
+
valueComparator: {
|
|
130
|
+
type: vue.PropType<typeof deepEqual>;
|
|
131
|
+
default: typeof deepEqual;
|
|
132
|
+
};
|
|
133
|
+
errorMessages: {
|
|
134
|
+
type: vue.PropType<string | string[]>;
|
|
135
|
+
default: () => never[];
|
|
136
|
+
};
|
|
137
|
+
maxErrors: {
|
|
138
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
139
|
+
default: number;
|
|
140
|
+
};
|
|
141
|
+
rules: {
|
|
142
|
+
type: vue.PropType<ValidationRule[]>;
|
|
143
|
+
default: () => never[];
|
|
144
|
+
};
|
|
145
|
+
validationValue: null;
|
|
146
|
+
appendIcon: vue.PropType<IconValue>;
|
|
147
|
+
prependIcon: vue.PropType<IconValue>;
|
|
148
|
+
hideDetails: vue.PropType<boolean | "auto">;
|
|
149
|
+
messages: {
|
|
150
|
+
type: vue.PropType<string | string[]>;
|
|
151
|
+
default: () => never[];
|
|
152
|
+
};
|
|
153
|
+
direction: {
|
|
154
|
+
type: vue.PropType<"horizontal" | "vertical">;
|
|
155
|
+
default: string;
|
|
156
|
+
validator: (v: any) => boolean;
|
|
157
|
+
};
|
|
158
|
+
'onClick:prepend': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
159
|
+
'onClick:append': vue.PropType<EventProp<(...args: any[]) => any>>;
|
|
160
|
+
height: {
|
|
161
|
+
type: (StringConstructor | NumberConstructor)[];
|
|
162
|
+
default: string;
|
|
163
|
+
};
|
|
164
|
+
}>> & {
|
|
165
|
+
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
166
|
+
}, {
|
|
167
|
+
type: string;
|
|
168
|
+
inline: boolean;
|
|
169
|
+
error: boolean;
|
|
170
|
+
height: string | number;
|
|
171
|
+
direction: "horizontal" | "vertical";
|
|
172
|
+
disabled: boolean;
|
|
173
|
+
multiple: boolean | null;
|
|
174
|
+
readonly: boolean;
|
|
175
|
+
messages: string | string[];
|
|
176
|
+
density: "default" | "compact" | "comfortable" | null;
|
|
177
|
+
ripple: boolean;
|
|
178
|
+
errorMessages: string | string[];
|
|
179
|
+
maxErrors: string | number;
|
|
180
|
+
rules: ValidationRule[];
|
|
181
|
+
falseIcon: IconValue;
|
|
182
|
+
trueIcon: IconValue;
|
|
183
|
+
valueComparator: typeof deepEqual;
|
|
184
|
+
}>;
|
|
185
|
+
|
|
186
|
+
export { VRadioGroup };
|
|
@@ -1,9 +1,10 @@
|
|
|
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/VSlider.css"; // Components
|
|
4
4
|
|
|
5
|
-
import { getOffset, makeSliderProps, useSlider } from "../VSlider/slider.mjs";
|
|
6
5
|
import { filterInputProps, makeVInputProps, VInput } from "../VInput/VInput.mjs";
|
|
6
|
+
import { getOffset, makeSliderProps, useSlider } from "../VSlider/slider.mjs";
|
|
7
|
+
import { VLabel } from "../VLabel/index.mjs";
|
|
7
8
|
import { VSliderThumb } from "../VSlider/VSliderThumb.mjs";
|
|
8
9
|
import { VSliderTrack } from "../VSlider/VSliderTrack.mjs"; // Composables
|
|
9
10
|
|
|
@@ -100,6 +101,7 @@ export const VRangeSlider = defineComponent({
|
|
|
100
101
|
const trackStop = computed(() => position(model.value[1]));
|
|
101
102
|
useRender(() => {
|
|
102
103
|
const [inputProps, _] = filterInputProps(props);
|
|
104
|
+
const hasPrepend = !!(props.label || slots.label || slots.prepend);
|
|
103
105
|
return _createVNode(VInput, _mergeProps({
|
|
104
106
|
"class": ['v-slider', 'v-range-slider', {
|
|
105
107
|
'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,
|
|
@@ -111,6 +113,14 @@ export const VRangeSlider = defineComponent({
|
|
|
111
113
|
}, inputProps, {
|
|
112
114
|
"focused": isFocused.value
|
|
113
115
|
}), { ...slots,
|
|
116
|
+
prepend: hasPrepend ? slotProps => {
|
|
117
|
+
var _slots$label, _slots$prepend;
|
|
118
|
+
|
|
119
|
+
return _createVNode(_Fragment, null, [((_slots$label = slots.label) == null ? void 0 : _slots$label.call(slots, slotProps)) ?? props.label ? _createVNode(VLabel, {
|
|
120
|
+
"class": "v-slider__label",
|
|
121
|
+
"text": props.label
|
|
122
|
+
}, null) : undefined, (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps)]);
|
|
123
|
+
} : undefined,
|
|
114
124
|
default: _ref2 => {
|
|
115
125
|
var _startThumbRef$value4, _stopThumbRef$value4;
|
|
116
126
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VRangeSlider.mjs","names":["getOffset","makeSliderProps","useSlider","filterInputProps","makeVInputProps","VInput","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","useProxiedModel","computed","ref","defineComponent","useRender","VRangeSlider","name","props","strict","Boolean","modelValue","type","Array","default","emits","value","setup","slots","startThumbRef","stopThumbRef","inputRef","getActiveThumb","e","startOffset","$el","direction","stopOffset","a","Math","abs","b","activeThumbRef","hasLabels","max","min","mousePressed","onSliderMousedown","onSliderTouchstart","position","roundValue","trackContainerRef","handleSliderMouseUp","newValue","model","handleMouseMove","start","stop","focus","undefined","arr","length","map","isFocused","blur","trackStart","trackStop","inputProps","_","disabled","id","readonly","v","relatedTarget"],"sources":["../../../src/components/VRangeSlider/VRangeSlider.tsx"],"sourcesContent":["// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { getOffset, makeSliderProps, useSlider } from '@/components/VSlider/slider'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VSliderThumb } from '../VSlider/VSliderThumb'\nimport { VSliderTrack } from '../VSlider/VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n roundValue,\n trackContainerRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]>\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n useRender(() => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n 'v-range-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 ref={ inputRef }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\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 VRangeSlider = InstanceType<typeof VRangeSlider>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VRangeSlider.mjs","names":["filterInputProps","makeVInputProps","VInput","getOffset","makeSliderProps","useSlider","VLabel","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","useProxiedModel","computed","ref","defineComponent","useRender","VRangeSlider","name","props","strict","Boolean","modelValue","type","Array","default","emits","value","setup","slots","startThumbRef","stopThumbRef","inputRef","getActiveThumb","e","startOffset","$el","direction","stopOffset","a","Math","abs","b","activeThumbRef","hasLabels","max","min","mousePressed","onSliderMousedown","onSliderTouchstart","position","roundValue","trackContainerRef","handleSliderMouseUp","newValue","model","handleMouseMove","start","stop","focus","undefined","arr","length","map","isFocused","blur","trackStart","trackStop","inputProps","_","hasPrepend","label","prepend","disabled","slotProps","id","readonly","v","relatedTarget"],"sources":["../../../src/components/VRangeSlider/VRangeSlider.tsx"],"sourcesContent":["// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { getOffset, makeSliderProps, useSlider } from '@/components/VSlider/slider'\nimport { VLabel } from '@/components/VLabel'\nimport { VSliderThumb } from '@/components/VSlider/VSliderThumb'\nimport { VSliderTrack } from '@/components/VSlider/VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n activeThumbRef,\n hasLabels,\n max,\n min,\n mousePressed,\n onSliderMousedown,\n onSliderTouchstart,\n position,\n roundValue,\n trackContainerRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]> & { readonly externalValue: number[] }\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\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 'v-range-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 ref={ inputRef }\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={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\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 VRangeSlider = InstanceType<typeof VRangeSlider>\n"],"mappings":"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"}
|