@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
@@ -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
  */
@@ -6672,8 +6672,13 @@
6672
6672
  resetValidation
6673
6673
  };
6674
6674
  }
6675
- function useForm() {
6676
- return vue.inject(FormKey, null);
6675
+ function useForm(props) {
6676
+ const form = vue.inject(FormKey, null);
6677
+ return {
6678
+ ...form,
6679
+ isReadonly: vue.computed(() => !!(props?.readonly ?? form?.isReadonly.value)),
6680
+ isDisabled: vue.computed(() => !!(props?.disabled ?? form?.isDisabled.value))
6681
+ };
6677
6682
  }
6678
6683
 
6679
6684
  // Composables
@@ -6714,17 +6719,15 @@
6714
6719
  let id = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : getUid();
6715
6720
  const model = useProxiedModel(props, 'modelValue');
6716
6721
  const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
6717
- const form = useForm();
6722
+ const form = useForm(props);
6718
6723
  const internalErrorMessages = vue.ref([]);
6719
6724
  const isPristine = vue.shallowRef(true);
6720
6725
  const isDirty = vue.computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
6721
- const isDisabled = vue.computed(() => !!(props.disabled ?? form?.isDisabled.value));
6722
- const isReadonly = vue.computed(() => !!(props.readonly ?? form?.isReadonly.value));
6723
6726
  const errorMessages = vue.computed(() => {
6724
6727
  return props.errorMessages?.length ? wrapInArray(props.errorMessages).concat(internalErrorMessages.value).slice(0, Math.max(0, +props.maxErrors)) : internalErrorMessages.value;
6725
6728
  });
6726
6729
  const validateOn = vue.computed(() => {
6727
- let value = (props.validateOn ?? form?.validateOn.value) || 'input';
6730
+ let value = (props.validateOn ?? form.validateOn?.value) || 'input';
6728
6731
  if (value === 'lazy') value = 'input lazy';
6729
6732
  if (value === 'eager') value = 'input eager';
6730
6733
  const set = new Set(value?.split(' ') ?? []);
@@ -6750,14 +6753,14 @@
6750
6753
  return {
6751
6754
  [`${name}--error`]: isValid.value === false,
6752
6755
  [`${name}--dirty`]: isDirty.value,
6753
- [`${name}--disabled`]: isDisabled.value,
6754
- [`${name}--readonly`]: isReadonly.value
6756
+ [`${name}--disabled`]: form.isDisabled.value,
6757
+ [`${name}--readonly`]: form.isReadonly.value
6755
6758
  };
6756
6759
  });
6757
6760
  const vm = getCurrentInstance('validation');
6758
6761
  const uid = vue.computed(() => props.name ?? vue.unref(id));
6759
6762
  vue.onBeforeMount(() => {
6760
- form?.register({
6763
+ form.register?.({
6761
6764
  id: uid.value,
6762
6765
  vm,
6763
6766
  validate,
@@ -6766,13 +6769,13 @@
6766
6769
  });
6767
6770
  });
6768
6771
  vue.onBeforeUnmount(() => {
6769
- form?.unregister(uid.value);
6772
+ form.unregister?.(uid.value);
6770
6773
  });
6771
6774
  vue.onMounted(async () => {
6772
6775
  if (!validateOn.value.lazy) {
6773
6776
  await validate(!validateOn.value.eager);
6774
6777
  }
6775
- form?.update(uid.value, isValid.value, errorMessages.value);
6778
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6776
6779
  });
6777
6780
  useToggleScope(() => validateOn.value.input || validateOn.value.invalidInput && isValid.value === false, () => {
6778
6781
  vue.watch(validationModel, () => {
@@ -6792,7 +6795,7 @@
6792
6795
  });
6793
6796
  });
6794
6797
  vue.watch([isValid, errorMessages], () => {
6795
- form?.update(uid.value, isValid.value, errorMessages.value);
6798
+ form.update?.(uid.value, isValid.value, errorMessages.value);
6796
6799
  });
6797
6800
  async function reset() {
6798
6801
  model.value = null;
@@ -6833,8 +6836,8 @@
6833
6836
  return {
6834
6837
  errorMessages,
6835
6838
  isDirty,
6836
- isDisabled,
6837
- isReadonly,
6839
+ isDisabled: form.isDisabled,
6840
+ isReadonly: form.isReadonly,
6838
6841
  isPristine,
6839
6842
  isValid,
6840
6843
  isValidating,
@@ -7837,7 +7840,7 @@
7837
7840
  draggable: Boolean,
7838
7841
  filter: Boolean,
7839
7842
  filterIcon: {
7840
- type: String,
7843
+ type: IconValue,
7841
7844
  default: '$complete'
7842
7845
  },
7843
7846
  label: Boolean,
@@ -9443,8 +9446,8 @@
9443
9446
  activeClass: String,
9444
9447
  bgColor: String,
9445
9448
  disabled: Boolean,
9446
- expandIcon: String,
9447
- collapseIcon: String,
9449
+ expandIcon: IconValue,
9450
+ collapseIcon: IconValue,
9448
9451
  lines: {
9449
9452
  type: [Boolean, String],
9450
9453
  default: 'one'
@@ -12444,7 +12447,7 @@
12444
12447
  const counterValue = vue.computed(() => {
12445
12448
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12446
12449
  });
12447
- const form = useForm();
12450
+ const form = useForm(props);
12448
12451
  const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
12449
12452
  const isFocused = vue.shallowRef(false);
12450
12453
  const label = vue.computed(() => menu.value ? props.closeText : props.openText);
@@ -12456,7 +12459,7 @@
12456
12459
  }
12457
12460
  return items.value;
12458
12461
  });
12459
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12462
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12460
12463
  const computedMenuProps = vue.computed(() => {
12461
12464
  return {
12462
12465
  ...props.menuProps,
@@ -12483,7 +12486,7 @@
12483
12486
  }
12484
12487
  }
12485
12488
  function onKeydown(e) {
12486
- if (!e.key || props.readonly || form?.isReadonly.value) return;
12489
+ if (!e.key || form.isReadonly.value) return;
12487
12490
  if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
12488
12491
  e.preventDefault();
12489
12492
  }
@@ -12961,7 +12964,7 @@
12961
12964
  const counterValue = vue.computed(() => {
12962
12965
  return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
12963
12966
  });
12964
- const form = useForm();
12967
+ const form = useForm(props);
12965
12968
  const {
12966
12969
  filteredItems,
12967
12970
  getMatches
@@ -12979,7 +12982,7 @@
12979
12982
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
12980
12983
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
12981
12984
  });
12982
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
12985
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
12983
12986
  const listRef = vue.ref();
12984
12987
  const listEvents = useScrolling(listRef, vTextFieldRef);
12985
12988
  function onClear(e) {
@@ -13006,7 +13009,7 @@
13006
13009
  }
13007
13010
  }
13008
13011
  function onKeydown(e) {
13009
- if (props.readonly || form?.isReadonly.value) return;
13012
+ if (form.isReadonly.value) return;
13010
13013
  const selectionStart = vTextFieldRef.value.selectionStart;
13011
13014
  const length = model.value.length;
13012
13015
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -13183,7 +13186,7 @@
13183
13186
  'v-autocomplete--selecting-index': selectionIndex.value > -1
13184
13187
  }, props.class],
13185
13188
  "style": props.style,
13186
- "readonly": props.readonly,
13189
+ "readonly": form.isReadonly.value,
13187
13190
  "placeholder": isDirty ? undefined : props.placeholder,
13188
13191
  "onClick:clear": onClear,
13189
13192
  "onMousedown:control": onMousedownControl,
@@ -16802,7 +16805,7 @@
16802
16805
  const transformed = transformOut(v);
16803
16806
  return props.multiple ? transformed : transformed[0] ?? null;
16804
16807
  });
