vuetify 3.2.3 → 3.2.5
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/dist/json/attributes.json +9 -9
- package/dist/json/web-types.json +11 -11
- package/dist/vuetify-labs.css +505 -502
- package/dist/vuetify-labs.d.ts +4918 -437
- package/dist/vuetify-labs.esm.js +142 -124
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +142 -124
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +10 -7
- package/dist/vuetify.d.ts +3796 -248
- package/dist/vuetify.esm.js +131 -115
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +131 -115
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +469 -469
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.mjs +1 -2
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +52 -0
- package/lib/components/VApp/index.d.ts +16 -0
- package/lib/components/VAppBar/VAppBar.mjs +2 -2
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -2
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +84 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -5
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.ts +76 -12
- package/lib/components/VAvatar/index.d.ts +16 -0
- package/lib/components/VBadge/index.d.ts +20 -0
- package/lib/components/VBanner/index.d.ts +60 -0
- package/lib/components/VBottomNavigation/index.d.ts +16 -0
- package/lib/components/VBreadcrumbs/index.d.ts +39 -3
- package/lib/components/VBtn/index.d.ts +28 -0
- package/lib/components/VBtnGroup/index.d.ts +16 -0
- package/lib/components/VBtnToggle/index.d.ts +16 -0
- package/lib/components/VCard/index.d.ts +144 -0
- package/lib/components/VCarousel/index.d.ts +128 -0
- package/lib/components/VCheckbox/index.d.ts +84 -0
- package/lib/components/VChip/VChip.css +4 -3
- package/lib/components/VChip/VChip.sass +3 -3
- package/lib/components/VChip/index.d.ts +28 -0
- package/lib/components/VChipGroup/index.d.ts +16 -0
- package/lib/components/VCode/index.d.ts +16 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -5
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +5 -5
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +76 -12
- package/lib/components/VCounter/index.d.ts +16 -0
- package/lib/components/VDefaultsProvider/index.d.ts +16 -0
- package/lib/components/VDialog/index.d.ts +133 -3
- package/lib/components/VDivider/index.d.ts +16 -0
- package/lib/components/VExpansionPanel/index.d.ts +76 -0
- package/lib/components/VField/index.d.ts +23 -3
- package/lib/components/VFileInput/index.d.ts +118 -3
- package/lib/components/VFooter/VFooter.mjs +2 -2
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/index.d.ts +16 -0
- package/lib/components/VForm/index.d.ts +19 -3
- package/lib/components/VGrid/index.d.ts +64 -0
- package/lib/components/VHover/index.d.ts +28 -0
- package/lib/components/VIcon/index.d.ts +32 -0
- package/lib/components/VImg/VImg.mjs +6 -6
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/index.d.ts +40 -12
- package/lib/components/VInput/index.d.ts +28 -0
- package/lib/components/VItemGroup/index.d.ts +32 -0
- package/lib/components/VKbd/index.d.ts +16 -0
- package/lib/components/VLabel/index.d.ts +16 -0
- package/lib/components/VLayout/index.d.ts +32 -0
- package/lib/components/VLazy/index.d.ts +16 -0
- package/lib/components/VList/VList.mjs +2 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +176 -12
- package/lib/components/VList/list.mjs +4 -4
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.d.ts +16 -0
- package/lib/components/VMain/index.d.ts +16 -0
- package/lib/components/VMenu/VMenu.mjs +3 -3
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +136 -6
- package/lib/components/VMessages/index.d.ts +16 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +2 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +2 -0
- package/lib/components/VNavigationDrawer/index.d.ts +31 -3
- package/lib/components/VNavigationDrawer/sticky.mjs +5 -4
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs +4 -4
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.ts +40 -0
- package/lib/components/VOverlay/locationStrategies.mjs +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +2 -2
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +32 -0
- package/lib/components/VParallax/index.d.ts +28 -0
- package/lib/components/VProgressCircular/index.d.ts +16 -0
- package/lib/components/VProgressLinear/index.d.ts +28 -0
- package/lib/components/VRadio/index.d.ts +36 -0
- package/lib/components/VRadioGroup/index.d.ts +48 -0
- package/lib/components/VRangeSlider/index.d.ts +36 -0
- package/lib/components/VRating/VRating.mjs +6 -3
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.ts +20 -0
- package/lib/components/VResponsive/index.d.ts +20 -0
- package/lib/components/VSelect/VSelect.mjs +2 -2
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +76 -12
- package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/index.d.ts +10 -6
- package/lib/components/VSelectionControlGroup/index.d.ts +16 -0
- package/lib/components/VSheet/index.d.ts +16 -0
- package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +63 -3
- package/lib/components/VSlider/index.d.ts +36 -0
- package/lib/components/VSlider/slider.mjs +3 -3
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.ts +129 -3
- package/lib/components/VSwitch/VSwitch.css +3 -3
- package/lib/components/VSwitch/VSwitch.sass +4 -3
- package/lib/components/VSwitch/index.d.ts +52 -0
- package/lib/components/VSystemBar/VSystemBar.mjs +2 -2
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/index.d.ts +16 -0
- package/lib/components/VTable/index.d.ts +28 -0
- package/lib/components/VTabs/VTab.mjs +4 -5
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +32 -0
- package/lib/components/VTextField/index.d.ts +121 -6
- package/lib/components/VTextarea/VTextarea.mjs +6 -3
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +110 -3
- package/lib/components/VThemeProvider/index.d.ts +16 -0
- package/lib/components/VTimeline/VTimelineItem.mjs +2 -2
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/index.d.ts +40 -0
- package/lib/components/VToolbar/VToolbar.mjs +2 -2
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +72 -0
- package/lib/components/VTooltip/index.d.ts +133 -3
- package/lib/components/VValidation/index.d.ts +16 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -3
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.ts +7 -3
- package/lib/components/VWindow/VWindow.mjs +3 -3
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +3 -3
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.ts +76 -0
- package/lib/components/index.d.ts +3786 -245
- package/lib/components/transitions/index.d.ts +256 -0
- package/lib/composables/display.mjs +3 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs +4 -4
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/hydration.mjs +6 -6
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs +2 -2
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/layout.mjs +3 -3
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs +2 -2
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +5 -4
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/scroll.mjs +6 -6
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +2 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +5 -4
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/transition.mjs +5 -2
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +3 -3
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +9 -2
- package/lib/labs/VDataTable/VDataTable.mjs +2 -1
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -6
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
- package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +894 -2
- package/lib/labs/VInfiniteScroll/index.d.ts +32 -0
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +25 -9
- package/lib/labs/components.d.ts +951 -11
- package/lib/locale/adapters/vuetify.mjs +8 -5
- package/lib/locale/adapters/vuetify.mjs.map +1 -1
- package/lib/styles/settings/_variables.scss +3 -3
- package/lib/util/defineComponent.mjs.map +1 -1
- package/package.json +2 -2
|
@@ -35,6 +35,13 @@ declare const VParallax: {
|
|
|
35
35
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
36
36
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
37
37
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
38
|
+
} & {
|
|
39
|
+
$slots?: {
|
|
40
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
41
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
42
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
43
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
44
|
+
} | undefined;
|
|
38
45
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "scale" | "style">;
|
|
39
46
|
$attrs: {
|
|
40
47
|
[x: string]: unknown;
|
|
@@ -72,6 +79,13 @@ declare const VParallax: {
|
|
|
72
79
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
73
80
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
74
81
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
82
|
+
} & {
|
|
83
|
+
$slots?: {
|
|
84
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
85
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
86
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
87
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
88
|
+
} | undefined;
|
|
75
89
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
76
90
|
scale: string | number;
|
|
77
91
|
style: vue.StyleValue;
|
|
@@ -118,6 +132,13 @@ declare const VParallax: {
|
|
|
118
132
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
119
133
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
120
134
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
135
|
+
} & {
|
|
136
|
+
$slots?: {
|
|
137
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
138
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
139
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
140
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
141
|
+
} | undefined;
|
|
121
142
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
122
143
|
__isFragment?: undefined;
|
|
123
144
|
__isTeleport?: undefined;
|
|
@@ -145,6 +166,13 @@ declare const VParallax: {
|
|
|
145
166
|
"v-slot:placeholder"?: false | (() => vue.VNodeChild) | undefined;
|
|
146
167
|
"v-slot:error"?: false | (() => vue.VNodeChild) | undefined;
|
|
147
168
|
"v-slot:sources"?: false | (() => vue.VNodeChild) | undefined;
|
|
169
|
+
} & {
|
|
170
|
+
$slots?: {
|
|
171
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
172
|
+
placeholder?: (() => vue.VNodeChild) | undefined;
|
|
173
|
+
error?: (() => vue.VNodeChild) | undefined;
|
|
174
|
+
sources?: (() => vue.VNodeChild) | undefined;
|
|
175
|
+
} | undefined;
|
|
148
176
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
149
177
|
scale: string | number;
|
|
150
178
|
style: vue.StyleValue;
|
|
@@ -38,6 +38,10 @@ declare const VProgressCircular: {
|
|
|
38
38
|
} | undefined;
|
|
39
39
|
} & {
|
|
40
40
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
41
|
+
} & {
|
|
42
|
+
$slots?: {
|
|
43
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
44
|
+
} | undefined;
|
|
41
45
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "width" | "rotate" | "style" | "size" | "tag" | "modelValue">;
|
|
42
46
|
$attrs: {
|
|
43
47
|
[x: string]: unknown;
|
|
@@ -74,6 +78,10 @@ declare const VProgressCircular: {
|
|
|
74
78
|
} | undefined;
|
|
75
79
|
} & {
|
|
76
80
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
81
|
+
} & {
|
|
82
|
+
$slots?: {
|
|
83
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
84
|
+
} | undefined;
|
|
77
85
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
78
86
|
width: string | number;
|
|
79
87
|
rotate: string | number;
|
|
@@ -123,6 +131,10 @@ declare const VProgressCircular: {
|
|
|
123
131
|
} | undefined;
|
|
124
132
|
} & {
|
|
125
133
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
134
|
+
} & {
|
|
135
|
+
$slots?: {
|
|
136
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
137
|
+
} | undefined;
|
|
126
138
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
127
139
|
__isFragment?: undefined;
|
|
128
140
|
__isTeleport?: undefined;
|
|
@@ -149,6 +161,10 @@ declare const VProgressCircular: {
|
|
|
149
161
|
} | undefined;
|
|
150
162
|
} & {
|
|
151
163
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
164
|
+
} & {
|
|
165
|
+
$slots?: {
|
|
166
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
167
|
+
} | undefined;
|
|
152
168
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
153
169
|
width: string | number;
|
|
154
170
|
rotate: string | number;
|
|
@@ -76,6 +76,13 @@ declare const VProgressLinear: {
|
|
|
76
76
|
value: number;
|
|
77
77
|
buffer: number;
|
|
78
78
|
}) => vue.VNodeChild) | undefined;
|
|
79
|
+
} & {
|
|
80
|
+
$slots?: {
|
|
81
|
+
default?: ((args_0: {
|
|
82
|
+
value: number;
|
|
83
|
+
buffer: number;
|
|
84
|
+
}) => vue.VNodeChild) | undefined;
|
|
85
|
+
} | undefined;
|
|
79
86
|
} & {
|
|
80
87
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
81
88
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "reverse" | "max" | "absolute" | "location" | "height" | "active" | "style" | "tag" | "indeterminate" | "rounded" | "modelValue" | "bufferValue" | "clickable" | "stream" | "striped" | "roundedBar">;
|
|
@@ -136,6 +143,13 @@ declare const VProgressLinear: {
|
|
|
136
143
|
value: number;
|
|
137
144
|
buffer: number;
|
|
138
145
|
}) => vue.VNodeChild) | undefined;
|
|
146
|
+
} & {
|
|
147
|
+
$slots?: {
|
|
148
|
+
default?: ((args_0: {
|
|
149
|
+
value: number;
|
|
150
|
+
buffer: number;
|
|
151
|
+
}) => vue.VNodeChild) | undefined;
|
|
152
|
+
} | undefined;
|
|
139
153
|
} & {
|
|
140
154
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
141
155
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -221,6 +235,13 @@ declare const VProgressLinear: {
|
|
|
221
235
|
value: number;
|
|
222
236
|
buffer: number;
|
|
223
237
|
}) => vue.VNodeChild) | undefined;
|
|
238
|
+
} & {
|
|
239
|
+
$slots?: {
|
|
240
|
+
default?: ((args_0: {
|
|
241
|
+
value: number;
|
|
242
|
+
buffer: number;
|
|
243
|
+
}) => vue.VNodeChild) | undefined;
|
|
244
|
+
} | undefined;
|
|
224
245
|
} & {
|
|
225
246
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
226
247
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
@@ -271,6 +292,13 @@ declare const VProgressLinear: {
|
|
|
271
292
|
value: number;
|
|
272
293
|
buffer: number;
|
|
273
294
|
}) => vue.VNodeChild) | undefined;
|
|
295
|
+
} & {
|
|
296
|
+
$slots?: {
|
|
297
|
+
default?: ((args_0: {
|
|
298
|
+
value: number;
|
|
299
|
+
buffer: number;
|
|
300
|
+
}) => vue.VNodeChild) | undefined;
|
|
301
|
+
} | undefined;
|
|
274
302
|
} & {
|
|
275
303
|
"onUpdate:modelValue"?: ((value: number) => any) | undefined;
|
|
276
304
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -88,6 +88,15 @@ declare const VRadio: {
|
|
|
88
88
|
props: Record<string, unknown>;
|
|
89
89
|
}) => vue.VNodeChild) | undefined;
|
|
90
90
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
91
|
+
} & {
|
|
92
|
+
$slots?: {
|
|
93
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
94
|
+
label?: ((args_0: {
|
|
95
|
+
label: string | undefined;
|
|
96
|
+
props: Record<string, unknown>;
|
|
97
|
+
}) => vue.VNodeChild) | undefined;
|
|
98
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
99
|
+
} | undefined;
|
|
91
100
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "inline" | "error" | "style" | "disabled" | "multiple" | "readonly" | "density" | "ripple" | "falseIcon" | "trueIcon" | "valueComparator">;
|
|
92
101
|
$attrs: {
|
|
93
102
|
[x: string]: unknown;
|
|
@@ -151,6 +160,15 @@ declare const VRadio: {
|
|
|
151
160
|
props: Record<string, unknown>;
|
|
152
161
|
}) => vue.VNodeChild) | undefined;
|
|
153
162
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
163
|
+
} & {
|
|
164
|
+
$slots?: {
|
|
165
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
166
|
+
label?: ((args_0: {
|
|
167
|
+
label: string | undefined;
|
|
168
|
+
props: Record<string, unknown>;
|
|
169
|
+
}) => vue.VNodeChild) | undefined;
|
|
170
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
171
|
+
} | undefined;
|
|
154
172
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
155
173
|
inline: boolean;
|
|
156
174
|
error: boolean;
|
|
@@ -232,6 +250,15 @@ declare const VRadio: {
|
|
|
232
250
|
props: Record<string, unknown>;
|
|
233
251
|
}) => vue.VNodeChild) | undefined;
|
|
234
252
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
253
|
+
} & {
|
|
254
|
+
$slots?: {
|
|
255
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
256
|
+
label?: ((args_0: {
|
|
257
|
+
label: string | undefined;
|
|
258
|
+
props: Record<string, unknown>;
|
|
259
|
+
}) => vue.VNodeChild) | undefined;
|
|
260
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
261
|
+
} | undefined;
|
|
235
262
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
236
263
|
__isFragment?: undefined;
|
|
237
264
|
__isTeleport?: undefined;
|
|
@@ -285,6 +312,15 @@ declare const VRadio: {
|
|
|
285
312
|
props: Record<string, unknown>;
|
|
286
313
|
}) => vue.VNodeChild) | undefined;
|
|
287
314
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
315
|
+
} & {
|
|
316
|
+
$slots?: {
|
|
317
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
318
|
+
label?: ((args_0: {
|
|
319
|
+
label: string | undefined;
|
|
320
|
+
props: Record<string, unknown>;
|
|
321
|
+
}) => vue.VNodeChild) | undefined;
|
|
322
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
323
|
+
} | undefined;
|
|
288
324
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
289
325
|
inline: boolean;
|
|
290
326
|
error: boolean;
|
|
@@ -137,6 +137,18 @@ declare const VRadioGroup: {
|
|
|
137
137
|
props: Record<string, unknown>;
|
|
138
138
|
}) => vue.VNodeChild) | undefined;
|
|
139
139
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
140
|
+
} & {
|
|
141
|
+
$slots?: {
|
|
142
|
+
default?: ((...args: never) => vue.VNodeChild) | undefined;
|
|
143
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
144
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
145
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
146
|
+
label?: ((args_0: {
|
|
147
|
+
label: string | undefined;
|
|
148
|
+
props: Record<string, unknown>;
|
|
149
|
+
}) => vue.VNodeChild) | undefined;
|
|
150
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
151
|
+
} | undefined;
|
|
140
152
|
} & {
|
|
141
153
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
142
154
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "type" | "inline" | "error" | "height" | "direction" | "style" | "disabled" | "readonly" | "messages" | "density" | "ripple" | "focused" | "errorMessages" | "maxErrors" | "rules" | "persistentHint" | "falseIcon" | "trueIcon" | "valueComparator">;
|
|
@@ -224,6 +236,18 @@ declare const VRadioGroup: {
|
|
|
224
236
|
props: Record<string, unknown>;
|
|
225
237
|
}) => vue.VNodeChild) | undefined;
|
|
226
238
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
239
|
+
} & {
|
|
240
|
+
$slots?: {
|
|
241
|
+
default?: ((...args: never) => vue.VNodeChild) | undefined;
|
|
242
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
243
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
244
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
245
|
+
label?: ((args_0: {
|
|
246
|
+
label: string | undefined;
|
|
247
|
+
props: Record<string, unknown>;
|
|
248
|
+
}) => vue.VNodeChild) | undefined;
|
|
249
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
250
|
+
} | undefined;
|
|
227
251
|
} & {
|
|
228
252
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
229
253
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -339,6 +363,18 @@ declare const VRadioGroup: {
|
|
|
339
363
|
props: Record<string, unknown>;
|
|
340
364
|
}) => vue.VNodeChild) | undefined;
|
|
341
365
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
366
|
+
} & {
|
|
367
|
+
$slots?: {
|
|
368
|
+
default?: ((...args: never) => vue.VNodeChild) | undefined;
|
|
369
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
370
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
371
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
372
|
+
label?: ((args_0: {
|
|
373
|
+
label: string | undefined;
|
|
374
|
+
props: Record<string, unknown>;
|
|
375
|
+
}) => vue.VNodeChild) | undefined;
|
|
376
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
377
|
+
} | undefined;
|
|
342
378
|
} & {
|
|
343
379
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
344
380
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
@@ -416,6 +452,18 @@ declare const VRadioGroup: {
|
|
|
416
452
|
props: Record<string, unknown>;
|
|
417
453
|
}) => vue.VNodeChild) | undefined;
|
|
418
454
|
"v-slot:input"?: false | ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
455
|
+
} & {
|
|
456
|
+
$slots?: {
|
|
457
|
+
default?: ((...args: never) => vue.VNodeChild) | undefined;
|
|
458
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
459
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
460
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
461
|
+
label?: ((args_0: {
|
|
462
|
+
label: string | undefined;
|
|
463
|
+
props: Record<string, unknown>;
|
|
464
|
+
}) => vue.VNodeChild) | undefined;
|
|
465
|
+
input?: ((args_0: SelectionControlSlot) => vue.VNodeChild) | undefined;
|
|
466
|
+
} | undefined;
|
|
419
467
|
} & {
|
|
420
468
|
"onUpdate:modelValue"?: ((val: any) => any) | undefined;
|
|
421
469
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -129,6 +129,15 @@ declare const VRangeSlider: {
|
|
|
129
129
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
130
130
|
"v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
131
131
|
"v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
132
|
+
} & {
|
|
133
|
+
$slots?: {
|
|
134
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
135
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
136
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
137
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
138
|
+
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
139
|
+
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
140
|
+
} | undefined;
|
|
132
141
|
} & {
|
|
133
142
|
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
|
|
134
143
|
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
@@ -217,6 +226,15 @@ declare const VRangeSlider: {
|
|
|
217
226
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
218
227
|
"v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
219
228
|
"v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
229
|
+
} & {
|
|
230
|
+
$slots?: {
|
|
231
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
232
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
233
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
234
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
235
|
+
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
236
|
+
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
237
|
+
} | undefined;
|
|
220
238
|
} & {
|
|
221
239
|
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
|
|
222
240
|
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
@@ -342,6 +360,15 @@ declare const VRangeSlider: {
|
|
|
342
360
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
343
361
|
"v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
344
362
|
"v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
363
|
+
} & {
|
|
364
|
+
$slots?: {
|
|
365
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
366
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
367
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
368
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
369
|
+
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
370
|
+
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
371
|
+
} | undefined;
|
|
345
372
|
} & {
|
|
346
373
|
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
|
|
347
374
|
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
@@ -420,6 +447,15 @@ declare const VRangeSlider: {
|
|
|
420
447
|
"v-slot:details"?: false | ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
421
448
|
"v-slot:tick-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
422
449
|
"v-slot:thumb-label"?: false | (() => vue.VNodeChild) | undefined;
|
|
450
|
+
} & {
|
|
451
|
+
$slots?: {
|
|
452
|
+
default?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
453
|
+
prepend?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
454
|
+
append?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
455
|
+
details?: ((args_0: VInputSlot) => vue.VNodeChild) | undefined;
|
|
456
|
+
'tick-label'?: (() => vue.VNodeChild) | undefined;
|
|
457
|
+
'thumb-label'?: (() => vue.VNodeChild) | undefined;
|
|
458
|
+
} | undefined;
|
|
423
459
|
} & {
|
|
424
460
|
"onUpdate:modelValue"?: ((value: [number, number]) => any) | undefined;
|
|
425
461
|
"onUpdate:focused"?: ((value: boolean) => any) | undefined;
|
|
@@ -12,8 +12,11 @@ import { makeTagProps } from "../../composables/tag.mjs";
|
|
|
12
12
|
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
13
13
|
import { useLocale } from "../../composables/locale.mjs";
|
|
14
14
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
15
|
-
import {
|
|
16
|
-
import {
|
|
15
|
+
import { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from "../../util/index.mjs";
|
|
16
|
+
import { computed, shallowRef } from 'vue';
|
|
17
|
+
|
|
18
|
+
// Types
|
|
19
|
+
|
|
17
20
|
export const makeVRatingProps = propsFactory({
|
|
18
21
|
name: String,
|
|
19
22
|
itemAriaLabel: {
|
|
@@ -76,7 +79,7 @@ export const VRating = genericComponent()({
|
|
|
76
79
|
const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));
|
|
77
80
|
const range = computed(() => createRange(Number(props.length), 1));
|
|
78
81
|
const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
|
|
79
|
-
const hoverIndex =
|
|
82
|
+
const hoverIndex = shallowRef(-1);
|
|
80
83
|
const itemState = computed(() => increments.value.map(value => {
|
|
81
84
|
const isHovering = props.hover && hoverIndex.value > -1;
|
|
82
85
|
const isFilled = normalizedValue.value >= value;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VRating.mjs","names":["VBtn","IconValue","makeComponentProps","makeDensityProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","computed","ref","clamp","createRange","genericComponent","getUid","propsFactory","useRender","makeVRatingProps","name","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","VRating","props","emits","value","setup","_ref","slots","t","themeClasses","rating","normalizedValue","parseFloat","range","increments","flatMap","hoverIndex","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onClick","undefined","VRatingItem","_ref2","index","showStar","id","replace","btnProps","density","size","variant","_createVNode","_Fragment","item","createLabel","labelProps","label","_createTextVNode","hasLabels","tag","class","style","i"],"sources":["../../../src/components/VRating/VRating.tsx"],"sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record<string, unknown>\n rating: number\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\ntype VRatingSlots = {\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n}\n\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-rating')\n\nexport const VRating = genericComponent<VRatingSlots>()({\n name: 'VRating',\n\n props: makeVRatingProps(),\n\n emits: {\n 'update:modelValue': (value: number | string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length))\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = normalizedValue.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick,\n }\n }))\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n onClick={ onClick }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ normalizedValue.value === value }\n tabindex={ -1 }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span> </span>\n }\n\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div class=\"v-rating__item\">\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n )}\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n ))}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VRating.mjs","names":["VBtn","IconValue","makeComponentProps","makeDensityProps","makeSizeProps","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","clamp","createRange","genericComponent","getUid","propsFactory","useRender","computed","shallowRef","makeVRatingProps","name","String","itemAriaLabel","type","default","activeColor","color","clearable","Boolean","disabled","emptyIcon","fullIcon","halfIncrements","hover","length","Number","readonly","modelValue","itemLabels","Array","itemLabelPosition","validator","v","includes","ripple","VRating","props","emits","value","setup","_ref","slots","t","themeClasses","rating","normalizedValue","parseFloat","range","increments","flatMap","hoverIndex","itemState","map","isHovering","isFilled","isHovered","isFullIcon","icon","eventState","onMouseenter","onMouseleave","onClick","undefined","VRatingItem","_ref2","index","showStar","id","replace","btnProps","density","size","variant","_createVNode","_Fragment","item","createLabel","labelProps","label","_createTextVNode","hasLabels","tag","class","style","i"],"sources":["../../../src/components/VRating/VRating.tsx"],"sourcesContent":["// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { clamp, createRange, genericComponent, getUid, propsFactory, useRender } from '@/util'\nimport { computed, shallowRef } from 'vue'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: IconValue\n color?: string\n props: Record<string, unknown>\n rating: number\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\ntype VRatingSlots = {\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n}\n\nexport const makeVRatingProps = propsFactory({\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n}, 'v-rating')\n\nexport const VRating = genericComponent<VRatingSlots>()({\n name: 'VRating',\n\n props: makeVRatingProps(),\n\n emits: {\n 'update:modelValue': (value: number | string) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length))\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = shallowRef(-1)\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = normalizedValue.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = normalizedValue.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onClick,\n }\n }))\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n onClick={ onClick }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n rating: normalizedValue.value,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ normalizedValue.value === value }\n tabindex={ -1 }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span> </span>\n }\n\n useRender(() => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div class=\"v-rating__item\">\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n )}\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n ))}\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n"],"mappings":"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"}
|
|
@@ -82,6 +82,11 @@ declare const VRating: {
|
|
|
82
82
|
} & {
|
|
83
83
|
"v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
84
84
|
"v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
85
|
+
} & {
|
|
86
|
+
$slots?: {
|
|
87
|
+
item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
88
|
+
'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
89
|
+
} | undefined;
|
|
85
90
|
} & {
|
|
86
91
|
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
87
92
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "length" | "style" | "disabled" | "size" | "readonly" | "tag" | "density" | "modelValue" | "ripple" | "clearable" | "hover" | "itemAriaLabel" | "emptyIcon" | "fullIcon" | "halfIncrements" | "itemLabelPosition">;
|
|
@@ -134,6 +139,11 @@ declare const VRating: {
|
|
|
134
139
|
} & {
|
|
135
140
|
"v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
136
141
|
"v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
142
|
+
} & {
|
|
143
|
+
$slots?: {
|
|
144
|
+
item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
145
|
+
'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
146
|
+
} | undefined;
|
|
137
147
|
} & {
|
|
138
148
|
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
139
149
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -211,6 +221,11 @@ declare const VRating: {
|
|
|
211
221
|
} & {
|
|
212
222
|
"v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
213
223
|
"v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
224
|
+
} & {
|
|
225
|
+
$slots?: {
|
|
226
|
+
item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
227
|
+
'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
228
|
+
} | undefined;
|
|
214
229
|
} & {
|
|
215
230
|
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
216
231
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
@@ -253,6 +268,11 @@ declare const VRating: {
|
|
|
253
268
|
} & {
|
|
254
269
|
"v-slot:item"?: false | ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
255
270
|
"v-slot:item-label"?: false | ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
271
|
+
} & {
|
|
272
|
+
$slots?: {
|
|
273
|
+
item?: ((args_0: VRatingItemSlot) => vue.VNodeChild) | undefined;
|
|
274
|
+
'item-label'?: ((args_0: VRatingItemLabelSlot) => vue.VNodeChild) | undefined;
|
|
275
|
+
} | undefined;
|
|
256
276
|
} & {
|
|
257
277
|
"onUpdate:modelValue"?: ((value: string | number) => any) | undefined;
|
|
258
278
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
|
|
@@ -35,6 +35,11 @@ declare const VResponsive: {
|
|
|
35
35
|
} & {
|
|
36
36
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
37
37
|
"v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
|
|
38
|
+
} & {
|
|
39
|
+
$slots?: {
|
|
40
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
41
|
+
additional?: (() => vue.VNodeChild) | undefined;
|
|
42
|
+
} | undefined;
|
|
38
43
|
} & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "style">;
|
|
39
44
|
$attrs: {
|
|
40
45
|
[x: string]: unknown;
|
|
@@ -73,6 +78,11 @@ declare const VResponsive: {
|
|
|
73
78
|
} & {
|
|
74
79
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
75
80
|
"v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
|
|
81
|
+
} & {
|
|
82
|
+
$slots?: {
|
|
83
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
84
|
+
additional?: (() => vue.VNodeChild) | undefined;
|
|
85
|
+
} | undefined;
|
|
76
86
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
77
87
|
style: vue.StyleValue;
|
|
78
88
|
}, {}, string> & {
|
|
@@ -119,6 +129,11 @@ declare const VResponsive: {
|
|
|
119
129
|
} & {
|
|
120
130
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
121
131
|
"v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
|
|
132
|
+
} & {
|
|
133
|
+
$slots?: {
|
|
134
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
135
|
+
additional?: (() => vue.VNodeChild) | undefined;
|
|
136
|
+
} | undefined;
|
|
122
137
|
} & vue.ShallowUnwrapRef<{}> & {} & vue.ComponentCustomProperties & {};
|
|
123
138
|
__isFragment?: undefined;
|
|
124
139
|
__isTeleport?: undefined;
|
|
@@ -147,6 +162,11 @@ declare const VResponsive: {
|
|
|
147
162
|
} & {
|
|
148
163
|
"v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
|
|
149
164
|
"v-slot:additional"?: false | (() => vue.VNodeChild) | undefined;
|
|
165
|
+
} & {
|
|
166
|
+
$slots?: {
|
|
167
|
+
default?: (() => vue.VNodeChild) | undefined;
|
|
168
|
+
additional?: (() => vue.VNodeChild) | undefined;
|
|
169
|
+
} | undefined;
|
|
150
170
|
}, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
|
|
151
171
|
style: vue.StyleValue;
|
|
152
172
|
}, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
|
@@ -19,7 +19,7 @@ import { makeTransitionProps } from "../../composables/transition.mjs";
|
|
|
19
19
|
import { useForm } from "../../composables/form.mjs";
|
|
20
20
|
import { useLocale } from "../../composables/locale.mjs";
|
|
21
21
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utility
|
|
22
|
-
import { computed, mergeProps, ref } from 'vue';
|
|
22
|
+
import { computed, mergeProps, ref, shallowRef } from 'vue';
|
|
23
23
|
import { deepEqual, genericComponent, omit, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
|
|
24
24
|
export const makeSelectProps = propsFactory({
|
|
25
25
|
chips: Boolean,
|
|
@@ -101,7 +101,7 @@ export const VSelect = genericComponent()({
|
|
|
101
101
|
});
|
|
102
102
|
});
|
|
103
103
|
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
104
|
-
const isFocused =
|
|
104
|
+
const isFocused = shallowRef(false);
|
|
105
105
|
let keyboardLookupPrefix = '';
|
|
106
106
|
let keyboardLookupLastTime;
|
|
107
107
|
const displayItems = computed(() => {
|