@vuetify/nightly 3.8.7-master.2025-05-31 → 3.8.7-master.2025-06-03

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 (86) hide show
  1. package/CHANGELOG.md +12 -3
  2. package/dist/json/attributes.json +3132 -3132
  3. package/dist/json/importMap-labs.json +22 -22
  4. package/dist/json/importMap.json +118 -118
  5. package/dist/json/web-types.json +5875 -5875
  6. package/dist/vuetify-labs.cjs +90 -80
  7. package/dist/vuetify-labs.css +3328 -3322
  8. package/dist/vuetify-labs.d.ts +42 -42
  9. package/dist/vuetify-labs.esm.js +90 -80
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +90 -80
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +84 -74
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +4505 -4499
  16. package/dist/vuetify.d.ts +42 -42
  17. package/dist/vuetify.esm.js +84 -74
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +84 -74
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +265 -265
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VAutocomplete/VAutocomplete.css +6 -6
  25. package/lib/components/VAutocomplete/VAutocomplete.sass +3 -9
  26. package/lib/components/VCarousel/VCarousel.js +3 -3
  27. package/lib/components/VCarousel/VCarousel.js.map +1 -1
  28. package/lib/components/VChip/VChip.js +1 -0
  29. package/lib/components/VChip/VChip.js.map +1 -1
  30. package/lib/components/VColorPicker/VColorPickerPreview.js +3 -3
  31. package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
  32. package/lib/components/VColorPicker/VColorPickerSwatches.js +3 -3
  33. package/lib/components/VColorPicker/VColorPickerSwatches.js.map +1 -1
  34. package/lib/components/VCombobox/VCombobox.css +6 -6
  35. package/lib/components/VCombobox/VCombobox.sass +3 -9
  36. package/lib/components/VDataTable/VDataTableColumn.js +3 -3
  37. package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
  38. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +3 -3
  39. package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
  40. package/lib/components/VDataTable/VDataTableVirtual.js +7 -7
  41. package/lib/components/VDataTable/VDataTableVirtual.js.map +1 -1
  42. package/lib/components/VDatePicker/VDatePickerControls.js +4 -4
  43. package/lib/components/VDatePicker/VDatePickerControls.js.map +1 -1
  44. package/lib/components/VDatePicker/VDatePickerMonth.js +3 -3
  45. package/lib/components/VDatePicker/VDatePickerMonth.js.map +1 -1
  46. package/lib/components/VDatePicker/VDatePickerMonths.js +3 -3
  47. package/lib/components/VDatePicker/VDatePickerMonths.js.map +1 -1
  48. package/lib/components/VDatePicker/VDatePickerYears.js +3 -3
  49. package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
  50. package/lib/components/VEmptyState/VEmptyState.js +3 -3
  51. package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
  52. package/lib/components/VImg/VImg.js +7 -7
  53. package/lib/components/VImg/VImg.js.map +1 -1
  54. package/lib/components/VInfiniteScroll/VInfiniteScroll.js +3 -3
  55. package/lib/components/VInfiniteScroll/VInfiniteScroll.js.map +1 -1
  56. package/lib/components/VOtpInput/VOtpInput.js +2 -2
  57. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  58. package/lib/components/VProgressCircular/VProgressCircular.js +2 -2
  59. package/lib/components/VProgressCircular/VProgressCircular.js.map +1 -1
  60. package/lib/components/VProgressLinear/VProgressLinear.js +3 -3
  61. package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
  62. package/lib/components/VSelect/VSelect.css +6 -0
  63. package/lib/components/VSelect/VSelect.sass +3 -0
  64. package/lib/components/VSelect/_mixins.scss +14 -0
  65. package/lib/components/VSelectionControl/VSelectionControl.js +2 -2
  66. package/lib/components/VSelectionControl/VSelectionControl.js.map +1 -1
  67. package/lib/components/VSlider/VSliderThumb.js +16 -10
  68. package/lib/components/VSlider/VSliderThumb.js.map +1 -1
  69. package/lib/components/VSlider/VSliderTrack.js +6 -6
  70. package/lib/components/VSlider/VSliderTrack.js.map +1 -1
  71. package/lib/components/VSlider/slider.js +4 -1
  72. package/lib/components/VSlider/slider.js.map +1 -1
  73. package/lib/components/VTable/VTable.js +3 -3
  74. package/lib/components/VTable/VTable.js.map +1 -1
  75. package/lib/components/VToolbar/VToolbar.js +5 -5
  76. package/lib/components/VToolbar/VToolbar.js.map +1 -1
  77. package/lib/components/VVirtualScroll/VVirtualScroll.js +7 -7
  78. package/lib/components/VVirtualScroll/VVirtualScroll.js.map +1 -1
  79. package/lib/components/VWindow/VWindow.js +3 -3
  80. package/lib/components/VWindow/VWindow.js.map +1 -1
  81. package/lib/entry-bundler.js +1 -1
  82. package/lib/framework.d.ts +42 -42
  83. package/lib/framework.js +1 -1
  84. package/lib/labs/VPullToRefresh/VPullToRefresh.js +7 -7
  85. package/lib/labs/VPullToRefresh/VPullToRefresh.js.map +1 -1
  86. package/package.json +2 -2
