vuetify 3.5.4 → 3.5.5

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 (151) hide show
  1. package/dist/json/attributes.json +2771 -2523
  2. package/dist/json/importMap-labs.json +4 -0
  3. package/dist/json/importMap.json +94 -94
  4. package/dist/json/tags.json +236 -169
  5. package/dist/json/web-types.json +3218 -2563
  6. package/dist/vuetify-labs.css +1819 -1796
  7. package/dist/vuetify-labs.d.ts +1234 -152
  8. package/dist/vuetify-labs.esm.js +555 -72
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +555 -72
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +887 -864
  13. package/dist/vuetify.d.ts +886 -179
  14. package/dist/vuetify.esm.js +121 -71
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +121 -71
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +647 -645
  20. package/dist/vuetify.min.js.map +1 -1
  21. package/lib/components/VAlert/index.d.mts +9 -0
  22. package/lib/components/VAppBar/index.d.mts +18 -0
  23. package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  25. package/lib/components/VAutocomplete/index.d.mts +33 -6
  26. package/lib/components/VAvatar/index.d.mts +9 -0
  27. package/lib/components/VBadge/index.d.mts +9 -0
  28. package/lib/components/VBanner/index.d.mts +9 -0
  29. package/lib/components/VBottomNavigation/index.d.mts +9 -0
  30. package/lib/components/VBreadcrumbs/index.d.mts +9 -0
  31. package/lib/components/VBtn/index.d.mts +9 -0
  32. package/lib/components/VBtnGroup/index.d.mts +9 -0
  33. package/lib/components/VBtnToggle/index.d.mts +9 -0
  34. package/lib/components/VCard/index.d.mts +9 -0
  35. package/lib/components/VCarousel/index.d.mts +9 -0
  36. package/lib/components/VChip/index.d.mts +9 -0
  37. package/lib/components/VColorPicker/index.d.mts +9 -0
  38. package/lib/components/VCombobox/index.d.mts +33 -6
  39. package/lib/components/VDataIterator/index.d.mts +3 -3
  40. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  41. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  42. package/lib/components/VDataTable/index.d.mts +355 -117
  43. package/lib/components/VDataTable/types.mjs.map +1 -1
  44. package/lib/components/VDatePicker/VDatePicker.css +2 -21
  45. package/lib/components/VDatePicker/VDatePicker.mjs +14 -10
  46. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  47. package/lib/components/VDatePicker/VDatePicker.sass +3 -18
  48. package/lib/components/VDatePicker/VDatePickerHeader.css +2 -0
  49. package/lib/components/VDatePicker/VDatePickerHeader.sass +3 -0
  50. package/lib/components/VDatePicker/VDatePickerMonth.css +11 -5
  51. package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -1
  52. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  53. package/lib/components/VDatePicker/VDatePickerMonth.sass +13 -5
  54. package/lib/components/VDatePicker/VDatePickerMonths.css +2 -3
  55. package/lib/components/VDatePicker/VDatePickerMonths.mjs +6 -3
  56. package/lib/components/VDatePicker/VDatePickerMonths.mjs.map +1 -1
  57. package/lib/components/VDatePicker/VDatePickerMonths.sass +4 -3
  58. package/lib/components/VDatePicker/VDatePickerYears.css +2 -2
  59. package/lib/components/VDatePicker/VDatePickerYears.mjs +8 -1
  60. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  61. package/lib/components/VDatePicker/VDatePickerYears.sass +4 -2
  62. package/lib/components/VDatePicker/_variables.scss +14 -34
  63. package/lib/components/VDatePicker/index.d.mts +13 -4
  64. package/lib/components/VExpansionPanel/VExpansionPanel.css +14 -0
  65. package/lib/components/VExpansionPanel/VExpansionPanel.sass +14 -0
  66. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +9 -2
  67. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  68. package/lib/components/VExpansionPanel/index.d.mts +27 -0
  69. package/lib/components/VField/VField.css +20 -1
  70. package/lib/components/VField/VField.sass +19 -1
  71. package/lib/components/VField/index.d.mts +9 -0
  72. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  73. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  74. package/lib/components/VFileInput/index.d.mts +9 -0
  75. package/lib/components/VFooter/index.d.mts +9 -0
  76. package/lib/components/VImg/index.d.mts +9 -0
  77. package/lib/components/VList/VListItem.css +2 -1
  78. package/lib/components/VList/VListItem.sass +1 -0
  79. package/lib/components/VList/_variables.scss +2 -1
  80. package/lib/components/VList/index.d.mts +18 -0
  81. package/lib/components/VMenu/VMenu.mjs +5 -5
  82. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  83. package/lib/components/VMenu/shared.mjs.map +1 -1
  84. package/lib/components/VNavigationDrawer/index.d.mts +9 -0
  85. package/lib/components/VPagination/index.d.mts +9 -0
  86. package/lib/components/VProgressLinear/index.d.mts +9 -0
  87. package/lib/components/VRangeSlider/index.d.mts +9 -0
  88. package/lib/components/VSelect/VSelect.mjs +4 -3
  89. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  90. package/lib/components/VSelect/index.d.mts +33 -6
  91. package/lib/components/VSheet/index.d.mts +9 -0
  92. package/lib/components/VSlider/index.d.mts +9 -0
  93. package/lib/components/VSnackbar/index.d.mts +9 -0
  94. package/lib/components/VStepper/index.d.mts +9 -0
  95. package/lib/components/VSystemBar/index.d.mts +9 -0
  96. package/lib/components/VTabs/index.d.mts +33 -6
  97. package/lib/components/VTextField/index.d.mts +33 -6
  98. package/lib/components/VTextarea/index.d.mts +9 -0
  99. package/lib/components/VTimeline/index.d.mts +9 -0
  100. package/lib/components/VToolbar/index.d.mts +9 -0
  101. package/lib/components/VTooltip/VTooltip.css +1 -0
  102. package/lib/components/VTooltip/VTooltip.sass +1 -0
  103. package/lib/components/VTooltip/_variables.scss +1 -0
  104. package/lib/components/index.d.mts +857 -151
  105. package/lib/composables/form.mjs +2 -1
  106. package/lib/composables/form.mjs.map +1 -1
  107. package/lib/composables/goto.mjs +16 -18
  108. package/lib/composables/goto.mjs.map +1 -1
  109. package/lib/composables/group.mjs +2 -0
  110. package/lib/composables/group.mjs.map +1 -1
  111. package/lib/composables/icons.mjs +17 -13
  112. package/lib/composables/icons.mjs.map +1 -1
  113. package/lib/composables/rounded.mjs +5 -1
  114. package/lib/composables/rounded.mjs.map +1 -1
  115. package/lib/composables/virtual.mjs +11 -3
  116. package/lib/composables/virtual.mjs.map +1 -1
  117. package/lib/entry-bundler.mjs +1 -1
  118. package/lib/framework.mjs +1 -1
  119. package/lib/iconsets/fa-svg.mjs +2 -1
  120. package/lib/iconsets/fa-svg.mjs.map +1 -1
  121. package/lib/index.d.mts +29 -28
  122. package/lib/labs/VCalendar/VCalendar.mjs +1 -1
  123. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  124. package/lib/labs/VPicker/VPicker.css +2 -2
  125. package/lib/labs/VPicker/VPicker.sass +2 -2
  126. package/lib/labs/VPicker/_variables.scss +2 -4
  127. package/lib/labs/VPicker/index.d.mts +9 -0
  128. package/lib/labs/VSparkline/VBarline.mjs +138 -0
  129. package/lib/labs/VSparkline/VBarline.mjs.map +1 -0
  130. package/lib/labs/VSparkline/VSparkline.mjs +49 -0
  131. package/lib/labs/VSparkline/VSparkline.mjs.map +1 -0
  132. package/lib/labs/VSparkline/VTrendline.mjs +143 -0
  133. package/lib/labs/VSparkline/VTrendline.mjs.map +1 -0
  134. package/lib/labs/VSparkline/index.d.mts +374 -0
  135. package/lib/labs/VSparkline/index.mjs +2 -0
  136. package/lib/labs/VSparkline/index.mjs.map +1 -0
  137. package/lib/labs/VSparkline/util/line.mjs +52 -0
  138. package/lib/labs/VSparkline/util/line.mjs.map +1 -0
  139. package/lib/labs/VSparkline/util/path.mjs +60 -0
  140. package/lib/labs/VSparkline/util/path.mjs.map +1 -0
  141. package/lib/labs/components.d.mts +376 -1
  142. package/lib/labs/components.mjs +1 -0
  143. package/lib/labs/components.mjs.map +1 -1
  144. package/lib/locale/nl.mjs +1 -1
  145. package/lib/locale/nl.mjs.map +1 -1
  146. package/lib/util/helpers.mjs +10 -0
  147. package/lib/util/helpers.mjs.map +1 -1
  148. package/package.json +2 -2
  149. package/lib/components/VDatePicker/VDatePickerTitle.mjs +0 -81
  150. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
  151. package/lib/components/VDatePicker/VDatePickerTitle.sass +0 -33
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.5.4
2
+ * Vuetify v3.5.5
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -539,6 +539,16 @@ function defer(timeout, cb) {
539
539
  const timeoutId = window.setTimeout(cb, timeout);
540
540
  return () => window.clearTimeout(timeoutId);
541
541
  }
