@vuetify/nightly 3.6.14-master.2024-08-04 → 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.
Files changed (139) hide show
  1. package/dist/json/attributes.json +7 -11
  2. package/dist/json/importMap-labs.json +30 -30
  3. package/dist/json/importMap.json +144 -144
  4. package/dist/json/tags.json +0 -1
  5. package/dist/json/web-types.json +8 -18
  6. package/dist/vuetify-labs.css +2162 -2162
  7. package/dist/vuetify-labs.d.ts +33122 -39828
  8. package/dist/vuetify-labs.esm.js +17 -9
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +17 -9
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1025 -1025
  13. package/dist/vuetify.d.ts +32674 -39040
  14. package/dist/vuetify.esm.js +16 -8
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +16 -8
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +22 -22
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/index.d.mts +50 -73
  22. package/lib/components/VApp/index.d.mts +9 -11
  23. package/lib/components/VAppBar/index.d.mts +92 -128
  24. package/lib/components/VAutocomplete/index.d.mts +4771 -3230
  25. package/lib/components/VAvatar/index.d.mts +23 -22
  26. package/lib/components/VBadge/index.d.mts +53 -59
  27. package/lib/components/VBanner/index.d.mts +44 -66
  28. package/lib/components/VBottomNavigation/index.d.mts +25 -32
  29. package/lib/components/VBottomSheet/index.d.mts +125 -135
  30. package/lib/components/VBreadcrumbs/index.d.mts +35 -78
  31. package/lib/components/VBtn/index.d.mts +49 -53
  32. package/lib/components/VBtnGroup/index.d.mts +14 -13
  33. package/lib/components/VBtnToggle/index.d.mts +21 -23
  34. package/lib/components/VCard/index.d.mts +104 -168
  35. package/lib/components/VCarousel/index.d.mts +59 -96
  36. package/lib/components/VCheckbox/index.d.mts +132 -155
  37. package/lib/components/VChip/index.d.mts +47 -59
  38. package/lib/components/VChipGroup/index.d.mts +39 -41
  39. package/lib/components/VCode/index.d.mts +9 -11
  40. package/lib/components/VColorPicker/index.d.mts +58 -133
  41. package/lib/components/VCombobox/index.d.mts +4785 -3244
  42. package/lib/components/VConfirmEdit/index.d.mts +11 -19
  43. package/lib/components/VCounter/index.d.mts +40 -42
  44. package/lib/components/VDataIterator/index.d.mts +171 -185
  45. package/lib/components/VDataTable/index.d.mts +480 -1204
  46. package/lib/components/VDatePicker/index.d.mts +120 -158
  47. package/lib/components/VDefaultsProvider/index.d.mts +5 -9
  48. package/lib/components/VDialog/index.d.mts +243 -277
  49. package/lib/components/VDivider/index.d.mts +9 -11
  50. package/lib/components/VEmptyState/index.d.mts +30 -52
  51. package/lib/components/VExpansionPanel/index.d.mts +60 -85
  52. package/lib/components/VFab/index.d.mts +81 -73
  53. package/lib/components/VField/index.d.mts +35 -62
  54. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  55. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  56. package/lib/components/VFileInput/index.d.mts +172 -259
  57. package/lib/components/VFooter/index.d.mts +9 -11
  58. package/lib/components/VForm/index.d.mts +105 -77
  59. package/lib/components/VGrid/index.d.mts +41 -52
  60. package/lib/components/VHover/index.d.mts +5 -9
  61. package/lib/components/VIcon/index.d.mts +23 -29
  62. package/lib/components/VImg/index.d.mts +28 -42
  63. package/lib/components/VInfiniteScroll/index.d.mts +17 -37
  64. package/lib/components/VInput/index.d.mts +48 -50
  65. package/lib/components/VItemGroup/index.d.mts +21 -30
  66. package/lib/components/VKbd/index.d.mts +9 -11
  67. package/lib/components/VLabel/index.d.mts +9 -11
  68. package/lib/components/VLayout/index.d.mts +18 -24
  69. package/lib/components/VLazy/index.d.mts +42 -44
  70. package/lib/components/VList/VList.mjs.map +1 -1
  71. package/lib/components/VList/index.d.mts +210 -329
  72. package/lib/components/VLocaleProvider/index.d.mts +9 -11
  73. package/lib/components/VMain/index.d.mts +9 -11
  74. package/lib/components/VMenu/index.d.mts +272 -306
  75. package/lib/components/VMessages/index.d.mts +49 -51
  76. package/lib/components/VNavigationDrawer/index.d.mts +27 -40
  77. package/lib/components/VOtpInput/index.d.mts +22 -28
  78. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  79. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  80. package/lib/components/VOverlay/index.d.mts +53 -63
  81. package/lib/components/VPagination/index.d.mts +31 -46
  82. package/lib/components/VParallax/index.d.mts +15 -29
  83. package/lib/components/VProgressCircular/index.d.mts +9 -11
  84. package/lib/components/VProgressLinear/index.d.mts +22 -24
  85. package/lib/components/VRadio/index.d.mts +49 -52
  86. package/lib/components/VRadioGroup/index.d.mts +66 -66
  87. package/lib/components/VRangeSlider/index.d.mts +58 -69
  88. package/lib/components/VRating/index.d.mts +13 -19
  89. package/lib/components/VResponsive/index.d.mts +11 -17
  90. package/lib/components/VSelect/index.d.mts +4762 -3221
  91. package/lib/components/VSelectionControl/index.d.mts +38 -44
  92. package/lib/components/VSelectionControlGroup/index.d.mts +34 -34
  93. package/lib/components/VSheet/index.d.mts +15 -17
  94. package/lib/components/VSkeletonLoader/index.d.mts +41 -11
  95. package/lib/components/VSlideGroup/index.d.mts +112 -129
  96. package/lib/components/VSlider/index.d.mts +58 -69
  97. package/lib/components/VSnackbar/VSnackbar.mjs +5 -1
  98. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  99. package/lib/components/VSnackbar/index.d.mts +231 -270
  100. package/lib/components/VSparkline/index.d.mts +11 -19
  101. package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
  102. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  103. package/lib/components/VSpeedDial/index.d.mts +179 -189
  104. package/lib/components/VStepper/index.d.mts +105 -180
  105. package/lib/components/VSwitch/index.d.mts +78 -98
  106. package/lib/components/VSystemBar/index.d.mts +13 -15
  107. package/lib/components/VTable/index.d.mts +15 -29
  108. package/lib/components/VTabs/index.d.mts +213 -297
  109. package/lib/components/VTextField/index.d.mts +253 -408
  110. package/lib/components/VTextarea/index.d.mts +157 -236
  111. package/lib/components/VThemeProvider/index.d.mts +9 -11
  112. package/lib/components/VTimeline/index.d.mts +29 -43
  113. package/lib/components/VToolbar/index.d.mts +49 -80
  114. package/lib/components/VTooltip/index.d.mts +282 -316
  115. package/lib/components/VValidation/index.d.mts +16 -23
  116. package/lib/components/VVirtualScroll/index.d.mts +14 -23
  117. package/lib/components/VWindow/index.d.mts +29 -50
  118. package/lib/components/index.d.mts +31169 -37524
  119. package/lib/components/transitions/index.d.mts +84 -148
  120. package/lib/composables/location.mjs.map +1 -1
  121. package/lib/directives/click-outside/index.mjs +3 -0
  122. package/lib/directives/click-outside/index.mjs.map +1 -1
  123. package/lib/entry-bundler.mjs +1 -1
  124. package/lib/framework.mjs +1 -1
  125. package/lib/index.d.mts +60 -60
  126. package/lib/labs/VCalendar/index.d.mts +146 -166
  127. package/lib/labs/VDateInput/index.d.mts +83 -62
  128. package/lib/labs/VNumberInput/index.d.mts +61 -88
  129. package/lib/labs/VPicker/index.d.mts +28 -46
  130. package/lib/labs/VPullToRefresh/index.d.mts +7 -15
  131. package/lib/labs/VSnackbarQueue/index.d.mts +311 -369
  132. package/lib/labs/VStepperVertical/index.d.mts +109 -184
  133. package/lib/labs/VTimePicker/index.d.mts +35 -53
  134. package/lib/labs/VTreeview/VTreeview.mjs +1 -1
  135. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  136. package/lib/labs/VTreeview/index.d.mts +200 -292
  137. package/lib/labs/components.d.mts +905 -1246
  138. package/lib/util/propsFactory.mjs.map +1 -1
  139. package/package.json +3 -3
