@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
package/dist/vuetify.js CHANGED
@@ -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
  */
@@ -502,6 +502,11 @@
502
502
  });
503
503
  return fn;
504
504
  }
505
+ function checkPrintable(e) {
506
+ const isPrintableChar = e.key.length === 1;
507
+ const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
508
+ return isPrintableChar && noModifier;
509
+ }
505
510
 
506
511
  // Utilities
507
512
  const block = ['top', 'bottom'];
@@ -7054,7 +7059,10 @@
7054
7059
  const makeVInputProps = propsFactory({
7055
7060
  id: String,
7056
7061
  appendIcon: IconValue,
7057
- centerAffix: Boolean,
7062
+ centerAffix: {
7063
+ type: Boolean,
7064
+ default: true
7065
+ },
7058
7066
  prependIcon: IconValue,
7059
7067
  hideDetails: [Boolean, String],
7060
7068
  hideSpinButtons: Boolean,
@@ -8804,7 +8812,6 @@
8804
8812
  children.value.set(parent, list.filter(child => child !== id));
8805
8813
  }
8806
8814
  parents.value.delete(id);
8807
- opened.value.delete(id);
8808
8815
  },
8809
8816
  open: (id, value, event) => {
8810
8817
  vm.emit('click:open', {
@@ -9978,12 +9985,6 @@
9978
9985
  // el.style.removeProperty('max-width')
9979
9986
  // el.style.removeProperty('max-height')
9980
9987
 
9981
- if (isRtl) {
9982
- el.style.removeProperty('left');
9983
- } else {
9984
- el.style.removeProperty('right');
9985
- }
9986
-
9987
9988
  /* eslint-disable-next-line sonarjs/prefer-immediate-return */
9988
9989
  const contentBox = nullifyTransforms(el);
9989
9990
  if (isRtl) {
@@ -11375,23 +11376,25 @@
11375
11376
  const id = vue.computed(() => props.id || `v-menu-${uid}`);
11376
11377
  const overlay = vue.ref();
11377
11378
  const parent = vue.inject(VMenuSymbol, null);
11378
- const openChildren = vue.shallowRef(0);
11379
+ const openChildren = vue.shallowRef(new Set());
11379
11380
  vue.provide(VMenuSymbol, {
11380
11381
  register() {
11381
- ++openChildren.value;
11382
+ openChildren.value.add(uid);
11382
11383
  },
11383
11384
  unregister() {
11384
- --openChildren.value;
11385
+ openChildren.value.delete(uid);
11385
11386
  },
11386
11387
  closeParents(e) {
11387
11388
  setTimeout(() => {
11388
- if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11389
+ if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
11389
11390
  isActive.value = false;
11390
11391
  parent?.closeParents();
11391
11392
  }
11392
11393
  }, 40);
11393
11394
  }
11394
11395
  });
11396
+ vue.onBeforeUnmount(() => parent?.unregister());
11397
+ vue.onDeactivated(() => isActive.value = false);
11395
11398
  async function onFocusIn(e) {
11396
11399
  const before = e.relatedTarget;
11397
11400
  const after = e.target;
@@ -11574,7 +11577,10 @@
11574
11577
  default: '$clear'
11575
11578
  },
11576
11579
  active: Boolean,
11577
- centerAffix: Boolean,
11580
+ centerAffix: {
11581
+ type: Boolean,
11582
+ default: undefined
11583
+ },
11578
11584
  color: String,
11579
11585
  baseColor: String,
11580
11586
  dirty: Boolean,
@@ -11641,9 +11647,8 @@
11641
11647
  const {
11642
11648
  rtlClasses
11643
11649
  } = useRtl();
11644
- const isSingleLine = vue.computed(() => props.singleLine || props.centerAffix);
11645
11650
  const isActive = vue.computed(() => props.dirty || props.active);
11646
- const hasLabel = vue.computed(() => !isSingleLine.value && !!(props.label || slots.label));
11651
+ const hasLabel = vue.computed(() => !props.singleLine && !!(props.label || slots.label));
11647
11652
  const uid = getUid();
11648
11653
  const id = vue.computed(() => props.id || `input-${uid}`);
11649
11654
  const messagesId = vue.computed(() => `${id.value}-messages`);
@@ -11732,7 +11737,7 @@
11732
11737
  "class": ['v-field', {
11733
11738
  'v-field--active': isActive.value,
11734
11739
  'v-field--appended': hasAppend,
11735
- 'v-field--center-affix': props.centerAffix,
11740
+ 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,
11736
11741
  'v-field--disabled': props.disabled,
11737
11742
  'v-field--dirty': props.dirty,
11738
11743
  'v-field--error': props.error,
@@ -11741,7 +11746,7 @@
11741
11746
  'v-field--persistent-clear': props.persistentClear,
11742
11747
  'v-field--prepended': hasPrepend,
11743
11748
  'v-field--reverse': props.reverse,
11744
- 'v-field--single-line': isSingleLine.value,
11749
+ 'v-field--single-line': props.singleLine,
11745
11750
  'v-field--no-label': !label(),
11746
11751
  [`v-field--variant-${props.variant}`]: true
11747
11752
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
@@ -11976,6 +11981,7 @@
11976
11981
  }, props.class],
11977
11982
  "style": props.style
11978
11983
  }, rootAttrs, inputProps, {
11984
+ "centerAffix": !isPlainOrUnderlined.value,
11979
11985
  "focused": isFocused.value
11980
11986
  }), {
11981
11987
  ...slots,
@@ -12001,7 +12007,6 @@
12001
12007
  "dirty": isDirty.value || props.dirty,
12002
12008
  "disabled": isDisabled.value,
12003
12009
  "focused": isFocused.value,
12004
- "centerAffix": props.centerAffix,
12005
12010
  "error": isValid.value === false
12006
12011
  }), {
12007
12012
  ...slots,
@@ -12301,6 +12306,7 @@
12301
12306
  deep: true
12302
12307
  });