package/dist/vuetify.d.ts CHANGED
@@ -85901,38 +85901,39 @@ declare module 'vue' {
85901
85901
  $children?: VNodeChild
85902
85902
  }
85903
85903
  export interface GlobalComponents {
85904
+ VBadge: VBadge
85904
85905
  VApp: VApp
85905
- VAlert: VAlert
85906
- VAlertTitle: VAlertTitle
85907
- VAvatar: VAvatar
85908
- VAutocomplete: VAutocomplete
85906
+ VBottomSheet: VBottomSheet
85909
85907
  VBottomNavigation: VBottomNavigation
85908
+ VAutocomplete: VAutocomplete
85909
+ VAvatar: VAvatar
85910
85910
  VBanner: VBanner
85911
85911
  VBannerActions: VBannerActions
85912
85912
  VBannerText: VBannerText
85913
- VBadge: VBadge
85914
- VBtn: VBtn
85913
+ VAlert: VAlert
85914
+ VAlertTitle: VAlertTitle
85915
+ VBtnGroup: VBtnGroup
85915
85916
  VBreadcrumbs: VBreadcrumbs
85916
85917
  VBreadcrumbsItem: VBreadcrumbsItem
85917
85918
  VBreadcrumbsDivider: VBreadcrumbsDivider
85919
+ VBtn: VBtn
85918
85920
  VCard: VCard
85919
85921
  VCardActions: VCardActions
85920
85922
  VCardItem: VCardItem
85921
85923
  VCardSubtitle: VCardSubtitle
85922
85924
  VCardText: VCardText
85923
85925
  VCardTitle: VCardTitle
85924
- VBottomSheet: VBottomSheet
85925
85926
  VBtnToggle: VBtnToggle
85926
- VCheckbox: VCheckbox
85927
- VCheckboxBtn: VCheckboxBtn
85928
- VBtnGroup: VBtnGroup
85929
- VChip: VChip
85930
85927
  VCarousel: VCarousel
85931
85928
  VCarouselItem: VCarouselItem
85932
85929
  VCode: VCode
85930
+ VChip: VChip
85933
85931
  VChipGroup: VChipGroup
85934
- VColorPicker: VColorPicker
85932
+ VCheckbox: VCheckbox
85933
+ VCheckboxBtn: VCheckboxBtn
85935
85934
  VCombobox: VCombobox
85935
+ VDialog: VDialog
85936
+ VColorPicker: VColorPicker
85936
85937
  VDatePicker: VDatePicker
85937
85938
  VDatePickerControls: VDatePickerControls
85938
85939
  VDatePickerHeader: VDatePickerHeader
@@ -85947,7 +85948,6 @@ declare module 'vue' {
85947
85948
  VDataTableVirtual: VDataTableVirtual
85948
85949
  VDataTableServer: VDataTableServer
85949
85950
  VCounter: VCounter
85950
- VDialog: VDialog
85951
85951
  VEmptyState: VEmptyState
85952
85952
  VDivider: VDivider
85953
85953
  VExpansionPanels: VExpansionPanels
@@ -85957,20 +85957,21 @@ declare module 'vue' {
85957
85957
  VFab: VFab
85958
85958
  VField: VField
85959
85959
  VFieldLabel: VFieldLabel
85960
+ VFooter: VFooter
85960
85961
  VFileInput: VFileInput
85961
85962
  VIcon: VIcon
85962
85963
  VComponentIcon: VComponentIcon
85963
85964
  VSvgIcon: VSvgIcon
85964
85965
  VLigatureIcon: VLigatureIcon
85965
85966
  VClassIcon: VClassIcon
85967
+ VInfiniteScroll: VInfiniteScroll
85966
85968
  VItemGroup: VItemGroup
85967
85969
  VItem: VItem
85968
- VInfiniteScroll: VInfiniteScroll
85969
- VFooter: VFooter
85970
- VInput: VInput
85971
85970
  VImg: VImg
85972
85971
  VKbd: VKbd
85973
85972
  VLabel: VLabel
85973
+ VInput: VInput
85974
+ VMain: VMain
85974
85975
  VList: VList
85975
85976
  VListGroup: VListGroup
85976
85977
  VListImg: VListImg
@@ -85981,28 +85982,25 @@ declare module 'vue' {
85981
85982
  VListItemTitle: VListItemTitle
85982
85983
  VListSubheader: VListSubheader
85983
85984
  VMenu: VMenu
85984
- VMessages: VMessages
85985
85985
  VNumberInput: VNumberInput
85986
- VMain: VMain
85986
+ VOtpInput: VOtpInput
85987
85987
  VNavigationDrawer: VNavigationDrawer
85988
+ VMessages: VMessages
85988
85989
  VOverlay: VOverlay
85989
- VOtpInput: VOtpInput
85990
+ VPagination: VPagination
85990
85991
  VProgressLinear: VProgressLinear
85991
85992
  VRadioGroup: VRadioGroup
85992
- VProgressCircular: VProgressCircular
85993
- VSelectionControl: VSelectionControl
85994
85993
  VRating: VRating
85994
+ VProgressCircular: VProgressCircular
85995
85995
  VSelectionControlGroup: VSelectionControlGroup
85996
- VPagination: VPagination
85997
85996
  VSkeletonLoader: VSkeletonLoader
85998
85997
  VSlider: VSlider
85999
85998
  VSheet: VSheet
86000
- VSlideGroup: VSlideGroup
86001
- VSlideGroupItem: VSlideGroupItem
86002
85999
  VSnackbar: VSnackbar
86003
- VSelect: VSelect
86004
- VSystemBar: VSystemBar
86005
86000
  VSwitch: VSwitch
86001
+ VSlideGroup: VSlideGroup
86002
+ VSlideGroupItem: VSlideGroupItem
86003
+ VTable: VTable
86006
86004
  VStepper: VStepper
86007
86005
  VStepperActions: VStepperActions
86008
86006
  VStepperHeader: VStepperHeader
@@ -86013,23 +86011,23 @@ declare module 'vue' {
86013
86011
  VTabs: VTabs
86014
86012
  VTabsWindow: VTabsWindow
86015
86013
  VTabsWindowItem: VTabsWindowItem
86016
- VTextarea: VTextarea
86017
86014
  VTextField: VTextField
86018
- VTable: VTable
86019
- VTooltip: VTooltip
86020
- VToolbar: VToolbar
86021
- VToolbarTitle: VToolbarTitle
86022
- VToolbarItems: VToolbarItems
86015
+ VTextarea: VTextarea
86016
+ VSystemBar: VSystemBar
86023
86017
  VTimeline: VTimeline
86024
86018
  VTimelineItem: VTimelineItem
86025
86019
  VWindow: VWindow
86026
86020
  VWindowItem: VWindowItem
86021
+ VTooltip: VTooltip
86022
+ VToolbar: VToolbar
86023
+ VToolbarTitle: VToolbarTitle
86024
+ VToolbarItems: VToolbarItems
86027
86025
  VAppBar: VAppBar
86028
86026
  VAppBarNavIcon: VAppBarNavIcon
86029
86027
  VAppBarTitle: VAppBarTitle
86030
86028
  VConfirmEdit: VConfirmEdit
86031
- VDefaultsProvider: VDefaultsProvider
86032
86029
  VDataIterator: VDataIterator
86030
+ VDefaultsProvider: VDefaultsProvider
86033
86031
  VForm: VForm
86034
86032
  VContainer: VContainer
86035
86033
  VCol: VCol
@@ -86038,12 +86036,12 @@ declare module 'vue' {
86038
86036
  VHover: VHover
86039
86037
  VLayout: VLayout
86040
86038
  VLayoutItem: VLayoutItem
86041
- VLazy: VLazy
86042
86039
  VLocaleProvider: VLocaleProvider
86040
+ VLazy: VLazy
86043
86041
  VParallax: VParallax
86044
- VRadio: VRadio
86045
86042
  VNoSsr: VNoSsr
86046
86043
  VRangeSlider: VRangeSlider
86044
+ VRadio: VRadio
86047
86045
  VResponsive: VResponsive
86048
86046
  VSparkline: VSparkline
86049
86047
  VSnackbarQueue: VSnackbarQueue
@@ -86067,27 +86065,29 @@ declare module 'vue' {
86067
86065
  VExpandTransition: VExpandTransition
86068
86066
  VExpandXTransition: VExpandXTransition
86069
86067
  VDialogTransition: VDialogTransition
86070
- VFileUpload: VFileUpload
86071
- VFileUploadItem: VFileUploadItem
86072
- VIconBtn: VIconBtn
86068
+ VSelectionControl: VSelectionControl
86069
+ VSelect: VSelect
86073
86070
  VCalendar: VCalendar
86074
86071
  VCalendarDay: VCalendarDay
86075
86072
  VCalendarHeader: VCalendarHeader
86076
86073
  VCalendarInterval: VCalendarInterval
86077
86074
  VCalendarIntervalEvent: VCalendarIntervalEvent
86078
86075
  VCalendarMonthDay: VCalendarMonthDay
86079
- VStepperVertical: VStepperVertical
86080
- VStepperVerticalItem: VStepperVerticalItem
86081
- VStepperVerticalActions: VStepperVerticalActions
86076
+ VColorInput: VColorInput
86077
+ VFileUpload: VFileUpload
86078
+ VFileUploadItem: VFileUploadItem
86079
+ VIconBtn: VIconBtn
86082
86080
  VPicker: VPicker
86083
86081
  VPickerTitle: VPickerTitle
86084
86082
  VTimePicker: VTimePicker
86085
86083
  VTimePickerClock: VTimePickerClock
86086
86084
  VTimePickerControls: VTimePickerControls
86085
+ VStepperVertical: VStepperVertical
86086
+ VStepperVerticalItem: VStepperVerticalItem
86087
+ VStepperVerticalActions: VStepperVerticalActions
86087
86088
  VTreeview: VTreeview
86088
86089
  VTreeviewItem: VTreeviewItem
86089
86090
  VTreeviewGroup: VTreeviewGroup
86090
- VColorInput: VColorInput
86091
86091
  VDateInput: VDateInput
86092
86092
  VPullToRefresh: VPullToRefresh
86093
86093
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.7-master.2025-05-31
2
+ * Vuetify v3.8.7-master.2025-06-03
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -4035,9 +4035,9 @@ const VImg = genericComponent()({
4035
4035
  if (!normalisedSrc.value.src || state.value === 'idle') return null;
4036
4036
  const img = createElementVNode("img", {
4037
4037
  "class": normalizeClass(['v-img__img', containClasses.value]),
4038
- "style": normalizeStyle({
4038
+ "style": {
4039
4039
  objectPosition: props.position
4040
- }),
4040
+ },
4041
4041
  "crossorigin": props.crossorigin,
4042
4042
  "src": normalisedSrc.value.src,
4043
4043
  "srcset": normalisedSrc.value.srcset,
@@ -4064,9 +4064,9 @@ const VImg = genericComponent()({
4064
4064
  }, {
4065
4065
  default: () => [normalisedSrc.value.lazySrc && state.value !== 'loaded' && createElementVNode("img", {
4066
4066
  "class": normalizeClass(['v-img__img', 'v-img__img--preload', containClasses.value]),
4067
- "style": normalizeStyle({
4067
+ "style": {
4068
4068
  objectPosition: props.position
4069
- }),
4069
+ },
4070
4070
  "crossorigin": props.crossorigin,
4071
4071
  "src": normalisedSrc.value.lazySrc,
4072
4072
  "alt": props.alt,
@@ -4100,9 +4100,9 @@ const VImg = genericComponent()({
4100
4100
  if (!props.gradient) return null;
4101
4101
  return createElementVNode("div", {
4102
4102
  "class": "v-img__gradient",
4103
- "style": normalizeStyle({
4103
+ "style": {
4104
4104
  backgroundImage: `linear-gradient(${props.gradient})`
4105
- })
4105
+ }
4106
4106
  }, null);
4107
4107
  };
4108
4108
  const isBooted = shallowRef(false);
@@ -4313,9 +4313,9 @@ const VToolbar = genericComponent()({
4313
4313
  }, {
4314
4314
  default: () => [createElementVNode("div", {
4315
4315
  "class": "v-toolbar__content",
4316
- "style": normalizeStyle({
4316
+ "style": {
4317
4317
  height: convertToUnit(contentHeight.value)
4318
- })
4318
+ }
4319
4319
  }, [slots.prepend && createElementVNode("div", {
4320
4320
  "class": "v-toolbar__prepend"
4321
4321
  }, [slots.prepend?.()]), hasTitle && createVNode(VToolbarTitle, {
@@ -4336,9 +4336,9 @@ const VToolbar = genericComponent()({
4336
4336
  default: () => [createVNode(VExpandTransition, null, {
4337
4337
  default: () => [isExtended.value && createElementVNode("div", {
4338
4338
  "class": "v-toolbar__extension",
4339
- "style": normalizeStyle({
4339
+ "style": {
4340
4340
  height: convertToUnit(extensionHeight.value)
4341
- })
4341
+ }
4342
4342
  }, [extension])]
4343
4343
  })]
4344
4344
  })]
@@ -5202,9 +5202,9 @@ const VProgressCircular = genericComponent()({
5202
5202
  "aria-valuenow": props.indeterminate ? undefined : normalizedValue.value
5203
5203
  }, {
5204
5204
  default: () => [createElementVNode("svg", {
5205
- "style": normalizeStyle({
5205
+ "style": {
5206
5206
  transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`
5207
- }),
5207
+ },
5208
5208
  "xmlns": "http://www.w3.org/2000/svg",
5209
5209
  "viewBox": `0 0 ${diameter.value} ${diameter.value}`
5210
5210
  }, [createElementVNode("circle", {
@@ -5425,7 +5425,7 @@ const VProgressLinear = genericComponent()({
5425
5425
  default: () => [props.stream && createElementVNode("div", {
5426
5426
  "key": "stream",
5427
5427
  "class": normalizeClass(['v-progress-linear__stream', textColorClasses.value]),
5428
- "style": normalizeStyle({
5428
+ "style": {
5429
5429
  ...textColorStyles.value,
5430
5430
  [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),
5431
5431
  borderTop: `${convertToUnit(height.value / 2)} dotted`,
@@ -5433,7 +5433,7 @@ const VProgressLinear = genericComponent()({
5433
5433
  top: `calc(50% - ${convertToUnit(height.value / 4)})`,
5434
5434
  width: convertToUnit(100 - normalizedBuffer.value, '%'),
5435
5435
  '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1))
5436
- })
5436
+ }
5437
5437
  }, null), createElementVNode("div", {
5438
5438
  "class": normalizeClass(['v-progress-linear__background', !isForcedColorsModeActive ? backgroundColorClasses.value : undefined]),
5439
5439
  "style": normalizeStyle([backgroundColorStyles.value, {
@@ -6741,7 +6741,7 @@ const VSelectionControl = genericComponent()({
6741
6741
  backgroundColorClasses,
6742
6742
  backgroundColorStyles
6743
6743
  }), withDirectives(createElementVNode("div", {
6744
- "class": ['v-selection-control__input']
6744
+ "class": normalizeClass(['v-selection-control__input'])
6745
6745
  }, [slots.input?.({
6746
6746
  model,
6747
6747
  textColorClasses,
@@ -8374,6 +8374,7 @@ const VChip = genericComponent()({
8374
8374
  const isClickable = computed(() => !props.disabled && props.link !== false && (!!group || props.link || link.isClickable.value));
8375
8375
  const closeProps = toRef(() => ({
8376
8376
  'aria-label': t(props.closeLabel),
8377
+ disabled: props.disabled,
8377
8378
  onClick(e) {
8378
8379
  e.preventDefault();
8379
8380
  e.stopPropagation();
@@ -12888,14 +12889,14 @@ const VVirtualScroll = genericComponent()({
12888
12889
  return props.renderless ? createElementVNode(Fragment, null, [createElementVNode("div", {
12889
12890
  "ref": markerRef,
12890
12891
  "class": "v-virtual-scroll__spacer",
12891
- "style": normalizeStyle({
12892
+ "style": {
12892
12893
  paddingTop: convertToUnit(paddingTop.value)
12893
- })
12894
+ }
12894
12895
  }, null), children, createElementVNode("div", {
12895
12896
  "class": "v-virtual-scroll__spacer",
12896
- "style": normalizeStyle({
12897
+ "style": {
12897
12898
  paddingBottom: convertToUnit(paddingBottom.value)
12898
- })
12899
+ }
12899
12900
  }, null)]) : createElementVNode("div", {
12900
12901
  "ref": containerRef,
12901
12902
  "class": normalizeClass(['v-virtual-scroll', props.class]),
@@ -12905,10 +12906,10 @@ const VVirtualScroll = genericComponent()({
12905
12906
  }, [createElementVNode("div", {
12906
12907
  "ref": markerRef,
12907
12908
  "class": "v-virtual-scroll__container",
12908
- "style": normalizeStyle({
12909
+ "style": {
12909
12910
  paddingTop: convertToUnit(paddingTop.value),
12910
12911
  paddingBottom: convertToUnit(paddingBottom.value)
12911
- })
12912
+ }
12912
12913
  }, [children])]);
12913
12914
  });
12914
12915
  return {
@@ -15342,9 +15343,9 @@ const VWindow = genericComponent()({
15342
15343
  }, {
15343
15344
  default: () => [createElementVNode("div", {
15344
15345
  "class": "v-window__container",
15345
- "style": normalizeStyle({
15346
+ "style": {
15346
15347
  height: transitionHeight.value
15347
- })
15348
+ }
15348
15349
  }, [slots.default?.({
15349
15350
  group
15350
15351
  }), props.showArrows !== false && createElementVNode("div", {
@@ -15439,10 +15440,10 @@ const VCarousel = genericComponent()({
15439
15440
  } = _ref2;
15440
15441
  return createElementVNode(Fragment, null, [!props.hideDelimiters && createElementVNode("div", {
15441
15442
  "class": "v-carousel__controls",
15442
- "style": normalizeStyle({
15443
+ "style": {
15443
15444
  left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',
15444
15445
  right: props.verticalDelimiters === 'right' ? 0 : 'auto'
15445
- })
15446
+ }
15446
15447
  }, [group.items.value.length > 0 && createVNode(VDefaultsProvider, {
15447
15448
  "defaults": {
15448
15449
  VBtn: {
@@ -16162,7 +16163,10 @@ const useSteps = props => {
16162
16163
  if (step.value <= 0) return value;
16163
16164
  const clamped = clamp(value, min.value, max.value);
16164
16165
  const offset = min.value % step.value;
16165
- const newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
16166
+ let newValue = Math.round((clamped - offset) / step.value) * step.value + offset;
16167
+ if (clamped > newValue && newValue + step.value > max.value) {
16168
+ newValue = max.value;
16169
+ }
16166
16170
  return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value));
16167
16171
  }
16168
16172
  return {
@@ -16418,6 +16422,8 @@ const VSliderThumb = genericComponent()({
16418
16422
  } = useRtl();
16419
16423
  if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider');
16420
16424
  const {
16425
+ min,
16426
+ max,
16421
16427
  thumbColor,
16422
16428
  step,
16423
16429
  disabled,
@@ -16458,16 +16464,20 @@ const VSliderThumb = genericComponent()({
16458
16464
  if (!relevantKeys.includes(e.key)) return;
16459
16465
  e.preventDefault();
16460
16466
  const _step = step.value || 0.1;
16461
- const steps = (props.max - props.min) / _step;
16467
+ const steps = (max.value - min.value) / _step;
16462
16468
  if ([left, right, down, up].includes(e.key)) {
16463
16469
  const increase = vertical.value ? [isRtl.value ? left : right, isReversed.value ? down : up] : indexFromEnd.value !== isRtl.value ? [left, up] : [right, up];
16464
16470
  const direction = increase.includes(e.key) ? 1 : -1;
16465
16471
  const multiplier = e.shiftKey ? 2 : e.ctrlKey ? 1 : 0;
16466
- value = value + direction * _step * multipliers.value[multiplier];
16472
+ if (direction === -1 && value === max.value && !multiplier && !Number.isInteger(steps)) {
16473
+ value = value - steps % 1 * _step;
16474
+ } else {
16475
+ value = value + direction * _step * multipliers.value[multiplier];
16476
+ }
16467
16477
  } else if (e.key === home) {
16468
- value = props.min;
16478
+ value = min.value;
16469
16479
  } else if (e.key === end) {
16470
- value = props.max;
16480
+ value = max.value;
16471
16481
  } else {
16472
16482
  const direction = e.key === pagedown ? 1 : -1;
16473
16483
  value = value - direction * _step * (steps > 100 ? steps / 10 : 10);
@@ -16492,17 +16502,17 @@ const VSliderThumb = genericComponent()({
16492
16502
  "role": "slider",
16493
16503
  "tabindex": disabled.value ? -1 : 0,
16494
16504
  "aria-label": props.name,
16495
- "aria-valuemin": props.min,
16496
- "aria-valuemax": props.max,
16505
+ "aria-valuemin": min.value,
16506
+ "aria-valuemax": max.value,
16497
16507
  "aria-valuenow": props.modelValue,
16498
16508
  "aria-readonly": !!readonly.value,
16499
16509
  "aria-orientation": direction.value,
16500
16510
  "onKeydown": !readonly.value ? onKeydown : undefined
16501
16511
  }, [createElementVNode("div", {
16502
16512
  "class": normalizeClass(['v-slider-thumb__surface', textColorClasses.value, elevationClasses.value]),
16503
- "style": normalizeStyle({
16513
+ "style": {
16504
16514
  ...textColorStyles.value
16505
- })
16515
+ }
16506
16516
  }, null), withDirectives(createElementVNode("div", {
16507
16517
  "class": normalizeClass(['v-slider-thumb__ripple', textColorClasses.value]),
16508
16518
  "style": normalizeStyle(textColorStyles.value)
@@ -16515,7 +16525,7 @@ const VSliderThumb = genericComponent()({
16515
16525
  default: () => [withDirectives(createElementVNode("div", {
16516
16526
  "class": "v-slider-thumb__label-container"
16517
16527
  }, [createElementVNode("div", {
16518
- "class": ['v-slider-thumb__label']
16528
+ "class": normalizeClass(['v-slider-thumb__label'])
16519
16529
  }, [createElementVNode("div", null, [slots['thumb-label']?.({
16520
16530
  modelValue: props.modelValue
16521
16531
  }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1)])])]), [[vShow, thumbLabel.value && props.focused || thumbLabel.value === 'always']])]
@@ -16600,9 +16610,9 @@ const VSliderTrack = genericComponent()({
16600
16610
  'v-slider-track__tick--first': tick.value === min.value,
16601
16611
  'v-slider-track__tick--last': tick.value === max.value
16602
16612
  }]),
16603
- "style": normalizeStyle({
16613
+ "style": {
16604
16614
  [startDir.value]: directionValue
16605
- })
16615
+ }
16606
16616
  }, [(tick.label || slots['tick-label']) && createElementVNode("div", {
16607
16617
  "class": "v-slider-track__tick-label"
16608
16618
  }, [slots['tick-label']?.({
@@ -16622,16 +16632,16 @@ const VSliderTrack = genericComponent()({
16622
16632
  "class": normalizeClass(['v-slider-track__background', trackColorClasses.value, {
16623
16633
  'v-slider-track__background--opacity': !!color.value || !trackFillColor.value
16624
16634
  }]),
16625
- "style": normalizeStyle({
16635
+ "style": {
16626
16636
  ...backgroundStyles.value,
16627
16637
  ...trackColorStyles.value
16628
- })
16638
+ }
16629
16639
  }, null), createElementVNode("div", {
16630
16640
  "class": normalizeClass(['v-slider-track__fill', trackFillColorClasses.value]),
16631
- "style": normalizeStyle({
16641
+ "style": {
16632
16642
  ...trackFillStyles.value,
16633
16643
  ...trackFillColorStyles.value
16634
- })
16644
+ }
16635
16645
  }, null), showTicks.value && createElementVNode("div", {
16636
16646
  "class": normalizeClass(['v-slider-track__ticks', {
16637
16647
  'v-slider-track__ticks--always-show': showTicks.value === 'always'
@@ -16833,9 +16843,9 @@ const VColorPickerPreview = defineComponent({
16833
16843
  }, null)]), createElementVNode("div", {
16834
16844
  "class": "v-color-picker-preview__dot"
16835
16845
  }, [createElementVNode("div", {
16836
- "style": normalizeStyle({
16846
+ "style": {
16837
16847
  background: HSVtoCSS(props.color ?? nullColor)
16838
- })
16848
+ }
16839
16849
  }, null)]), createElementVNode("div", {
16840
16850
  "class": "v-color-picker-preview__sliders"
16841
16851
  }, [createVNode(VSlider, {
@@ -17236,9 +17246,9 @@ const VColorPickerSwatches = defineComponent({
17236
17246
  "class": "v-color-picker-swatches__color",
17237
17247
  "onClick": () => hsva && emit('update:color', hsva)
17238
17248
  }, [createElementVNode("div", {
17239
- "style": normalizeStyle({
17249
+ "style": {
17240
17250
  background
17241
- })
17251
+ }
17242
17252
  }, [props.color && deepEqual(props.color, hsva) ? createVNode(VIcon, {
17243
17253
  "size": "x-small",
17244
17254
  "icon": "$success",
@@ -20257,12 +20267,12 @@ const VDataTableColumn = defineFunctionalComponent({
20257
20267
  'v-data-table-column--no-padding': props.noPadding,
20258
20268
  'v-data-table-column--nowrap': props.nowrap
20259
20269
  }, `v-data-table-column--align-${props.align}`]),
20260
- "style": normalizeStyle({
20270
+ "style": {
20261
20271
  height: convertToUnit(props.height),
20262
20272
  width: convertToUnit(props.width),
20263
20273
  maxWidth: convertToUnit(props.maxWidth),
20264
20274
  left: convertToUnit(props.fixedOffset || null)
20265
- })
20275
+ }
20266
20276
  }, {
20267
20277
  default: () => [slots.default?.()]
20268
20278
  });
@@ -20787,9 +20797,9 @@ const VDataTableGroupHeaderRow = genericComponent()({
20787
20797
  });
20788
20798
  return () => createElementVNode("tr", {
20789
20799
  "class": "v-data-table-group-header-row",
20790
- "style": normalizeStyle({
20800
+ "style": {
20791
20801
  '--v-data-table-group-header-row-depth': props.item.depth
20792
- })
20802
+ }
20793
20803
  }, [columns.value.map(column => {
20794
20804
  if (column.key === 'data-table-group') {
20795
20805
  const icon = isGroupOpen(props.item) ? '$expand' : '$next';
@@ -21137,9 +21147,9 @@ const VTable = genericComponent()({
21137
21147
  }, {
21138
21148
  default: () => [slots.top?.(), slots.default ? createElementVNode("div", {
21139
21149
  "class": "v-table__wrapper",
21140
- "style": normalizeStyle({
21150
+ "style": {
21141
21151
  height: convertToUnit(props.height)
21142
- })
21152
+ }
21143
21153
  }, [createElementVNode("table", null, [slots.default()])]) : slots.wrapper?.(), slots.bottom?.()]
21144
21154
  }));
21145
21155
  return {};
@@ -21574,19 +21584,19 @@ const VDataTableVirtual = genericComponent()({
21574
21584
  "onScrollPassive": handleScroll,
21575
21585
  "onScrollend": handleScrollend,
21576
21586
  "class": "v-table__wrapper",
21577
- "style": normalizeStyle({
21587
+ "style": {
21578
21588
  height: convertToUnit(props.height)
21579
- })
21589
+ }
21580
21590
  }, [createElementVNode("table", null, [slots.colgroup?.(slotProps.value), !props.hideDefaultHeader && createElementVNode("thead", {
21581
21591
  "key": "thead"
21582
21592
  }, [createVNode(VDataTableHeaders, dataTableHeadersProps, slots)]), slots.thead?.(slotProps.value), !props.hideDefaultBody && createElementVNode("tbody", {
21583
21593
  "key": "tbody"
21584
21594
  }, [createElementVNode("tr", {
21585
21595
  "ref": markerRef,
21586
- "style": normalizeStyle({
21596
+ "style": {
21587
21597
  height: convertToUnit(paddingTop.value),
21588
21598
  border: 0
21589
- })
21599
+ }
21590
21600
  }, [createElementVNode("td", {
21591
21601
  "colspan": columns.value.length,
21592
21602
  "style": {
@@ -21617,10 +21627,10 @@ const VDataTableVirtual = genericComponent()({
21617
21627
  }
21618
21628
  })
21619
21629
  }), slots['body.append']?.(slotProps.value), createElementVNode("tr", {
21620
- "style": normalizeStyle({
21630
+ "style": {
21621
21631
  height: convertToUnit(paddingBottom.value),
21622
21632
  border: 0
21623
- })
21633
+ }
21624
21634
  }, [createElementVNode("td", {
21625
21635
  "colspan": columns.value.length,
21626
21636
  "style": {
@@ -22158,10 +22168,10 @@ const VDatePickerControls = genericComponent()({
22158
22168
  useRender(() => {
22159
22169
  // TODO: add slot support and scope defaults
22160
22170
  return createElementVNode("div", {
22161
- "class": ['v-date-picker-controls'],
22162
- "style": normalizeStyle({
22171
+ "class": normalizeClass(['v-date-picker-controls']),
22172
+ "style": {
22163
22173
  '--v-date-picker-controls-height': convertToUnit(props.controlHeight)
22164
- })
22174
+ }
22165
22175
  }, [createVNode(VBtn, {
22166
22176
  "class": "v-date-picker-controls__month-btn",
22167
22177
  "data-testid": "month-btn",
@@ -22539,7 +22549,7 @@ const VDatePickerMonth = genericComponent()({
22539
22549
  "key": "hide-week-days",
22540
22550
  "class": "v-date-picker-month__day"
22541
22551
  }, [createTextVNode("\xA0")]), weekNumbers.value.map(week => createElementVNode("div", {
22542
- "class": ['v-date-picker-month__day', 'v-date-picker-month__day--adjacent']
22552
+ "class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__day--adjacent'])
22543
22553
  }, [week]))]), createVNode(MaybeTransition, {
22544
22554
  "name": transition.value
22545
22555
  }, {
@@ -22548,7 +22558,7 @@ const VDatePickerMonth = genericComponent()({
22548
22558
  "key": daysInMonth.value[0].date?.toString(),
22549
22559
  "class": "v-date-picker-month__days"
22550
22560
  }, [!props.hideWeekdays && adapter.getWeekdays(props.firstDayOfWeek).map(weekDay => createElementVNode("div", {
22551
- "class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
22561
+ "class": normalizeClass(['v-date-picker-month__day', 'v-date-picker-month__weekday'])
22552
22562
  }, [weekDay])), daysInMonth.value.map((item, i) => {
22553
22563
  const slotProps = {
22554
22564
  props: {
@@ -22636,9 +22646,9 @@ const VDatePickerMonths = genericComponent()({
22636
22646
  }
22637
22647
  useRender(() => createElementVNode("div", {
22638
22648
  "class": "v-date-picker-months",
22639
- "style": normalizeStyle({
22649
+ "style": {
22640
22650
  height: convertToUnit(props.height)
22641
- })
22651
+ }
22642
22652
  }, [createElementVNode("div", {
22643
22653
  "class": "v-date-picker-months__content"
22644
22654
  }, [months.value.map((month, i) => {
@@ -22738,9 +22748,9 @@ const VDatePickerYears = genericComponent()({
22738
22748
  }
22739
22749
  useRender(() => createElementVNode("div", {
22740
22750
  "class": "v-date-picker-years",
22741
- "style": normalizeStyle({
22751
+ "style": {
22742
22752
  height: convertToUnit(props.height)
22743
- })
22753
+ }
22744
22754
  }, [createElementVNode("div", {
22745
22755
  "class": "v-date-picker-years__content"
22746
22756
  }, [years.value.map((year, i) => {
@@ -23184,9 +23194,9 @@ const VEmptyState = genericComponent()({
23184
23194
  }, [slots.title?.() ?? props.title]), hasText && createElementVNode("div", {
23185
23195
  "key": "text",
23186
23196
  "class": "v-empty-state__text",
23187
- "style": normalizeStyle({
23197
+ "style": {
23188
23198
  maxWidth: convertToUnit(props.textWidth)
23189
- })
23199
+ }
23190
23200
  }, [slots.text?.() ?? props.text]), slots.default && createElementVNode("div", {
23191
23201
  "key": "content",
23192
23202
  "class": "v-empty-state__content"
@@ -24051,9 +24061,9 @@ const VInfiniteScrollIntersect = defineComponent({
24051
24061
  });
24052
24062
  useRender(() => createElementVNode("div", {
24053
24063
  "class": "v-infinite-scroll-intersect",
24054
- "style": normalizeStyle({
24064
+ "style": {
24055
24065
  '--v-infinite-margin-size': props.rootMargin
24056
- }),
24066
+ },
24057
24067
  "ref": intersectionRef
24058
24068
  }, [createTextVNode("\xA0")]));
24059
24069
  return {};
@@ -25664,7 +25674,7 @@ const VOtpInput = genericComponent()({
25664
25674
  "aria-label": t(props.label, i + 1),
25665
25675
  "autofocus": i === 0 && props.autofocus,
25666
25676
  "autocomplete": "one-time-code",
25667
- "class": ['v-otp-input__field'],
25677
+ "class": normalizeClass(['v-otp-input__field']),
25668
25678
  "disabled": props.disabled,
25669
25679
  "inputmode": props.type === 'number' ? 'numeric' : 'text',
25670
25680
  "min": props.type === 'number' ? 0 : undefined,
@@ -29382,7 +29392,7 @@ function createVuetify$1() {
29382
29392
  };
29383
29393
  });
29384
29394
  }
29385
- const version$1 = "3.8.7-master.2025-05-31";
29395
+ const version$1 = "3.8.7-master.2025-06-03";
29386
29396
  createVuetify$1.version = version$1;
29387
29397
 
29388
29398
  // Vue's inject() can only be used in setup
@@ -29407,7 +29417,7 @@ const createVuetify = function () {
29407
29417
  ...options
29408
29418
  });
29409
29419
  };
29410
- const version = "3.8.7-master.2025-05-31";
29420
+ const version = "3.8.7-master.2025-06-03";
29411
29421
  createVuetify.version = version;
29412
29422
 
29413
29423
  export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };