@vuetify/nightly 3.7.4-master.2024-11-24 → 3.7.4-master.2024-11-28

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/dist/json/attributes.json +2929 -2929
  2. package/dist/json/importMap-labs.json +18 -18
  3. package/dist/json/importMap.json +144 -144
  4. package/dist/json/web-types.json +5611 -5611
  5. package/dist/vuetify-labs.css +2603 -2603
  6. package/dist/vuetify-labs.d.ts +199 -199
  7. package/dist/vuetify-labs.esm.js +45 -42
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +45 -42
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +1011 -1011
  12. package/dist/vuetify.d.ts +177 -177
  13. package/dist/vuetify.esm.js +42 -39
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +42 -39
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +26 -25
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
  21. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  22. package/lib/components/VAutocomplete/index.d.mts +28 -28
  23. package/lib/components/VChip/VChip.mjs +1 -1
  24. package/lib/components/VChip/VChip.mjs.map +1 -1
  25. package/lib/components/VChip/index.d.mts +9 -9
  26. package/lib/components/VCombobox/VCombobox.mjs +4 -4
  27. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  28. package/lib/components/VCombobox/index.d.mts +28 -28
  29. package/lib/components/VDatePicker/VDatePickerHeader.mjs +2 -1
  30. package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
  31. package/lib/components/VDatePicker/index.d.mts +6 -6
  32. package/lib/components/VList/VList.mjs +3 -2
  33. package/lib/components/VList/VList.mjs.map +1 -1
  34. package/lib/components/VList/index.d.mts +12 -12
  35. package/lib/components/VSelect/VSelect.mjs +3 -3
  36. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  37. package/lib/components/VSelect/index.d.mts +28 -28
  38. package/lib/components/VStepper/VStepper.mjs +5 -4
  39. package/lib/components/VStepper/VStepper.mjs.map +1 -1
  40. package/lib/components/VStepper/VStepperItem.mjs +5 -4
  41. package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
  42. package/lib/components/VStepper/index.d.mts +58 -52
  43. package/lib/components/index.d.mts +126 -126
  44. package/lib/composables/form.mjs +7 -2
  45. package/lib/composables/form.mjs.map +1 -1
  46. package/lib/composables/validation.mjs +10 -12
  47. package/lib/composables/validation.mjs.map +1 -1
  48. package/lib/entry-bundler.mjs +1 -1
  49. package/lib/framework.mjs +1 -1
  50. package/lib/index.d.mts +51 -51
  51. package/lib/labs/VNumberInput/VNumberInput.mjs +3 -3
  52. package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
  53. package/lib/labs/VStepperVertical/index.d.mts +51 -51
  54. package/lib/labs/VTreeview/index.d.mts +22 -22
  55. package/lib/labs/components.d.mts +73 -73
  56. package/package.json +1 -1
package/dist/vuetify.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * Vuetify v3.7.4-master.2024-11-24
2
+ * Vuetify v3.7.4-master.2024-11-28
3
3
  * Forged by John Leider
4
4
  * Released under the MIT License.
5
5
  */
@@ -6905,8 +6905,13 @@
6905
6905
  resetValidation
6906
6906
  };
6907
6907
  }
