@vuetify/nightly 3.7.18-master.2025-03-24 → 3.7.18-master.2025-03-25

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.
@@ -68762,6 +68762,7 @@ declare const VDateInput: {
68762
68762
  style: vue.StyleValue;
68763
68763
  title: string;
68764
68764
  autofocus: boolean;
68765
+ mobile: boolean | null;
68765
68766
  disabled: boolean;
68766
68767
  readonly: boolean | null;
68767
68768
  tag: string;
@@ -68824,6 +68825,7 @@ declare const VDateInput: {
68824
68825
  theme?: string | undefined;
68825
68826
  elevation?: string | number | undefined;
68826
68827
  counter?: string | number | boolean | undefined;
68828
+ mobileBreakpoint?: number | DisplayBreakpoint | undefined;
68827
68829
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
68828
68830
  modelValue?: any;
68829
68831
  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;
@@ -68847,6 +68849,7 @@ declare const VDateInput: {
68847
68849
  modelModifiers?: Record<string, boolean> | undefined;
68848
68850
  firstDayOfWeek?: string | number | undefined;
68849
68851
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
68852
+ displayFormat?: string | Function | undefined;
68850
68853
  } & {
68851
68854
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
68852
68855
  message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
@@ -68905,8 +68908,12 @@ declare const VDateInput: {
68905
68908
  "v-slot:actions"?: false | ((arg: VDateInputActionsSlot) => vue.VNodeChild) | undefined;
68906
68909
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
68907
68910
  } & {
68911
+ onCancel?: (() => any) | undefined;
68908
68912
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
68913
+ onSave?: ((value: string) => any) | undefined;
68909
68914
  }, any, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
68915
+ save: (value: string) => true;
68916
+ cancel: () => true;
68910
68917
  'update:modelValue': (val: string) => true;
68911
68918
  }, vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & {
68912
68919
  flat: boolean;
@@ -68922,6 +68929,7 @@ declare const VDateInput: {
68922
68929
  style: vue.StyleValue;
68923
68930
  title: string;
68924
68931
  autofocus: boolean;
68932
+ mobile: boolean | null;
68925
68933
  disabled: boolean;
68926
68934
  readonly: boolean | null;
68927
68935
  tag: string;
@@ -68984,6 +68992,7 @@ declare const VDateInput: {
68984
68992
  theme?: string | undefined;
68985
68993
  elevation?: string | number | undefined;
68986
68994
  counter?: string | number | boolean | undefined;
68995
+ mobileBreakpoint?: number | DisplayBreakpoint | undefined;
68987
68996
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
68988
68997
  modelValue?: any;
68989
68998
  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;
@@ -69007,6 +69016,7 @@ declare const VDateInput: {
69007
69016
  modelModifiers?: Record<string, boolean> | undefined;
69008
69017
  firstDayOfWeek?: string | number | undefined;
69009
69018
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
69019
+ displayFormat?: string | Function | undefined;
69010
69020
  } & {
69011
69021
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
69012
69022
  message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
@@ -69065,7 +69075,9 @@ declare const VDateInput: {
69065
69075
  "v-slot:actions"?: false | ((arg: VDateInputActionsSlot) => vue.VNodeChild) | undefined;
69066
69076
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
69067
69077
  } & {
69078
+ onCancel?: (() => any) | undefined;
69068
69079
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
69080
+ onSave?: ((value: string) => any) | undefined;
69069
69081
  }, {
69070
69082
  flat: boolean;
69071
69083
  reverse: boolean;
@@ -69080,6 +69092,7 @@ declare const VDateInput: {
69080
69092
  style: vue.StyleValue;
69081
69093
  title: string;
69082
69094
  autofocus: boolean;
69095
+ mobile: boolean | null;
69083
69096
  disabled: boolean;
69084
69097
  readonly: boolean | null;
69085
69098
  tag: string;
@@ -69157,6 +69170,7 @@ declare const VDateInput: {
69157
69170
  style: vue.StyleValue;
69158
69171
  title: string;
69159
69172
  autofocus: boolean;
69173
+ mobile: boolean | null;
69160
69174
  disabled: boolean;
69161
69175
  readonly: boolean | null;
69162
69176
  tag: string;
@@ -69219,6 +69233,7 @@ declare const VDateInput: {
69219
69233
  theme?: string | undefined;
69220
69234
  elevation?: string | number | undefined;
69221
69235
  counter?: string | number | boolean | undefined;
69236
+ mobileBreakpoint?: number | DisplayBreakpoint | undefined;
69222
69237
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
69223
69238
  modelValue?: any;
69224
69239
  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;
@@ -69242,6 +69257,7 @@ declare const VDateInput: {
69242
69257
  modelModifiers?: Record<string, boolean> | undefined;
69243
69258
  firstDayOfWeek?: string | number | undefined;
69244
69259
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
69260
+ displayFormat?: string | Function | undefined;
69245
69261
  } & {
69246
69262
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
69247
69263
  message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
@@ -69300,7 +69316,9 @@ declare const VDateInput: {
69300
69316
  "v-slot:actions"?: false | ((arg: VDateInputActionsSlot) => vue.VNodeChild) | undefined;
69301
69317
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
69302
69318
  } & {
69319
+ onCancel?: (() => any) | undefined;
69303
69320
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
69321
+ onSave?: ((value: string) => any) | undefined;
69304
69322
  }, any, {}, {}, {}, {
69305
69323
  flat: boolean;
69306
69324
  reverse: boolean;
@@ -69315,6 +69333,7 @@ declare const VDateInput: {
69315
69333
  style: vue.StyleValue;
69316
69334
  title: string;
69317
69335
  autofocus: boolean;
69336
+ mobile: boolean | null;
69318
69337
  disabled: boolean;
69319
69338
  readonly: boolean | null;
69320
69339
  tag: string;
@@ -69371,6 +69390,7 @@ declare const VDateInput: {
69371
69390
  style: vue.StyleValue;
69372
69391
  title: string;
69373
69392
  autofocus: boolean;
69393
+ mobile: boolean | null;
69374
69394
  disabled: boolean;
69375
69395
  readonly: boolean | null;
69376
69396
  tag: string;
@@ -69433,6 +69453,7 @@ declare const VDateInput: {
69433
69453
  theme?: string | undefined;
69434
69454
  elevation?: string | number | undefined;
69435
69455
  counter?: string | number | boolean | undefined;
69456
+ mobileBreakpoint?: number | DisplayBreakpoint | undefined;
69436
69457
  'onUpdate:focused'?: ((args_0: boolean) => void) | undefined;
69437
69458
  modelValue?: any;
69438
69459
  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;
@@ -69456,6 +69477,7 @@ declare const VDateInput: {
69456
69477
  modelModifiers?: Record<string, boolean> | undefined;
69457
69478
  firstDayOfWeek?: string | number | undefined;
69458
69479
  allowedDates?: unknown[] | ((date: unknown) => boolean) | undefined;
69480
+ displayFormat?: string | Function | undefined;
69459
69481
  } & {
69460
69482
  $children?: vue.VNodeChild | (() => vue.VNodeChild) | {
69461
69483
  message?: ((arg: VMessageSlot) => vue.VNodeChild) | undefined;
@@ -69514,8 +69536,12 @@ declare const VDateInput: {
69514
69536
  "v-slot:actions"?: false | ((arg: VDateInputActionsSlot) => vue.VNodeChild) | undefined;
69515
69537
  "v-slot:default"?: false | (() => vue.VNodeChild) | undefined;
69516
69538
  } & {
69539
+ onCancel?: (() => any) | undefined;
69517
69540
  "onUpdate:modelValue"?: ((val: string) => any) | undefined;
69541
+ onSave?: ((value: string) => any) | undefined;
69518
69542
  }, any, unknown, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {
69543
+ save: (value: string) => true;
69544
+ cancel: () => true;
69519
69545
  'update:modelValue': (val: string) => true;
69520
69546
  }, string, {
69521
69547
  flat: boolean;
@@ -69531,6 +69557,7 @@ declare const VDateInput: {
69531
69557
  style: vue.StyleValue;
69532
69558
  title: string;
69533
69559
  autofocus: boolean;
69560
+ mobile: boolean | null;
69534
69561
  disabled: boolean;
69535
69562
  readonly: boolean | null;
69536
69563
  tag: string;
@@ -69803,6 +69830,12 @@ declare const VDateInput: {
69803
69830
  type: StringConstructor;
69804
69831
  default: string;
69805
69832
  };
69833
+ mobile: {
69834
+ type: PropType<boolean | null>;
69835
+ default: boolean;
69836
+ };
69837
+ mobileBreakpoint: PropType<number | DisplayBreakpoint>;
69838
+ displayFormat: (FunctionConstructor | StringConstructor)[];
69806
69839
  hideActions: BooleanConstructor;
69807
69840
  location: {
69808
69841
  type: PropType<StrategyProps["location"]>;
@@ -70024,6 +70057,12 @@ declare const VDateInput: {
70024
70057
  type: StringConstructor;
70025
70058
  default: string;
70026
70059
  };
70060
+ mobile: {
70061
+ type: PropType<boolean | null>;
70062
+ default: boolean;
70063
+ };
70064
+ mobileBreakpoint: PropType<number | DisplayBreakpoint>;
70065
+ displayFormat: (FunctionConstructor | StringConstructor)[];
70027
70066
  hideActions: BooleanConstructor;
70028
70067
  location: {
70029
70068
  type: PropType<StrategyProps["location"]>;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.18-master.2025-03-24
2
+ * Vuetify v3.7.18-master.2025-03-25
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -28252,11 +28252,13 @@ const VCalendar = genericComponent()({
28252
28252
  // Types
28253
28253
 
28254
28254
  const makeVDateInputProps = propsFactory({
28255
+ displayFormat: [Function, String],
28255
28256
  hideActions: Boolean,
28256
28257
  location: {
28257
28258
  type: String,
28258
28259
  default: 'bottom start'
28259
28260
  },
28261
+ ...makeDisplayProps(),
28260
28262
  ...makeFocusProps(),
28261
28263
  ...makeVConfirmEditProps(),
28262
28264
  ...makeVTextFieldProps({
@@ -28272,16 +28274,22 @@ const VDateInput = genericComponent()({
28272
28274
  name: 'VDateInput',
28273
28275
  props: makeVDateInputProps(),
28274
28276
  emits: {
28277
+ save: value => true,
28278
+ cancel: () => true,
28275
28279
  'update:modelValue': val => true
28276
28280
  },
28277
28281
  setup(props, _ref) {
28278
28282
  let {
28283
+ emit,
28279
28284
  slots
28280
28285
  } = _ref;
28281
28286
  const {
28282
28287
  t
28283
28288
  } = useLocale();
28284
28289
  const adapter = useDate();
28290
+ const {
28291
+ mobile
28292
+ } = useDisplay();
28285
28293
  const {
28286
28294
  isFocused,
28287
28295
  focus,
@@ -28289,7 +28297,14 @@ const VDateInput = genericComponent()({
28289
28297
  } = useFocus(props);
28290
28298
  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);
28291
28299
  const menu = shallowRef(false);
28300
+ const isEditingInput = shallowRef(false);
28292
28301
  const vDateInputRef = ref();
28302
+ function format(date) {
28303
+ if (typeof props.displayFormat === 'function') {
28304
+ return props.displayFormat(date);
28305
+ }
28306
+ return adapter.format(date, props.displayFormat ?? 'keyboardDate');
28307
+ }
28293
28308
  const display = computed(() => {
28294
28309
  const value = wrapInArray(model.value);
28295
28310
  if (!value.length) return null;
@@ -28299,11 +28314,22 @@ const VDateInput = genericComponent()({
28299
28314
  if (props.multiple === 'range') {
28300
28315
  const start = value[0];
28301
28316
  const end = value[value.length - 1];
28302
- return adapter.isValid(start) && adapter.isValid(end) ? `${adapter.format(adapter.date(start), 'keyboardDate')} - ${adapter.format(adapter.date(end), 'keyboardDate')}` : '';
28317
+ if (!adapter.isValid(start) || !adapter.isValid(end)) return '';
28318
+ return `${format(adapter.date(start))} - ${format(adapter.date(end))}`;
28303
28319
  }
28304
- return adapter.isValid(model.value) ? adapter.format(adapter.date(model.value), 'keyboardDate') : '';
28320
+ return adapter.isValid(model.value) ? format(adapter.date(model.value)) : '';
28321
+ });
28322
+ const inputmode = computed(() => {
28323
+ if (!mobile.value) return undefined;
28324
+ if (isEditingInput.value) return 'text';
28325
+ return 'none';
28305
28326
  });
28306
28327
  const isInteractive = computed(() => !props.disabled && !props.readonly);
28328
+ const isReadonly = computed(() => !(mobile.value && isEditingInput.value) && props.readonly);
28329
+ watch(menu, val => {
28330
+ if (val) return;
28331
+ isEditingInput.value = false;
28332
+ });
28307
28333
  function onKeydown(e) {
28308
28334
  if (e.key !== 'Enter') return;
28309
28335
  if (!menu.value || !isFocused.value) {
@@ -28316,15 +28342,38 @@ const VDateInput = genericComponent()({
28316
28342
  function onClick(e) {
28317
28343
  e.preventDefault();
28318
28344
  e.stopPropagation();
28319
- menu.value = true;
28345
+ if (menu.value && mobile.value) {
28346
+ isEditingInput.value = true;
28347
+ } else {
28348
+ menu.value = true;
28349
+ }
28350
+ }
28351
+ function onCancel() {
28352
+ emit('cancel');
28353
+ menu.value = false;
28354
+ isEditingInput.value = false;
28320
28355
  }
28321
- function onSave() {
28356
+ function onSave(value) {
28357
+ emit('save', value);
28322
28358
  menu.value = false;
28323
28359
  }
28324
- function onUpdateModel(value) {
28360
+ function onUpdateDisplayModel(value) {
28325
28361
  if (value != null) return;
28326
28362
  model.value = null;
28327
28363
  }
28364
+ function onUpdateMenuModel(isMenuOpen) {
28365
+ if (isMenuOpen) return;
28366
+ isEditingInput.value = false;
28367
+ }
28368
+ function onBlur() {
28369
+ blur();
28370
+
28371
+ // When in mobile mode and editing is done (due to keyboard dismissal), close the menu
28372
+ if (mobile.value && isEditingInput.value && !isFocused.value) {
28373
+ menu.value = false;
28374
+ isEditingInput.value = false;
28375
+ }
28376
+ }
28328
28377
  useRender(() => {
28329
28378
  const confirmEditProps = VConfirmEdit.filterProps(props);
28330
28379
  const datePickerProps = VDatePicker.filterProps(omit(props, ['active', 'location', 'rounded']));
@@ -28335,18 +28384,20 @@ const VDateInput = genericComponent()({
28335
28384
  "class": props.class,
28336
28385
  "style": props.style,
28337
28386
  "modelValue": display.value,
28387
+ "inputmode": inputmode.value,
28388
+ "readonly": isReadonly.value,
28338
28389
  "onKeydown": isInteractive.value ? onKeydown : undefined,
28339
28390
  "focused": menu.value || isFocused.value,
28340
28391
  "onFocus": focus,
28341
- "onBlur": blur,
28392
+ "onBlur": onBlur,
28342
28393
  "onClick:control": isInteractive.value ? onClick : undefined,
28343
28394
  "onClick:prepend": isInteractive.value ? onClick : undefined,
28344
- "onUpdate:modelValue": onUpdateModel
28395
+ "onUpdate:modelValue": onUpdateDisplayModel
28345
28396
  }), {
28346
28397
  ...slots,
28347
28398
  default: () => createVNode(Fragment, null, [createVNode(VMenu, {
28348
28399
  "modelValue": menu.value,
28349
- "onUpdate:modelValue": $event => menu.value = $event,
28400
+ "onUpdate:modelValue": [$event => menu.value = $event, onUpdateMenuModel],
28350
28401
  "activator": "parent",
28351
28402
  "min-width": "0",
28352
28403
  "eager": isFocused.value,
@@ -28358,7 +28409,7 @@ const VDateInput = genericComponent()({
28358
28409
  "modelValue": model.value,
28359
28410
  "onUpdate:modelValue": $event => model.value = $event,
28360
28411
  "onSave": onSave,
28361
- "onCancel": () => menu.value = false
28412
+ "onCancel": onCancel
28362
28413
  }), {
28363
28414
  default: _ref2 => {
28364
28415
  let {
@@ -28368,16 +28419,21 @@ const VDateInput = genericComponent()({
28368
28419
  cancel,
28369
28420
  isPristine
28370
28421
  } = _ref2;
28422
+ function onUpdateModel(value) {
28423
+ if (!props.hideActions) {
28424
+ proxyModel.value = value;
28425
+ } else {
28426
+ model.value = value;
28427
+ if (!props.multiple) {
28428
+ menu.value = false;
28429
+ }
28430
+ }
28431
+ emit('save', value);
28432
+ vDateInputRef.value?.blur();
28433
+ }
28371
28434
  return createVNode(VDatePicker, mergeProps(datePickerProps, {
28372
28435
  "modelValue": props.hideActions ? model.value : proxyModel.value,
28373
- "onUpdate:modelValue": val => {
28374
- if (!props.hideActions) {
28375
- proxyModel.value = val;
28376
- } else {
28377
- model.value = val;
28378
- if (!props.multiple) menu.value = false;
28379
- }
28380
- },
28436
+ "onUpdate:modelValue": value => onUpdateModel(value),
28381
28437
  "onMousedown": e => e.preventDefault()
28382
28438
  }), {
28383
28439
  actions: !props.hideActions ? () => slots.actions?.({
@@ -31095,7 +31151,7 @@ function createVuetify$1() {
31095
31151
  goTo
31096
31152
  };
31097
31153
  }
31098
- const version$1 = "3.7.18-master.2025-03-24";
31154
+ const version$1 = "3.7.18-master.2025-03-25";
31099
31155
  createVuetify$1.version = version$1;
31100
31156
 
31101
31157
  // Vue's inject() can only be used in setup
@@ -31348,7 +31404,7 @@ var index = /*#__PURE__*/Object.freeze({
31348
31404
 
31349
31405
  /* eslint-disable local-rules/sort-imports */
31350
31406
 
31351
- const version = "3.7.18-master.2025-03-24";
31407
+ const version = "3.7.18-master.2025-03-25";
31352
31408
 
31353
31409
  /* eslint-disable local-rules/sort-imports */
31354
31410