@vuetify/nightly 3.7.4-master.2024-11-24 → 3.7.4-master.2024-11-29
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 +2905 -2905
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +158 -158
- package/dist/json/web-types.json +5578 -5578
- package/dist/vuetify-labs.css +3489 -3489
- package/dist/vuetify-labs.d.ts +199 -199
- package/dist/vuetify-labs.esm.js +48 -46
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +48 -46
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1248 -1248
- package/dist/vuetify.d.ts +182 -182
- 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 +56 -56
- 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/VTreeviewItem.mjs +3 -4
- package/lib/labs/VTreeview/VTreeviewItem.mjs.map +1 -1
- 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.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.7.4-master.2024-11-
|
2
|
+
* Vuetify v3.7.4-master.2024-11-29
|
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
|
-
|
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?.
|
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?.
|
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?.
|
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?.
|
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?.
|
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:
|
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:
|
9680
|
-
collapseIcon:
|
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 ||
|
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 ||
|
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 ||
|
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 (
|
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":
|
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 ||
|
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) ||
|
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":
|
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:
|
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:
|
26313
|
+
type: IconValue,
|
26311
26314
|
default: '$complete'
|
26312
26315
|
},
|
26313
26316
|
editable: Boolean,
|
26314
26317
|
editIcon: {
|
26315
|
-
type:
|
26318
|
+
type: IconValue,
|
26316
26319
|
default: '$edit'
|
26317
26320
|
},
|
26318
26321
|
error: Boolean,
|
26319
26322
|
errorIcon: {
|
26320
|
-
type:
|
26323
|
+
type: IconValue,
|
26321
26324
|
default: '$error'
|
26322
26325
|
},
|
26323
|
-
icon:
|
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:
|
26485
|
-
editIcon:
|
26487
|
+
completeIcon: IconValue,
|
26488
|
+
editIcon: IconValue,
|
26486
26489
|
editable: Boolean,
|
26487
|
-
errorIcon:
|
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-
|
28267
|
+
const version$1 = "3.7.4-master.2024-11-29";
|
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-
|
28292
|
+
const version = "3.7.4-master.2024-11-29";
|
28290
28293
|
createVuetify.version = version;
|
28291
28294
|
|
28292
28295
|
exports.blueprints = index;
|