@vuetify/nightly 3.8.8-master.2025-06-06 → 3.8.8-master.2025-06-07

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 (41) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/dist/json/attributes.json +2176 -2176
  3. package/dist/json/importMap-labs.json +28 -28
  4. package/dist/json/importMap.json +148 -148
  5. package/dist/json/web-types.json +4180 -4180
  6. package/dist/vuetify-labs.cjs +29 -35
  7. package/dist/vuetify-labs.css +4211 -4211
  8. package/dist/vuetify-labs.d.ts +64 -54
  9. package/dist/vuetify-labs.esm.js +29 -35
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +29 -35
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +23 -20
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3951 -3951
  16. package/dist/vuetify.d.ts +59 -54
  17. package/dist/vuetify.esm.js +23 -20
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +23 -20
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +30 -30
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VDataTable/VDataTableFooter.js +3 -1
  25. package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
  26. package/lib/components/VNumberInput/VNumberInput.d.ts +5 -0
  27. package/lib/components/VNumberInput/VNumberInput.js +7 -11
  28. package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
  29. package/lib/components/VOtpInput/VOtpInput.js +5 -2
  30. package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
  31. package/lib/components/VTextField/VTextField.js +5 -4
  32. package/lib/components/VTextField/VTextField.js.map +1 -1
  33. package/lib/entry-bundler.js +1 -1
  34. package/lib/framework.d.ts +54 -54
  35. package/lib/framework.js +1 -1
  36. package/lib/labs/VColorInput/VColorInput.js +3 -8
  37. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  38. package/lib/labs/VDateInput/VDateInput.d.ts +5 -0
  39. package/lib/labs/VDateInput/VDateInput.js +5 -9
  40. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  41. package/package.json +1 -1
@@ -51326,6 +51326,7 @@ declare const VNumberInput: {
51326
51326
  "v-slot:increment"?: false | ((arg: ControlSlot$1) => vue.VNodeChild) | undefined;
51327
51327
  "v-slot:decrement"?: false | ((arg: ControlSlot$1) => vue.VNodeChild) | undefined;
51328
51328
  } & {
51329
+ "onUpdate:focused"?: ((val: boolean) => any) | undefined;
51329
51330
  "onUpdate:modelValue"?: ((val: number) => any) | undefined;
51330
51331
  }, Omit<Omit<{
51331
51332
  $: vue.ComponentInternalInstance;
@@ -53266,6 +53267,7 @@ declare const VNumberInput: {
53266
53267
  } | {};
53267
53268
  }) | {};
53268
53269
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
53270
+ 'update:focused': (val: boolean) => true;
53269
53271
  'update:modelValue': (val: number) => true;
53270
53272
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
53271
53273
  flat: boolean;
@@ -53462,6 +53464,7 @@ declare const VNumberInput: {
53462
53464
  "v-slot:increment"?: false | ((arg: ControlSlot$1) => vue.VNodeChild) | undefined;
53463
53465
  "v-slot:decrement"?: false | ((arg: ControlSlot$1) => vue.VNodeChild) | undefined;
53464
53466
  } & {
53467
+ "onUpdate:focused"?: ((val: boolean) => any) | undefined;
53465
53468
  "onUpdate:modelValue"?: ((val: number) => any) | undefined;
53466
53469
  }, Omit<Omit<{
53467
53470
  $: vue.ComponentInternalInstance;
@@ -55575,6 +55578,7 @@ declare const VNumberInput: {
55575
55578
  "v-slot:increment"?: false | ((arg: ControlSlot$1) => vue.VNodeChild) | undefined;
55576
55579
  "v-slot:decrement"?: false | ((arg: ControlSlot$1) => vue.VNodeChild) | undefined;
55577
55580
  } & {
55581
+ "onUpdate:focused"?: ((val: boolean) => any) | undefined;
55578
55582
  "onUpdate:modelValue"?: ((val: number) => any) | undefined;
55579
55583
  }, Omit<Omit<{
55580
55584
  $: vue.ComponentInternalInstance;
@@ -57515,6 +57519,7 @@ declare const VNumberInput: {
57515
57519
  } | {};
57516
57520
  }) | {};
57517
57521
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
57522
+ 'update:focused': (val: boolean) => true;
57518
57523
  'update:modelValue': (val: number) => true;
57519
57524
  }, string, {
57520
57525
  flat: boolean;
@@ -89439,6 +89444,7 @@ declare const VDateInput: {
89439
89444
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
89440
89445
  } & {
89441
89446
  onCancel?: (() => any) | undefined;
89447
+ "onUpdate:focused"?: ((val: boolean) => any) | undefined;
89442
89448
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
89443
89449
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
89444
89450
  onSave?: ((value: string) => any) | undefined;
@@ -91383,6 +91389,7 @@ declare const VDateInput: {
91383
91389
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
91384
91390
  save: (value: string) => true;
91385
91391
  cancel: () => true;
91392
+ 'update:focused': (val: boolean) => true;
91386
91393
  'update:modelValue': (val: string) => true;
91387
91394
  'update:menu': (val: boolean) => true;
91388
91395
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, {
@@ -91638,6 +91645,7 @@ declare const VDateInput: {
91638
91645
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
91639
91646
  } & {
91640
91647
  onCancel?: (() => any) | undefined;
91648
+ "onUpdate:focused"?: ((val: boolean) => any) | undefined;
91641
91649
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
91642
91650
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
91643
91651
  onSave?: ((value: string) => any) | undefined;
@@ -93811,6 +93819,7 @@ declare const VDateInput: {
93811
93819
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
93812
93820
  } & {
93813
93821
  onCancel?: (() => any) | undefined;
93822
+ "onUpdate:focused"?: ((val: boolean) => any) | undefined;
93814
93823
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
93815
93824
  "onUpdate:menu"?: ((val: boolean) => any) | undefined;
93816
93825
  onSave?: ((value: string) => any) | undefined;
@@ -95755,6 +95764,7 @@ declare const VDateInput: {
95755
95764
  }, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
95756
95765
  save: (value: string) => true;
95757
95766
  cancel: () => true;
95767
+ 'update:focused': (val: boolean) => true;
95758
95768
  'update:modelValue': (val: string) => true;
95759
95769
  'update:menu': (val: boolean) => true;
95760
95770
  }, string, {
@@ -101789,41 +101799,34 @@ declare module 'vue' {
101789
101799
  $children?: VNodeChild
101790
101800
  }
101791
101801
  export interface GlobalComponents {
101792
- VApp: VApp
101793
101802
  VAppBar: VAppBar
101794
101803
  VAppBarNavIcon: VAppBarNavIcon
101795
101804
  VAppBarTitle: VAppBarTitle
101796
101805
  VAlert: VAlert
101797
101806
  VAlertTitle: VAlertTitle
101798
- VAutocomplete: VAutocomplete
101799
101807
  VAvatar: VAvatar
101808
+ VApp: VApp
101800
101809
  VBadge: VBadge
101801
101810
  VBanner: VBanner
101802
101811
  VBannerActions: VBannerActions
101803
101812
  VBannerText: VBannerText
101813
+ VAutocomplete: VAutocomplete
101804
101814
  VBottomSheet: VBottomSheet
101805
- VBottomNavigation: VBottomNavigation
101806
101815
  VBreadcrumbs: VBreadcrumbs
101807
101816
  VBreadcrumbsItem: VBreadcrumbsItem
101808
101817
  VBreadcrumbsDivider: VBreadcrumbsDivider
101818
+ VBottomNavigation: VBottomNavigation
101809
101819
  VBtn: VBtn
101820
+ VBtnToggle: VBtnToggle
101821
+ VBtnGroup: VBtnGroup
101822
+ VCarousel: VCarousel
101823
+ VCarouselItem: VCarouselItem
101810
101824
  VCard: VCard
101811
101825
  VCardActions: VCardActions
101812
101826
  VCardItem: VCardItem
101813
101827
  VCardSubtitle: VCardSubtitle
101814
101828
  VCardText: VCardText
101815
101829
  VCardTitle: VCardTitle
101816
- VCarousel: VCarousel
101817
- VCarouselItem: VCarouselItem
101818
- VChipGroup: VChipGroup
101819
- VCode: VCode
101820
- VBtnToggle: VBtnToggle
101821
- VCheckbox: VCheckbox
101822
- VCheckboxBtn: VCheckboxBtn
101823
- VCombobox: VCombobox
101824
- VCounter: VCounter
101825
- VColorPicker: VColorPicker
101826
- VBtnGroup: VBtnGroup
101827
101830
  VDataTable: VDataTable
101828
101831
  VDataTableHeaders: VDataTableHeaders
101829
101832
  VDataTableFooter: VDataTableFooter
@@ -101831,8 +101834,14 @@ declare module 'vue' {
101831
101834
  VDataTableRow: VDataTableRow
101832
101835
  VDataTableVirtual: VDataTableVirtual
101833
101836
  VDataTableServer: VDataTableServer
101837
+ VCode: VCode
101838
+ VCheckbox: VCheckbox
101839
+ VCheckboxBtn: VCheckboxBtn
101834
101840
  VChip: VChip
101835
- VEmptyState: VEmptyState
101841
+ VCounter: VCounter
101842
+ VChipGroup: VChipGroup
101843
+ VCombobox: VCombobox
101844
+ VColorPicker: VColorPicker
101836
101845
  VDatePicker: VDatePicker
101837
101846
  VDatePickerControls: VDatePickerControls
101838
101847
  VDatePickerHeader: VDatePickerHeader
@@ -101840,28 +101849,28 @@ declare module 'vue' {
101840
101849
  VDatePickerMonths: VDatePickerMonths
101841
101850
  VDatePickerYears: VDatePickerYears
101842
101851
  VDivider: VDivider
101843
- VFab: VFab
101852
+ VDialog: VDialog
101844
101853
  VExpansionPanels: VExpansionPanels
101845
101854
  VExpansionPanel: VExpansionPanel
101846
101855
  VExpansionPanelText: VExpansionPanelText
101847
101856
  VExpansionPanelTitle: VExpansionPanelTitle
101848
- VDialog: VDialog
101857
+ VFab: VFab
101858
+ VFooter: VFooter
101859
+ VFileInput: VFileInput
101849
101860
  VField: VField
101850
101861
  VFieldLabel: VFieldLabel
101851
- VFileInput: VFileInput
101852
- VFooter: VFooter
101853
- VInput: VInput
101854
101862
  VIcon: VIcon
101855
101863
  VComponentIcon: VComponentIcon
101856
101864
  VSvgIcon: VSvgIcon
101857
101865
  VLigatureIcon: VLigatureIcon
101858
101866
  VClassIcon: VClassIcon
101859
101867
  VInfiniteScroll: VInfiniteScroll
101868
+ VInput: VInput
101869
+ VKbd: VKbd
101860
101870
  VItemGroup: VItemGroup
101861
101871
  VItem: VItem
101862
- VImg: VImg
101863
101872
  VLabel: VLabel
101864
- VKbd: VKbd
101873
+ VImg: VImg
101865
101874
  VList: VList
101866
101875
  VListGroup: VListGroup
101867
101876
  VListImg: VListImg
@@ -101871,68 +101880,69 @@ declare module 'vue' {
101871
101880
  VListItemSubtitle: VListItemSubtitle
101872
101881
  VListItemTitle: VListItemTitle
101873
101882
  VListSubheader: VListSubheader
101883
+ VMenu: VMenu
101874
101884
  VMain: VMain
101875
101885
  VNavigationDrawer: VNavigationDrawer
101876
- VMenu: VMenu
101886
+ VNumberInput: VNumberInput
101887
+ VOverlay: VOverlay
101877
101888
  VMessages: VMessages
101878
101889
  VOtpInput: VOtpInput
101879
- VNumberInput: VNumberInput
101890
+ VProgressCircular: VProgressCircular
101880
101891
  VPagination: VPagination
101881
101892
  VProgressLinear: VProgressLinear
101882
- VOverlay: VOverlay
101883
- VProgressCircular: VProgressCircular
101884
101893
  VRadioGroup: VRadioGroup
101885
101894
  VRating: VRating
101886
- VSelectionControl: VSelectionControl
101887
- VSheet: VSheet
101888
101895
  VSelect: VSelect
101889
- VSkeletonLoader: VSkeletonLoader
101890
101896
  VSelectionControlGroup: VSelectionControlGroup
101897
+ VSkeletonLoader: VSkeletonLoader
101898
+ VSheet: VSheet
101899
+ VSelectionControl: VSelectionControl
101891
101900
  VSlideGroup: VSlideGroup
101892
101901
  VSlideGroupItem: VSlideGroupItem
101893
- VSlider: VSlider
101894
- VTextField: VTextField
101895
101902
  VStepper: VStepper
101896
101903
  VStepperActions: VStepperActions
101897
101904
  VStepperHeader: VStepperHeader
101898
101905
  VStepperItem: VStepperItem
101899
101906
  VStepperWindow: VStepperWindow
101900
101907
  VStepperWindowItem: VStepperWindowItem
101901
- VSystemBar: VSystemBar
101902
101908
  VSnackbar: VSnackbar
101909
+ VSlider: VSlider
101910
+ VSystemBar: VSystemBar
101911
+ VSwitch: VSwitch
101912
+ VTimeline: VTimeline
101913
+ VTimelineItem: VTimelineItem
101903
101914
  VTab: VTab
101904
101915
  VTabs: VTabs
101905
101916
  VTabsWindow: VTabsWindow
101906
101917
  VTabsWindowItem: VTabsWindowItem
101918
+ VTextField: VTextField
101907
101919
  VTextarea: VTextarea
101908
- VTable: VTable
101909
- VWindow: VWindow
101910
- VWindowItem: VWindowItem
101911
101920
  VToolbar: VToolbar
101912
101921
  VToolbarTitle: VToolbarTitle
101913
101922
  VToolbarItems: VToolbarItems
101914
101923
  VTooltip: VTooltip
101915
- VSwitch: VSwitch
101924
+ VWindow: VWindow
101925
+ VWindowItem: VWindowItem
101916
101926
  VConfirmEdit: VConfirmEdit
101927
+ VTable: VTable
101917
101928
  VDataIterator: VDataIterator
101918
101929
  VDefaultsProvider: VDefaultsProvider
101930
+ VForm: VForm
101919
101931
  VContainer: VContainer
101920
101932
  VCol: VCol
101921
101933
  VRow: VRow
101922
101934
  VSpacer: VSpacer
101923
101935
  VHover: VHover
101924
- VForm: VForm
101925
101936
  VLazy: VLazy
101926
- VLayout: VLayout
101927
- VLayoutItem: VLayoutItem
101928
101937
  VLocaleProvider: VLocaleProvider
101929
101938
  VNoSsr: VNoSsr
101939
+ VRadio: VRadio
101930
101940
  VParallax: VParallax
101931
101941
  VRangeSlider: VRangeSlider
101932
101942
  VResponsive: VResponsive
101933
- VRadio: VRadio
101934
- VSparkline: VSparkline
101943
+ VSnackbarQueue: VSnackbarQueue
101935
101944
  VSpeedDial: VSpeedDial
101945
+ VSparkline: VSparkline
101936
101946
  VThemeProvider: VThemeProvider
101937
101947
  VValidation: VValidation
101938
101948
  VVirtualScroll: VVirtualScroll
@@ -101952,31 +101962,31 @@ declare module 'vue' {
101952
101962
  VExpandTransition: VExpandTransition
101953
101963
  VExpandXTransition: VExpandXTransition
101954
101964
  VDialogTransition: VDialogTransition
101955
- VTimeline: VTimeline
101956
- VTimelineItem: VTimelineItem
101957
- VSnackbarQueue: VSnackbarQueue
101965
+ VEmptyState: VEmptyState
101966
+ VLayout: VLayout
101967
+ VLayoutItem: VLayoutItem
101958
101968
  VCalendar: VCalendar
101959
101969
  VCalendarDay: VCalendarDay
101960
101970
  VCalendarHeader: VCalendarHeader
101961
101971
  VCalendarInterval: VCalendarInterval
101962
101972
  VCalendarIntervalEvent: VCalendarIntervalEvent
101963
101973
  VCalendarMonthDay: VCalendarMonthDay
101974
+ VIconBtn: VIconBtn
101964
101975
  VPicker: VPicker
101965
101976
  VPickerTitle: VPickerTitle
101966
- VIconBtn: VIconBtn
101967
- VStepperVertical: VStepperVertical
101968
- VStepperVerticalItem: VStepperVerticalItem
101969
- VStepperVerticalActions: VStepperVerticalActions
101970
- VTreeview: VTreeview
101971
- VTreeviewItem: VTreeviewItem
101972
- VTreeviewGroup: VTreeviewGroup
101973
101977
  VColorInput: VColorInput
101974
- VFileUpload: VFileUpload
101975
- VFileUploadItem: VFileUploadItem
101976
101978
  VTimePicker: VTimePicker
101977
101979
  VTimePickerClock: VTimePickerClock
101978
101980
  VTimePickerControls: VTimePickerControls
101979
- VPullToRefresh: VPullToRefresh
101981
+ VFileUpload: VFileUpload
101982
+ VFileUploadItem: VFileUploadItem
101983
+ VTreeview: VTreeview
101984
+ VTreeviewItem: VTreeviewItem
101985
+ VTreeviewGroup: VTreeviewGroup
101986
+ VStepperVertical: VStepperVertical
101987
+ VStepperVerticalItem: VStepperVerticalItem
101988
+ VStepperVerticalActions: VStepperVerticalActions
101980
101989
  VDateInput: VDateInput
101990
+ VPullToRefresh: VPullToRefresh
101981
101991
  }
101982
101992
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.8-master.2025-06-06
2
+ * Vuetify v3.8.8-master.2025-06-07
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -12114,10 +12114,12 @@ const VTextField = genericComponent()({
12114
12114
  const inputRef = ref();
12115
12115
  const isActive = computed(() => activeTypes.includes(props.type) || props.persistentPlaceholder || isFocused.value || props.active);
12116
12116
  function onFocus() {
12117
- if (inputRef.value !== document.activeElement) {
12118
- inputRef.value?.focus();
12119
- }
12120
12117
  if (!isFocused.value) focus();
12118
+ nextTick(() => {
12119
+ if (inputRef.value !== document.activeElement) {
12120
+ inputRef.value?.focus();
12121
+ }
12122
+ });
12121
12123
  }
12122
12124
  function onControlMousedown(e) {
12123
12125
  emit('mousedown:control', e);
@@ -12126,7 +12128,6 @@ const VTextField = genericComponent()({
12126
12128
  e.preventDefault();
12127
12129
  }
12128
12130
  function onControlClick(e) {
12129
- onFocus();
12130
12131
  emit('click:control', e);
12131
12132
  }
12132
12133
  function onClear(e, reset) {
@@ -19939,7 +19940,9 @@ const VDataTableFooter = genericComponent()({
19939
19940
  "class": "v-data-table-footer"
19940
19941
  }, [slots.prepend?.(), createElementVNode("div", {
19941
19942
  "class": "v-data-table-footer__items-per-page"
19942
- }, [createElementVNode("span", null, [t(props.itemsPerPageText)]), createVNode(VSelect, {
19943
+ }, [createElementVNode("span", {
19944
+ "aria-label": t(props.itemsPerPageText)
19945
+ }, [t(props.itemsPerPageText)]), createVNode(VSelect, {
19943
19946
  "items": itemsPerPageOptions.value,
19944
19947
  "modelValue": itemsPerPage.value,
19945
19948
  "onUpdate:modelValue": v => setItemsPerPage(Number(v)),
@@ -24885,6 +24888,7 @@ const VNumberInput = genericComponent()({
24885
24888
  ...makeVNumberInputProps()
24886
24889
  },
24887
24890
  emits: {
24891
+ 'update:focused': val => true,
24888
24892
  'update:modelValue': val => true
24889
24893
  },
24890
24894
  setup(props, _ref) {
@@ -24900,11 +24904,7 @@ const VNumberInput = genericComponent()({
24900
24904
  });
24901
24905
  const form = useForm(props);
24902
24906
  const controlsDisabled = computed(() => form.isDisabled.value || form.isReadonly.value);
24903
- const {
24904
- isFocused,
24905
- focus,
24906
- blur
24907
- } = useFocus(props);
24907
+ const isFocused = shallowRef(props.focused);
24908
24908
  function correctPrecision(val) {
24909
24909
  let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
24910
24910
  const fixed = precision == null ? String(val) : val.toFixed(precision);
@@ -25089,11 +25089,9 @@ const VNumberInput = genericComponent()({
25089
25089
  inputText.value = model.value.toString();
25090
25090
  }
25091
25091
  function onFocus() {
25092
- focus();
25093
25092
  trimDecimalZeros();
25094
25093
  }
25095
25094
  function onBlur() {
25096
- blur();
25097
25095
  clampModel();
25098
25096
  }
25099
25097
  useRender(() => {
@@ -25186,9 +25184,12 @@ const VNumberInput = genericComponent()({
25186
25184
  }, null)]) : props.reverse && controlVariant.value !== 'hidden' ? createElementVNode(Fragment, null, [controlNode(), dividerNode()]) : undefined;
25187
25185
  const hasPrependInner = slots['prepend-inner'] || prependInnerControl;
25188
25186
  return createVNode(VTextField, mergeProps({
25189
- "ref": vTextFieldRef,
25187
+ "ref": vTextFieldRef
25188
+ }, textFieldProps, {
25190
25189
  "modelValue": inputText.value,
25191
25190
  "onUpdate:modelValue": $event => inputText.value = $event,
25191
+ "focused": isFocused.value,
25192
+ "onUpdate:focused": $event => isFocused.value = $event,
25192
25193
  "validationValue": model.value,
25193
25194
  "onBeforeinput": onBeforeinput,
25194
25195
  "onFocus": onFocus,
@@ -25201,8 +25202,7 @@ const VNumberInput = genericComponent()({
25201
25202
  'v-number-input--reverse': props.reverse,
25202
25203
  'v-number-input--split': controlVariant.value === 'split',
25203
25204
  'v-number-input--stacked': controlVariant.value === 'stacked'
25204
- }, props.class]
25205
- }, textFieldProps, {
25205
+ }, props.class],
25206
25206
  "style": props.style,
25207
25207
  "inputmode": "decimal"
25208
25208
  }), {
@@ -25337,7 +25337,7 @@ const VOtpInput = genericComponent()({
25337
25337
  function onPaste(index, e) {
25338
25338
  e.preventDefault();
25339
25339
  e.stopPropagation();
25340
- const clipboardText = e?.clipboardData?.getData('Text').slice(0, length.value) ?? '';
25340
+ const clipboardText = e?.clipboardData?.getData('Text').trim().slice(0, length.value) ?? '';
25341
25341
  if (isValidNumber(clipboardText)) return;
25342
25342
  model.value = clipboardText.split('');
25343
25343
  inputRef.value?.[index].blur();
@@ -25369,7 +25369,10 @@ const VOtpInput = genericComponent()({
25369
25369
  scoped: true
25370
25370
  });
25371
25371
  watch(model, val => {
25372
- if (val.length === length.value) emit('finish', val.join(''));
25372
+ if (val.length === length.value) {
25373
+ focusIndex.value = length.value - 1;
25374
+ emit('finish', val.join(''));
25375
+ }
25373
25376
  }, {
25374
25377
  deep: true
25375
25378
  });
@@ -29260,13 +29263,9 @@ const VColorInput = genericComponent()({
29260
29263
  let {
29261
29264
  slots
29262
29265
  } = _ref;
29263
- const {
29264
- isFocused,
29265
- focus,
29266
- blur
29267
- } = useFocus(props);
29268
29266
  const model = useProxiedModel(props, 'modelValue');
29269
29267
  const menu = shallowRef(false);
29268
+ const isFocused = shallowRef(props.focused);
29270
29269
  const isInteractive = computed(() => !props.disabled && !props.readonly);
29271
29270
  const display = computed(() => model.value || null);
29272
29271
  function onKeydown(e) {
@@ -29297,10 +29296,9 @@ const VColorInput = genericComponent()({
29297
29296
  "modelValue": display.value,
29298
29297
  "onKeydown": isInteractive.value ? onKeydown : undefined,
29299
29298
  "focused": menu.value || isFocused.value,
29300
- "onFocus": focus,
29301
- "onBlur": blur,
29302
29299
  "onClick:control": isInteractive.value ? onClick : undefined,
29303
29300
  "onClick:prependInner": isInteractive.value ? onClick : undefined,
29301
+ "onUpdate:focused": event => isFocused.value = event,
29304
29302
  "onClick:appendInner": isInteractive.value ? onClick : undefined,
29305
29303
  "onUpdate:modelValue": val => {
29306
29304
  model.value = val;
@@ -29504,6 +29502,7 @@ const VDateInput = genericComponent()({
29504
29502
  emits: {
29505
29503
  save: value => true,
29506
29504
  cancel: () => true,
29505
+ 'update:focused': val => true,
29507
29506
  'update:modelValue': val => true,
29508
29507
  'update:menu': val => true
29509
29508
  },
@@ -29526,15 +29525,11 @@ const VDateInput = genericComponent()({
29526
29525
  const {
29527
29526
  mobile
29528
29527
  } = useDisplay(props);
29529
- const {
29530
- isFocused,
29531
- focus,
29532
- blur
29533
- } = useFocus(props);
29534
29528
  const emptyModelValue = () => props.multiple ? [] : null;
29535
29529
  const model = useProxiedModel(props, 'modelValue', emptyModelValue(), val => Array.isArray(val) ? val.map(item => adapter.toJsDate(item)) : val ? adapter.toJsDate(val) : val, val => Array.isArray(val) ? val.map(item => adapter.date(item)) : val ? adapter.date(val) : val);
29536
29530
  const menu = useProxiedModel(props, 'menu');
29537
29531
  const isEditingInput = shallowRef(false);
29532
+ const isFocused = shallowRef(props.focused);
29538
29533
  const vTextFieldRef = ref();
29539
29534
  const disabledActions = ref(['save']);
29540
29535
  function format(date) {
@@ -29610,7 +29605,6 @@ const VDateInput = genericComponent()({
29610
29605
  if (props.updateOn.includes('blur')) {
29611
29606
  onUserInput(e.target);
29612
29607
  }
29613
- blur();
29614
29608
 
29615
29609
  // When in mobile mode and editing is done (due to keyboard dismissal), close the menu
29616
29610
  if (mobile.value && isEditingInput.value && !isFocused.value) {
@@ -29655,12 +29649,12 @@ const VDateInput = genericComponent()({
29655
29649
  "readonly": isReadonly.value,
29656
29650
  "onKeydown": isInteractive.value ? onKeydown : undefined,
29657
29651
  "focused": menu.value || isFocused.value,
29658
- "onFocus": focus,
29659
29652
  "onBlur": onBlur,
29660
29653
  "validationValue": model.value,
29661
29654
  "onClick:control": isInteractive.value ? onClick : undefined,
29662
29655
  "onClick:prepend": isInteractive.value ? onClick : undefined,
29663
- "onUpdate:modelValue": onUpdateDisplayModel
29656
+ "onUpdate:modelValue": onUpdateDisplayModel,
29657
+ "onUpdate:focused": event => isFocused.value = event
29664
29658
  }), {
29665
29659
  ...slots,
29666
29660
  default: () => createElementVNode(Fragment, null, [createVNode(VMenu, {
@@ -32091,7 +32085,7 @@ function createVuetify$1() {
32091
32085
  };
32092
32086
  });
32093
32087
  }
32094
- const version$1 = "3.8.8-master.2025-06-06";
32088
+ const version$1 = "3.8.8-master.2025-06-07";
32095
32089
  createVuetify$1.version = version$1;
32096
32090
 
32097
32091
  // Vue's inject() can only be used in setup
@@ -32389,7 +32383,7 @@ var index = /*#__PURE__*/Object.freeze({
32389
32383
 
32390
32384
  /* eslint-disable local-rules/sort-imports */
32391
32385
 
32392
- const version = "3.8.8-master.2025-06-06";
32386
+ const version = "3.8.8-master.2025-06-07";
32393
32387
 
32394
32388
  /* eslint-disable local-rules/sort-imports */
32395
32389