@vuetify/nightly 3.6.13-3.7.0-beta.0.0-dev.2024-07-12 → 3.6.13-3.7.0-beta.0.0-dev.2024-07-25

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 (174) hide show
  1. package/CHANGELOG.md +0 -13
  2. package/dist/json/attributes.json +30 -22
  3. package/dist/json/importMap-labs.json +18 -18
  4. package/dist/json/importMap.json +152 -152
  5. package/dist/json/tags.json +2 -0
  6. package/dist/json/web-types.json +53 -42
  7. package/dist/vuetify-labs.css +1255 -1257
  8. package/dist/vuetify-labs.d.ts +12304 -12192
  9. package/dist/vuetify-labs.esm.js +118 -68
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +118 -68
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.css +1293 -1295
  14. package/dist/vuetify.d.ts +10496 -10404
  15. package/dist/vuetify.esm.js +110 -64
  16. package/dist/vuetify.esm.js.map +1 -1
  17. package/dist/vuetify.js +110 -64
  18. package/dist/vuetify.js.map +1 -1
  19. package/dist/vuetify.min.css +2 -2
  20. package/dist/vuetify.min.js +1078 -1080
  21. package/dist/vuetify.min.js.map +1 -1
  22. package/lib/components/VAlert/index.d.mts +55 -55
  23. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  24. package/lib/components/VAppBar/index.d.mts +169 -169
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -8
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.mts +615 -609
  28. package/lib/components/VAvatar/index.d.mts +36 -36
  29. package/lib/components/VBadge/index.d.mts +58 -58
  30. package/lib/components/VBanner/index.d.mts +59 -59
  31. package/lib/components/VBottomNavigation/index.d.mts +58 -58
  32. package/lib/components/VBottomSheet/index.d.mts +118 -118
  33. package/lib/components/VBreadcrumbs/index.d.mts +34 -34
  34. package/lib/components/VBtn/VBtn.css +3 -0
  35. package/lib/components/VBtn/VBtn.sass +3 -0
  36. package/lib/components/VBtn/index.d.mts +107 -107
  37. package/lib/components/VBtnGroup/index.d.mts +23 -23
  38. package/lib/components/VBtnToggle/index.d.mts +40 -40
  39. package/lib/components/VCard/index.d.mts +93 -93
  40. package/lib/components/VCarousel/index.d.mts +128 -128
  41. package/lib/components/VCheckbox/index.d.mts +174 -168
  42. package/lib/components/VChip/index.d.mts +86 -86
  43. package/lib/components/VChipGroup/index.d.mts +46 -46
  44. package/lib/components/VColorPicker/index.d.mts +96 -96
  45. package/lib/components/VCombobox/VCombobox.mjs +15 -8
  46. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  47. package/lib/components/VCombobox/index.d.mts +615 -609
  48. package/lib/components/VConfirmEdit/index.d.mts +2 -2
  49. package/lib/components/VCounter/index.d.mts +27 -27
  50. package/lib/components/VDataIterator/index.d.mts +51 -50
  51. package/lib/components/VDataTable/VDataTable.mjs +10 -3
  52. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  53. package/lib/components/VDataTable/VDataTableServer.mjs +6 -2
  54. package/lib/components/VDataTable/VDataTableServer.mjs.map +1 -1
  55. package/lib/components/VDataTable/VDataTableVirtual.mjs +10 -3
  56. package/lib/components/VDataTable/VDataTableVirtual.mjs.map +1 -1
  57. package/lib/components/VDataTable/composables/group.mjs +2 -1
  58. package/lib/components/VDataTable/composables/group.mjs.map +1 -1
  59. package/lib/components/VDataTable/composables/sort.mjs +4 -4
  60. package/lib/components/VDataTable/composables/sort.mjs.map +1 -1
  61. package/lib/components/VDataTable/index.d.mts +275 -274
  62. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -0
  63. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  64. package/lib/components/VDatePicker/index.d.mts +134 -134
  65. package/lib/components/VDialog/index.d.mts +353 -353
  66. package/lib/components/VDivider/index.d.mts +15 -15
  67. package/lib/components/VEmptyState/index.d.mts +47 -47
  68. package/lib/components/VExpansionPanel/index.d.mts +134 -134
  69. package/lib/components/VFab/index.d.mts +227 -227
  70. package/lib/components/VField/VField.css +6 -11
  71. package/lib/components/VField/VField.mjs +7 -5
  72. package/lib/components/VField/VField.mjs.map +1 -1
  73. package/lib/components/VField/VField.sass +2 -6
  74. package/lib/components/VField/index.d.mts +58 -52
  75. package/lib/components/VFileInput/index.d.mts +255 -249
  76. package/lib/components/VFooter/index.d.mts +50 -50
  77. package/lib/components/VForm/index.d.mts +9 -9
  78. package/lib/components/VGrid/index.d.mts +150 -150
  79. package/lib/components/VIcon/index.d.mts +24 -24
  80. package/lib/components/VImg/index.d.mts +85 -85
  81. package/lib/components/VInfiniteScroll/index.d.mts +22 -22
  82. package/lib/components/VInput/VInput.css +5 -5
  83. package/lib/components/VInput/VInput.mjs +4 -1
  84. package/lib/components/VInput/VInput.mjs.map +1 -1
  85. package/lib/components/VInput/VInput.sass +1 -1
  86. package/lib/components/VInput/index.d.mts +61 -55
  87. package/lib/components/VItemGroup/index.d.mts +17 -17
  88. package/lib/components/VLabel/index.d.mts +8 -8
  89. package/lib/components/VLayout/index.d.mts +36 -36
  90. package/lib/components/VLazy/index.d.mts +31 -31
  91. package/lib/components/VList/index.d.mts +178 -178
  92. package/lib/components/VLocaleProvider/index.d.mts +7 -7
  93. package/lib/components/VMain/index.d.mts +10 -10
  94. package/lib/components/VMenu/VMenu.mjs +7 -5
  95. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  96. package/lib/components/VMenu/index.d.mts +396 -396
  97. package/lib/components/VMessages/index.d.mts +20 -20
  98. package/lib/components/VNavigationDrawer/index.d.mts +72 -72
  99. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  100. package/lib/components/VOtpInput/VOtpInput.mjs +1 -1
  101. package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
  102. package/lib/components/VOtpInput/index.d.mts +88 -88
  103. package/lib/components/VOverlay/index.d.mts +97 -97
  104. package/lib/components/VOverlay/locationStrategies.mjs +0 -6
  105. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  106. package/lib/components/VPagination/index.d.mts +55 -55
  107. package/lib/components/VParallax/index.d.mts +7 -7
  108. package/lib/components/VProgressCircular/index.d.mts +24 -24
  109. package/lib/components/VProgressLinear/index.d.mts +52 -52
  110. package/lib/components/VRadio/index.d.mts +41 -41
  111. package/lib/components/VRadioGroup/index.d.mts +105 -99
  112. package/lib/components/VRangeSlider/index.d.mts +102 -96
  113. package/lib/components/VRating/index.d.mts +22 -22
  114. package/lib/components/VResponsive/index.d.mts +23 -23
  115. package/lib/components/VSelect/VSelect.mjs +15 -13
  116. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  117. package/lib/components/VSelect/index.d.mts +615 -609
  118. package/lib/components/VSelect/useScrolling.mjs +3 -3
  119. package/lib/components/VSelect/useScrolling.mjs.map +1 -1
  120. package/lib/components/VSelectionControl/index.d.mts +43 -43
  121. package/lib/components/VSelectionControlGroup/index.d.mts +39 -39
  122. package/lib/components/VSheet/index.d.mts +34 -34
  123. package/lib/components/VSkeletonLoader/index.d.mts +17 -17
  124. package/lib/components/VSlideGroup/index.d.mts +33 -33
  125. package/lib/components/VSlider/index.d.mts +95 -89
  126. package/lib/components/VSnackbar/index.d.mts +411 -411
  127. package/lib/components/VSparkline/index.d.mts +38 -38
  128. package/lib/components/VSpeedDial/index.d.mts +176 -176
  129. package/lib/components/VStepper/index.d.mts +119 -119
  130. package/lib/components/VSwitch/index.d.mts +108 -102
  131. package/lib/components/VSystemBar/index.d.mts +39 -39
  132. package/lib/components/VTable/index.d.mts +4 -4
  133. package/lib/components/VTabs/index.d.mts +512 -512
  134. package/lib/components/VTextField/VTextField.mjs +1 -1
  135. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  136. package/lib/components/VTextField/index.d.mts +421 -415
  137. package/lib/components/VTextarea/VTextarea.mjs +5 -5
  138. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  139. package/lib/components/VTextarea/index.d.mts +359 -344
  140. package/lib/components/VTimeline/index.d.mts +26 -26
  141. package/lib/components/VToolbar/index.d.mts +53 -53
  142. package/lib/components/VTooltip/index.d.mts +424 -424
  143. package/lib/components/VValidation/index.d.mts +19 -19
  144. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +2 -0
  145. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  146. package/lib/components/VVirtualScroll/index.d.mts +13 -10
  147. package/lib/components/VWindow/index.d.mts +31 -31
  148. package/lib/components/index.d.mts +10657 -10566
  149. package/lib/components/transitions/index.d.mts +200 -200
  150. package/lib/composables/nested/nested.mjs +0 -1
  151. package/lib/composables/nested/nested.mjs.map +1 -1
  152. package/lib/composables/virtual.mjs +1 -0
  153. package/lib/composables/virtual.mjs.map +1 -1
  154. package/lib/entry-bundler.mjs +1 -1
  155. package/lib/framework.mjs +1 -1
  156. package/lib/index.d.mts +81 -80
  157. package/lib/labs/VCalendar/index.d.mts +52 -52
  158. package/lib/labs/VDateInput/VDateInput.mjs +6 -3
  159. package/lib/labs/VDateInput/VDateInput.mjs.map +1 -1
  160. package/lib/labs/VDateInput/index.d.mts +256 -250
  161. package/lib/labs/VNumberInput/index.d.mts +247 -241
  162. package/lib/labs/VPicker/index.d.mts +45 -45
  163. package/lib/labs/VSnackbarQueue/index.d.mts +611 -611
  164. package/lib/labs/VStepperVertical/index.d.mts +212 -212
  165. package/lib/labs/VTimePicker/VTimePickerClock.mjs +0 -1
  166. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  167. package/lib/labs/VTimePicker/VTimePickerControls.mjs +2 -1
  168. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  169. package/lib/labs/VTimePicker/index.d.mts +131 -122
  170. package/lib/labs/VTreeview/index.d.mts +199 -199
  171. package/lib/labs/components.d.mts +1754 -1733
  172. package/lib/util/helpers.mjs +5 -0
  173. package/lib/util/helpers.mjs.map +1 -1
  174. package/package.json +9 -4
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.13-3.7.0-beta.0.0-dev.2024-07-12
2
+ * Vuetify v3.6.13-3.7.0-beta.0.0-dev.2024-07-25
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -575,6 +575,11 @@ function templateRef() {
575
575
  });
