vuetify 3.6.8 → 3.6.9

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 (64) hide show
  1. package/dist/json/attributes.json +4 -4
  2. package/dist/json/importMap-labs.json +22 -22
  3. package/dist/json/importMap.json +140 -140
  4. package/dist/json/web-types.json +12 -13
  5. package/dist/vuetify-labs.css +2770 -2769
  6. package/dist/vuetify-labs.d.ts +187 -189
  7. package/dist/vuetify-labs.esm.js +57 -46
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +57 -46
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +2752 -2751
  12. package/dist/vuetify.d.ts +231 -239
  13. package/dist/vuetify.esm.js +45 -39
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +45 -39
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +40 -36
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.mts +58 -56
  21. package/lib/blueprints/md1.d.mts +58 -56
  22. package/lib/blueprints/md2.d.mts +58 -56
  23. package/lib/blueprints/md3.d.mts +58 -56
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +17 -14
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VBanner/VBanner.css +1 -0
  27. package/lib/components/VBanner/VBanner.sass +1 -0
  28. package/lib/components/VBanner/_variables.scss +1 -0
  29. package/lib/components/VCombobox/VCombobox.mjs +7 -11
  30. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  31. package/lib/components/VEmptyState/VEmptyState.css +2 -2
  32. package/lib/components/VEmptyState/VEmptyState.mjs +1 -1
  33. package/lib/components/VEmptyState/VEmptyState.mjs.map +1 -1
  34. package/lib/components/VEmptyState/_variables.scss +2 -2
  35. package/lib/components/VFab/VFab.mjs +4 -7
  36. package/lib/components/VFab/VFab.mjs.map +1 -1
  37. package/lib/components/VFab/index.d.mts +46 -49
  38. package/lib/components/VList/VList.mjs +1 -0
  39. package/lib/components/VList/VList.mjs.map +1 -1
  40. package/lib/components/VList/index.d.mts +2 -0
  41. package/lib/components/VMenu/VMenu.mjs +1 -1
  42. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  43. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  44. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  45. package/lib/components/index.d.mts +38 -45
  46. package/lib/composables/goto.mjs.map +1 -1
  47. package/lib/composables/icons.mjs.map +1 -1
  48. package/lib/composables/scroll.mjs +6 -0
  49. package/lib/composables/scroll.mjs.map +1 -1
  50. package/lib/entry-bundler.mjs +1 -1
  51. package/lib/framework.mjs +1 -1
  52. package/lib/index.d.mts +159 -160
  53. package/lib/labs/VNumberInput/VNumberInput.mjs +0 -1
  54. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  55. package/lib/labs/VStepperVertical/index.d.mts +3 -3
  56. package/lib/labs/VTimePicker/VTimePickerClock.mjs +3 -1
  57. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  58. package/lib/labs/VTimePicker/VTimePickerControls.mjs +7 -2
  59. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  60. package/lib/labs/VTreeview/VTreeview.mjs +3 -4
  61. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  62. package/lib/labs/VTreeview/index.d.mts +6 -0
  63. package/lib/labs/components.d.mts +6 -0
  64. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.6.8
2
+ * Vuetify v3.6.9
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -3756,6 +3756,7 @@ function useScroll(props) {
3756
3756
  canScroll
3757
3757
  } = args;
3758
3758
  let previousScroll = 0;
3759
+ let previousScrollHeight = 0;
3759
3760
  const target = ref(null);
3760
3761
  const currentScroll = shallowRef(0);
3761
3762
  const savedScroll = shallowRef(0);
@@ -3778,6 +3779,11 @@ function useScroll(props) {
3778
3779
  if (!targetEl || canScroll && !canScroll.value) return;
3779
3780
  previousScroll = currentScroll.value;
3780
3781
  currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
3782
+ const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight;
3783
+ if (previousScrollHeight !== currentScrollHeight) {
3784
+ previousScrollHeight = currentScrollHeight;
3785
+ return;
3786
+ }
3781
3787
  isScrollingUp.value = currentScroll.value < previousScroll;
3782
3788
  currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
3783
3789
  };