6908
- function useForm() {
6909
- return vue.inject(FormKey, null);
6908
+ function useForm(props) {
6909
+ const form = vue.inject(FormKey, null);
6910
+ return {
6911
+ ...form,
6912
+ isReadonly: vue.computed(() => !!(props?.readonly ?? form?.isReadonly.value)),
6913
+ isDisabled: vue.computed(() => !!(props?.disabled ?? form?.isDisabled.value))
6914
+ };
6910
6915
  }
6911
6916
 
6912
6917
  // Composables
@@ -6947,17 +6952,15 @@
6947
6952
  let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();
6948
6953
  const model = useProxiedModel(props, 'modelValue');
6949
6954
  const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6950
- const form = useForm();
6955
+ const form = useForm(props);
6951
6956
  const internalErrorMessages = vue.ref([]);
6952
6957
  const isPristine = vue.shallowRef(true);
6953
6958
  const isDirty = vue.computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6954
- const isDisabled = vue.computed(() => !!(props.disabled ?? form?.isDisabled.value));
6955
- const isReadonly = vue.computed(() => !!(props.readonly ?? form?.isReadonly.value));
6956
6959
  const errorMessages = vue.computed(() => {
6957
6960
  return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6958
6961
  });
6959
6962
  const validateOn = vue.computed(() => {
6960
- let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6963
+ let value = (props.validateOn ?? form.validateOn?.value) || 'input';
6961
6964
  if (value === 'lazy') value = 'input lazy';
6962
6965
  if (value === 'eager') value = 'input eager';
6963
6966
  const set = new Set(value?.split(' ') ?? []);
@@ -6983,14 +6986,14 @@
6983
6986
  return {
6984
6987
  [`${name}--error`]: isValid.value === false,
6985
6988
  [`${name}--dirty`]: isDirty.value,
6986
- [`${name}--disabled`]: isDisabled.value,
6987
- [`${name}--readonly`]: isReadonly.value
6989
+ [`${name}--disabled`]: form.isDisabled.value,
6990
+ [`${name}--readonly`]: form.isReadonly.value
6988
6991
  };
6989
6992
  });
6990
6993
  const vm = getCurrentInstance('validation');
6991
6994
  const uid = vue.computed(() => props.name ?? vue.unref(id));
6992
6995
  vue.onBeforeMount(() => {
6993
- form?.register({
6996
+ form.register?.({
6994
6997
  id: uid.value,
6995
6998
  vm,
6996
6999
  validate,
@@ -6999,13 +7002,13 @@
6999
7002
  });
7000
7003
  });
7001
7004
  vue.onBeforeUnmount(() => {
7002
- form?.unregister(uid.value);
7005
+ form.unregister?.(uid.value);
7003
7006
  });
7004
7007
  vue.onMounted(async () => {
7005
7008
  if (!validateOn.value.lazy) {
7006
7009
  await validate(!validateOn.value.eager);
7007
7010
  }
7008
- form?.update(uid.value, isValid.value, errorMessages.value);
7011
+ form.update?.(uid.value, isValid.value, errorMessages.value);
7009
7012
  });
7010
7013
  useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
7011
7014
  vue.watch(validationModel, () => {
@@ -7025,7 +7028,7 @@
7025
7028
  });
7026
7029
  });
7027
7030
  vue.watch([isValid, errorMessages], () => {
7028
- form?.update(uid.value, isValid.value, errorMessages.value);
7031
+ form.update?.(uid.value, isValid.value, errorMessages.value);
7029
7032
  });
7030
7033
  async function reset() {
7031
7034
  model.value = null;
@@ -7066,8 +7069,8 @@
7066
7069
  return {
7067
7070
  errorMessages,
7068
7071
  isDirty,
7069
- isDisabled,
7070
- isReadonly,
7072
+ isDisabled: form.isDisabled,
7073
+ isReadonly: form.isReadonly,
7071
7074
  isPristine,
7072
7075
  isValid,
7073
7076
  isValidating,
@@ -8070,7 +8073,7 @@
8070
8073
  draggable: Boolean,
8071
8074
  filter: Boolean,
8072
8075
  filterIcon: {
8073
- type: String,
8076
+ type: IconValue,
8074
8077
  default: '$complete'
8075
8078
  },
8076
8079
  label: Boolean,
@@ -9676,8 +9679,8 @@
9676
9679
  activeClass: String,
9677
9680
  bgColor: String,
9678
9681
  disabled: Boolean,
9679
- expandIcon: String,
9680
- collapseIcon: String,
9682
+ expandIcon: IconValue,
9683
+ collapseIcon: IconValue,
9681
9684
  lines: {
9682
9685
  type: [Boolean, String],
9683
9686
  default: 'one'
@@ -12677,7 +12680,7 @@
12677
12680
  const counterValue = vue.computed(() => {
12678
12681
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12679
12682
  });
12680
- const form = useForm();
12683
+ const form = useForm(props);
12681
12684
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
12682
12685
  const isFocused = vue.shallowRef(false);
12683
12686
  const label = vue.computed(() => menu.value ? props.closeText : props.openText);
@@ -12689,7 +12692,7 @@
12689
12692
  }
12690
12693
  return items.value;
12691
12694
  });
12692
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12695
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12693
12696
  const computedMenuProps = vue.computed(() => {
12694
12697
  return {
12695
12698
  ...props.menuProps,
@@ -12716,7 +12719,7 @@
12716
12719
  }
12717
12720
  }
12718
12721
  function onKeydown(e) {
12719
- if (!e.key || props.readonly || form?.isReadonly.value) return;
12722
+ if (!e.key || form.isReadonly.value) return;
12720
12723
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
12721
12724
  e.preventDefault();
12722
12725
  }
@@ -13194,7 +13197,7 @@
13194
13197
  const counterValue = vue.computed(() => {
13195
13198
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
13196
13199
  });
13197
- const form = useForm();
13200
+ const form = useForm(props);
13198
13201
  const {
13199
13202
  filteredItems,
13200
13203
  getMatches
@@ -13212,7 +13215,7 @@
13212
13215
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
13213
13216
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
13214
13217
  });
13215
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
13218
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
13216
13219
  const listRef = vue.ref();
13217
13220
  const listEvents = useScrolling(listRef, vTextFieldRef);
13218
13221
  function onClear(e) {
@@ -13239,7 +13242,7 @@
13239
13242
  }
13240
13243
  }
