vuetify 3.8.10 → 3.8.12

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 +3366 -3366
  2. package/dist/json/importMap-labs.json +24 -24
  3. package/dist/json/importMap.json +150 -150
  4. package/dist/json/web-types.json +6157 -6157
  5. package/dist/vuetify-labs.cjs +81 -83
  6. package/dist/vuetify-labs.css +2588 -2594
  7. package/dist/vuetify-labs.d.ts +200 -200
  8. package/dist/vuetify-labs.esm.js +81 -83
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +81 -83
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.cjs +56 -59
  13. package/dist/vuetify.cjs.map +1 -1
  14. package/dist/vuetify.css +3957 -3963
  15. package/dist/vuetify.d.ts +57 -57
  16. package/dist/vuetify.esm.js +56 -59
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +56 -59
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +45 -46
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/components/VBtn/VBtn.sass +3 -1
  24. package/lib/components/VCarousel/VCarousel.css +0 -1
  25. package/lib/components/VCarousel/VCarousel.js +1 -0
  26. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  27. package/lib/components/VCarousel/VCarousel.sass +0 -1
  28. package/lib/components/VDataTable/VDataTableColumn.js +0 -1
  29. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  30. package/lib/components/VDataTable/VDataTableHeaders.js +5 -5
  31. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  32. package/lib/components/VDataTable/composables/sort.js +2 -1
  33. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  34. package/lib/components/VDatePicker/VDatePickerMonth.css +3 -8
  35. package/lib/components/VDatePicker/VDatePickerMonth.js +7 -3
  36. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  37. package/lib/components/VDatePicker/VDatePickerMonth.sass +3 -8
  38. package/lib/components/VField/VField.js +2 -10
  39. package/lib/components/VField/VField.js.map +1 -1
  40. package/lib/components/VList/VList.js +1 -1
  41. package/lib/components/VList/VList.js.map +1 -1
  42. package/lib/components/VNumberInput/VNumberInput.js +4 -10
  43. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  44. package/lib/components/VNumberInput/hold.js +4 -0
  45. package/lib/components/VNumberInput/hold.js.map +1 -1
  46. package/lib/components/VOtpInput/VOtpInput.js +17 -14
  47. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  48. package/lib/components/VOverlay/locationStrategies.js +1 -1
  49. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  50. package/lib/components/VTextField/VTextField.js +1 -1
  51. package/lib/components/VTextField/VTextField.js.map +1 -1
  52. package/lib/composables/calendar.d.ts +1 -1
  53. package/lib/composables/calendar.js +8 -8
  54. package/lib/composables/calendar.js.map +1 -1
  55. package/lib/composables/date/adapters/vuetify.js +1 -1
  56. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  57. package/lib/composables/virtual.js +1 -1
  58. package/lib/composables/virtual.js.map +1 -1
  59. package/lib/entry-bundler.js +1 -1
  60. package/lib/framework.d.ts +57 -57
  61. package/lib/framework.js +1 -1
  62. package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
  63. package/lib/labs/VCalendar/VCalendar.js +9 -9
  64. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  65. package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
  66. package/lib/labs/VCalendar/VCalendarDay.js +1 -1
  67. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  68. package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
  69. package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
  70. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  71. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
  72. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
  73. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  74. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
  75. package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
  76. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  77. package/lib/labs/VIconBtn/VIconBtn.js +1 -0
  78. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  79. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.10
2
+ * Vuetify v3.8.12
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -9709,7 +9709,7 @@ function useItems(props) {
9709
9709
  function transformItem$2(props, item) {
9710
9710
  const type = getPropertyFromItem(item, props.itemType, 'item');
9711
9711
  const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle);
9712
- const value = getPropertyFromItem(item, props.itemValue, undefined);
9712
+ const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined);
9713
9713
  const children = getPropertyFromItem(item, props.itemChildren);