542
+ function isClickInsideElement(event, targetDiv) {
543
+ const mouseX = event.clientX;
544
+ const mouseY = event.clientY;
545
+ const divRect = targetDiv.getBoundingClientRect();
546
+ const divLeft = divRect.left;
547
+ const divTop = divRect.top;
548
+ const divRight = divRect.right;
549
+ const divBottom = divRect.bottom;
550
+ return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;
551
+ }
542
552
 
543
553
  // Utilities
544
554
  const block = ['top', 'bottom'];
@@ -2150,7 +2160,7 @@ function provideLocale(props) {
2150
2160
  provide(LocaleSymbol, data);
2151
2161
  return data;
2152
2162
  }
2153
- function genDefaults$2() {
2163
+ function genDefaults$3() {
2154
2164
  return {
2155
2165
  af: false,
2156
2166
  ar: true,
@@ -2197,7 +2207,7 @@ function genDefaults$2() {
2197
2207
  };
2198
2208
  }
2199
2209
  function createRtl(i18n, options) {
2200
- const rtl = ref(options?.rtl ?? genDefaults$2());
2210
+ const rtl = ref(options?.rtl ?? genDefaults$3());
2201
2211
  const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);
2202
2212
  return {
2203
2213
  isRtl,
@@ -2230,7 +2240,7 @@ const ThemeSymbol = Symbol.for('vuetify:theme');
2230
2240
  const makeThemeProps = propsFactory({
2231
2241
  theme: String
2232
2242
  }, 'theme');
2233
- function genDefaults$1() {
2243
+ function genDefaults$2() {
2234
2244
  return {
2235
2245
  defaultTheme: 'light',
2236
2246
  variations: {
@@ -2317,8 +2327,8 @@ function genDefaults$1() {
2317
2327
  };
2318
2328
  }
2319
2329
  function parseThemeOptions() {
2320
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$1();
2321
- const defaults = genDefaults$1();
2330
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$2();
2331
+ const defaults = genDefaults$2();
2322
2332
  if (!options) return {
2323
2333
  ...defaults,
2324
2334
  isDisabled: true
@@ -3101,12 +3111,14 @@ const makeRoundedProps = propsFactory({
3101
3111
  rounded: {
3102
3112
  type: [Boolean, Number, String],
3103
3113
  default: undefined
3104
- }
3114
+ },
3115
+ tile: Boolean
3105
3116
  }, 'rounded');
3106
3117
  function useRounded(props) {
3107
3118
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
3108
3119
  const roundedClasses = computed(() => {
3109
3120
  const rounded = isRef(props) ? props.value : props.rounded;
3121
+ const tile = isRef(props) ? props.value : props.tile;
3110
3122
  const classes = [];
3111
3123
  if (rounded === true || rounded === '') {
3112
3124
  classes.push(`${name}--rounded`);
@@ -3114,6 +3126,8 @@ function useRounded(props) {
3114
3126
  for (const value of String(rounded).split(' ')) {
3115
3127
  classes.push(`rounded-${value}`);
3116
3128
  }
3129
+ } else if (tile) {
3130
+ classes.push('rounded-0');
3117
3131
  }
3118
3132
  return classes;
3119
3133
  });
@@ -4104,6 +4118,8 @@ function useGroupItem(props, injectKey) {
4104
4118
  vm.emit('group:selected', {
4105
4119
  value
4106
4120
  });
4121
+ }, {
4122
+ flush: 'sync'
4107
4123
  });
4108
4124
  return {
4109
4125
  id,
@@ -4439,23 +4455,27 @@ const VClassIcon = defineComponent({
4439
4455
  };
4440
4456
  }
4441
4457
  });
4442
- const defaultSets = {
4443
- svg: {
4444
- component: VSvgIcon
4445
- },
4446
- class: {
4447
- component: VClassIcon
4448
- }
4449
- };
4458
+ function genDefaults$1() {
4459
+ return {
4460
+ svg: {
4461
+ component: VSvgIcon
4462
+ },
4463
+ class: {
4464
+ component: VClassIcon
4465
+ }
4466
+ };
4467
+ }
4450
4468
 
4451
4469
  // Composables
4452
4470
  function createIcons(options) {
4471
+ const sets = genDefaults$1();
4472
+ const defaultSet = options?.defaultSet ?? 'mdi';
4473
+ if (defaultSet === 'mdi' && !sets.mdi) {
4474
+ sets.mdi = mdi;
4475
+ }
4453
4476
  return mergeDeep({
4454
- defaultSet: 'mdi',
4455
- sets: {
4456
- ...defaultSets,
4457
- mdi
4458
- },
4477
+ defaultSet,
4478
+ sets,
4459
4479
  aliases: {
4460
4480
  ...aliases,
4461
4481
  /* eslint-disable max-len */
@@ -6459,7 +6479,8 @@ function createForm(props) {
6459
6479
  errors.value = results;
6460
6480
  model.value = invalid > 0 ? false : valid === items.value.length ? true : null;
6461
6481
  }, {
6462
- deep: true
6482
+ deep: true,
6483
+ flush: 'post'
6463
6484
  });
6464
6485
  provide(FormKey, {
6465
6486
  register: _ref => {
@@ -10563,9 +10584,9 @@ const VMenu = genericComponent()({
10563
10584
  unregister() {
10564
10585
  --openChildren.value;
10565
10586
  },
10566
- closeParents() {
10587
+ closeParents(e) {
10567
10588
  setTimeout(() => {
10568
- if (!openChildren.value) {
10589
+ if (!openChildren.value && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
10569
10590
  isActive.value = false;
10570
10591
  parent?.closeParents();
10571
10592
  }
@@ -10598,8 +10619,8 @@ const VMenu = genericComponent()({
10598
10619
  document.removeEventListener('focusin', onFocusIn);
10599
10620
  }
10600
10621
  });
10601
- function onClickOutside() {
10602
- parent?.closeParents();
10622
+ function onClickOutside(e) {
10623
+ parent?.closeParents(e);
10603
10624
  }
10604
10625
  function onKeydown(e) {
10605
10626
  if (props.disabled) return;
@@ -11333,9 +11354,6 @@ function useVirtual(props, items) {
11333
11354
  });
11334
11355
  });
11335
11356
  });
11336
- watch(viewportHeight, (val, oldVal) => {
11337
- oldVal && calculateVisibleItems();
11338
- });
11339
11357
  onScopeDispose(() => {
11340
11358
  updateOffsets.clear();
11341
11359
  });
@@ -11358,6 +11376,17 @@ function useVirtual(props, items) {
11358
11376
  let lastScrollTop = 0;
11359
11377
  let scrollVelocity = 0;
11360
11378
  let lastScrollTime = 0;
11379
+ watch(viewportHeight, (val, oldVal) => {
11380
+ if (oldVal) {
11381
+ calculateVisibleItems();
11382
+ if (val < oldVal) {
11383
+ requestAnimationFrame(() => {
11384
+ scrollVelocity = 0;
11385
+ calculateVisibleItems();
11386
+ });
11387
+ }
11388
+ }
11389
+ });
11361
11390
  function handleScroll() {
11362
11391
  if (!containerRef.value || !markerRef.value) return;
11363
11392
  const scrollTop = containerRef.value.scrollTop;
@@ -11810,9 +11839,10 @@ const VSelect = genericComponent()({
11810
11839
  }
11811
11840
  }
11812
11841
  function select(item) {
11842
+ const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
11843
+ const add = index === -1;
11813
11844
  if (props.multiple) {
11814
- const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
11815
- if (index === -1) {
11845
+ if (add) {
11816
11846
  model.value = [...model.value, item];
11817
11847
  } else {
11818
11848
  const value = [...model.value];
@@ -11820,7 +11850,7 @@ const VSelect = genericComponent()({
11820
11850
  model.value = value;
11821
11851
  }
11822
11852
  } else {
11823
- model.value = [item];
11853
+ model.value = add ? [item] : [];
11824
11854
  menu.value = false;
11825
11855
  }
11826
11856
  }
@@ -12357,11 +12387,11 @@ const VAutocomplete = genericComponent()({
12357
12387
  }
12358
12388
  const isSelecting = shallowRef(false);
12359
12389
  function select(item) {
12360
- let add = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
12361
12390
  if (item.props.disabled) return;
12391
+ const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
12392
+ const add = index === -1;
12362
12393
  if (props.multiple) {
12363
- const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
12364
- if (index === -1) {
12394
+ if (add) {
12365
12395
  model.value = [...model.value, item];
12366
12396
  } else {
12367
12397
  const value = [...model.value];
@@ -12530,7 +12560,7 @@ const VAutocomplete = genericComponent()({
12530
12560
  function onChipClose(e) {
12531
12561
  e.stopPropagation();
12532
12562
  e.preventDefault();
12533
- select(item, false);
12563
+ select(item);
12534
12564
  }
12535
12565
  const slotProps = {
12536
12566
  'onClick:close': onChipClose,
@@ -17611,7 +17641,8 @@ function createGoTo(options, locale) {
17611
17641
  };
17612
17642
  }
17613
17643
  async function scrollTo(_target, _options, horizontal, goTo) {
17614
- const options = mergeDeep(goTo?.options, _options);
17644
+ const property = horizontal ? 'scrollLeft' : 'scrollTop';
17645
+ const options = mergeDeep(goTo?.options ?? genDefaults(), _options);
17615
17646
  const rtl = goTo?.rtl.value;
17616
17647
  const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;
17617
17648
  const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
@@ -17629,25 +17660,22 @@ async function scrollTo(_target, _options, horizontal, goTo) {
17629
17660
  }
17630
17661
  }
17631
17662
  targetLocation += options.offset;
17632
- const startLocation = (horizontal ? container.scrollLeft : container.scrollTop) ?? 0;
17663
+ const startLocation = container[property] ?? 0;
17633
17664
  if (targetLocation === startLocation) return Promise.resolve(targetLocation);
17634
17665
  const startTime = performance.now();
17635
17666
  return new Promise(resolve => requestAnimationFrame(function step(currentTime) {
17636
17667
  const timeElapsed = currentTime - startTime;
17637
- const progress = Math.abs(options.duration ? Math.min(timeElapsed / options.duration, 1) : 1);
17638
- const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(progress));
17639
- container[horizontal ? 'scrollLeft' : 'scrollTop'] = location;
17640
- if (progress === 1) return resolve(targetLocation);
17641
- let clientSize;
17642
- let reachEnd;
17643
- if (!horizontal) {
17644
- clientSize = container === document.body ? document.documentElement.clientHeight : container.clientHeight;
17645
- reachEnd = clientSize + container.scrollTop >= container.scrollHeight;
17646
- if (targetLocation > container.scrollTop && reachEnd) return resolve(targetLocation);
17647
- } else {
17648
- clientSize = container === document.body ? document.documentElement.clientWidth : container.clientWidth;
17649
- reachEnd = clientSize + container.scrollLeft >= container.scrollWidth;
17650
- if (targetLocation > container.scrollLeft && reachEnd) return resolve(targetLocation);
17668
+ const progress = timeElapsed / options.duration;
17669
+ const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(Math.max(progress, 1)));
17670
+ container[property] = location;
17671
+
17672
+ // Allow for some jitter if target time has elapsed
17673
+ if (progress >= 1 && Math.abs(location - container[property]) < 10) {
17674
+ return resolve(targetLocation);
17675
+ } else if (progress > 2) {
17676
+ // The target might not be reachable
17677
+ consoleWarn('Scroll target is not reachable');
17678
+ return resolve(container[property]);
17651
17679
  }
17652
17680
  requestAnimationFrame(step);
17653
17681
  }));
@@ -20584,12 +20612,13 @@ const VDatePickerMonth = genericComponent()({
20584
20612
  }, [(props.showAdjacentMonths || !item.isAdjacent) && createVNode(VDefaultsProvider, {
20585
20613
  "defaults": {
20586
20614
  VBtn: {
20615
+ class: 'v-date-picker-month__day-btn',
20587
20616
  color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
20588
20617
  disabled: item.isDisabled,
20589
20618
  icon: true,
20590
20619
  ripple: false,
20591
20620
  text: item.localized,
20592
- variant: item.isDisabled ? 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
20621
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
20593
20622
  onClick: () => onClick(item.date)
20594
20623
  }
20595
20624
  }
@@ -20615,6 +20644,7 @@ const VDatePickerMonths = genericComponent()({
20615
20644
  },
20616
20645
  setup(props, _ref) {
20617
20646
  let {
20647
+ emit,
20618
20648
  slots
20619
20649
  } = _ref;
20620
20650
  const adapter = useDate();
@@ -20650,6 +20680,10 @@ const VDatePickerMonths = genericComponent()({
20650
20680
  onClick: () => onClick(i)
20651
20681
  };
20652
20682
  function onClick(i) {
20683
+ if (model.value === i) {
20684
+ emit('update:modelValue', model.value);
20685
+ return;
20686
+ }
20653
20687
  model.value = i;
20654
20688
  }
20655
20689
  return slots.month?.({
@@ -20658,9 +20692,7 @@ const VDatePickerMonths = genericComponent()({
20658
20692
  props: btnProps
20659
20693
  }) ?? createVNode(VBtn, mergeProps({
20660
20694
  "key": "month"
20661
- }, btnProps, {
20662
- "onClick": () => onClick(i)
20663
- }), null);
20695
+ }, btnProps), null);
20664
20696
  })])]));
20665
20697
  return {};
20666
20698
  }
@@ -20685,6 +20717,7 @@ const VDatePickerYears = genericComponent()({
20685
20717
  },
20686
20718
  setup(props, _ref) {
20687
20719
  let {
20720
+ emit,
20688
20721
  slots
20689
20722
  } = _ref;
20690
20723
  const adapter = useDate();
@@ -20735,7 +20768,13 @@ const VDatePickerYears = genericComponent()({
20735
20768
  rounded: true,
20736
20769
  text: year.text,
20737
20770
  variant: model.value === year.value ? 'flat' : 'text',
20738
- onClick: () => model.value = year.value
20771
+ onClick: () => {
20772
+ if (model.value === year.value) {
20773
+ emit('update:modelValue', model.value);
20774
+ return;
20775
+ }
20776
+ model.value = year.value;
20777
+ }
20739
20778
  };
20740
20779
  return slots.year?.({
20741
20780
  year,
@@ -20928,7 +20967,9 @@ const VDatePicker = genericComponent()({
20928
20967
  } else {
20929
20968
  year.value++;
20930
20969
  month.value = 0;
20970
+ onUpdateYear(year.value);
20931
20971
  }
20972
+ onUpdateMonth(month.value);
20932
20973
  }
20933
20974
  function onClickPrev() {
20934
20975
  if (month.value > 0) {
@@ -20936,7 +20977,9 @@ const VDatePicker = genericComponent()({
20936
20977
  } else {
20937
20978
  year.value--;
20938
20979
  month.value = 11;
20980
+ onUpdateYear(year.value);
20939
20981
  }
20982
+ onUpdateMonth(month.value);
20940
20983
  }
20941
20984
  function onClickDate() {
20942
20985
  viewMode.value = 'month';
@@ -20947,14 +20990,14 @@ const VDatePicker = genericComponent()({
20947
20990
  function onClickYear() {
20948
20991
  viewMode.value = viewMode.value === 'year' ? 'month' : 'year';
20949
20992
  }
20950
- watch(month, () => {
20993
+ function onUpdateMonth(value) {
20951
20994
  if (viewMode.value === 'months') onClickMonth();
20952
- emit('update:month', month.value);
20953
- });
20954
- watch(year, () => {
20995
+ emit('update:month', value);
20996
+ }
20997
+ function onUpdateYear(value) {
20955
20998
  if (viewMode.value === 'year') onClickYear();
20956
- emit('update:year', year.value);
20957
- });
20999
+ emit('update:year', value);
21000
+ }
20958
21001
  watch(model, (val, oldVal) => {
20959
21002
  const before = adapter.date(wrapInArray(val)[0]);
20960
21003
  const after = adapter.date(wrapInArray(oldVal)[0]);
@@ -21010,14 +21053,14 @@ const VDatePicker = genericComponent()({
21010
21053
  "key": "date-picker-months"
21011
21054
  }, datePickerMonthsProps, {
21012
21055
  "modelValue": month.value,
21013
- "onUpdate:modelValue": $event => month.value = $event,
21056
+ "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
21014
21057
  "min": minDate.value,
21015
21058
  "max": maxDate.value
21016
21059
  }), null) : viewMode.value === 'year' ? createVNode(VDatePickerYears, mergeProps({
21017
21060
  "key": "date-picker-years"
21018
21061
  }, datePickerYearsProps, {
21019
21062
  "modelValue": year.value,
21020
- "onUpdate:modelValue": $event => year.value = $event,
21063
+ "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
21021
21064
  "min": minDate.value,
21022
21065
  "max": maxDate.value
21023
21066
  }), null) : createVNode(VDatePickerMonth, mergeProps({
@@ -21026,9 +21069,9 @@ const VDatePicker = genericComponent()({
21026
21069
  "modelValue": model.value,
21027
21070
  "onUpdate:modelValue": $event => model.value = $event,
21028
21071
  "month": month.value,
21029
- "onUpdate:month": $event => month.value = $event,
21072
+ "onUpdate:month": [$event => month.value = $event, onUpdateMonth],
21030
21073
  "year": year.value,
21031
- "onUpdate:year": $event => year.value = $event,
21074
+ "onUpdate:year": [$event => year.value = $event, onUpdateYear],
21032
21075
  "min": minDate.value,
21033
21076
  "max": maxDate.value
21034
21077
  }), null)]
@@ -21046,7 +21089,9 @@ const VExpansionPanelSymbol = Symbol.for('vuetify:v-expansion-panel');
21046
21089
  const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
21047
21090
  const makeVExpansionPanelsProps = propsFactory({
21048
21091
  color: String,
21092
+ flat: Boolean,
21049
21093
  static: Boolean,
21094
+ tile: Boolean,
21050
21095
  variant: {
21051
21096
  type: String,
21052
21097
  default: 'default',
@@ -21076,12 +21121,17 @@ const VExpansionPanels = genericComponent()({
21076
21121
  provideDefaults({
21077
21122
  VExpansionPanel: {
21078
21123
  color: toRef(props, 'color'),
21079
- readonly: toRef(props, 'readonly'),
21124
+ readonly: toRef(props, 'readonly')
21125
+ },
21126
+ VExpansionPanelTitle: {
21080
21127
  static: toRef(props, 'static')
21081
21128
  }
21082
21129
  });
21083
21130
  useRender(() => createVNode(props.tag, {
21084
- "class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
21131
+ "class": ['v-expansion-panels', {
21132
+ 'v-expansion-panels--flat': props.flat,
21133
+ 'v-expansion-panels--tile': props.tile
21134
+ }, themeClasses.value, variantClass.value, props.class],
21085
21135
  "style": props.style
21086
21136
  }, slots));
21087
21137
  return {};
@@ -21365,7 +21415,7 @@ const VFileInput = genericComponent()({
21365
21415
  if (!isFocused.value) focus();
21366
21416
  }
21367
21417
  function onClickPrepend(e) {
21368
- onControlClick(e);
21418
+ inputRef.value?.click();
21369
21419
  }
21370
21420
  function onControlMousedown(e) {
21371
21421
  emit('mousedown:control', e);
@@ -25673,7 +25723,7 @@ function createVuetify$1() {
25673
25723
  goTo
25674
25724
  };
25675
25725
  }
25676
- const version$1 = "3.5.4";
25726
+ const version$1 = "3.5.5";
25677
25727
  createVuetify$1.version = version$1;
25678
25728
 
25679
25729
  // Vue's inject() can only be used in setup
@@ -25698,7 +25748,7 @@ const createVuetify = function () {
25698
25748
  ...options
25699
25749
  });
25700
25750
  };
25701
- const version = "3.5.4";
25751
+ const version = "3.5.5";
25702
25752
  createVuetify.version = version;
25703
25753
 
25704
25754
  export { components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };