vuetify 3.6.7 → 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 (122) hide show
  1. package/dist/json/attributes.json +48 -16
  2. package/dist/json/importMap-labs.json +24 -24
  3. package/dist/json/importMap.json +132 -132
  4. package/dist/json/tags.json +8 -0
  5. package/dist/json/web-types.json +130 -59
  6. package/dist/vuetify-labs.css +2341 -2261
  7. package/dist/vuetify-labs.d.ts +715 -1581
  8. package/dist/vuetify-labs.esm.js +266 -141
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +265 -140
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +1610 -1530
  13. package/dist/vuetify.d.ts +605 -1317
  14. package/dist/vuetify.esm.js +144 -103
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +143 -102
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +335 -330
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/blueprints/index.d.mts +58 -56
  22. package/lib/blueprints/md1.d.mts +58 -56
  23. package/lib/blueprints/md2.d.mts +58 -56
  24. package/lib/blueprints/md3.d.mts +58 -56
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs +17 -14
  26. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/index.d.mts +102 -336
  28. package/lib/components/VBanner/VBanner.css +1 -0
  29. package/lib/components/VBanner/VBanner.sass +1 -0
  30. package/lib/components/VBanner/_variables.scss +1 -0
  31. package/lib/components/VCombobox/VCombobox.mjs +7 -11
  32. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  33. package/lib/components/VCombobox/index.d.mts +102 -336
  34. package/lib/components/VDatePicker/VDatePickerMonth.mjs +3 -0
  35. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  36. package/lib/components/VDivider/VDivider.mjs +1 -1
  37. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  38. package/lib/components/VEmptyState/VEmptyState.css +2 -2
  39. package/lib/components/VEmptyState/VEmptyState.mjs +1 -1
  40. package/lib/components/VEmptyState/VEmptyState.mjs.map +1 -1
  41. package/lib/components/VEmptyState/_variables.scss +2 -2
  42. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +1 -1
  43. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  44. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +1 -1
  45. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  46. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +1 -1
  47. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  48. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +1 -1
  49. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  50. package/lib/components/VExpansionPanel/index.d.mts +36 -36
  51. package/lib/components/VExpansionPanel/shared.mjs +4 -0
  52. package/lib/components/VExpansionPanel/shared.mjs.map +1 -0
  53. package/lib/components/VFab/VFab.mjs +4 -7
  54. package/lib/components/VFab/VFab.mjs.map +1 -1
  55. package/lib/components/VFab/index.d.mts +46 -49
  56. package/lib/components/VList/VList.mjs +4 -1
  57. package/lib/components/VList/VList.mjs.map +1 -1
  58. package/lib/components/VList/VListGroup.mjs +1 -0
  59. package/lib/components/VList/VListGroup.mjs.map +1 -1
  60. package/lib/components/VList/VListItem.css +2 -2
  61. package/lib/components/VList/VListItem.mjs +2 -0
  62. package/lib/components/VList/VListItem.mjs.map +1 -1
  63. package/lib/components/VList/VListItem.sass +1 -1
  64. package/lib/components/VList/index.d.mts +54 -66
  65. package/lib/components/VMenu/VMenu.mjs +1 -1
  66. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  67. package/lib/components/VOverlay/VOverlay.mjs +4 -3
  68. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  69. package/lib/components/VSelect/index.d.mts +102 -336
  70. package/lib/components/VSelectionControl/VSelectionControl.mjs +9 -1
  71. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  72. package/lib/components/VSlider/VSlider.mjs +2 -1
  73. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  74. package/lib/components/VSlider/VSliderThumb.mjs +2 -0
  75. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  76. package/lib/components/VSnackbar/VSnackbar.css +1 -1
  77. package/lib/components/VSnackbar/VSnackbar.sass +1 -1
  78. package/lib/components/VStepper/VStepper.mjs +19 -5
  79. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  80. package/lib/components/VStepper/VStepperItem.css +3 -0
  81. package/lib/components/VStepper/VStepperItem.mjs +1 -1
  82. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  83. package/lib/components/VStepper/VStepperItem.sass +3 -0
  84. package/lib/components/VStepper/VStepperWindow.mjs +2 -2
  85. package/lib/components/VStepper/VStepperWindow.mjs.map +1 -1
  86. package/lib/components/VStepper/index.d.mts +43 -9
  87. package/lib/components/VStepper/shared.mjs +4 -0
  88. package/lib/components/VStepper/shared.mjs.map +1 -0
  89. package/lib/components/VTabs/VTabs.mjs +2 -2
  90. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  91. package/lib/components/index.d.mts +417 -1128
  92. package/lib/composables/defaults.mjs +3 -1
  93. package/lib/composables/defaults.mjs.map +1 -1
  94. package/lib/composables/filter.mjs +1 -1
  95. package/lib/composables/filter.mjs.map +1 -1
  96. package/lib/composables/goto.mjs.map +1 -1
  97. package/lib/composables/icons.mjs.map +1 -1
  98. package/lib/composables/scroll.mjs +6 -0
  99. package/lib/composables/scroll.mjs.map +1 -1
  100. package/lib/entry-bundler.mjs +1 -1
  101. package/lib/framework.mjs +1 -1
  102. package/lib/index.d.mts +154 -155
  103. package/lib/labs/VNumberInput/VNumberInput.mjs +7 -1
  104. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  105. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs +1 -2
  106. package/lib/labs/VStepperVertical/VStepperVerticalItem.mjs.map +1 -1
  107. package/lib/labs/VStepperVertical/index.d.mts +43 -9
  108. package/lib/labs/VTimePicker/VTimePickerClock.mjs +3 -1
  109. package/lib/labs/VTimePicker/VTimePickerClock.mjs.map +1 -1
  110. package/lib/labs/VTimePicker/VTimePickerControls.mjs +7 -2
  111. package/lib/labs/VTimePicker/VTimePickerControls.mjs.map +1 -1
  112. package/lib/labs/VTreeview/VTreeview.mjs +4 -5
  113. package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
  114. package/lib/labs/VTreeview/VTreeviewChildren.mjs +30 -25
  115. package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
  116. package/lib/labs/VTreeview/VTreeviewItem.mjs +83 -12
  117. package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
  118. package/lib/labs/VTreeview/index.d.mts +116 -300
  119. package/lib/labs/components.d.mts +3408 -3558
  120. package/lib/styles/main.css +76 -0
  121. package/lib/styles/settings/_utilities.scss +5 -1
  122. package/package.json +2 -2
