@vuetify/nightly 3.9.0-beta.1-dev.2025-06-28 → 3.9.0-beta.1-dev.2025-07-02

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 (65) hide show
  1. package/CHANGELOG.md +100 -3
  2. package/dist/json/attributes.json +725 -725
  3. package/dist/json/importMap-labs.json +30 -30
  4. package/dist/json/importMap.json +156 -156
  5. package/dist/json/web-types.json +1311 -1311
  6. package/dist/vuetify-labs.cjs +61 -63
  7. package/dist/vuetify-labs.css +4207 -4207
  8. package/dist/vuetify-labs.d.ts +203 -203
  9. package/dist/vuetify-labs.esm.js +61 -63
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +61 -63
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +36 -39
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4469 -4469
  16. package/dist/vuetify.d.ts +60 -60
  17. package/dist/vuetify.esm.js +36 -39
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +36 -39
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +34 -35
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTableColumn.js +0 -1
  25. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  26. package/lib/components/VDataTable/VDataTableHeaders.js +5 -5
  27. package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
  28. package/lib/components/VDataTable/composables/sort.js +2 -1
  29. package/lib/components/VDataTable/composables/sort.js.map +1 -1
  30. package/lib/components/VDatePicker/VDatePickerMonth.js +1 -2
  31. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  32. package/lib/components/VOtpInput/VOtpInput.js +17 -14
  33. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  34. package/lib/components/VOverlay/locationStrategies.js +1 -1
  35. package/lib/components/VOverlay/locationStrategies.js.map +1 -1
  36. package/lib/components/VTextField/VTextField.js +1 -1
  37. package/lib/components/VTextField/VTextField.js.map +1 -1
  38. package/lib/composables/calendar.d.ts +0 -1
  39. package/lib/composables/calendar.js +6 -10
  40. package/lib/composables/calendar.js.map +1 -1
  41. package/lib/composables/date/adapters/vuetify.js +1 -1
  42. package/lib/composables/date/adapters/vuetify.js.map +1 -1
  43. package/lib/composables/virtual.js +1 -1
  44. package/lib/composables/virtual.js.map +1 -1
  45. package/lib/entry-bundler.js +1 -1
  46. package/lib/framework.d.ts +60 -60
  47. package/lib/framework.js +1 -1
  48. package/lib/labs/VCalendar/VCalendar.d.ts +33 -33
  49. package/lib/labs/VCalendar/VCalendar.js +9 -9
  50. package/lib/labs/VCalendar/VCalendar.js.map +1 -1
  51. package/lib/labs/VCalendar/VCalendarDay.d.ts +33 -33
  52. package/lib/labs/VCalendar/VCalendarDay.js +1 -1
  53. package/lib/labs/VCalendar/VCalendarDay.js.map +1 -1
  54. package/lib/labs/VCalendar/VCalendarInterval.d.ts +36 -36
  55. package/lib/labs/VCalendar/VCalendarInterval.js +9 -9
  56. package/lib/labs/VCalendar/VCalendarInterval.js.map +1 -1
  57. package/lib/labs/VCalendar/VCalendarIntervalEvent.d.ts +12 -12
  58. package/lib/labs/VCalendar/VCalendarIntervalEvent.js +1 -1
  59. package/lib/labs/VCalendar/VCalendarIntervalEvent.js.map +1 -1
  60. package/lib/labs/VCalendar/VCalendarMonthDay.d.ts +36 -36
  61. package/lib/labs/VCalendar/VCalendarMonthDay.js +4 -4
  62. package/lib/labs/VCalendar/VCalendarMonthDay.js.map +1 -1
  63. package/lib/labs/VIconBtn/VIconBtn.js +1 -0
  64. package/lib/labs/VIconBtn/VIconBtn.js.map +1 -1
  65. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.0-beta.1-dev.2025-06-28
2
+ * Vuetify v3.9.0-beta.1-dev.2025-07-02
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -10456,7 +10456,7 @@
10456
10456
  });
