vuetify 3.8.11 → 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 (64) hide show
  1. package/dist/json/attributes.json +3312 -3312
  2. package/dist/json/importMap-labs.json +26 -26
  3. package/dist/json/importMap.json +166 -166
  4. package/dist/json/web-types.json +6235 -6235
  5. package/dist/vuetify-labs.cjs +61 -63
  6. package/dist/vuetify-labs.css +4191 -4191
  7. package/dist/vuetify-labs.d.ts +204 -204
  8. package/dist/vuetify-labs.esm.js +61 -63
  9. package/dist/vuetify-labs.esm.js.map +1 -1
  10. package/dist/vuetify-labs.js +61 -63
  11. package/dist/vuetify-labs.min.css +2 -2
  12. package/dist/vuetify.cjs +36 -39
  13. package/dist/vuetify.cjs.map +1 -1
  14. package/dist/vuetify.css +4025 -4025
  15. package/dist/vuetify.d.ts +61 -61
  16. package/dist/vuetify.esm.js +36 -39
  17. package/dist/vuetify.esm.js.map +1 -1
  18. package/dist/vuetify.js +36 -39
  19. package/dist/vuetify.js.map +1 -1
  20. package/dist/vuetify.min.css +2 -2
  21. package/dist/vuetify.min.js +34 -35
  22. package/dist/vuetify.min.js.map +1 -1
  23. package/lib/components/VDataTable/VDataTableColumn.js +0 -1
  24. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  25. package/lib/components/VDataTable/VDataTableHeaders.js +5 -5
  26. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  27. package/lib/components/VDataTable/composables/sort.js +2 -1
  28. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  29. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -2
  30. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  31. package/lib/components/VOtpInput/VOtpInput.js +17 -14
  32. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  33. package/lib/components/VOverlay/locationStrategies.js +1 -1
  34. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  35. package/lib/components/VTextField/VTextField.js +1 -1
  36. package/lib/components/VTextField/VTextField.js.map +1 -1
  37. package/lib/composables/calendar.d.ts +0 -1
  38. package/lib/composables/calendar.js +6 -10
  39. package/lib/composables/calendar.js.map +1 -1
  40. package/lib/composables/date/adapters/vuetify.js +1 -1
  41. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  42. package/lib/composables/virtual.js +1 -1
  43. package/lib/composables/virtual.js.map +1 -1
  44. package/lib/entry-bundler.js +1 -1
  45. package/lib/framework.d.ts +61 -61
  46. package/lib/framework.js +1 -1
  47. package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
  48. package/lib/labs/VCalendar/VCalendar.js +9 -9
  49. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  50. package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
  51. package/lib/labs/VCalendar/VCalendarDay.js +1 -1
  52. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  53. package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
  54. package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
  55. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  56. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
  57. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
  58. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  59. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
  60. package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
  61. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  62. package/lib/labs/VIconBtn/VIconBtn.js +1 -0
  63. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  64. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.11
2
+ * Vuetify v3.8.12
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -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
  }