@@ -1,10 +1,15 @@
1
1
  import * as vue from 'vue';
2
- import { ComponentPropsOptions, ExtractPropTypes, JSXComponent, PropType, ComputedRef, Ref } from 'vue';
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: NonNullable<string | number>;
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: NonNullable<string | number>;
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: NonNullable<string | number>;
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<vue.RendererNode, vue.RendererElement, {
281
- [key: string]: any;
282
- }>[];
283
- prepend: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
284
- [key: string]: any;
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<vue.RendererNode, vue.RendererElement, {
298
- [key: string]: any;
299
- }>[];
308
+ }) => vue.VNode[];
300
309
  'tick-label': (arg: {
301
310
  tick: Tick;
302
311
  index: number;
303
- }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
304
- [key: string]: any;
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: NonNullable<string | number>;
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: NonNullable<string | number>;
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?: undefined;
449
- __isTeleport?: undefined;
450
- __isSuspense?: undefined;
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: NonNullable<string | number>;
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: NonNullable<string | number>;
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<vue.RendererNode, vue.RendererElement, {
589
- [key: string]: any;
590
- }>[];
591
- prepend: (arg: VInputSlot) => vue.VNode<vue.RendererNode, vue.RendererElement, {
592
- [key: string]: any;
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<vue.RendererNode, vue.RendererElement, {
606
- [key: string]: any;
607
- }>[];
600
+ }) => vue.VNode[];
608
601
  'tick-label': (arg: {
609
602
  tick: Tick;
610
603
  index: number;
611
- }) => vue.VNode<vue.RendererNode, vue.RendererElement, {
612
- [key: string]: any;
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<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>;
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<any>;
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<NonNullable<string | number>>;
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<"lazy" | ("input" | "blur" | "submit") | "input lazy" | "blur lazy" | "submit lazy" | "lazy input" | "lazy blur" | "lazy submit" | undefined>;
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<any>;
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<NonNullable<string | number>>;
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":";AAAA;AACA;;AAEA;AAAA,SACSA,iBAAiB;AAAA,SACjBC,QAAQ;AAAA,SACRC,iBAAiB;AAAA,SACjBC,eAAe,wCAExB;AAAA,SACSC,SAAS;AAAA,SACTC,WAAW;AAAA,SACXC,gBAAgB;AAAA,SAChBC,iBAAiB;AAAA,SACjBC,iBAAiB,EAAEC,WAAW;AAAA,SAC9BC,eAAe;AAAA,SACfC,gBAAgB,EAAEC,UAAU;AAAA,SAC5BC,UAAU;AAAA,SACVC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,cAAc;AAAA,SACdC,WAAW,EAAEC,gBAAgB,EAAEC,UAAU,yCAElD;AACA,SAASC,QAAQ,EAAEC,MAAM,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,SAAS,EAAEC,cAAc,EAAEC,GAAG,EAAEC,UAAU,EAAEC,KAAK,EAAEC,WAAW,QAAQ,KAAK;AAAA,SACnHC,gBAAgB,EAAEC,IAAI,EAAEC,YAAY,EAAEC,UAAU,EAAEC,SAAS,gCAEpE;AAUA,SAASC,YAAYA,CAAEC,YAA0B,EAAE;EACjD,MAAMC,IAAI,GAAGV,UAAU,CAACS,YAAY,CAAC,CAAC,CAAC;EACvC,IAAIE,KAAK,GAAG,CAAC,CAAC;EAEd,SAASC,KAAKA,CAAA,EAAI;IAChBC,aAAa,CAACF,KAAK,CAAC;EACtB;EAEA,SAASG,KAAKA,CAAA,EAAI;IAChBF,KAAK,CAAC,CAAC;IAEPhB,QAAQ,CAAC,MAAMc,IAAI,CAACK,KAAK,GAAGN,YAAY,CAAC,CAAC,CAAC;EAC7C;EAEA,SAASO,KAAKA,CAAEC,EAAgB,EAAE;IAChC,MAAMC,KAAK,GAAGD,EAAE,GAAGE,gBAAgB,CAACF,EAAE,CAAC,GAAG;MAAEG,kBAAkB,EAAE;IAAI,CAAC;IACrE,MAAMC,QAAQ,GAAGC,UAAU,CAACJ,KAAK,CAACE,kBAAkB,CAAC,GAAG,IAAI,IAAI,GAAG;IAEnER,KAAK,CAAC,CAAC;IAEP,IAAIF,IAAI,CAACK,KAAK,IAAI,CAAC,EAAE;IAErB,MAAMQ,SAAS,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IACnCd,KAAK,GAAGe,MAAM,CAACC,WAAW,CAAC,MAAM;MAC/B,MAAMC,OAAO,GAAGJ,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGF,SAAS,GAAGF,QAAQ;MACxDX,IAAI,CAACK,KAAK,GAAGc,IAAI,CAACC,GAAG,CAACrB,YAAY,CAAC,CAAC,GAAGmB,OAAO,EAAE,CAAC,CAAC;MAElD,IAAIlB,IAAI,CAACK,KAAK,IAAI,CAAC,EAAEH,KAAK,CAAC,CAAC;IAC9B,CAAC,EAAES,QAAQ,CAAC;EACd;EAEAvB,cAAc,CAACc,KAAK,CAAC;EAErB,OAAO;IAAEA,KAAK;IAAEF,IAAI;IAAEM,KAAK;IAAEF;EAAM,CAAC;AACtC;AAEA,OAAO,MAAMiB,kBAAkB,GAAG1B,YAAY,CAAC;EAC7C2B,SAAS,EAAEC,OAAO;EAClBC,IAAI,EAAEC,MAAM;EACZxB,KAAK,EAAE,CAACsB,OAAO,EAAEE,MAAM,CAAC;EACxBC,OAAO,EAAE;IACPC,IAAI,EAAE,CAACC,MAAM,EAAEH,MAAM,CAAC;IACtBI,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAEP,OAAO;EAEjB,GAAGrD,iBAAiB,CAAC;IAAE6D,QAAQ,EAAE;EAAS,CAAU,CAAC;EACrD,GAAG5D,iBAAiB,CAAC,CAAC;EACtB,GAAGG,gBAAgB,CAAC,CAAC;EACrB,GAAGO,gBAAgB,CAAC,CAAC;EACrB,GAAGJ,cAAc,CAAC,CAAC;EACnB,GAAGiB,IAAI,CAAC7B,iBAAiB,CAAC;IACxBmE,UAAU,EAAE;EACd,CAAC,CAAC,EAAE,CAAC,YAAY,EAAE,kBAAkB,EAAE,OAAO,EAAE,gBAAgB,CAAC;AACnE,CAAC,EAAE,WAAW,CAAC;AAEf,OAAO,MAAMC,SAAS,GAAGxC,gBAAgB,CAAiB,CAAC,CAAC;EAC1DyC,IAAI,EAAE,WAAW;EAEjBC,KAAK,EAAEd,kBAAkB,CAAC,CAAC;EAE3Be,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,QAAQ,GAAGpE,eAAe,CAAC8D,KAAK,EAAE,YAAY,CAAC;IACrD,MAAM;MAAEO;IAAgB,CAAC,GAAGtE,WAAW,CAAC+D,KAAK,CAAC;IAC9C,MAAM;MAAEQ;IAAQ,CAAC,GAAGnE,UAAU,CAAC,CAAC;IAChC,MAAM;MAAEoE;IAAa,CAAC,GAAGlE,YAAY,CAACyD,KAAK,CAAC;IAC5C,MAAM;MAAEU,YAAY;MAAEC,WAAW;MAAEC;IAAe,CAAC,GAAGjE,UAAU,CAACqD,KAAK,CAAC;IACvE,MAAM;MAAEa;IAAe,CAAC,GAAGzE,UAAU,CAAC4D,KAAK,CAAC;IAC5C,MAAMc,SAAS,GAAGnD,YAAY,CAAC,MAAM8B,MAAM,CAACO,KAAK,CAACT,OAAO,CAAC,CAAC;IAE3D,MAAMwB,OAAO,GAAG7D,GAAG,CAAW,CAAC;IAC/B,MAAM8D,QAAQ,GAAG9D,GAAG,CAAkB,CAAC;IACvC,MAAM+D,UAAU,GAAG9D,UAAU,CAAC,KAAK,CAAC;IACpC,MAAM+D,MAAM,GAAG/D,UAAU,CAAC,CAAC,CAAC;IAC5B,MAAMgE,UAAU,GAAGjE,GAAG,CAAC,CAAC;IACxB,MAAMkE,SAAS,GAAGvE,MAAM,CAACf,gBAAgB,EAAEuF,SAAS,CAAC;IAErD7E,cAAc,CAAC,MAAM,CAAC,CAAC4E,SAAS,EAAE,MAAM;MACtC,MAAME,MAAM,GAAG1F,SAAS,CAAC,CAAC;MAE1ByB,WAAW,CAAC,MAAM;QAChB8D,UAAU,CAACjD,KAAK,GAAGoD,MAAM,CAACH,UAAU,CAACjD,KAAK;MAC5C,CAAC,CAAC;IACJ,CAAC,CAAC;IAEFd,KAAK,CAACkD,QAAQ,EAAEiB,YAAY,CAAC;IAC7BnE,KAAK,CAAC,MAAM4C,KAAK,CAACT,OAAO,EAAEgC,YAAY,CAAC;IAExCvE,SAAS,CAAC,MAAM;MACd,IAAIsD,QAAQ,CAACpC,KAAK,EAAEqD,YAAY,CAAC,CAAC;IACpC,CAAC,CAAC;IAEF,IAAIC,aAAa,GAAG,CAAC,CAAC;IACtB,SAASD,YAAYA,CAAA,EAAI;MACvBT,SAAS,CAAC7C,KAAK,CAAC,CAAC;MACjBY,MAAM,CAAC4C,YAAY,CAACD,aAAa,CAAC;MAClC,MAAMjC,OAAO,GAAGE,MAAM,CAACO,KAAK,CAACT,OAAO,CAAC;MAErC,IAAI,CAACe,QAAQ,CAACpC,KAAK,IAAIqB,OAAO,KAAK,CAAC,CAAC,EAAE;MAEvC,MAAMmC,OAAO,GAAGjE,UAAU,CAACuD,QAAQ,CAAC9C,KAAK,CAAC;MAE1C4C,SAAS,CAAC3C,KAAK,CAACuD,OAAO,CAAC;MAExBF,aAAa,GAAG3C,MAAM,CAAC8C,UAAU,CAAC,MAAM;QACtCrB,QAAQ,CAACpC,KAAK,GAAG,KAAK;MACxB,CAAC,EAAEqB,OAAO,CAAC;IACb;IAEA,SAASkC,YAAYA,CAAA,EAAI;MACvBX,SAAS,CAAC7C,KAAK,CAAC,CAAC;MACjBY,MAAM,CAAC4C,YAAY,CAACD,aAAa,CAAC;IACpC;IAEA,SAASI,cAAcA,CAAA,EAAI;MACzBX,UAAU,CAAC/C,KAAK,GAAG,IAAI;MACvBuD,YAAY,CAAC,CAAC;IAChB;IAEA,SAASI,cAAcA,CAAA,EAAI;MACzBZ,UAAU,CAAC/C,KAAK,GAAG,KAAK;MACxBqD,YAAY,CAAC,CAAC;IAChB;IAEA,SAASO,YAAYA,CAAEC,KAAiB,EAAE;MACxCb,MAAM,CAAChD,KAAK,GAAG6D,KAAK,CAACC,OAAO,CAAC,CAAC,CAAC,CAACC,OAAO;IACzC;IAEA,SAASC,UAAUA,CAAEH,KAAiB,EAAE;MACtC,IAAI/C,IAAI,CAACmD,GAAG,CAACjB,MAAM,CAAChD,KAAK,GAAG6D,KAAK,CAACK,cAAc,CAAC,CAAC,CAAC,CAACH,OAAO,CAAC,GAAG,EAAE,EAAE;QACjE3B,QAAQ,CAACpC,KAAK,GAAG,KAAK;MACxB;IACF;IAEA,MAAMmE,eAAe,GAAGzF,QAAQ,CAAC,MAAM;MACrC,OAAOoD,KAAK,CAACJ,QAAQ,CAAC0C,KAAK,CAAC,GAAG,CAAC,CAACC,MAAM,CAAC,CAACC,GAAG,EAAEC,GAAG,KAAK;QACpDD,GAAG,CAAC,eAAeC,GAAG,EAAE,CAAC,GAAG,IAAI;QAEhC,OAAOD,GAAG;MACZ,CAAC,EAAE,CAAC,CAAwB,CAAC;IAC/B,CAAC,CAAC;IAEF9E,SAAS,CAAC,MAAM;MACd,MAAMgF,YAAY,GAAGjH,QAAQ,CAACkH,WAAW,CAAC3C,KAAK,CAAC;MAChD,MAAM4C,UAAU,GAAG,CAAC,EAAEvC,KAAK,CAACX,OAAO,IAAIW,KAAK,CAAChB,IAAI,IAAIW,KAAK,CAACX,IAAI,CAAC;MAEhE,OAAAwD,YAAA,CAAApH,QAAA,EAAAqH,WAAA;QAAA,OAEU/B,OAAO;QAAA,SACN,CACL,YAAY,EACZ;UACE,oBAAoB,EAAET,QAAQ,CAACpC,KAAK;UACpC,wBAAwB,EAAE8B,KAAK,CAACb,SAAS,IAAI,CAACa,KAAK,CAACL,QAAQ;UAC5D,mBAAmB,EAAE,CAAC,CAACK,KAAK,CAAClC,KAAK;UAClC,sBAAsB,EAAEkC,KAAK,CAACL;QAChC,CAAC,EACD0C,eAAe,CAACnE,KAAK,EACrBqC,eAAe,CAACrC,KAAK,EACrB8B,KAAK,CAAC+C,KAAK,CACZ;QAAA,SACM,CACL5B,UAAU,CAACjD,KAAK,EAChB8B,KAAK,CAAC3B,KAAK;MACZ,GACIqE,YAAY;QAAA,cACPpC,QAAQ,CAACpC,KAAK;QAAA,uBAAA8E,MAAA,IAAd1C,QAAQ,CAACpC,KAAK,GAAA8E,MAAA;QAAA,gBACTlG,UAAU,CAAC;UACxBiG,KAAK,EAAE,CACL,qBAAqB,EACrBtC,YAAY,CAACvC,KAAK,EAClBwC,YAAY,CAACxC,KAAK,EAClB2C,cAAc,CAAC3C,KAAK,EACpB0C,cAAc,CAAC1C,KAAK,CACrB;UACDG,KAAK,EAAE,CACLsC,WAAW,CAACzC,KAAK,CAClB;UACD0D,cAAc;UACdC;QACF,CAAC,EAAEa,YAAY,CAACO,YAAY,CAAC;QAAA;QAAA;QAAA,SAGrB,KAAK;QAAA;QAAA;QAAA,uBAGSnB,YAAY;QAAA,cACrBI;MAAU,GAClB1B,OAAO;QAAAd,OAAA,EAAAA,CAAA,MAGVjD,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,EAEhCuD,KAAK,CAAClC,KAAK,IAAI,CAACmD,UAAU,CAAC/C,KAAK,IAAA2E,YAAA;UAAA;UAAA;QAAA,IAAAA,YAAA,CAAAlH,eAAA;UAAA,OAGtBqF,QAAQ;UAAA,SACN,OAAOhB,KAAK,CAAClC,KAAK,KAAK,QAAQ,GAAGkC,KAAK,CAAClC,KAAK,GAAG,MAAM;UAAA,OACxDkC,KAAK,CAACT,OAAO;UAAA,eACLuB,SAAS,CAACjD,IAAI,CAACK;QAAK,UAGvC,EAEC0E,UAAU,IAAAC,YAAA;UAAA;UAAA;UAAA;UAAA;QAAA,IAONxC,KAAK,CAAChB,IAAI,GAAG,CAAC,IAAIW,KAAK,CAACX,IAAI,EAE5BgB,KAAK,CAACX,OAAO,GAAG,CAAC,EAEtB,EAECW,KAAK,CAAC6C,OAAO,IAAAL,YAAA,CAAArH,iBAAA;UAAA,YAED;YACR2H,IAAI,EAAE;cACJC,OAAO,EAAE,MAAM;cACfC,MAAM,EAAE,KAAK;cACbC,IAAI,EAAE;YACR;UACF;QAAC;UAAA5D,OAAA,EAAAA,CAAA,MAAAmD,YAAA;YAAA;UAAA,IAGGxC,KAAK,CAAC6C,OAAO,CAAC;YAAE5C;UAAS,CAAC,CAAC;QAAA,EAGlC;QA1CUiD,SAAS,EAAElD,KAAK,CAACkD;MAAS;IA6C3C,CAAC,CAAC;IAEF,OAAO1H,WAAW,CAAC,CAAC,CAAC,EAAEkF,OAAO,CAAC;EACjC;AACF,CAAC,CAAC","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":[]}