12303
12308
  return {
12309
+ calculateVisibleItems,
12304
12310
  containerRef,
12305
12311
  markerRef,
12306
12312
  computedItems,
@@ -12364,6 +12370,7 @@
12364
12370
  dimensionStyles
12365
12371
  } = useDimension(props);
12366
12372
  const {
12373
+ calculateVisibleItems,
12367
12374
  containerRef,
12368
12375
  markerRef,
12369
12376
  handleScroll,
@@ -12435,6 +12442,7 @@
12435
12442
  }, [children])]);
12436
12443
  });
12437
12444
  return {
12445
+ calculateVisibleItems,
12438
12446
  scrollToIndex
12439
12447
  };
12440
12448
  }
@@ -12503,9 +12511,9 @@
12503
12511
  }
12504
12512
  }
12505
12513
  return {
12506
- onListScroll,
12507
- onListKeydown
12508
- };
12514
+ onScrollPassive: onListScroll,
12515
+ onKeydown: onListKeydown
12516
+ }; // typescript doesn't know about vue's event merging
12509
12517
  }
12510
12518
 
12511
12519
  // Types
@@ -12580,7 +12588,7 @@
12580
12588
  const menu = vue.computed({
12581
12589
  get: () => _menu.value,
12582
12590
  set: v => {
12583
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
12591
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
12584
12592
  _menu.value = v;
12585
12593
  }
12586
12594
  });
@@ -12619,10 +12627,7 @@
12619
12627
  };
12620
12628
  });
12621
12629
  const listRef = vue.ref();
12622
- const {
12623
- onListScroll,
12624
- onListKeydown
12625
- } = useScrolling(listRef, vTextFieldRef);
12630
+ const listEvents = useScrolling(listRef, vTextFieldRef);
12626
12631
  function onClear(e) {
12627
12632
  if (props.openOnClear) {
12628
12633
  menu.value = true;
@@ -12632,6 +12637,11 @@
12632
12637
  if (menuDisabled.value) return;
12633
12638
  menu.value = !menu.value;
12634
12639
  }
12640
+ function onListKeydown(e) {
12641
+ if (checkPrintable(e)) {
12642
+ onKeydown(e);
12643
+ }
12644
+ }
12635
12645
  function onKeydown(e) {
12636
12646
  if (!e.key || props.readonly || form?.isReadonly.value) return;
12637
12647
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
@@ -12652,11 +12662,6 @@
12652
12662
  // html select hotkeys
12653
12663
  const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
12654
12664
 
12655
- function checkPrintable(e) {
12656
- const isPrintableChar = e.key.length === 1;
12657
- const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
12658
- return isPrintableChar && noModifier;
12659
- }
12660
12665
  if (props.multiple || !checkPrintable(e)) return;
12661
12666
  const now = performance.now();
12662
12667
  if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
@@ -12701,6 +12706,11 @@
12701
12706
  menu.value = false;
12702
12707
  }
12703
12708
  }
