vuetify 3.5.4 → 3.5.6

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 (159) hide show
  1. package/dist/json/attributes.json +2811 -2523
  2. package/dist/json/importMap-labs.json +12 -8
  3. package/dist/json/importMap.json +120 -116
  4. package/dist/json/tags.json +251 -169
  5. package/dist/json/web-types.json +3509 -2563
  6. package/dist/vuetify-labs.css +1757 -1737
  7. package/dist/vuetify-labs.d.ts +1475 -152
  8. package/dist/vuetify-labs.esm.js +566 -72
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +566 -72
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.css +864 -844
  13. package/dist/vuetify.d.ts +1140 -191
  14. package/dist/vuetify.esm.js +132 -71
  15. package/dist/vuetify.esm.js.map +1 -1
  16. package/dist/vuetify.js +132 -71
  17. package/dist/vuetify.js.map +1 -1
  18. package/dist/vuetify.min.css +2 -2
  19. package/dist/vuetify.min.js +645 -642
  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 +5 -2
  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/VCombobox.mjs +3 -1
  39. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  40. package/lib/components/VCombobox/index.d.mts +33 -6
  41. package/lib/components/VDataIterator/index.d.mts +3 -3
  42. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  43. package/lib/components/VDataTable/VDataTableHeaders.mjs.map +1 -1
  44. package/lib/components/VDataTable/index.d.mts +569 -118
  45. package/lib/components/VDataTable/index.mjs +1 -0
  46. package/lib/components/VDataTable/index.mjs.map +1 -1
  47. package/lib/components/VDataTable/types.mjs.map +1 -1
  48. package/lib/components/VDatePicker/VDatePicker.css +2 -21
  49. package/lib/components/VDatePicker/VDatePicker.mjs +14 -10
  50. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  51. package/lib/components/VDatePicker/VDatePicker.sass +3 -18
  52. package/lib/components/VDatePicker/VDatePickerHeader.css +2 -0
  53. package/lib/components/VDatePicker/VDatePickerHeader.sass +3 -0
  54. package/lib/components/VDatePicker/VDatePickerMonth.css +11 -5
  55. package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -1
  56. package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  57. package/lib/components/VDatePicker/VDatePickerMonth.sass +13 -5
  58. package/lib/components/VDatePicker/VDatePickerMonths.css +2 -3
  59. package/lib/components/VDatePicker/VDatePickerMonths.mjs +6 -3
  60. package/lib/components/VDatePicker/VDatePickerMonths.mjs.map +1 -1
  61. package/lib/components/VDatePicker/VDatePickerMonths.sass +4 -3
  62. package/lib/components/VDatePicker/VDatePickerYears.css +2 -2
  63. package/lib/components/VDatePicker/VDatePickerYears.mjs +8 -1
  64. package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
  65. package/lib/components/VDatePicker/VDatePickerYears.sass +4 -2
  66. package/lib/components/VDatePicker/_variables.scss +14 -34
  67. package/lib/components/VDatePicker/index.d.mts +13 -4
  68. package/lib/components/VExpansionPanel/VExpansionPanel.css +18 -7
  69. package/lib/components/VExpansionPanel/VExpansionPanel.sass +18 -3
  70. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +2 -0
  71. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  72. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +11 -2
  73. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  74. package/lib/components/VExpansionPanel/index.d.mts +54 -0
  75. package/lib/components/VField/VField.css +20 -1
  76. package/lib/components/VField/VField.sass +19 -1
  77. package/lib/components/VField/index.d.mts +9 -0
  78. package/lib/components/VFileInput/VFileInput.mjs +1 -1
  79. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  80. package/lib/components/VFileInput/index.d.mts +9 -0
  81. package/lib/components/VFooter/index.d.mts +9 -0
  82. package/lib/components/VImg/index.d.mts +9 -0
  83. package/lib/components/VList/VListItem.css +2 -1
  84. package/lib/components/VList/VListItem.sass +1 -0
  85. package/lib/components/VList/_variables.scss +2 -1
  86. package/lib/components/VList/index.d.mts +18 -0
  87. package/lib/components/VMenu/VMenu.mjs +5 -5
  88. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  89. package/lib/components/VMenu/shared.mjs.map +1 -1
  90. package/lib/components/VNavigationDrawer/index.d.mts +9 -0
  91. package/lib/components/VPagination/index.d.mts +9 -0
  92. package/lib/components/VProgressLinear/index.d.mts +9 -0
  93. package/lib/components/VRangeSlider/index.d.mts +9 -0
  94. package/lib/components/VSelect/VSelect.mjs +5 -3
  95. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  96. package/lib/components/VSelect/index.d.mts +33 -6
  97. package/lib/components/VSheet/index.d.mts +9 -0
  98. package/lib/components/VSlider/index.d.mts +9 -0
  99. package/lib/components/VSnackbar/index.d.mts +9 -0
  100. package/lib/components/VStepper/index.d.mts +9 -0
  101. package/lib/components/VSystemBar/index.d.mts +9 -0
  102. package/lib/components/VTabs/index.d.mts +33 -6
  103. package/lib/components/VTextField/index.d.mts +33 -6
  104. package/lib/components/VTextarea/index.d.mts +9 -0
  105. package/lib/components/VTimeline/index.d.mts +9 -0
  106. package/lib/components/VToolbar/index.d.mts +9 -0
  107. package/lib/components/VTooltip/VTooltip.css +1 -0
  108. package/lib/components/VTooltip/VTooltip.sass +1 -0
  109. package/lib/components/VTooltip/_variables.scss +1 -0
  110. package/lib/components/index.d.mts +1098 -152
  111. package/lib/composables/filter.mjs +1 -1
  112. package/lib/composables/filter.mjs.map +1 -1
  113. package/lib/composables/form.mjs +2 -1
  114. package/lib/composables/form.mjs.map +1 -1
  115. package/lib/composables/goto.mjs +16 -18
  116. package/lib/composables/goto.mjs.map +1 -1
  117. package/lib/composables/group.mjs +2 -0
  118. package/lib/composables/group.mjs.map +1 -1
  119. package/lib/composables/icons.mjs +17 -13
  120. package/lib/composables/icons.mjs.map +1 -1
  121. package/lib/composables/rounded.mjs +5 -1
  122. package/lib/composables/rounded.mjs.map +1 -1
  123. package/lib/composables/virtual.mjs +11 -3
  124. package/lib/composables/virtual.mjs.map +1 -1
  125. package/lib/entry-bundler.mjs +1 -1
  126. package/lib/framework.mjs +1 -1
  127. package/lib/iconsets/fa-svg.mjs +2 -1
  128. package/lib/iconsets/fa-svg.mjs.map +1 -1
  129. package/lib/index.d.mts +41 -39
  130. package/lib/labs/VCalendar/VCalendar.mjs +1 -1
  131. package/lib/labs/VCalendar/VCalendar.mjs.map +1 -1
  132. package/lib/labs/VPicker/VPicker.css +2 -2
  133. package/lib/labs/VPicker/VPicker.sass +2 -2
  134. package/lib/labs/VPicker/_variables.scss +2 -4
  135. package/lib/labs/VPicker/index.d.mts +9 -0
  136. package/lib/labs/VSparkline/VBarline.mjs +138 -0
  137. package/lib/labs/VSparkline/VBarline.mjs.map +1 -0
  138. package/lib/labs/VSparkline/VSparkline.mjs +49 -0
  139. package/lib/labs/VSparkline/VSparkline.mjs.map +1 -0
  140. package/lib/labs/VSparkline/VTrendline.mjs +143 -0
  141. package/lib/labs/VSparkline/VTrendline.mjs.map +1 -0
  142. package/lib/labs/VSparkline/index.d.mts +374 -0
  143. package/lib/labs/VSparkline/index.mjs +2 -0
  144. package/lib/labs/VSparkline/index.mjs.map +1 -0
  145. package/lib/labs/VSparkline/util/line.mjs +52 -0
  146. package/lib/labs/VSparkline/util/line.mjs.map +1 -0
  147. package/lib/labs/VSparkline/util/path.mjs +60 -0
  148. package/lib/labs/VSparkline/util/path.mjs.map +1 -0
  149. package/lib/labs/components.d.mts +376 -1
  150. package/lib/labs/components.mjs +1 -0
  151. package/lib/labs/components.mjs.map +1 -1
  152. package/lib/locale/nl.mjs +1 -1
  153. package/lib/locale/nl.mjs.map +1 -1
  154. package/lib/util/helpers.mjs +10 -0
  155. package/lib/util/helpers.mjs.map +1 -1
  156. package/package.json +2 -2
  157. package/lib/components/VDatePicker/VDatePickerTitle.mjs +0 -81
  158. package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +0 -1
  159. package/lib/components/VDatePicker/VDatePickerTitle.sass +0 -33
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.5.4
2
+ * Vuetify v3.5.6
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -543,6 +543,16 @@
543
543
  const timeoutId = window.setTimeout(cb, timeout);
544
544
  return () => window.clearTimeout(timeoutId);
545
545
  }
546
+ function isClickInsideElement(event, targetDiv) {
547
+ const mouseX = event.clientX;
548
+ const mouseY = event.clientY;
549
+ const divRect = targetDiv.getBoundingClientRect();
550
+ const divLeft = divRect.left;
551
+ const divTop = divRect.top;
552
+ const divRight = divRect.right;
553
+ const divBottom = divRect.bottom;
554
+ return mouseX >= divLeft && mouseX <= divRight && mouseY >= divTop && mouseY <= divBottom;
555
+ }
546
556
 
547
557
  // Utilities
548
558
  const block = ['top', 'bottom'];
@@ -2154,7 +2164,7 @@
2154
2164
  vue.provide(LocaleSymbol, data);
2155
2165
  return data;
2156
2166
  }
2157
- function genDefaults$2() {
2167
+ function genDefaults$3() {
2158
2168
  return {
2159
2169
  af: false,
2160
2170
  ar: true,
@@ -2201,7 +2211,7 @@
2201
2211
  };
2202
2212
  }
2203
2213
  function createRtl(i18n, options) {
2204
- const rtl = vue.ref(options?.rtl ?? genDefaults$2());
2214
+ const rtl = vue.ref(options?.rtl ?? genDefaults$3());
2205
2215
  const isRtl = vue.computed(() => rtl.value[i18n.current.value] ?? false);
2206
2216
  return {
2207
2217
  isRtl,
@@ -2234,7 +2244,7 @@
2234
2244
  const makeThemeProps = propsFactory({
2235
2245
  theme: String
2236
2246
  }, 'theme');
2237
- function genDefaults$1() {
2247
+ function genDefaults$2() {
2238
2248
  return {
2239
2249
  defaultTheme: 'light',
2240
2250
  variations: {
@@ -2321,8 +2331,8 @@
2321
2331
  };
2322
2332
  }
2323
2333
  function parseThemeOptions() {
2324
- let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$1();
2325
- const defaults = genDefaults$1();
2334
+ let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$2();
2335
+ const defaults = genDefaults$2();
2326
2336
  if (!options) return {
2327
2337
  ...defaults,
2328
2338
  isDisabled: true
@@ -3105,12 +3115,14 @@
3105
3115
  rounded: {
3106
3116
  type: [Boolean, Number, String],
3107
3117
  default: undefined
3108
- }
3118
+ },
3119
+ tile: Boolean
3109
3120
  }, 'rounded');
3110
3121
  function useRounded(props) {
3111
3122
  let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
3112
3123
  const roundedClasses = vue.computed(() => {
3113
3124
  const rounded = vue.isRef(props) ? props.value : props.rounded;
3125
+ const tile = vue.isRef(props) ? props.value : props.tile;
3114
3126
  const classes = [];
3115
3127
  if (rounded === true || rounded === '') {
3116
3128
  classes.push(`${name}--rounded`);
@@ -3118,6 +3130,8 @@
3118
3130
  for (const value of String(rounded).split(' ')) {
3119
3131
  classes.push(`rounded-${value}`);
3120
3132
  }
3133
+ } else if (tile) {
3134
+ classes.push('rounded-0');
3121
3135
  }
3122
3136
  return classes;
3123
3137
  });
@@ -4108,6 +4122,8 @@
4108
4122
  vm.emit('group:selected', {
4109
4123
  value
4110
4124
  });
4125
+ }, {
4126
+ flush: 'sync'
4111
4127
  });
4112
4128
  return {
4113
4129
  id,
@@ -4443,23 +4459,27 @@
4443
4459
  };
4444
4460
  }
4445
4461
  });
