@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
package/dist/vuetify.cjs CHANGED
@@ -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
  */
@@ -7527,7 +7527,6 @@
7527
7527
  } = useInputIcon(props);
7528
7528
  const uid = vue.useId();
7529
7529
  const id = vue.computed(() => props.id || `input-${uid}`);
7530
- const messagesId = vue.computed(() => `${id.value}-messages`);
7531
7530
  const {
7532
7531
  errorMessages,
7533
7532
  isDirty,
@@ -7541,6 +7540,18 @@
7541
7540
  validate,
7542
7541
  validationClasses
7543
7542
  } = useValidation(props, 'v-input', id);
7543
+ const messages = vue.computed(() => {
7544
+ if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {
7545
+ return errorMessages.value;
7546
+ } else if (props.hint && (props.persistentHint || props.focused)) {
7547
+ return props.hint;
7548
+ } else {
7549
+ return props.messages;
7550
+ }
7551
+ });
7552
+ const hasMessages = vue.toRef(() => messages.value.length > 0);
7553
+ const hasDetails = vue.toRef(() => !props.hideDetails || props.hideDetails === 'auto' && (hasMessages.value || !!slots.details));
7554
+ const messagesId = vue.computed(() => hasDetails.value ? `${id.value}-messages` : undefined);
7544
7555
  const slotProps = vue.computed(() => ({
7545
7556
  id,
7546
7557
  messagesId,
@@ -7550,6 +7561,7 @@
7550
7561
  isPristine,
7551
7562
  isValid,
7552
7563
  isValidating,
7564
+ hasDetails,
7553
7565
  reset,
7554
7566
  resetValidation,
7555
7567
  validate
@@ -7561,20 +7573,9 @@
7561
7573
  if (!props.iconColor) return undefined;
7562
7574
  return props.iconColor === true ? color.value : props.iconColor;
7563
7575
  });
7564
- const messages = vue.computed(() => {
7565
- if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {
7566
- return errorMessages.value;
7567
- } else if (props.hint && (props.persistentHint || props.focused)) {
7568
- return props.hint;
7569
- } else {
7570
- return props.messages;
7571
- }
7572
- });
7573
7576
  useRender(() => {
7574
7577
  const hasPrepend = !!(slots.prepend || props.prependIcon);
7575
7578
  const hasAppend = !!(slots.append || props.appendIcon);
7576
- const hasMessages = messages.value.length > 0;
7577
- const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
7578
7579
  return vue.createElementVNode("div", {
7579
7580
  "class": vue.normalizeClass(['v-input', `v-input--${props.direction}`, {
7580
7581
  'v-input--center-affix': props.centerAffix,
@@ -7599,13 +7600,13 @@
7599
7600
  "key": "append-icon",
7600
7601
  "name": "append",
7601
7602
  "color": iconColor.value
7602
- }, null), slots.append?.(slotProps.value)]), hasDetails && vue.createElementVNode("div", {
7603
+ }, null), slots.append?.(slotProps.value)]), hasDetails.value && vue.createElementVNode("div", {
7603
7604
  "id": messagesId.value,
7604
7605
  "class": "v-input__details",
7605
7606
  "role": "alert",
7606
7607
  "aria-live": "polite"
7607
7608
  }, [vue.createVNode(VMessages, {
7608
- "active": hasMessages,
7609
+ "active": hasMessages.value,
7609
7610
  "messages": messages.value
7610
7611
  }, {
7611
7612
  message: slots.message
@@ -12269,8 +12270,7 @@
12269
12270
  "class": vue.normalizeClass(['v-field-label', {
12270
12271
  'v-field-label--floating': props.floating
12271
12272
  }, props.class]),
12272
- "style": vue.normalizeStyle(props.style),
12273
- "aria-hidden": props.floating || undefined
12273
+ "style": vue.normalizeStyle(props.style)
12274
12274
  }, slots));
12275
12275
  return {};
12276
12276
  }
@@ -12294,6 +12294,7 @@
12294
12294
  },
12295
12295
  color: String,
12296
12296
  baseColor: String,
12297
+ details: Boolean,
12297
12298
  dirty: Boolean,
12298
12299
  disabled: {
12299
12300
  type: Boolean,
@@ -12365,7 +12366,7 @@
12365
12366
  const hasFloatingLabel = vue.toRef(() => !props.singleLine && hasLabel.value);
12366
12367
  const uid = vue.useId();
12367
12368
  const id = vue.computed(() => props.id || `input-${uid}`);
12368
- const messagesId = vue.toRef(() => `${id.value}-messages`);
12369
+ const messagesId = vue.toRef(() => !props.details ? undefined : `${id.value}-messages`);
12369
12370
  const labelRef = vue.ref();
12370
12371
  const floatingLabelRef = vue.ref();
12371
12372
  const controlRef = vue.ref();
@@ -12490,6 +12491,7 @@
12490
12491
  "class": vue.normalizeClass([textColorClasses.value]),
12491
12492
  "floating": true,
12492
12493
  "for": id.value,
12494
+ "aria-hidden": !isActive.value,
12493
12495
  "style": vue.normalizeStyle(textColorStyles.value)
12494
12496
  }, {
12495
12497
  default: () => [label()]
@@ -12560,7 +12562,8 @@
12560
12562
  }, [vue.createVNode(VFieldLabel, {
12561
12563
  "ref": floatingLabelRef,
12562
12564
  "floating": true,
12563
- "for": id.value
12565
+ "for": id.value,
12566
+ "aria-hidden": !isActive.value
12564
12567
  }, {
12565
12568
  default: () => [label()]
12566
12569
  })]), vue.createElementVNode("div", {
@@ -12568,7 +12571,8 @@
12568
12571
  }, null)]), isPlainOrUnderlined.value && hasFloatingLabel.value && vue.createVNode(VFieldLabel, {
12569
12572
  "ref": floatingLabelRef,
12570
12573
  "floating": true,
12571
- "for": id.value
12574
+ "for": id.value,
12575
+ "aria-hidden": !isActive.value
12572
12576
  }, {
12573
12577
  default: () => [label()]
12574
12578
  })])]);
@@ -12720,6 +12724,7 @@
12720
12724
  isDirty,
12721
12725
  isReadonly,
12722
12726
  isValid,
12727
+ hasDetails,
12723
12728
  reset
12724
12729
  } = _ref2;
12725
12730
  return vue.createVNode(VField, vue.mergeProps({
@@ -12736,6 +12741,7 @@
12736
12741
  "dirty": isDirty.value || props.dirty,
12737
12742
  "disabled": isDisabled.value,
12738
12743
  "focused": isFocused.value,
12744
+ "details": hasDetails.value,
12739
12745
  "error": isValid.value === false
12740
12746
  }), {
12741
12747
  ...slots,
@@ -24557,7 +24563,8 @@
24557
24563
  isDisabled,
24558
24564
  isDirty,
24559
24565
  isReadonly,
24560
- isValid
24566
+ isValid,
24567
+ hasDetails
24561
24568
  } = _ref3;
24562
24569
  return vue.createVNode(VField, vue.mergeProps({
24563
24570
  "ref": vFieldRef,
@@ -24573,6 +24580,7 @@
24573
24580
  "dirty": isDirty.value || props.dirty,
24574
24581
  "disabled": isDisabled.value,
24575
24582
  "focused": isFocused.value,
24583
+ "details": hasDetails.value,
24576
24584
  "error": isValid.value === false,
24577
24585
  "onDragover": onDragover,
24578
24586
  "onDrop": onDrop
@@ -29330,7 +29338,8 @@
29330
29338
  isDisabled,
29331
29339
  isDirty,
29332
29340
  isReadonly,
29333
- isValid
29341
+ isValid,
29342
+ hasDetails
29334
29343
  } = _ref2;
29335
29344
  return vue.createVNode(VField, vue.mergeProps({
29336
29345
  "ref": vFieldRef,
@@ -29349,6 +29358,7 @@
29349
29358
  "dirty": isDirty.value || props.dirty,
29350
29359
  "disabled": isDisabled.value,
29351
29360
  "focused": isFocused.value,
29361
+ "details": hasDetails.value,
29352
29362
  "error": isValid.value === false
29353
29363
  }), {
29354
29364
  ...slots,
@@ -31396,7 +31406,7 @@
31396
31406
  };
31397
31407
  });
31398
31408
  }
31399
- const version$1 = "3.9.0-master.2025-07-10";
31409
+ const version$1 = "3.9.0-master.2025-07-12";
31400
31410
  createVuetify$1.version = version$1;
31401
31411
 
31402
31412
  // Vue's inject() can only be used in setup
@@ -31421,7 +31431,7 @@
31421
31431
  ...options
31422
31432
  });
31423
31433
  };
31424
- const version = "3.9.0-master.2025-07-10";
31434
+ const version = "3.9.0-master.2025-07-12";
31425
31435
  createVuetify.version = version;
31426
31436
 
31427
31437
  exports.blueprints = index;