@vuetify/nightly 3.7.4-master.2024-11-20 → 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.
- package/dist/json/attributes.json +3082 -3082
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +180 -180
- package/dist/json/web-types.json +5654 -5654
- package/dist/vuetify-labs.css +3265 -3265
- package/dist/vuetify-labs.d.ts +199 -199
- package/dist/vuetify-labs.esm.js +45 -42
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +45 -42
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +919 -919
- package/dist/vuetify.d.ts +188 -188
- package/dist/vuetify.esm.js +42 -39
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +42 -39
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +26 -25
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +28 -28
- package/lib/components/VChip/VChip.mjs +1 -1
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/index.d.mts +9 -9
- package/lib/components/VCombobox/VCombobox.mjs +4 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +28 -28
- package/lib/components/VDatePicker/VDatePickerHeader.mjs +2 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +6 -6
- package/lib/components/VList/VList.mjs +3 -2
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/index.d.mts +12 -12
- package/lib/components/VSelect/VSelect.mjs +3 -3
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +28 -28
- package/lib/components/VStepper/VStepper.mjs +5 -4
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperItem.mjs +5 -4
- package/lib/components/VStepper/VStepperItem.mjs.map +1 -1
- package/lib/components/VStepper/index.d.mts +58 -52
- package/lib/components/index.d.mts +126 -126
- package/lib/composables/form.mjs +7 -2
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/validation.mjs +10 -12
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +62 -62
- package/lib/labs/VNumberInput/VNumberInput.mjs +3 -3
- package/lib/labs/VNumberInput/VNumberInput.mjs.map +1 -1
- package/lib/labs/VStepperVertical/index.d.mts +51 -51
- package/lib/labs/VTreeview/index.d.mts +22 -22
- package/lib/labs/components.d.mts +73 -73
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.7.4-master.2024-11-
|
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
|
-
|
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?.
|
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?.
|
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?.
|
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?.
|
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?.
|
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:
|
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:
|
9447
|
-
collapseIcon:
|
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 ||
|
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 ||
|
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 ||
|
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 (
|
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":
|
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 ||
|
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) ||
|
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":
|
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:
|
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:
|
26080
|
+
type: IconValue,
|
26078
26081
|
default: '$complete'
|
26079
26082
|
},
|
26080
26083
|
editable: Boolean,
|
26081
26084
|
editIcon: {
|
26082
|
-
type:
|
26085
|
+
type: IconValue,
|
26083
26086
|
default: '$edit'
|
26084
26087
|
},
|
26085
26088
|
error: Boolean,
|
26086
26089
|
errorIcon: {
|
26087
|
-
type:
|
26090
|
+
type: IconValue,
|
26088
26091
|
default: '$error'
|
26089
26092
|
},
|
26090
|
-
icon:
|
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:
|
26252
|
-
editIcon:
|
26254
|
+
completeIcon: IconValue,
|
26255
|
+
editIcon: IconValue,
|
26253
26256
|
editable: Boolean,
|
26254
|
-
errorIcon:
|
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(() =>
|
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 (!
|
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-
|
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-
|
30665
|
+
const version = "3.7.4-master.2024-11-28";
|
30663
30666
|
|
30664
30667
|
/* eslint-disable local-rules/sort-imports */
|
30665
30668
|
|