4446
- const defaultSets = {
4447
- svg: {
4448
- component: VSvgIcon
4449
- },
4450
- class: {
4451
- component: VClassIcon
4452
- }
4453
- };
4462
+ function genDefaults$1() {
4463
+ return {
4464
+ svg: {
4465
+ component: VSvgIcon
4466
+ },
4467
+ class: {
4468
+ component: VClassIcon
4469
+ }
4470
+ };
4471
+ }
4454
4472
 
4455
4473
  // Composables
4456
4474
  function createIcons(options) {
4475
+ const sets = genDefaults$1();
4476
+ const defaultSet = options?.defaultSet ?? 'mdi';
4477
+ if (defaultSet === 'mdi' && !sets.mdi) {
4478
+ sets.mdi = mdi;
4479
+ }
4457
4480
  return mergeDeep({
4458
- defaultSet: 'mdi',
4459
- sets: {
4460
- ...defaultSets,
4461
- mdi
4462
- },
4481
+ defaultSet,
4482
+ sets,
4463
4483
  aliases: {
4464
4484
  ...aliases,
4465
4485
  /* eslint-disable max-len */
@@ -6463,7 +6483,8 @@
6463
6483
  errors.value = results;
6464
6484
  model.value = invalid > 0 ? false : valid === items.value.length ? true : null;
6465
6485
  }, {
6466
- deep: true
6486
+ deep: true,
6487
+ flush: 'post'
6467
6488
  });
6468
6489
  vue.provide(FormKey, {
6469
6490
  register: _ref => {
@@ -10567,9 +10588,9 @@
10567
10588
  unregister() {
10568
10589
  --openChildren.value;
10569
10590
  },
10570
- closeParents() {
10591
+ closeParents(e) {
10571
10592
  setTimeout(() => {
10572
- if (!openChildren.value) {
10593
+ if (!openChildren.value && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
10573
10594
  isActive.value = false;
10574
10595
  parent?.closeParents();
10575
10596
  }
@@ -10602,8 +10623,8 @@
10602
10623
  document.removeEventListener('focusin', onFocusIn);
10603
10624
  }
10604
10625
  });
10605
- function onClickOutside() {
10606
- parent?.closeParents();
10626
+ function onClickOutside(e) {
10627
+ parent?.closeParents(e);
10607
10628
  }
10608
10629
  function onKeydown(e) {
10609
10630
  if (props.disabled) return;
@@ -11337,9 +11358,6 @@
11337
11358
  });
11338
11359
  });
11339
11360
  });
11340
- vue.watch(viewportHeight, (val, oldVal) => {
11341
- oldVal && calculateVisibleItems();
11342
- });
11343
11361
  vue.onScopeDispose(() => {
11344
11362
  updateOffsets.clear();
11345
11363
  });
@@ -11362,6 +11380,17 @@
11362
11380
  let lastScrollTop = 0;
11363
11381
  let scrollVelocity = 0;
11364
11382
  let lastScrollTime = 0;
11383
+ vue.watch(viewportHeight, (val, oldVal) => {
11384
+ if (oldVal) {
11385
+ calculateVisibleItems();
11386
+ if (val < oldVal) {
11387
+ requestAnimationFrame(() => {
11388
+ scrollVelocity = 0;
11389
+ calculateVisibleItems();
11390
+ });
11391
+ }
11392
+ }
11393
+ });
11365
11394
  function handleScroll() {
11366
11395
  if (!containerRef.value || !markerRef.value) return;
11367
11396
  const scrollTop = containerRef.value.scrollTop;
@@ -11814,9 +11843,11 @@
11814
11843
  }
11815
11844
  }
11816
11845
  function select(item) {
11846
+ let add = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
11817
11847
  if (props.multiple) {
11818
11848
  const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
11819
- if (index === -1) {
11849
+ add = index === -1;
11850
+ if (add) {
11820
11851
  model.value = [...model.value, item];
11821
11852
  } else {
11822
11853
  const value = [...model.value];
@@ -11824,7 +11855,7 @@
11824
11855
  model.value = value;
11825
11856
  }
11826
11857
  } else {
11827
- model.value = [item];
11858
+ model.value = add ? [item] : [];
11828
11859
  menu.value = false;
11829
11860
  }
11830
11861
  }
@@ -11976,7 +12007,7 @@
11976
12007
  function onChipClose(e) {
11977
12008
  e.stopPropagation();
11978
12009
  e.preventDefault();
11979
- select(item);
12010
+ select(item, false);
11980
12011
  }
11981
12012
  const slotProps = {
11982
12013
  'onClick:close': onChipClose,
@@ -12086,7 +12117,7 @@
12086
12117
  if (typeof item === 'object') {
12087
12118
  const filterKeys = keys || Object.keys(transformed);
12088
12119
  for (const key of filterKeys) {
12089
- const value = getPropertyFromItem(transformed, key, transformed);
12120
+ const value = getPropertyFromItem(transformed, key);
12090
12121
  const keyFilter = options?.customKeyFilter?.[key];
12091
12122
  match = keyFilter ? keyFilter(value, query, item) : filter(value, query, item);
12092
12123
  if (match !== -1 && match !== false) {
@@ -12365,7 +12396,8 @@
12365
12396
  if (item.props.disabled) return;
12366
12397
  if (props.multiple) {
12367
12398
  const index = model.value.findIndex(selection => props.valueComparator(selection.value, item.value));
12368
- if (index === -1) {
12399
+ add = index === -1;
12400
+ if (add) {
12369
12401
  model.value = [...model.value, item];
12370
12402
  } else {
12371
12403
  const value = [...model.value];
@@ -12507,7 +12539,9 @@
12507
12539
  item,
12508
12540
  index,
12509
12541
  props: itemProps
12510
- }) ?? vue.createVNode(VListItem, itemProps, {
12542
+ }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
12543
+ "role": "option"
12544
+ }), {
12511
12545
  prepend: _ref4 => {
12512
12546
  let {
12513
12547
  isSelected
@@ -16297,7 +16331,9 @@
16297
16331
  item,
16298
16332
  index,
16299
16333
  props: itemProps
16300
- }) ?? vue.createVNode(VListItem, itemProps, {
16334
+ }) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
16335
+ "role": "option"
16336
+ }), {
16301
16337
  prepend: _ref4 => {
16302
16338
  let {
16303
16339
  isSelected
@@ -17615,7 +17651,8 @@
17615
17651
  };
17616
17652
  }
17617
17653
  async function scrollTo(_target, _options, horizontal, goTo) {
17618
- const options = mergeDeep(goTo?.options, _options);
17654
+ const property = horizontal ? 'scrollLeft' : 'scrollTop';
17655
+ const options = mergeDeep(goTo?.options ?? genDefaults(), _options);
17619
17656
  const rtl = goTo?.rtl.value;
17620
17657
  const target = (typeof _target === 'number' ? _target : getTarget(_target)) ?? 0;
17621
17658
  const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
@@ -17633,25 +17670,22 @@
17633
17670
  }
17634
17671
  }
17635
17672
  targetLocation += options.offset;
17636
- const startLocation = (horizontal ? container.scrollLeft : container.scrollTop) ?? 0;
17673
+ const startLocation = container[property] ?? 0;
17637
17674
  if (targetLocation === startLocation) return Promise.resolve(targetLocation);
17638
17675
  const startTime = performance.now();
17639
17676
  return new Promise(resolve => requestAnimationFrame(function step(currentTime) {
17640
17677
  const timeElapsed = currentTime - startTime;
17641
- const progress = Math.abs(options.duration ? Math.min(timeElapsed / options.duration, 1) : 1);
17642
- const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(progress));
17643
- container[horizontal ? 'scrollLeft' : 'scrollTop'] = location;
17644
- if (progress === 1) return resolve(targetLocation);
17645
- let clientSize;
17646
- let reachEnd;
17647
- if (!horizontal) {
17648
- clientSize = container === document.body ? document.documentElement.clientHeight : container.clientHeight;
17649
- reachEnd = clientSize + container.scrollTop >= container.scrollHeight;
17650
- if (targetLocation > container.scrollTop && reachEnd) return resolve(targetLocation);
17651
- } else {
17652
- clientSize = container === document.body ? document.documentElement.clientWidth : container.clientWidth;
17653
- reachEnd = clientSize + container.scrollLeft >= container.scrollWidth;
17654
- if (targetLocation > container.scrollLeft && reachEnd) return resolve(targetLocation);
17678
+ const progress = timeElapsed / options.duration;
17679
+ const location = Math.floor(startLocation + (targetLocation - startLocation) * ease(clamp(progress, 0, 1)));
17680
+ container[property] = location;
17681
+
17682
+ // Allow for some jitter if target time has elapsed
17683
+ if (progress >= 1 && Math.abs(location - container[property]) < 10) {
17684
+ return resolve(targetLocation);
17685
+ } else if (progress > 2) {
17686
+ // The target might not be reachable
17687
+ consoleWarn('Scroll target is not reachable');
17688
+ return resolve(container[property]);
17655
17689
  }
17656
17690
  requestAnimationFrame(step);
17657
17691
  }));
@@ -20588,12 +20622,13 @@
20588
20622
  }, [(props.showAdjacentMonths || !item.isAdjacent) && vue.createVNode(VDefaultsProvider, {
20589
20623
  "defaults": {
20590
20624
  VBtn: {
20625
+ class: 'v-date-picker-month__day-btn',
20591
20626
  color: (item.isSelected || item.isToday) && !item.isDisabled ? props.color : undefined,
20592
20627
  disabled: item.isDisabled,
20593
20628
  icon: true,
20594
20629
  ripple: false,
20595
20630
  text: item.localized,
20596
- variant: item.isDisabled ? 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
20631
+ variant: item.isDisabled ? item.isToday ? 'outlined' : 'text' : item.isToday && !item.isSelected ? 'outlined' : 'flat',
20597
20632
  onClick: () => onClick(item.date)
20598
20633
  }
20599
20634
  }
@@ -20619,6 +20654,7 @@
20619
20654
  },
20620
20655
  setup(props, _ref) {
20621
20656
  let {
20657
+ emit,
20622
20658
  slots
20623
20659
  } = _ref;
20624
20660
  const adapter = useDate();
@@ -20654,6 +20690,10 @@
20654
20690
  onClick: () => onClick(i)
20655
20691
  };
20656
20692
  function onClick(i) {
20693
+ if (model.value === i) {
20694
+ emit('update:modelValue', model.value);
20695
+ return;
20696
+ }
20657
20697
  model.value = i;
20658
20698
  }
20659
20699
  return slots.month?.({
@@ -20662,9 +20702,7 @@
20662
20702
  props: btnProps
20663
20703
  }) ?? vue.createVNode(VBtn, vue.mergeProps({
20664
20704
  "key": "month"
20665
- }, btnProps, {
20666
- "onClick": () => onClick(i)
20667
- }), null);
20705
+ }, btnProps), null);
20668
20706
  })])]));