12709
+ function onAfterEnter() {
12710
+ if (props.eager) {
12711
+ vVirtualScrollRef.value?.calculateVisibleItems();
12712
+ }
12713
+ }
12704
12714
  function onAfterLeave() {
12705
12715
  if (isFocused.value) {
12706
12716
  vTextFieldRef.value?.focus();
@@ -12779,6 +12789,7 @@
12779
12789
  "openOnClick": false,
12780
12790
  "closeOnContentClick": false,
12781
12791
  "transition": props.transition,
12792
+ "onAfterEnter": onAfterEnter,
12782
12793
  "onAfterLeave": onAfterLeave
12783
12794
  }, computedMenuProps.value), {
12784
12795
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -12788,11 +12799,10 @@
12788
12799
  "onMousedown": e => e.preventDefault(),
12789
12800
  "onKeydown": onListKeydown,
12790
12801
  "onFocusin": onFocusin,
12791
- "onScrollPassive": onListScroll,
12792
12802
  "tabindex": "-1",
12793
12803
  "aria-live": "polite",
12794
12804
  "color": props.itemColor ?? props.color
12795
- }, props.listProps), {
12805
+ }, listEvents, props.listProps), {
12796
12806
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
12797
12807
  "title": t(props.noDataText)
12798
12808
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -13087,7 +13097,7 @@
13087
13097
  const menu = vue.computed({
13088
13098
  get: () => _menu.value,
13089
13099
  set: v => {
13090
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
13100
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
13091
13101
  _menu.value = v;
13092
13102
  }
13093
13103
  });
@@ -13131,10 +13141,7 @@
13131
13141
  });
13132
13142
  const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
13133
13143
  const listRef = vue.ref();
13134
- const {
13135
- onListScroll,
13136
- onListKeydown
13137
- } = useScrolling(listRef, vTextFieldRef);
13144
+ const listEvents = useScrolling(listRef, vTextFieldRef);
13138
13145
  function onClear(e) {
13139
13146
  if (props.openOnClear) {
13140
13147
  menu.value = true;
@@ -13153,6 +13160,11 @@
13153
13160
  }
13154
13161
  menu.value = !menu.value;
13155
13162
  }
13163
+ function onListKeydown(e) {
13164
+ if (checkPrintable(e)) {
13165
+ vTextFieldRef.value?.focus();
13166
+ }
13167
+ }
13156
13168
  function onKeydown(e) {
13157
13169
  if (props.readonly || form?.isReadonly.value) return;
13158
13170
  const selectionStart = vTextFieldRef.value.selectionStart;
@@ -13217,6 +13229,11 @@
13217
13229
  }
13218
13230
  }
13219
13231
  }
13232
+ function onAfterEnter() {
13233
+ if (props.eager) {
13234
+ vVirtualScrollRef.value?.calculateVisibleItems();
13235
+ }
13236
+ }
13220
13237
  function onAfterLeave() {
13221
13238
  if (isFocused.value) {
13222
13239
  isPristine.value = true;
@@ -13345,6 +13362,7 @@
13345
13362
  "openOnClick": false,
13346
13363
  "closeOnContentClick": false,
13347
13364
  "transition": props.transition,
13365
+ "onAfterEnter": onAfterEnter,
13348
13366
  "onAfterLeave": onAfterLeave
13349
13367
  }, props.menuProps), {
13350
13368
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -13355,11 +13373,10 @@
13355
13373
  "onKeydown": onListKeydown,
13356
13374
  "onFocusin": onFocusin,
13357
13375
  "onFocusout": onFocusout,
13358
- "onScrollPassive": onListScroll,
13359
13376
  "tabindex": "-1",
13360
13377
  "aria-live": "polite",
13361
13378
  "color": props.itemColor ?? props.color
13362
- }, props.listProps), {
13379
+ }, listEvents, props.listProps), {
13363
13380
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
13364
13381
  "title": t(props.noDataText)
13365
13382
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -16920,7 +16937,7 @@
16920
16937
  const menu = vue.computed({
16921
16938
  get: () => _menu.value,
16922
16939
  set: v => {
16923
- if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
16940
+ if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
16924
16941
  _menu.value = v;
16925
16942
  }
16926
16943
  });
@@ -17003,10 +17020,7 @@
17003
17020
  });
17004
17021
  const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
17005
17022
  const listRef = vue.ref();
17006
- const {
17007
- onListScroll,
17008
- onListKeydown
17009
- } = useScrolling(listRef, vTextFieldRef);
17023
+ const listEvents = useScrolling(listRef, vTextFieldRef);
17010
17024
  function onClear(e) {
17011
17025
  cleared = true;
17012
17026
  if (props.openOnClear) {
@@ -17025,6 +17039,11 @@
17025
17039
  }
17026
17040
  menu.value = !menu.value;
17027
17041
  }
17042
+ function onListKeydown(e) {
17043
+ if (checkPrintable(e)) {
17044
+ vTextFieldRef.value?.focus();
17045
+ }
17046
+ }
17028
17047
  // eslint-disable-next-line complexity
17029
17048
  function onKeydown(e) {
17030
17049
  if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
@@ -17089,6 +17108,11 @@
17089
17108
  }
17090
17109
  }
17091
17110
  }
17111
+ function onAfterEnter() {
17112
+ if (props.eager) {
17113
+ vVirtualScrollRef.value?.calculateVisibleItems();
17114
+ }
17115
+ }
17092
17116
  function onAfterLeave() {
17093
17117
  if (isFocused.value) {
17094
17118
  isPristine.value = true;
@@ -17213,6 +17237,7 @@
17213
17237
  "openOnClick": false,
17214
17238
  "closeOnContentClick": false,
17215
17239
  "transition": props.transition,
17240
+ "onAfterEnter": onAfterEnter,
17216
17241
  "onAfterLeave": onAfterLeave
17217
17242
  }, props.menuProps), {
17218
17243
  default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
@@ -17223,11 +17248,10 @@
17223
17248
  "onKeydown": onListKeydown,
17224
17249
  "onFocusin": onFocusin,
17225
17250
  "onFocusout": onFocusout,
17226
- "onScrollPassive": onListScroll,
17227
17251
  "tabindex": "-1",
17228
17252
  "aria-live": "polite",
17229
17253
  "color": props.itemColor ?? props.color
17230
- }, props.listProps), {
17254
+ }, listEvents, props.listProps), {
17231
17255
  default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
17232
17256
  "title": t(props.noDataText)
17233
17257
  }, null)), vue.createVNode(VVirtualScroll, {
@@ -18342,6 +18366,7 @@
18342
18366
  }
18343
18367
  function provideGroupBy(options) {
18344
18368
  const {
18369
+ disableSort,
18345
18370
  groupBy,
18346
18371
  sortBy
18347
18372
  } = options;
@@ -18350,7 +18375,7 @@
18350
18375
  return groupBy.value.map(val => ({
18351
18376
  ...val,
18352
18377
  order: val.order ?? false
18353
- })).concat(sortBy.value);
18378
+ })).concat(disableSort?.value ? [] : sortBy.value);
18354
18379
  });