@@ -12134,7 +12134,7 @@ const VTextField = genericComponent()({
12134
12134
  if (!isFocused.value) focus();
12135
12135
  nextTick(() => {
12136
12136
  if (inputRef.value !== document.activeElement) {
12137
- inputRef.value?.focus();
12137
+ nextTick(() => inputRef.value?.focus());
12138
12138
  }
12139
12139
  });
12140
12140
  }
@@ -12468,7 +12468,7 @@ function useVirtual(props, items) {
12468
12468
  raf = requestAnimationFrame(_calculateVisibleItems);
12469
12469
  }
12470
12470
  function _calculateVisibleItems() {
12471
- if (!containerRef.value || !viewportHeight.value) return;
12471
+ if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return;
12472
12472
  const scrollTop = lastScrollTop - markerOffset;
12473
12473
  const direction = Math.sign(scrollVelocity);
12474
12474
  const startPx = Math.max(0, scrollTop - BUFFER_PX);
@@ -17300,7 +17300,7 @@ function format(value, formatString, locale, formats) {
17300
17300
  case 'fullDate':
17301
17301
  options = {
17302
17302
  year: 'numeric',
17303
- month: 'long',
17303
+ month: 'short',
17304
17304
  day: 'numeric'
17305
17305
  };
17306
17306
  break;
@@ -19288,7 +19288,8 @@ function sortItems(items, sortByItems, locale, options) {
19288
19288
 
19289
19289
  // Dates should be compared numerically
19290
19290
  if (sortA instanceof Date && sortB instanceof Date) {
19291
- return sortA.getTime() - sortB.getTime();
19291
+ sortA = sortA.getTime();
19292
+ sortB = sortB.getTime();
19292
19293
  }
19293
19294
  [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);
19294
19295
  if (sortA !== sortB) {
@@ -20012,7 +20013,6 @@ const VDataTableColumn = defineFunctionalComponent({
20012
20013
  } = _ref;
20013
20014
  const Tag = props.tag ?? 'td';
20014
20015
  return createVNode(Tag, {
20015
- "tabindex": "0",
20016
20016
  "class": normalizeClass(['v-data-table__td', {
20017
20017
  'v-data-table-column--fixed': props.fixed,
20018
20018
  'v-data-table-column--last-fixed': props.lastFixed,
@@ -20413,14 +20413,14 @@ const VDataTableHeaders = genericComponent()({
20413
20413
  },
20414
20414
  "colspan": column.colspan,
20415
20415
  "rowspan": column.rowspan,
20416
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
20417
20416
  "fixed": column.fixed,
20418
20417
  "nowrap": column.nowrap,
20419
20418
  "lastFixed": column.lastFixed,
20420
- "noPadding": noPadding
20421
- }, headerProps, {
20422
- "onKeydown": event => column.sortable && handleEnterKeyPress(event, column)
20423
- }), {
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), {
20424
20424
  default: () => {
20425
20425
  const columnSlotName = `header.${column.key}`;
20426
20426
  const columnSlotProps = {
@@ -22096,13 +22096,9 @@ function useCalendar(props) {
22096
22096
  const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
22097
22097
  return adapter.setMonth(date, value);
22098
22098
  }, v => adapter.getMonth(v));
22099
- const weekDays = computed(() => {
22100
- const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22101
- return props.weekdays.map(day => (day + firstDayOfWeek) % 7);
22102
- });
22103
22099
  const weekdayLabels = computed(() => {
22104
- const labels = adapter.getWeekdays(props.firstDayOfWeek);
22105
- return weekDays.value.map(day => labels[day]);
22100
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22101
+ return adapter.getWeekdays(props.firstDayOfWeek).filter((_, i) => props.weekdays.includes((i + firstDayOfWeek) % 7));
22106
22102
  });
22107
22103
  const weeksInMonth = computed(() => {
22108
22104
  const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
@@ -22126,13 +22122,14 @@ function useCalendar(props) {
22126
22122
  });
22127
22123
  function genDays(days, today) {
22128
22124
  return days.filter(date => {
22129
- return weekDays.value.includes(adapter.toJsDate(date).getDay());
22125
+ return props.weekdays.includes(adapter.toJsDate(date).getDay());
22130
22126
  }).map((date, index) => {
22131
22127
  const isoDate = adapter.toISO(date);
22132
22128
  const isAdjacent = !adapter.isSameMonth(date, month.value);
22133
22129
  const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));
22134
22130
  const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));
22135
22131
  const isSame = adapter.isSameDay(date, month.value);
22132
+ const weekdaysCount = props.weekdays.length;
22136
22133
  return {
22137
22134
  date,
22138
22135
  formatted: adapter.format(date, 'keyboardDate'),
@@ -22144,8 +22141,8 @@ function useCalendar(props) {
22144
22141
  isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22145
22142
  isStart,
22146
22143
  isToday: adapter.isSameDay(date, today),
22147
- isWeekEnd: index % 7 === 6,
22148
- isWeekStart: index % 7 === 0,
22144
+ isWeekEnd: index % weekdaysCount === weekdaysCount - 1,
22145
+ isWeekStart: index % weekdaysCount === 0,
22149
22146
  isoDate,
22150
22147
  localized: adapter.format(date, 'dayOfMonth'),
22151
22148
  month: adapter.getMonth(date),
@@ -22192,7 +22189,6 @@ function useCalendar(props) {
22192
22189
  genDays,
22193
22190
  model,
22194
22191
  weeksInMonth,
22195
- weekDays,
22196
22192
  weekdayLabels,
22197
22193
  weekNumbers
22198
22194
  };
@@ -22233,7 +22229,6 @@ const VDatePickerMonth = genericComponent()({
22233
22229
  daysInMonth,
22234
22230
  model,
22235
22231
  weekNumbers,
22236
- weekDays,
22237
22232
  weekdayLabels
22238
22233
  } = useCalendar(props);
22239
22234
  const adapter = useDate();
@@ -22308,7 +22303,7 @@ const VDatePickerMonth = genericComponent()({
22308
22303
  useRender(() => createElementVNode("div", {
22309
22304
  "class": "v-date-picker-month",
22310
22305
  "style": {
22311
- '--v-date-picker-days-in-week': weekDays.value.length
22306
+ '--v-date-picker-days-in-week': props.weekdays.length
22312
22307
  }
22313
22308
  }, [props.showWeek && createElementVNode("div", {
22314
22309
  "key": "weeks",
@@ -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.11";
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.11";
32497
+ const version = "3.8.12";
32500
32498
 
32501
32499
  /* eslint-disable local-rules/sort-imports */
32502
32500