@vuetify/nightly 3.9.0-master.2025-07-10 → 3.9.0-master.2025-07-12

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 (58) hide show
  1. package/CHANGELOG.md +9 -3
  2. package/dist/json/attributes.json +1672 -1628
  3. package/dist/json/importMap-labs.json +18 -18
  4. package/dist/json/importMap.json +180 -180
  5. package/dist/json/tags.json +11 -0
  6. package/dist/json/web-types.json +3410 -3088
  7. package/dist/vuetify-labs.cjs +42 -27
  8. package/dist/vuetify-labs.css +3015 -3015
  9. package/dist/vuetify-labs.d.ts +845 -297
  10. package/dist/vuetify-labs.esm.js +42 -27
  11. package/dist/vuetify-labs.esm.js.map +1 -1
  12. package/dist/vuetify-labs.js +42 -27
  13. package/dist/vuetify-labs.min.css +2 -2
  14. package/dist/vuetify.cjs +34 -24
  15. package/dist/vuetify.cjs.map +1 -1
  16. package/dist/vuetify.css +3254 -3254
  17. package/dist/vuetify.d.ts +591 -220
  18. package/dist/vuetify.esm.js +34 -24
  19. package/dist/vuetify.esm.js.map +1 -1
  20. package/dist/vuetify.js +34 -24
  21. package/dist/vuetify.js.map +1 -1
  22. package/dist/vuetify.min.css +2 -2
  23. package/dist/vuetify.min.js +15 -15
  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 +7 -3
  29. package/lib/components/VField/VField.js.map +1 -1
  30. package/lib/components/VField/VFieldLabel.js +1 -2
  31. package/lib/components/VField/VFieldLabel.js.map +1 -1
  32. package/lib/components/VFileInput/VFileInput.d.ts +13 -0
  33. package/lib/components/VFileInput/VFileInput.js +3 -1
  34. package/lib/components/VFileInput/VFileInput.js.map +1 -1
  35. package/lib/components/VInput/VInput.d.ts +2 -1
  36. package/lib/components/VInput/VInput.js +15 -14
  37. package/lib/components/VInput/VInput.js.map +1 -1
  38. package/lib/components/VNumberInput/VNumberInput.d.ts +116 -36
  39. package/lib/components/VSelect/VSelect.d.ts +121 -36
  40. package/lib/components/VTextField/VTextField.d.ts +40 -9
  41. package/lib/components/VTextField/VTextField.js +2 -0
  42. package/lib/components/VTextField/VTextField.js.map +1 -1
  43. package/lib/components/VTextarea/VTextarea.d.ts +13 -0
  44. package/lib/components/VTextarea/VTextarea.js +3 -1
  45. package/lib/components/VTextarea/VTextarea.js.map +1 -1
  46. package/lib/composables/dateFormat.js +1 -1
  47. package/lib/composables/dateFormat.js.map +1 -1
  48. package/lib/entry-bundler.js +1 -1
  49. package/lib/framework.d.ts +66 -66
  50. package/lib/framework.js +1 -1
  51. package/lib/labs/VColorInput/VColorInput.d.ts +13 -0
  52. package/lib/labs/VDateInput/VDateInput.d.ts +145 -44
  53. package/lib/labs/VDateInput/VDateInput.js +4 -1
  54. package/lib/labs/VDateInput/VDateInput.js.map +1 -1
  55. package/lib/labs/VMaskInput/VMaskInput.d.ts +121 -36
  56. package/lib/labs/VMaskInput/VMaskInput.js +4 -2
  57. package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
  58. package/package.json +1 -1
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.9.0-master.2025-07-10
2
+ * Vuetify v3.9.0-master.2025-07-12
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
@@ -11991,8 +11992,7 @@
11991
11992
  "class": vue.normalizeClass(['v-field-label', {
11992
11993
  'v-field-label--floating': props.floating
11993
11994
  }, props.class]),
11994
- "style": vue.normalizeStyle(props.style),
11995
- "aria-hidden": props.floating || undefined
11995
+ "style": vue.normalizeStyle(props.style)
11996
11996
  }, slots));
11997
11997
  return {};
11998
11998
  }
@@ -12016,6 +12016,7 @@
12016
12016
  },
12017
12017
  color: String,
12018
12018
  baseColor: String,
12019
+ details: Boolean,
12019
12020
  dirty: Boolean,
12020
12021
  disabled: {
12021
12022
  type: Boolean,
@@ -12087,7 +12088,7 @@
12087
12088
  const hasFloatingLabel = vue.toRef(() => !props.singleLine && hasLabel.value);
12088
12089
  const uid = vue.useId();
12089
12090
  const id = vue.computed(() => props.id || `input-${uid}`);
12090
- const messagesId = vue.toRef(() => `${id.value}-messages`);
12091
+ const messagesId = vue.toRef(() => !props.details ? undefined : `${id.value}-messages`);
12091
12092
  const labelRef = vue.ref();
12092
12093
  const floatingLabelRef = vue.ref();
12093
12094
  const controlRef = vue.ref();
@@ -12212,6 +12213,7 @@
12212
12213
  "class": vue.normalizeClass([textColorClasses.value]),
12213
12214
  "floating": true,
12214
12215
  "for": id.value,
12216
+ "aria-hidden": !isActive.value,
12215
12217
  "style": vue.normalizeStyle(textColorStyles.value)
12216
12218
  }, {
12217
12219
  default: () => [label()]
@@ -12282,7 +12284,8 @@
12282
12284
  }, [vue.createVNode(VFieldLabel, {
12283
12285
  "ref": floatingLabelRef,
12284
12286
  "floating": true,
12285
- "for": id.value
12287
+ "for": id.value,
12288
+ "aria-hidden": !isActive.value
12286
12289
  }, {
12287
12290
  default: () => [label()]
12288
12291
  })]), vue.createElementVNode("div", {
@@ -12290,7 +12293,8 @@
12290
12293
  }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && vue.createVNode(VFieldLabel, {
12291
12294
  "ref": floatingLabelRef,
12292
12295
  "floating": true,
12293
- "for": id.value
12296
+ "for": id.value,
12297
+ "aria-hidden": !isActive.value
12294
12298
  }, {
12295
12299
  default: () => [label()]
12296
12300
  })])]);
