vuetify 3.2.3 → 3.2.4

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 (132) hide show
  1. package/dist/json/attributes.json +9 -9
  2. package/dist/json/importMap.json +12 -12
  3. package/dist/json/web-types.json +11 -11
  4. package/dist/vuetify-labs.css +34 -35
  5. package/dist/vuetify-labs.d.ts +72 -72
  6. package/dist/vuetify-labs.esm.js +142 -124
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +142 -124
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +1 -2
  11. package/dist/vuetify.d.ts +75 -68
  12. package/dist/vuetify.esm.js +131 -115
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +131 -115
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +469 -469
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VAlert/VAlert.mjs +1 -2
  20. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  21. package/lib/components/VAppBar/VAppBar.mjs +2 -2
  22. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  23. package/lib/components/VAppBar/VAppBarNavIcon.mjs +1 -2
  24. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  25. package/lib/components/VAppBar/VAppBarTitle.mjs +1 -2
  26. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +5 -5
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAutocomplete/index.d.ts +9 -9
  30. package/lib/components/VChip/VChip.css +0 -1
  31. package/lib/components/VChip/VChip.sass +0 -1
  32. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -5
  33. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  34. package/lib/components/VCombobox/VCombobox.mjs +5 -5
  35. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  36. package/lib/components/VCombobox/index.d.ts +9 -9
  37. package/lib/components/VFooter/VFooter.mjs +2 -2
  38. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  39. package/lib/components/VForm/index.d.ts +3 -3
  40. package/lib/components/VImg/VImg.mjs +6 -6
  41. package/lib/components/VImg/VImg.mjs.map +1 -1
  42. package/lib/components/VImg/index.d.ts +12 -12
  43. package/lib/components/VList/VList.mjs +2 -2
  44. package/lib/components/VList/VList.mjs.map +1 -1
  45. package/lib/components/VList/index.d.ts +9 -9
  46. package/lib/components/VList/list.mjs +4 -4
  47. package/lib/components/VList/list.mjs.map +1 -1
  48. package/lib/components/VMenu/VMenu.mjs +3 -3
  49. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  50. package/lib/components/VMenu/index.d.ts +3 -3
  51. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +2 -2
  52. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  53. package/lib/components/VNavigationDrawer/index.d.ts +3 -3
  54. package/lib/components/VNavigationDrawer/sticky.mjs +5 -4
  55. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  56. package/lib/components/VNavigationDrawer/touch.mjs +4 -4
  57. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  58. package/lib/components/VOverlay/locationStrategies.mjs +1 -1
  59. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  60. package/lib/components/VPagination/VPagination.mjs +2 -2
  61. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  62. package/lib/components/VRating/VRating.mjs +6 -3
  63. package/lib/components/VRating/VRating.mjs.map +1 -1
  64. package/lib/components/VSelect/VSelect.mjs +2 -2
  65. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  66. package/lib/components/VSelect/index.d.ts +9 -9
  67. package/lib/components/VSelectionControl/VSelectionControl.mjs +3 -3
  68. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  69. package/lib/components/VSelectionControl/index.d.ts +3 -3
  70. package/lib/components/VSlideGroup/VSlideGroup.mjs +7 -7
  71. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  72. package/lib/components/VSlideGroup/index.d.ts +3 -3
  73. package/lib/components/VSlider/slider.mjs +3 -3
  74. package/lib/components/VSlider/slider.mjs.map +1 -1
  75. package/lib/components/VSystemBar/VSystemBar.mjs +2 -2
  76. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  77. package/lib/components/VTabs/VTab.mjs +4 -5
  78. package/lib/components/VTabs/VTab.mjs.map +1 -1
  79. package/lib/components/VTextarea/VTextarea.mjs +6 -3
  80. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  81. package/lib/components/VTimeline/VTimelineItem.mjs +2 -2
  82. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  83. package/lib/components/VToolbar/VToolbar.mjs +2 -2
  84. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  85. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +3 -3
  86. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  87. package/lib/components/VWindow/VWindow.mjs +3 -3
  88. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  89. package/lib/components/VWindow/VWindowItem.mjs +3 -3
  90. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  91. package/lib/components/index.d.ts +63 -63
  92. package/lib/composables/display.mjs +3 -3
  93. package/lib/composables/display.mjs.map +1 -1
  94. package/lib/composables/form.mjs +4 -4
  95. package/lib/composables/form.mjs.map +1 -1
  96. package/lib/composables/hydration.mjs +6 -6
  97. package/lib/composables/hydration.mjs.map +1 -1
  98. package/lib/composables/intersectionObserver.mjs +2 -2
  99. package/lib/composables/intersectionObserver.mjs.map +1 -1
  100. package/lib/composables/layout.mjs +3 -3
  101. package/lib/composables/layout.mjs.map +1 -1
  102. package/lib/composables/lazy.mjs +2 -2
  103. package/lib/composables/lazy.mjs.map +1 -1
  104. package/lib/composables/nested/nested.mjs +5 -4
  105. package/lib/composables/nested/nested.mjs.map +1 -1
  106. package/lib/composables/scroll.mjs +6 -6
  107. package/lib/composables/scroll.mjs.map +1 -1
  108. package/lib/composables/ssrBoot.mjs +2 -2
  109. package/lib/composables/ssrBoot.mjs.map +1 -1
  110. package/lib/composables/stack.mjs +5 -4
  111. package/lib/composables/stack.mjs.map +1 -1
  112. package/lib/composables/transition.mjs +5 -2
  113. package/lib/composables/transition.mjs.map +1 -1
  114. package/lib/composables/validation.mjs +3 -3
  115. package/lib/composables/validation.mjs.map +1 -1
  116. package/lib/entry-bundler.mjs +1 -1
  117. package/lib/framework.mjs +1 -1
  118. package/lib/index.d.ts +12 -5
  119. package/lib/labs/VDataTable/VDataTable.mjs +2 -1
  120. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  121. package/lib/labs/VDataTable/VDataTableServer.mjs +2 -1
  122. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  123. package/lib/labs/VDataTable/VDataTableVirtual.mjs +6 -6
  124. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  125. package/lib/labs/VDataTable/composables/virtual.mjs +3 -3
  126. package/lib/labs/VDataTable/composables/virtual.mjs.map +1 -1
  127. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  128. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  129. package/lib/labs/components.d.ts +9 -9
  130. package/lib/locale/adapters/vuetify.mjs +8 -5
  131. package/lib/locale/adapters/vuetify.mjs.map +1 -1
  132. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.2.3