576
576
  return fn;
577
577
  }
578
+ function checkPrintable(e) {
579
+ const isPrintableChar = e.key.length === 1;
580
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
581
+ return isPrintableChar && noModifier;
582
+ }
578
583
 
579
584
  // Utilities
580
585
  const block = ['top', 'bottom'];
@@ -6817,7 +6822,10 @@ function useValidation(props) {
6817
6822
  const makeVInputProps = propsFactory({
6818
6823
  id: String,
6819
6824
  appendIcon: IconValue,
6820
- centerAffix: Boolean,
6825
+ centerAffix: {
6826
+ type: Boolean,
6827
+ default: true
6828
+ },
6821
6829
  prependIcon: IconValue,
6822
6830
  hideDetails: [Boolean, String],
6823
6831
  hideSpinButtons: Boolean,
@@ -8567,7 +8575,6 @@ const useNested = props => {
8567
8575
  children.value.set(parent, list.filter(child => child !== id));
8568
8576
  }
8569
8577
  parents.value.delete(id);
8570
- opened.value.delete(id);
8571
8578
  },
8572
8579
  open: (id, value, event) => {
8573
8580
  vm.emit('click:open', {
@@ -9741,12 +9748,6 @@ function getIntrinsicSize(el, isRtl) {
9741
9748
  // el.style.removeProperty('max-width')
9742
9749
  // el.style.removeProperty('max-height')
9743
9750
 
9744
- if (isRtl) {
9745
- el.style.removeProperty('left');
9746
- } else {
9747
- el.style.removeProperty('right');
9748
- }
9749
-
9750
9751
  /* eslint-disable-next-line sonarjs/prefer-immediate-return */
9751
9752
  const contentBox = nullifyTransforms(el);
9752
9753
  if (isRtl) {
@@ -11138,23 +11139,25 @@ const VMenu = genericComponent()({
11138
11139
  const id = computed(() => props.id || `v-menu-${uid}`);
11139
11140
  const overlay = ref();
11140
11141
  const parent = inject$1(VMenuSymbol, null);
11141
- const openChildren = shallowRef(0);
11142
+ const openChildren = shallowRef(new Set());
11142
11143
  provide(VMenuSymbol, {
11143
11144
  register() {
11144
- ++openChildren.value;
11145
+ openChildren.value.add(uid);
11145
11146
  },
11146
11147
  unregister() {
11147
- --openChildren.value;
11148
+ openChildren.value.delete(uid);
11148
11149
  },
11149
11150
  closeParents(e) {
11150
11151
  setTimeout(() => {
11151
- if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11152
+ if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11152
11153
  isActive.value = false;
11153
11154
  parent?.closeParents();
11154
11155
  }
11155
11156
  }, 40);
11156
11157
  }
11157
11158
  });
11159
+ onBeforeUnmount(() => parent?.unregister());
11160
+ onDeactivated(() => isActive.value = false);
11158
11161
  async function onFocusIn(e) {
11159
11162
  const before = e.relatedTarget;
11160
11163
  const after = e.target;
@@ -11337,7 +11340,10 @@ const makeVFieldProps = propsFactory({
11337
11340
  default: '$clear'
11338
11341
  },
11339
11342
  active: Boolean,
11340
- centerAffix: Boolean,
11343
+ centerAffix: {
11344
+ type: Boolean,
11345
+ default: undefined
11346
+ },
11341
11347
  color: String,
11342
11348
  baseColor: String,
11343
11349
  dirty: Boolean,
@@ -11404,9 +11410,8 @@ const VField = genericComponent()({
11404
11410
  const {
11405
11411
  rtlClasses
11406
11412
  } = useRtl();
11407
- const isSingleLine = computed(() => props.singleLine || props.centerAffix);
11408
11413
  const isActive = computed(() => props.dirty || props.active);
11409
- const hasLabel = computed(() => !isSingleLine.value && !!(props.label || slots.label));
11414
+ const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label));
11410
11415
  const uid = getUid();
11411
11416
  const id = computed(() => props.id || `input-${uid}`);
11412
11417
  const messagesId = computed(() => `${id.value}-messages`);
@@ -11495,7 +11500,7 @@ const VField = genericComponent()({
11495
11500
  "class": ['v-field', {
11496
11501
  'v-field--active': isActive.value,
11497
11502
  'v-field--appended': hasAppend,
11498
- 'v-field--center-affix': props.centerAffix,
11503
+ 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,
11499
11504
  'v-field--disabled': props.disabled,
11500
11505
  'v-field--dirty': props.dirty,
11501
11506
  'v-field--error': props.error,
@@ -11504,7 +11509,7 @@ const VField = genericComponent()({
11504
11509
  'v-field--persistent-clear': props.persistentClear,
11505
11510
  'v-field--prepended': hasPrepend,
11506
11511
  'v-field--reverse': props.reverse,
11507
- 'v-field--single-line': isSingleLine.value,
11512
+ 'v-field--single-line': props.singleLine,
11508
11513
  'v-field--no-label': !label(),
11509
11514
  [`v-field--variant-${props.variant}`]: true
11510
11515
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
@@ -11739,6 +11744,7 @@ const VTextField = genericComponent()({
11739
11744
  }, props.class],
11740
11745
  "style": props.style
11741
11746
  }, rootAttrs, inputProps, {
11747
+ "centerAffix": !isPlainOrUnderlined.value,
11742
11748
  "focused": isFocused.value
11743
11749
  }), {
11744
11750
  ...slots,
@@ -11764,7 +11770,6 @@ const VTextField = genericComponent()({
11764
11770
  "dirty": isDirty.value || props.dirty,
11765
11771
  "disabled": isDisabled.value,
11766
11772
  "focused": isFocused.value,
11767
- "centerAffix": props.centerAffix,
11768
11773
  "error": isValid.value === false
11769
11774
  }), {
11770
11775
  ...slots,
@@ -12064,6 +12069,7 @@ function useVirtual(props, items) {
12064
12069
  deep: true
12065
12070
  });
12066
12071
  return {
12072
+ calculateVisibleItems,
12067
12073
  containerRef,
12068
12074
  markerRef,
12069
12075
  computedItems,
@@ -12127,6 +12133,7 @@ const VVirtualScroll = genericComponent()({
12127
12133
  dimensionStyles
12128
12134
  } = useDimension(props);
12129
12135
  const {
12136
+ calculateVisibleItems,
12130
12137
  containerRef,
12131
12138
  markerRef,
12132
12139
  handleScroll,
@@ -12198,6 +12205,7 @@ const VVirtualScroll = genericComponent()({
12198
12205
  }, [children])]);
12199
12206
  });
12200
12207
  return {
12208
+ calculateVisibleItems,
12201
12209
  scrollToIndex
12202
12210
  };
12203
12211
  }
@@ -12266,9 +12274,9 @@ function useScrolling(listRef, textFieldRef) {
12266
12274
  }
12267
12275
  }
12268
12276
  return {
12269
- onListScroll,
12270
- onListKeydown
12271
- };
12277
+ onScrollPassive: onListScroll,
12278
+ onKeydown: onListKeydown
12279
+ }; // typescript doesn't know about vue's event merging
12272
12280
  }
12273
12281
 
12274
12282
  // Types
@@ -12343,7 +12351,7 @@ const VSelect = genericComponent()({
12343
12351
  const menu = computed({
12344
12352
  get: () => _menu.value,
12345
12353
  set: v => {
12346
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12354
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12347
12355
  _menu.value = v;
12348
12356
  }
12349
12357
  });
@@ -12382,10 +12390,7 @@ const VSelect = genericComponent()({
12382
12390
  };
12383
12391
  });
12384
12392
  const listRef = ref();
12385
- const {
12386
- onListScroll,
12387
- onListKeydown
12388
- } = useScrolling(listRef, vTextFieldRef);
12393
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12389
12394
  function onClear(e) {
12390
12395
  if (props.openOnClear) {
12391
12396
  menu.value = true;
@@ -12395,6 +12400,11 @@ const VSelect = genericComponent()({
12395
12400
  if (menuDisabled.value) return;
12396
12401
  menu.value = !menu.value;
12397
12402
  }
12403
+ function onListKeydown(e) {
12404
+ if (checkPrintable(e)) {
12405
+ onKeydown(e);
12406
+ }
12407
+ }
12398
12408
  function onKeydown(e) {
12399
12409
  if (!e.key || props.readonly || form?.isReadonly.value) return;
12400
12410
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
@@ -12415,11 +12425,6 @@ const VSelect = genericComponent()({
12415
12425
  // html select hotkeys
12416
12426
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
12417
12427
 
12418
- function checkPrintable(e) {
12419
- const isPrintableChar = e.key.length === 1;
12420
- const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
12421
- return isPrintableChar && noModifier;
12422
- }
12423
12428
  if (props.multiple || !checkPrintable(e)) return;
12424
12429
  const now = performance.now();
12425
12430
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
@@ -12464,6 +12469,11 @@ const VSelect = genericComponent()({
12464
12469
  menu.value = false;
12465
12470
  }
12466
12471
  }
12472
+ function onAfterEnter() {
12473
+ if (props.eager) {
12474
+ vVirtualScrollRef.value?.calculateVisibleItems();
12475
+ }
12476
+ }
12467
12477
  function onAfterLeave() {
12468
12478
  if (isFocused.value) {
12469
12479
  vTextFieldRef.value?.focus();
@@ -12542,6 +12552,7 @@ const VSelect = genericComponent()({
12542
12552
  "openOnClick": false,
12543
12553
  "closeOnContentClick": false,
12544
12554
  "transition": props.transition,
12555
+ "onAfterEnter": onAfterEnter,
12545
12556
  "onAfterLeave": onAfterLeave
12546
12557
  }, computedMenuProps.value), {
12547
12558
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -12551,11 +12562,10 @@ const VSelect = genericComponent()({
12551
12562
  "onMousedown": e => e.preventDefault(),
12552
12563
  "onKeydown": onListKeydown,
12553
12564
  "onFocusin": onFocusin,
12554
- "onScrollPassive": onListScroll,
12555
12565
  "tabindex": "-1",
12556
12566
  "aria-live": "polite",
12557
12567
  "color": props.itemColor ?? props.color
12558
- }, props.listProps), {
12568
+ }, listEvents, props.listProps), {
12559
12569
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
12560
12570
  "title": t(props.noDataText)
12561
12571
  }, null)), createVNode(VVirtualScroll, {
@@ -12850,7 +12860,7 @@ const VAutocomplete = genericComponent()({
12850
12860
  const menu = computed({
12851
12861
  get: () => _menu.value,
12852
12862
  set: v => {
12853
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12863
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12854
12864
  _menu.value = v;
12855
12865
  }
12856
12866
  });
@@ -12894,10 +12904,7 @@ const VAutocomplete = genericComponent()({
12894
12904
  });
12895
12905
  const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12896
12906
  const listRef = ref();
12897
- const {
12898
- onListScroll,
12899
- onListKeydown
12900
- } = useScrolling(listRef, vTextFieldRef);
12907
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12901
12908
  function onClear(e) {
12902
12909
  if (props.openOnClear) {
12903
12910
  menu.value = true;
@@ -12916,6 +12923,11 @@ const VAutocomplete = genericComponent()({
12916
12923
  }
12917
12924
  menu.value = !menu.value;
12918
12925
  }
12926
+ function onListKeydown(e) {
12927
+ if (checkPrintable(e)) {
12928
+ vTextFieldRef.value?.focus();
12929
+ }
12930
+ }
12919
12931
  function onKeydown(e) {
12920
12932
  if (props.readonly || form?.isReadonly.value) return;
12921
12933
  const selectionStart = vTextFieldRef.value.selectionStart;
@@ -12980,6 +12992,11 @@ const VAutocomplete = genericComponent()({
12980
12992
  }
12981
12993
  }
12982
12994
  }
12995
+ function onAfterEnter() {
12996
+ if (props.eager) {
12997
+ vVirtualScrollRef.value?.calculateVisibleItems();
12998
+ }
12999
+ }
12983
13000
  function onAfterLeave() {
12984
13001
  if (isFocused.value) {
12985
13002
  isPristine.value = true;
@@ -13108,6 +13125,7 @@ const VAutocomplete = genericComponent()({
13108
13125
  "openOnClick": false,
13109
13126
  "closeOnContentClick": false,
13110
13127
  "transition": props.transition,
13128
+ "onAfterEnter": onAfterEnter,
13111
13129
  "onAfterLeave": onAfterLeave
13112
13130
  }, props.menuProps), {
13113
13131
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -13118,11 +13136,10 @@ const VAutocomplete = genericComponent()({
13118
13136
  "onKeydown": onListKeydown,
13119
13137
  "onFocusin": onFocusin,
13120
13138
  "onFocusout": onFocusout,
13121
- "onScrollPassive": onListScroll,
13122
13139
  "tabindex": "-1",
13123
13140
  "aria-live": "polite",
13124
13141
  "color": props.itemColor ?? props.color
13125
- }, props.listProps), {
13142
+ }, listEvents, props.listProps), {
13126
13143
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
13127
13144
  "title": t(props.noDataText)
13128
13145
  }, null)), createVNode(VVirtualScroll, {
@@ -16683,7 +16700,7 @@ const VCombobox = genericComponent()({
16683
16700
  const menu = computed({
16684
16701
  get: () => _menu.value,
16685
16702
  set: v => {
16686
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
16703
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
16687
16704
  _menu.value = v;
16688
16705
  }
16689
16706
  });
@@ -16766,10 +16783,7 @@ const VCombobox = genericComponent()({
16766
16783
  });
16767
16784
  const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16768
16785
  const listRef = ref();
16769
- const {
16770
- onListScroll,
16771
- onListKeydown
16772
- } = useScrolling(listRef, vTextFieldRef);
16786
+ const listEvents = useScrolling(listRef, vTextFieldRef);
16773
16787
  function onClear(e) {
16774
16788
  cleared = true;
16775
16789
  if (props.openOnClear) {
@@ -16788,6 +16802,11 @@ const VCombobox = genericComponent()({
16788
16802
  }
16789
16803
  menu.value = !menu.value;
16790
16804
  }
16805
+ function onListKeydown(e) {
16806
+ if (checkPrintable(e)) {
16807
+ vTextFieldRef.value?.focus();
16808
+ }
16809
+ }
16791
16810
  // eslint-disable-next-line complexity
16792
16811
  function onKeydown(e) {
16793
16812
  if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
@@ -16852,6 +16871,11 @@ const VCombobox = genericComponent()({
16852
16871
  }
16853
16872
  }
16854
16873
  }
16874
+ function onAfterEnter() {
16875
+ if (props.eager) {
16876
+ vVirtualScrollRef.value?.calculateVisibleItems();
16877
+ }
16878
+ }
16855
16879
  function onAfterLeave() {
16856
16880
  if (isFocused.value) {
16857
16881
  isPristine.value = true;
@@ -16976,6 +17000,7 @@ const VCombobox = genericComponent()({
16976
17000
  "openOnClick": false,
16977
17001
  "closeOnContentClick": false,
16978
17002
  "transition": props.transition,
17003
+ "onAfterEnter": onAfterEnter,
16979
17004
  "onAfterLeave": onAfterLeave
16980
17005
  }, props.menuProps), {
16981
17006
  default: () => [hasList && createVNode(VList, mergeProps({
@@ -16986,11 +17011,10 @@ const VCombobox = genericComponent()({
16986
17011
  "onKeydown": onListKeydown,
16987
17012
  "onFocusin": onFocusin,
16988
17013
  "onFocusout": onFocusout,
16989
- "onScrollPassive": onListScroll,
16990
17014
  "tabindex": "-1",
16991
17015
  "aria-live": "polite",
16992
17016
  "color": props.itemColor ?? props.color
16993
- }, props.listProps), {
17017
+ }, listEvents, props.listProps), {
16994
17018
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
16995
17019
  "title": t(props.noDataText)
16996
17020
  }, null)), createVNode(VVirtualScroll, {
@@ -18105,6 +18129,7 @@ function createGroupBy(props) {
18105
18129
  }
18106
18130
  function provideGroupBy(options) {
18107
18131
  const {
18132
+ disableSort,
18108
18133
  groupBy,
18109
18134
  sortBy
18110
18135
  } = options;
@@ -18113,7 +18138,7 @@ function provideGroupBy(options) {
18113
18138
  return groupBy.value.map(val => ({
18114
18139
  ...val,
18115
18140
  order: val.order ?? false
18116
- })).concat(sortBy.value);
18141
+ })).concat(disableSort?.value ? [] : sortBy.value);
18117
18142
  });
18118
18143
  function isGroupOpen(group) {
18119
18144
  return opened.value.has(group.id);
@@ -18622,7 +18647,7 @@ function useSort() {
18622
18647
  function useSortedItems(props, items, sortBy, options) {
18623
18648
  const locale = useLocale();
18624
18649
  const sortedItems = computed(() => {
18625
- if (!sortBy.value.length || props.disableSort) return items.value;
18650
+ if (!sortBy.value.length) return items.value;
18626
18651
  return sortItems(items.value, sortBy.value, locale.current.value, {
18627
18652
  transform: options?.transform,
18628
18653
  sortFunctions: {
@@ -18648,8 +18673,8 @@ function sortItems(items, sortByItems, locale, options) {
18648
18673
  const sortKey = sortByItems[i].key;
18649
18674
  const sortOrder = sortByItems[i].order ?? 'asc';
18650
18675
  if (sortOrder === false) continue;
18651
- let sortA = a[1][sortKey];
18652
- let sortB = b[1][sortKey];
18676
+ let sortA = getObjectValueByPath(a[1], sortKey);
18677
+ let sortB = getObjectValueByPath(b[1], sortKey);
18653
18678
  let sortARaw = a[0].raw;
18654
18679
  let sortBRaw = b[0].raw;
18655
18680
  if (sortOrder === 'desc') {
@@ -20374,6 +20399,9 @@ const VDataTable = genericComponent()({
20374
20399
  page,
20375
20400
  itemsPerPage
20376
20401
  } = createPagination(props);
20402
+ const {
20403
+ disableSort
20404
+ } = toRefs(props);
20377
20405
  const {
20378
20406
  columns,
20379
20407
  headers,
@@ -20411,12 +20439,16 @@ const VDataTable = genericComponent()({
20411
20439
  toggleGroup
20412
20440
  } = provideGroupBy({
20413
20441
  groupBy,
20414
- sortBy
20442
+ sortBy,
20443
+ disableSort
20415
20444
  });
20416
20445
  const {
20417
20446
  sortedItems
20418
20447
  } = useSortedItems(props, filteredItems, sortByWithGroups, {
20419
- transform: item => item.columns,
20448
+ transform: item => ({
20449
+ ...item.raw,
20450
+ ...item.columns
20451
+ }),
20420
20452
  sortFunctions,
20421
20453
  sortRawFunctions
20422
20454
  });
@@ -20554,6 +20586,9 @@ const VDataTableVirtual = genericComponent()({
20554
20586
  multiSort,
20555
20587
  mustSort
20556
20588
  } = createSort(props);
20589
+ const {
20590
+ disableSort
20591
+ } = toRefs(props);
20557
20592
  const {
20558
20593
  columns,
20559
20594
  headers,
@@ -20590,12 +20625,16 @@ const VDataTableVirtual = genericComponent()({
20590
20625
  toggleGroup
20591
20626
  } = provideGroupBy({
20592
20627
  groupBy,
20593
- sortBy
20628
+ sortBy,
20629
+ disableSort
20594
20630
  });
20595
20631
  const {
20596
20632
  sortedItems
20597
20633
  } = useSortedItems(props, filteredItems, sortByWithGroups, {
20598
- transform: item => item.columns,
20634
+ transform: item => ({
20635
+ ...item.raw,
20636
+ ...item.columns
20637
+ }),
20599
20638
  sortFunctions,
20600
20639
  sortRawFunctions
20601
20640
  });
@@ -20779,6 +20818,9 @@ const VDataTableServer = genericComponent()({
20779
20818
  page,
20780
20819
  itemsPerPage
20781
20820
  } = createPagination(props);
20821
+ const {
20822
+ disableSort
20823
+ } = toRefs(props);
20782
20824
  const itemsLength = computed(() => parseInt(props.itemsLength, 10));
20783
20825
  const {
20784
20826
  columns,
@@ -20806,7 +20848,8 @@ const VDataTableServer = genericComponent()({
20806
20848
  extractRows
20807
20849
  } = provideGroupBy({
20808
20850
  groupBy,
20809
- sortBy
20851
+ sortBy,
20852
+ disableSort
20810
20853
  });
20811
20854
  const {
20812
20855
  pageCount,
@@ -21570,6 +21613,9 @@ const VDatePickerMonth = genericComponent()({
21570
21613
  const _value = adapter.startOfDay(value);
21571
21614
  if (model.value.length === 0) {
21572
21615
  rangeStart.value = undefined;
21616
+ } else if (model.value.length === 1) {
21617
+ rangeStart.value = model.value[0];
21618
+ rangeStop.value = undefined;
21573
21619
  }
21574
21620
  if (!rangeStart.value) {
21575
21621
  rangeStart.value = _value;
@@ -24254,7 +24300,7 @@ const VOtpInput = genericComponent()({
24254
24300
  function onPaste(index, e) {
24255
24301
  e.preventDefault();
24256
24302
  e.stopPropagation();
24257
- const clipboardText = e?.clipboardData?.getData('Text') ?? '';
24303
+ const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
24258
24304
  if (isValidNumber(clipboardText)) return;
24259
24305
  model.value = clipboardText.split('');
24260
24306
  inputRef.value?.[index].blur();
@@ -26799,8 +26845,8 @@ const makeVTextareaProps = propsFactory({
26799
26845
  },
26800
26846
  suffix: String,
26801
26847
  modelModifiers: Object,
26802
- ...omit(makeVInputProps(), ['centerAffix']),
26803
- ...omit(makeVFieldProps(), ['centerAffix'])
26848
+ ...makeVInputProps(),
26849
+ ...makeVFieldProps()
26804
26850
  }, 'VTextarea');
26805
26851
  const VTextarea = genericComponent()({
26806
26852
  name: 'VTextarea',
@@ -26939,7 +26985,7 @@ const VTextarea = genericComponent()({
26939
26985
  }, props.class],
26940
26986
  "style": props.style
26941
26987
  }, rootAttrs, inputProps, {
26942
- "centerAffix": false,
26988
+ "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
26943
26989
  "focused": isFocused.value
26944
26990
  }), {
26945
26991
  ...slots,
@@ -26964,7 +27010,7 @@ const VTextarea = genericComponent()({
26964
27010
  }, fieldProps, {
26965
27011
  "id": id.value,
26966
27012
  "active": isActive.value || isDirty.value,
26967
- "centerAffix": false,
27013
+ "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
26968
27014
  "dirty": isDirty.value || props.dirty,
26969
27015
  "disabled": isDisabled.value,
26970
27016
  "focused": isFocused.value,
@@ -27955,6 +28001,7 @@ const VDateInput = genericComponent()({
27955
28001
  }
27956
28002
  return adapter.isValid(model.value) ? adapter.format(model.value, 'keyboardDate') : '';
27957
28003
  });
28004
+ const isInteractive = computed(() => !props.disabled && !props.readonly);
27958
28005
  function onKeydown(e) {
27959
28006
  if (e.key !== 'Enter') return;
27960
28007
  if (!menu.value || !isFocused.value) {
@@ -27977,13 +28024,15 @@ const VDateInput = genericComponent()({
27977
28024
  const datePickerProps = VDatePicker.filterProps(omit(props, ['active']));
27978
28025
  const textFieldProps = VTextField.filterProps(props);
27979
28026
  return createVNode(VTextField, mergeProps(textFieldProps, {
28027
+ "class": props.class,
28028
+ "style": props.style,
27980
28029
  "modelValue": display.value,
27981
- "onKeydown": onKeydown,
28030
+ "onKeydown": isInteractive.value ? onKeydown : undefined,
27982
28031
  "focused": menu.value || isFocused.value,
27983
28032
  "onFocus": focus,
27984
28033
  "onBlur": blur,
27985
- "onClick:control": onClick,
27986
- "onClick:prepend": onClick
28034
+ "onClick:control": isInteractive.value ? onClick : undefined,
28035
+ "onClick:prepend": isInteractive.value ? onClick : undefined
27987
28036
  }), {
27988
28037
  default: () => [createVNode(VMenu, {
27989
28038
  "modelValue": menu.value,
@@ -29004,6 +29053,7 @@ var SelectingTimes = /*#__PURE__*/function (SelectingTimes) {
29004
29053
 
29005
29054
  const makeVTimePickerControlsProps = propsFactory({
29006
29055
  ampm: Boolean,
29056
+ ampmInTitle: Boolean,
29007
29057
  ampmReadonly: Boolean,
29008
29058
  color: String,
29009
29059
  disabled: Boolean,
@@ -29088,7 +29138,7 @@ const VTimePickerControls = genericComponent()({
29088
29138
  },
29089
29139
  "disabled": props.disabled,
29090
29140
  "text": props.second == null ? '--' : pad(props.second)
29091
- }, null), props.ampm && createVNode("div", {
29141
+ }, null), props.ampm && props.ampmInTitle && createVNode("div", {
29092
29142
  "class": ['v-time-picker-controls__ampm', {
29093
29143
  'v-time-picker-controls__ampm--readonly': props.ampmReadonly
29094
29144
  }]
@@ -30258,7 +30308,7 @@ function createVuetify$1() {
30258
30308
  goTo
30259
30309
  };
30260
30310
  }
30261
- const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-12";
30311
+ const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
30262
30312
  createVuetify$1.version = version$1;
30263
30313
 
30264
30314
  // Vue's inject() can only be used in setup
@@ -30511,7 +30561,7 @@ var index = /*#__PURE__*/Object.freeze({
30511
30561
 
30512
30562
  /* eslint-disable local-rules/sort-imports */
30513
30563
 
30514
- const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-12";
30564
+ const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
30515
30565
 
30516
30566
  /* eslint-disable local-rules/sort-imports */
30517
30567