@vuetify/nightly 3.7.0-beta.1-dev.2024-07-30 → 3.7.0-beta.1-dev.2024-08-01

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 (120) hide show
  1. package/dist/json/attributes.json +9 -5
  2. package/dist/json/importMap-labs.json +24 -24
  3. package/dist/json/importMap.json +128 -128
  4. package/dist/json/tags.json +1 -0
  5. package/dist/json/web-types.json +24 -13
  6. package/dist/vuetify-labs.css +2796 -2073
  7. package/dist/vuetify-labs.d.ts +29 -11
  8. package/dist/vuetify-labs.esm.js +98 -67
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +98 -67
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1806 -1083
  13. package/dist/vuetify.d.ts +47 -47
  14. package/dist/vuetify.esm.js +35 -29
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +35 -29
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +13 -12
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/VAlert.css +5 -1
  22. package/lib/components/VAutocomplete/VAutocomplete.css +4 -0
  23. package/lib/components/VAvatar/VAvatar.css +8 -4
  24. package/lib/components/VAvatar/VAvatar.mjs +1 -1
  25. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  26. package/lib/components/VBadge/VBadge.css +2 -0
  27. package/lib/components/VBanner/VBanner.css +12 -4
  28. package/lib/components/VBottomNavigation/VBottomNavigation.css +11 -3
  29. package/lib/components/VBottomSheet/VBottomSheet.css +2 -0
  30. package/lib/components/VBtn/VBtn.css +16 -9
  31. package/lib/components/VBtn/VBtn.mjs +1 -1
  32. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  33. package/lib/components/VBtn/VBtn.sass +4 -4
  34. package/lib/components/VBtnGroup/VBtnGroup.css +12 -4
  35. package/lib/components/VCard/VCard.css +9 -1
  36. package/lib/components/VCarousel/VCarousel.css +2 -0
  37. package/lib/components/VChip/VChip.css +15 -9
  38. package/lib/components/VChip/VChip.sass +1 -1
  39. package/lib/components/VColorPicker/VColorPicker.css +2 -0
  40. package/lib/components/VColorPicker/VColorPicker.sass +4 -4
  41. package/lib/components/VColorPicker/VColorPickerPreview.sass +4 -4
  42. package/lib/components/VCombobox/VCombobox.css +4 -0
  43. package/lib/components/VDialog/VDialog.css +5 -0
  44. package/lib/components/VDivider/VDivider.css +2 -0
  45. package/lib/components/VExpansionPanel/VExpansionPanel.css +11 -5
  46. package/lib/components/VExpansionPanel/VExpansionPanel.sass +3 -3
  47. package/lib/components/VField/VField.css +13 -1
  48. package/lib/components/VField/VField.sass +5 -8
  49. package/lib/components/VFooter/VFooter.css +12 -4
  50. package/lib/components/VFooter/VFooter.mjs +20 -14
  51. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  52. package/lib/components/VFooter/index.d.mts +3 -3
  53. package/lib/components/VGrid/VGrid.sass +1 -1
  54. package/lib/components/VGrid/_mixins.sass +4 -4
  55. package/lib/components/VImg/VImg.css +6 -0
  56. package/lib/components/VKbd/VKbd.css +2 -0
  57. package/lib/components/VList/VList.css +12 -4
  58. package/lib/components/VList/VListItem.css +21 -11
  59. package/lib/components/VList/VListItem.sass +1 -1
  60. package/lib/components/VMain/VMain.css +2 -0
  61. package/lib/components/VMenu/VMenu.css +6 -0
  62. package/lib/components/VMenu/VMenu.mjs +1 -1
  63. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  64. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +9 -3
  65. package/lib/components/VOtpInput/VOtpInput.css +3 -1
  66. package/lib/components/VOtpInput/VOtpInput.sass +1 -2
  67. package/lib/components/VOverflowBtn/VOverflowBtn.sass +1 -1
  68. package/lib/components/VSelect/VSelect.css +4 -0
  69. package/lib/components/VSelectionControl/VSelectionControl.css +6 -4
  70. package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
  71. package/lib/components/VSheet/VSheet.css +12 -4
  72. package/lib/components/VSkeletonLoader/VSkeletonLoader.css +6 -4
  73. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +9 -8
  74. package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  75. package/lib/components/VSkeletonLoader/VSkeletonLoader.sass +1 -2
  76. package/lib/components/VSlider/VSliderThumb.sass +2 -2
  77. package/lib/components/VSnackbar/VSnackbar.css +2 -0
  78. package/lib/components/VSnackbar/VSnackbar.mjs +4 -4
  79. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  80. package/lib/components/VStepper/VStepper.css +8 -2
  81. package/lib/components/VStepper/VStepper.sass +2 -4
  82. package/lib/components/VStepper/VStepperItem.css +4 -1
  83. package/lib/components/VStepper/VStepperItem.sass +1 -1
  84. package/lib/components/VSwitch/VSwitch.css +2 -0
  85. package/lib/components/VSwitch/VSwitch.sass +10 -10
  86. package/lib/components/VSystemBar/VSystemBar.css +14 -8
  87. package/lib/components/VTable/VTable.css +8 -4
  88. package/lib/components/VTable/VTable.sass +2 -3
  89. package/lib/components/VTimeline/VTimeline.css +2 -0
  90. package/lib/components/VToolbar/VToolbar.css +21 -7
  91. package/lib/components/VToolbar/VToolbar.sass +1 -2
  92. package/lib/components/VTreeview/VTreeview.sass +9 -9
  93. package/lib/components/index.d.mts +3 -3
  94. package/lib/entry-bundler.mjs +1 -1
  95. package/lib/framework.mjs +1 -1
  96. package/lib/index.d.mts +44 -44
  97. package/lib/labs/VNumberInput/VNumberInput.mjs +60 -36
  98. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  99. package/lib/labs/VNumberInput/index.d.mts +17 -8
  100. package/lib/labs/VPicker/VPicker.css +6 -2
  101. package/lib/labs/VPicker/VPicker.sass +2 -3
  102. package/lib/labs/VPullToRefresh/VPullToRefresh.mjs +4 -3
  103. package/lib/labs/VPullToRefresh/VPullToRefresh.mjs.map +1 -1
  104. package/lib/labs/VPullToRefresh/index.d.mts +9 -0
  105. package/lib/labs/components.d.mts +26 -8
  106. package/lib/styles/generic/_colors.scss +9 -3
  107. package/lib/styles/main.css +520 -0
  108. package/lib/styles/tools/_absolute.sass +8 -7
  109. package/lib/styles/tools/_border.sass +4 -3
  110. package/lib/styles/tools/_display.sass +8 -7
  111. package/lib/styles/tools/_elevation.sass +4 -2
  112. package/lib/styles/tools/_index.sass +0 -1
  113. package/lib/styles/tools/_radius.sass +6 -5
  114. package/lib/styles/tools/_rounded.sass +2 -1
  115. package/lib/styles/tools/_theme.sass +3 -2
  116. package/lib/styles/tools/_typography.sass +6 -5
  117. package/lib/styles/tools/_utilities.sass +5 -5
  118. package/lib/styles/utilities/_index.sass +7 -7
  119. package/package.json +1 -1
  120. package/lib/styles/tools/_sheet.sass +0 -14
@@ -36223,7 +36223,7 @@ declare const VFooter: {
36223
36223
  } | undefined;
36224
36224
  } & {
36225
36225
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
36226
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
36226
+ }, any, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
36227
36227
  absolute: boolean;
36228
36228
  height: string | number;
36229
36229
  order: string | number;
@@ -36293,7 +36293,7 @@ declare const VFooter: {
36293
36293
  } | undefined;
36294
36294
  } & {
36295
36295
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
36296
- }, {}, {}, {}, {}, {
36296
+ }, any, {}, {}, {}, {
36297
36297
  absolute: boolean;
36298
36298
  height: string | number;
36299
36299
  order: string | number;
@@ -36331,7 +36331,7 @@ declare const VFooter: {
36331
36331
  } | undefined;
36332
36332
  } & {
36333
36333
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
36334
- }, {}, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
36334
+ }, any, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, Record<string, any>, string, {
36335
36335
  absolute: boolean;
36336
36336
  height: string | number;
36337
36337
  order: string | number;
@@ -75788,6 +75788,7 @@ declare const VNumberInput: {
75788
75788
  errorMessages: string | readonly string[] | null;
75789
75789
  maxErrors: string | number;
75790
75790
  rules: readonly ValidationRule$1[];
75791
+ modelValue: Number | null;
75791
75792
  tile: boolean;
75792
75793
  density: Density;
75793
75794
  clearIcon: IconValue;
@@ -75817,7 +75818,6 @@ declare const VNumberInput: {
75817
75818
  theme?: string | undefined;
75818
75819
  counter?: string | number | boolean | undefined;
75819
75820
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
75820
- modelValue?: any;
75821
75821
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
75822
75822
  validationValue?: any;
75823
75823
  rounded?: string | number | boolean | undefined;
@@ -75896,7 +75896,7 @@ declare const VNumberInput: {
75896
75896
  } & {
75897
75897
  "onUpdate:modelValue"?: ((val: number) => any) | undefined;
75898
75898
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
75899
- 'update:modelValue': (val: number) => true;
75899
+ 'update:modelValue': (val: number) => boolean;
75900
75900
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
75901
75901
  flat: boolean;
75902
75902
  reverse: boolean;
@@ -75918,6 +75918,7 @@ declare const VNumberInput: {
75918
75918
  errorMessages: string | readonly string[] | null;
75919
75919
  maxErrors: string | number;
75920
75920
  rules: readonly ValidationRule$1[];
75921
+ modelValue: Number | null;
75921
75922
  tile: boolean;
75922
75923
  density: Density;
75923
75924
  clearIcon: IconValue;
@@ -75947,7 +75948,6 @@ declare const VNumberInput: {
75947
75948
  theme?: string | undefined;
75948
75949
  counter?: string | number | boolean | undefined;
75949
75950
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
75950
- modelValue?: any;
75951
75951
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
75952
75952
  validationValue?: any;
75953
75953
  rounded?: string | number | boolean | undefined;
@@ -76046,6 +76046,7 @@ declare const VNumberInput: {
76046
76046
  errorMessages: string | readonly string[] | null;
76047
76047
  maxErrors: string | number;
76048
76048
  rules: readonly ValidationRule$1[];
76049
+ modelValue: Number | null;
76049
76050
  rounded: string | number | boolean;
76050
76051
  tile: boolean;
76051
76052
  density: Density;
@@ -76131,6 +76132,7 @@ declare const VNumberInput: {
76131
76132
  errorMessages: string | readonly string[] | null;
76132
76133
  maxErrors: string | number;
76133
76134
  rules: readonly ValidationRule$1[];
76135
+ modelValue: Number | null;
76134
76136
  tile: boolean;
76135
76137
  density: Density;
76136
76138
  clearIcon: IconValue;
@@ -76160,7 +76162,6 @@ declare const VNumberInput: {
76160
76162
  theme?: string | undefined;
76161
76163
  counter?: string | number | boolean | undefined;
76162
76164
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
76163
- modelValue?: any;
76164
76165
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
76165
76166
  validationValue?: any;
76166
76167
  rounded?: string | number | boolean | undefined;
@@ -76259,6 +76260,7 @@ declare const VNumberInput: {
76259
76260
  errorMessages: string | readonly string[] | null;
76260
76261
  maxErrors: string | number;
76261
76262
  rules: readonly ValidationRule$1[];
76263
+ modelValue: Number | null;
76262
76264
  rounded: string | number | boolean;
76263
76265
  tile: boolean;
76264
76266
  density: Density;
@@ -76299,6 +76301,7 @@ declare const VNumberInput: {
76299
76301
  errorMessages: string | readonly string[] | null;
76300
76302
  maxErrors: string | number;
76301
76303
  rules: readonly ValidationRule$1[];
76304
+ modelValue: Number | null;
76302
76305
  tile: boolean;
76303
76306
  density: Density;
76304
76307
  clearIcon: IconValue;
@@ -76328,7 +76331,6 @@ declare const VNumberInput: {
76328
76331
  theme?: string | undefined;
76329
76332
  counter?: string | number | boolean | undefined;
76330
76333
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
76331
- modelValue?: any;
76332
76334
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
76333
76335
  validationValue?: any;
76334
76336
  rounded?: string | number | boolean | undefined;
@@ -76407,7 +76409,7 @@ declare const VNumberInput: {
76407
76409
  } & {
76408
76410
  "onUpdate:modelValue"?: ((val: number) => any) | undefined;
76409
76411
  }, void, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
76410
- 'update:modelValue': (val: number) => true;
76412
+ 'update:modelValue': (val: number) => boolean;
76411
76413
  }, string, {
76412
76414
  flat: boolean;
76413
76415
  reverse: boolean;
@@ -76429,6 +76431,7 @@ declare const VNumberInput: {
76429
76431
  errorMessages: string | readonly string[] | null;
76430
76432
  maxErrors: string | number;
76431
76433
  rules: readonly ValidationRule$1[];
76434
+ modelValue: Number | null;
76432
76435
  rounded: string | number | boolean;
76433
76436
  tile: boolean;
76434
76437
  density: Density;
@@ -76550,7 +76553,6 @@ declare const VNumberInput: {
76550
76553
  type: PropType<readonly ValidationRule$1[]>;
76551
76554
  default: () => never[];
76552
76555
  };
76553
- modelValue: null;
76554
76556
  validateOn: PropType<("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined>;
76555
76557
  validationValue: null;
76556
76558
  rounded: {
@@ -76599,6 +76601,10 @@ declare const VNumberInput: {
76599
76601
  };
76600
76602
  inset: BooleanConstructor;
76601
76603
  hideInput: BooleanConstructor;
76604
+ modelValue: {
76605
+ type: PropType<Number | null>;
76606
+ default: null;
76607
+ };
76602
76608
  min: {
76603
76609
  type: NumberConstructor;
76604
76610
  default: number;
@@ -76675,7 +76681,6 @@ declare const VNumberInput: {
76675
76681
  type: PropType<readonly ValidationRule$1[]>;
76676
76682
  default: () => never[];
76677
76683
  };
76678
- modelValue: null;
76679
76684
  validateOn: PropType<("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined>;
76680
76685
  validationValue: null;
76681
76686
  rounded: {
@@ -76724,6 +76729,10 @@ declare const VNumberInput: {
76724
76729
  };
76725
76730
  inset: BooleanConstructor;
76726
76731
  hideInput: BooleanConstructor;
76732
+ modelValue: {
76733
+ type: PropType<Number | null>;
76734
+ default: null;
76735
+ };
76727
76736
  min: {
76728
76737
  type: NumberConstructor;
76729
76738
  default: number;
@@ -78466,6 +78475,7 @@ type VStepperVerticalActions = InstanceType<typeof VStepperVerticalActions>;
78466
78475
 
78467
78476
  declare const VPullToRefresh: {
78468
78477
  new (...args: any[]): vue.CreateComponentPublicInstance<{
78478
+ disabled: boolean;
78469
78479
  pullDownThreshold: number;
78470
78480
  } & {} & {
78471
78481
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
@@ -78500,6 +78510,7 @@ declare const VPullToRefresh: {
78500
78510
  done: () => void;
78501
78511
  }) => true;
78502
78512
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
78513
+ disabled: boolean;
78503
78514
  pullDownThreshold: number;
78504
78515
  } & {} & {
78505
78516
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
@@ -78530,6 +78541,7 @@ declare const VPullToRefresh: {
78530
78541
  done: () => void;
78531
78542
  }) => any) | undefined;
78532
78543
  }, {
78544
+ disabled: boolean;
78533
78545
  pullDownThreshold: number;
78534
78546
  }, true, {}, vue.SlotsType<Partial<{
78535
78547
  default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -78550,6 +78562,7 @@ declare const VPullToRefresh: {
78550
78562
  M: {};
78551
78563
  Defaults: {};
78552
78564
  }, {
78565
+ disabled: boolean;
78553
78566
  pullDownThreshold: number;
78554
78567
  } & {} & {
78555
78568
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
@@ -78580,12 +78593,14 @@ declare const VPullToRefresh: {
78580
78593
  done: () => void;
78581
78594
  }) => any) | undefined;
78582
78595
  }, {}, {}, {}, {}, {
78596
+ disabled: boolean;
78583
78597
  pullDownThreshold: number;
78584
78598
  }>;
78585
78599
  __isFragment?: undefined;
78586
78600
  __isTeleport?: undefined;
78587
78601
  __isSuspense?: undefined;
78588
78602
  } & vue.ComponentOptionsBase<{
78603
+ disabled: boolean;
78589
78604
  pullDownThreshold: number;
78590
78605
  } & {} & {
78591
78606
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
@@ -78620,6 +78635,7 @@ declare const VPullToRefresh: {
78620
78635
  done: () => void;
78621
78636
  }) => true;
78622
78637
  }, string, {
78638
+ disabled: boolean;
78623
78639
  pullDownThreshold: number;
78624
78640
  }, {}, string, vue.SlotsType<Partial<{
78625
78641
  default: () => vue.VNode<vue.RendererNode, vue.RendererElement, {
@@ -78633,11 +78649,13 @@ declare const VPullToRefresh: {
78633
78649
  [key: string]: any;
78634
78650
  }>[];
78635
78651
  }>>> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
78652
+ disabled: BooleanConstructor;
78636
78653
  pullDownThreshold: {
78637
78654
  type: NumberConstructor;
78638
78655
  default: number;
78639
78656
  };
78640
78657
  }, vue.ExtractPropTypes<{
78658
+ disabled: BooleanConstructor;
78641
78659
  pullDownThreshold: {
78642
78660
  type: NumberConstructor;
78643
78661
  default: number;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.0-beta.1-dev.2024-07-30
2
+ * Vuetify v3.7.0-beta.1-dev.2024-08-01
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -5716,7 +5716,7 @@ const VBtn = genericComponent()({
5716
5716
  "indeterminate": true,
5717
5717
  "width": "2"
5718
5718
  }, null)])]
5719
- }), [[Ripple, !isDisabled.value && !!props.ripple, '', {
5719
+ }), [[Ripple, !isDisabled.value && props.ripple, '', {
5720
5720
  center: !!props.icon
5721
5721
  }]]);
5722
5722
  });
@@ -6014,7 +6014,7 @@ const VAvatar = genericComponent()({
6014
6014
  "defaults": {
6015
6015
  VImg: {
6016
6016
  cover: true,
6017
- image: props.image
6017
+ src: props.image
6018
6018
  },
6019
6019
  VIcon: {
6020
6020
  icon: props.icon
@@ -11156,7 +11156,7 @@ const VMenu = genericComponent()({
11156
11156
  },
11157
11157
  closeParents(e) {
11158
11158
  setTimeout(() => {
11159
- if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11159
+ if (!openChildren.value.size && !props.persistent && (e == null || overlay.value?.contentEl && !isClickInsideElement(e, overlay.value.contentEl))) {
11160
11160
  isActive.value = false;
11161
11161
  parent?.closeParents();
11162
11162
  }
@@ -22975,6 +22975,8 @@ const VFooter = genericComponent()({
22975
22975
  let {
22976
22976
  slots
22977
22977
  } = _ref;
22978
+ const layoutItemStyles = ref();
22979
+ const layoutIsReady = shallowRef();
22978
22980
  const {
22979
22981
  themeClasses
22980
22982
  } = provideTheme(props);
@@ -22999,17 +23001,20 @@ const VFooter = genericComponent()({
22999
23001
  autoHeight.value = entries[0].target.clientHeight;
23000
23002
  });
23001
23003
  const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10));
23002
- const {
23003
- layoutItemStyles,
23004
- layoutIsReady
23005
- } = useLayoutItem({
23006
- id: props.name,
23007
- order: computed(() => parseInt(props.order, 10)),
23008
- position: computed(() => 'bottom'),
23009
- layoutSize: height,
23010
- elementSize: computed(() => props.height === 'auto' ? undefined : height.value),
23011
- active: computed(() => props.app),
23012
- absolute: toRef(props, 'absolute')
23004
+ useToggleScope(() => props.app, () => {
23005
+ const layout = useLayoutItem({
23006
+ id: props.name,
23007
+ order: computed(() => parseInt(props.order, 10)),
23008
+ position: computed(() => 'bottom'),
23009
+ layoutSize: height,
23010
+ elementSize: computed(() => props.height === 'auto' ? undefined : height.value),
23011
+ active: computed(() => props.app),
23012
+ absolute: toRef(props, 'absolute')
23013
+ });
23014
+ watchEffect(() => {
23015
+ layoutItemStyles.value = layout.layoutItemStyles.value;
23016
+ layoutIsReady.value = layout.layoutIsReady;
23017
+ });
23013
23018
  });
23014
23019
  useRender(() => createVNode(props.tag, {
23015
23020
  "ref": resizeRef,
@@ -23018,7 +23023,7 @@ const VFooter = genericComponent()({
23018
23023
  height: convertToUnit(props.height)
23019
23024
  }, props.style]
23020
23025
  }, slots));
23021
- return props.app ? layoutIsReady : {};
23026
+ return props.app ? layoutIsReady.value : {};
23022
23027
  }
23023
23028
  });
23024
23029
 
@@ -25159,16 +25164,17 @@ const VSkeletonLoader = genericComponent()({
25159
25164
  const items = computed(() => genStructure(wrapInArray(props.type).join(',')));
25160
25165
  useRender(() => {
25161
25166
  const isLoading = !slots.default || props.loading;
25162
- return createVNode("div", {
25167
+ const loadingProps = props.boilerplate || !isLoading ? {} : {
25168
+ ariaLive: 'polite',
25169
+ ariaLabel: t(props.loadingText),
25170
+ role: 'alert'
25171
+ };
25172
+ return createVNode("div", mergeProps({
25163
25173
  "class": ['v-skeleton-loader', {
25164
25174
  'v-skeleton-loader--boilerplate': props.boilerplate
25165
25175
  }, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
25166
- "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}],
25167
- "aria-busy": !props.boilerplate ? isLoading : undefined,
25168
- "aria-live": !props.boilerplate ? 'polite' : undefined,
25169
- "aria-label": !props.boilerplate ? t(props.loadingText) : undefined,
25170
- "role": !props.boilerplate ? 'alert' : undefined
25171
- }, [isLoading ? items.value : slots.default?.()]);
25176
+ "style": [backgroundColorStyles.value, isLoading ? dimensionStyles.value : {}]
25177
+ }, loadingProps), [isLoading ? items.value : slots.default?.()]);
25172
25178
  });
25173
25179
  return {};
25174
25180
  }
@@ -25201,14 +25207,14 @@ const VSlideGroupItem = genericComponent()({
25201
25207
  // Types
25202
25208
 
25203
25209
  function useCountdown(milliseconds) {
25204
- const time = shallowRef(milliseconds);
25210
+ const time = shallowRef(milliseconds());
25205
25211
  let timer = -1;
25206
25212
  function clear() {
25207
25213
  clearInterval(timer);
25208
25214
  }
25209
25215
  function reset() {
25210
25216
  clear();
25211
- nextTick(() => time.value = milliseconds);
25217
+ nextTick(() => time.value = milliseconds());
25212
25218
  }
25213
25219
  function start(el) {
25214
25220
  const style = el ? getComputedStyle(el) : {
@@ -25220,7 +25226,7 @@ function useCountdown(milliseconds) {
25220
25226
  const startTime = performance.now();
25221
25227
  timer = window.setInterval(() => {
25222
25228
  const elapsed = performance.now() - startTime + interval;
25223
- time.value = Math.max(milliseconds - elapsed, 0);
25229
+ time.value = Math.max(milliseconds() - elapsed, 0);
25224
25230
  if (time.value <= 0) clear();
25225
25231
  }, interval);
25226
25232
  }
@@ -25280,7 +25286,7 @@ const VSnackbar = genericComponent()({
25280
25286
  const {
25281
25287
  roundedClasses
25282
25288
  } = useRounded(props);
25283
- const countdown = useCountdown(Number(props.timeout));
25289
+ const countdown = useCountdown(() => Number(props.timeout));
25284
25290
  const overlay = ref();
25285
25291
  const timerRef = ref();
25286
25292
  const isHovering = shallowRef(false);
@@ -28100,19 +28106,23 @@ const makeVNumberInputProps = propsFactory({
28100
28106
  },
28101
28107
  inset: Boolean,
28102
28108
  hideInput: Boolean,
28109
+ modelValue: {
28110
+ type: Number,
28111
+ default: null
28112
+ },
28103
28113
  min: {
28104
28114
  type: Number,
28105
- default: -Infinity
28115
+ default: Number.MIN_SAFE_INTEGER
28106
28116
  },
28107
28117
  max: {
28108
28118
  type: Number,
28109
- default: Infinity
28119
+ default: Number.MAX_SAFE_INTEGER
28110
28120
  },
28111
28121
  step: {
28112
28122
  type: Number,
28113
28123
  default: 1
28114
28124
  },
28115
- ...omit(makeVTextFieldProps(), ['appendInnerIcon', 'prependInnerIcon'])
28125
+ ...omit(makeVTextFieldProps({}), ['appendInnerIcon', 'modelValue', 'prependInnerIcon'])
28116
28126
  }, 'VNumberInput');
28117
28127
  const VNumberInput = genericComponent()({
28118
28128
  name: 'VNumberInput',
@@ -28124,30 +28134,27 @@ const VNumberInput = genericComponent()({
28124
28134
  },
28125
28135
  setup(props, _ref) {
28126
28136
  let {
28127
- attrs,
28128
- emit,
28129
28137
  slots
28130
28138
  } = _ref;
28131
- const model = useProxiedModel(props, 'modelValue');
28139
+ const _model = useProxiedModel(props, 'modelValue');
28140
+ const model = computed({
28141
+ get: () => _model.value,
28142
+ set(val) {
28143
+ if (typeof val !== 'string') _model.value = val;
28144
+ }
28145
+ });
28146
+ const vTextFieldRef = ref();
28132
28147
  const stepDecimals = computed(() => getDecimals(props.step));
28133
- const modelDecimals = computed(() => model.value != null ? getDecimals(model.value) : 0);
28148
+ const modelDecimals = computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0);
28134
28149
  const form = useForm();
28135
28150
  const controlsDisabled = computed(() => props.disabled || props.readonly || form?.isReadonly.value);
28136
28151
  const canIncrease = computed(() => {
28137
28152
  if (controlsDisabled.value) return false;
28138
- if (model.value == null) return true;
28139
- return model.value + props.step <= props.max;
28153
+ return (model.value ?? 0) + props.step <= props.max;
28140
28154
  });
28141
28155
  const canDecrease = computed(() => {
28142
28156
  if (controlsDisabled.value) return false;
28143
- if (model.value == null) return true;
28144
- return model.value - props.step >= props.min;
28145
- });
28146
- watchEffect(() => {
28147
- if (controlsDisabled.value) return;
28148
- if (model.value != null && (model.value < props.min || model.value > props.max)) {
28149
- model.value = clamp(model.value, props.min, props.max);
28150
- }
28157
+ return (model.value ?? 0) - props.step >= props.min;
28151
28158
  });
28152
28159
  const controlVariant = computed(() => {
28153
28160
  return props.hideInput ? 'stacked' : props.controlVariant;
@@ -28162,11 +28169,16 @@ const VNumberInput = genericComponent()({
28162
28169
  const decrementSlotProps = computed(() => ({
28163
28170
  click: onClickDown
28164
28171
  }));
28172
+ onMounted(() => {
28173
+ if (!props.readonly && !props.disabled) {
28174
+ clampModel();
28175
+ }
28176
+ });
28165
28177
  function toggleUpDown() {
28166
28178
  let increment = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
28167
28179
  if (controlsDisabled.value) return;
28168
28180
  if (model.value == null) {
28169
- model.value = 0;
28181
+ model.value = clamp(0, props.min, props.max);
28170
28182
  return;
28171
28183
  }
28172
28184
  const decimals = Math.max(modelDecimals.value, stepDecimals.value);
@@ -28184,30 +28196,45 @@ const VNumberInput = genericComponent()({
28184
28196
  e.stopPropagation();
28185
28197
  toggleUpDown(false);
28186
28198
  }
28187
- function onKeydown(e) {
28188
- if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) || e.ctrlKey) return;
28189
- if (['ArrowDown'].includes(e.key)) {
28199
+ function onBeforeinput(e) {
28200
+ if (!e.data) return;
28201
+ const existingTxt = e.target?.value;
28202
+ const selectionStart = e.target?.selectionStart;
28203
+ const selectionEnd = e.target?.selectionEnd;
28204
+ const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
28205
+ // Only numbers, "-", "." are allowed
28206
+ // AND "-", "." are allowed only once
28207
+ // AND "-" is only allowed at the start
28208
+ if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
28190
28209
  e.preventDefault();
28191
- toggleUpDown(false);
28192
- return;
28193
- }
28194
- if (['ArrowUp'].includes(e.key)) {
28195
- e.preventDefault();
28196
- toggleUpDown();
28197
- return;
28198
28210
  }
28199
-
28200
- // Only numbers, +, - & . are allowed
28201
- if (!/^[0-9\-+.]+$/.test(e.key)) {
28211
+ }
28212
+ async function onKeydown(e) {
28213
+ if (['Enter', 'ArrowLeft', 'ArrowRight', 'Backspace', 'Delete', 'Tab'].includes(e.key) || e.ctrlKey) return;
28214
+ if (['ArrowDown', 'ArrowUp'].includes(e.key)) {
28202
28215
  e.preventDefault();
28216
+ clampModel();
28217
+ // _model is controlled, so need to wait until props['modelValue'] is updated
28218
+ await nextTick();
28219
+ if (e.key === 'ArrowDown') {
28220
+ toggleUpDown(false);
28221
+ } else {
28222
+ toggleUpDown();
28223
+ }
28203
28224
  }
28204
28225
  }
28205
- function onModelUpdate(v) {
28206
- model.value = v ? +v : undefined;
28207
- }
28208
28226
  function onControlMousedown(e) {
28209
28227
  e.stopPropagation();
28210
28228
  }
28229
+ function clampModel() {
28230
+ if (!vTextFieldRef.value) return;
28231
+ const inputText = vTextFieldRef.value.value;
28232
+ if (inputText && !isNaN(+inputText)) {
28233
+ model.value = clamp(+inputText, props.min, props.max);
28234
+ } else {
28235
+ model.value = null;
28236
+ }
28237
+ }
28211
28238
  useRender(() => {
28212
28239
  const {
28213
28240
  modelValue: _,
@@ -28292,8 +28319,11 @@ const VNumberInput = genericComponent()({
28292
28319
  }, null)]) : props.reverse ? createVNode(Fragment, null, [controlNode(), dividerNode()]) : undefined;
28293
28320
  const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
28294
28321
  return createVNode(VTextField, mergeProps({
28322
+ "ref": vTextFieldRef,
28295
28323
  "modelValue": model.value,
28296
- "onUpdate:modelValue": onModelUpdate,
28324
+ "onUpdate:modelValue": $event => model.value = $event,
28325
+ "onBeforeinput": onBeforeinput,
28326
+ "onChange": clampModel,
28297
28327
  "onKeydown": onKeydown,
28298
28328
  "class": ['v-number-input', {
28299
28329
  'v-number-input--default': controlVariant.value === 'default',
@@ -28587,6 +28617,7 @@ const VStepperVertical = genericComponent()({
28587
28617
  const VPullToRefresh = genericComponent()({
28588
28618
  name: 'VPullToRefresh',
28589
28619
  props: {
28620
+ disabled: Boolean,
28590
28621
  pullDownThreshold: {
28591
28622
  type: Number,
28592
28623
  default: 64
@@ -28610,19 +28641,19 @@ const VPullToRefresh = genericComponent()({
28610
28641
  const canRefresh = computed(() => touchDiff.value >= props.pullDownThreshold && !refreshing.value);
28611
28642
  const topOffset = computed(() => clamp(touchDiff.value, 0, props.pullDownThreshold));
28612
28643
  function onTouchstart(e) {
28613
- if (refreshing.value) return;
28644
+ if (refreshing.value || props.disabled) return;
28614
28645
  touching.value = true;
28615
28646
  touchstartY = 'clientY' in e ? e.clientY : e.touches[0].clientY;
28616
28647
  }
28617
28648
  function onTouchmove(e) {
28618
- if (refreshing.value || !touching.value) return;
28649
+ if (refreshing.value || !touching.value || props.disabled) return;
28619
28650
  const touchY = 'clientY' in e ? e.clientY : e.touches[0].clientY;
28620
28651
  if (scrollParents.length && !scrollParents[0].scrollTop) {
28621
28652
  touchDiff.value = touchY - touchstartY;
28622
28653
  }
28623
28654
  }
28624
28655
  function onTouchend(e) {
28625
- if (refreshing.value) return;
28656
+ if (refreshing.value || props.disabled) return;
28626
28657
  touching.value = false;
28627
28658
  if (canRefresh.value) {
28628
28659
  function done() {
@@ -30325,7 +30356,7 @@ function createVuetify$1() {
30325
30356
  goTo
30326
30357
  };
30327
30358
  }
30328
- const version$1 = "3.7.0-beta.1-dev.2024-07-30";
30359
+ const version$1 = "3.7.0-beta.1-dev.2024-08-01";
30329
30360
  createVuetify$1.version = version$1;
30330
30361
 
30331
30362
  // Vue's inject() can only be used in setup
@@ -30578,7 +30609,7 @@ var index = /*#__PURE__*/Object.freeze({
30578
30609
 
30579
30610
  /* eslint-disable local-rules/sort-imports */
30580
30611
 
30581
- const version = "3.7.0-beta.1-dev.2024-07-30";
30612
+ const version = "3.7.0-beta.1-dev.2024-08-01";
30582
30613
 
30583
30614
  /* eslint-disable local-rules/sort-imports */
30584
30615