@@ -9384,6 +9390,7 @@ const makeVListProps = propsFactory({
9384
9390
  nav: Boolean,
9385
9391
  'onClick:open': EventProp(),
9386
9392
  'onClick:select': EventProp(),
9393
+ 'onUpdate:opened': EventProp(),
9387
9394
  ...makeNestedProps({
9388
9395
  selectStrategy: 'single-leaf',
9389
9396
  openStrategy: 'list'
@@ -10787,9 +10794,6 @@ const VOverlay = genericComponent()({
10787
10794
  if (!(v && props.disabled)) model.value = v;
10788
10795
  }
10789
10796
  });
10790
- const {
10791
- teleportTarget
10792
- } = useTeleport(computed(() => props.attach || props.contained));
10793
10797
  const {
10794
10798
  themeClasses
10795
10799
  } = provideTheme(props);
@@ -10822,6 +10826,10 @@ const VOverlay = genericComponent()({
10822
10826
  isActive,
10823
10827
  isTop: localTop
10824
10828
  });
10829
+ const potentialShadowDomRoot = computed(() => activatorEl?.value?.getRootNode());
10830
+ const {
10831
+ teleportTarget
10832
+ } = useTeleport(computed(() => props.attach || props.contained || potentialShadowDomRoot.value instanceof ShadowRoot ? potentialShadowDomRoot.value : false));
10825
10833
  const {
10826
10834
  dimensionStyles
10827
10835
  } = useDimension(props);
@@ -11164,7 +11172,7 @@ const VMenu = genericComponent()({
11164
11172
  function onKeydown(e) {
11165
11173
  if (props.disabled) return;
11166
11174
  if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {
11167
- if (e.key === 'Enter' && e.target instanceof HTMLTextAreaElement) return;
11175
+ if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;
11168
11176
  if (e.key === 'Enter') e.preventDefault();
11169
11177
  const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
11170
11178
  if (!nextElement) {
@@ -12908,7 +12916,12 @@ const VAutocomplete = genericComponent()({
12908
12916
  if (['Escape'].includes(e.key)) {
12909
12917
  menu.value = false;
12910
12918
  }
12911
- if (highlightFirst.value && e.key === 'Enter') {
12919
+ if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
12920
+ let {
12921
+ value
12922
+ } = _ref2;
12923
+ return value === displayItems.value[0].value;
12924
+ })) {
12912
12925
  select(displayItems.value[0]);
12913
12926
  }
12914
12927
  if (e.key === 'ArrowDown' && highlightFirst.value) {
@@ -13011,16 +13024,14 @@ const VAutocomplete = genericComponent()({
13011
13024
  isPristine.value = true;
13012
13025
  nextTick(() => isSelecting.value = false);
13013
13026
  } else {
13014
- if (!props.multiple && search.value == null) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
13015
- let {
13016
- value
13017
- } = _ref2;
13018
- return value === displayItems.value[0].value;
13019
- })) {
13020
- select(displayItems.value[0]);
13021
- }
13027
+ if (!props.multiple && search.value == null) model.value = [];
13022
13028
  menu.value = false;
13023
- if (props.multiple || hasSelectionSlot.value) search.value = '';
13029
+ if (!model.value.some(_ref3 => {
13030
+ let {
13031
+ title
13032
+ } = _ref3;
13033
+ return title === search.value;
13034
+ })) search.value = '';
13024
13035
  selectionIndex.value = -1;
13025
13036
  }
13026
13037
  });
@@ -13106,12 +13117,12 @@ const VAutocomplete = genericComponent()({
13106
13117
  "renderless": true,
13107
13118
  "items": displayItems.value
13108
13119
  }, {
13109
- default: _ref3 => {
13120
+ default: _ref4 => {
13110
13121
  let {
13111
13122
  item,
13112
13123
  index,
13113
13124
  itemRef
13114
- } = _ref3;
13125
+ } = _ref4;
13115
13126
  const itemProps = mergeProps(item.props, {
13116
13127
  ref: itemRef,
13117
13128
  key: index,
@@ -13125,10 +13136,10 @@ const VAutocomplete = genericComponent()({
13125
13136
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
13126
13137
  "role": "option"
13127
13138
  }), {
13128
- prepend: _ref4 => {
13139
+ prepend: _ref5 => {
13129
13140
  let {
13130
13141
  isSelected
13131
- } = _ref4;
13142
+ } = _ref5;
13132
13143
  return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13133
13144
  "key": item.value,
13134
13145
  "modelValue": isSelected,
@@ -16778,8 +16789,13 @@ const VCombobox = genericComponent()({
16778
16789
  if (['Escape'].includes(e.key)) {
16779
16790
  menu.value = false;
16780
16791
  }
16781
- if (['Enter', 'Escape'].includes(e.key)) {
16782
- if (highlightFirst.value && e.key === 'Enter') {
16792
+ if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
16793
+ if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
16794
+ let {
16795
+ value
16796
+ } = _ref2;
16797
+ return value === displayItems.value[0].value;
16798
+ })) {
16783
16799
  select(filteredItems.value[0]);
16784
16800
  }
16785
16801
  isPristine.value = true;
@@ -16874,15 +16890,6 @@ const VCombobox = genericComponent()({
16874
16890
  if (val || val === oldVal) return;
16875
16891
  selectionIndex.value = -1;
16876
16892
  menu.value = false;
16877
- if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
16878
- let {
16879
- value
16880
- } = _ref2;
16881
- return value === displayItems.value[0].value;
16882
- })) {
16883
- select(displayItems.value[0]);
16884
- return;
16885
- }
16886
16893
  if (search.value) {
16887
16894
  if (props.multiple) {
16888
16895
  select(transformItem$3(props, search.value));
@@ -22246,7 +22253,7 @@ const VEmptyState = genericComponent()({
22246
22253
  "defaults": {
22247
22254
  VBtn: {
22248
22255
  class: 'v-empty-state__action-btn',
22249
- color: props.color,
22256
+ color: props.color ?? 'surface-variant',
22250
22257
  text: props.actionText
22251
22258
  }
22252
22259
  }
@@ -22513,15 +22520,13 @@ const VExpansionPanels = genericComponent()({
22513
22520
  }
22514
22521
  });
22515
22522
 
22523
+ // Types
22524
+
22516
22525
  const makeVFabProps = propsFactory({
22517
22526
  app: Boolean,
22518
22527
  appear: Boolean,
22519
22528
  extended: Boolean,
22520
22529
  layout: Boolean,
22521
- location: {
22522
- type: String,
22523
- default: 'bottom end'
22524
- },
22525
22530
  offset: Boolean,
22526
22531
  modelValue: {
22527
22532
  type: Boolean,
@@ -22531,6 +22536,7 @@ const makeVFabProps = propsFactory({
22531
22536
  active: true
22532
22537
  }), ['location']),
22533
22538
  ...makeLayoutItemProps(),
22539
+ ...makeLocationProps(),
22534
22540
  ...makeTransitionProps({
22535
22541
  transition: 'fab-transition'
22536
22542
  })
@@ -22557,11 +22563,11 @@ const VFab = genericComponent()({
22557
22563
  const hasPosition = computed(() => props.app || props.absolute);
22558
22564
  const position = computed(() => {
22559
22565
  if (!hasPosition.value) return false;
22560
- return props.location.split(' ').shift();
22566
+ return props.location?.split(' ').shift() ?? 'bottom';
22561
22567
  });
22562
22568
  const orientation = computed(() => {
22563
22569
  if (!hasPosition.value) return false;
22564
- return props.location.split(' ')[1] ?? 'end';
22570
+ return props.location?.split(' ')[1] ?? 'end';
22565
22571
  });
22566
22572
  useToggleScope(() => props.app, () => {
22567
22573
  const layout = useLayoutItem({
@@ -27988,7 +27994,6 @@ const makeVNumberInputProps = propsFactory({
27988
27994
  }, 'VNumberInput');
27989
27995
  const VNumberInput = genericComponent()({
27990
27996
  name: 'VNumberInput',
27991
- inheritAttrs: false,
27992
27997
  props: {
27993
27998
  ...makeVNumberInputProps()
27994
27999
  },
@@ -28762,6 +28767,7 @@ const VTimePickerClock = genericComponent()({
28762
28767
  return !props.allowedValues || props.allowedValues(value);
28763
28768
  }
28764
28769
  function wheel(e) {
28770
+ if (!props.scrollable || props.disabled) return;
28765
28771
  e.preventDefault();
28766
28772
  const delta = Math.sign(-e.deltaY || 1);
28767
28773
  let value = displayedValue.value;
@@ -28856,6 +28862,7 @@ const VTimePickerClock = genericComponent()({
28856
28862
  }
28857
28863
  }
28858
28864
  function onMouseDown(e) {
28865
+ if (props.disabled) return;
28859
28866
  e.preventDefault();
28860
28867
  window.addEventListener('mousemove', onDragMove);
28861
28868
  window.addEventListener('touchmove', onDragMove);
@@ -28886,7 +28893,7 @@ const VTimePickerClock = genericComponent()({
28886
28893
  }],
28887
28894
  "onMousedown": onMouseDown,
28888
28895
  "onTouchstart": onMouseDown,
28889
- "onWheel": e => props.scrollable && wheel(e),
28896
+ "onWheel": wheel,
28890
28897
  "ref": clockRef
28891
28898
  }, [createVNode("div", {
28892
28899
  "class": "v-time-picker-clock__inner",
@@ -28988,6 +28995,7 @@ const VTimePickerControls = genericComponent()({
28988
28995
  }, [createVNode(VBtn, {
28989
28996
  "active": props.selecting === 1,
28990
28997
  "color": props.selecting === 1 ? props.color : undefined,
28998
+ "disabled": props.disabled,
28991
28999
  "variant": "tonal",
28992
29000
  "class": {
28993
29001
  'v-time-picker-controls__time__btn': true,
@@ -29009,6 +29017,7 @@ const VTimePickerControls = genericComponent()({
29009
29017
  'v-time-picker-controls__time--with-ampm__btn': props.ampm,
29010
29018
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29011
29019
  },
29020
+ "disabled": props.disabled,
29012
29021
  "variant": "tonal",
29013
29022
  "text": props.minute == null ? '--' : pad(props.minute),
29014
29023
  "onClick": () => emit('update:selecting', SelectingTimes.Minute)
@@ -29026,6 +29035,7 @@ const VTimePickerControls = genericComponent()({
29026
29035
  'v-time-picker-controls__time__btn__active': props.selecting === 3,
29027
29036
  'v-time-picker-controls__time--with-seconds__btn': props.useSeconds
29028
29037
  },
29038
+ "disabled": props.disabled,
29029
29039
  "text": props.second == null ? '--' : pad(props.second)
29030
29040
  }, null), props.ampm && createVNode("div", {
29031
29041
  "class": ['v-time-picker-controls__ampm', {
@@ -29039,8 +29049,9 @@ const VTimePickerControls = genericComponent()({
29039
29049
  'v-time-picker-controls__ampm__btn': true,
29040
29050
  'v-time-picker-controls__ampm__btn__active': props.period === 'am'
29041
29051
  },
29052
+ "disabled": props.disabled,
29042
29053
  "text": t('$vuetify.timePicker.am'),
29043
- "variant": "tonal",
29054
+ "variant": props.disabled && props.period === 'am' ? 'elevated' : 'tonal',
29044
29055
  "onClick": () => props.period !== 'am' ? emit('update:period', 'am') : null
29045
29056
  }, null), createVNode(VBtn, {
29046
29057
  "active": props.period === 'pm',
@@ -29050,8 +29061,9 @@ const VTimePickerControls = genericComponent()({
29050
29061
  'v-time-picker-controls__ampm__btn': true,
29051
29062
  'v-time-picker-controls__ampm__btn__active': props.period === 'pm'
29052
29063
  },
29064
+ "disabled": props.disabled,
29053
29065
  "text": t('$vuetify.timePicker.pm'),
29054
- "variant": "tonal",
29066
+ "variant": props.disabled && props.period === 'pm' ? 'elevated' : 'tonal',
29055
29067
  "onClick": () => props.period !== 'pm' ? emit('update:period', 'pm') : null
29056
29068
  }, null)])])]);
29057
29069
  });
@@ -29635,6 +29647,7 @@ const VTreeview = genericComponent()({
29635
29647
  let {
29636
29648
  slots
29637
29649
  } = _ref;
29650
+ const vm = getCurrentInstance('VTreeview');
29638
29651
  const {
29639
29652
  items
29640
29653
  } = useListItems(props);
@@ -29717,15 +29730,13 @@ const VTreeview = genericComponent()({
29717
29730
  }
29718
29731
  });
29719
29732
  useRender(() => {
29720
- const listProps = VList.filterProps(props);
29733
+ const listProps = VList.filterProps(vm.vnode.props);
29721
29734
  const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
29722
29735
  return createVNode(VList, mergeProps({
29723
29736
  "ref": vListRef
29724
29737
  }, listProps, {
29725
29738
  "class": ['v-treeview', props.class],
29726
29739
  "style": props.style,
29727
- "opened": opened.value,
29728
- "onUpdate:opened": $event => opened.value = $event,
29729
29740
  "activated": activated.value,
29730
29741
  "onUpdate:activated": $event => activated.value = $event,
29731
29742
  "selected": selected.value,
@@ -30237,7 +30248,7 @@ function createVuetify$1() {
30237
30248
  goTo
30238
30249
  };
30239
30250
  }
30240
- const version$1 = "3.6.8";
30251
+ const version$1 = "3.6.9";
30241
30252
  createVuetify$1.version = version$1;
30242
30253
 
30243
30254
  // Vue's inject() can only be used in setup
@@ -30490,7 +30501,7 @@ var index = /*#__PURE__*/Object.freeze({
30490
30501
 
30491
30502
  /* eslint-disable local-rules/sort-imports */
30492
30503
 
30493
- const version = "3.6.8";
30504
+ const version = "3.6.9";
30494
30505
 
30495
30506
  /* eslint-disable local-rules/sort-imports */
30496
30507