2
+ * Vuetify v3.2.4
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1284,7 +1284,7 @@ function useLayoutItem(options) {
1284
1284
  provide(VuetifyLayoutItemKey, {
1285
1285
  id
1286
1286
  });
1287
- const isKeptAlive = ref(false);
1287
+ const isKeptAlive = shallowRef(false);
1288
1288
  onDeactivated(() => isKeptAlive.value = true);
1289
1289
  onActivated(() => isKeptAlive.value = false);
1290
1290
  const {
@@ -1415,7 +1415,7 @@ function createLayout(props) {
1415
1415
  return items.value.find(item => item.id === id);
1416
1416
  };
1417
1417
  const rootVm = getCurrentInstance('createLayout');
1418
- const isMounted = ref(false);
1418
+ const isMounted = shallowRef(false);
1419
1419
  onMounted(() => {
1420
1420
  isMounted.value = true;
1421
1421
  });
@@ -2009,6 +2009,10 @@ var en = {
2009
2009
  }
2010
2010
  };
2011
2011
 
2012
+ // Composables
2013
+
2014
+ // Types
2015
+
2012
2016
  const LANG_PREFIX = '$vuetify.';
2013
2017
  const replace = (str, params) => {
2014
2018
  return str.replace(/\{(\d+)\}/g, (match, index) => {
@@ -2081,8 +2085,8 @@ function createProvideFunction(state) {
2081
2085
  };
2082
2086
  }
2083
2087
  function createVuetifyAdapter(options) {
2084
- const current = ref(options?.locale ?? 'en');
2085
- const fallback = ref(options?.fallback ?? 'en');
2088
+ const current = shallowRef(options?.locale ?? 'en');
2089
+ const fallback = shallowRef(options?.fallback ?? 'en');
2086
2090
  const messages = ref({
2087
2091
  en,
2088
2092
  ...options?.messages
@@ -2746,6 +2750,7 @@ const MaybeTransition = (props, _ref) => {
2746
2750
  } = _ref;
2747
2751
  const {
2748
2752
  transition,
2753
+ disabled,
2749
2754
  ...rest
2750
2755
  } = props;
2751
2756
  const {
@@ -2753,8 +2758,10 @@ const MaybeTransition = (props, _ref) => {
2753
2758
  ...customProps
2754
2759
  } = typeof transition === 'object' ? transition : {};
2755
2760
  return h(component, mergeProps(typeof transition === 'string' ? {
2756
- name: transition
2757
- } : customProps, rest), slots);
2761
+ name: disabled ? '' : transition
2762
+ } : customProps, rest, {
2763
+ disabled
2764
+ }), slots);
2758
2765
  };
2759
2766
 
2760
2767
  // Types
@@ -2802,11 +2809,11 @@ const VImg = genericComponent()({
2802
2809
  emit,
2803
2810
  slots
2804
2811
  } = _ref;
2805
- const currentSrc = ref(''); // Set from srcset
2812
+ const currentSrc = shallowRef(''); // Set from srcset
2806
2813
  const image = ref();
2807
- const state = ref(props.eager ? 'loading' : 'idle');
2808
- const naturalWidth = ref();
2809
- const naturalHeight = ref();
2814
+ const state = shallowRef(props.eager ? 'loading' : 'idle');
2815
+ const naturalWidth = shallowRef();
2816
+ const naturalHeight = shallowRef();
2810
2817
  const normalisedSrc = computed(() => {
2811
2818
  return props.src && typeof props.src === 'object' ? {
2812
2819
  src: props.src.src,
@@ -2960,7 +2967,7 @@ const VImg = genericComponent()({
2960
2967
  }
2961
2968
  }, null);
2962
2969
  };
2963
- const isBooted = ref(false);
2970
+ const isBooted = shallowRef(false);
2964
2971
  {
2965
2972
  const stop = watch(aspectRatio, val => {
2966
2973
  if (val) {
@@ -3246,7 +3253,7 @@ const VToolbar = genericComponent()({
3246
3253
  const {
3247
3254
  rtlClasses
3248
3255
  } = useRtl();
3249
- const isExtended = ref(!!(props.extended || slots.extension?.()));
3256
+ const isExtended = shallowRef(!!(props.extended || slots.extension?.()));
3250
3257
  const contentHeight = computed(() => parseInt(Number(props.height) + (props.density === 'prominent' ? Number(props.height) : 0) - (props.density === 'comfortable' ? 8 : 0) - (props.density === 'compact' ? 16 : 0), 10));
3251
3258
  const extensionHeight = computed(() => isExtended.value ? parseInt(Number(props.extensionHeight) + (props.density === 'prominent' ? Number(props.extensionHeight) : 0) - (props.density === 'comfortable' ? 4 : 0) - (props.density === 'compact' ? 8 : 0), 10) : 0);
3252
3259
  provideDefaults({
@@ -3353,11 +3360,11 @@ function useScroll(props) {
3353
3360
  } = args;
3354
3361
  let previousScroll = 0;
3355
3362
  const target = ref(null);
3356
- const currentScroll = ref(0);
3357
- const savedScroll = ref(0);
3358
- const currentThreshold = ref(0);
3359
- const isScrollActive = ref(false);
3360
- const isScrollingUp = ref(false);
3363
+ const currentScroll = shallowRef(0);
3364
+ const savedScroll = shallowRef(0);
3365
+ const currentThreshold = shallowRef(0);
3366
+ const isScrollActive = shallowRef(false);
3367
+ const isScrollingUp = shallowRef(false);
3361
3368
  const scrollThreshold = computed(() => {
3362
3369
  return Number(props.scrollThreshold);
3363
3370
  });
@@ -3427,7 +3434,7 @@ function useScroll(props) {
3427
3434
 
3428
3435
  // Composables
3429
3436
  function useSsrBoot() {
3430
- const isBooted = ref(false);
3437
+ const isBooted = shallowRef(false);
3431
3438
  onMounted(() => {
3432
3439
  window.requestAnimationFrame(() => {
3433
3440
  isBooted.value = true;
@@ -3538,7 +3545,7 @@ const VAppBar = genericComponent()({
3538
3545
  order: computed(() => parseInt(props.order, 10)),
3539
3546
  position: toRef(props, 'location'),
3540
3547
  layoutSize: height,
3541
- elementSize: ref(undefined),
3548
+ elementSize: shallowRef(undefined),
3542
3549
  active: isActive,
3543
3550
  absolute: toRef(props, 'absolute')
3544
3551
  });
@@ -4228,7 +4235,7 @@ const VIcon = genericComponent()({
4228
4235
  // Utilities
4229
4236
  function useIntersectionObserver(callback, options) {
4230
4237
  const intersectionRef = ref();
4231
- const isIntersecting = ref(false);
4238
+ const isIntersecting = shallowRef(false);
4232
4239
  if (SUPPORTS_INTERSECTION) {
4233
4240
  const observer = new IntersectionObserver(entries => {
4234
4241
  callback?.(entries, observer);
@@ -5241,34 +5248,6 @@ const VAppBarNavIcon = genericComponent()({
5241
5248
  }
5242
5249
  });
5243
5250
 
5244
- const makeVToolbarItemsProps = propsFactory({
5245
- ...makeComponentProps(),
5246
- ...makeVariantProps({
5247
- variant: 'text'
5248
- })
5249
- }, 'v-toolbar-items');
5250
- const VToolbarItems = genericComponent()({
5251
- name: 'VToolbarItems',
5252
- props: makeVToolbarItemsProps(),
5253
- setup(props, _ref) {
5254
- let {
5255
- slots
5256
- } = _ref;
5257
- provideDefaults({
5258
- VBtn: {
5259
- color: toRef(props, 'color'),
5260
- height: 'inherit',
5261
- variant: toRef(props, 'variant')
5262
- }
5263
- });
5264
- useRender(() => createVNode("div", {
5265
- "class": ['v-toolbar-items', props.class],
5266
- "style": props.style
5267
- }, [slots.default?.()]));
5268
- return {};
5269
- }
5270
- });
5271
-
5272
5251
  // Types
5273
5252
 
5274
5253
  const VAppBarTitle = genericComponent()({
@@ -5401,7 +5380,6 @@ const VAlert = genericComponent()({
5401
5380
  return () => {
5402
5381
  const hasPrepend = !!(slots.prepend || icon.value);
5403
5382
  const hasTitle = !!(slots.title || props.title);
5404
- const hasText = !!(props.text || slots.text);
5405
5383
  const hasClose = !!(slots.close || props.closable);
5406
5384
  return isActive.value && createVNode(props.tag, {
5407
5385
  "class": ['v-alert', props.border && {
@@ -5441,7 +5419,7 @@ const VAlert = genericComponent()({
5441
5419
  "key": "title"
5442
5420
  }, {
5443
5421
  default: () => [slots.title?.() ?? props.title]
5444
- }), hasText && (slots.text?.() ?? props.text), slots.default?.()]), slots.append && createVNode("div", {
5422
+ }), slots.text?.() ?? props.text, slots.default?.()]), slots.append && createVNode("div", {
5445
5423
  "key": "append",
5446
5424
  "class": "v-alert__append"
5447
5425
  }, [slots.append()]), hasClose && createVNode("div", {
@@ -5885,7 +5863,7 @@ const VMessages = genericComponent()({
5885
5863
  }
5886
5864
  });
5887
5865
 
5888
- // Utilities
5866
+ // Composables
5889
5867
 
5890
5868
  // Types
5891
5869
 
@@ -5907,7 +5885,7 @@ function createForm(props) {
5907
5885
  const model = useProxiedModel(props, 'modelValue');
5908
5886
  const isDisabled = computed(() => props.disabled);
5909
5887
  const isReadonly = computed(() => props.readonly);
5910
- const isValidating = ref(false);
5888
+ const isValidating = shallowRef(false);
5911
5889
  const items = ref([]);
5912
5890
  const errors = ref([]);
5913
5891
  async function validate() {
@@ -6046,7 +6024,7 @@ function useValidation(props) {
6046
6024
  const validationModel = computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6047
6025
  const form = useForm();
6048
6026
  const internalErrorMessages = ref([]);
6049
- const isPristine = ref(true);
6027
+ const isPristine = shallowRef(true);
6050
6028
  const isDirty = computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6051
6029
  const isDisabled = computed(() => !!(props.disabled || form?.isDisabled.value));
6052
6030
  const isReadonly = computed(() => !!(props.readonly || form?.isReadonly.value));
@@ -6058,7 +6036,7 @@ function useValidation(props) {
6058
6036
  if (!props.rules.length) return true;
6059
6037
  return isPristine.value ? null : true;
6060
6038
  });
6061
- const isValidating = ref(false);
6039
+ const isValidating = shallowRef(false);
6062
6040
  const validationClasses = computed(() => {
6063
6041
  return {
6064
6042
  [`${name}--error`]: isValid.value === false,
@@ -6756,8 +6734,8 @@ const VSelectionControl = genericComponent()({
6756
6734
  } = useSelectionControl(props);
6757
6735
  const uid = getUid();
6758
6736
  const id = computed(() => props.id || `input-${uid}`);
6759
- const isFocused = ref(false);
6760
- const isFocusVisible = ref(false);
6737
+ const isFocused = shallowRef(false);
6738
+ const isFocusVisible = shallowRef(false);
6761
6739
  const input = ref();
6762
6740
  group?.onForceUpdate(() => {
6763
6741
  if (input.value) {
@@ -7374,11 +7352,11 @@ const VDivider = genericComponent()({
7374
7352
  const ListKey = Symbol.for('vuetify:list');
7375
7353
  function createList() {
7376
7354
  const parent = inject$1(ListKey, {
7377
- hasPrepend: ref(false),
7355
+ hasPrepend: shallowRef(false),
7378
7356
  updateHasPrepend: () => null
7379
7357
  });
7380
7358
  const data = {
7381
- hasPrepend: ref(false),
7359
+ hasPrepend: shallowRef(false),
7382
7360
  updateHasPrepend: value => {
7383
7361
  if (value) data.hasPrepend.value = value;
7384
7362
  }
@@ -7645,11 +7623,13 @@ const classicSelectStrategy = mandatory => {
7645
7623
  return strategy;
7646
7624
  };
7647
7625
 
7626
+ // Composables
7627
+
7648
7628
  // Types
7649
7629
 
7650
7630
  const VNestedSymbol = Symbol.for('vuetify:nested');
7651
7631
  const emptyNested = {
7652
- id: ref(),
7632
+ id: shallowRef(),
7653
7633
  root: {
7654
7634
  register: () => null,
7655
7635
  unregister: () => null,
@@ -7718,7 +7698,7 @@ const useNested = props => {
7718
7698
  }
7719
7699
  const vm = getCurrentInstance('nested');
7720
7700
  const nested = {
7721
- id: ref(),
7701
+ id: shallowRef(),
7722
7702
  root: {
7723
7703
  opened,
7724
7704
  selected,
@@ -8498,7 +8478,7 @@ const VList = genericComponent()({
8498
8478
  variant: toRef(props, 'variant')
8499
8479
  }
8500
8480
  });
8501
- const isFocused = ref(false);
8481
+ const isFocused = shallowRef(false);
8502
8482
  const contentRef = ref();
8503
8483
  function onFocusin(e) {
8504
8484
  isFocused.value = true;
@@ -8895,7 +8875,7 @@ const makeLazyProps = propsFactory({
8895
8875
  eager: Boolean
8896
8876
  }, 'lazy');
8897
8877
  function useLazy(props, active) {
8898
- const isBooted = ref(false);
8878
+ const isBooted = shallowRef(false);
8899
8879
  const hasContent = computed(() => isBooted.value || props.eager || active.value);
8900
8880
  watch(active, () => isBooted.value = true);
8901
8881
  function onAfterLeave() {
@@ -9055,7 +9035,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
9055
9035
  Object.assign(contentStyles.value, {
9056
9036
  position: 'fixed',
9057
9037
  top: 0,
9058
- left: 0
9038
+ [data.isRtl.value ? 'right' : 'left']: 0
9059
9039
  });
9060
9040
  }
9061
9041
  const {
@@ -9557,10 +9537,10 @@ function createDisplay(options, ssr) {
9557
9537
  thresholds,
9558
9538
  mobileBreakpoint
9559
9539
  } = parseDisplayOptions(options);
9560
- const height = ref(getClientHeight(ssr));
9540
+ const height = shallowRef(getClientHeight(ssr));
9561
9541
  const platform = shallowRef(getPlatform(ssr));
9562
9542
  const state = reactive({});
9563
- const width = ref(getClientWidth(ssr));
9543
+ const width = shallowRef(getClientWidth(ssr));
9564
9544
  function updateSize() {
9565
9545
  height.value = getClientHeight();
9566
9546
  width.value = getClientWidth();
@@ -9620,20 +9600,20 @@ function useDisplay() {
9620
9600
  return display;
9621
9601
  }
9622
9602
 
9623
- // Utilities
9603
+ // Composables
9624
9604
  function useHydration() {
9625
- if (!IN_BROWSER) return ref(false);
9605
+ if (!IN_BROWSER) return shallowRef(false);
9626
9606
  const {
9627
9607
  ssr
9628
9608
  } = useDisplay();
9629
9609
  if (ssr) {
9630
- const isMounted = ref(false);
9610
+ const isMounted = shallowRef(false);
9631
9611
  onMounted(() => {
9632
9612
  isMounted.value = true;
9633
9613
  });
9634
9614
  return isMounted;
9635
9615
  } else {
9636
- return ref(true);
9616
+ return shallowRef(true);
9637
9617
  }
9638
9618
  }
9639
9619
 
@@ -9647,6 +9627,8 @@ function useScopeId() {
9647
9627
  };
9648
9628
  }
9649
9629
 
9630
+ // Composables
9631
+
9650
9632
  // Types
9651
9633
 
9652
9634
  const StackSymbol = Symbol.for('vuetify:stack');
@@ -9659,7 +9641,7 @@ function useStack(isActive, zIndex, disableGlobalStack) {
9659
9641
  activeChildren: new Set()
9660
9642
  });
9661
9643
  provide(StackSymbol, stack);
9662
- const _zIndex = ref(+zIndex.value);
9644
+ const _zIndex = shallowRef(+zIndex.value);
9663
9645
  useToggleScope(isActive, () => {
9664
9646
  const lastZIndex = globalStack.at(-1)?.[1];
9665
9647
  _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value;
@@ -9675,7 +9657,7 @@ function useStack(isActive, zIndex, disableGlobalStack) {
9675
9657
  parent?.activeChildren.delete(vm.uid);
9676
9658
  });
9677
9659
  });
9678
- const globalTop = ref(true);
9660
+ const globalTop = shallowRef(true);
9679
9661
  if (createStackEntry) {
9680
9662
  watchEffect(() => {
9681
9663
  const _isTop = globalStack.at(-1)?.[0] === vm.uid;
@@ -10091,7 +10073,7 @@ const VMenu = genericComponent()({
10091
10073
  const id = computed(() => props.id || `v-menu-${uid}`);
10092
10074
  const overlay = ref();
10093
10075
  const parent = inject$1(VMenuSymbol, null);
10094
- const openChildren = ref(0);
10076
+ const openChildren = shallowRef(0);
10095
10077
  provide(VMenuSymbol, {
10096
10078
  register() {
10097
10079
  ++openChildren.value;
@@ -10234,7 +10216,7 @@ const VSelect = genericComponent()({
10234
10216
  });
10235
10217
  });
10236
10218
  const selected = computed(() => selections.value.map(selection => selection.props.value));
10237
- const isFocused = ref(false);
10219
+ const isFocused = shallowRef(false);
10238
10220
  let keyboardLookupPrefix = '';
10239
10221
  let keyboardLookupLastTime;
10240
10222
  const displayItems = computed(() => {
@@ -10610,8 +10592,8 @@ const VAutocomplete = genericComponent()({
10610
10592
  t
10611
10593
  } = useLocale();
10612
10594
  const vTextFieldRef = ref();
10613
- const isFocused = ref(false);
10614
- const isPristine = ref(true);
10595
+ const isFocused = shallowRef(false);
10596
+ const isPristine = shallowRef(true);
10615
10597
  const vMenuRef = ref();
10616
10598
  const _menu = useProxiedModel(props, 'menu');
10617
10599
  const menu = computed({
@@ -10621,7 +10603,7 @@ const VAutocomplete = genericComponent()({
10621
10603
  _menu.value = v;
10622
10604
  }
10623
10605
  });
10624
- const selectionIndex = ref(-1);
10606
+ const selectionIndex = shallowRef(-1);
10625
10607
  const color = computed(() => vTextFieldRef.value?.color);
10626
10608
  const {
10627
10609
  items,
@@ -10732,7 +10714,7 @@ const VAutocomplete = genericComponent()({
10732
10714
  function onFocusin(e) {
10733
10715
  isFocused.value = true;
10734
10716
  }
10735
- const isSelecting = ref(false);
10717
+ const isSelecting = shallowRef(false);
10736
10718
  function select(item) {
10737
10719
  if (props.multiple) {
10738
10720
  const index = selected.value.findIndex(selection => props.valueComparator(selection, item.value));
@@ -11865,14 +11847,14 @@ const VWindow = genericComponent()({
11865
11847
  const group = useGroup(props, VWindowGroupSymbol);
11866
11848
  const rootRef = ref();
11867
11849
  const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse);
11868
- const isReversed = ref(false);
11850
+ const isReversed = shallowRef(false);
11869
11851
  const transition = computed(() => {
11870
11852
  const axis = props.direction === 'vertical' ? 'y' : 'x';
11871
11853
  const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value;
11872
11854
  const direction = reverse ? '-reverse' : '';
11873
11855
  return `v-window-${axis}${direction}-transition`;
11874
11856
  });
11875
- const transitionCount = ref(0);
11857
+ const transitionCount = shallowRef(0);
11876
11858
  const transitionHeight = ref(undefined);
11877
11859
  const activeIndex = computed(() => {
11878
11860
  return group.items.value.findIndex(item => group.selected.value.includes(item.id));
@@ -12126,8 +12108,8 @@ const VWindowItem = genericComponent()({
12126
12108
  isBooted
12127
12109
  } = useSsrBoot();
12128
12110
  if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow');
12129
- const isTransitioning = ref(false);
12130
- const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false);
12111
+ const isTransitioning = shallowRef(false);
12112
+ const hasTransition = computed(() => isBooted.value && (window.isReversed.value ? props.reverseTransition !== false : props.transition !== false));
12131
12113
  function onAfterTransition() {
12132
12114
  if (!isTransitioning.value || !window) {
12133
12115
  return;
@@ -12317,8 +12299,8 @@ const VColorPickerCanvas = defineComponent({
12317
12299
  let {
12318
12300
  emit
12319
12301
  } = _ref;
12320
- const isInteracting = ref(false);
12321
- const isOutsideUpdate = ref(false);
12302
+ const isInteracting = shallowRef(false);
12303
+ const isOutsideUpdate = shallowRef(false);
12322
12304
  const dotPosition = ref({
12323
12305
  x: 0,
12324
12306
  y: 0
@@ -12336,8 +12318,8 @@ const VColorPickerCanvas = defineComponent({
12336
12318
  };
12337
12319
  });
12338
12320
  const canvasRef = ref();
12339
- const canvasWidth = ref(parseFloat(props.width));
12340
- const canvasHeight = ref(parseFloat(props.height));
12321
+ const canvasWidth = shallowRef(parseFloat(props.width));
12322
+ const canvasHeight = shallowRef(parseFloat(props.height));
12341
12323
  const {
12342
12324
  resizeRef
12343
12325
  } = useResizeObserver(entries => {
@@ -12869,8 +12851,8 @@ const useSlider = _ref => {
12869
12851
  const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color);
12870
12852
  const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color);
12871
12853
  const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color);
12872
- const mousePressed = ref(false);
12873
- const startOffset = ref(0);
12854
+ const mousePressed = shallowRef(false);
12855
+ const startOffset = shallowRef(0);
12874
12856
  const trackContainerRef = ref();
12875
12857
  const activeThumbRef = ref();
12876
12858
  function parseMouseMove(e) {
@@ -14048,8 +14030,8 @@ const VCombobox = genericComponent()({
14048
14030
  t
14049
14031
  } = useLocale();
14050
14032
  const vTextFieldRef = ref();
14051
- const isFocused = ref(false);
14052
- const isPristine = ref(true);
14033
+ const isFocused = shallowRef(false);
14034
+ const isPristine = shallowRef(true);
14053
14035
  const vMenuRef = ref();
14054
14036
  const _menu = useProxiedModel(props, 'menu');
14055
14037
  const menu = computed({
@@ -14059,7 +14041,7 @@ const VCombobox = genericComponent()({
14059
14041
  _menu.value = v;
14060
14042
  }
14061
14043
  });
14062
- const selectionIndex = ref(-1);
14044
+ const selectionIndex = shallowRef(-1);
14063
14045
  let cleared = false;
14064
14046
  const color = computed(() => vTextFieldRef.value?.color);
14065
14047
  const {
@@ -14076,7 +14058,7 @@ const VCombobox = genericComponent()({
14076
14058
  return props.multiple ? transformed : transformed[0] ?? null;
14077
14059
  });
14078
14060
  const form = useForm();
14079
- const _search = ref(!props.multiple ? model.value[0]?.title ?? '' : '');
14061
+ const _search = shallowRef(!props.multiple ? model.value[0]?.title ?? '' : '');
14080
14062
  const search = computed({
14081
14063
  get: () => {
14082
14064
  return _search.value;
@@ -14967,7 +14949,7 @@ const VFooter = genericComponent()({
14967
14949
  const {
14968
14950
  roundedClasses
14969
14951
  } = useRounded(props);
14970
- const autoHeight = ref(32);
14952
+ const autoHeight = shallowRef(32);
14971
14953
  const {
14972
14954
  resizeRef
14973
14955
  } = useResizeObserver(entries => {
@@ -15625,14 +15607,18 @@ const VMain = genericComponent()({
15625
15607
  }
15626
15608
  });
15627
15609
 
15610
+ // Utilities
15611
+
15612
+ // Types
15613
+
15628
15614
  function useSticky(_ref) {
15629
15615
  let {
15630
15616
  rootEl,
15631
15617
  isSticky,
15632
15618
  layoutItemStyles
15633
15619
  } = _ref;
15634
- const isStuck = ref(false);
15635
- const stuckPosition = ref(0);
15620
+ const isStuck = shallowRef(false);
15621
+ const stuckPosition = shallowRef(0);
15636
15622
  const stickyStyles = computed(() => {
15637
15623
  const side = typeof isStuck.value === 'boolean' ? 'top' : isStuck.value;
15638
15624
  return [isSticky.value ? {
@@ -15832,9 +15818,9 @@ function useTouch(_ref) {
15832
15818
  getVelocity
15833
15819
  } = useVelocity();
15834
15820
  let maybeDragging = false;
15835
- const isDragging = ref(false);
15836
- const dragProgress = ref(0);
15837
- const offset = ref(0);
15821
+ const isDragging = shallowRef(false);
15822
+ const dragProgress = shallowRef(0);
15823
+ const offset = shallowRef(0);
15838
15824
  let start;
15839
15825
  function getOffset(pos, active) {
15840
15826
  return (position.value === 'left' ? pos : position.value === 'right' ? document.documentElement.clientWidth - pos : position.value === 'top' ? pos : position.value === 'bottom' ? document.documentElement.clientHeight - pos : oops()) - (active ? width.value : 0);
@@ -16015,7 +16001,7 @@ const VNavigationDrawer = genericComponent()({
16015
16001
  ssrBootStyles
16016
16002
  } = useSsrBoot();
16017
16003
  const rootEl = ref();
16018
- const isHovering = ref(false);
16004
+ const isHovering = shallowRef(false);
16019
16005
  const width = computed(() => {
16020
16006
  return props.rail && props.expandOnHover && isHovering.value ? Number(props.width) : Number(props.rail ? props.railWidth : props.width);
16021
16007
  });
@@ -16283,7 +16269,7 @@ const VPagination = genericComponent()({
16283
16269
  const {
16284
16270
  width
16285
16271
  } = useDisplay();
16286
- const maxButtons = ref(-1);
16272
+ const maxButtons = shallowRef(-1);
16287
16273
  provideDefaults(undefined, {
16288
16274
  scoped: true
16289
16275
  });
@@ -16959,7 +16945,7 @@ const VRating = genericComponent()({
16959
16945
  const normalizedValue = computed(() => clamp(parseFloat(rating.value), 0, +props.length));
16960
16946
  const range = computed(() => createRange(Number(props.length), 1));
16961
16947
  const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]));
16962
- const hoverIndex = ref(-1);
16948
+ const hoverIndex = shallowRef(-1);
16963
16949
  const itemState = computed(() => increments.value.map(value => {
16964
16950
  const isHovering = props.hover && hoverIndex.value > -1;
16965
16951
  const isFilled = normalizedValue.value >= value;
@@ -17178,10 +17164,10 @@ const VSlideGroup = genericComponent()({
17178
17164
  mobile
17179
17165
  } = useDisplay();
17180
17166
  const group = useGroup(props, props.symbol);
17181
- const isOverflowing = ref(false);
17182
- const scrollOffset = ref(0);
17183
- const containerSize = ref(0);
17184
- const contentSize = ref(0);
17167
+ const isOverflowing = shallowRef(false);
17168
+ const scrollOffset = shallowRef(0);
17169
+ const containerSize = shallowRef(0);
17170
+ const contentSize = shallowRef(0);
17185
17171
  const isHorizontal = computed(() => props.direction === 'horizontal');
17186
17172
  const {
17187
17173
  resizeRef: containerRef,
@@ -17237,7 +17223,7 @@ const VSlideGroup = genericComponent()({
17237
17223
  });
17238
17224
  });
17239
17225
  }
17240
- const disableTransition = ref(false);
17226
+ const disableTransition = shallowRef(false);
17241
17227
  let startTouch = 0;
17242
17228
  let startOffset = 0;
17243
17229
  function onTouchstart(e) {
@@ -17266,7 +17252,7 @@ const VSlideGroup = genericComponent()({
17266
17252
  if (!containerRef.value) return;
17267
17253
  containerRef.value[isHorizontal.value ? 'scrollLeft' : 'scrollTop'] = 0;
17268
17254
  }
17269
- const isFocused = ref(false);
17255
+ const isFocused = shallowRef(false);
17270
17256
  function onFocusin(e) {
17271
17257
  isFocused.value = true;
17272
17258
  if (!isOverflowing.value || !contentRef.value) return;
@@ -17752,7 +17738,7 @@ const VSystemBar = genericComponent()({
17752
17738
  } = useLayoutItem({
17753
17739
  id: props.name,
17754
17740
  order: computed(() => parseInt(props.order, 10)),
17755
- position: ref('top'),
17741
+ position: shallowRef('top'),
17756
17742
  layoutSize: height,
17757
17743
  elementSize: height,
17758
17744
  active: computed(() => true),
@@ -17770,6 +17756,8 @@ const VSystemBar = genericComponent()({
17770
17756
 
17771
17757
  const VTabsSymbol = Symbol.for('vuetify:v-tabs');
17772
17758
 
17759
+ // Types
17760
+
17773
17761
  const makeVTabProps = propsFactory({
17774
17762
  fixed: Boolean,
17775
17763
  sliderColor: String,
@@ -17796,7 +17784,7 @@ const VTab = genericComponent()({
17796
17784
  textColorStyles: sliderColorStyles
17797
17785
  } = useTextColor(props, 'sliderColor');
17798
17786
  const isHorizontal = computed(() => props.direction === 'horizontal');
17799
- const isSelected = ref(false);
17787
+ const isSelected = shallowRef(false);
17800
17788
  const rootEl = ref();
17801
17789
  const sliderEl = ref();
17802
17790
  function updateSlider(_ref2) {
@@ -18061,7 +18049,7 @@ const VTextarea = genericComponent()({
18061
18049
  }
18062
18050
  const vInputRef = ref();
18063
18051
  const vFieldRef = ref();
18064
- const controlHeight = ref('');
18052
+ const controlHeight = shallowRef('');
18065
18053
  const textareaRef = ref();
18066
18054
  const isActive = computed(() => props.persistentPlaceholder || isFocused.value || props.active);
18067
18055
  function onFocus() {
@@ -18458,7 +18446,7 @@ const VTimelineItem = genericComponent()({
18458
18446
  const {
18459
18447
  dimensionStyles
18460
18448
  } = useDimension(props);
18461
- const dotSize = ref(0);
18449
+ const dotSize = shallowRef(0);
18462
18450
  const dotRef = ref();
18463
18451
  watch(dotRef, newValue => {
18464
18452
  if (!newValue) return;
@@ -18496,6 +18484,34 @@ const VTimelineItem = genericComponent()({
18496
18484
  }
18497
18485
  });
18498
18486
 
18487
+ const makeVToolbarItemsProps = propsFactory({
18488
+ ...makeComponentProps(),
18489
+ ...makeVariantProps({
18490
+ variant: 'text'
18491
+ })
18492
+ }, 'v-toolbar-items');
18493
+ const VToolbarItems = genericComponent()({
18494
+ name: 'VToolbarItems',
18495
+ props: makeVToolbarItemsProps(),
18496
+ setup(props, _ref) {
18497
+ let {
18498
+ slots
18499
+ } = _ref;
18500
+ provideDefaults({
18501
+ VBtn: {
18502
+ color: toRef(props, 'color'),
18503
+ height: 'inherit',
18504
+ variant: toRef(props, 'variant')
18505
+ }
18506
+ });
18507
+ useRender(() => createVNode("div", {
18508
+ "class": ['v-toolbar-items', props.class],
18509
+ "style": props.style
18510
+ }, [slots.default?.()]));
18511
+ return {};
18512
+ }
18513
+ });
18514
+
18499
18515
  // Types
18500
18516
 
18501
18517
  const makeVTooltipProps = propsFactory({
@@ -18652,8 +18668,8 @@ const VVirtualScroll = genericComponent()({
18652
18668
  let {
18653
18669
  slots
18654
18670
  } = _ref;
18655
- const first = ref(0);
18656
- const baseItemHeight = ref(props.itemHeight);
18671
+ const first = shallowRef(0);
18672
+ const baseItemHeight = shallowRef(props.itemHeight);
18657
18673
  const itemHeight = computed({
18658
18674
  get: () => parseInt(baseItemHeight.value ?? 0, 10),
18659
18675
  set(val) {
@@ -19527,7 +19543,7 @@ function createVuetify$1() {
19527
19543
  date
19528
19544
  };
19529
19545
  }
19530
- const version$1 = "3.2.3";
19546
+ const version$1 = "3.2.4";
19531
19547
  createVuetify$1.version = version$1;
19532
19548
 
19533
19549
  // Vue's inject() can only be used in setup
@@ -19547,7 +19563,7 @@ const createVuetify = function () {
19547
19563
  ...options
19548
19564
  });
19549
19565
  };
19550
- const version = "3.2.3";
19566
+ const version = "3.2.4";
19551
19567
  createVuetify.version = version;
19552
19568
 
19553
19569
  export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };