@vuetify/nightly 3.6.14-master.2024-08-12 → 3.6.14-master.2024-08-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/dist/json/attributes.json +7 -7
- package/dist/json/importMap-labs.json +30 -30
- package/dist/json/importMap.json +138 -138
- package/dist/json/web-types.json +8 -8
- package/dist/vuetify-labs.css +2728 -2728
- package/dist/vuetify-labs.d.ts +33444 -40135
- package/dist/vuetify-labs.esm.js +16 -8
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +16 -8
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +556 -556
- package/dist/vuetify.d.ts +32672 -39038
- package/dist/vuetify.esm.js +16 -8
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +16 -8
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +22 -22
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.mts +50 -73
- package/lib/components/VApp/index.d.mts +9 -11
- package/lib/components/VAppBar/index.d.mts +92 -128
- package/lib/components/VAutocomplete/index.d.mts +4771 -3230
- package/lib/components/VAvatar/index.d.mts +23 -22
- package/lib/components/VBadge/index.d.mts +53 -59
- package/lib/components/VBanner/index.d.mts +44 -66
- package/lib/components/VBottomNavigation/index.d.mts +25 -32
- package/lib/components/VBottomSheet/index.d.mts +125 -135
- package/lib/components/VBreadcrumbs/index.d.mts +35 -78
- package/lib/components/VBtn/index.d.mts +49 -53
- package/lib/components/VBtnGroup/index.d.mts +14 -13
- package/lib/components/VBtnToggle/index.d.mts +21 -23
- package/lib/components/VCard/index.d.mts +104 -168
- package/lib/components/VCarousel/index.d.mts +59 -96
- package/lib/components/VCheckbox/index.d.mts +132 -155
- package/lib/components/VChip/index.d.mts +47 -59
- package/lib/components/VChipGroup/index.d.mts +39 -41
- package/lib/components/VCode/index.d.mts +9 -11
- package/lib/components/VColorPicker/index.d.mts +58 -133
- package/lib/components/VCombobox/index.d.mts +4785 -3244
- package/lib/components/VConfirmEdit/index.d.mts +11 -19
- package/lib/components/VCounter/index.d.mts +40 -42
- package/lib/components/VDataIterator/index.d.mts +171 -185
- package/lib/components/VDataTable/index.d.mts +480 -1204
- package/lib/components/VDatePicker/index.d.mts +120 -158
- package/lib/components/VDefaultsProvider/index.d.mts +5 -9
- package/lib/components/VDialog/index.d.mts +243 -277
- package/lib/components/VDivider/index.d.mts +9 -11
- package/lib/components/VEmptyState/index.d.mts +30 -52
- package/lib/components/VExpansionPanel/index.d.mts +60 -85
- package/lib/components/VFab/index.d.mts +81 -73
- package/lib/components/VField/index.d.mts +35 -62
- package/lib/components/VFileInput/VFileInput.mjs +1 -1
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.mts +172 -259
- package/lib/components/VFooter/index.d.mts +9 -11
- package/lib/components/VForm/index.d.mts +105 -77
- package/lib/components/VGrid/index.d.mts +41 -52
- package/lib/components/VHover/index.d.mts +5 -9
- package/lib/components/VIcon/index.d.mts +23 -29
- package/lib/components/VImg/index.d.mts +28 -42
- package/lib/components/VInfiniteScroll/index.d.mts +17 -37
- package/lib/components/VInput/index.d.mts +48 -50
- package/lib/components/VItemGroup/index.d.mts +21 -30
- package/lib/components/VKbd/index.d.mts +9 -11
- package/lib/components/VLabel/index.d.mts +9 -11
- package/lib/components/VLayout/index.d.mts +18 -24
- package/lib/components/VLazy/index.d.mts +42 -44
- package/lib/components/VList/index.d.mts +210 -329
- package/lib/components/VLocaleProvider/index.d.mts +9 -11
- package/lib/components/VMain/index.d.mts +9 -11
- package/lib/components/VMenu/index.d.mts +272 -306
- package/lib/components/VMessages/index.d.mts +49 -51
- package/lib/components/VNavigationDrawer/index.d.mts +27 -40
- package/lib/components/VOtpInput/index.d.mts +22 -28
- package/lib/components/VOverlay/VOverlay.mjs +4 -3
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/index.d.mts +53 -63
- package/lib/components/VPagination/index.d.mts +31 -46
- package/lib/components/VParallax/index.d.mts +15 -29
- package/lib/components/VProgressCircular/index.d.mts +9 -11
- package/lib/components/VProgressLinear/index.d.mts +22 -24
- package/lib/components/VRadio/index.d.mts +49 -52
- package/lib/components/VRadioGroup/index.d.mts +66 -66
- package/lib/components/VRangeSlider/index.d.mts +58 -69
- package/lib/components/VRating/index.d.mts +13 -19
- package/lib/components/VResponsive/index.d.mts +11 -17
- package/lib/components/VSelect/index.d.mts +4762 -3221
- package/lib/components/VSelectionControl/index.d.mts +38 -44
- package/lib/components/VSelectionControlGroup/index.d.mts +34 -34
- package/lib/components/VSheet/index.d.mts +15 -17
- package/lib/components/VSkeletonLoader/index.d.mts +41 -11
- package/lib/components/VSlideGroup/index.d.mts +112 -129
- package/lib/components/VSlider/index.d.mts +58 -69
- package/lib/components/VSnackbar/VSnackbar.mjs +5 -1
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +231 -270
- package/lib/components/VSparkline/index.d.mts +11 -19
- package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VSpeedDial/index.d.mts +179 -189
- package/lib/components/VStepper/index.d.mts +105 -180
- package/lib/components/VSwitch/index.d.mts +78 -98
- package/lib/components/VSystemBar/index.d.mts +13 -15
- package/lib/components/VTable/index.d.mts +15 -29
- package/lib/components/VTabs/index.d.mts +213 -297
- package/lib/components/VTextField/index.d.mts +253 -408
- package/lib/components/VTextarea/index.d.mts +157 -236
- package/lib/components/VThemeProvider/index.d.mts +9 -11
- package/lib/components/VTimeline/index.d.mts +29 -43
- package/lib/components/VToolbar/index.d.mts +49 -80
- package/lib/components/VTooltip/index.d.mts +282 -316
- package/lib/components/VValidation/index.d.mts +16 -23
- package/lib/components/VVirtualScroll/index.d.mts +14 -23
- package/lib/components/VWindow/index.d.mts +29 -50
- package/lib/components/index.d.mts +31169 -37524
- package/lib/components/transitions/index.d.mts +84 -148
- package/lib/composables/location.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs +3 -0
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +58 -58
- package/lib/labs/VCalendar/index.d.mts +146 -166
- package/lib/labs/VDateInput/index.d.mts +83 -62
- package/lib/labs/VNumberInput/index.d.mts +61 -88
- package/lib/labs/VPicker/index.d.mts +28 -46
- package/lib/labs/VPullToRefresh/index.d.mts +7 -15
- package/lib/labs/VSnackbarQueue/index.d.mts +311 -369
- package/lib/labs/VStepperVertical/index.d.mts +109 -184
- package/lib/labs/VTimePicker/index.d.mts +35 -53
- package/lib/labs/VTreeview/index.d.mts +200 -277
- package/lib/labs/components.d.mts +905 -1231
- package/lib/util/propsFactory.mjs.map +1 -1
- package/package.json +3 -3
@@ -1,10 +1,15 @@
|
|
1
1
|
import * as vue from 'vue';
|
2
|
-
import { ComponentPropsOptions, ExtractPropTypes,
|
2
|
+
import { ComponentPropsOptions, ExtractPropTypes, PropType, JSXComponent, ComputedRef, Ref } from 'vue';
|
3
3
|
|
4
4
|
interface FilterPropsOptions<PropsOptions extends Readonly<ComponentPropsOptions>, Props = ExtractPropTypes<PropsOptions>> {
|
5
5
|
filterProps<T extends Partial<Props>, U extends Exclude<keyof Props, Exclude<keyof Props, keyof T>>>(props: T): Partial<Pick<T, U>>;
|
6
6
|
}
|
7
7
|
|
8
|
+
type ClassValue = any;
|
9
|
+
|
10
|
+
type EventProp<T extends any[] = any[], F = (...args: T) => void> = F;
|
11
|
+
declare const EventProp: <T extends any[] = any[]>() => PropType<EventProp<T>>;
|
12
|
+
|
8
13
|
type Tick = {
|
9
14
|
value: number;
|
10
15
|
position: number;
|
@@ -22,6 +27,22 @@ type Density = null | 'default' | 'comfortable' | 'compact';
|
|
22
27
|
|
23
28
|
type ValidationResult = string | boolean;
|
24
29
|
type ValidationRule = ValidationResult | PromiseLike<ValidationResult> | ((value: any) => ValidationResult) | ((value: any) => PromiseLike<ValidationResult>);
|
30
|
+
type ValidateOnValue = 'blur' | 'input' | 'submit';
|
31
|
+
interface ValidationProps {
|
32
|
+
disabled: boolean | null;
|
33
|
+
error: boolean;
|
34
|
+
errorMessages: string | readonly string[] | null;
|
35
|
+
focused: boolean;
|
36
|
+
maxErrors: string | number;
|
37
|
+
name: string | undefined;
|
38
|
+
label: string | undefined;
|
39
|
+
readonly: boolean | null;
|
40
|
+
rules: readonly ValidationRule[];
|
41
|
+
modelValue: any;
|
42
|
+
'onUpdate:modelValue': EventProp | undefined;
|
43
|
+
validateOn?: ValidateOnValue | `${ValidateOnValue} lazy` | `lazy ${ValidateOnValue}` | 'lazy';
|
44
|
+
validationValue: any;
|
45
|
+
}
|
25
46
|
|
26
47
|
interface VInputSlot {
|
27
48
|
id: ComputedRef<string>;
|
@@ -48,7 +69,7 @@ declare const VSlider: {
|
|
48
69
|
disabled: boolean | null;
|
49
70
|
readonly: boolean | null;
|
50
71
|
step: string | number;
|
51
|
-
elevation:
|
72
|
+
elevation: string | number;
|
52
73
|
messages: string | readonly string[];
|
53
74
|
focused: boolean;
|
54
75
|
errorMessages: string | readonly string[] | null;
|
@@ -66,9 +87,9 @@ declare const VSlider: {
|
|
66
87
|
trackSize: string | number;
|
67
88
|
thumbSize: string | number;
|
68
89
|
} & {
|
90
|
+
name?: string | undefined;
|
69
91
|
id?: string | undefined;
|
70
92
|
width?: string | number | undefined;
|
71
|
-
name?: string | undefined;
|
72
93
|
color?: string | undefined;
|
73
94
|
maxWidth?: string | number | undefined;
|
74
95
|
minWidth?: string | number | undefined;
|
@@ -155,7 +176,7 @@ declare const VSlider: {
|
|
155
176
|
disabled: boolean | null;
|
156
177
|
readonly: boolean | null;
|
157
178
|
step: string | number;
|
158
|
-
elevation:
|
179
|
+
elevation: string | number;
|
159
180
|
messages: string | readonly string[];
|
160
181
|
focused: boolean;
|
161
182
|
errorMessages: string | readonly string[] | null;
|
@@ -173,9 +194,9 @@ declare const VSlider: {
|
|
173
194
|
trackSize: string | number;
|
174
195
|
thumbSize: string | number;
|
175
196
|
} & {
|
197
|
+
name?: string | undefined;
|
176
198
|
id?: string | undefined;
|
177
199
|
width?: string | number | undefined;
|
178
|
-
name?: string | undefined;
|
179
200
|
color?: string | undefined;
|
180
201
|
maxWidth?: string | number | undefined;
|
181
202
|
minWidth?: string | number | undefined;
|
@@ -257,7 +278,7 @@ declare const VSlider: {
|
|
257
278
|
disabled: boolean | null;
|
258
279
|
readonly: boolean | null;
|
259
280
|
step: string | number;
|
260
|
-
elevation:
|
281
|
+
elevation: string | number;
|
261
282
|
messages: string | readonly string[];
|
262
283
|
focused: boolean;
|
263
284
|
errorMessages: string | readonly string[] | null;
|
@@ -277,35 +298,19 @@ declare const VSlider: {
|
|
277
298
|
thumbLabel: boolean | "always" | undefined;
|
278
299
|
thumbSize: string | number;
|
279
300
|
}, true, {}, vue.SlotsType<Partial<{
|
280
|
-
default: (arg: VInputSlot) => vue.VNode
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
}>[];
|
286
|
-
append: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
287
|
-
[key: string]: any;
|
288
|
-
}>[];
|
289
|
-
details: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
290
|
-
[key: string]: any;
|
291
|
-
}>[];
|
292
|
-
message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
293
|
-
[key: string]: any;
|
294
|
-
}>[];
|
301
|
+
default: (arg: VInputSlot) => vue.VNode[];
|
302
|
+
prepend: (arg: VInputSlot) => vue.VNode[];
|
303
|
+
append: (arg: VInputSlot) => vue.VNode[];
|
304
|
+
details: (arg: VInputSlot) => vue.VNode[];
|
305
|
+
message: (arg: VMessageSlot) => vue.VNode[];
|
295
306
|
'thumb-label': (arg: {
|
296
307
|
modelValue: number;
|
297
|
-
}) => vue.VNode
|
298
|
-
[key: string]: any;
|
299
|
-
}>[];
|
308
|
+
}) => vue.VNode[];
|
300
309
|
'tick-label': (arg: {
|
301
310
|
tick: Tick;
|
302
311
|
index: number;
|
303
|
-
}) => vue.VNode
|
304
|
-
|
305
|
-
}>[];
|
306
|
-
label: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
307
|
-
[key: string]: any;
|
308
|
-
}>[];
|
312
|
+
}) => vue.VNode[];
|
313
|
+
label: (arg: VInputSlot) => vue.VNode[];
|
309
314
|
}>>, {
|
310
315
|
P: {};
|
311
316
|
B: {};
|
@@ -323,7 +328,7 @@ declare const VSlider: {
|
|
323
328
|
disabled: boolean | null;
|
324
329
|
readonly: boolean | null;
|
325
330
|
step: string | number;
|
326
|
-
elevation:
|
331
|
+
elevation: string | number;
|
327
332
|
messages: string | readonly string[];
|
328
333
|
focused: boolean;
|
329
334
|
errorMessages: string | readonly string[] | null;
|
@@ -341,9 +346,9 @@ declare const VSlider: {
|
|
341
346
|
trackSize: string | number;
|
342
347
|
thumbSize: string | number;
|
343
348
|
} & {
|
349
|
+
name?: string | undefined;
|
344
350
|
id?: string | undefined;
|
345
351
|
width?: string | number | undefined;
|
346
|
-
name?: string | undefined;
|
347
352
|
color?: string | undefined;
|
348
353
|
maxWidth?: string | number | undefined;
|
349
354
|
minWidth?: string | number | undefined;
|
@@ -425,7 +430,7 @@ declare const VSlider: {
|
|
425
430
|
disabled: boolean | null;
|
426
431
|
readonly: boolean | null;
|
427
432
|
step: string | number;
|
428
|
-
elevation:
|
433
|
+
elevation: string | number;
|
429
434
|
messages: string | readonly string[];
|
430
435
|
focused: boolean;
|
431
436
|
errorMessages: string | readonly string[] | null;
|
@@ -445,9 +450,9 @@ declare const VSlider: {
|
|
445
450
|
thumbLabel: boolean | "always" | undefined;
|
446
451
|
thumbSize: string | number;
|
447
452
|
}>;
|
448
|
-
__isFragment?:
|
449
|
-
__isTeleport?:
|
450
|
-
__isSuspense?:
|
453
|
+
__isFragment?: never;
|
454
|
+
__isTeleport?: never;
|
455
|
+
__isSuspense?: never;
|
451
456
|
} & vue.ComponentOptionsBase<{
|
452
457
|
reverse: boolean;
|
453
458
|
max: string | number;
|
@@ -458,7 +463,7 @@ declare const VSlider: {
|
|
458
463
|
disabled: boolean | null;
|
459
464
|
readonly: boolean | null;
|
460
465
|
step: string | number;
|
461
|
-
elevation:
|
466
|
+
elevation: string | number;
|
462
467
|
messages: string | readonly string[];
|
463
468
|
focused: boolean;
|
464
469
|
errorMessages: string | readonly string[] | null;
|
@@ -476,9 +481,9 @@ declare const VSlider: {
|
|
476
481
|
trackSize: string | number;
|
477
482
|
thumbSize: string | number;
|
478
483
|
} & {
|
484
|
+
name?: string | undefined;
|
479
485
|
id?: string | undefined;
|
480
486
|
width?: string | number | undefined;
|
481
|
-
name?: string | undefined;
|
482
487
|
color?: string | undefined;
|
483
488
|
maxWidth?: string | number | undefined;
|
484
489
|
minWidth?: string | number | undefined;
|
@@ -565,7 +570,7 @@ declare const VSlider: {
|
|
565
570
|
disabled: boolean | null;
|
566
571
|
readonly: boolean | null;
|
567
572
|
step: string | number;
|
568
|
-
elevation:
|
573
|
+
elevation: string | number;
|
569
574
|
messages: string | readonly string[];
|
570
575
|
focused: boolean;
|
571
576
|
errorMessages: string | readonly string[] | null;
|
@@ -585,35 +590,19 @@ declare const VSlider: {
|
|
585
590
|
thumbLabel: boolean | "always" | undefined;
|
586
591
|
thumbSize: string | number;
|
587
592
|
}, {}, string, vue.SlotsType<Partial<{
|
588
|
-
default: (arg: VInputSlot) => vue.VNode
|
589
|
-
|
590
|
-
|
591
|
-
|
592
|
-
|
593
|
-
}>[];
|
594
|
-
append: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
595
|
-
[key: string]: any;
|
596
|
-
}>[];
|
597
|
-
details: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
598
|
-
[key: string]: any;
|
599
|
-
}>[];
|
600
|
-
message: (arg: VMessageSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
601
|
-
[key: string]: any;
|
602
|
-
}>[];
|
593
|
+
default: (arg: VInputSlot) => vue.VNode[];
|
594
|
+
prepend: (arg: VInputSlot) => vue.VNode[];
|
595
|
+
append: (arg: VInputSlot) => vue.VNode[];
|
596
|
+
details: (arg: VInputSlot) => vue.VNode[];
|
597
|
+
message: (arg: VMessageSlot) => vue.VNode[];
|
603
598
|
'thumb-label': (arg: {
|
604
599
|
modelValue: number;
|
605
|
-
}) => vue.VNode
|
606
|
-
[key: string]: any;
|
607
|
-
}>[];
|
600
|
+
}) => vue.VNode[];
|
608
601
|
'tick-label': (arg: {
|
609
602
|
tick: Tick;
|
610
603
|
index: number;
|
611
|
-
}) => vue.VNode
|
612
|
-
|
613
|
-
}>[];
|
614
|
-
label: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
615
|
-
[key: string]: any;
|
616
|
-
}>[];
|
604
|
+
}) => vue.VNode[];
|
605
|
+
label: (arg: VInputSlot) => vue.VNode[];
|
617
606
|
}>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
|
618
607
|
modelValue: {
|
619
608
|
type: (StringConstructor | NumberConstructor)[];
|
@@ -644,7 +633,7 @@ declare const VSlider: {
|
|
644
633
|
type: vue.PropType<readonly ValidationRule[]>;
|
645
634
|
default: () => never[];
|
646
635
|
};
|
647
|
-
validateOn: vue.PropType<"
|
636
|
+
validateOn: vue.PropType<ValidationProps["validateOn"]>;
|
648
637
|
validationValue: null;
|
649
638
|
theme: StringConstructor;
|
650
639
|
width: (StringConstructor | NumberConstructor)[];
|
@@ -655,7 +644,7 @@ declare const VSlider: {
|
|
655
644
|
default: string;
|
656
645
|
validator: (v: any) => boolean;
|
657
646
|
};
|
658
|
-
class: vue.PropType<
|
647
|
+
class: vue.PropType<ClassValue>;
|
659
648
|
style: {
|
660
649
|
type: vue.PropType<vue.StyleValue>;
|
661
650
|
default: null;
|
@@ -690,7 +679,7 @@ declare const VSlider: {
|
|
690
679
|
type: (StringConstructor | NumberConstructor)[];
|
691
680
|
validator(v: any): boolean;
|
692
681
|
}, "type" | "default"> & {
|
693
|
-
type: vue.PropType<
|
682
|
+
type: vue.PropType<string | number>;
|
694
683
|
default: NonNullable<string | number>;
|
695
684
|
};
|
696
685
|
rounded: {
|
@@ -770,7 +759,7 @@ declare const VSlider: {
|
|
770
759
|
type: vue.PropType<readonly ValidationRule[]>;
|
771
760
|
default: () => never[];
|
772
761
|
};
|
773
|
-
validateOn: vue.PropType<"
|
762
|
+
validateOn: vue.PropType<ValidationProps["validateOn"]>;
|
774
763
|
validationValue: null;
|
775
764
|
theme: StringConstructor;
|
776
765
|
width: (StringConstructor | NumberConstructor)[];
|
@@ -781,7 +770,7 @@ declare const VSlider: {
|
|
781
770
|
default: string;
|
782
771
|
validator: (v: any) => boolean;
|
783
772
|
};
|
784
|
-
class: vue.PropType<
|
773
|
+
class: vue.PropType<ClassValue>;
|
785
774
|
style: {
|
786
775
|
type: vue.PropType<vue.StyleValue>;
|
787
776
|
default: null;
|
@@ -816,7 +805,7 @@ declare const VSlider: {
|
|
816
805
|
type: (StringConstructor | NumberConstructor)[];
|
817
806
|
validator(v: any): boolean;
|
818
807
|
}, "type" | "default"> & {
|
819
|
-
type: vue.PropType<
|
808
|
+
type: vue.PropType<string | number>;
|
820
809
|
default: NonNullable<string | number>;
|
821
810
|
};
|
822
811
|
rounded: {
|
@@ -150,6 +150,9 @@ export const VSnackbar = genericComponent()({
|
|
150
150
|
isActive.value = false;
|
151
151
|
}
|
152
152
|
}
|
153
|
+
function onAfterLeave() {
|
154
|
+
if (isHovering.value) onPointerleave();
|
155
|
+
}
|
153
156
|
const locationClasses = computed(() => {
|
154
157
|
return props.location.split(' ').reduce((acc, loc) => {
|
155
158
|
acc[`v-snackbar--${loc}`] = true;
|
@@ -183,7 +186,8 @@ export const VSnackbar = genericComponent()({
|
|
183
186
|
"scrollStrategy": "none",
|
184
187
|
"_disableGlobalStack": true,
|
185
188
|
"onTouchstartPassive": onTouchstart,
|
186
|
-
"onTouchend": onTouchend
|
189
|
+
"onTouchend": onTouchend,
|
190
|
+
"onAfterLeave": onAfterLeave
|
187
191
|
}, scopeId), {
|
188
192
|
default: () => [genOverlays(false, 'v-snackbar'), props.timer && !isHovering.value && _createVNode("div", {
|
189
193
|
"key": "timer",
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","makeVOverlayProps","VProgressLinear","useLayout","forwardRefs","VuetifyLayoutKey","makeLocationProps","makePositionProps","usePosition","useProxiedModel","makeRoundedProps","useRounded","useScopeId","makeThemeProps","provideTheme","useToggleScope","genOverlays","makeVariantProps","useVariant","computed","inject","mergeProps","nextTick","onMounted","onScopeDispose","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","refElement","useRender","useCountdown","milliseconds","time","timer","clear","clearInterval","reset","value","start","el","style","getComputedStyle","transitionDuration","interval","parseFloat","startTime","performance","now","window","setInterval","elapsed","Math","max","makeVSnackbarProps","multiLine","Boolean","text","String","timeout","type","Number","default","vertical","location","transition","VSnackbar","name","props","emits","v","setup","_ref","slots","isActive","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","countdown","overlay","timerRef","isHovering","startY","mainStyles","hasLayout","undefined","layout","startTimeout","activeTimeout","clearTimeout","element","setTimeout","onPointerenter","onPointerleave","onTouchstart","event","touches","clientY","onTouchend","abs","changedTouches","locationClasses","split","reduce","acc","loc","overlayProps","filterProps","hasContent","_createVNode","_mergeProps","class","$event","contentProps","actions","VBtn","variant","ripple","slim","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record<string, any> }\n default: never\n actions: { isActive: Ref<boolean> }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref<VOverlay>()\n const timerRef = ref<VProgressLinear>()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record<string, any>)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical,\n },\n locationClasses.value,\n positionClasses.value,\n props.class,\n ]}\n style={[\n mainStyles.value,\n props.style,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n onTouchstartPassive={ onTouchstart }\n onTouchend={ onTouchend }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n <div key=\"timer\" class=\"v-snackbar__timer\">\n <VProgressLinear\n ref={ timerRef }\n color={ typeof props.timer === 'string' ? props.timer : 'info' }\n max={ props.timeout }\n model-value={ countdown.time.value }\n />\n </div>\n )}\n\n { hasContent && (\n <div\n key=\"content\"\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions({ isActive }) }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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","ignoreList":[]}
|
1
|
+
{"version":3,"file":"VSnackbar.mjs","names":["VDefaultsProvider","VOverlay","makeVOverlayProps","VProgressLinear","useLayout","forwardRefs","VuetifyLayoutKey","makeLocationProps","makePositionProps","usePosition","useProxiedModel","makeRoundedProps","useRounded","useScopeId","makeThemeProps","provideTheme","useToggleScope","genOverlays","makeVariantProps","useVariant","computed","inject","mergeProps","nextTick","onMounted","onScopeDispose","ref","shallowRef","watch","watchEffect","genericComponent","omit","propsFactory","refElement","useRender","useCountdown","milliseconds","time","timer","clear","clearInterval","reset","value","start","el","style","getComputedStyle","transitionDuration","interval","parseFloat","startTime","performance","now","window","setInterval","elapsed","Math","max","makeVSnackbarProps","multiLine","Boolean","text","String","timeout","type","Number","default","vertical","location","transition","VSnackbar","name","props","emits","v","setup","_ref","slots","isActive","positionClasses","scopeId","themeClasses","colorClasses","colorStyles","variantClasses","roundedClasses","countdown","overlay","timerRef","isHovering","startY","mainStyles","hasLayout","undefined","layout","startTimeout","activeTimeout","clearTimeout","element","setTimeout","onPointerenter","onPointerleave","onTouchstart","event","touches","clientY","onTouchend","abs","changedTouches","onAfterLeave","locationClasses","split","reduce","acc","loc","overlayProps","filterProps","hasContent","_createVNode","_mergeProps","class","$event","contentProps","actions","VBtn","variant","ripple","slim","activator"],"sources":["../../../src/components/VSnackbar/VSnackbar.tsx"],"sourcesContent":["// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\nimport { makeVOverlayProps } from '@/components/VOverlay/VOverlay'\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Composables\nimport { useLayout } from '@/composables'\nimport { forwardRefs } from '@/composables/forwardRefs'\nimport { VuetifyLayoutKey } from '@/composables/layout'\nimport { makeLocationProps } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useScopeId } from '@/composables/scopeId'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useToggleScope } from '@/composables/toggleScope'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { computed, inject, mergeProps, nextTick, onMounted, onScopeDispose, ref, shallowRef, watch, watchEffect } from 'vue'\nimport { genericComponent, omit, propsFactory, refElement, useRender } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype VSnackbarSlots = {\n activator: { isActive: boolean, props: Record<string, any> }\n default: never\n actions: { isActive: Ref<boolean> }\n text: never\n}\n\nfunction useCountdown (milliseconds: () => number) {\n const time = shallowRef(milliseconds())\n let timer = -1\n\n function clear () {\n clearInterval(timer)\n }\n\n function reset () {\n clear()\n\n nextTick(() => time.value = milliseconds())\n }\n\n function start (el?: HTMLElement) {\n const style = el ? getComputedStyle(el) : { transitionDuration: 0.2 }\n const interval = parseFloat(style.transitionDuration) * 1000 || 200\n\n clear()\n\n if (time.value <= 0) return\n\n const startTime = performance.now()\n timer = window.setInterval(() => {\n const elapsed = performance.now() - startTime + interval\n time.value = Math.max(milliseconds() - elapsed, 0)\n\n if (time.value <= 0) clear()\n }, interval)\n }\n\n onScopeDispose(clear)\n\n return { clear, time, start, reset }\n}\n\nexport const makeVSnackbarProps = propsFactory({\n multiLine: Boolean,\n text: String,\n timer: [Boolean, String],\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n ...makeLocationProps({ location: 'bottom' } as const),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeThemeProps(),\n ...omit(makeVOverlayProps({\n transition: 'v-snackbar-transition',\n }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy']),\n}, 'VSnackbar')\n\nexport const VSnackbar = genericComponent<VSnackbarSlots>()({\n name: 'VSnackbar',\n\n props: makeVSnackbarProps(),\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n const countdown = useCountdown(() => Number(props.timeout))\n\n const overlay = ref<VOverlay>()\n const timerRef = ref<VProgressLinear>()\n const isHovering = shallowRef(false)\n const startY = shallowRef(0)\n const mainStyles = ref()\n const hasLayout = inject(VuetifyLayoutKey, undefined)\n\n useToggleScope(() => !!hasLayout, () => {\n const layout = useLayout()\n\n watchEffect(() => {\n mainStyles.value = layout.mainStyles.value\n })\n })\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n const element = refElement(timerRef.value)\n\n countdown.start(element)\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function clearTimeout () {\n countdown.reset()\n window.clearTimeout(activeTimeout)\n }\n\n function onPointerenter () {\n isHovering.value = true\n clearTimeout()\n }\n\n function onPointerleave () {\n isHovering.value = false\n startTimeout()\n }\n\n function onTouchstart (event: TouchEvent) {\n startY.value = event.touches[0].clientY\n }\n\n function onTouchend (event: TouchEvent) {\n if (Math.abs(startY.value - event.changedTouches[0].clientY) > 50) {\n isActive.value = false\n }\n }\n\n function onAfterLeave () {\n if (isHovering.value) onPointerleave()\n }\n\n const locationClasses = computed(() => {\n return props.location.split(' ').reduce((acc, loc) => {\n acc[`v-snackbar--${loc}`] = true\n\n return acc\n }, {} as Record<string, any>)\n })\n\n useRender(() => {\n const overlayProps = VOverlay.filterProps(props)\n const hasContent = !!(slots.default || slots.text || props.text)\n\n return (\n <VOverlay\n ref={ overlay }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--timer': !!props.timer,\n 'v-snackbar--vertical': props.vertical,\n },\n locationClasses.value,\n positionClasses.value,\n props.class,\n ]}\n style={[\n mainStyles.value,\n props.style,\n ]}\n { ...overlayProps }\n v-model={ isActive.value }\n contentProps={ mergeProps({\n class: [\n 'v-snackbar__wrapper',\n themeClasses.value,\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ],\n style: [\n colorStyles.value,\n ],\n onPointerenter,\n onPointerleave,\n }, overlayProps.contentProps)}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n _disableGlobalStack\n onTouchstartPassive={ onTouchstart }\n onTouchend={ onTouchend }\n onAfterLeave={ onAfterLeave }\n { ...scopeId }\n v-slots={{ activator: slots.activator }}\n >\n { genOverlays(false, 'v-snackbar') }\n\n { props.timer && !isHovering.value && (\n <div key=\"timer\" class=\"v-snackbar__timer\">\n <VProgressLinear\n ref={ timerRef }\n color={ typeof props.timer === 'string' ? props.timer : 'info' }\n max={ props.timeout }\n model-value={ countdown.time.value }\n />\n </div>\n )}\n\n { hasContent && (\n <div\n key=\"content\"\n class=\"v-snackbar__content\"\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.text?.() ?? props.text }\n\n { slots.default?.() }\n </div>\n )}\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n slim: true,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions({ isActive }) }\n </div>\n </VDefaultsProvider>\n )}\n </VOverlay>\n )\n })\n\n return forwardRefs({}, overlay)\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n"],"mappings":"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","ignoreList":[]}
|