@vuetify/nightly 3.8.0-beta.0-dev.2025-03-25 → 3.8.0-beta.0-dev.2025-03-26

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.
@@ -66775,6 +66775,7 @@ declare const VDateInput: {
66775
66775
  style: vue.StyleValue;
66776
66776
  title: string;
66777
66777
  autofocus: boolean;
66778
+ mobile: boolean | null;
66778
66779
  disabled: boolean;
66779
66780
  readonly: boolean | null;
66780
66781
  tag: string | JSXComponent;
@@ -66839,6 +66840,7 @@ declare const VDateInput: {
66839
66840
  theme?: string | undefined;
66840
66841
  elevation?: string | number | undefined;
66841
66842
  counter?: string | number | boolean | undefined;
66843
+ mobileBreakpoint?: number | DisplayBreakpoint | undefined;
66842
66844
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
66843
66845
  modelValue?: any;
66844
66846
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
@@ -66945,6 +66947,7 @@ declare const VDateInput: {
66945
66947
  style: vue.StyleValue;
66946
66948
  title: string;
66947
66949
  autofocus: boolean;
66950
+ mobile: boolean | null;
66948
66951
  disabled: boolean;
66949
66952
  readonly: boolean | null;
66950
66953
  tag: string | JSXComponent;
@@ -67024,6 +67027,7 @@ declare const VDateInput: {
67024
67027
  style: vue.StyleValue;
67025
67028
  title: string;
67026
67029
  autofocus: boolean;
67030
+ mobile: boolean | null;
67027
67031
  disabled: boolean;
67028
67032
  readonly: boolean | null;
67029
67033
  tag: string | JSXComponent;
@@ -67088,6 +67092,7 @@ declare const VDateInput: {
67088
67092
  theme?: string | undefined;
67089
67093
  elevation?: string | number | undefined;
67090
67094
  counter?: string | number | boolean | undefined;
67095
+ mobileBreakpoint?: number | DisplayBreakpoint | undefined;
67091
67096
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
67092
67097
  modelValue?: any;
67093
67098
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
@@ -67190,6 +67195,7 @@ declare const VDateInput: {
67190
67195
  style: vue.StyleValue;
67191
67196
  title: string;
67192
67197
  autofocus: boolean;
67198
+ mobile: boolean | null;
67193
67199
  disabled: boolean;
67194
67200
  readonly: boolean | null;
67195
67201
  tag: string | JSXComponent;
@@ -67248,6 +67254,7 @@ declare const VDateInput: {
67248
67254
  style: vue.StyleValue;
67249
67255
  title: string;
67250
67256
  autofocus: boolean;
67257
+ mobile: boolean | null;
67251
67258
  disabled: boolean;
67252
67259
  readonly: boolean | null;
67253
67260
  tag: string | JSXComponent;
@@ -67312,6 +67319,7 @@ declare const VDateInput: {
67312
67319
  theme?: string | undefined;
67313
67320
  elevation?: string | number | undefined;
67314
67321
  counter?: string | number | boolean | undefined;
67322
+ mobileBreakpoint?: number | DisplayBreakpoint | undefined;
67315
67323
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
67316
67324
  modelValue?: any;
67317
67325
  validateOn?: ("eager" | "lazy" | ("input" | "blur" | "submit" | "invalid-input") | "input lazy" | "blur lazy" | "submit lazy" | "invalid-input lazy" | "input eager" | "blur eager" | "submit eager" | "invalid-input eager" | "lazy input" | "lazy blur" | "lazy submit" | "lazy invalid-input" | "eager input" | "eager blur" | "eager submit" | "eager invalid-input") | undefined;
@@ -67418,6 +67426,7 @@ declare const VDateInput: {
67418
67426
  style: vue.StyleValue;
67419
67427
  title: string;
67420
67428
  autofocus: boolean;
67429
+ mobile: boolean | null;
67421
67430
  disabled: boolean;
67422
67431
  readonly: boolean | null;
67423
67432
  tag: string | JSXComponent;
@@ -67701,6 +67710,11 @@ declare const VDateInput: {
67701
67710
  type: PropType<boolean>;
67702
67711
  default: boolean;
67703
67712
  };
67713
+ mobile: {
67714
+ type: PropType<boolean | null>;
67715
+ default: boolean;
67716
+ };
67717
+ mobileBreakpoint: PropType<number | DisplayBreakpoint>;
67704
67718
  displayFormat: (FunctionConstructor | StringConstructor)[];
67705
67719
  location: {
67706
67720
  type: PropType<StrategyProps$1["location"]>;
@@ -67931,6 +67945,11 @@ declare const VDateInput: {
67931
67945
  type: PropType<boolean>;
67932
67946
  default: boolean;
67933
67947
  };
67948
+ mobile: {
67949
+ type: PropType<boolean | null>;
67950
+ default: boolean;
67951
+ };
67952
+ mobileBreakpoint: PropType<number | DisplayBreakpoint>;
67934
67953
  displayFormat: (FunctionConstructor | StringConstructor)[];
67935
67954
  location: {
67936
67955
  type: PropType<StrategyProps$1["location"]>;
@@ -73052,28 +73071,30 @@ declare module 'vue' {
73052
73071
  $children?: VNodeChild
73053
73072
  }
73054
73073
  export interface GlobalComponents {
73074
+ VApp: VApp
73055
73075
  VAlert: VAlert
73056
73076
  VAlertTitle: VAlertTitle
73057
- VAppBar: VAppBar
73058
- VAppBarNavIcon: VAppBarNavIcon
73059
- VAppBarTitle: VAppBarTitle
73060
73077
  VAutocomplete: VAutocomplete
73061
- VApp: VApp
73062
73078
  VAvatar: VAvatar
73063
- VBottomSheet: VBottomSheet
73064
- VBottomNavigation: VBottomNavigation
73065
73079
  VBadge: VBadge
73066
- VBtnGroup: VBtnGroup
73080
+ VBottomNavigation: VBottomNavigation
73081
+ VAppBar: VAppBar
73082
+ VAppBarNavIcon: VAppBarNavIcon
73083
+ VAppBarTitle: VAppBarTitle
73067
73084
  VBanner: VBanner
73068
73085
  VBannerActions: VBannerActions
73069
73086
  VBannerText: VBannerText
73070
- VBtn: VBtn
73071
- VCarousel: VCarousel
73072
- VCarouselItem: VCarouselItem
73073
73087
  VBreadcrumbs: VBreadcrumbs
73074
73088
  VBreadcrumbsItem: VBreadcrumbsItem
73075
73089
  VBreadcrumbsDivider: VBreadcrumbsDivider
73076
73090
  VBtnToggle: VBtnToggle
73091
+ VBtn: VBtn
73092
+ VCarousel: VCarousel
73093
+ VCarouselItem: VCarouselItem
73094
+ VBottomSheet: VBottomSheet
73095
+ VBtnGroup: VBtnGroup
73096
+ VChip: VChip
73097
+ VChipGroup: VChipGroup
73077
73098
  VCheckbox: VCheckbox
73078
73099
  VCheckboxBtn: VCheckboxBtn
73079
73100
  VCode: VCode
@@ -73083,47 +73104,47 @@ declare module 'vue' {
73083
73104
  VCardSubtitle: VCardSubtitle
73084
73105
  VCardText: VCardText
73085
73106
  VCardTitle: VCardTitle
73086
- VDialog: VDialog
73087
- VChipGroup: VChipGroup
73088
- VCombobox: VCombobox
73089
- VChip: VChip
73090
- VColorPicker: VColorPicker
73091
- VDivider: VDivider
73107
+ VCounter: VCounter
73092
73108
  VDatePicker: VDatePicker
73093
73109
  VDatePickerControls: VDatePickerControls
73094
73110
  VDatePickerHeader: VDatePickerHeader
73095
73111
  VDatePickerMonth: VDatePickerMonth
73096
73112
  VDatePickerMonths: VDatePickerMonths
73097
73113
  VDatePickerYears: VDatePickerYears
73114
+ VDataTable: VDataTable
73115
+ VDataTableHeaders: VDataTableHeaders
73116
+ VDataTableFooter: VDataTableFooter
73117
+ VDataTableRows: VDataTableRows
73118
+ VDataTableRow: VDataTableRow
73119
+ VDataTableVirtual: VDataTableVirtual
73120
+ VDataTableServer: VDataTableServer
73121
+ VColorPicker: VColorPicker
73122
+ VCombobox: VCombobox
73098
73123
  VEmptyState: VEmptyState
73099
- VCounter: VCounter
73100
- VFab: VFab
73101
- VFooter: VFooter
73124
+ VDialog: VDialog
73102
73125
  VExpansionPanels: VExpansionPanels
73103
73126
  VExpansionPanel: VExpansionPanel
73104
73127
  VExpansionPanelText: VExpansionPanelText
73105
73128
  VExpansionPanelTitle: VExpansionPanelTitle
73129
+ VDivider: VDivider
73130
+ VFab: VFab
73131
+ VFileInput: VFileInput
73132
+ VField: VField
73133
+ VFieldLabel: VFieldLabel
73134
+ VFooter: VFooter
73135
+ VImg: VImg
73136
+ VInfiniteScroll: VInfiniteScroll
73137
+ VKbd: VKbd
73138
+ VInput: VInput
73106
73139
  VIcon: VIcon
73107
73140
  VComponentIcon: VComponentIcon
73108
73141
  VSvgIcon: VSvgIcon
73109
73142
  VLigatureIcon: VLigatureIcon
73110
73143
  VClassIcon: VClassIcon
73111
- VField: VField
73112
- VFieldLabel: VFieldLabel
73113
- VFileInput: VFileInput
73114
- VImg: VImg
73115
- VInput: VInput
73116
- VInfiniteScroll: VInfiniteScroll
73117
73144
  VItemGroup: VItemGroup
73118
73145
  VItem: VItem
73119
- VDataTable: VDataTable
73120
- VDataTableHeaders: VDataTableHeaders
73121
- VDataTableFooter: VDataTableFooter
73122
- VDataTableRows: VDataTableRows
73123
- VDataTableRow: VDataTableRow
73124
- VDataTableVirtual: VDataTableVirtual
73125
- VDataTableServer: VDataTableServer
73126
- VKbd: VKbd
73146
+ VLabel: VLabel
73147
+ VMenu: VMenu
73127
73148
  VList: VList
73128
73149
  VListGroup: VListGroup
73129
73150
  VListImg: VListImg
@@ -73133,25 +73154,25 @@ declare module 'vue' {
73133
73154
  VListItemSubtitle: VListItemSubtitle
73134
73155
  VListItemTitle: VListItemTitle
73135
73156
  VListSubheader: VListSubheader
73136
- VLabel: VLabel
73137
- VMenu: VMenu
73138
- VNumberInput: VNumberInput
73139
- VMessages: VMessages
73140
- VNavigationDrawer: VNavigationDrawer
73141
73157
  VMain: VMain
73142
73158
  VOtpInput: VOtpInput
73159
+ VMessages: VMessages
73160
+ VNavigationDrawer: VNavigationDrawer
73161
+ VPagination: VPagination
73143
73162
  VOverlay: VOverlay
73144
73163
  VProgressCircular: VProgressCircular
73164
+ VNumberInput: VNumberInput
73145
73165
  VRadioGroup: VRadioGroup
73166
+ VSelectionControl: VSelectionControl
73146
73167
  VProgressLinear: VProgressLinear
73147
- VPagination: VPagination
73148
73168
  VRating: VRating
73169
+ VSelectionControlGroup: VSelectionControlGroup
73149
73170
  VSelect: VSelect
73150
- VSelectionControl: VSelectionControl
73151
73171
  VSkeletonLoader: VSkeletonLoader
73152
- VSelectionControlGroup: VSelectionControlGroup
73153
73172
  VSheet: VSheet
73154
73173
  VSnackbar: VSnackbar
73174
+ VSlideGroup: VSlideGroup
73175
+ VSlideGroupItem: VSlideGroupItem
73155
73176
  VSlider: VSlider
73156
73177
  VStepper: VStepper
73157
73178
  VStepperActions: VStepperActions
@@ -73159,15 +73180,13 @@ declare module 'vue' {
73159
73180
  VStepperItem: VStepperItem
73160
73181
  VStepperWindow: VStepperWindow
73161
73182
  VStepperWindowItem: VStepperWindowItem
73162
- VSlideGroup: VSlideGroup
73163
- VSlideGroupItem: VSlideGroupItem
73164
- VSystemBar: VSystemBar
73165
- VSwitch: VSwitch
73166
- VTable: VTable
73167
73183
  VTab: VTab
73168
73184
  VTabs: VTabs
73169
73185
  VTabsWindow: VTabsWindow
73170
73186
  VTabsWindowItem: VTabsWindowItem
73187
+ VSystemBar: VSystemBar
73188
+ VSwitch: VSwitch
73189
+ VTable: VTable
73171
73190
  VTextField: VTextField
73172
73191
  VTextarea: VTextarea
73173
73192
  VTimeline: VTimeline
@@ -73187,17 +73206,17 @@ declare module 'vue' {
73187
73206
  VRow: VRow
73188
73207
  VSpacer: VSpacer
73189
73208
  VHover: VHover
73209
+ VLazy: VLazy
73190
73210
  VLayout: VLayout
73191
73211
  VLayoutItem: VLayoutItem
73192
- VLazy: VLazy
73193
73212
  VLocaleProvider: VLocaleProvider
73194
73213
  VNoSsr: VNoSsr
73195
- VRadio: VRadio
73196
73214
  VParallax: VParallax
73215
+ VRadio: VRadio
73216
+ VRangeSlider: VRangeSlider
73197
73217
  VResponsive: VResponsive
73198
73218
  VSnackbarQueue: VSnackbarQueue
73199
73219
  VSparkline: VSparkline
73200
- VRangeSlider: VRangeSlider
73201
73220
  VSpeedDial: VSpeedDial
73202
73221
  VThemeProvider: VThemeProvider
73203
73222
  VValidation: VValidation
@@ -73218,25 +73237,25 @@ declare module 'vue' {
73218
73237
  VExpandTransition: VExpandTransition
73219
73238
  VExpandXTransition: VExpandXTransition
73220
73239
  VDialogTransition: VDialogTransition
73240
+ VTimePicker: VTimePicker
73241
+ VTimePickerClock: VTimePickerClock
73242
+ VTimePickerControls: VTimePickerControls
73243
+ VPicker: VPicker
73244
+ VPickerTitle: VPickerTitle
73221
73245
  VCalendar: VCalendar
73222
73246
  VCalendarDay: VCalendarDay
73223
73247
  VCalendarHeader: VCalendarHeader
73224
73248
  VCalendarInterval: VCalendarInterval
73225
73249
  VCalendarIntervalEvent: VCalendarIntervalEvent
73226
73250
  VCalendarMonthDay: VCalendarMonthDay
73227
- VPicker: VPicker
73228
- VPickerTitle: VPickerTitle
73251
+ VTreeview: VTreeview
73252
+ VTreeviewItem: VTreeviewItem
73253
+ VTreeviewGroup: VTreeviewGroup
73229
73254
  VStepperVertical: VStepperVertical
73230
73255
  VStepperVerticalItem: VStepperVerticalItem
73231
73256
  VStepperVerticalActions: VStepperVerticalActions
73232
- VTimePicker: VTimePicker
73233
- VTimePickerClock: VTimePickerClock
73234
- VTimePickerControls: VTimePickerControls
73235
73257
  VFileUpload: VFileUpload
73236
73258
  VFileUploadItem: VFileUploadItem
73237
- VTreeview: VTreeview
73238
- VTreeviewItem: VTreeviewItem
73239
- VTreeviewGroup: VTreeviewGroup
73240
73259
  VDateInput: VDateInput
73241
73260
  VPullToRefresh: VPullToRefresh
73242
73261
  }
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.8.0-beta.0-dev.2025-03-25
2
+ * Vuetify v3.8.0-beta.0-dev.2025-03-26
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -28936,6 +28936,7 @@ const makeVDateInputProps = propsFactory({
28936
28936
  type: String,
28937
28937
  default: 'bottom start'
28938
28938
  },
28939
+ ...makeDisplayProps(),
28939
28940
  ...makeFocusProps(),
28940
28941
  ...makeVConfirmEditProps({
28941
28942
  hideActions: true
@@ -28966,6 +28967,9 @@ const VDateInput = genericComponent()({
28966
28967
  t
28967
28968
  } = useLocale();
28968
28969
  const adapter = useDate();
28970
+ const {
28971
+ mobile
28972
+ } = useDisplay();
28969
28973
  const {
28970
28974
  isFocused,
28971
28975
  focus,
@@ -28973,6 +28977,7 @@ const VDateInput = genericComponent()({
28973
28977
  } = useFocus(props);
28974
28978
  const model = useProxiedModel(props, 'modelValue', props.multiple ? [] : null, 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);
28975
28979
  const menu = shallowRef(false);
28980
+ const isEditingInput = shallowRef(false);
28976
28981
  const vDateInputRef = ref();
28977
28982
  function format(date) {
28978
28983
  if (typeof props.displayFormat === 'function') {
@@ -28994,7 +28999,17 @@ const VDateInput = genericComponent()({
28994
28999
  }
28995
29000
  return adapter.isValid(model.value) ? format(adapter.date(model.value)) : '';
28996
29001
  });
29002
+ const inputmode = computed(() => {
29003
+ if (!mobile.value) return undefined;
29004
+ if (isEditingInput.value) return 'text';
29005
+ return 'none';
29006
+ });
28997
29007
  const isInteractive = computed(() => !props.disabled && !props.readonly);
29008
+ const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly);
29009
+ watch(menu, val => {
29010
+ if (val) return;
29011
+ isEditingInput.value = false;
29012
+ });
28998
29013
  function onKeydown(e) {
28999
29014
  if (e.key !== 'Enter') return;
29000
29015
  if (!menu.value || !isFocused.value) {
@@ -29007,11 +29022,16 @@ const VDateInput = genericComponent()({
29007
29022
  function onClick(e) {
29008
29023
  e.preventDefault();
29009
29024
  e.stopPropagation();
29010
- menu.value = true;
29025
+ if (menu.value && mobile.value) {
29026
+ isEditingInput.value = true;
29027
+ } else {
29028
+ menu.value = true;
29029
+ }
29011
29030
  }
29012
29031
  function onCancel() {
29013
29032
  emit('cancel');
29014
29033
  menu.value = false;
29034
+ isEditingInput.value = false;
29015
29035
  }
29016
29036
  function onSave(value) {
29017
29037
  emit('save', value);
@@ -29021,6 +29041,19 @@ const VDateInput = genericComponent()({
29021
29041
  if (value != null) return;
29022
29042
  model.value = null;
29023
29043
  }
29044
+ function onUpdateMenuModel(isMenuOpen) {
29045
+ if (isMenuOpen) return;
29046
+ isEditingInput.value = false;
29047
+ }
29048
+ function onBlur() {
29049
+ blur();
29050
+
29051
+ // When in mobile mode and editing is done (due to keyboard dismissal), close the menu
29052
+ if (mobile.value && isEditingInput.value && !isFocused.value) {
29053
+ menu.value = false;
29054
+ isEditingInput.value = false;
29055
+ }
29056
+ }
29024
29057
  useRender(() => {
29025
29058
  const confirmEditProps = VConfirmEdit.filterProps(props);
29026
29059
  const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
@@ -29031,10 +29064,12 @@ const VDateInput = genericComponent()({
29031
29064
  "class": props.class,
29032
29065
  "style": props.style,
29033
29066
  "modelValue": display.value,
29067
+ "inputmode": inputmode.value,
29068
+ "readonly": isReadonly.value,
29034
29069
  "onKeydown": isInteractive.value ? onKeydown : undefined,
29035
29070
  "focused": menu.value || isFocused.value,
29036
29071
  "onFocus": focus,
29037
- "onBlur": blur,
29072
+ "onBlur": onBlur,
29038
29073
  "onClick:control": isInteractive.value ? onClick : undefined,
29039
29074
  "onClick:prepend": isInteractive.value ? onClick : undefined,
29040
29075
  "onUpdate:modelValue": onUpdateDisplayModel
@@ -29042,7 +29077,7 @@ const VDateInput = genericComponent()({
29042
29077
  ...slots,
29043
29078
  default: () => createVNode(Fragment, null, [createVNode(VMenu, {
29044
29079
  "modelValue": menu.value,
29045
- "onUpdate:modelValue": $event => menu.value = $event,
29080
+ "onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
29046
29081
  "activator": "parent",
29047
29082
  "min-width": "0",
29048
29083
  "eager": isFocused.value,
@@ -31310,7 +31345,7 @@ function createVuetify$1() {
31310
31345
  };
31311
31346
  });
31312
31347
  }
31313
- const version$1 = "3.8.0-beta.0-dev.2025-03-25";
31348
+ const version$1 = "3.8.0-beta.0-dev.2025-03-26";
31314
31349
  createVuetify$1.version = version$1;
31315
31350
 
31316
31351
  // Vue's inject() can only be used in setup
@@ -31595,7 +31630,7 @@ var index = /*#__PURE__*/Object.freeze({
31595
31630
 
31596
31631
  /* eslint-disable local-rules/sort-imports */
31597
31632
 
31598
- const version = "3.8.0-beta.0-dev.2025-03-25";
31633
+ const version = "3.8.0-beta.0-dev.2025-03-26";
31599
31634
 
31600
31635
  /* eslint-disable local-rules/sort-imports */
31601
31636