vuetify 3.4.10 → 3.4.11

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 (79) hide show
  1. package/dist/json/attributes.json +5 -5
  2. package/dist/json/importMap.json +154 -154
  3. package/dist/json/web-types.json +2511 -2489
  4. package/dist/vuetify-labs.css +2293 -2287
  5. package/dist/vuetify-labs.d.ts +1116 -15
  6. package/dist/vuetify-labs.esm.js +166 -157
  7. package/dist/vuetify-labs.esm.js.map +1 -1
  8. package/dist/vuetify-labs.js +166 -157
  9. package/dist/vuetify-labs.min.css +2 -2
  10. package/dist/vuetify.css +548 -542
  11. package/dist/vuetify.d.ts +1162 -61
  12. package/dist/vuetify.esm.js +166 -157
  13. package/dist/vuetify.esm.js.map +1 -1
  14. package/dist/vuetify.js +166 -157
  15. package/dist/vuetify.js.map +1 -1
  16. package/dist/vuetify.min.css +2 -2
  17. package/dist/vuetify.min.js +755 -758
  18. package/dist/vuetify.min.js.map +1 -1
  19. package/lib/components/VBtn/VBtn.mjs +3 -1
  20. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  21. package/lib/components/VBtn/index.d.mts +21 -5
  22. package/lib/components/VCarousel/index.d.mts +5 -5
  23. package/lib/components/VDataIterator/VDataIterator.mjs +2 -1
  24. package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
  25. package/lib/components/VDataIterator/index.d.mts +6 -0
  26. package/lib/components/VDataTable/VDataTable.mjs +2 -1
  27. package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
  28. package/lib/components/VDataTable/VDataTableFooter.css +9 -4
  29. package/lib/components/VDataTable/VDataTableFooter.sass +9 -4
  30. package/lib/components/VDataTable/_variables.scss +5 -0
  31. package/lib/components/VDataTable/composables/paginate.mjs +6 -2
  32. package/lib/components/VDataTable/composables/paginate.mjs.map +1 -1
  33. package/lib/components/VDataTable/index.d.mts +6 -0
  34. package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
  35. package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
  36. package/lib/components/VList/VListItem.css +1 -0
  37. package/lib/components/VList/VListItem.sass +1 -0
  38. package/lib/components/VList/_variables.scss +1 -0
  39. package/lib/components/VOverlay/locationStrategies.mjs +1 -3
  40. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  41. package/lib/components/VPagination/VPagination.mjs +10 -10
  42. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  43. package/lib/components/VPagination/index.d.mts +2 -2
  44. package/lib/components/VSelectionControl/VSelectionControl.mjs +6 -3
  45. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  46. package/lib/components/VSlider/VSliderThumb.mjs +4 -3
  47. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  48. package/lib/components/VTabs/VTab.mjs +6 -6
  49. package/lib/components/VTabs/VTab.mjs.map +1 -1
  50. package/lib/components/VTabs/index.d.mts +1102 -3
  51. package/lib/components/VWindow/VWindow.mjs +2 -2
  52. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  53. package/lib/components/VWindow/index.d.mts +1 -1
  54. package/lib/components/index.d.mts +1116 -15
  55. package/lib/composables/calendar.mjs +1 -1
  56. package/lib/composables/calendar.mjs.map +1 -1
  57. package/lib/composables/date/adapters/vuetify.mjs +1 -2
  58. package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
  59. package/lib/composables/date/date.mjs +4 -4
  60. package/lib/composables/date/date.mjs.map +1 -1
  61. package/lib/composables/locale.mjs +46 -2
  62. package/lib/composables/locale.mjs.map +1 -1
  63. package/lib/entry-bundler.mjs +1 -1
  64. package/lib/framework.mjs +1 -1
  65. package/lib/index.d.mts +46 -46
  66. package/lib/locale/index.d.mts +1 -45
  67. package/lib/locale/index.mjs +0 -43
  68. package/lib/locale/index.mjs.map +1 -1
  69. package/lib/locale/sk.mjs +22 -22
  70. package/lib/locale/sk.mjs.map +1 -1
  71. package/lib/styles/main.css +78 -78
  72. package/lib/styles/settings/_utilities.scss +1 -0
  73. package/lib/util/helpers.mjs +1 -43
  74. package/lib/util/helpers.mjs.map +1 -1
  75. package/package.json +3 -2
  76. package/lib/components/VDatePicker/utils.mjs +0 -69
  77. package/lib/components/VDatePicker/utils.mjs.map +0 -1
  78. package/lib/util/dateTimeUtils.mjs +0 -115
  79. package/lib/util/dateTimeUtils.mjs.map +0 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.4.10
