@vuetify/nightly 3.10.9-dev.2025-11-05 → 3.10.9-dev.2025-11-08

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 (62) hide show
  1. package/CHANGELOG.md +7 -3
  2. package/dist/json/attributes.json +1165 -1113
  3. package/dist/json/importMap-labs.json +18 -18
  4. package/dist/json/importMap.json +166 -166
  5. package/dist/json/tags.json +14 -1
  6. package/dist/json/web-types.json +2215 -2091
  7. package/dist/vuetify-labs.cjs +79 -38
  8. package/dist/vuetify-labs.css +5133 -5126
  9. package/dist/vuetify-labs.d.ts +398 -133
  10. package/dist/vuetify-labs.esm.js +79 -38
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +79 -38
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +79 -38
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +2945 -2938
  17. package/dist/vuetify.d.ts +338 -113
  18. package/dist/vuetify.esm.js +79 -38
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +79 -38
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +23 -22
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.d.ts +33 -11
  26. package/lib/components/VBottomSheet/VBottomSheet.d.ts +25 -0
  27. package/lib/components/VBreadcrumbs/VBreadcrumbs.d.ts +13 -0
  28. package/lib/components/VBreadcrumbs/VBreadcrumbs.js +3 -2
  29. package/lib/components/VBreadcrumbs/VBreadcrumbs.js.map +1 -1
  30. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.d.ts +20 -0
  31. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js +7 -2
  32. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.js.map +1 -1
  33. package/lib/components/VCombobox/VCombobox.d.ts +33 -11
  34. package/lib/components/VDialog/VDialog.d.ts +52 -9
  35. package/lib/components/VInfiniteScroll/VInfiniteScroll.css +7 -0
  36. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +3 -1
  37. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  38. package/lib/components/VInfiniteScroll/VInfiniteScroll.sass +10 -0
  39. package/lib/components/VMenu/VMenu.d.ts +52 -9
  40. package/lib/components/VOverlay/VOverlay.d.ts +25 -0
  41. package/lib/components/VOverlay/locationStrategies.d.ts +12 -0
  42. package/lib/components/VOverlay/locationStrategies.js +10 -7
  43. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  44. package/lib/components/VSelect/VSelect.d.ts +51 -17
  45. package/lib/components/VSnackbar/VSnackbar.d.ts +27 -9
  46. package/lib/components/VSnackbar/VSnackbar.js +1 -1
  47. package/lib/components/VSnackbar/VSnackbar.js.map +1 -1
  48. package/lib/components/VSpeedDial/VSpeedDial.d.ts +25 -0
  49. package/lib/components/VTabs/VTab.d.ts +20 -0
  50. package/lib/components/VTabs/VTab.js +46 -17
  51. package/lib/components/VTabs/VTab.js.map +1 -1
  52. package/lib/components/VTabs/VTabs.d.ts +20 -0
  53. package/lib/components/VTabs/VTabs.js +9 -7
  54. package/lib/components/VTabs/VTabs.js.map +1 -1
  55. package/lib/components/VTooltip/VTooltip.d.ts +52 -9
  56. package/lib/entry-bundler.js +1 -1
  57. package/lib/framework.d.ts +90 -71
  58. package/lib/framework.js +1 -1
  59. package/lib/labs/VVideo/VVideo.d.ts +63 -21
  60. package/lib/labs/VVideo/VVideoControls.d.ts +30 -10
  61. package/lib/labs/VVideo/VVideoVolume.d.ts +30 -10
  62. package/package.json +1 -1
@@ -426,6 +426,7 @@ export declare const VSnackbar: {
426
426
  location: import("../../util/index.js").Anchor;
427
427
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
428
428
  stickToTarget: boolean;
429
+ viewportMargin: string | number;
429
430
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
430
431
  activatorProps: Record<string, any>;
431
432
  openOnClick: boolean;
@@ -476,6 +477,7 @@ export declare const VSnackbar: {
476
477
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
477
478
  offset?: string | number | number[] | undefined;
478
479
  stickToTarget: boolean;
480
+ viewportMargin: string | number;
479
481
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
480
482
  height?: string | number | undefined;
481
483
  maxHeight?: string | number | undefined;
@@ -523,7 +525,7 @@ export declare const VSnackbar: {
523
525
  "v-slot:default"?: false | ((arg: {
524
526
  isActive: Ref<boolean, boolean>;
525
527
  }) => import("vue").VNodeChild) | undefined;
526
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex">;
528
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex">;
527
529
  $attrs: {
528
530
  [x: string]: unknown;
529
531
  };
@@ -555,6 +557,7 @@ export declare const VSnackbar: {
555
557
  location: import("../../util/index.js").Anchor;
556
558
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
557
559
  stickToTarget: boolean;
560
+ viewportMargin: string | number;
558
561
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
559
562
  activatorProps: Record<string, any>;
560
563
  openOnHover: boolean;
@@ -655,6 +658,7 @@ export declare const VSnackbar: {
655
658
  location: import("../../util/index.js").Anchor;
656
659
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
657
660
  stickToTarget: boolean;
661
+ viewportMargin: string | number;
658
662
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
659
663
  activatorProps: Record<string, any>;
660
664
  openOnClick: boolean;
@@ -711,6 +715,7 @@ export declare const VSnackbar: {
711
715
  location: import("../../util/index.js").Anchor;
712
716
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
713
717
  stickToTarget: boolean;
718
+ viewportMargin: string | number;
714
719
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
715
720
  activatorProps: Record<string, any>;
716
721
  openOnClick: boolean;
@@ -734,6 +739,7 @@ export declare const VSnackbar: {
734
739
  location: import("../../util/index.js").Anchor;
735
740
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
736
741
  stickToTarget: boolean;
742
+ viewportMargin: string | number;
737
743
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
738
744
  activatorProps: Record<string, any>;
739
745
  openOnHover: boolean;
@@ -812,7 +818,7 @@ export declare const VSnackbar: {
812
818
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
813
819
  onKeydown?: ((e: KeyboardEvent) => any) | undefined;
814
820
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
815
- }, "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "rootEl" | "scrimEl" | "target" | "updateLocation" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex")> & import("vue").ShallowUnwrapRef<{
821
+ }, "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "rootEl" | "scrimEl" | "target" | "updateLocation" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex")> & import("vue").ShallowUnwrapRef<{
816
822
  activatorEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
817
823
  scrimEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
818
824
  target: import("vue").ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
@@ -822,7 +828,7 @@ export declare const VSnackbar: {
822
828
  globalTop: Readonly<Ref<boolean, boolean>>;
823
829
  localTop: Readonly<Ref<boolean, boolean>>;
824
830
  updateLocation: Ref<((e: Event) => void) | undefined, ((e: Event) => void) | undefined>;
825
- }> & {} & import("vue").ComponentCustomProperties & {}, "$children" | "activator" | "attach" | "class" | "closeDelay" | "contentClass" | "contentProps" | "height" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "offset" | "onAfterEnter" | "onAfterLeave" | "onClick:outside" | "onKeydown" | "onUpdate:modelValue" | "opacity" | "openDelay" | "target" | "theme" | "transition" | "v-slot:activator" | "v-slot:default" | "v-slots" | "width" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex") | keyof import("vue").VNodeProps>, `$${any}`> & {
831
+ }> & {} & import("vue").ComponentCustomProperties & {}, "$children" | "activator" | "attach" | "class" | "closeDelay" | "contentClass" | "contentProps" | "height" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "offset" | "onAfterEnter" | "onAfterLeave" | "onClick:outside" | "onKeydown" | "onUpdate:modelValue" | "opacity" | "openDelay" | "target" | "theme" | "transition" | "v-slot:activator" | "v-slot:default" | "v-slots" | "width" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex") | keyof import("vue").VNodeProps>, `$${any}`> & {
826
832
  _allExposed: {
827
833
  activatorEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
828
834
  scrimEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
@@ -981,6 +987,7 @@ export declare const VSnackbar: {
981
987
  location: import("../../util/index.js").Anchor;
982
988
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
983
989
  stickToTarget: boolean;
990
+ viewportMargin: string | number;
984
991
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
985
992
  activatorProps: Record<string, any>;
986
993
  openOnClick: boolean;
@@ -1031,6 +1038,7 @@ export declare const VSnackbar: {
1031
1038
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1032
1039
  offset?: string | number | number[] | undefined;
1033
1040
  stickToTarget: boolean;
1041
+ viewportMargin: string | number;
1034
1042
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1035
1043
  height?: string | number | undefined;
1036
1044
  maxHeight?: string | number | undefined;
@@ -1078,7 +1086,7 @@ export declare const VSnackbar: {
1078
1086
  "v-slot:default"?: false | ((arg: {
1079
1087
  isActive: Ref<boolean, boolean>;
1080
1088
  }) => import("vue").VNodeChild) | undefined;
1081
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex">;
1089
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex">;
1082
1090
  $attrs: {
1083
1091
  [x: string]: unknown;
1084
1092
  };
@@ -1110,6 +1118,7 @@ export declare const VSnackbar: {
1110
1118
  location: import("../../util/index.js").Anchor;
1111
1119
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1112
1120
  stickToTarget: boolean;
1121
+ viewportMargin: string | number;
1113
1122
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1114
1123
  activatorProps: Record<string, any>;
1115
1124
  openOnHover: boolean;
@@ -1210,6 +1219,7 @@ export declare const VSnackbar: {
1210
1219
  location: import("../../util/index.js").Anchor;
1211
1220
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1212
1221
  stickToTarget: boolean;
1222
+ viewportMargin: string | number;
1213
1223
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1214
1224
  activatorProps: Record<string, any>;
1215
1225
  openOnClick: boolean;
@@ -1266,6 +1276,7 @@ export declare const VSnackbar: {
1266
1276
  location: import("../../util/index.js").Anchor;
1267
1277
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1268
1278
  stickToTarget: boolean;
1279
+ viewportMargin: string | number;
1269
1280
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1270
1281
  activatorProps: Record<string, any>;
1271
1282
  openOnClick: boolean;
@@ -1289,6 +1300,7 @@ export declare const VSnackbar: {
1289
1300
  location: import("../../util/index.js").Anchor;
1290
1301
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1291
1302
  stickToTarget: boolean;
1303
+ viewportMargin: string | number;
1292
1304
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1293
1305
  activatorProps: Record<string, any>;
1294
1306
  openOnHover: boolean;
@@ -1367,7 +1379,7 @@ export declare const VSnackbar: {
1367
1379
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1368
1380
  onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1369
1381
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1370
- }, "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "rootEl" | "scrimEl" | "target" | "updateLocation" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex")> & import("vue").ShallowUnwrapRef<{
1382
+ }, "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "rootEl" | "scrimEl" | "target" | "updateLocation" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex")> & import("vue").ShallowUnwrapRef<{
1371
1383
  activatorEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
1372
1384
  scrimEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
1373
1385
  target: import("vue").ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
@@ -1377,7 +1389,7 @@ export declare const VSnackbar: {
1377
1389
  globalTop: Readonly<Ref<boolean, boolean>>;
1378
1390
  localTop: Readonly<Ref<boolean, boolean>>;
1379
1391
  updateLocation: Ref<((e: Event) => void) | undefined, ((e: Event) => void) | undefined>;
1380
- }> & {} & import("vue").ComponentCustomProperties & {}, "$children" | "activator" | "attach" | "class" | "closeDelay" | "contentClass" | "contentProps" | "height" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "offset" | "onAfterEnter" | "onAfterLeave" | "onClick:outside" | "onKeydown" | "onUpdate:modelValue" | "opacity" | "openDelay" | "target" | "theme" | "transition" | "v-slot:activator" | "v-slot:default" | "v-slots" | "width" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex") | keyof import("vue").VNodeProps>, `$${any}`> & {
1392
+ }> & {} & import("vue").ComponentCustomProperties & {}, "$children" | "activator" | "attach" | "class" | "closeDelay" | "contentClass" | "contentProps" | "height" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "offset" | "onAfterEnter" | "onAfterLeave" | "onClick:outside" | "onKeydown" | "onUpdate:modelValue" | "opacity" | "openDelay" | "target" | "theme" | "transition" | "v-slot:activator" | "v-slot:default" | "v-slots" | "width" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex") | keyof import("vue").VNodeProps>, `$${any}`> & {
1381
1393
  _allExposed: {
1382
1394
  activatorEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
1383
1395
  scrimEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
@@ -1513,6 +1525,7 @@ export declare const VSnackbar: {
1513
1525
  location: import("../../util/index.js").Anchor;
1514
1526
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1515
1527
  stickToTarget: boolean;
1528
+ viewportMargin: string | number;
1516
1529
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1517
1530
  activatorProps: Record<string, any>;
1518
1531
  openOnClick: boolean;
@@ -1563,6 +1576,7 @@ export declare const VSnackbar: {
1563
1576
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1564
1577
  offset?: string | number | number[] | undefined;
1565
1578
  stickToTarget: boolean;
1579
+ viewportMargin: string | number;
1566
1580
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1567
1581
  height?: string | number | undefined;
1568
1582
  maxHeight?: string | number | undefined;
@@ -1610,7 +1624,7 @@ export declare const VSnackbar: {
1610
1624
  "v-slot:default"?: false | ((arg: {
1611
1625
  isActive: Ref<boolean, boolean>;
1612
1626
  }) => import("vue").VNodeChild) | undefined;
1613
- } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex">;
1627
+ } & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, "_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex">;
1614
1628
  $attrs: {
1615
1629
  [x: string]: unknown;
1616
1630
  };
@@ -1642,6 +1656,7 @@ export declare const VSnackbar: {
1642
1656
  location: import("../../util/index.js").Anchor;
1643
1657
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1644
1658
  stickToTarget: boolean;
1659
+ viewportMargin: string | number;
1645
1660
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1646
1661
  activatorProps: Record<string, any>;
1647
1662
  openOnHover: boolean;
@@ -1742,6 +1757,7 @@ export declare const VSnackbar: {
1742
1757
  location: import("../../util/index.js").Anchor;
1743
1758
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1744
1759
  stickToTarget: boolean;
1760
+ viewportMargin: string | number;
1745
1761
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1746
1762
  activatorProps: Record<string, any>;
1747
1763
  openOnClick: boolean;
@@ -1798,6 +1814,7 @@ export declare const VSnackbar: {
1798
1814
  location: import("../../util/index.js").Anchor;
1799
1815
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1800
1816
  stickToTarget: boolean;
1817
+ viewportMargin: string | number;
1801
1818
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1802
1819
  activatorProps: Record<string, any>;
1803
1820
  openOnClick: boolean;
@@ -1821,6 +1838,7 @@ export declare const VSnackbar: {
1821
1838
  location: import("../../util/index.js").Anchor;
1822
1839
  origin: "auto" | "overlap" | import("../../util/index.js").Anchor;
1823
1840
  stickToTarget: boolean;
1841
+ viewportMargin: string | number;
1824
1842
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1825
1843
  activatorProps: Record<string, any>;
1826
1844
  openOnHover: boolean;
@@ -1899,7 +1917,7 @@ export declare const VSnackbar: {
1899
1917
  "onClick:outside"?: ((e: MouseEvent) => any) | undefined;
1900
1918
  onKeydown?: ((e: KeyboardEvent) => any) | undefined;
1901
1919
  "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
1902
- }, "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "rootEl" | "scrimEl" | "target" | "updateLocation" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex")> & import("vue").ShallowUnwrapRef<{
1920
+ }, "activatorEl" | "animateClick" | "contentEl" | "globalTop" | "localTop" | "rootEl" | "scrimEl" | "target" | "updateLocation" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex")> & import("vue").ShallowUnwrapRef<{
1903
1921
  activatorEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
1904
1922
  scrimEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
1905
1923
  target: import("vue").ComputedRef<HTMLElement | [x: number, y: number] | undefined>;
@@ -1909,7 +1927,7 @@ export declare const VSnackbar: {
1909
1927
  globalTop: Readonly<Ref<boolean, boolean>>;
1910
1928
  localTop: Readonly<Ref<boolean, boolean>>;
1911
1929
  updateLocation: Ref<((e: Event) => void) | undefined, ((e: Event) => void) | undefined>;
1912
- }> & {} & import("vue").ComponentCustomProperties & {}, "$children" | "activator" | "attach" | "class" | "closeDelay" | "contentClass" | "contentProps" | "height" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "offset" | "onAfterEnter" | "onAfterLeave" | "onClick:outside" | "onKeydown" | "onUpdate:modelValue" | "opacity" | "openDelay" | "target" | "theme" | "transition" | "v-slot:activator" | "v-slot:default" | "v-slots" | "width" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "zIndex") | keyof import("vue").VNodeProps>, `$${any}`> & {
1930
+ }> & {} & import("vue").ComponentCustomProperties & {}, "$children" | "activator" | "attach" | "class" | "closeDelay" | "contentClass" | "contentProps" | "height" | "maxHeight" | "maxWidth" | "minHeight" | "minWidth" | "offset" | "onAfterEnter" | "onAfterLeave" | "onClick:outside" | "onKeydown" | "onUpdate:modelValue" | "opacity" | "openDelay" | "target" | "theme" | "transition" | "v-slot:activator" | "v-slot:default" | "v-slots" | "width" | ("_disableGlobalStack" | "absolute" | "activatorProps" | "closeOnBack" | "closeOnContentClick" | "contained" | "disabled" | "eager" | "location" | "locationStrategy" | "modelValue" | "noClickAnimation" | "openOnClick" | "openOnFocus" | "openOnHover" | "origin" | "persistent" | "scrim" | "scrollStrategy" | "stickToTarget" | "style" | "viewportMargin" | "zIndex") | keyof import("vue").VNodeProps>, `$${any}`> & {
1913
1931
  _allExposed: {
1914
1932
  activatorEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
1915
1933
  scrimEl: Ref<HTMLElement | undefined, HTMLElement | undefined>;
@@ -71,7 +71,7 @@ export const makeVSnackbarProps = propsFactory({
71
71
  ...makeThemeProps(),
72
72
  ...omit(makeVOverlayProps({
73
73
  transition: 'v-snackbar-transition'
74
- }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget'])
74
+ }), ['persistent', 'noClickAnimation', 'scrim', 'scrollStrategy', 'stickToTarget', 'viewportMargin'])
75
75
  }, 'VSnackbar');
76
76
  export const VSnackbar = genericComponent()({
77
77
  name: 'VSnackbar',
@@ -1 +1 @@
1
- {"version":3,"file":"VSnackbar.js","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","_createElementVNode","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 /* @deprecated */\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', 'stickToTarget']),\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 modelValue={ 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.js","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","_createElementVNode","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 /* @deprecated */\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 }), [\n 'persistent',\n 'noClickAnimation',\n 'scrim',\n 'scrollStrategy',\n 'stickToTarget',\n 'viewportMargin',\n ]),\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 modelValue={ 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,uCAExB;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,wCAElD;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,+BAEpE;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;EAC7C;EACA2B,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,CACF,YAAY,EACZ,kBAAkB,EAClB,OAAO,EACP,gBAAgB,EAChB,eAAe,EACf,gBAAgB,CACjB;AACH,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,SAASmE,YAAYA,CAAA,EAAI;MACvB,IAAIpB,UAAU,CAAC/C,KAAK,EAAE2D,cAAc,CAAC,CAAC;IACxC;IAEA,MAAMS,eAAe,GAAG1F,QAAQ,CAAC,MAAM;MACrC,OAAOoD,KAAK,CAACJ,QAAQ,CAAC2C,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;IAEF/E,SAAS,CAAC,MAAM;MACd,MAAMiF,YAAY,GAAGlH,QAAQ,CAACmH,WAAW,CAAC5C,KAAK,CAAC;MAChD,MAAM6C,UAAU,GAAG,CAAC,EAAExC,KAAK,CAACX,OAAO,IAAIW,KAAK,CAAChB,IAAI,IAAIW,KAAK,CAACX,IAAI,CAAC;MAEhE,OAAAyD,YAAA,CAAArH,QAAA,EAAAsH,WAAA;QAAA,OAEUhC,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,EACD2C,eAAe,CAACpE,KAAK,EACrBqC,eAAe,CAACrC,KAAK,EACrB8B,KAAK,CAACgD,KAAK,CACZ;QAAA,SACM,CACL7B,UAAU,CAACjD,KAAK,EAChB8B,KAAK,CAAC3B,KAAK;MACZ,GACIsE,YAAY;QAAA,cACPrC,QAAQ,CAACpC,KAAK;QAAA,uBAAA+E,MAAA,IAAd3C,QAAQ,CAACpC,KAAK,GAAA+E,MAAA;QAAA,gBACTnG,UAAU,CAAC;UACxBkG,KAAK,EAAE,CACL,qBAAqB,EACrBvC,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,EAAEc,YAAY,CAACO,YAAY,CAAC;QAAA;QAAA;QAAA,SAGrB,KAAK;QAAA;QAAA;QAAA,uBAGSpB,YAAY;QAAA,cACrBI,UAAU;QAAA,gBACRG;MAAY,GACtB7B,OAAO;QAAAd,OAAA,EAAAA,CAAA,MAGVjD,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,EAEhCuD,KAAK,CAAClC,KAAK,IAAI,CAACmD,UAAU,CAAC/C,KAAK,IAAAiF,mBAAA;UAAA;UAAA;QAAA,IAAAL,YAAA,CAAAnH,eAAA;UAAA,OAGtBqF,QAAQ;UAAA,SACN,OAAOhB,KAAK,CAAClC,KAAK,KAAK,QAAQ,GAAGkC,KAAK,CAAClC,KAAK,GAAG,MAAM;UAAA,OACxDkC,KAAK,CAACT,OAAO;UAAA,cACNuB,SAAS,CAACjD,IAAI,CAACK;QAAK,UAGtC,EAEC2E,UAAU,IAAAM,mBAAA;UAAA;UAAA;UAAA;UAAA;QAAA,IAON9C,KAAK,CAAChB,IAAI,GAAG,CAAC,IAAIW,KAAK,CAACX,IAAI,EAE5BgB,KAAK,CAACX,OAAO,GAAG,CAAC,EAEtB,EAECW,KAAK,CAAC+C,OAAO,IAAAN,YAAA,CAAAtH,iBAAA;UAAA,YAED;YACR6H,IAAI,EAAE;cACJC,OAAO,EAAE,MAAM;cACfC,MAAM,EAAE,KAAK;cACbC,IAAI,EAAE;YACR;UACF;QAAC;UAAA9D,OAAA,EAAAA,CAAA,MAAAyD,mBAAA;YAAA;UAAA,IAGG9C,KAAK,CAAC+C,OAAO,CAAC;YAAE9C;UAAS,CAAC,CAAC;QAAA,EAGlC;QA1CUmD,SAAS,EAAEpD,KAAK,CAACoD;MAAS;IA6C3C,CAAC,CAAC;IAEF,OAAO5H,WAAW,CAAC,CAAC,CAAC,EAAEkF,OAAO,CAAC;EACjC;AACF,CAAC,CAAC","ignoreList":[]}
@@ -10,6 +10,7 @@ export declare const makeVSpeedDialProps: <Defaults extends {
10
10
  origin?: unknown;
11
11
  offset?: unknown;
12
12
  stickToTarget?: unknown;
13
+ viewportMargin?: unknown;
13
14
  scrollStrategy?: unknown;
14
15
  height?: unknown;
15
16
  maxHeight?: unknown;
@@ -126,6 +127,16 @@ export declare const makeVSpeedDialProps: <Defaults extends {
126
127
  type: import("vue").PropType<unknown extends Defaults["stickToTarget"] ? boolean : boolean | Defaults["stickToTarget"]>;
127
128
  default: unknown extends Defaults["stickToTarget"] ? boolean : boolean | Defaults["stickToTarget"];
128
129
  };
130
+ viewportMargin: unknown extends Defaults["viewportMargin"] ? {
131
+ type: (NumberConstructor | StringConstructor)[];
132
+ default: number;
133
+ } : Omit<{
134
+ type: (NumberConstructor | StringConstructor)[];
135
+ default: number;
136
+ }, "default" | "type"> & {
137
+ type: import("vue").PropType<unknown extends Defaults["viewportMargin"] ? string | number : string | number | Defaults["viewportMargin"]>;
138
+ default: unknown extends Defaults["viewportMargin"] ? string | number : Defaults["viewportMargin"] | NonNullable<string | number>;
139
+ };
129
140
  scrollStrategy: unknown extends Defaults["scrollStrategy"] ? Omit<{
130
141
  type: import("vue").PropType<"block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction>;
131
142
  default: string;
@@ -1175,6 +1186,7 @@ export declare const VSpeedDial: {
1175
1186
  origin: "auto" | "overlap" | Anchor;
1176
1187
  offset: string | number | number[];
1177
1188
  stickToTarget: boolean;
1189
+ viewportMargin: string | number;
1178
1190
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1179
1191
  minWidth: string | number;
1180
1192
  closeDelay: string | number;
@@ -1323,6 +1335,7 @@ export declare const VSpeedDial: {
1323
1335
  origin: "auto" | "overlap" | Anchor;
1324
1336
  offset: string | number | number[] | undefined;
1325
1337
  stickToTarget: boolean;
1338
+ viewportMargin: string | number;
1326
1339
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1327
1340
  minWidth: string | number;
1328
1341
  closeDelay: string | number;
@@ -1438,6 +1451,7 @@ export declare const VSpeedDial: {
1438
1451
  origin: "auto" | "overlap" | Anchor;
1439
1452
  offset: string | number | number[];
1440
1453
  stickToTarget: boolean;
1454
+ viewportMargin: string | number;
1441
1455
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1442
1456
  minWidth: string | number;
1443
1457
  closeDelay: string | number;
@@ -1584,6 +1598,7 @@ export declare const VSpeedDial: {
1584
1598
  origin: "auto" | "overlap" | Anchor;
1585
1599
  offset: string | number | number[] | undefined;
1586
1600
  stickToTarget: boolean;
1601
+ viewportMargin: string | number;
1587
1602
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1588
1603
  minWidth: string | number;
1589
1604
  closeDelay: string | number;
@@ -1683,6 +1698,7 @@ export declare const VSpeedDial: {
1683
1698
  origin: "auto" | "overlap" | Anchor;
1684
1699
  offset: string | number | number[];
1685
1700
  stickToTarget: boolean;
1701
+ viewportMargin: string | number;
1686
1702
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1687
1703
  minWidth: string | number;
1688
1704
  closeDelay: string | number;
@@ -1831,6 +1847,7 @@ export declare const VSpeedDial: {
1831
1847
  origin: "auto" | "overlap" | Anchor;
1832
1848
  offset: string | number | number[] | undefined;
1833
1849
  stickToTarget: boolean;
1850
+ viewportMargin: string | number;
1834
1851
  scrollStrategy: "block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction;
1835
1852
  minWidth: string | number;
1836
1853
  closeDelay: string | number;
@@ -1966,6 +1983,10 @@ export declare const VSpeedDial: {
1966
1983
  default: NonNullable<string | number | number[] | undefined>;
1967
1984
  };
1968
1985
  stickToTarget: BooleanConstructor;
1986
+ viewportMargin: {
1987
+ type: (NumberConstructor | StringConstructor)[];
1988
+ default: number;
1989
+ };
1969
1990
  scrollStrategy: Omit<{
1970
1991
  type: import("vue").PropType<"block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction>;
1971
1992
  default: string;
@@ -2353,6 +2374,10 @@ export declare const VSpeedDial: {
2353
2374
  default: NonNullable<string | number | number[] | undefined>;
2354
2375
  };
2355
2376
  stickToTarget: BooleanConstructor;
2377
+ viewportMargin: {
2378
+ type: (NumberConstructor | StringConstructor)[];
2379
+ default: number;
2380
+ };
2356
2381
  scrollStrategy: Omit<{
2357
2382
  type: import("vue").PropType<"block" | "close" | "none" | "reposition" | import("../../types.js").ScrollStrategyFunction>;
2358
2383
  default: string;
@@ -42,6 +42,8 @@ export declare const makeVTabProps: <Defaults extends {
42
42
  text?: unknown;
43
43
  fixed?: unknown;
44
44
  sliderColor?: unknown;
45
+ sliderTransition?: unknown;
46
+ sliderTransitionDuration?: unknown;
45
47
  hideSlider?: unknown;
46
48
  direction?: unknown;
47
49
  } = {}>(defaults?: Defaults | undefined) => {
@@ -301,6 +303,14 @@ export declare const makeVTabProps: <Defaults extends {
301
303
  type: PropType<unknown extends Defaults["sliderColor"] ? string : string | Defaults["sliderColor"]>;
302
304
  default: unknown extends Defaults["sliderColor"] ? string : string | Defaults["sliderColor"];
303
305
  };
306
+ sliderTransition: unknown extends Defaults["sliderTransition"] ? PropType<"fade" | "grow" | "shift"> : {
307
+ type: PropType<unknown extends Defaults["sliderTransition"] ? "fade" | "grow" | "shift" : "fade" | "grow" | "shift" | Defaults["sliderTransition"]>;
308
+ default: unknown extends Defaults["sliderTransition"] ? "fade" | "grow" | "shift" : Defaults["sliderTransition"] | NonNullable<"fade" | "grow" | "shift">;
309
+ };
310
+ sliderTransitionDuration: unknown extends Defaults["sliderTransitionDuration"] ? (NumberConstructor | StringConstructor)[] : {
311
+ type: PropType<unknown extends Defaults["sliderTransitionDuration"] ? string | number : string | number | Defaults["sliderTransitionDuration"]>;
312
+ default: unknown extends Defaults["sliderTransitionDuration"] ? string | number : Defaults["sliderTransitionDuration"] | NonNullable<string | number>;
313
+ };
304
314
  hideSlider: unknown extends Defaults["hideSlider"] ? BooleanConstructor : {
305
315
  type: PropType<unknown extends Defaults["hideSlider"] ? boolean : boolean | Defaults["hideSlider"]>;
306
316
  default: unknown extends Defaults["hideSlider"] ? boolean : boolean | Defaults["hideSlider"];
@@ -363,6 +373,8 @@ export declare const VTab: {
363
373
  spaced?: "both" | "end" | "start" | undefined;
364
374
  text?: string | number | boolean | undefined;
365
375
  sliderColor?: string | undefined;
376
+ sliderTransition?: "fade" | "grow" | "shift" | undefined;
377
+ sliderTransitionDuration?: string | number | undefined;
366
378
  } & {
367
379
  $children?: {
368
380
  default?: (() => import("vue").VNodeChild) | undefined;
@@ -829,6 +841,8 @@ export declare const VTab: {
829
841
  spaced?: "both" | "end" | "start" | undefined;
830
842
  text?: string | number | boolean | undefined;
831
843
  sliderColor?: string | undefined;
844
+ sliderTransition?: "fade" | "grow" | "shift" | undefined;
845
+ sliderTransitionDuration?: string | number | undefined;
832
846
  } & {
833
847
  $children?: {
834
848
  default?: (() => import("vue").VNodeChild) | undefined;
@@ -1279,6 +1293,8 @@ export declare const VTab: {
1279
1293
  spaced?: "both" | "end" | "start" | undefined;
1280
1294
  text?: string | number | boolean | undefined;
1281
1295
  sliderColor?: string | undefined;
1296
+ sliderTransition?: "fade" | "grow" | "shift" | undefined;
1297
+ sliderTransitionDuration?: string | number | undefined;
1282
1298
  } & {
1283
1299
  $children?: {
1284
1300
  default?: (() => import("vue").VNodeChild) | undefined;
@@ -1776,6 +1792,8 @@ export declare const VTab: {
1776
1792
  };
1777
1793
  fixed: BooleanConstructor;
1778
1794
  sliderColor: StringConstructor;
1795
+ sliderTransition: PropType<"fade" | "grow" | "shift">;
1796
+ sliderTransitionDuration: (NumberConstructor | StringConstructor)[];
1779
1797
  hideSlider: BooleanConstructor;
1780
1798
  direction: {
1781
1799
  type: PropType<"horizontal" | "vertical">;
@@ -1865,6 +1883,8 @@ export declare const VTab: {
1865
1883
  };
1866
1884
  fixed: BooleanConstructor;
1867
1885
  sliderColor: StringConstructor;
1886
+ sliderTransition: PropType<"fade" | "grow" | "shift">;
1887
+ sliderTransitionDuration: (NumberConstructor | StringConstructor)[];
1868
1888
  hideSlider: BooleanConstructor;
1869
1889
  direction: {
1870
1890
  type: PropType<"horizontal" | "vertical">;
@@ -12,6 +12,8 @@ import { animate, genericComponent, omit, propsFactory, standardEasing, useRende
12
12
  export const makeVTabProps = propsFactory({
13
13
  fixed: Boolean,
14
14
  sliderColor: String,
15
+ sliderTransition: String,
16
+ sliderTransitionDuration: [String, Number],
15
17
  hideSlider: Boolean,
16
18
  direction: {
17
19
  type: String,
@@ -38,6 +40,38 @@ export const VTab = genericComponent()({
38
40
  const sliderEl = ref();
39
41
  const isHorizontal = computed(() => props.direction === 'horizontal');
40
42
  const isSelected = computed(() => rootEl.value?.group?.isSelected.value ?? false);
43
+ function fade(nextEl, prevEl) {
44
+ return {
45
+ opacity: [0, 1]
46
+ };
47
+ }
48
+ function grow(nextEl, prevEl) {
49
+ return props.direction === 'vertical' ? {
50
+ transform: ['scaleY(0)', 'scaleY(1)']
51
+ } : {
52
+ transform: ['scaleX(0)', 'scaleX(1)']
53
+ };
54
+ }
55
+ function shift(nextEl, prevEl) {
56
+ const prevBox = prevEl.getBoundingClientRect();
57
+ const nextBox = nextEl.getBoundingClientRect();
58
+ const xy = isHorizontal.value ? 'x' : 'y';
59
+ const XY = isHorizontal.value ? 'X' : 'Y';
60
+ const rightBottom = isHorizontal.value ? 'right' : 'bottom';
61
+ const widthHeight = isHorizontal.value ? 'width' : 'height';
62
+ const prevPos = prevBox[xy];
63
+ const nextPos = nextBox[xy];
64
+ const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];
65
+ const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';
66
+ const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);
67
+ const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;
68
+ const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;
69
+ const sigma = 1.5;
70
+ return {
71
+ transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
72
+ transformOrigin: Array(3).fill(origin)
73
+ };
74
+ }
41
75
  function updateSlider(_ref2) {
42
76
  let {
43
77
  value
@@ -47,26 +81,21 @@ export const VTab = genericComponent()({
47
81
  const nextEl = sliderEl.value;
48
82
  if (!prevEl || !nextEl) return;
49
83
  const color = getComputedStyle(prevEl).color;
50
- const prevBox = prevEl.getBoundingClientRect();
51
- const nextBox = nextEl.getBoundingClientRect();
52
- const xy = isHorizontal.value ? 'x' : 'y';
53
- const XY = isHorizontal.value ? 'X' : 'Y';
54
- const rightBottom = isHorizontal.value ? 'right' : 'bottom';
55
- const widthHeight = isHorizontal.value ? 'width' : 'height';
56
- const prevPos = prevBox[xy];
57
- const nextPos = nextBox[xy];
58
- const delta = prevPos > nextPos ? prevBox[rightBottom] - nextBox[rightBottom] : prevBox[xy] - nextBox[xy];
59
- const origin = Math.sign(delta) > 0 ? isHorizontal.value ? 'right' : 'bottom' : Math.sign(delta) < 0 ? isHorizontal.value ? 'left' : 'top' : 'center';
60
- const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight]);
61
- const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight]) || 0;
62
- const initialScale = prevBox[widthHeight] / nextBox[widthHeight] || 0;
63
- const sigma = 1.5;
84
+ const keyframes = {
85
+ fade,
86
+ grow,
87
+ shift
88
+ }[props.sliderTransition ?? 'shift'] ?? shift;
89
+ const duration = Number(props.sliderTransitionDuration) || ({
90
+ fade: 400,
91
+ grow: 350,
92
+ shift: 225
93
+ }[props.sliderTransition ?? 'shift'] ?? 225);
64
94
  animate(nextEl, {
65
95
  backgroundColor: [color, 'currentcolor'],
66
- transform: [`translate${XY}(${delta}px) scale${XY}(${initialScale})`, `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`, 'none'],
67
- transformOrigin: Array(3).fill(origin)
96
+ ...keyframes(nextEl, prevEl)
68
97
  }, {
69
- duration: 225,
98
+ duration,
70
99
  easing: standardEasing
71
100
  });
72
101
  }