13241
13244
  function onKeydown(e) {
13242
- if (props.readonly || form?.isReadonly.value) return;
13245
+ if (form.isReadonly.value) return;
13243
13246
  const selectionStart = vTextFieldRef.value.selectionStart;
13244
13247
  const length = model.value.length;
13245
13248
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -13416,7 +13419,7 @@
13416
13419
  'v-autocomplete--selecting-index': selectionIndex.value > -1
13417
13420
  }, props.class],
13418
13421
  "style": props.style,
13419
- "readonly": props.readonly,
13422
+ "readonly": form.isReadonly.value,
13420
13423
  "placeholder": isDirty ? undefined : props.placeholder,
13421
13424
  "onClick:clear": onClear,
13422
13425
  "onMousedown:control": onMousedownControl,
@@ -17035,7 +17038,7 @@
17035
17038
  const transformed = transformOut(v);
17036
17039
  return props.multiple ? transformed : transformed[0] ?? null;
17037
17040
  });
17038
- const form = useForm();
17041
+ const form = useForm(props);
17039
17042
  const hasChips = vue.computed(() => !!(props.chips || slots.chip));
17040
17043
  const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
17041
17044
  const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -17095,7 +17098,7 @@
17095
17098
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
17096
17099
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
17097
17100
  });
17098
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
17101
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
17099
17102
  const listRef = vue.ref();
17100
17103
  const listEvents = useScrolling(listRef, vTextFieldRef);
17101
17104
  function onClear(e) {
@@ -17123,7 +17126,7 @@
17123
17126
  }
17124
17127
  // eslint-disable-next-line complexity
17125
17128
  function onKeydown(e) {
17126
- if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
17129
+ if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
17127
17130
  const selectionStart = vTextFieldRef.value.selectionStart;
17128
17131
  const length = model.value.length;
17129
17132
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -17295,7 +17298,7 @@
17295
17298
  [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
17296
17299
  }, props.class],
17297
17300
  "style": props.style,
17298
- "readonly": props.readonly,
17301
+ "readonly": form.isReadonly.value,
17299
17302
  "placeholder": isDirty ? undefined : props.placeholder,
17300
17303
  "onClick:clear": onClear,
17301
17304
  "onMousedown:control": onMousedownControl,
@@ -21655,7 +21658,7 @@
21655
21658
  // Types
21656
21659
 
21657
21660
  const makeVDatePickerHeaderProps = propsFactory({
21658
- appendIcon: String,
21661
+ appendIcon: IconValue,
21659
21662
  color: String,
21660
21663
  header: String,
21661
21664
  transition: String,
@@ -26307,20 +26310,20 @@
26307
26310
  subtitle: String,
26308
26311
  complete: Boolean,
26309
26312
  completeIcon: {
26310
- type: String,
26313
+ type: IconValue,
26311
26314
  default: '$complete'
26312
26315
  },
26313
26316
  editable: Boolean,
26314
26317
  editIcon: {
26315
- type: String,
26318
+ type: IconValue,
26316
26319
  default: '$edit'
26317
26320
  },
26318
26321
  error: Boolean,
26319
26322
  errorIcon: {
26320
- type: String,
26323
+ type: IconValue,
26321
26324
  default: '$error'
26322
26325
  },
26323
- icon: String,
26326
+ icon: IconValue,
26324
26327
  ripple: {
26325
26328
  type: [Boolean, Object],
26326
26329
  default: true
@@ -26481,10 +26484,10 @@
26481
26484
  const makeStepperProps = propsFactory({
26482
26485
  altLabels: Boolean,
26483
26486
  bgColor: String,
26484
- completeIcon: String,
26485
- editIcon: String,
26487
+ completeIcon: IconValue,
26488
+ editIcon: IconValue,
26486
26489
  editable: Boolean,
26487
- errorIcon: String,
26490
+ errorIcon: IconValue,
26488
26491
  hideActions: Boolean,
26489
26492
  items: {
26490
26493
  type: Array,
@@ -28261,7 +28264,7 @@
28261
28264
  goTo
28262
28265
  };
28263
28266
  }
28264
- const version$1 = "3.7.4-master.2024-11-24";
28267
+ const version$1 = "3.7.4-master.2024-11-28";
28265
28268
  createVuetify$1.version = version$1;
28266
28269
 
28267
28270
  // Vue's inject() can only be used in setup
@@ -28286,7 +28289,7 @@
28286
28289
  ...options
28287
28290
  });
28288
28291
  };
28289
- const version = "3.7.4-master.2024-11-24";
28292
+ const version = "3.7.4-master.2024-11-28";
28290
28293
  createVuetify.version = version;
28291
28294
 
28292
28295
  exports.blueprints = index;