@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
  */
@@ -579,6 +579,11 @@
579
579
  });
580
580
  return fn;
581
581
  }
582
+ function checkPrintable(e) {
583
+ const isPrintableChar = e.key.length === 1;
584
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
585
+ return isPrintableChar && noModifier;
586
+ }
582
587
 
583
588
  // Utilities
584
589
  const block = ['top', 'bottom'];
@@ -6821,7 +6826,10 @@
6821
6826
  const makeVInputProps = propsFactory({
6822
6827
  id: String,
6823
6828
  appendIcon: IconValue,
6824
- centerAffix: Boolean,
6829
+ centerAffix: {
6830
+ type: Boolean,
6831
+ default: true
6832
+ },
6825
6833
  prependIcon: IconValue,
6826
6834
  hideDetails: [Boolean, String],
6827
6835
  hideSpinButtons: Boolean,
@@ -8571,7 +8579,6 @@
8571
8579
  children.value.set(parent, list.filter(child => child !== id));
8572
8580
  }
8573
8581
  parents.value.delete(id);
8574
- opened.value.delete(id);
8575
8582
  },
8576
8583
  open: (id, value, event) => {
8577
8584
  vm.emit('click:open', {
@@ -9745,12 +9752,6 @@
9745
9752
  // el.style.removeProperty('max-width')
9746
9753
  // el.style.removeProperty('max-height')
9747
9754
 
9748
- if (isRtl) {
9749
- el.style.removeProperty('left');
9750
- } else {
9751
- el.style.removeProperty('right');
9752
- }
9753
-
9754
9755
  /* eslint-disable-next-line sonarjs/prefer-immediate-return */
9755
9756
  const contentBox = nullifyTransforms(el);
9756
9757
  if (isRtl) {
@@ -11142,23 +11143,25 @@
11142
11143
  const id = vue.computed(() => props.id || `v-menu-${uid}`);
11143
11144
  const overlay = vue.ref();
11144
11145
  const parent = vue.inject(VMenuSymbol, null);
11145
- const openChildren = vue.shallowRef(0);
11146
+ const openChildren = vue.shallowRef(new Set());
11146
11147
  vue.provide(VMenuSymbol, {
11147
11148
  register() {
11148
- ++openChildren.value;
11149
+ openChildren.value.add(uid);
11149
11150
  },
11150
11151
  unregister() {
11151
- --openChildren.value;
11152
+ openChildren.value.delete(uid);
11152
11153
  },
11153
11154
  closeParents(e) {
11154
11155
  setTimeout(() => {
11155
- if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11156
+ if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11156
11157
  isActive.value = false;
11157
11158
  parent?.closeParents();
11158
11159
  }
11159
11160
  }, 40);
11160
11161
  }
11161
11162
  });
11163
+ vue.onBeforeUnmount(() => parent?.unregister());
11164
+ vue.onDeactivated(() => isActive.value = false);
11162
11165
  async function onFocusIn(e) {
11163
11166
  const before = e.relatedTarget;
11164
11167
  const after = e.target;
@@ -11341,7 +11344,10 @@
11341
11344
  default: '$clear'
11342
11345
  },
11343
11346
  active: Boolean,
11344
- centerAffix: Boolean,
11347
+ centerAffix: {
11348
+ type: Boolean,
11349
+ default: undefined
11350
+ },
11345
11351
  color: String,
11346
11352
  baseColor: String,
11347
11353
  dirty: Boolean,
@@ -11408,9 +11414,8 @@
11408
11414
  const {
11409
11415
  rtlClasses
11410
11416
  } = useRtl();
11411
- const isSingleLine = vue.computed(() => props.singleLine || props.centerAffix);
11412
11417
  const isActive = vue.computed(() => props.dirty || props.active);
11413
- const hasLabel = vue.computed(() => !isSingleLine.value && !!(props.label || slots.label));
11418
+ const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
11414
11419
  const uid = getUid();
11415
11420
  const id = vue.computed(() => props.id || `input-${uid}`);
11416
11421
  const messagesId = vue.computed(() => `${id.value}-messages`);
@@ -11499,7 +11504,7 @@
11499
11504
  "class": ['v-field', {
11500
11505
  'v-field--active': isActive.value,
11501
11506
  'v-field--appended': hasAppend,
11502
- 'v-field--center-affix': props.centerAffix,
11507
+ 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,
11503
11508
  'v-field--disabled': props.disabled,
11504
11509
  'v-field--dirty': props.dirty,
11505
11510
  'v-field--error': props.error,
@@ -11508,7 +11513,7 @@
11508
11513
  'v-field--persistent-clear': props.persistentClear,
11509
11514
  'v-field--prepended': hasPrepend,
11510
11515
  'v-field--reverse': props.reverse,
11511
- 'v-field--single-line': isSingleLine.value,
11516
+ 'v-field--single-line': props.singleLine,
11512
11517
  'v-field--no-label': !label(),
11513
11518
  [`v-field--variant-${props.variant}`]: true
11514
11519
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
@@ -11743,6 +11748,7 @@
11743
11748
  }, props.class],
11744
11749
  "style": props.style
11745
11750
  }, rootAttrs, inputProps, {
11751
+ "centerAffix": !isPlainOrUnderlined.value,
11746
11752
  "focused": isFocused.value
11747
11753
  }), {
11748
11754
  ...slots,
@@ -11768,7 +11774,6 @@
11768
11774
  "dirty": isDirty.value || props.dirty,
11769
11775
  "disabled": isDisabled.value,
11770
11776
  "focused": isFocused.value,
11771
- "centerAffix": props.centerAffix,
11772
11777
  "error": isValid.value === false
11773
11778
  }), {
11774
11779
  ...slots,
@@ -12068,6 +12073,7 @@
12068
12073
  deep: true
12069
12074
  });