18355
18380
  function isGroupOpen(group) {
18356
18381
  return opened.value.has(group.id);
@@ -18859,7 +18884,7 @@
18859
18884
  function useSortedItems(props, items, sortBy, options) {
18860
18885
  const locale = useLocale();
18861
18886
  const sortedItems = vue.computed(() => {
18862
- if (!sortBy.value.length || props.disableSort) return items.value;
18887
+ if (!sortBy.value.length) return items.value;
18863
18888
  return sortItems(items.value, sortBy.value, locale.current.value, {
18864
18889
  transform: options?.transform,
18865
18890
  sortFunctions: {
@@ -18885,8 +18910,8 @@
18885
18910
  const sortKey = sortByItems[i].key;
18886
18911
  const sortOrder = sortByItems[i].order ?? 'asc';
18887
18912
  if (sortOrder === false) continue;
18888
- let sortA = a[1][sortKey];
18889
- let sortB = b[1][sortKey];
18913
+ let sortA = getObjectValueByPath(a[1], sortKey);
18914
+ let sortB = getObjectValueByPath(b[1], sortKey);
18890
18915
  let sortARaw = a[0].raw;
18891
18916
  let sortBRaw = b[0].raw;
18892
18917
  if (sortOrder === 'desc') {
@@ -20611,6 +20636,9 @@
20611
20636
  page,
20612
20637
  itemsPerPage
20613
20638
  } = createPagination(props);
20639
+ const {
20640
+ disableSort
20641
+ } = vue.toRefs(props);
20614
20642
  const {
20615
20643
  columns,
20616
20644
  headers,
@@ -20648,12 +20676,16 @@
20648
20676
  toggleGroup
20649
20677
  } = provideGroupBy({
20650
20678
  groupBy,
20651
- sortBy
20679
+ sortBy,
20680
+ disableSort
20652
20681
  });
20653
20682
  const {
20654
20683
  sortedItems
20655
20684
  } = useSortedItems(props, filteredItems, sortByWithGroups, {
20656
- transform: item => item.columns,
20685
+ transform: item => ({
20686
+ ...item.raw,
20687
+ ...item.columns
20688
+ }),
20657
20689
  sortFunctions,
20658
20690
  sortRawFunctions
20659
20691
  });
@@ -20791,6 +20823,9 @@
20791
20823
  multiSort,
20792
20824
  mustSort
20793
20825
  } = createSort(props);
20826
+ const {
20827
+ disableSort
20828
+ } = vue.toRefs(props);
20794
20829
  const {
20795
20830
  columns,
20796
20831
  headers,
@@ -20827,12 +20862,16 @@
20827
20862
  toggleGroup
20828
20863
  } = provideGroupBy({
20829
20864
  groupBy,
20830
- sortBy
20865
+ sortBy,
20866
+ disableSort
20831
20867
  });
20832
20868
  const {
20833
20869
  sortedItems
20834
20870
  } = useSortedItems(props, filteredItems, sortByWithGroups, {
20835
- transform: item => item.columns,
20871
+ transform: item => ({
20872
+ ...item.raw,
20873
+ ...item.columns
20874
+ }),
20836
20875
  sortFunctions,
20837
20876
  sortRawFunctions
20838
20877
  });
@@ -21016,6 +21055,9 @@
21016
21055
  page,
21017
21056
  itemsPerPage
21018
21057
  } = createPagination(props);
21058
+ const {
21059
+ disableSort
21060
+ } = vue.toRefs(props);
21019
21061
  const itemsLength = vue.computed(() => parseInt(props.itemsLength, 10));
21020
21062
  const {
21021
21063
  columns,
@@ -21043,7 +21085,8 @@
21043
21085
  extractRows
21044
21086
  } = provideGroupBy({
21045
21087
  groupBy,
21046
- sortBy
21088
+ sortBy,
21089
+ disableSort
21047
21090
  });
21048
21091
  const {
21049
21092
  pageCount,
@@ -21807,6 +21850,9 @@
21807
21850
  const _value = adapter.startOfDay(value);
21808
21851
  if (model.value.length === 0) {
21809
21852
  rangeStart.value = undefined;
21853
+ } else if (model.value.length === 1) {
21854
+ rangeStart.value = model.value[0];
21855
+ rangeStop.value = undefined;
21810
21856
  }
21811
21857
  if (!rangeStart.value) {
21812
21858
  rangeStart.value = _value;
@@ -24491,7 +24537,7 @@
24491
24537
  function onPaste(index, e) {
24492
24538
  e.preventDefault();
24493
24539
  e.stopPropagation();
24494
- const clipboardText = e?.clipboardData?.getData('Text') ?? '';
24540
+ const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
24495
24541
  if (isValidNumber(clipboardText)) return;
24496
24542
  model.value = clipboardText.split('');
24497
24543
  inputRef.value?.[index].blur();
@@ -27036,8 +27082,8 @@
27036
27082
  },
27037
27083
  suffix: String,
27038
27084
  modelModifiers: Object,
27039
- ...omit(makeVInputProps(), ['centerAffix']),
27040
- ...omit(makeVFieldProps(), ['centerAffix'])
27085
+ ...makeVInputProps(),
27086
+ ...makeVFieldProps()
27041
27087
  }, 'VTextarea');
27042
27088
  const VTextarea = genericComponent()({
27043
27089
  name: 'VTextarea',
@@ -27176,7 +27222,7 @@
27176
27222
  }, props.class],
27177
27223
  "style": props.style
27178
27224
  }, rootAttrs, inputProps, {
27179
- "centerAffix": false,
27225
+ "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
27180
27226
  "focused": isFocused.value
27181
27227
  }), {
27182
27228
  ...slots,
@@ -27201,7 +27247,7 @@
27201
27247
  }, fieldProps, {
27202
27248
  "id": id.value,
27203
27249
  "active": isActive.value || isDirty.value,
27204
- "centerAffix": false,
27250
+ "centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
27205
27251
  "dirty": isDirty.value || props.dirty,
27206
27252
  "disabled": isDisabled.value,
27207
27253
  "focused": isFocused.value,
@@ -28133,7 +28179,7 @@
28133
28179
  goTo
28134
28180
  };
28135
28181
  }
28136
- const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-12";
28182
+ const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
28137
28183
  createVuetify$1.version = version$1;
28138
28184
 
28139
28185
  // Vue's inject() can only be used in setup
@@ -28158,7 +28204,7 @@
28158
28204
  ...options
28159
28205
  });
28160
28206
  };
28161
- const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-12";
28207
+ const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
28162
28208
  createVuetify.version = version;
28163
28209
 
28164
28210
  exports.blueprints = index;