@@ -12442,6 +12446,7 @@
12442
12446
  isDirty,
12443
12447
  isReadonly,
12444
12448
  isValid,
12449
+ hasDetails,
12445
12450
  reset
12446
12451
  } = _ref2;
12447
12452
  return vue.createVNode(VField, vue.mergeProps({
@@ -12458,6 +12463,7 @@
12458
12463
  "dirty": isDirty.value || props.dirty,
12459
12464
  "disabled": isDisabled.value,
12460
12465
  "focused": isFocused.value,
12466
+ "details": hasDetails.value,
12461
12467
  "error": isValid.value === false
12462
12468
  }), {
12463
12469
  ...slots,
@@ -24279,7 +24285,8 @@
24279
24285
  isDisabled,
24280
24286
  isDirty,
24281
24287
  isReadonly,
24282
- isValid
24288
+ isValid,
24289
+ hasDetails
24283
24290
  } = _ref3;
24284
24291
  return vue.createVNode(VField, vue.mergeProps({
24285
24292
  "ref": vFieldRef,
@@ -24295,6 +24302,7 @@
24295
24302
  "dirty": isDirty.value || props.dirty,
24296
24303
  "disabled": isDisabled.value,
24297
24304
  "focused": isFocused.value,
24305
+ "details": hasDetails.value,
24298
24306
  "error": isValid.value === false,
24299
24307
  "onDragover": onDragover,
24300
24308
  "onDrop": onDrop
@@ -29052,7 +29060,8 @@
29052
29060
  isDisabled,
29053
29061
  isDirty,
29054
29062
  isReadonly,
29055
- isValid
29063
+ isValid,
29064
+ hasDetails
29056
29065
  } = _ref2;
29057
29066
  return vue.createVNode(VField, vue.mergeProps({
29058
29067
  "ref": vFieldRef,
@@ -29071,6 +29080,7 @@
29071
29080
  "dirty": isDirty.value || props.dirty,
29072
29081
  "disabled": isDisabled.value,
29073
29082
  "focused": isFocused.value,
29083
+ "details": hasDetails.value,
29074
29084
  "error": isValid.value === false
29075
29085
  }), {
29076
29086
  ...slots,
@@ -31441,7 +31451,7 @@
31441
31451
  return !!parseDate(text);
31442
31452
  }
31443
31453
  function formatDate(value) {
31444
- const parts = adapter.toISO(value).split('-');
31454
+ const parts = adapter.toISO(value).split('T')[0].split('-');
31445
31455
  return currentFormat.value.order.split('').map(sign => parts['ymd'.indexOf(sign)]).join(currentFormat.value.separator);
31446
31456
  }
31447
31457
  return {
@@ -31457,7 +31467,10 @@
31457
31467
  // Types
31458
31468
 
31459
31469
  const makeVDateInputProps = propsFactory({
31460
- displayFormat: [Function, String],
31470
+ displayFormat: {
31471
+ type: [Function, String],
31472
+ default: undefined
31473
+ },
31461
31474
  location: {
31462
31475
  type: String,
31463
31476
  default: 'bottom start'
@@ -32396,6 +32409,7 @@
32396
32409
  }
32397
32410
  return val;
32398
32411
  });
32412
+ const validationValue = vue.toRef(() => returnMaskedValue.value ? maskText(model.value) : unmaskText(model.value));
32399
32413
  vue.onBeforeMount(() => {
32400
32414
  if (props.returnMaskedValue) {
32401
32415
  emit('update:modelValue', model.value);
@@ -32406,7 +32420,8 @@
32406
32420
  return vue.createVNode(VTextField, vue.mergeProps(textFieldProps, {
32407
32421
  "modelValue": model.value,
32408
32422
  "onUpdate:modelValue": $event => model.value = $event,
32409
- "ref": vTextFieldRef
32423
+ "ref": vTextFieldRef,
32424
+ "validationValue": validationValue.value
32410
32425
  }), {
32411
32426
  ...slots
32412
32427
  });
@@ -33686,7 +33701,7 @@
33686
33701
  };
33687
33702
  });
33688
33703
  }
33689
- const version$1 = "3.9.0-master.2025-07-10";
33704
+ const version$1 = "3.9.0-master.2025-07-12";
33690
33705
  createVuetify$1.version = version$1;
33691
33706
 
33692
33707
  // Vue's inject() can only be used in setup
@@ -33984,7 +33999,7 @@
33984
33999
 
33985
34000
  /* eslint-disable local-rules/sort-imports */
33986
34001
 
33987
- const version = "3.9.0-master.2025-07-10";
34002
+ const version = "3.9.0-master.2025-07-12";
33988
34003
 
33989
34004
  /* eslint-disable local-rules/sort-imports */
33990
34005