@vuetify/nightly 3.9.0-master.2025-07-11 → 3.9.0-master.2025-07-13

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 (56) hide show
  1. package/CHANGELOG.md +8 -3
  2. package/dist/json/attributes.json +2382 -2338
  3. package/dist/json/importMap-labs.json +14 -14
  4. package/dist/json/importMap.json +158 -158
  5. package/dist/json/tags.json +11 -0
  6. package/dist/json/web-types.json +4453 -4131
  7. package/dist/vuetify-labs.cjs +49 -28
  8. package/dist/vuetify-labs.css +5886 -5886
  9. package/dist/vuetify-labs.d.ts +831 -283
  10. package/dist/vuetify-labs.esm.js +49 -28
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +49 -28
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +28 -20
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3262 -3262
  17. package/dist/vuetify.d.ts +577 -206
  18. package/dist/vuetify.esm.js +28 -20
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +28 -20
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +14 -14
  24. package/dist/vuetify.min.js.map +1 -1
  25. package/lib/components/VAutocomplete/VAutocomplete.d.ts +121 -36
  26. package/lib/components/VCombobox/VCombobox.d.ts +121 -36
  27. package/lib/components/VField/VField.d.ts +13 -0
  28. package/lib/components/VField/VField.js +2 -1
  29. package/lib/components/VField/VField.js.map +1 -1
  30. package/lib/components/VFileInput/VFileInput.d.ts +13 -0
  31. package/lib/components/VFileInput/VFileInput.js +3 -1
  32. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  33. package/lib/components/VInput/VInput.d.ts +2 -1
  34. package/lib/components/VInput/VInput.js +15 -14
  35. package/lib/components/VInput/VInput.js.map +1 -1
  36. package/lib/components/VNumberInput/VNumberInput.d.ts +116 -36
  37. package/lib/components/VSelect/VSelect.d.ts +121 -36
  38. package/lib/components/VTextField/VTextField.d.ts +40 -9
  39. package/lib/components/VTextField/VTextField.js +2 -0
  40. package/lib/components/VTextField/VTextField.js.map +1 -1
  41. package/lib/components/VTextarea/VTextarea.d.ts +13 -0
  42. package/lib/components/VTextarea/VTextarea.js +3 -1
  43. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  44. package/lib/entry-bundler.js +1 -1
  45. package/lib/framework.d.ts +52 -52
  46. package/lib/framework.js +1 -1
  47. package/lib/labs/VColorInput/VColorInput.d.ts +13 -0
  48. package/lib/labs/VColorInput/VColorInput.js +14 -6
  49. package/lib/labs/VColorInput/VColorInput.js.map +1 -1
  50. package/lib/labs/VDateInput/VDateInput.d.ts +145 -44
  51. package/lib/labs/VDateInput/VDateInput.js +4 -1
  52. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  53. package/lib/labs/VMaskInput/VMaskInput.d.ts +121 -36
  54. package/lib/labs/VMaskInput/VMaskInput.js +4 -2
  55. package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
  56. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.0-master.2025-07-11
2
+ * Vuetify v3.9.0-master.2025-07-13
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -7249,7 +7249,6 @@
7249
7249
  } = useInputIcon(props);
7250
7250
  const uid = vue.useId();
7251
7251
  const id = vue.computed(() => props.id || `input-${uid}`);
7252
- const messagesId = vue.computed(() => `${id.value}-messages`);
7253
7252
  const {
7254
7253
  errorMessages,
7255
7254
  isDirty,
@@ -7263,6 +7262,18 @@
7263
7262
  validate,
7264
7263
  validationClasses
7265
7264
  } = useValidation(props, 'v-input', id);
7265
+ const messages = vue.computed(() => {
7266
+ if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {
7267
+ return errorMessages.value;
7268
+ } else if (props.hint && (props.persistentHint || props.focused)) {
7269
+ return props.hint;
7270
+ } else {
7271
+ return props.messages;
7272
+ }
7273
+ });
7274
+ const hasMessages = vue.toRef(() => messages.value.length > 0);
7275
+ const hasDetails = vue.toRef(() => !props.hideDetails || props.hideDetails === 'auto' && (hasMessages.value || !!slots.details));
7276
+ const messagesId = vue.computed(() => hasDetails.value ? `${id.value}-messages` : undefined);
7266
7277
  const slotProps = vue.computed(() => ({
7267
7278
  id,
7268
7279
  messagesId,
@@ -7272,6 +7283,7 @@
7272
7283
  isPristine,
7273
7284
  isValid,
7274
7285
  isValidating,
7286
+ hasDetails,
7275
7287
  reset,
7276
7288
  resetValidation,
7277
7289
  validate
@@ -7283,20 +7295,9 @@
7283
7295
  if (!props.iconColor) return undefined;
7284
7296
  return props.iconColor === true ? color.value : props.iconColor;
7285
7297
  });
7286
- const messages = vue.computed(() => {
7287
- if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {
7288
- return errorMessages.value;
7289
- } else if (props.hint && (props.persistentHint || props.focused)) {
7290
- return props.hint;
7291
- } else {
7292
- return props.messages;
7293
- }
7294
- });
7295
7298
  useRender(() => {
7296
7299
  const hasPrepend = !!(slots.prepend || props.prependIcon);
7297
7300
  const hasAppend = !!(slots.append || props.appendIcon);
7298
- const hasMessages = messages.value.length > 0;
7299
- const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
7300
7301
  return vue.createElementVNode("div", {
7301
7302
  "class": vue.normalizeClass(['v-input', `v-input--${props.direction}`, {
7302
7303
  'v-input--center-affix': props.centerAffix,
@@ -7321,13 +7322,13 @@
7321
7322
  "key": "append-icon",
7322
7323
  "name": "append",
7323
7324
  "color": iconColor.value
7324
- }, null), slots.append?.(slotProps.value)]), hasDetails && vue.createElementVNode("div", {
7325
+ }, null), slots.append?.(slotProps.value)]), hasDetails.value && vue.createElementVNode("div", {
7325
7326
  "id": messagesId.value,
7326
7327
  "class": "v-input__details",
7327
7328
  "role": "alert",
7328
7329
  "aria-live": "polite"
7329
7330
  }, [vue.createVNode(VMessages, {
7330
- "active": hasMessages,
7331
+ "active": hasMessages.value,
7331
7332
  "messages": messages.value
7332
7333
  }, {
7333
7334
  message: slots.message
@@ -12015,6 +12016,7 @@
12015
12016
  },
12016
12017
  color: String,
12017
12018
  baseColor: String,
12019
+ details: Boolean,
12018
12020
  dirty: Boolean,
12019
12021
  disabled: {
12020
12022
  type: Boolean,
@@ -12086,7 +12088,7 @@
12086
12088
  const hasFloatingLabel = vue.toRef(() => !props.singleLine && hasLabel.value);
12087
12089
  const uid = vue.useId();
12088
12090
  const id = vue.computed(() => props.id || `input-${uid}`);
12089
- const messagesId = vue.toRef(() => `${id.value}-messages`);
12091
+ const messagesId = vue.toRef(() => !props.details ? undefined : `${id.value}-messages`);
12090
12092
  const labelRef = vue.ref();
12091
12093
  const floatingLabelRef = vue.ref();
12092
12094
  const controlRef = vue.ref();
@@ -12444,6 +12446,7 @@
12444
12446
  isDirty,
12445
12447
  isReadonly,
12446
12448
  isValid,
12449
+ hasDetails,
12447
12450
  reset
12448
12451
  } = _ref2;
12449
12452
  return vue.createVNode(VField, vue.mergeProps({
@@ -12460,6 +12463,7 @@
12460
12463
  "dirty": isDirty.value || props.dirty,
12461
12464
  "disabled": isDisabled.value,
12462
12465
  "focused": isFocused.value,
12466
+ "details": hasDetails.value,
12463
12467
  "error": isValid.value === false
12464
12468
  }), {
12465
12469
  ...slots,
@@ -24281,7 +24285,8 @@
24281
24285
  isDisabled,
24282
24286
  isDirty,
24283
24287
  isReadonly,
24284
- isValid
24288
+ isValid,
24289
+ hasDetails
24285
24290
  } = _ref3;
24286
24291
  return vue.createVNode(VField, vue.mergeProps({
24287
24292
  "ref": vFieldRef,
@@ -24297,6 +24302,7 @@
24297
24302
  "dirty": isDirty.value || props.dirty,
24298
24303
  "disabled": isDisabled.value,
24299
24304
  "focused": isFocused.value,
24305
+ "details": hasDetails.value,
24300
24306
  "error": isValid.value === false,
24301
24307
  "onDragover": onDragover,
24302
24308
  "onDrop": onDrop
@@ -29054,7 +29060,8 @@
29054
29060
  isDisabled,
29055
29061
  isDirty,
29056
29062
  isReadonly,
29057
- isValid
29063
+ isValid,
29064
+ hasDetails
29058
29065
  } = _ref2;
29059
29066
  return vue.createVNode(VField, vue.mergeProps({
29060
29067
  "ref": vFieldRef,
@@ -29073,6 +29080,7 @@
29073
29080
  "dirty": isDirty.value || props.dirty,
29074
29081
  "disabled": isDisabled.value,
29075
29082
  "focused": isFocused.value,
29083
+ "details": hasDetails.value,
29076
29084
  "error": isValid.value === false
29077
29085
  }), {
29078
29086
  ...slots,
@@ -31274,6 +31282,9 @@
31274
31282
  function onSave() {
31275
31283
  menu.value = false;
31276
31284
  }
31285
+ function onCancel() {
31286
+ menu.value = false;
31287
+ }
31277
31288
  useRender(() => {
31278
31289
  const confirmEditProps = VConfirmEdit.filterProps(props);
31279
31290
  const colorPickerProps = VColorPicker.filterProps(omit(props, ['active', 'color']));
@@ -31309,7 +31320,8 @@
31309
31320
  default: () => [vue.createVNode(VConfirmEdit, vue.mergeProps(confirmEditProps, {
31310
31321
  "modelValue": model.value,
31311
31322
  "onUpdate:modelValue": $event => model.value = $event,
31312
- "onSave": onSave
31323
+ "onSave": onSave,
31324
+ "onCancel": onCancel
31313
31325
  }), {
31314
31326
  default: _ref2 => {
31315
31327
  let {
@@ -31319,12 +31331,16 @@
31319
31331
  cancel,
31320
31332
  isPristine
31321
31333
  } = _ref2;
31334
+ function onUpdateModel(value) {
31335
+ if (!props.hideActions) {
31336
+ proxyModel.value = value;
31337
+ } else {
31338
+ model.value = value;
31339
+ }
31340
+ }
31322
31341
  return vue.createVNode(VColorPicker, vue.mergeProps(colorPickerProps, {
31323
- "modelValue": proxyModel.value,
31324
- "onUpdate:modelValue": val => {
31325
- proxyModel.value = val;
31326
- model.value = val;
31327
- },
31342
+ "modelValue": props.hideActions ? model.value : proxyModel.value,
31343
+ "onUpdate:modelValue": value => onUpdateModel(value),
31328
31344
  "onMousedown": e => e.preventDefault()
31329
31345
  }), {
31330
31346
  actions: !props.hideActions ? () => slots.actions?.({
@@ -31459,7 +31475,10 @@
31459
31475
  // Types
31460
31476
 
31461
31477
  const makeVDateInputProps = propsFactory({
31462
- displayFormat: [Function, String],
31478
+ displayFormat: {
31479
+ type: [Function, String],
31480
+ default: undefined
31481
+ },
31463
31482
  location: {
31464
31483
  type: String,
31465
31484
  default: 'bottom start'
@@ -32398,6 +32417,7 @@
32398
32417
  }
32399
32418
  return val;
32400
32419
  });
32420
+ const validationValue = vue.toRef(() => returnMaskedValue.value ? maskText(model.value) : unmaskText(model.value));
32401
32421
  vue.onBeforeMount(() => {
32402
32422
  if (props.returnMaskedValue) {
32403
32423
  emit('update:modelValue', model.value);
@@ -32408,7 +32428,8 @@
32408
32428
  return vue.createVNode(VTextField, vue.mergeProps(textFieldProps, {
32409
32429
  "modelValue": model.value,
32410
32430
  "onUpdate:modelValue": $event => model.value = $event,
32411
- "ref": vTextFieldRef
32431
+ "ref": vTextFieldRef,
32432
+ "validationValue": validationValue.value
32412
32433
  }), {
32413
32434
  ...slots
32414
32435
  });
@@ -33688,7 +33709,7 @@
33688
33709
  };
33689
33710
  });
33690
33711
  }
33691
- const version$1 = "3.9.0-master.2025-07-11";
33712
+ const version$1 = "3.9.0-master.2025-07-13";
33692
33713
  createVuetify$1.version = version$1;
33693
33714
 
33694
33715
  // Vue's inject() can only be used in setup
@@ -33986,7 +34007,7 @@
33986
34007
 
33987
34008
  /* eslint-disable local-rules/sort-imports */
33988
34009
 
33989
- const version = "3.9.0-master.2025-07-11";
34010
+ const version = "3.9.0-master.2025-07-13";
33990
34011
 
33991
34012
  /* eslint-disable local-rules/sort-imports */
33992
34013