@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.
Files changed (135) hide show
  1. package/dist/json/attributes.json +7 -7
  2. package/dist/json/importMap-labs.json +30 -30
  3. package/dist/json/importMap.json +138 -138
  4. package/dist/json/web-types.json +8 -8
  5. package/dist/vuetify-labs.css +2728 -2728
  6. package/dist/vuetify-labs.d.ts +33444 -40135
  7. package/dist/vuetify-labs.esm.js +16 -8
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +16 -8
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +556 -556
  12. package/dist/vuetify.d.ts +32672 -39038
  13. package/dist/vuetify.esm.js +16 -8
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +16 -8
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +22 -22
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAlert/index.d.mts +50 -73
  21. package/lib/components/VApp/index.d.mts +9 -11
  22. package/lib/components/VAppBar/index.d.mts +92 -128
  23. package/lib/components/VAutocomplete/index.d.mts +4771 -3230
  24. package/lib/components/VAvatar/index.d.mts +23 -22
  25. package/lib/components/VBadge/index.d.mts +53 -59
  26. package/lib/components/VBanner/index.d.mts +44 -66
  27. package/lib/components/VBottomNavigation/index.d.mts +25 -32
  28. package/lib/components/VBottomSheet/index.d.mts +125 -135
  29. package/lib/components/VBreadcrumbs/index.d.mts +35 -78
  30. package/lib/components/VBtn/index.d.mts +49 -53
  31. package/lib/components/VBtnGroup/index.d.mts +14 -13
  32. package/lib/components/VBtnToggle/index.d.mts +21 -23
  33. package/lib/components/VCard/index.d.mts +104 -168
  34. package/lib/components/VCarousel/index.d.mts +59 -96
  35. package/lib/components/VCheckbox/index.d.mts +132 -155
  36. package/lib/components/VChip/index.d.mts +47 -59
  37. package/lib/components/VChipGroup/index.d.mts +39 -41
  38. package/lib/components/VCode/index.d.mts +9 -11
  39. package/lib/components/VColorPicker/index.d.mts +58 -133
  40. package/lib/components/VCombobox/index.d.mts +4785 -3244
  41. package/lib/components/VConfirmEdit/index.d.mts +11 -19
  42. package/lib/components/VCounter/index.d.mts +40 -42
  43. package/lib/components/VDataIterator/index.d.mts +171 -185
  44. package/lib/components/VDataTable/index.d.mts +480 -1204
  45. package/lib/components/VDatePicker/index.d.mts +120 -158
  46. package/lib/components/VDefaultsProvider/index.d.mts +5 -9
  47. package/lib/components/VDialog/index.d.mts +243 -277
  48. package/lib/components/VDivider/index.d.mts +9 -11
  49. package/lib/components/VEmptyState/index.d.mts +30 -52
  50. package/lib/components/VExpansionPanel/index.d.mts +60 -85
  51. package/lib/components/VFab/index.d.mts +81 -73
  52. package/lib/components/VField/index.d.mts +35 -62
  53. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  54. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  55. package/lib/components/VFileInput/index.d.mts +172 -259
  56. package/lib/components/VFooter/index.d.mts +9 -11
  57. package/lib/components/VForm/index.d.mts +105 -77
  58. package/lib/components/VGrid/index.d.mts +41 -52
  59. package/lib/components/VHover/index.d.mts +5 -9
  60. package/lib/components/VIcon/index.d.mts +23 -29
  61. package/lib/components/VImg/index.d.mts +28 -42
  62. package/lib/components/VInfiniteScroll/index.d.mts +17 -37
  63. package/lib/components/VInput/index.d.mts +48 -50
  64. package/lib/components/VItemGroup/index.d.mts +21 -30
  65. package/lib/components/VKbd/index.d.mts +9 -11
  66. package/lib/components/VLabel/index.d.mts +9 -11
  67. package/lib/components/VLayout/index.d.mts +18 -24
  68. package/lib/components/VLazy/index.d.mts +42 -44
  69. package/lib/components/VList/index.d.mts +210 -329
  70. package/lib/components/VLocaleProvider/index.d.mts +9 -11
  71. package/lib/components/VMain/index.d.mts +9 -11
  72. package/lib/components/VMenu/index.d.mts +272 -306
  73. package/lib/components/VMessages/index.d.mts +49 -51
  74. package/lib/components/VNavigationDrawer/index.d.mts +27 -40
  75. package/lib/components/VOtpInput/index.d.mts +22 -28
  76. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  77. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  78. package/lib/components/VOverlay/index.d.mts +53 -63
  79. package/lib/components/VPagination/index.d.mts +31 -46
  80. package/lib/components/VParallax/index.d.mts +15 -29
  81. package/lib/components/VProgressCircular/index.d.mts +9 -11
  82. package/lib/components/VProgressLinear/index.d.mts +22 -24
  83. package/lib/components/VRadio/index.d.mts +49 -52
  84. package/lib/components/VRadioGroup/index.d.mts +66 -66
  85. package/lib/components/VRangeSlider/index.d.mts +58 -69
  86. package/lib/components/VRating/index.d.mts +13 -19
  87. package/lib/components/VResponsive/index.d.mts +11 -17
  88. package/lib/components/VSelect/index.d.mts +4762 -3221
  89. package/lib/components/VSelectionControl/index.d.mts +38 -44
  90. package/lib/components/VSelectionControlGroup/index.d.mts +34 -34
  91. package/lib/components/VSheet/index.d.mts +15 -17
  92. package/lib/components/VSkeletonLoader/index.d.mts +41 -11
  93. package/lib/components/VSlideGroup/index.d.mts +112 -129
  94. package/lib/components/VSlider/index.d.mts +58 -69
  95. package/lib/components/VSnackbar/VSnackbar.mjs +5 -1
  96. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  97. package/lib/components/VSnackbar/index.d.mts +231 -270
  98. package/lib/components/VSparkline/index.d.mts +11 -19
  99. package/lib/components/VSpeedDial/VSpeedDial.mjs +1 -1
  100. package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
  101. package/lib/components/VSpeedDial/index.d.mts +179 -189
  102. package/lib/components/VStepper/index.d.mts +105 -180
  103. package/lib/components/VSwitch/index.d.mts +78 -98
  104. package/lib/components/VSystemBar/index.d.mts +13 -15
  105. package/lib/components/VTable/index.d.mts +15 -29
  106. package/lib/components/VTabs/index.d.mts +213 -297
  107. package/lib/components/VTextField/index.d.mts +253 -408
  108. package/lib/components/VTextarea/index.d.mts +157 -236
  109. package/lib/components/VThemeProvider/index.d.mts +9 -11
  110. package/lib/components/VTimeline/index.d.mts +29 -43
  111. package/lib/components/VToolbar/index.d.mts +49 -80
  112. package/lib/components/VTooltip/index.d.mts +282 -316
  113. package/lib/components/VValidation/index.d.mts +16 -23
  114. package/lib/components/VVirtualScroll/index.d.mts +14 -23
  115. package/lib/components/VWindow/index.d.mts +29 -50
  116. package/lib/components/index.d.mts +31169 -37524
  117. package/lib/components/transitions/index.d.mts +84 -148
  118. package/lib/composables/location.mjs.map +1 -1
  119. package/lib/directives/click-outside/index.mjs +3 -0
  120. package/lib/directives/click-outside/index.mjs.map +1 -1
  121. package/lib/entry-bundler.mjs +1 -1
  122. package/lib/framework.mjs +1 -1
  123. package/lib/index.d.mts +58 -58
  124. package/lib/labs/VCalendar/index.d.mts +146 -166
  125. package/lib/labs/VDateInput/index.d.mts +83 -62
  126. package/lib/labs/VNumberInput/index.d.mts +61 -88
  127. package/lib/labs/VPicker/index.d.mts +28 -46
  128. package/lib/labs/VPullToRefresh/index.d.mts +7 -15
  129. package/lib/labs/VSnackbarQueue/index.d.mts +311 -369
  130. package/lib/labs/VStepperVertical/index.d.mts +109 -184
  131. package/lib/labs/VTimePicker/index.d.mts +35 -53
  132. package/lib/labs/VTreeview/index.d.mts +200 -277
  133. package/lib/labs/components.d.mts +905 -1231
  134. package/lib/util/propsFactory.mjs.map +1 -1
  135. 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":"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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":[]}