@@ -1,10 +1,10 @@
1
1
  /*!
2
- * Vuetify v3.6.7
2
+ * Vuetify v3.6.9
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
6
6
 
7
- import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, readonly, unref, warn, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, getCurrentInstance as getCurrentInstance$1, createVNode, mergeProps, onBeforeUnmount, watch, nextTick, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, Suspense, TransitionGroup, Transition, isRef, toRef, onBeforeMount, withDirectives, resolveDirective, vShow, onMounted, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
7
+ import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, readonly, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, createVNode, mergeProps, onBeforeUnmount, watch, nextTick, onDeactivated, onActivated, onScopeDispose, effectScope, toRaw, Suspense, TransitionGroup, Transition, isRef, toRef, onBeforeMount, withDirectives, resolveDirective, vShow, onMounted, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, createTextVNode, onUnmounted, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
8
8
 
9
9
  const IN_BROWSER = typeof window !== 'undefined';
10
10
  const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
@@ -1251,6 +1251,53 @@ const makeComponentProps = propsFactory({
1251
1251
 
1252
1252
  // Types
1253
1253
 
1254
+ function getCurrentInstance(name, message) {
1255
+ const vm = getCurrentInstance$1();
1256
+ if (!vm) {
1257
+ throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
1258
+ }
1259
+ return vm;
1260
+ }
1261
+ function getCurrentInstanceName() {
1262
+ let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
1263
+ const vm = getCurrentInstance(name).type;
1264
+ return toKebabCase(vm?.aliasName || vm?.name);
1265
+ }
1266
+ let _uid = 0;
1267
+ let _map = new WeakMap();
1268
+ function getUid() {
1269
+ const vm = getCurrentInstance('getUid');
1270
+ if (_map.has(vm)) return _map.get(vm);else {
1271
+ const uid = _uid++;
1272
+ _map.set(vm, uid);
1273
+ return uid;
1274
+ }
1275
+ }
1276
+ getUid.reset = () => {
1277
+ _uid = 0;
1278
+ _map = new WeakMap();
1279
+ };
1280
+
1281
+ // Utilities
1282
+
1283
+ // Types
1284
+
1285
+ function injectSelf(key) {
1286
+ let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
1287
+ const {
1288
+ provides
1289
+ } = vm;
1290
+ if (provides && key in provides) {
1291
+ // TS doesn't allow symbol as index type
1292
+ return provides[key];
1293
+ }
1294
+ return undefined;
1295
+ }
1296
+
1297
+ // Utilities
1298
+
1299
+ // Types
1300
+
1254
1301
  const DefaultsSymbol = Symbol.for('vuetify:defaults');
1255
1302
  function createDefaults(options) {
1256
1303
  return ref(options);
@@ -1476,37 +1523,6 @@ function getPrefixedEventHandlers(attrs, suffix, getData) {
1476
1523
  }, {});
1477
1524
  }
1478
1525
 
1479
- // Utilities
1480
-
1481
- // Types
1482
-
1483
- function getCurrentInstance(name, message) {
1484
- const vm = getCurrentInstance$1();
1485
- if (!vm) {
1486
- throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`);
1487
- }
1488
- return vm;
1489
- }
1490
- function getCurrentInstanceName() {
1491
- let name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'composables';
1492
- const vm = getCurrentInstance(name).type;
1493
- return toKebabCase(vm?.aliasName || vm?.name);
1494
- }
1495
- let _uid = 0;
1496
- let _map = new WeakMap();
1497
- function getUid() {
1498
- const vm = getCurrentInstance('getUid');
1499
- if (_map.has(vm)) return _map.get(vm);else {
1500
- const uid = _uid++;
1501
- _map.set(vm, uid);
1502
- return uid;
1503
- }
1504
- }
1505
- getUid.reset = () => {
1506
- _uid = 0;
1507
- _map = new WeakMap();
1508
- };
1509
-
1510
1526
  function getScrollParent(el) {
1511
1527
  let includeHidden = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1512
1528
  while (el) {
@@ -1536,22 +1552,6 @@ function isPotentiallyScrollable(el) {
1536
1552
  return ['scroll', 'auto'].includes(style.overflowY);
1537
1553
  }
1538
1554
 
1539
- // Utilities
1540
-
1541
- // Types
1542
-
1543
- function injectSelf(key) {
1544
- let vm = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstance('injectSelf');
1545
- const {
1546
- provides
1547
- } = vm;
1548
- if (provides && key in provides) {
1549
- // TS doesn't allow symbol as index type
1550
- return provides[key];
1551
- }
1552
- return undefined;
1553
- }
1554
-
1555
1555
  function isFixedPosition(el) {
1556
1556
  while (el) {
1557
1557
  if (window.getComputedStyle(el).position === 'fixed') {
@@ -4196,6 +4196,7 @@ function useScroll(props) {
4196
4196
  canScroll
4197
4197
  } = args;
4198
4198
  let previousScroll = 0;
4199
+ let previousScrollHeight = 0;
4199
4200
  const target = ref(null);
4200
4201
  const currentScroll = shallowRef(0);
4201
4202
  const savedScroll = shallowRef(0);
@@ -4218,6 +4219,11 @@ function useScroll(props) {
4218
4219
  if (!targetEl || canScroll && !canScroll.value) return;
4219
4220
  previousScroll = currentScroll.value;
4220
4221
  currentScroll.value = 'window' in targetEl ? targetEl.pageYOffset : targetEl.scrollTop;
4222
+ const currentScrollHeight = targetEl instanceof Window ? document.documentElement.scrollHeight : targetEl.scrollHeight;
4223
+ if (previousScrollHeight !== currentScrollHeight) {
4224
+ previousScrollHeight = currentScrollHeight;
4225
+ return;
4226
+ }
4221
4227
  isScrollingUp.value = currentScroll.value < previousScroll;
4222
4228
  currentThreshold.value = Math.abs(currentScroll.value - scrollThreshold.value);
4223
4229
  };
@@ -6482,7 +6488,15 @@ const VSelectionControl = genericComponent()({
6482
6488
  e.stopPropagation();
6483
6489
  }
6484
6490
  function onInput(e) {
6485
- if (!isInteractive.value) return;
6491
+ if (!isInteractive.value) {
6492
+ if (input.value) {
6493
+ // model value is not updated when input is not interactive
6494
+ // but the internal checked state of the input is still updated,
6495
+ // so here it's value is restored
6496
+ input.value.checked = model.value;
6497
+ }
6498
+ return;
6499
+ }
6486
6500
  if (props.readonly && group) {
6487
6501
  nextTick(() => group.forceUpdate());
6488
6502
  }
@@ -8935,6 +8949,7 @@ const VListGroup = genericComponent()({
8935
8949
  isBooted
8936
8950
  } = useSsrBoot();
8937
8951
  function onClick(e) {
8952
+ e.stopPropagation();
8938
8953
  open(!isOpen.value, e);
8939
8954
  }
8940
8955
  const activatorProps = computed(() => ({
@@ -9268,6 +9283,8 @@ const VListItem = genericComponent()({
9268
9283
  }), [[resolveDirective("ripple"), isClickable.value && props.ripple]]);
9269
9284
  });
9270
9285
  return {
9286
+ activate,
9287
+ isActivated,
9271
9288
  isGroupActivator,
9272
9289
  isSelected,
9273
9290
  list,
@@ -9343,7 +9360,7 @@ const VDivider = genericComponent()({
9343
9360
  const dividerStyles = computed(() => {
9344
9361
  const styles = {};
9345
9362
  if (props.length) {
9346
- styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length);
9363
+ styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
9347
9364
  }
9348
9365
  if (props.thickness) {
9349
9366
  styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
@@ -9604,6 +9621,9 @@ const makeVListProps = propsFactory({
9604
9621
  },
9605
9622
  slim: Boolean,
9606
9623
  nav: Boolean,
9624
+ 'onClick:open': EventProp(),
9625
+ 'onClick:select': EventProp(),
9626
+ 'onUpdate:opened': EventProp(),
9607
9627
  ...makeNestedProps({
9608
9628
  selectStrategy: 'single-leaf',
9609
9629
  openStrategy: 'list'
@@ -11007,9 +11027,6 @@ const VOverlay = genericComponent()({
11007
11027
  if (!(v && props.disabled)) model.value = v;
11008
11028
  }
11009
11029
  });
11010
- const {
11011
- teleportTarget
11012
- } = useTeleport(computed(() => props.attach || props.contained));
11013
11030
  const {
11014
11031
  themeClasses
11015
11032
  } = provideTheme(props);
@@ -11042,6 +11059,10 @@ const VOverlay = genericComponent()({
11042
11059
  isActive,
11043
11060
  isTop: localTop
11044
11061
  });
11062
+ const potentialShadowDomRoot = computed(() => activatorEl?.value?.getRootNode());
11063
+ const {
11064
+ teleportTarget
11065
+ } = useTeleport(computed(() => props.attach || props.contained || potentialShadowDomRoot.value instanceof ShadowRoot ? potentialShadowDomRoot.value : false));
11045
11066
  const {
11046
11067
  dimensionStyles
11047
11068
  } = useDimension(props);
@@ -11384,7 +11405,7 @@ const VMenu = genericComponent()({
11384
11405
  function onKeydown(e) {
11385
11406
  if (props.disabled) return;
11386
11407
  if (e.key === 'Tab' || e.key === 'Enter' && !props.closeOnContentClick) {
11387
- if (e.key === 'Enter' && e.target instanceof HTMLTextAreaElement) return;
11408
+ if (e.key === 'Enter' && (e.target instanceof HTMLTextAreaElement || e.target instanceof HTMLInputElement && !!e.target.closest('form'))) return;
11388
11409
  if (e.key === 'Enter') e.preventDefault();
11389
11410
  const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
11390
11411
  if (!nextElement) {
@@ -12915,7 +12936,7 @@ function filterItems(items, query, options) {
12915
12936
  const customMatches = {};
12916
12937
  const defaultMatches = {};
12917
12938
  let match = -1;
12918
- if (query && !options?.noFilter) {
12939
+ if ((query || customFiltersLength > 0) && !options?.noFilter) {
12919
12940
  if (typeof item === 'object') {
12920
12941
  const filterKeys = keys || Object.keys(transformed);
12921
12942
  for (const key of filterKeys) {
@@ -13128,7 +13149,12 @@ const VAutocomplete = genericComponent()({
13128
13149
  if (['Escape'].includes(e.key)) {
13129
13150
  menu.value = false;
13130
13151
  }
13131
- if (highlightFirst.value && e.key === 'Enter') {
13152
+ if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
13153
+ let {
13154
+ value
13155
+ } = _ref2;
13156
+ return value === displayItems.value[0].value;
13157
+ })) {
13132
13158
  select(displayItems.value[0]);
13133
13159
  }
13134
13160
  if (e.key === 'ArrowDown' && highlightFirst.value) {
@@ -13231,16 +13257,14 @@ const VAutocomplete = genericComponent()({
13231
13257
  isPristine.value = true;
13232
13258
  nextTick(() => isSelecting.value = false);
13233
13259
  } else {
13234
- if (!props.multiple && search.value == null) model.value = [];else if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
13235
- let {
13236
- value
13237
- } = _ref2;
13238
- return value === displayItems.value[0].value;
13239
- })) {
13240
- select(displayItems.value[0]);
13241
- }
13260
+ if (!props.multiple && search.value == null) model.value = [];
13242
13261
  menu.value = false;
13243
- if (props.multiple || hasSelectionSlot.value) search.value = '';
13262
+ if (!model.value.some(_ref3 => {
13263
+ let {
13264
+ title
13265
+ } = _ref3;
13266
+ return title === search.value;
13267
+ })) search.value = '';
13244
13268
  selectionIndex.value = -1;
13245
13269
  }
13246
13270
  });
@@ -13326,12 +13350,12 @@ const VAutocomplete = genericComponent()({
13326
13350
  "renderless": true,
13327
13351
  "items": displayItems.value
13328
13352
  }, {
13329
- default: _ref3 => {
13353
+ default: _ref4 => {
13330
13354
  let {
13331
13355
  item,
13332
13356
  index,
13333
13357
  itemRef
13334
- } = _ref3;
13358
+ } = _ref4;
13335
13359
  const itemProps = mergeProps(item.props, {
13336
13360
  ref: itemRef,
13337
13361
  key: index,
@@ -13345,10 +13369,10 @@ const VAutocomplete = genericComponent()({
13345
13369
  }) ?? createVNode(VListItem, mergeProps(itemProps, {
13346
13370
  "role": "option"
13347
13371
  }), {
13348
- prepend: _ref4 => {
13372
+ prepend: _ref5 => {
13349
13373
  let {
13350
13374
  isSelected
13351
- } = _ref4;
13375
+ } = _ref5;
13352
13376
  return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
13353
13377
  "key": item.value,
13354
13378
  "modelValue": isSelected,
@@ -15756,6 +15780,7 @@ const makeVSliderThumbProps = propsFactory({
15756
15780
  type: [Boolean, Object],
15757
15781
  default: true
15758
15782
  },
15783
+ name: String,
15759
15784
  ...makeComponentProps()
15760
15785
  }, 'VSliderThumb');
15761
15786
  const VSliderThumb = genericComponent()({
@@ -15852,6 +15877,7 @@ const VSliderThumb = genericComponent()({
15852
15877
  }, props.style],
15853
15878
  "role": "slider",
15854
15879
  "tabindex": disabled.value ? -1 : 0,
15880
+ "aria-label": props.name,
15855
15881
  "aria-valuemin": props.min,
15856
15882
  "aria-valuemax": props.max,
15857
15883
  "aria-valuenow": props.modelValue,
@@ -16128,7 +16154,8 @@ const VSlider = genericComponent()({
16128
16154
  "elevation": props.elevation,
16129
16155
  "onFocus": focus,
16130
16156
  "onBlur": blur,
16131
- "ripple": props.ripple
16157
+ "ripple": props.ripple,
16158
+ "name": props.name
16132
16159
  }, {
16133
16160
  'thumb-label': slots['thumb-label']
16134
16161
  })]);
@@ -16995,8 +17022,13 @@ const VCombobox = genericComponent()({
16995
17022
  if (['Escape'].includes(e.key)) {
16996
17023
  menu.value = false;
16997
17024
  }
16998
- if (['Enter', 'Escape'].includes(e.key)) {
16999
- if (highlightFirst.value && e.key === 'Enter') {
17025
+ if (['Enter', 'Escape', 'Tab'].includes(e.key)) {
17026
+ if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
17027
+ let {
17028
+ value
17029
+ } = _ref2;
17030
+ return value === displayItems.value[0].value;
17031
+ })) {
17000
17032
  select(filteredItems.value[0]);
17001
17033
  }
17002
17034
  isPristine.value = true;
@@ -17091,15 +17123,6 @@ const VCombobox = genericComponent()({
17091
17123
  if (val || val === oldVal) return;
17092
17124
  selectionIndex.value = -1;
17093
17125
  menu.value = false;
17094
- if (highlightFirst.value && !listHasFocus.value && !model.value.some(_ref2 => {
17095
- let {
17096
- value
17097
- } = _ref2;
17098
- return value === displayItems.value[0].value;
17099
- })) {
17100
- select(displayItems.value[0]);
17101
- return;
17102
- }
17103
17126
  if (search.value) {
17104
17127
  if (props.multiple) {
17105
17128
  select(transformItem$3(props, search.value));
@@ -21753,6 +21776,9 @@ const VDatePickerMonth = genericComponent()({
21753
21776
  });
21754
21777
  function onRangeClick(value) {
21755
21778
  const _value = adapter.startOfDay(value);
21779
+ if (model.value.length === 0) {
21780
+ rangeStart.value = undefined;
21781
+ }
21756
21782
  if (!rangeStart.value) {
21757
21783
  rangeStart.value = _value;
21758
21784
  model.value = [rangeStart.value];
@@ -22460,7 +22486,7 @@ const VEmptyState = genericComponent()({
22460
22486
  "defaults": {
22461
22487
  VBtn: {
22462
22488
  class: 'v-empty-state__action-btn',
22463
- color: props.color,
22489
+ color: props.color ?? 'surface-variant',
22464
22490
  text: props.actionText
22465
22491
  }
22466
22492
  }
@@ -22478,6 +22504,10 @@ const VEmptyState = genericComponent()({
22478
22504
  }
22479
22505
  });
22480
22506
 
22507
+ // Types
22508
+
22509
+ const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');
22510
+
22481
22511
  const makeVExpansionPanelTextProps = propsFactory({
22482
22512
  ...makeComponentProps(),
22483
22513
  ...makeLazyProps()
@@ -22658,7 +22688,6 @@ const VExpansionPanel = genericComponent()({
22658
22688
 
22659
22689
  // Types
22660
22690
 
22661
- const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');
22662
22691
  const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
22663
22692
  const makeVExpansionPanelsProps = propsFactory({
22664
22693
  flat: Boolean,
@@ -22724,15 +22753,13 @@ const VExpansionPanels = genericComponent()({
22724
22753
  }
22725
22754
  });
22726
22755
 
22756
+ // Types
22757
+
22727
22758
  const makeVFabProps = propsFactory({
22728
22759
  app: Boolean,
22729
22760
  appear: Boolean,
22730
22761
  extended: Boolean,
22731
22762
  layout: Boolean,
22732
- location: {
22733
- type: String,
22734
- default: 'bottom end'
22735
- },
22736
22763
  offset: Boolean,
22737
22764
  modelValue: {
22738
22765
  type: Boolean,
@@ -22742,6 +22769,7 @@ const makeVFabProps = propsFactory({
22742
22769
  active: true
22743
22770
  }), ['location']),
22744
22771
  ...makeLayoutItemProps(),
22772
+ ...makeLocationProps(),
22745
22773
  ...makeTransitionProps({
22746
22774
  transition: 'fab-transition'
22747
22775
  })
@@ -22768,11 +22796,11 @@ const VFab = genericComponent()({
22768
22796
  const hasPosition = computed(() => props.app || props.absolute);
22769
22797
  const position = computed(() => {
22770
22798
  if (!hasPosition.value) return false;
22771
- return props.location.split(' ').shift();
22799
+ return props.location?.split(' ').shift() ?? 'bottom';
22772
22800
  });
22773
22801
  const orientation = computed(() => {
22774
22802
  if (!hasPosition.value) return false;
22775
- return props.location.split(' ')[1] ?? 'end';
22803
+ return props.location?.split(' ')[1] ?? 'end';
22776
22804
  });
22777
22805
  useToggleScope(() => props.app, () => {
22778
22806
  const layout = useLayoutItem({
@@ -26002,6 +26030,10 @@ const VSpeedDial = genericComponent()({
26002
26030
 
26003
26031
  // Types
26004
26032
 
26033
+ const VStepperSymbol = Symbol.for('vuetify:v-stepper');
26034
+
26035
+ // Types
26036
+
26005
26037
  const makeVStepperActionsProps = propsFactory({
26006
26038
  color: String,
26007
26039
  disabled: {
@@ -26189,9 +26221,6 @@ const VStepperItem = genericComponent()({
26189
26221
  }
26190
26222
  });
26191
26223
 
26192
- // Types
26193
-
26194
- const VStepperSymbol$1 = Symbol.for('vuetify:v-stepper');
26195
26224
  const makeVStepperWindowProps = propsFactory({
26196
26225
  ...omit(makeVWindowProps(), ['continuous', 'nextIcon', 'prevIcon', 'showArrows', 'touch', 'mandatory'])
26197
26226
  }, 'VStepperWindow');
@@ -26205,7 +26234,7 @@ const VStepperWindow = genericComponent()({
26205
26234
  let {
26206
26235
  slots
26207
26236
  } = _ref;
26208
- const group = inject$1(VStepperSymbol$1, null);
26237
+ const group = inject$1(VStepperSymbol, null);
26209
26238
  const _model = useProxiedModel(props, 'modelValue');
26210
26239
  const model = computed({
26211
26240
  get() {
@@ -26263,11 +26292,13 @@ const VStepperWindowItem = genericComponent()({
26263
26292
 
26264
26293
  // Types
26265
26294
 
26266
- const VStepperSymbol = Symbol.for('vuetify:v-stepper');
26267
26295
  const makeStepperProps = propsFactory({
26268
26296
  altLabels: Boolean,
26269
26297
  bgColor: String,
26298
+ completeIcon: String,
26299
+ editIcon: String,
26270
26300
  editable: Boolean,
26301
+ errorIcon: String,
26271
26302
  hideActions: Boolean,
26272
26303
  items: {
26273
26304
  type: Array,
@@ -26281,9 +26312,9 @@ const makeStepperProps = propsFactory({
26281
26312
  type: String,
26282
26313
  default: 'value'
26283
26314
  },
26284
- mobile: Boolean,
26285
26315
  nonLinear: Boolean,
26286
- flat: Boolean
26316
+ flat: Boolean,
26317
+ ...makeDisplayProps()
26287
26318
  }, 'Stepper');
26288
26319
  const makeVStepperProps = propsFactory({
26289
26320
  ...makeStepperProps(),
@@ -26311,6 +26342,13 @@ const VStepper = genericComponent()({
26311
26342
  selected
26312
26343
  } = useGroup(props, VStepperSymbol);
26313
26344
  const {
26345
+ displayClasses,
26346
+ mobile
26347
+ } = useDisplay(props);
26348
+ const {
26349
+ completeIcon,
26350
+ editIcon,
26351
+ errorIcon,
26314
26352
  color,
26315
26353
  editable,
26316
26354
  prevText,
@@ -26337,6 +26375,9 @@ const VStepper = genericComponent()({
26337
26375
  provideDefaults({
26338
26376
  VStepperItem: {
26339
26377
  editable,
26378
+ errorIcon,
26379
+ completeIcon,
26380
+ editIcon,
26340
26381
  prevText,
26341
26382
  nextText
26342
26383
  },
@@ -26358,8 +26399,8 @@ const VStepper = genericComponent()({
26358
26399
  'v-stepper--alt-labels': props.altLabels,
26359
26400
  'v-stepper--flat': props.flat,
26360
26401
  'v-stepper--non-linear': props.nonLinear,
26361
- 'v-stepper--mobile': props.mobile
26362
- }, props.class],
26402
+ 'v-stepper--mobile': mobile.value
26403
+ }, displayClasses.value, props.class],
26363
26404
  "style": props.style
26364
26405
  }), {
26365
26406
  default: () => [hasHeader && createVNode(VStepperHeader, {
@@ -26889,9 +26930,9 @@ const VTabs = genericComponent()({
26889
26930
  "key": item.text,
26890
26931
  "value": item.value
26891
26932
  }), {
26892
- default: () => slots[`tab.${item.value}`]?.({
26933
+ default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({
26893
26934
  item
26894
- })
26935
+ }) : undefined
26895
26936
  }))]
26896
26937
  }), hasWindow && createVNode(VTabsWindow, mergeProps({
26897
26938
  "modelValue": model.value,
@@ -28033,7 +28074,7 @@ function createVuetify$1() {
28033
28074
  goTo
28034
28075
  };
28035
28076
  }
28036
- const version$1 = "3.6.7";
28077
+ const version$1 = "3.6.9";
28037
28078
  createVuetify$1.version = version$1;
28038
28079
 
28039
28080
  // Vue's inject() can only be used in setup
@@ -28058,7 +28099,7 @@ const createVuetify = function () {
28058
28099
  ...options
28059
28100
  });
28060
28101
  };
28061
- const version = "3.6.7";
28102
+ const version = "3.6.9";
28062
28103
  createVuetify.version = version;
28063
28104
 
28064
28105
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };