@vuetify/nightly 3.8.8-master.2025-06-04 → 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 +10 -3
  2. package/dist/json/attributes.json +3121 -3121
  3. package/dist/json/importMap-labs.json +24 -24
  4. package/dist/json/importMap.json +178 -178
  5. package/dist/json/web-types.json +5827 -5827
  6. package/dist/vuetify-labs.cjs +29 -35
  7. package/dist/vuetify-labs.css +3477 -3477
  8. package/dist/vuetify-labs.d.ts +71 -61
  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 +3921 -3921
  16. package/dist/vuetify.d.ts +66 -61
  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 +61 -61
  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,76 +101799,78 @@ declare module 'vue' {
101789
101799
  $children?: VNodeChild
101790
101800
  }
101791
101801
  export interface GlobalComponents {
101792
- VApp: VApp
101793
- VAlert: VAlert
101794
- VAlertTitle: VAlertTitle
101795
101802
  VAppBar: VAppBar
101796
101803
  VAppBarNavIcon: VAppBarNavIcon
101797
101804
  VAppBarTitle: VAppBarTitle
101798
- VAutocomplete: VAutocomplete
101805
+ VAlert: VAlert
101806
+ VAlertTitle: VAlertTitle
101799
101807
  VAvatar: VAvatar
101808
+ VApp: VApp
101809
+ VBadge: VBadge
101800
101810
  VBanner: VBanner
101801
101811
  VBannerActions: VBannerActions
101802
101812
  VBannerText: VBannerText
101803
- VBadge: VBadge
101804
- VBottomNavigation: VBottomNavigation
101813
+ VAutocomplete: VAutocomplete
101814
+ VBottomSheet: VBottomSheet
101805
101815
  VBreadcrumbs: VBreadcrumbs
101806
101816
  VBreadcrumbsItem: VBreadcrumbsItem
101807
101817
  VBreadcrumbsDivider: VBreadcrumbsDivider
101808
- VBottomSheet: VBottomSheet
101809
- VBtnGroup: VBtnGroup
101810
- VBtnToggle: VBtnToggle
101818
+ VBottomNavigation: VBottomNavigation
101811
101819
  VBtn: VBtn
101820
+ VBtnToggle: VBtnToggle
101821
+ VBtnGroup: VBtnGroup
101822
+ VCarousel: VCarousel
101823
+ VCarouselItem: VCarouselItem
101812
101824
  VCard: VCard
101813
101825
  VCardActions: VCardActions
101814
101826
  VCardItem: VCardItem
101815
101827
  VCardSubtitle: VCardSubtitle
101816
101828
  VCardText: VCardText
101817
101829
  VCardTitle: VCardTitle
101818
- VCarousel: VCarousel
101819
- VCarouselItem: VCarouselItem
101830
+ VDataTable: VDataTable
101831
+ VDataTableHeaders: VDataTableHeaders
101832
+ VDataTableFooter: VDataTableFooter
101833
+ VDataTableRows: VDataTableRows
101834
+ VDataTableRow: VDataTableRow
101835
+ VDataTableVirtual: VDataTableVirtual
101836
+ VDataTableServer: VDataTableServer
101837
+ VCode: VCode
101820
101838
  VCheckbox: VCheckbox
101821
101839
  VCheckboxBtn: VCheckboxBtn
101822
- VChipGroup: VChipGroup
101823
101840
  VChip: VChip
101841
+ VCounter: VCounter
101842
+ VChipGroup: VChipGroup
101824
101843
  VCombobox: VCombobox
101825
- VCode: VCode
101826
101844
  VColorPicker: VColorPicker
101827
- VCounter: VCounter
101828
- VDialog: VDialog
101829
101845
  VDatePicker: VDatePicker
101830
101846
  VDatePickerControls: VDatePickerControls
101831
101847
  VDatePickerHeader: VDatePickerHeader
101832
101848
  VDatePickerMonth: VDatePickerMonth
101833
101849
  VDatePickerMonths: VDatePickerMonths
101834
101850
  VDatePickerYears: VDatePickerYears
101835
- VDataTable: VDataTable
101836
- VDataTableHeaders: VDataTableHeaders
101837
- VDataTableFooter: VDataTableFooter
101838
- VDataTableRows: VDataTableRows
101839
- VDataTableRow: VDataTableRow
101840
- VDataTableVirtual: VDataTableVirtual
101841
- VDataTableServer: VDataTableServer
101842
101851
  VDivider: VDivider
101843
- VEmptyState: VEmptyState
101844
- VFooter: VFooter
101845
- VFileInput: VFileInput
101852
+ VDialog: VDialog
101846
101853
  VExpansionPanels: VExpansionPanels
101847
101854
  VExpansionPanel: VExpansionPanel
101848
101855
  VExpansionPanelText: VExpansionPanelText
101849
101856
  VExpansionPanelTitle: VExpansionPanelTitle
101850
101857
  VFab: VFab
101858
+ VFooter: VFooter
101859
+ VFileInput: VFileInput
101860
+ VField: VField
101861
+ VFieldLabel: VFieldLabel
101851
101862
  VIcon: VIcon
101852
101863
  VComponentIcon: VComponentIcon
101853
101864
  VSvgIcon: VSvgIcon
101854
101865
  VLigatureIcon: VLigatureIcon
101855
101866
  VClassIcon: VClassIcon
101856
- VImg: VImg
101857
101867
  VInfiniteScroll: VInfiniteScroll
101868
+ VInput: VInput
101869
+ VKbd: VKbd
101858
101870
  VItemGroup: VItemGroup
101859
101871
  VItem: VItem
101860
101872
  VLabel: VLabel
101861
- VKbd: VKbd
101873
+ VImg: VImg
101862
101874
  VList: VList
101863
101875
  VListGroup: VListGroup
101864
101876
  VListImg: VListImg
@@ -101868,74 +101880,72 @@ declare module 'vue' {
101868
101880
  VListItemSubtitle: VListItemSubtitle
101869
101881
  VListItemTitle: VListItemTitle
101870
101882
  VListSubheader: VListSubheader
101883
+ VMenu: VMenu
101871
101884
  VMain: VMain
101872
101885
  VNavigationDrawer: VNavigationDrawer
101873
- VMenu: VMenu
101874
101886
  VNumberInput: VNumberInput
101875
- VMessages: VMessages
101876
101887
  VOverlay: VOverlay
101877
- VPagination: VPagination
101878
- VProgressCircular: VProgressCircular
101888
+ VMessages: VMessages
101879
101889
  VOtpInput: VOtpInput
101890
+ VProgressCircular: VProgressCircular
101891
+ VPagination: VPagination
101880
101892
  VProgressLinear: VProgressLinear
101881
101893
  VRadioGroup: VRadioGroup
101882
- VSelect: VSelect
101883
- VSelectionControl: VSelectionControl
101884
101894
  VRating: VRating
101895
+ VSelect: VSelect
101885
101896
  VSelectionControlGroup: VSelectionControlGroup
101886
- VSheet: VSheet
101887
101897
  VSkeletonLoader: VSkeletonLoader
101898
+ VSheet: VSheet
101899
+ VSelectionControl: VSelectionControl
101888
101900
  VSlideGroup: VSlideGroup
101889
101901
  VSlideGroupItem: VSlideGroupItem
101902
+ VStepper: VStepper
101903
+ VStepperActions: VStepperActions
101904
+ VStepperHeader: VStepperHeader
101905
+ VStepperItem: VStepperItem
101906
+ VStepperWindow: VStepperWindow
101907
+ VStepperWindowItem: VStepperWindowItem
101890
101908
  VSnackbar: VSnackbar
101891
101909
  VSlider: VSlider
101892
- VField: VField
101893
- VFieldLabel: VFieldLabel
101894
- VSwitch: VSwitch
101895
101910
  VSystemBar: VSystemBar
101911
+ VSwitch: VSwitch
101912
+ VTimeline: VTimeline
101913
+ VTimelineItem: VTimelineItem
101896
101914
  VTab: VTab
101897
101915
  VTabs: VTabs
101898
101916
  VTabsWindow: VTabsWindow
101899
101917
  VTabsWindowItem: VTabsWindowItem
101900
- VStepper: VStepper
101901
- VStepperActions: VStepperActions
101902
- VStepperHeader: VStepperHeader
101903
- VStepperItem: VStepperItem
101904
- VStepperWindow: VStepperWindow
101905
- VStepperWindowItem: VStepperWindowItem
101906
- VTable: VTable
101907
101918
  VTextField: VTextField
101908
101919
  VTextarea: VTextarea
101909
- VTimeline: VTimeline
101910
- VTimelineItem: VTimelineItem
101911
- VTooltip: VTooltip
101912
101920
  VToolbar: VToolbar
101913
101921
  VToolbarTitle: VToolbarTitle
101914
101922
  VToolbarItems: VToolbarItems
101923
+ VTooltip: VTooltip
101915
101924
  VWindow: VWindow
101916
101925
  VWindowItem: VWindowItem
101917
101926
  VConfirmEdit: VConfirmEdit
101927
+ VTable: VTable
101918
101928
  VDataIterator: VDataIterator
101929
+ VDefaultsProvider: VDefaultsProvider
101919
101930
  VForm: VForm
101920
101931
  VContainer: VContainer
101921
101932
  VCol: VCol
101922
101933
  VRow: VRow
101923
101934
  VSpacer: VSpacer
101924
101935
  VHover: VHover
101925
- VLayout: VLayout
101926
- VLayoutItem: VLayoutItem
101927
101936
  VLazy: VLazy
101928
101937
  VLocaleProvider: VLocaleProvider
101929
101938
  VNoSsr: VNoSsr
101939
+ VRadio: VRadio
101930
101940
  VParallax: VParallax
101931
101941
  VRangeSlider: VRangeSlider
101932
- VRadio: VRadio
101933
101942
  VResponsive: VResponsive
101934
- VSparkline: VSparkline
101935
101943
  VSnackbarQueue: VSnackbarQueue
101936
101944
  VSpeedDial: VSpeedDial
101945
+ VSparkline: VSparkline
101937
101946
  VThemeProvider: VThemeProvider
101938
101947
  VValidation: VValidation
101948
+ VVirtualScroll: VVirtualScroll
101939
101949
  VFabTransition: VFabTransition
101940
101950
  VDialogBottomTransition: VDialogBottomTransition
101941
101951
  VDialogTopTransition: VDialogTopTransition
@@ -101952,30 +101962,30 @@ declare module 'vue' {
101952
101962
  VExpandTransition: VExpandTransition
101953
101963
  VExpandXTransition: VExpandXTransition
101954
101964
  VDialogTransition: VDialogTransition
101955
- VVirtualScroll: VVirtualScroll
101956
- VInput: VInput
101957
- VDefaultsProvider: VDefaultsProvider
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
101964
- VFileUpload: VFileUpload
101965
- VFileUploadItem: VFileUploadItem
101966
- VColorInput: VColorInput
101974
+ VIconBtn: VIconBtn
101967
101975
  VPicker: VPicker
101968
101976
  VPickerTitle: VPickerTitle
101969
- VStepperVertical: VStepperVertical
101970
- VStepperVerticalItem: VStepperVerticalItem
101971
- VStepperVerticalActions: VStepperVerticalActions
101972
- VIconBtn: VIconBtn
101977
+ VColorInput: VColorInput
101973
101978
  VTimePicker: VTimePicker
101974
101979
  VTimePickerClock: VTimePickerClock
101975
101980
  VTimePickerControls: VTimePickerControls
101981
+ VFileUpload: VFileUpload
101982
+ VFileUploadItem: VFileUploadItem
101976
101983
  VTreeview: VTreeview
101977
101984
  VTreeviewItem: VTreeviewItem
101978
101985
  VTreeviewGroup: VTreeviewGroup
101986
+ VStepperVertical: VStepperVertical
101987
+ VStepperVerticalItem: VStepperVerticalItem
101988
+ VStepperVerticalActions: VStepperVerticalActions
101979
101989
  VDateInput: VDateInput
101980
101990
  VPullToRefresh: VPullToRefresh
101981
101991
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.8-master.2025-06-04
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-04";
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-04";
32386
+ const version = "3.8.8-master.2025-06-07";
32393
32387
 
32394
32388
  /* eslint-disable local-rules/sort-imports */
32395
32389