2
+ * Vuetify v3.4.11
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -1852,6 +1852,79 @@ function createLayout(props) {
1852
1852
  };
1853
1853
  }
1854
1854
 
1855
+ // Utilities
1856
+
1857
+ // Types
1858
+
1859
+ function useToggleScope(source, fn) {
1860
+ let scope;
1861
+ function start() {
1862
+ scope = effectScope();
1863
+ scope.run(() => fn.length ? fn(() => {
1864
+ scope?.stop();
1865
+ start();
1866
+ }) : fn());
1867
+ }
1868
+ watch(source, active => {
1869
+ if (active && !scope) {
1870
+ start();
1871
+ } else if (!active) {
1872
+ scope?.stop();
1873
+ scope = undefined;
1874
+ }
1875
+ }, {
1876
+ immediate: true
1877
+ });
1878
+ onScopeDispose(() => {
1879
+ scope?.stop();
1880
+ });
1881
+ }
1882
+
1883
+ // Composables
1884
+
1885
+ // Types
1886
+
1887
+ // Composables
1888
+ function useProxiedModel(props, prop, defaultValue) {
1889
+ let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;
1890
+ let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;
1891
+ const vm = getCurrentInstance('useProxiedModel');
1892
+ const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);
1893
+ const kebabProp = toKebabCase(prop);
1894
+ const checkKebab = kebabProp !== prop;
1895
+ const isControlled = checkKebab ? computed(() => {
1896
+ void props[prop];
1897
+ return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));
1898
+ }) : computed(() => {
1899
+ void props[prop];
1900
+ return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));
1901
+ });
1902
+ useToggleScope(() => !isControlled.value, () => {
1903
+ watch(() => props[prop], val => {
1904
+ internal.value = val;
1905
+ });
1906
+ });
1907
+ const model = computed({
1908
+ get() {
1909
+ const externalValue = props[prop];
1910
+ return transformIn(isControlled.value ? externalValue : internal.value);
1911
+ },
1912
+ set(internalValue) {
1913
+ const newValue = transformOut(internalValue);
1914
+ const value = toRaw(isControlled.value ? props[prop] : internal.value);
1915
+ if (value === newValue || transformIn(value) === internalValue) {
1916
+ return;
1917
+ }
1918
+ internal.value = newValue;
1919
+ vm?.emit(`update:${prop}`, newValue);
1920
+ }
1921
+ });
1922
+ Object.defineProperty(model, 'externalValue', {
1923
+ get: () => isControlled.value ? props[prop] : internal.value
1924
+ });
1925
+ return model;
1926
+ }
1927
+
1855
1928
  var en = {
1856
1929
  badge: 'Badge',
1857
1930
  open: 'Open',
@@ -1953,123 +2026,6 @@ var en = {
1953
2026
  }
1954
2027
  };
1955
2028
 
1956
- const defaultRtl = {
1957
- af: false,
1958
- ar: true,
1959
- bg: false,
1960
- ca: false,
1961
- ckb: false,
1962
- cs: false,
1963
- de: false,
1964
- el: false,
1965
- en: false,
1966
- es: false,
1967
- et: false,
1968
- fa: true,
1969
- fi: false,
1970
- fr: false,
1971
- hr: false,
1972
- hu: false,
1973
- he: true,
1974
- id: false,
1975
- it: false,
1976
- ja: false,
1977
- ko: false,
1978
- lv: false,
1979
- lt: false,
1980
- nl: false,
1981
- no: false,
1982
- pl: false,
1983
- pt: false,
1984
- ro: false,
1985
- ru: false,
1986
- sk: false,
1987
- sl: false,
1988
- srCyrl: false,
1989
- srLatn: false,
1990
- sv: false,
1991
- th: false,
1992
- tr: false,
1993
- az: false,
1994
- uk: false,
1995
- vi: false,
1996
- zhHans: false,
1997
- zhHant: false
1998
- };
1999
-
2000
- // Utilities
2001
-
2002
- // Types
2003
-
2004
- function useToggleScope(source, fn) {
2005
- let scope;
2006
- function start() {
2007
- scope = effectScope();
2008
- scope.run(() => fn.length ? fn(() => {
2009
- scope?.stop();
2010
- start();
2011
- }) : fn());
2012
- }
2013
- watch(source, active => {
2014
- if (active && !scope) {
2015
- start();
2016
- } else if (!active) {
2017
- scope?.stop();
2018
- scope = undefined;
2019
- }
2020
- }, {
2021
- immediate: true
2022
- });
2023
- onScopeDispose(() => {
2024
- scope?.stop();
2025
- });
2026
- }
2027
-
2028
- // Composables
2029
-
2030
- // Types
2031
-
2032
- // Composables
2033
- function useProxiedModel(props, prop, defaultValue) {
2034
- let transformIn = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : v => v;
2035
- let transformOut = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : v => v;
2036
- const vm = getCurrentInstance('useProxiedModel');
2037
- const internal = ref(props[prop] !== undefined ? props[prop] : defaultValue);
2038
- const kebabProp = toKebabCase(prop);
2039
- const checkKebab = kebabProp !== prop;
2040
- const isControlled = checkKebab ? computed(() => {
2041
- void props[prop];
2042
- return !!((vm.vnode.props?.hasOwnProperty(prop) || vm.vnode.props?.hasOwnProperty(kebabProp)) && (vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`) || vm.vnode.props?.hasOwnProperty(`onUpdate:${kebabProp}`)));
2043
- }) : computed(() => {
2044
- void props[prop];
2045
- return !!(vm.vnode.props?.hasOwnProperty(prop) && vm.vnode.props?.hasOwnProperty(`onUpdate:${prop}`));
2046
- });
2047
- useToggleScope(() => !isControlled.value, () => {
2048
- watch(() => props[prop], val => {
2049
- internal.value = val;
2050
- });
2051
- });
2052
- const model = computed({
2053
- get() {
2054
- const externalValue = props[prop];
2055
- return transformIn(isControlled.value ? externalValue : internal.value);
2056
- },
2057
- set(internalValue) {
2058
- const newValue = transformOut(internalValue);
2059
- const value = toRaw(isControlled.value ? props[prop] : internal.value);
2060
- if (value === newValue || transformIn(value) === internalValue) {
2061
- return;
2062
- }
2063
- internal.value = newValue;
2064
- vm?.emit(`update:${prop}`, newValue);
2065
- }
2066
- });
2067
- Object.defineProperty(model, 'externalValue', {
2068
- get: () => isControlled.value ? props[prop] : internal.value
2069
- });
2070
- return model;
2071
- }
2072
-
2073
2029
  // Composables
2074
2030
 
2075
2031
  // Types
@@ -2200,8 +2156,53 @@ function provideLocale(props) {
2200
2156
  provide(LocaleSymbol, data);
2201
2157
  return data;
2202
2158
  }
2159
+ function genDefaults$1() {
2160
+ return {
2161
+ af: false,
2162
+ ar: true,
2163
+ bg: false,
2164
+ ca: false,
2165
+ ckb: false,
2166
+ cs: false,
2167
+ de: false,
2168
+ el: false,
2169
+ en: false,
2170
+ es: false,
2171
+ et: false,
2172
+ fa: true,
2173
+ fi: false,
2174
+ fr: false,
2175
+ hr: false,
2176
+ hu: false,
2177
+ he: true,
2178
+ id: false,
2179
+ it: false,
2180
+ ja: false,
2181
+ ko: false,
2182
+ lv: false,
2183
+ lt: false,
2184
+ nl: false,
2185
+ no: false,
2186
+ pl: false,
2187
+ pt: false,
2188
+ ro: false,
2189
+ ru: false,
2190
+ sk: false,
2191
+ sl: false,
2192
+ srCyrl: false,
2193
+ srLatn: false,
2194
+ sv: false,
2195
+ th: false,
2196
+ tr: false,
2197
+ az: false,
2198
+ uk: false,
2199
+ vi: false,
2200
+ zhHans: false,
2201
+ zhHant: false
2202
+ };
2203
+ }
2203
2204
  function createRtl(i18n, options) {
2204
- const rtl = ref(options?.rtl ?? defaultRtl);
2205
+ const rtl = ref(options?.rtl ?? genDefaults$1());
2205
2206
  const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);
2206
2207
  return {
2207
2208
  isRtl,
@@ -5593,7 +5594,9 @@ const VBtn = genericComponent()({
5593
5594
  }, null)])]
5594
5595
  }), [[resolveDirective("ripple"), !isDisabled.value && props.ripple, null]]);
5595
5596
  });
5596
- return {};
5597
+ return {
5598
+ group
5599
+ };
5597
5600
  }
5598
5601
  });
5599
5602
 
@@ -6097,16 +6100,18 @@ const VSelectionControl = genericComponent()({
6097
6100
  trueValue
6098
6101
  } = useSelectionControl(props);
6099
6102
  const uid = getUid();
6100
- const id = computed(() => props.id || `input-${uid}`);
6101
6103
  const isFocused = shallowRef(false);
6102
6104
  const isFocusVisible = shallowRef(false);
6103
6105
  const input = ref();
6106
+ const id = computed(() => props.id || `input-${uid}`);
6107
+ const isInteractive = computed(() => !props.disabled && !props.readonly);
6104
6108
  group?.onForceUpdate(() => {
6105
6109
  if (input.value) {
6106
6110
  input.value.checked = model.value;
6107
6111
  }
6108
6112
  });
6109
6113
  function onFocus(e) {
6114
+ if (!isInteractive.value) return;
6110
6115
  isFocused.value = true;
6111
6116
  if (matchesSelector(e.target, ':focus-visible') !== false) {
6112
6117
  isFocusVisible.value = true;
@@ -6117,6 +6122,7 @@ const VSelectionControl = genericComponent()({
6117
6122
  isFocusVisible.value = false;
6118
6123
  }
6119
6124
  function onInput(e) {
6125
+ if (!isInteractive.value) return;
6120
6126
  if (props.readonly && group) {
6121
6127
  nextTick(() => group.forceUpdate());
6122
6128
  }
@@ -6133,12 +6139,12 @@ const VSelectionControl = genericComponent()({
6133
6139
  const inputNode = createVNode("input", mergeProps({
6134
6140
  "ref": input,
6135
6141
  "checked": model.value,
6136
- "disabled": !!(props.readonly || props.disabled),
6142
+ "disabled": !!props.disabled,
6137
6143
  "id": id.value,
6138
6144
  "onBlur": onBlur,
6139
6145
  "onFocus": onFocus,
6140
6146
  "onInput": onInput,
6141
- "aria-disabled": !!(props.readonly || props.disabled),
6147
+ "aria-disabled": !!props.disabled,
6142
6148
  "type": props.type,
6143
6149
  "value": trueValue.value,
6144
6150
  "name": props.name,
@@ -8713,9 +8719,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
8713
8719
  // eslint-disable-next-line max-statements
8714
8720
  function updateLocation() {
8715
8721
  observe = false;
8716
- requestAnimationFrame(() => {
8717
- requestAnimationFrame(() => observe = true);
8718
- });
8722
+ requestAnimationFrame(() => observe = true);
8719
8723
  if (!data.target.value || !data.contentEl.value) return;
8720
8724
  const targetBox = getTargetBox(data.target.value);
8721
8725
  const contentBox = getIntrinsicSize(data.contentEl.value, data.isRtl.value);
@@ -13363,7 +13367,7 @@ const VWindow = genericComponent()({
13363
13367
  icon: isRtl.value ? props.nextIcon : props.prevIcon,
13364
13368
  class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,
13365
13369
  onClick: group.prev,
13366
- ariaLabel: t('$vuetify.carousel.prev')
13370
+ 'aria-label': t('$vuetify.carousel.prev')
13367
13371
  };
13368
13372
  arrows.push(canMoveBack.value ? slots.prev ? slots.prev({
13369
13373
  props: prevProps
@@ -13372,7 +13376,7 @@ const VWindow = genericComponent()({
13372
13376
  icon: isRtl.value ? props.prevIcon : props.nextIcon,
13373
13377
  class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,
13374
13378
  onClick: group.next,
13375
- ariaLabel: t('$vuetify.carousel.next')
13379
+ 'aria-label': t('$vuetify.carousel.next')
13376
13380
  };
13377
13381
  arrows.push(canMoveForward.value ? slots.next ? slots.next({
13378
13382
  props: nextProps
@@ -14466,6 +14470,10 @@ const VSliderThumb = genericComponent()({
14466
14470
  decimals,
14467
14471
  indexFromEnd
14468
14472
  } = slider;
14473
+ const elevationProps = computed(() => !disabled.value ? elevation.value : undefined);
14474
+ const {
14475
+ elevationClasses
14476
+ } = useElevation(elevationProps);
14469
14477
  const {
14470
14478
  textColorClasses,
14471
14479
  textColorStyles
@@ -14510,9 +14518,6 @@ const VSliderThumb = genericComponent()({
14510
14518
  }
14511
14519
  useRender(() => {
14512
14520
  const positionPercentage = convertToUnit(indexFromEnd.value ? 100 - props.position : props.position, '%');
14513
- const {
14514
- elevationClasses
14515
- } = useElevation(computed(() => !disabled.value ? elevation.value : undefined));
14516
14521
  return createVNode("div", {
14517
14522
  "class": ['v-slider-thumb', {
14518
14523
  'v-slider-thumb--focused': props.focused,
@@ -16262,6 +16267,7 @@ function usePagination() {
16262
16267
  return data;
16263
16268
  }
16264
16269
  function usePaginatedItems(options) {
16270
+ const vm = getCurrentInstance('usePaginatedItems');
16265
16271
  const {
16266
16272
  items,
16267
16273
  startIndex,
@@ -16272,6 +16278,9 @@ function usePaginatedItems(options) {
16272
16278
  if (itemsPerPage.value <= 0) return items.value;
16273
16279
  return items.value.slice(startIndex.value, stopIndex.value);
16274
16280
  });
16281
+ watch(paginatedItems, val => {
16282
+ vm.emit('update:currentItems', val);
16283
+ });
16275
16284
  return {
16276
16285
  paginatedItems
16277
16286
  };
@@ -16698,10 +16707,9 @@ function getWeekdays(locale) {
16698
16707
  return createRange(7).map(i => {
16699
16708
  const weekday = new Date(sundayJanuarySecond2000);
16700
16709
  weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
16701
- const formattedDay = new Intl.DateTimeFormat(locale, {
16710
+ return new Intl.DateTimeFormat(locale, {
16702
16711
  weekday: 'short'
16703
16712
  }).format(weekday);
16704
- return formattedDay.charAt(0).toUpperCase() + formattedDay.slice(1);
16705
16713
  });
16706
16714
  }
16707
16715
  function format(value, formatString, locale, formats) {
@@ -17103,13 +17111,13 @@ function useDate() {
17103
17111
  // https://stackoverflow.com/questions/274861/how-do-i-calculate-the-week-number-given-a-date/275024#275024
17104
17112
  function getWeek(adapter, value) {
17105
17113
  const date = adapter.toJsDate(value);
17106
- let year = adapter.getYear(date);
17107
- let d1w1 = adapter.startOfYear(date);
17114
+ let year = date.getFullYear();
17115
+ let d1w1 = new Date(year, 0, 1);
17108
17116
  if (date < d1w1) {
17109
17117
  year = year - 1;
17110
- d1w1 = adapter.startOfYear(adapter.setYear(date, year));
17118
+ d1w1 = new Date(year, 0, 1);
17111
17119
  } else {
17112
- const tv = adapter.startOfYear(adapter.setYear(date, year + 1));
17120
+ const tv = new Date(year + 1, 0, 1);
17113
17121
  if (date >= tv) {
17114
17122
  year = year + 1;
17115
17123
  d1w1 = tv;
@@ -17315,7 +17323,8 @@ const VDataIterator = genericComponent()({
17315
17323
  'update:itemsPerPage': value => true,
17316
17324
  'update:sortBy': value => true,
17317
17325
  'update:options': value => true,
17318
- 'update:expanded': value => true
17326
+ 'update:expanded': value => true,
17327
+ 'update:currentItems': value => true
17319
17328
  },
17320
17329
  setup(props, _ref) {
17321
17330
  let {
@@ -17666,8 +17675,8 @@ const VPagination = genericComponent()({
17666
17675
  icon: true,
17667
17676
  disabled: !!props.disabled || +props.length < 2,
17668
17677
  color: isActive ? props.activeColor : props.color,
17669
- ariaCurrent: isActive,
17670
- ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
17678
+ 'aria-current': isActive,
17679
+ 'aria-label': t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, item),
17671
17680
  onClick: e => setValue(e, item)
17672
17681
  }
17673
17682
  };
@@ -17682,29 +17691,29 @@ const VPagination = genericComponent()({
17682
17691
  icon: isRtl.value ? props.lastIcon : props.firstIcon,
17683
17692
  onClick: e => setValue(e, start.value, 'first'),
17684
17693
  disabled: prevDisabled,
17685
- ariaLabel: t(props.firstAriaLabel),
17686
- ariaDisabled: prevDisabled
17694
+ 'aria-label': t(props.firstAriaLabel),
17695
+ 'aria-disabled': prevDisabled
17687
17696
  } : undefined,
17688
17697
  prev: {
17689
17698
  icon: isRtl.value ? props.nextIcon : props.prevIcon,
17690
17699
  onClick: e => setValue(e, page.value - 1, 'prev'),
17691
17700
  disabled: prevDisabled,
17692
- ariaLabel: t(props.previousAriaLabel),
17693
- ariaDisabled: prevDisabled
17701
+ 'aria-label': t(props.previousAriaLabel),
17702
+ 'aria-disabled': prevDisabled
17694
17703
  },
17695
17704
  next: {
17696
17705
  icon: isRtl.value ? props.prevIcon : props.nextIcon,
17697
17706
  onClick: e => setValue(e, page.value + 1, 'next'),
17698
17707
  disabled: nextDisabled,
17699
- ariaLabel: t(props.nextAriaLabel),
17700
- ariaDisabled: nextDisabled
17708
+ 'aria-label': t(props.nextAriaLabel),
17709
+ 'aria-disabled': nextDisabled
17701
17710
  },
17702
17711
  last: props.showFirstLastPage ? {
17703
17712
  icon: isRtl.value ? props.firstIcon : props.lastIcon,
17704
17713
  onClick: e => setValue(e, start.value + length.value - 1, 'last'),
17705
17714
  disabled: nextDisabled,
17706
- ariaLabel: t(props.lastAriaLabel),
17707
- ariaDisabled: nextDisabled
17715
+ 'aria-label': t(props.lastAriaLabel),
17716
+ 'aria-disabled': nextDisabled
17708
17717
  } : undefined
17709
17718
  };
17710
17719
  });
@@ -18770,7 +18779,8 @@ const VDataTable = genericComponent()({
18770
18779
  'update:sortBy': value => true,
18771
18780
  'update:options': value => true,
18772
18781
  'update:groupBy': value => true,
18773
- 'update:expanded': value => true
18782
+ 'update:expanded': value => true,
18783
+ 'update:currentItems': value => true
18774
18784
  },
18775
18785
  setup(props, _ref) {
18776
18786
  let {
@@ -19824,7 +19834,7 @@ function useCalendar(props) {
19824
19834
  });
19825
19835
  function genDays(days, today) {
19826
19836
  return days.filter(date => {
19827
- return props.weekdays.includes(date.getDay());
19837
+ return props.weekdays.includes(adapter.toJsDate(date).getDay());
19828
19838
  }).map((date, index) => {
19829
19839
  const isoDate = adapter.toISO(date);
19830
19840
  const isAdjacent = !adapter.isSameMonth(date, month.value);
@@ -20272,7 +20282,7 @@ const VDatePicker = genericComponent()({
20272
20282
  return props.multiple && model.value.length > 1 ? t('$vuetify.datePicker.itemsSelected', model.value.length) : model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header);
20273
20283
  });
20274
20284
  const text = computed(() => {
20275
- return adapter.format(adapter.setYear(adapter.setMonth(adapter.date(), month.value), year.value), 'monthAndYear');
20285
+ return adapter.format(adapter.setYear(adapter.setMonth(adapter.startOfMonth(adapter.date()), month.value), year.value), 'monthAndYear');
20276
20286
  });
20277
20287
  // const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
20278
20288
  const headerTransition = computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
@@ -24222,15 +24232,14 @@ const VTab = genericComponent()({
24222
24232
  textColorClasses: sliderColorClasses,
24223
24233
  textColorStyles: sliderColorStyles
24224
24234
  } = useTextColor(props, 'sliderColor');
24225
- const isHorizontal = computed(() => props.direction === 'horizontal');
24226
- const isSelected = shallowRef(false);
24227
24235
  const rootEl = ref();
24228
24236
  const sliderEl = ref();
24237
+ const isHorizontal = computed(() => props.direction === 'horizontal');
24238
+ const isSelected = computed(() => rootEl.value?.group?.isSelected.value ?? false);
24229
24239
  function updateSlider(_ref2) {
24230
24240
  let {
24231
24241
  value
24232
24242
  } = _ref2;
24233
- isSelected.value = value;
24234
24243
  if (value) {
24235
24244
  const prevEl = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider');
24236
24245
  const nextEl = sliderEl.value;
@@ -24284,7 +24293,7 @@ const VTab = genericComponent()({
24284
24293
  }, null)])
24285
24294
  });
24286
24295
  });
24287
- return {};
24296
+ return forwardRefs({}, rootEl);
24288
24297
  }
24289
24298
  });
24290
24299
 
@@ -25949,7 +25958,7 @@ function createVuetify$1() {
25949
25958
  date
25950
25959
  };
25951
25960
  }
25952
- const version$1 = "3.4.10";
25961
+ const version$1 = "3.4.11";
25953
25962
  createVuetify$1.version = version$1;
25954
25963
 
25955
25964
  // Vue's inject() can only be used in setup
@@ -25963,7 +25972,7 @@ function inject(key) {
25963
25972
 
25964
25973
  /* eslint-disable local-rules/sort-imports */
25965
25974
 
25966
- const version = "3.4.10";
25975
+ const version = "3.4.11";
25967
25976
 
25968
25977
  /* eslint-disable local-rules/sort-imports */
25969
25978