10457
10457
  if (flipped.isFull) {
10458
10458
  const values = flipped.values();
10459
- if (deepEqual(values.at(-1), values.at(-3))) {
10459
+ if (deepEqual(values.at(-1), values.at(-3)) && !deepEqual(values.at(-1), values.at(-2))) {
10460
10460
  // Flipping is causing a container resize loop
10461
10461
  return;
10462
10462
  }
@@ -12306,7 +12306,7 @@
12306
12306
  if (!isFocused.value) focus();
12307
12307
  vue.nextTick(() => {
12308
12308
  if (inputRef.value !== document.activeElement) {
12309
- inputRef.value?.focus();
12309
+ vue.nextTick(() => inputRef.value?.focus());
12310
12310
  }
12311
12311
  });
12312
12312
  }
@@ -12645,7 +12645,7 @@
12645
12645
  raf = requestAnimationFrame(_calculateVisibleItems);
12646
12646
  }
12647
12647
  function _calculateVisibleItems() {
12648
- if (!containerRef.value || !viewportHeight.value) return;
12648
+ if (!containerRef.value || !viewportHeight.value || !itemHeight.value) return;
12649
12649
  const scrollTop = lastScrollTop - markerOffset;
12650
12650
  const direction = Math.sign(scrollVelocity);
12651
12651
  const startPx = Math.max(0, scrollTop - BUFFER_PX);
@@ -17528,7 +17528,7 @@
17528
17528
  case 'fullDate':
17529
17529
  options = {
17530
17530
  year: 'numeric',
17531
- month: 'long',
17531
+ month: 'short',
17532
17532
  day: 'numeric'
17533
17533
  };
17534
17534
  break;
@@ -19845,7 +19845,8 @@
19845
19845
 
19846
19846
  // Dates should be compared numerically
19847
19847
  if (sortA instanceof Date && sortB instanceof Date) {
19848
- return sortA.getTime() - sortB.getTime();
19848
+ sortA = sortA.getTime();
19849
+ sortB = sortB.getTime();
19849
19850
  }
19850
19851
  [sortA, sortB] = [sortA, sortB].map(s => s != null ? s.toString().toLocaleLowerCase() : s);
19851
19852
  if (sortA !== sortB) {
@@ -20569,7 +20570,6 @@
20569
20570
  } = _ref;
20570
20571
  const Tag = props.tag ?? 'td';
20571
20572
  return vue.createVNode(Tag, {
20572
- "tabindex": "0",
20573
20573
  "class": vue.normalizeClass(['v-data-table__td', {
20574
20574
  'v-data-table-column--fixed': props.fixed,
20575
20575
  'v-data-table-column--last-fixed': props.lastFixed,
@@ -20972,14 +20972,14 @@
20972
20972
  },
20973
20973
  "colspan": column.colspan,
20974
20974
  "rowspan": column.rowspan,
20975
- "onClick": column.sortable ? () => toggleSort(column) : undefined,
20976
20975
  "fixed": column.fixed,
20977
20976
  "nowrap": column.nowrap,
20978
20977
  "lastFixed": column.lastFixed,
20979
- "noPadding": noPadding
20980
- }, headerProps, {
20981
- "onKeydown": event => column.sortable && handleEnterKeyPress(event, column)
20982
- }), {
20978
+ "noPadding": noPadding,
20979
+ "tabindex": column.sortable ? 0 : undefined,
20980
+ "onClick": column.sortable ? () => toggleSort(column) : undefined,
20981
+ "onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
20982
+ }, headerProps), {
20983
20983
  default: () => {
20984
20984
  const columnSlotName = `header.${column.key}`;
20985
20985
  const columnSlotProps = {
@@ -22665,13 +22665,9 @@
22665
22665
  const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
22666
22666
  return adapter.setMonth(date, value);
22667
22667
  }, v => adapter.getMonth(v));
22668
- const weekDays = vue.computed(() => {
22669
- const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22670
- return props.weekdays.map(day => (day + firstDayOfWeek) % 7);
22671
- });
22672
22668
  const weekdayLabels = vue.computed(() => {
22673
- const labels = adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat);
22674
- return weekDays.value.map(day => labels[day]);
22669
+ const firstDayOfWeek = adapter.toJsDate(adapter.startOfWeek(adapter.date(), props.firstDayOfWeek)).getDay();
22670
+ return adapter.getWeekdays(props.firstDayOfWeek, props.weekdayFormat).filter((_, i) => props.weekdays.includes((i + firstDayOfWeek) % 7));
22675
22671
  });
22676
22672
  const weeksInMonth = vue.computed(() => {
22677
22673
  const weeks = adapter.getWeekArray(month.value, props.firstDayOfWeek);
@@ -22695,13 +22691,14 @@
22695
22691
  });
22696
22692
  function genDays(days, today) {
22697
22693
  return days.filter(date => {
22698
- return weekDays.value.includes(adapter.toJsDate(date).getDay());
22694
+ return props.weekdays.includes(adapter.toJsDate(date).getDay());
22699
22695
  }).map((date, index) => {
22700
22696
  const isoDate = adapter.toISO(date);
22701
22697
  const isAdjacent = !adapter.isSameMonth(date, month.value);
22702
22698
  const isStart = adapter.isSameDay(date, adapter.startOfMonth(month.value));
22703
22699
  const isEnd = adapter.isSameDay(date, adapter.endOfMonth(month.value));
22704
22700
  const isSame = adapter.isSameDay(date, month.value);
22701
+ const weekdaysCount = props.weekdays.length;
22705
22702
  return {
22706
22703
  date,
22707
22704
  formatted: adapter.format(date, 'keyboardDate'),
@@ -22713,8 +22710,8 @@
22713
22710
  isSelected: model.value.some(value => adapter.isSameDay(date, value)),
22714
22711
  isStart,
22715
22712
  isToday: adapter.isSameDay(date, today),
22716
- isWeekEnd: index % 7 === 6,
22717
- isWeekStart: index % 7 === 0,
22713
+ isWeekEnd: index % weekdaysCount === weekdaysCount - 1,
22714
+ isWeekStart: index % weekdaysCount === 0,
22718
22715
  isoDate,
22719
22716
  localized: adapter.format(date, 'dayOfMonth'),
22720
22717
  month: adapter.getMonth(date),
@@ -22761,7 +22758,6 @@
22761
22758
  genDays,
22762
22759
  model,
22763
22760
  weeksInMonth,
22764
- weekDays,
22765
22761
  weekdayLabels,
22766
22762
  weekNumbers
22767
22763
  };
@@ -22802,7 +22798,6 @@
22802
22798
  daysInMonth,
22803
22799
  model,
22804
22800
  weekNumbers,
22805
- weekDays,
22806
22801
  weekdayLabels
22807
22802
  } = useCalendar(props);
22808
22803
  const adapter = useDate();
@@ -22877,7 +22872,7 @@
22877
22872
  useRender(() => vue.createElementVNode("div", {
22878
22873
  "class": "v-date-picker-month",
22879
22874
  "style": {
22880
- '--v-date-picker-days-in-week': weekDays.value.length
22875
+ '--v-date-picker-days-in-week': props.weekdays.length
22881
22876
  }
22882
22877
  }, [props.showWeek && vue.createElementVNode("div", {
22883
22878
  "key": "weeks",
@@ -26048,19 +26043,21 @@
26048
26043
  const contentRef = vue.ref();
26049
26044
  const inputRef = vue.ref([]);
26050
26045
  const current = vue.computed(() => inputRef.value[focusIndex.value]);
26051
- const intersectScope = vue.effectScope();
26052
- intersectScope.run(() => {
26053
- const {
26054
- intersectionRef,
26055
- isIntersecting
26056
- } = useIntersectionObserver();
26057
- vue.watch(isIntersecting, v => {
26058
- if (!v) return;
26059
- intersectionRef.value?.focus();
26060
- intersectScope.stop();
26061
- });
26062
- vue.watchEffect(() => {
26063
- intersectionRef.value = inputRef.value[0];
26046
+ useToggleScope(() => props.autofocus, () => {
26047
+ const intersectScope = vue.effectScope();
26048
+ intersectScope.run(() => {
26049
+ const {
26050
+ intersectionRef,
26051
+ isIntersecting
26052
+ } = useIntersectionObserver();
26053
+ vue.watchEffect(() => {
26054
+ intersectionRef.value = inputRef.value[0];
26055
+ });
26056
+ vue.watch(isIntersecting, v => {
26057
+ if (!v) return;
26058
+ intersectionRef.value?.focus();
26059
+ intersectScope.stop();
26060
+ });
26064
26061
  });
26065
26062
  });
26066
26063
  function onInput() {
@@ -30528,7 +30525,7 @@
30528
30525
  }
30529
30526
  };
30530
30527
  useRender(() => {
30531
- return vue.createElementVNode("div", null, [slots.intervalEvent?.({
30528
+ return vue.createElementVNode("div", null, [slots['interval-event']?.({
30532
30529
  height: calcHeight().height,
30533
30530
  margin: calcHeight().margin,
30534
30531
  eventClass: 'v-calendar-internal-event',
@@ -30625,13 +30622,13 @@
30625
30622
  "style": vue.normalizeStyle(`height: ${convertToUnit(props.intervalHeight)}`)
30626
30623
  }, [vue.createElementVNode("div", vue.mergeProps({
30627
30624
  "class": "v-calendar-day__row-label"
30628
- }, getPrefixedEventHandlers(attrs, ':time', () => props)), [slots.intervalTitle?.({
30625
+ }, getPrefixedEventHandlers(attrs, ':time', () => props)), [slots['interval-title']?.({
30629
30626
  interval: interval.value
30630
30627
  }) ?? (props.index ? props.intervalFormat ? typeof props.intervalFormat === 'string' ? adapter.format(interval.value.start, 'hours12h') : props.intervalFormat(interval.value) : interval.value.label : '12 AM')]), vue.createElementVNode("div", {
30631
30628
  "class": "v-calendar-day__row-hairline"
30632
30629
  }, null), vue.createElementVNode("div", vue.mergeProps({
30633
30630
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
30634
- }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots.intervalBody?.({
30631
+ }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots['interval-body']?.({
30635
30632
  interval: interval.value
30636
30633
  }) ?? vue.createElementVNode("div", null, [interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, vue.mergeProps({
30637
30634
  "event": event,
@@ -30640,8 +30637,8 @@
30640
30637
  "intervalDuration": props.intervalDuration,
30641
30638
  "intervalHeight": props.intervalHeight
30642
30639
  }, attrs), {
30643
- ...(slots.intervalEvent ? {
30644
- intervalEvent: _ref2 => {
30640
+ ...(slots['interval-event'] ? {
30641
+ 'interval-event': _ref2 => {
30645
30642
  let {
30646
30643
  height,
30647
30644
  margin,
@@ -30649,7 +30646,7 @@
30649
30646
  event,
30650
30647
  interval
30651
30648
  } = _ref2;
30652
- return slots.intervalEvent?.({
30649
+ return slots['interval-event']?.({
30653
30650
  height,
30654
30651
  margin,
30655
30652
  eventClass,
@@ -30663,7 +30660,7 @@
30663
30660
  "style": vue.normalizeStyle(`height: ${convertToUnit(props.intervalHeight)}`)
30664
30661
  }, [vue.createElementVNode("div", vue.mergeProps({
30665
30662
  "class": ['v-calendar-day__row-content', interval.value.events.some(e => !e.last) ? 'v-calendar-day__row-content-through' : '']
30666
- }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots.intervalBody?.({
30663
+ }, getPrefixedEventHandlers(attrs, ':interval', () => interval.value)), [slots['interval-body']?.({
30667
30664
  interval: interval.value
30668
30665
  }) ?? interval.value.events?.map(event => vue.createVNode(VCalendarIntervalEvent, vue.mergeProps({
30669
30666
  "event": event,
@@ -30672,8 +30669,8 @@
30672
30669
  "intervalDuration": props.intervalDuration,
30673
30670
  "intervalHeight": props.intervalHeight
30674
30671
  }, attrs), {
30675
- ...(slots.intervalEvent ? {
30676
- intervalEvent: _ref3 => {
30672
+ ...(slots['interval-event'] ? {
30673
+ 'interval-event': _ref3 => {
30677
30674
  let {
30678
30675
  height,
30679
30676
  margin,
@@ -30681,7 +30678,7 @@
30681
30678
  event,
30682
30679
  interval
30683
30680
  } = _ref3;
30684
- return slots.intervalEvent?.({
30681
+ return slots['interval-event']?.({
30685
30682
  height,
30686
30683
  margin,
30687
30684
  eventClass,
@@ -30736,7 +30733,7 @@
30736
30733
  }), null)])]), intervals.value.map((_, index) => slots.interval?.(calendarIntervalProps) ?? vue.createVNode(VCalendarInterval, vue.mergeProps({
30737
30734
  "index": index
30738
30735
  }, calendarIntervalProps, attrs, getPrefixedEventHandlers(attrs, ':interval', () => calendarIntervalProps)), {
30739
- ...pick(slots, ['intervalBody', 'intervalEvent', 'intervalTitle'])
30736
+ ...pick(slots, ['interval-body', 'interval-event', 'interval-title'])
30740
30737
  }))]);
30741
30738
  });
30742
30739
  return {
@@ -30880,7 +30877,7 @@
30880
30877
  }, getPrefixedEventHandlers(attrs, ':day', () => props)), [!props.day?.isHidden ? vue.createElementVNode("div", {
30881
30878
  "key": "title",
30882
30879
  "class": "v-calendar-weekly__day-label"
30883
- }, [slots.dayTitle?.({
30880
+ }, [slots['day-title']?.({
30884
30881
  title: props.title
30885
30882
  }) ?? vue.createVNode(VBtn, vue.mergeProps({
30886
30883
  "class": props.day?.isToday ? 'v-calendar-weekly__day-label__today' : undefined,
@@ -30893,12 +30890,12 @@
30893
30890
  }, getPrefixedEventHandlers(attrs, ':date', () => props)), null)]) : undefined, !props.day?.isHidden ? vue.createElementVNode("div", {
30894
30891
  "key": "content",
30895
30892
  "class": "v-calendar-weekly__day-content"
30896
- }, [slots.dayBody?.({
30893
+ }, [slots['day-body']?.({
30897
30894
  day: props.day,
30898
30895
  events: props.events
30899
30896
  }) ?? vue.createElementVNode("div", null, [vue.createElementVNode("div", {
30900
30897
  "class": "v-calendar-weekly__day-alldayevents-container"
30901
- }, [props.events?.filter(event => event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
30898
+ }, [props.events?.filter(event => event.allDay).map(event => slots['day-event'] ? slots['day-event']({
30902
30899
  day: props.day,
30903
30900
  allDay: true,
30904
30901
  event
@@ -30908,7 +30905,7 @@
30908
30905
  "allDay": true
30909
30906
  }, attrs), null))]), vue.createElementVNode("div", {
30910
30907
  "class": "v-calendar-weekly__day-events-container"
30911
- }, [props.events?.filter(event => !event.allDay).map(event => slots.dayEvent ? slots.dayEvent({
30908
+ }, [props.events?.filter(event => !event.allDay).map(event => slots['day-event'] ? slots['day-event']({
30912
30909
  day: props.day,
30913
30910
  event,
30914
30911
  allDay: false
@@ -30953,9 +30950,8 @@
30953
30950
  model,
30954
30951
  displayValue,
30955
30952
  weekNumbers,
30956
- weekDays
30953
+ weekdayLabels
30957
30954
  } = useCalendar(props);
30958
- const dayNames = adapter.getWeekdays();
30959
30955
  function onClickNext() {
30960
30956
  if (props.viewMode === 'month') {
30961
30957
  model.value = [adapter.addMonths(displayValue.value, 1)];
@@ -30993,6 +30989,7 @@
30993
30989
  useRender(() => {
30994
30990
  const calendarDayProps = VCalendarDay.filterProps(props);
30995
30991
  const calendarHeaderProps = VCalendarHeader.filterProps(props);
30992
+ const weekdaysCount = daysInWeek.value.length;
30996
30993
  return vue.createElementVNode("div", {
30997
30994
  "class": vue.normalizeClass(['v-calendar', {
30998
30995
  'v-calendar-monthly': props.viewMode === 'month',
@@ -31014,19 +31011,19 @@
31014
31011
  }), {
31015
31012
  title: slots.title
31016
31013
  }))]), vue.createElementVNode("div", {
31017
- "class": vue.normalizeClass(['v-calendar__container', `days__${weekDays.value.length}`])
31014
+ "class": vue.normalizeClass(['v-calendar__container', `days__${weekdaysCount}`])
31018
31015
  }, [props.viewMode === 'month' && !props.hideDayHeader && vue.createElementVNode("div", {
31019
- "class": vue.normalizeClass(['v-calendar-weekly__head', `days__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])]),
31016
+ "class": vue.normalizeClass(['v-calendar-weekly__head', `days__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-weekly__head-weeknumbers'] : [])]),
31020
31017
  "key": "calendarWeeklyHead"
31021
31018
  }, [!props.hideWeekNumber ? vue.createElementVNode("div", {
31022
31019
  "key": "weekNumber0",
31023
31020
  "class": "v-calendar-weekly__head-weeknumber"
31024
- }, null) : '', weekDays.value.map(weekday => vue.createElementVNode("div", {
31021
+ }, null) : '', weekdayLabels.value.map(weekday => vue.createElementVNode("div", {
31025
31022
  "class": vue.normalizeClass(`v-calendar-weekly__head-weekday${!props.hideWeekNumber ? '-with-weeknumber' : ''}`)
31026
- }, [dayNames[weekday]]))]), props.viewMode === 'month' && vue.createElementVNode("div", {
31023
+ }, [weekday]))]), props.viewMode === 'month' && vue.createElementVNode("div", {
31027
31024
  "key": "VCalendarMonth",
31028
- "class": vue.normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekDays.value.length}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])])
31029
- }, [chunkArray(daysInMonth.value, weekDays.value.length).map((week, wi) => [!props.hideWeekNumber ? vue.createElementVNode("div", vue.mergeProps({
31025
+ "class": vue.normalizeClass(['v-calendar-month__days', `days${!props.hideWeekNumber ? '-with-weeknumbers' : ''}__${weekdaysCount}`, ...(!props.hideWeekNumber ? ['v-calendar-month__weeknumbers'] : [])])
31026
+ }, [chunkArray(daysInMonth.value, weekdaysCount).map((week, wi) => [!props.hideWeekNumber ? vue.createElementVNode("div", vue.mergeProps({
31030
31027
  "class": "v-calendar-month__weeknumber"
31031
31028
  }, getPrefixedEventHandlers(attrs, ':weekNumber', () => ({
31032
31029
  weekNumber: weekNumbers.value[wi],
@@ -31049,7 +31046,7 @@
31049
31046
  "dayIndex": i,
31050
31047
  "events": props.events?.filter(e => adapter.isSameDay(e.start, day.date) || adapter.isSameDay(e.end, day.date))
31051
31048
  }, attrs), {
31052
- ...pick(slots, ['interval', 'intervalBody', 'intervalEvent', 'intervalTitle'])
31049
+ ...pick(slots, ['interval', 'interval-body', 'interval-event', 'interval-title'])
31053
31050
  })), props.viewMode === 'day' && (slots['day-interval'] ? slots['day-interval']({
31054
31051
  day: genDays([displayValue.value], adapter.date())[0],
31055
31052
  dayIndex: 0,
@@ -31964,6 +31961,7 @@
31964
31961
  opacity: props.opacity
31965
31962
  };
31966
31963
  return vue.createVNode(props.tag, {
31964
+ "type": props.tag === 'button' ? 'button' : undefined,
31967
31965
  "class": vue.normalizeClass([{
31968
31966
  'v-icon-btn': true,
31969
31967
  'v-icon-btn--active': isActive.value,
@@ -33526,7 +33524,7 @@
33526
33524
  };
33527
33525
  });
33528
33526
  }
33529
- const version$1 = "3.9.0-beta.1-dev.2025-06-28";
33527
+ const version$1 = "3.9.0-beta.1-dev.2025-07-02";
33530
33528
  createVuetify$1.version = version$1;
33531
33529
 
33532
33530
  // Vue's inject() can only be used in setup
@@ -33824,7 +33822,7 @@
33824
33822
 
33825
33823
  /* eslint-disable local-rules/sort-imports */
33826
33824
 
33827
- const version = "3.9.0-beta.1-dev.2025-06-28";
33825
+ const version = "3.9.0-beta.1-dev.2025-07-02";
33828
33826
 
33829
33827
  /* eslint-disable local-rules/sort-imports */
33830
33828