9714
9714
  const itemProps = props.itemProps === true ? omit(item, ['children']) : getPropertyFromItem(item, props.itemProps);
9715
9715
  const _props = {
@@ -10188,7 +10188,7 @@ function connectedLocationStrategy(data, props, contentStyles) {
10188
10188
  });
10189
10189
  if (flipped.isFull) {
10190
10190
  const values = flipped.values();
10191
- if (deepEqual(values.at(-1), values.at(-3))) {
10191
+ if (deepEqual(values.at(-1), values.at(-3)) && !deepEqual(values.at(-1), values.at(-2))) {
10192
10192
  // Flipping is causing a container resize loop
10193
10193
  return;
10194
10194
  }
@@ -11954,11 +11954,7 @@ const VField = genericComponent()({
11954
11954
  default: slots.loader
11955
11955
  }), hasPrepend && createElementVNode("div", {
11956
11956
  "key": "prepend",
11957
- "class": "v-field__prepend-inner",
11958
- "onMousedown": e => {
11959
- e.preventDefault();
11960
- e.stopPropagation();
11961
- }
11957
+ "class": "v-field__prepend-inner"
11962
11958
  }, [props.prependInnerIcon && createVNode(InputIcon, {
11963
11959
  "key": "prepend-icon",
11964
11960
  "name": "prependInner",
@@ -12027,11 +12023,7 @@ const VField = genericComponent()({
12027
12023
  })]), [[vShow, props.dirty]])]
12028
12024
  }), hasAppend && createElementVNode("div", {
12029
12025
  "key": "append",
12030
- "class": "v-field__append-inner",
12031
- "onMousedown": e => {
12032
- e.preventDefault();
12033
- e.stopPropagation();
12034
- }
12026
+ "class": "v-field__append-inner"
12035
12027
  }, [slots['append-inner']?.(slotProps.value), props.appendInnerIcon && createVNode(InputIcon, {
12036
12028
  "key": "append-icon",
12037
12029
  "name": "appendInner",
@@ -12142,7 +12134,7 @@ const VTextField = genericComponent()({
12142
12134
  if (!isFocused.value) focus();
12143
12135
  nextTick(() => {
12144
12136
  if (inputRef.value !== document.activeElement) {
12145
- inputRef.value?.focus();
12137
+ nextTick(() => inputRef.value?.focus());
12146
12138
  }
12147
12139
  });
12148
12140
  }
@@ -12476,7 +12468,7 @@ function useVirtual(props, items) {
12476
12468
  raf = requestAnimationFrame(_calculateVisibleItems);
12477
12469
  }
12478
12470
  function _calculateVisibleItems() {
12479
- if (!containerRef.value || !viewportHeight.value) return;
12471
+ if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return;
12480
12472
  const scrollTop = lastScrollTop - markerOffset;
12481
12473
  const direction = Math.sign(scrollVelocity);
12482
12474
  const startPx = Math.max(0, scrollTop - BUFFER_PX);
@@ -15225,6 +15217,7 @@ const VCarousel = genericComponent()({
15225
15217
  }) : createVNode(VBtn, mergeProps(item, props), null);
15226
15218
  })]
15227
15219
  })]), props.progress && createVNode(VProgressLinear, {
15220
+ "absolute": true,
15228
15221
  "class": "v-carousel__progress",
15229
15222
  "color": typeof props.progress === 'string' ? props.progress : undefined,
15230
15223
  "modelValue": (group.getItemIndex(model.value) + 1) / group.items.value.length * 100
@@ -17307,7 +17300,7 @@ function format(value, formatString, locale, formats) {
17307
17300
  case 'fullDate':
17308
17301
  options = {
17309
17302
  year: 'numeric',
17310
- month: 'long',
17303
+ month: 'short',
17311
17304
  day: 'numeric'
17312
17305
  };
17313
17306
  break;
@@ -19295,7 +19288,8 @@ function sortItems(items, sortByItems, locale, options) {
19295
19288
 
19296
19289
  // Dates should be compared numerically
19297
19290
  if (sortA instanceof Date && sortB instanceof Date) {
19298
- return sortA.getTime() - sortB.getTime();
19291
+ sortA = sortA.getTime();
19292
+ sortB = sortB.getTime();
19299
19293
  }
19300
19294
  [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);
19301
19295
  if (sortA !== sortB) {
@@ -20019,7 +20013,6 @@ const VDataTableColumn = defineFunctionalComponent({
20019
20013
  } = _ref;
20020
20014
  const Tag = props.tag ?? 'td';
20021
20015
  return createVNode(Tag, {
20022
- "tabindex": "0",
20023
20016
  "class": normalizeClass(['v-data-table__td', {
20024
20017
  'v-data-table-column--fixed': props.fixed,
20025
20018
  'v-data-table-column--last-fixed': props.lastFixed,
@@ -20420,14 +20413,14 @@ const VDataTableHeaders = genericComponent()({
20420
20413
  },
20421
20414
  "colspan": column.colspan,
20422
20415
  "rowspan": column.rowspan,
20423
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
20424
20416
  "fixed": column.fixed,
20425
20417
  "nowrap": column.nowrap,
20426
20418
  "lastFixed": column.lastFixed,
20427
- "noPadding": noPadding
20428
- }, headerProps, {
20429
- "onKeydown": event => column.sortable && handleEnterKeyPress(event, column)
20430
- }), {
20419
+ "noPadding": noPadding,
20420
+ "tabindex": column.sortable ? 0 : undefined,
20421
+ "onClick": column.sortable ? () => toggleSort(column) : undefined,
20422
+ "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
20423
+ }, headerProps), {
20431
20424
  default: () => {
20432
20425
  const columnSlotName = `header.${column.key}`;
20433
20426
  const columnSlotProps = {
@@ -22103,10 +22096,9 @@ function useCalendar(props) {
22103
22096
  const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
22104
22097
  return adapter.setMonth(date, value);
22105
22098
  }, v => adapter.getMonth(v));
22106
- const weekDays = computed(() => {
22099
+ const weekdayLabels = computed(() => {
22107
22100
  const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22108
- // Always generate all days, regardless of props.weekdays
22109
- return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
22101
+ return adapter.getWeekdays(props.firstDayOfWeek).filter((_, i) => props.weekdays.includes((i + firstDayOfWeek) % 7));
22110
22102
  });
22111
22103
  const weeksInMonth = computed(() => {
22112
22104
  const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
@@ -22130,13 +22122,14 @@ function useCalendar(props) {
22130
22122
  });
22131
22123
  function genDays(days, today) {
22132
22124
  return days.filter(date => {
22133
- return weekDays.value.includes(adapter.toJsDate(date).getDay());
22125
+ return props.weekdays.includes(adapter.toJsDate(date).getDay());
22134
22126
  }).map((date, index) => {
22135
22127
  const isoDate = adapter.toISO(date);
22136
22128
  const isAdjacent = !adapter.isSameMonth(date, month.value);
22137
22129
  const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));
22138
22130
  const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));
22139
22131
  const isSame = adapter.isSameDay(date, month.value);
22132
+ const weekdaysCount = props.weekdays.length;
22140
22133
  return {
22141
22134
  date,
22142
22135
  formatted: adapter.format(date, 'keyboardDate'),
@@ -22148,8 +22141,8 @@ function useCalendar(props) {
22148
22141
  isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22149
22142
  isStart,
22150
22143
  isToday: adapter.isSameDay(date, today),
22151
- isWeekEnd: index % 7 === 6,
22152
- isWeekStart: index % 7 === 0,
22144
+ isWeekEnd: index % weekdaysCount === weekdaysCount - 1,
22145
+ isWeekStart: index % weekdaysCount === 0,
22153
22146
  isoDate,
22154
22147
  localized: adapter.format(date, 'dayOfMonth'),
22155
22148
  month: adapter.getMonth(date),
@@ -22187,7 +22180,7 @@ function useCalendar(props) {
22187
22180
  if (typeof props.allowedDates === 'function') {
22188
22181
  return !props.allowedDates(date);
22189
22182
  }
22190
- return !props.weekdays.includes(adapter.toJsDate(date).getDay());
22183
+ return false;
22191
22184
  }
22192
22185
  return {
22193
22186
  displayValue,
@@ -22196,7 +22189,7 @@ function useCalendar(props) {
22196
22189
  genDays,
22197
22190
  model,
22198
22191
  weeksInMonth,
22199
- weekDays,
22192
+ weekdayLabels,
22200
22193
  weekNumbers
22201
22194
  };
22202
22195
  }
@@ -22235,7 +22228,8 @@ const VDatePickerMonth = genericComponent()({
22235
22228
  const {
22236
22229
  daysInMonth,
22237
22230
  model,
22238
- weekNumbers
22231
+ weekNumbers,
22232
+ weekdayLabels
22239
22233
  } = useCalendar(props);
22240
22234
  const adapter = useDate();
22241
22235
  const rangeStart = shallowRef();
@@ -22307,7 +22301,10 @@ const VDatePickerMonth = genericComponent()({
22307
22301
  }
22308
22302
  }
22309
22303
  useRender(() => createElementVNode("div", {
22310
- "class": "v-date-picker-month"
22304
+ "class": "v-date-picker-month",
22305
+ "style": {
22306
+ '--v-date-picker-days-in-week': props.weekdays.length
22307
+ }
22311
22308
  }, [props.showWeek && createElementVNode("div", {
22312
22309
  "key": "weeks",
22313
22310
  "class": "v-date-picker-month__weeks"
@@ -22323,7 +22320,7 @@ const VDatePickerMonth = genericComponent()({
22323
22320
  "ref": daysRef,
22324
22321
  "key": daysInMonth.value[0].date?.toString(),
22325
22322
  "class": "v-date-picker-month__days"
22326
- }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createElementVNode("div", {
22323
+ }, [!props.hideWeekdays && weekdayLabels.value.map(weekDay => createElementVNode("div", {
22327
22324
  "class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
22328
22325
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22329
22326
  const slotProps = {
@@ -24925,6 +24922,8 @@ function useHold(_ref) {
24925
24922
  function holdStart(value) {
24926
24923
  holdStop();
24927
24924
  tick(value);
24925
+ window.addEventListener('pointerup', holdStop);
24926
+ document.addEventListener('blur', holdStop);
24928
24927
  timeout = window.setTimeout(() => {
24929
24928
  interval = window.setInterval(() => tick(value), HOLD_REPEAT);
24930
24929
  }, HOLD_DELAY);
@@ -24932,6 +24931,8 @@ function useHold(_ref) {
24932
24931
  function holdStop() {
24933
24932
  window.clearTimeout(timeout);
24934
24933
  window.clearInterval(interval);
24934
+ window.removeEventListener('pointerup', holdStop);
24935
+ document.removeEventListener('blur', holdStop);
24935
24936
  }
24936
24937
  function tick(value) {
24937
24938
  toggleUpDown(value === 'up');
@@ -25043,7 +25044,7 @@ const VNumberInput = genericComponent()({
25043
25044
  onClick: onControlClick,
25044
25045
  onPointerup: onControlMouseup,
25045
25046
  onPointerdown: onUpControlMousedown,
25046
- onPointercancel: onControlPointerCancel
25047
+ onPointercancel: onControlMouseup
25047
25048
  }
25048
25049
  };
25049
25050
  const decrementSlotProps = {
@@ -25051,7 +25052,7 @@ const VNumberInput = genericComponent()({
25051
25052
  onClick: onControlClick,
25052
25053
  onPointerup: onControlMouseup,
25053
25054
  onPointerdown: onDownControlMousedown,
25054
- onPointercancel: onControlPointerCancel
25055
+ onPointercancel: onControlMouseup
25055
25056
  }
25056
25057
  };
25057
25058
  watch(() => props.precision, () => formatInputValue());
@@ -25131,7 +25132,6 @@ const VNumberInput = genericComponent()({
25131
25132
  const el = e.currentTarget;
25132
25133
  el?.releasePointerCapture(e.pointerId);
25133
25134
  e.preventDefault();
25134
- e.stopPropagation();
25135
25135
  holdStop();
25136
25136
  }
25137
25137
  function onUpControlMousedown(e) {
@@ -25148,11 +25148,6 @@ const VNumberInput = genericComponent()({
25148
25148
  e.stopPropagation();
25149
25149
  holdStart('down');
25150
25150
  }
25151
- function onControlPointerCancel(e) {
25152
- const el = e.currentTarget;
25153
- el?.releasePointerCapture(e.pointerId);
25154
- holdStop();
25155
- }
25156
25151
  function clampModel() {
25157
25152
  if (controlsDisabled.value) return;
25158
25153
  if (!vTextFieldRef.value) return;
@@ -25202,7 +25197,7 @@ const VNumberInput = genericComponent()({
25202
25197
  "onClick": onControlClick,
25203
25198
  "onPointerdown": onUpControlMousedown,
25204
25199
  "onPointerup": onControlMouseup,
25205
- "onPointercancel": onControlPointerCancel,
25200
+ "onPointercancel": onControlMouseup,
25206
25201
  "size": controlNodeSize.value,
25207
25202
  "tabindex": "-1"
25208
25203
  }, null) : createVNode(VDefaultsProvider, {
@@ -25232,7 +25227,7 @@ const VNumberInput = genericComponent()({
25232
25227
  "onClick": onControlClick,
25233
25228
  "onPointerdown": onDownControlMousedown,
25234
25229
  "onPointerup": onControlMouseup,
25235
- "onPointercancel": onControlPointerCancel,
25230
+ "onPointercancel": onControlMouseup,
25236
25231
  "size": controlNodeSize.value,
25237
25232
  "tabindex": "-1"
25238
25233
  }, null) : createVNode(VDefaultsProvider, {
@@ -25379,19 +25374,21 @@ const VOtpInput = genericComponent()({
25379
25374
  const contentRef = ref();
25380
25375
  const inputRef = ref([]);
25381
25376
  const current = computed(() => inputRef.value[focusIndex.value]);
25382
- const intersectScope = effectScope();
25383
- intersectScope.run(() => {
25384
- const {
25385
- intersectionRef,
25386
- isIntersecting
25387
- } = useIntersectionObserver();
25388
- watch(isIntersecting, v => {
25389
- if (!v) return;
25390
- intersectionRef.value?.focus();
25391
- intersectScope.stop();
25392
- });
25393
- watchEffect(() => {
25394
- intersectionRef.value = inputRef.value[0];
25377
+ useToggleScope(() => props.autofocus, () => {
25378
+ const intersectScope = effectScope();
25379
+ intersectScope.run(() => {
25380
+ const {
25381
+ intersectionRef,
25382
+ isIntersecting
25383
+ } = useIntersectionObserver();
25384
+ watchEffect(() => {
25385
+ intersectionRef.value = inputRef.value[0];
25386
+ });
25387
+ watch(isIntersecting, v => {
25388
+ if (!v) return;
25389
+ intersectionRef.value?.focus();
25390
+ intersectScope.stop();
25391
+ });
25395
25392
  });
25396
25393
  });
25397
25394
  function onInput() {
@@ -28805,7 +28802,7 @@ const VCalendarIntervalEvent = genericComponent()({
28805
28802
  }
28806
28803
  };
28807
28804
  useRender(() => {
28808
- return createElementVNode("div", null, [slots.intervalEvent?.({
28805
+ return createElementVNode("div", null, [slots['interval-event']?.({
28809
28806
  height: calcHeight().height,
28810
28807
  margin: calcHeight().margin,
28811
28808
  eventClass: 'v-calendar-internal-event',
@@ -28902,13 +28899,13 @@ const VCalendarInterval = genericComponent()({
28902
28899
  "style": normalizeStyle(`height: ${convertToUnit(props.intervalHeight)}`)
28903
28900
  }, [createElementVNode("div", mergeProps({
28904
28901
  "class": "v-calendar-day__row-label"
28905
- }, getPrefixedEventHandlers(attrs, ':time', () => props)), [slots.intervalTitle?.({
28902
+ }, getPrefixedEventHandlers(attrs, ':time', () => props)), [slots['interval-title']?.({
28906
28903
  interval: interval.value
28907
28904
  }) ?? (props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '12 AM')]), createElementVNode("div", {
28908
28905
  "class": "v-calendar-day__row-hairline"
28909
28906
  }, null), createElementVNode("div", mergeProps({
28910
28907
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28911
- }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots.intervalBody?.({
28908
+ }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots['interval-body']?.({
28912
28909
  interval: interval.value
28913
28910
  }) ?? createElementVNode("div", null, [interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, mergeProps({
28914
28911
  "event": event,
@@ -28917,8 +28914,8 @@ const VCalendarInterval = genericComponent()({
28917
28914
  "intervalDuration": props.intervalDuration,
28918
28915
  "intervalHeight": props.intervalHeight
28919
28916
  }, attrs), {
28920
- ...(slots.intervalEvent ? {
28921
- intervalEvent: _ref2 => {
28917
+ ...(slots['interval-event'] ? {
28918
+ 'interval-event': _ref2 => {
28922
28919
  let {
28923
28920
  height,
28924
28921
  margin,
@@ -28926,7 +28923,7 @@ const VCalendarInterval = genericComponent()({
28926
28923
  event,
28927
28924
  interval
28928
28925
  } = _ref2;
28929
- return slots.intervalEvent?.({
28926
+ return slots['interval-event']?.({
28930
28927
  height,
28931
28928
  margin,
28932
28929
  eventClass,
@@ -28940,7 +28937,7 @@ const VCalendarInterval = genericComponent()({
28940
28937
  "style": normalizeStyle(`height: ${convertToUnit(props.intervalHeight)}`)
28941
28938
  }, [createElementVNode("div", mergeProps({
28942
28939
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
28943
- }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots.intervalBody?.({
28940
+ }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots['interval-body']?.({
28944
28941
  interval: interval.value
28945
28942
  }) ?? interval.value.events?.map(event => createVNode(VCalendarIntervalEvent, mergeProps({
28946
28943
  "event": event,
@@ -28949,8 +28946,8 @@ const VCalendarInterval = genericComponent()({
28949
28946
  "intervalDuration": props.intervalDuration,
28950
28947
  "intervalHeight": props.intervalHeight
28951
28948
  }, attrs), {
28952
- ...(slots.intervalEvent ? {
28953
- intervalEvent: _ref3 => {
28949
+ ...(slots['interval-event'] ? {
28950
+ 'interval-event': _ref3 => {
28954
28951
  let {
28955
28952
  height,
28956
28953
  margin,
@@ -28958,7 +28955,7 @@ const VCalendarInterval = genericComponent()({
28958
28955
  event,
28959
28956
  interval
28960
28957
  } = _ref3;
28961
- return slots.intervalEvent?.({
28958
+ return slots['interval-event']?.({
28962
28959
  height,
28963
28960
  margin,
28964
28961
  eventClass,
@@ -29013,7 +29010,7 @@ const VCalendarDay = genericComponent()({
29013
29010
  }), null)])]), intervals.value.map((_, index) => slots.interval?.(calendarIntervalProps) ?? createVNode(VCalendarInterval, mergeProps({
29014
29011
  "index": index
29015
29012
  }, calendarIntervalProps, attrs, getPrefixedEventHandlers(attrs, ':interval', () => calendarIntervalProps)), {
29016
- ...pick(slots, ['intervalBody', 'intervalEvent', 'intervalTitle'])
29013
+ ...pick(slots, ['interval-body', 'interval-event', 'interval-title'])
29017
29014
  }))]);
29018
29015
  });
29019
29016
  return {
@@ -29157,7 +29154,7 @@ const VCalendarMonthDay = genericComponent()({
29157
29154
  }, getPrefixedEventHandlers(attrs, ':day', () => props)), [!props.day?.isHidden ? createElementVNode("div", {
29158
29155
  "key": "title",
29159
29156
  "class": "v-calendar-weekly__day-label"
29160
- }, [slots.dayTitle?.({
29157
+ }, [slots['day-title']?.({
29161
29158
  title: props.title
29162
29159
  }) ?? createVNode(VBtn, mergeProps({
29163
29160
  "class": props.day?.isToday ? 'v-calendar-weekly__day-label__today' : undefined,
@@ -29170,12 +29167,12 @@ const VCalendarMonthDay = genericComponent()({
29170
29167
  }, getPrefixedEventHandlers(attrs, ':date', () => props)), null)]) : undefined, !props.day?.isHidden ? createElementVNode("div", {
29171
29168
  "key": "content",
29172
29169
  "class": "v-calendar-weekly__day-content"
29173
- }, [slots.dayBody?.({
29170
+ }, [slots['day-body']?.({
29174
29171
  day: props.day,
29175
29172
  events: props.events
29176
29173
  }) ?? createElementVNode("div", null, [createElementVNode("div", {
29177
29174
  "class": "v-calendar-weekly__day-alldayevents-container"
29178
- }, [props.events?.filter(event => event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
29175
+ }, [props.events?.filter(event => event.allDay).map(event => slots['day-event'] ? slots['day-event']({
29179
29176
  day: props.day,
29180
29177
  allDay: true,
29181
29178
  event
@@ -29185,7 +29182,7 @@ const VCalendarMonthDay = genericComponent()({
29185
29182
  "allDay": true
29186
29183
  }, attrs), null))]), createElementVNode("div", {
29187
29184
  "class": "v-calendar-weekly__day-events-container"
29188
- }, [props.events?.filter(event => !event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
29185
+ }, [props.events?.filter(event => !event.allDay).map(event => slots['day-event'] ? slots['day-event']({
29189
29186
  day: props.day,
29190
29187
  event,
29191
29188
  allDay: false
@@ -29230,9 +29227,8 @@ const VCalendar = genericComponent()({
29230
29227
  model,
29231
29228
  displayValue,
29232
29229
  weekNumbers,
29233
- weekDays
29230
+ weekdayLabels
29234
29231
  } = useCalendar(props);
29235
- const dayNames = adapter.getWeekdays();
29236
29232
  function onClickNext() {
29237
29233
  if (props.viewMode === 'month') {
29238
29234
  model.value = [adapter.addMonths(displayValue.value, 1)];
@@ -29270,6 +29266,7 @@ const VCalendar = genericComponent()({
29270
29266
  useRender(() => {
29271
29267
  const calendarDayProps = VCalendarDay.filterProps(props);
29272
29268
  const calendarHeaderProps = VCalendarHeader.filterProps(props);
29269
+ const weekdaysCount = daysInWeek.value.length;
29273
29270
  return createElementVNode("div", {
29274
29271
  "class": normalizeClass(['v-calendar', {
29275
29272
  'v-calendar-monthly': props.viewMode === 'month',
@@ -29291,19 +29288,19 @@ const VCalendar = genericComponent()({
29291
29288
  }), {
29292
29289
  title: slots.title
29293
29290
  }))]), createElementVNode("div", {
29294
- "class": normalizeClass(['v-calendar__container', `days__${weekDays.value.length}`])
29291
+ "class": normalizeClass(['v-calendar__container', `days__${weekdaysCount}`])
29295
29292
  }, [props.viewMode === 'month' && !props.hideDayHeader && createElementVNode("div", {
29296
- "class": normalizeClass(['v-calendar-weekly__head', `days__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])]),
29293
+ "class": normalizeClass(['v-calendar-weekly__head', `days__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])]),
29297
29294
  "key": "calendarWeeklyHead"
29298
29295
  }, [!props.hideWeekNumber ? createElementVNode("div", {
29299
29296
  "key": "weekNumber0",
29300
29297
  "class": "v-calendar-weekly__head-weeknumber"
29301
- }, null) : '', weekDays.value.map(weekday => createElementVNode("div", {
29298
+ }, null) : '', weekdayLabels.value.map(weekday => createElementVNode("div", {
29302
29299
  "class": normalizeClass(`v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}`)
29303
- }, [dayNames[weekday]]))]), props.viewMode === 'month' && createElementVNode("div", {
29300
+ }, [weekday]))]), props.viewMode === 'month' && createElementVNode("div", {
29304
29301
  "key": "VCalendarMonth",
29305
- "class": normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])])
29306
- }, [chunkArray(daysInMonth.value, weekDays.value.length).map((week, wi) => [!props.hideWeekNumber ? createElementVNode("div", mergeProps({
29302
+ "class": normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])])
29303
+ }, [chunkArray(daysInMonth.value, weekdaysCount).map((week, wi) => [!props.hideWeekNumber ? createElementVNode("div", mergeProps({
29307
29304
  "class": "v-calendar-month__weeknumber"
29308
29305
  }, getPrefixedEventHandlers(attrs, ':weekNumber', () => ({
29309
29306
  weekNumber: weekNumbers.value[wi],
@@ -29326,7 +29323,7 @@ const VCalendar = genericComponent()({
29326
29323
  "dayIndex": i,
29327
29324
  "events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
29328
29325
  }, attrs), {
29329
- ...pick(slots, ['interval', 'intervalBody', 'intervalEvent', 'intervalTitle'])
29326
+ ...pick(slots, ['interval', 'interval-body', 'interval-event', 'interval-title'])
29330
29327
  })), props.viewMode === 'day' && (slots['day-interval'] ? slots['day-interval']({
29331
29328
  day: genDays([displayValue.value], adapter.date())[0],
29332
29329
  dayIndex: 0,
@@ -30246,6 +30243,7 @@ const VIconBtn = genericComponent()({
30246
30243
  opacity: props.opacity
30247
30244
  };
30248
30245
  return createVNode(props.tag, {
30246
+ "type": props.tag === 'button' ? 'button' : undefined,
30249
30247
  "class": normalizeClass([{
30250
30248
  'v-icon-btn': true,
30251
30249
  'v-icon-btn--active': isActive.value,
@@ -32198,7 +32196,7 @@ function createVuetify$1() {
32198
32196
  };
32199
32197
  });
32200
32198
  }
32201
- const version$1 = "3.8.10";
32199
+ const version$1 = "3.8.12";
32202
32200
  createVuetify$1.version = version$1;
32203
32201
 
32204
32202
  // Vue's inject() can only be used in setup
@@ -32496,7 +32494,7 @@ var index = /*#__PURE__*/Object.freeze({
32496
32494
 
32497
32495
  /* eslint-disable local-rules/sort-imports */
32498
32496
 
32499
- const version = "3.8.10";
32497
+ const version = "3.8.12";
32500
32498
 
32501
32499
  /* eslint-disable local-rules/sort-imports */
32502
32500