16805
- const form = useForm();
16808
+ const form = useForm(props);
16806
16809
  const hasChips = vue.computed(() => !!(props.chips || slots.chip));
16807
16810
  const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
16808
16811
  const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
@@ -16862,7 +16865,7 @@
16862
16865
  const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
16863
16866
  return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
16864
16867
  });
16865
- const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
16868
+ const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
16866
16869
  const listRef = vue.ref();
16867
16870
  const listEvents = useScrolling(listRef, vTextFieldRef);
16868
16871
  function onClear(e) {
@@ -16890,7 +16893,7 @@
16890
16893
  }
16891
16894
  // eslint-disable-next-line complexity
16892
16895
  function onKeydown(e) {
16893
- if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
16896
+ if (isComposingIgnoreKey(e) || form.isReadonly.value) return;
16894
16897
  const selectionStart = vTextFieldRef.value.selectionStart;
16895
16898
  const length = model.value.length;
16896
16899
  if (selectionIndex.value > -1 || ['Enter', 'ArrowDown', 'ArrowUp'].includes(e.key)) {
@@ -17062,7 +17065,7 @@
17062
17065
  [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true
17063
17066
  }, props.class],
17064
17067
  "style": props.style,
17065
- "readonly": props.readonly,
17068
+ "readonly": form.isReadonly.value,
17066
17069
  "placeholder": isDirty ? undefined : props.placeholder,
17067
17070
  "onClick:clear": onClear,
17068
17071
  "onMousedown:control": onMousedownControl,
@@ -21422,7 +21425,7 @@
21422
21425
  // Types
21423
21426
 
21424
21427
  const makeVDatePickerHeaderProps = propsFactory({
21425
- appendIcon: String,
21428
+ appendIcon: IconValue,
21426
21429
  color: String,
21427
21430
  header: String,
21428
21431
  transition: String,
@@ -26074,20 +26077,20 @@
26074
26077
  subtitle: String,
26075
26078
  complete: Boolean,
26076
26079
  completeIcon: {
26077
- type: String,
26080
+ type: IconValue,
26078
26081
  default: '$complete'
26079
26082
  },
26080
26083
  editable: Boolean,
26081
26084
  editIcon: {
26082
- type: String,
26085
+ type: IconValue,
26083
26086
  default: '$edit'
26084
26087
  },
26085
26088
  error: Boolean,
26086
26089
  errorIcon: {
26087
- type: String,
26090
+ type: IconValue,
26088
26091
  default: '$error'
26089
26092
  },
26090
- icon: String,
26093
+ icon: IconValue,
26091
26094
  ripple: {
26092
26095
  type: [Boolean, Object],
26093
26096
  default: true
@@ -26248,10 +26251,10 @@
26248
26251
  const makeStepperProps = propsFactory({
26249
26252
  altLabels: Boolean,
26250
26253
  bgColor: String,
26251
- completeIcon: String,
26252
- editIcon: String,
26254
+ completeIcon: IconValue,
26255
+ editIcon: IconValue,
26253
26256
  editable: Boolean,
26254
- errorIcon: String,
26257
+ errorIcon: IconValue,
26255
26258
  hideActions: Boolean,
26256
26259
  items: {
26257
26260
  type: Array,
@@ -28214,8 +28217,8 @@
28214
28217
  const vTextFieldRef = vue.ref();
28215
28218
  const stepDecimals = vue.computed(() => getDecimals(props.step));
28216
28219
  const modelDecimals = vue.computed(() => typeof model.value === 'number' ? getDecimals(model.value) : 0);
28217
- const form = useForm();
28218
- const controlsDisabled = vue.computed(() => props.disabled || props.readonly || form?.isReadonly.value);
28220
+ const form = useForm(props);
28221
+ const controlsDisabled = vue.computed(() => form.isDisabled.value || form.isReadonly.value);
28219
28222
  const canIncrease = vue.computed(() => {
28220
28223
  if (controlsDisabled.value) return false;
28221
28224
  return (model.value ?? 0) + props.step <= props.max;
@@ -28238,7 +28241,7 @@
28238
28241
  click: onClickDown
28239
28242
  }));
28240
28243
  vue.onMounted(() => {
28241
- if (!props.readonly && !props.disabled) {
28244
+ if (!controlsDisabled.value) {
28242
28245
  clampModel();
28243
28246
  }
28244
28247
  });
@@ -30406,7 +30409,7 @@
30406
30409
  goTo
30407
30410
  };
30408
30411
  }
30409
- const version$1 = "3.7.4-master.2024-11-24";
30412
+ const version$1 = "3.7.4-master.2024-11-28";
30410
30413
  createVuetify$1.version = version$1;
30411
30414
 
30412
30415
  // Vue's inject() can only be used in setup
@@ -30659,7 +30662,7 @@
30659
30662
 
30660
30663
  /* eslint-disable local-rules/sort-imports */
30661
30664
 
30662
- const version = "3.7.4-master.2024-11-24";
30665
+ const version = "3.7.4-master.2024-11-28";
30663
30666
 
30664
30667
  /* eslint-disable local-rules/sort-imports */
30665
30668