20669
20707
  return {};
20670
20708
  }
@@ -20689,6 +20727,7 @@
20689
20727
  },
20690
20728
  setup(props, _ref) {
20691
20729
  let {
20730
+ emit,
20692
20731
  slots
20693
20732
  } = _ref;
20694
20733
  const adapter = useDate();
@@ -20739,7 +20778,13 @@
20739
20778
  rounded: true,
20740
20779
  text: year.text,
20741
20780
  variant: model.value === year.value ? 'flat' : 'text',
20742
- onClick: () => model.value = year.value
20781
+ onClick: () => {
20782
+ if (model.value === year.value) {
20783
+ emit('update:modelValue', model.value);
20784
+ return;
20785
+ }
20786
+ model.value = year.value;
20787
+ }
20743
20788
  };
20744
20789
  return slots.year?.({
20745
20790
  year,
@@ -20932,7 +20977,9 @@
20932
20977
  } else {
20933
20978
  year.value++;
20934
20979
  month.value = 0;
20980
+ onUpdateYear(year.value);
20935
20981
  }
20982
+ onUpdateMonth(month.value);
20936
20983
  }
20937
20984
  function onClickPrev() {
20938
20985
  if (month.value > 0) {
@@ -20940,7 +20987,9 @@
20940
20987
  } else {
20941
20988
  year.value--;
20942
20989
  month.value = 11;
20990
+ onUpdateYear(year.value);
20943
20991
  }
20992
+ onUpdateMonth(month.value);
20944
20993
  }
20945
20994
  function onClickDate() {
20946
20995
  viewMode.value = 'month';
@@ -20951,14 +21000,14 @@
20951
21000
  function onClickYear() {
20952
21001
  viewMode.value = viewMode.value === 'year' ? 'month' : 'year';
20953
21002
  }
20954
- vue.watch(month, () => {
21003
+ function onUpdateMonth(value) {
20955
21004
  if (viewMode.value === 'months') onClickMonth();
20956
- emit('update:month', month.value);
20957
- });
20958
- vue.watch(year, () => {
21005
+ emit('update:month', value);
21006
+ }
21007
+ function onUpdateYear(value) {
20959
21008
  if (viewMode.value === 'year') onClickYear();
20960
- emit('update:year', year.value);
20961
- });
21009
+ emit('update:year', value);
21010
+ }
20962
21011
  vue.watch(model, (val, oldVal) => {
20963
21012
  const before = adapter.date(wrapInArray(val)[0]);
20964
21013
  const after = adapter.date(wrapInArray(oldVal)[0]);
@@ -21014,14 +21063,14 @@
21014
21063
  "key": "date-picker-months"
21015
21064
  }, datePickerMonthsProps, {
21016
21065
  "modelValue": month.value,
21017
- "onUpdate:modelValue": $event => month.value = $event,
21066
+ "onUpdate:modelValue": [$event => month.value = $event, onUpdateMonth],
21018
21067
  "min": minDate.value,
21019
21068
  "max": maxDate.value
21020
21069
  }), null) : viewMode.value === 'year' ? vue.createVNode(VDatePickerYears, vue.mergeProps({
21021
21070
  "key": "date-picker-years"
21022
21071
  }, datePickerYearsProps, {
21023
21072
  "modelValue": year.value,
21024
- "onUpdate:modelValue": $event => year.value = $event,
21073
+ "onUpdate:modelValue": [$event => year.value = $event, onUpdateYear],
21025
21074
  "min": minDate.value,
21026
21075
  "max": maxDate.value
21027
21076
  }), null) : vue.createVNode(VDatePickerMonth, vue.mergeProps({
@@ -21030,9 +21079,9 @@
21030
21079
  "modelValue": model.value,
21031
21080
  "onUpdate:modelValue": $event => model.value = $event,
21032
21081
  "month": month.value,
21033
- "onUpdate:month": $event => month.value = $event,
21082
+ "onUpdate:month": [$event => month.value = $event, onUpdateMonth],
21034
21083
  "year": year.value,
21035
- "onUpdate:year": $event => year.value = $event,
21084
+ "onUpdate:year": [$event => year.value = $event, onUpdateYear],
21036
21085
  "min": minDate.value,
21037
21086
  "max": maxDate.value
21038
21087
  }), null)]
@@ -21050,7 +21099,10 @@
21050
21099
  const allowedVariants = ['default', 'accordion', 'inset', 'popout'];
21051
21100
  const makeVExpansionPanelsProps = propsFactory({
21052
21101
  color: String,
21102
+ flat: Boolean,
21103
+ focusable: Boolean,
21053
21104
  static: Boolean,
21105
+ tile: Boolean,
21054
21106
  variant: {
21055
21107
  type: String,
21056
21108
  default: 'default',
@@ -21080,12 +21132,18 @@
21080
21132
  provideDefaults({
21081
21133
  VExpansionPanel: {
21082
21134
  color: vue.toRef(props, 'color'),
21083
- readonly: vue.toRef(props, 'readonly'),
21135
+ readonly: vue.toRef(props, 'readonly')
21136
+ },
21137
+ VExpansionPanelTitle: {
21138
+ focusable: vue.toRef(props, 'focusable'),
21084
21139
  static: vue.toRef(props, 'static')
21085
21140
  }
21086
21141
  });
21087
21142
  useRender(() => vue.createVNode(props.tag, {
21088
- "class": ['v-expansion-panels', themeClasses.value, variantClass.value, props.class],
21143
+ "class": ['v-expansion-panels', {
21144
+ 'v-expansion-panels--flat': props.flat,
21145
+ 'v-expansion-panels--tile': props.tile
21146
+ }, themeClasses.value, variantClass.value, props.class],
21089
21147
  "style": props.style
21090
21148
  }, slots));
21091
21149
  return {};
@@ -21136,6 +21194,7 @@
21136
21194
  default: '$collapse'
21137
21195
  },
21138
21196
  hideActions: Boolean,
21197
+ focusable: Boolean,
21139
21198
  static: Boolean,
21140
21199
  ripple: {
21141
21200
  type: [Boolean, Object],
@@ -21170,6 +21229,7 @@
21170
21229
  useRender(() => vue.withDirectives(vue.createVNode("button", {
21171
21230
  "class": ['v-expansion-panel-title', {
21172
21231
  'v-expansion-panel-title--active': expansionPanel.isSelected.value,
21232
+ 'v-expansion-panel-title--focusable': props.focusable,
21173
21233
  'v-expansion-panel-title--static': props.static
21174
21234
  }, backgroundColorClasses.value, props.class],
21175
21235
  "style": [backgroundColorStyles.value, props.style],
@@ -21369,7 +21429,7 @@
21369
21429
  if (!isFocused.value) focus();
21370
21430
  }
21371
21431
  function onClickPrepend(e) {
21372
- onControlClick(e);
21432
+ inputRef.value?.click();
21373
21433
  }
21374
21434
  function onControlMousedown(e) {
21375
21435
  emit('mousedown:control', e);
@@ -25342,6 +25402,7 @@
25342
25402
  VDataIterator: VDataIterator,
25343
25403
  VDataTable: VDataTable,
25344
25404
  VDataTableFooter: VDataTableFooter,
25405
+ VDataTableHeaders: VDataTableHeaders,
25345
25406
  VDataTableRow: VDataTableRow,
25346
25407
  VDataTableRows: VDataTableRows,
25347
25408
  VDataTableServer: VDataTableServer,
@@ -25677,7 +25738,7 @@
25677
25738
  goTo
25678
25739
  };
25679
25740
  }
25680
- const version$1 = "3.5.4";
25741
+ const version$1 = "3.5.6";
25681
25742
  createVuetify$1.version = version$1;
25682
25743
 
25683
25744
  // Vue's inject() can only be used in setup
@@ -25702,7 +25763,7 @@
25702
25763
  ...options
25703
25764
  });
25704
25765
  };
25705
- const version = "3.5.4";
25766
+ const version = "3.5.6";
25706
25767
  createVuetify.version = version;
25707
25768
 
25708
25769
  exports.components = components;