12070
12075
  return {
12076
+ calculateVisibleItems,
12071
12077
  containerRef,
12072
12078
  markerRef,
12073
12079
  computedItems,
@@ -12131,6 +12137,7 @@
12131
12137
  dimensionStyles
12132
12138
  } = useDimension(props);
12133
12139
  const {
12140
+ calculateVisibleItems,
12134
12141
  containerRef,
12135
12142
  markerRef,
12136
12143
  handleScroll,
@@ -12202,6 +12209,7 @@
12202
12209
  }, [children])]);
12203
12210
  });
12204
12211
  return {
12212
+ calculateVisibleItems,
12205
12213
  scrollToIndex
12206
12214
  };
12207
12215
  }
@@ -12270,9 +12278,9 @@
12270
12278
  }
12271
12279
  }
12272
12280
  return {
12273
- onListScroll,
12274
- onListKeydown
12275
- };
12281
+ onScrollPassive: onListScroll,
12282
+ onKeydown: onListKeydown
12283
+ }; // typescript doesn't know about vue's event merging
12276
12284
  }
12277
12285
 
12278
12286
  // Types
@@ -12347,7 +12355,7 @@
12347
12355
  const menu = vue.computed({
12348
12356
  get: () => _menu.value,
12349
12357
  set: v => {
12350
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12358
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12351
12359
  _menu.value = v;
12352
12360
  }
12353
12361
  });
@@ -12386,10 +12394,7 @@
12386
12394
  };
12387
12395
  });
12388
12396
  const listRef = vue.ref();
12389
- const {
12390
- onListScroll,
12391
- onListKeydown
12392
- } = useScrolling(listRef, vTextFieldRef);
12397
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12393
12398
  function onClear(e) {
12394
12399
  if (props.openOnClear) {
12395
12400
  menu.value = true;
@@ -12399,6 +12404,11 @@
12399
12404
  if (menuDisabled.value) return;
12400
12405
  menu.value = !menu.value;
12401
12406
  }
12407
+ function onListKeydown(e) {
12408
+ if (checkPrintable(e)) {
12409
+ onKeydown(e);
12410
+ }
12411
+ }
12402
12412
  function onKeydown(e) {
12403
12413
  if (!e.key || props.readonly || form?.isReadonly.value) return;
12404
12414
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
@@ -12419,11 +12429,6 @@
12419
12429
  // html select hotkeys
12420
12430
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
12421
12431
 
12422
- function checkPrintable(e) {
12423
- const isPrintableChar = e.key.length === 1;
12424
- const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
12425
- return isPrintableChar && noModifier;
12426
- }
12427
12432
  if (props.multiple || !checkPrintable(e)) return;
12428
12433
  const now = performance.now();
12429
12434
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
@@ -12468,6 +12473,11 @@
12468
12473
  menu.value = false;
12469
12474
  }
12470
12475
  }
12476
+ function onAfterEnter() {
12477
+ if (props.eager) {
12478
+ vVirtualScrollRef.value?.calculateVisibleItems();
12479
+ }
12480
+ }
12471
12481
  function onAfterLeave() {
12472
12482
  if (isFocused.value) {
12473
12483
  vTextFieldRef.value?.focus();
@@ -12546,6 +12556,7 @@
12546
12556
  "openOnClick": false,
12547
12557
  "closeOnContentClick": false,
12548
12558
  "transition": props.transition,
12559
+ "onAfterEnter": onAfterEnter,
12549
12560
  "onAfterLeave": onAfterLeave
12550
12561
  }, computedMenuProps.value), {
12551
12562
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -12555,11 +12566,10 @@
12555
12566
  "onMousedown": e => e.preventDefault(),
12556
12567
  "onKeydown": onListKeydown,
12557
12568
  "onFocusin": onFocusin,
12558
- "onScrollPassive": onListScroll,
12559
12569
  "tabindex": "-1",
12560
12570
  "aria-live": "polite",
12561
12571
  "color": props.itemColor ?? props.color
12562
- }, props.listProps), {
12572
+ }, listEvents, props.listProps), {
12563
12573
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
12564
12574
  "title": t(props.noDataText)
12565
12575
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -12854,7 +12864,7 @@
12854
12864
  const menu = vue.computed({
12855
12865
  get: () => _menu.value,
12856
12866
  set: v => {
12857
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12867
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12858
12868
  _menu.value = v;
12859
12869
  }
12860
12870
  });
@@ -12898,10 +12908,7 @@
12898
12908
  });
12899
12909
  const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12900
12910
  const listRef = vue.ref();
12901
- const {
12902
- onListScroll,
12903
- onListKeydown
12904
- } = useScrolling(listRef, vTextFieldRef);
12911
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12905
12912
  function onClear(e) {
12906
12913
  if (props.openOnClear) {
12907
12914
  menu.value = true;
@@ -12920,6 +12927,11 @@
12920
12927
  }
12921
12928
  menu.value = !menu.value;
12922
12929
  }
12930
+ function onListKeydown(e) {
12931
+ if (checkPrintable(e)) {
12932
+ vTextFieldRef.value?.focus();
12933
+ }
12934
+ }
12923
12935
  function onKeydown(e) {
12924
12936
  if (props.readonly || form?.isReadonly.value) return;
12925
12937
  const selectionStart = vTextFieldRef.value.selectionStart;
@@ -12984,6 +12996,11 @@
12984
12996
  }
12985
12997
  }
12986
12998
  }
12999
+ function onAfterEnter() {
13000
+ if (props.eager) {
13001
+ vVirtualScrollRef.value?.calculateVisibleItems();
13002
+ }
13003
+ }
12987
13004
  function onAfterLeave() {
12988
13005
  if (isFocused.value) {
12989
13006
  isPristine.value = true;
@@ -13112,6 +13129,7 @@
13112
13129
  "openOnClick": false,
13113
13130
  "closeOnContentClick": false,
13114
13131
  "transition": props.transition,
13132
+ "onAfterEnter": onAfterEnter,
13115
13133
  "onAfterLeave": onAfterLeave
13116
13134
  }, props.menuProps), {
13117
13135
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -13122,11 +13140,10 @@
13122
13140
  "onKeydown": onListKeydown,
13123
13141
  "onFocusin": onFocusin,
13124
13142
  "onFocusout": onFocusout,
13125
- "onScrollPassive": onListScroll,
13126
13143
  "tabindex": "-1",
13127
13144
  "aria-live": "polite",
13128
13145
  "color": props.itemColor ?? props.color
13129
- }, props.listProps), {
13146
+ }, listEvents, props.listProps), {
13130
13147
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
13131
13148
  "title": t(props.noDataText)
13132
13149
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -16687,7 +16704,7 @@
16687
16704
  const menu = vue.computed({
16688
16705
  get: () => _menu.value,
16689
16706
  set: v => {
16690
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
16707
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
16691
16708
  _menu.value = v;
16692
16709
  }
16693
16710
  });
@@ -16770,10 +16787,7 @@
16770
16787
  });
16771
16788
  const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16772
16789
  const listRef = vue.ref();
16773
- const {
16774
- onListScroll,
16775
- onListKeydown
16776
- } = useScrolling(listRef, vTextFieldRef);
16790
+ const listEvents = useScrolling(listRef, vTextFieldRef);
16777
16791
  function onClear(e) {
16778
16792
  cleared = true;
16779
16793
  if (props.openOnClear) {
@@ -16792,6 +16806,11 @@
16792
16806
  }
16793
16807
  menu.value = !menu.value;
16794
16808
  }
16809
+ function onListKeydown(e) {
16810
+ if (checkPrintable(e)) {
16811
+ vTextFieldRef.value?.focus();
16812
+ }
16813
+ }
16795
16814
  // eslint-disable-next-line complexity
16796
16815
  function onKeydown(e) {
16797
16816
  if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
@@ -16856,6 +16875,11 @@
16856
16875
  }
16857
16876
  }
16858
16877
  }
16878
+ function onAfterEnter() {
16879
+ if (props.eager) {
16880
+ vVirtualScrollRef.value?.calculateVisibleItems();
16881
+ }
16882
+ }
16859
16883
  function onAfterLeave() {
16860
16884
  if (isFocused.value) {
16861
16885
  isPristine.value = true;
@@ -16980,6 +17004,7 @@
16980
17004
  "openOnClick": false,
16981
17005
  "closeOnContentClick": false,
16982
17006
  "transition": props.transition,
17007
+ "onAfterEnter": onAfterEnter,
16983
17008
  "onAfterLeave": onAfterLeave
16984
17009
  }, props.menuProps), {
16985
17010
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -16990,11 +17015,10 @@
16990
17015
  "onKeydown": onListKeydown,
16991
17016
  "onFocusin": onFocusin,
16992
17017
  "onFocusout": onFocusout,
16993
- "onScrollPassive": onListScroll,
16994
17018
  "tabindex": "-1",
16995
17019
  "aria-live": "polite",
16996
17020
  "color": props.itemColor ?? props.color
16997
- }, props.listProps), {
17021
+ }, listEvents, props.listProps), {
16998
17022
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
16999
17023
  "title": t(props.noDataText)
17000
17024
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -18109,6 +18133,7 @@
18109
18133
  }
18110
18134
  function provideGroupBy(options) {
18111
18135
  const {
18136
+ disableSort,
18112
18137
  groupBy,
18113
18138
  sortBy
18114
18139
  } = options;
@@ -18117,7 +18142,7 @@
18117
18142
  return groupBy.value.map(val => ({
18118
18143
  ...val,
18119
18144
  order: val.order ?? false
18120
- })).concat(sortBy.value);
18145
+ })).concat(disableSort?.value ? [] : sortBy.value);
18121
18146
  });
18122
18147
  function isGroupOpen(group) {
18123
18148
  return opened.value.has(group.id);
@@ -18626,7 +18651,7 @@
18626
18651
  function useSortedItems(props, items, sortBy, options) {
18627
18652
  const locale = useLocale();
18628
18653
  const sortedItems = vue.computed(() => {
18629
- if (!sortBy.value.length || props.disableSort) return items.value;
18654
+ if (!sortBy.value.length) return items.value;
18630
18655
  return sortItems(items.value, sortBy.value, locale.current.value, {
18631
18656
  transform: options?.transform,
18632
18657
  sortFunctions: {
@@ -18652,8 +18677,8 @@
18652
18677
  const sortKey = sortByItems[i].key;
18653
18678
  const sortOrder = sortByItems[i].order ?? 'asc';
18654
18679
  if (sortOrder === false) continue;
18655
- let sortA = a[1][sortKey];
18656
- let sortB = b[1][sortKey];
18680
+ let sortA = getObjectValueByPath(a[1], sortKey);
18681
+ let sortB = getObjectValueByPath(b[1], sortKey);
18657
18682
  let sortARaw = a[0].raw;
18658
18683
  let sortBRaw = b[0].raw;
18659
18684
  if (sortOrder === 'desc') {
@@ -20378,6 +20403,9 @@
20378
20403
  page,
20379
20404
  itemsPerPage
20380
20405
  } = createPagination(props);
20406
+ const {
20407
+ disableSort
20408
+ } = vue.toRefs(props);
20381
20409
  const {
20382
20410
  columns,
20383
20411
  headers,
@@ -20415,12 +20443,16 @@
20415
20443
  toggleGroup
20416
20444
  } = provideGroupBy({
20417
20445
  groupBy,
20418
- sortBy
20446
+ sortBy,
20447
+ disableSort
20419
20448
  });
20420
20449
  const {
20421
20450
  sortedItems
20422
20451
  } = useSortedItems(props, filteredItems, sortByWithGroups, {
20423
- transform: item => item.columns,
20452
+ transform: item => ({
20453
+ ...item.raw,
20454
+ ...item.columns
20455
+ }),
20424
20456
  sortFunctions,
20425
20457
  sortRawFunctions
20426
20458
  });
@@ -20558,6 +20590,9 @@
20558
20590
  multiSort,
20559
20591
  mustSort
20560
20592
  } = createSort(props);
20593
+ const {
20594
+ disableSort
20595
+ } = vue.toRefs(props);
20561
20596
  const {
20562
20597
  columns,
20563
20598
  headers,
@@ -20594,12 +20629,16 @@
20594
20629
  toggleGroup
20595
20630
  } = provideGroupBy({
20596
20631
  groupBy,
20597
- sortBy
20632
+ sortBy,
20633
+ disableSort
20598
20634
  });
20599
20635
  const {
20600
20636
  sortedItems
20601
20637
  } = useSortedItems(props, filteredItems, sortByWithGroups, {
20602
- transform: item => item.columns,
20638
+ transform: item => ({
20639
+ ...item.raw,
20640
+ ...item.columns
20641
+ }),
20603
20642
  sortFunctions,
20604
20643
  sortRawFunctions
20605
20644
  });
@@ -20783,6 +20822,9 @@
20783
20822
  page,
20784
20823
  itemsPerPage
20785
20824
  } = createPagination(props);
20825
+ const {
20826
+ disableSort
20827
+ } = vue.toRefs(props);
20786
20828
  const itemsLength = vue.computed(() => parseInt(props.itemsLength, 10));
20787
20829
  const {
20788
20830
  columns,
@@ -20810,7 +20852,8 @@
20810
20852
  extractRows
20811
20853
  } = provideGroupBy({
20812
20854
  groupBy,
20813
- sortBy
20855
+ sortBy,
20856
+ disableSort
20814
20857
  });
20815
20858
  const {
20816
20859
  pageCount,
@@ -21574,6 +21617,9 @@
21574
21617
  const _value = adapter.startOfDay(value);
21575
21618
  if (model.value.length === 0) {
21576
21619
  rangeStart.value = undefined;
21620
+ } else if (model.value.length === 1) {
21621
+ rangeStart.value = model.value[0];
21622
+ rangeStop.value = undefined;
21577
21623
  }
21578
21624
  if (!rangeStart.value) {
21579
21625
  rangeStart.value = _value;
@@ -24258,7 +24304,7 @@
24258
24304
  function onPaste(index, e) {
24259
24305
  e.preventDefault();
24260
24306
  e.stopPropagation();
24261
- const clipboardText = e?.clipboardData?.getData('Text') ?? '';
24307
+ const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
24262
24308
  if (isValidNumber(clipboardText)) return;
24263
24309
  model.value = clipboardText.split('');
24264
24310
  inputRef.value?.[index].blur();
@@ -26803,8 +26849,8 @@
26803
26849
  },
26804
26850
  suffix: String,
26805
26851
  modelModifiers: Object,
26806
- ...omit(makeVInputProps(), ['centerAffix']),
26807
- ...omit(makeVFieldProps(), ['centerAffix'])
26852
+ ...makeVInputProps(),
26853
+ ...makeVFieldProps()
26808
26854
  }, 'VTextarea');
26809
26855
  const VTextarea = genericComponent()({
26810
26856
  name: 'VTextarea',
@@ -26943,7 +26989,7 @@
26943
26989
  }, props.class],
26944
26990
  "style": props.style
26945
26991
  }, rootAttrs, inputProps, {
26946
- "centerAffix": false,
26992
+ "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
26947
26993
  "focused": isFocused.value
26948
26994
  }), {
26949
26995
  ...slots,
@@ -26968,7 +27014,7 @@
26968
27014
  }, fieldProps, {
26969
27015
  "id": id.value,
26970
27016
  "active": isActive.value || isDirty.value,
26971
- "centerAffix": false,
27017
+ "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
26972
27018
  "dirty": isDirty.value || props.dirty,
26973
27019
  "disabled": isDisabled.value,
26974
27020
  "focused": isFocused.value,
@@ -27959,6 +28005,7 @@
27959
28005
  }
27960
28006
  return adapter.isValid(model.value) ? adapter.format(model.value, 'keyboardDate') : '';
27961
28007
  });
28008
+ const isInteractive = vue.computed(() => !props.disabled && !props.readonly);
27962
28009
  function onKeydown(e) {
27963
28010
  if (e.key !== 'Enter') return;
27964
28011
  if (!menu.value || !isFocused.value) {
@@ -27981,13 +28028,15 @@
27981
28028
  const datePickerProps = VDatePicker.filterProps(omit(props, ['active']));
27982
28029
  const textFieldProps = VTextField.filterProps(props);
27983
28030
  return vue.createVNode(VTextField, vue.mergeProps(textFieldProps, {
28031
+ "class": props.class,
28032
+ "style": props.style,
27984
28033
  "modelValue": display.value,
27985
- "onKeydown": onKeydown,
28034
+ "onKeydown": isInteractive.value ? onKeydown : undefined,
27986
28035
  "focused": menu.value || isFocused.value,
27987
28036
  "onFocus": focus,
27988
28037
  "onBlur": blur,
27989
- "onClick:control": onClick,
27990
- "onClick:prepend": onClick
28038
+ "onClick:control": isInteractive.value ? onClick : undefined,
28039
+ "onClick:prepend": isInteractive.value ? onClick : undefined
27991
28040
  }), {
27992
28041
  default: () => [vue.createVNode(VMenu, {
27993
28042
  "modelValue": menu.value,
@@ -29008,6 +29057,7 @@
29008
29057
 
29009
29058
  const makeVTimePickerControlsProps = propsFactory({
29010
29059
  ampm: Boolean,
29060
+ ampmInTitle: Boolean,
29011
29061
  ampmReadonly: Boolean,
29012
29062
  color: String,
29013
29063
  disabled: Boolean,
@@ -29092,7 +29142,7 @@
29092
29142
  },
29093
29143
  "disabled": props.disabled,
29094
29144
  "text": props.second == null ? '--' : pad(props.second)
29095
- }, null), props.ampm && vue.createVNode("div", {
29145
+ }, null), props.ampm && props.ampmInTitle && vue.createVNode("div", {
29096
29146
  "class": ['v-time-picker-controls__ampm', {
29097
29147
  'v-time-picker-controls__ampm--readonly': props.ampmReadonly
29098
29148
  }]
@@ -30262,7 +30312,7 @@
30262
30312
  goTo
30263
30313
  };
30264
30314
  }
30265
- const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-12";
30315
+ const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
30266
30316
  createVuetify$1.version = version$1;
30267
30317
 
30268
30318
  // Vue's inject() can only be used in setup
@@ -30515,7 +30565,7 @@
30515
30565
 
30516
30566
  /* eslint-disable local-rules/sort-imports */
30517
30567
 
30518
- const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-12";
30568
+ const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
30519
30569
 
30520
30570
  /* eslint-disable local-rules/sort-imports */
30521
30571