@vuetify/nightly 3.8.5-master.2025-05-14 → 3.8.5-pr-21419.3ae3440
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/CHANGELOG.md +17 -3
- package/dist/json/attributes.json +3653 -3653
- package/dist/json/importMap-labs.json +26 -26
- package/dist/json/importMap.json +150 -150
- package/dist/json/web-types.json +6400 -6400
- package/dist/vuetify-labs.cjs +53 -37
- package/dist/vuetify-labs.css +3989 -3989
- package/dist/vuetify-labs.d.ts +605 -602
- package/dist/vuetify-labs.esm.js +53 -37
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +53 -37
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +53 -37
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4937 -4937
- package/dist/vuetify.d.ts +517 -514
- package/dist/vuetify.esm.js +53 -37
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +53 -37
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +589 -583
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +84 -84
- package/lib/components/VCheckbox/VCheckbox.d.ts +12 -12
- package/lib/components/VCombobox/VCombobox.d.ts +84 -84
- package/lib/components/VFileInput/VFileInput.d.ts +30 -30
- package/lib/components/VInput/VInput.d.ts +12 -12
- package/lib/components/VList/VList.d.ts +3 -3
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +80 -80
- package/lib/components/VRadioGroup/VRadioGroup.d.ts +12 -12
- package/lib/components/VRangeSlider/VRangeSlider.d.ts +12 -12
- package/lib/components/VSelect/VSelect.d.ts +84 -84
- package/lib/components/VSelect/VSelect.js +39 -5
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSlider/VSlider.d.ts +12 -12
- package/lib/components/VSwitch/VSwitch.d.ts +12 -12
- package/lib/components/VTextField/VTextField.d.ts +30 -30
- package/lib/components/VTextarea/VTextarea.d.ts +30 -30
- package/lib/components/VValidation/VValidation.d.ts +8 -8
- package/lib/composables/validation.d.ts +6 -5
- package/lib/composables/validation.js +4 -29
- package/lib/composables/validation.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +56 -56
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VColorInput/VColorInput.d.ts +12 -12
- package/lib/labs/VDateInput/VDateInput.d.ts +84 -84
- package/lib/labs/rules/rules.d.ts +9 -5
- package/lib/labs/rules/rules.js +73 -51
- package/lib/labs/rules/rules.js.map +1 -1
- package/lib/util/helpers.js +1 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.5-
|
2
|
+
* Vuetify v3.8.5-pr-21419.3ae3440
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -435,7 +435,7 @@
|
|
435
435
|
}
|
436
436
|
function focusChild(el, location) {
|
437
437
|
const focusable = focusableChildren(el);
|
438
|
-
if (
|
438
|
+
if (location == null) {
|
439
439
|
if (el === document.activeElement || !el.contains(document.activeElement)) {
|
440
440
|
focusable[0]?.focus();
|
441
441
|
}
|
@@ -7039,13 +7039,18 @@
|
|
7039
7039
|
};
|
7040
7040
|
}
|
7041
7041
|
|
7042
|
+
// Utilities
|
7043
|
+
const RulesSymbol = Symbol.for('vuetify:rules');
|
7044
|
+
function useRules(fn) {
|
7045
|
+
const resolveRules = vue.inject(RulesSymbol, null);
|
7046
|
+
if (!resolveRules) return vue.toRef(fn);
|
7047
|
+
return resolveRules(fn);
|
7048
|
+
}
|
7049
|
+
|
7042
7050
|
// Composables
|
7043
7051
|
|
7044
7052
|
// Types
|
7045
7053
|
|
7046
|
-
// type ValidationRuleParams = [any, string?]
|
7047
|
-
// type ValidationAlias = string | [string, ...ValidationRuleParams]
|
7048
|
-
|
7049
7054
|
const makeValidationProps = propsFactory({
|
7050
7055
|
disabled: {
|
7051
7056
|
type: Boolean,
|
@@ -7068,7 +7073,6 @@
|
|
7068
7073
|
},
|
7069
7074
|
rules: {
|
7070
7075
|
type: Array,
|
7071
|
-
// type: Array as PropType<readonly (ValidationRule | ValidationAlias)[]>,
|
7072
7076
|
default: () => []
|
7073
7077
|
},
|
7074
7078
|
modelValue: null,
|
@@ -7082,7 +7086,7 @@
|
|
7082
7086
|
const model = useProxiedModel(props, 'modelValue');
|
7083
7087
|
const validationModel = vue.computed(() => props.validationValue === undefined ? model.value : props.validationValue);
|
7084
7088
|
const form = useForm(props);
|
7085
|
-
|
7089
|
+
const rules = useRules(() => props.rules);
|
7086
7090
|
const internalErrorMessages = vue.ref([]);
|
7087
7091
|
const isPristine = vue.shallowRef(true);
|
7088
7092
|
const isDirty = vue.computed(() => !!(wrapInArray(model.value === '' ? null : model.value).length || wrapInArray(validationModel.value === '' ? null : validationModel.value).length));
|
@@ -7122,28 +7126,6 @@
|
|
7122
7126
|
});
|
7123
7127
|
const vm = getCurrentInstance('validation');
|
7124
7128
|
const uid = vue.computed(() => props.name ?? vue.unref(id));
|
7125
|
-
|
7126
|
-
// const resolvedRules = computed(() => props.rules.map(rule => {
|
7127
|
-
// let ruleName: string | null = null
|
7128
|
-
// let ruleParams: ValidationRuleParams = [undefined]
|
7129
|
-
// if (Array.isArray(rule)) {
|
7130
|
-
// ruleName = rule[0]
|
7131
|
-
// ruleParams = rule.slice(1) as ValidationRuleParams
|
7132
|
-
// } else if (typeof rule === 'string') {
|
7133
|
-
// ruleName = rule
|
7134
|
-
// }
|
7135
|
-
|
7136
|
-
// if (ruleName !== null) {
|
7137
|
-
// if (ruleName.startsWith('$')) {
|
7138
|
-
// ruleName = ruleName.slice(1)
|
7139
|
-
// }
|
7140
|
-
|
7141
|
-
// return rules?.[ruleName]?.(...ruleParams)
|
7142
|
-
// } else {
|
7143
|
-
// return rule
|
7144
|
-
// }
|
7145
|
-
// }))
|
7146
|
-
|
7147
7129
|
vue.onBeforeMount(() => {
|
7148
7130
|
form.register?.({
|
7149
7131
|
id: uid.value,
|
@@ -7199,7 +7181,7 @@
|
|
7199
7181
|
let silent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
|
7200
7182
|
const results = [];
|
7201
7183
|
isValidating.value = true;
|
7202
|
-
for (const rule of
|
7184
|
+
for (const rule of rules.value) {
|
7203
7185
|
if (results.length >= Number(props.maxErrors ?? 1)) {
|
7204
7186
|
break;
|
7205
7187
|
}
|
@@ -13039,6 +13021,7 @@
|
|
13039
13021
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
|
13040
13022
|
const isFocused = vue.shallowRef(false);
|
13041
13023
|
let keyboardLookupPrefix = '';
|
13024
|
+
let keyboardLookupIndex = -1;
|
13042
13025
|
let keyboardLookupLastTime;
|
13043
13026
|
const displayItems = vue.computed(() => {
|
13044
13027
|
if (props.hideSelected) {
|
@@ -13106,16 +13089,49 @@
|
|
13106
13089
|
const now = performance.now();
|
13107
13090
|
if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
|
13108
13091
|
keyboardLookupPrefix = '';
|
13092
|
+
keyboardLookupIndex = -1;
|
13109
13093
|
}
|
13110
13094
|
keyboardLookupPrefix += e.key.toLowerCase();
|
13111
13095
|
keyboardLookupLastTime = now;
|
13112
|
-
const
|
13096
|
+
const items = displayItems.value;
|
13097
|
+
function findItem() {
|
13098
|
+
let result = findItemBase();
|
13099
|
+
if (result !== undefined) return result;
|
13100
|
+
if (keyboardLookupPrefix.at(-1) === keyboardLookupPrefix.at(-2)) {
|
13101
|
+
// No matches but we have a repeated letter, try the next item with that prefix
|
13102
|
+
keyboardLookupPrefix = keyboardLookupPrefix.slice(0, -1);
|
13103
|
+
result = findItemBase();
|
13104
|
+
if (result !== undefined) return result;
|
13105
|
+
}
|
13106
|
+
|
13107
|
+
// Still nothing, wrap around to the top
|
13108
|
+
keyboardLookupIndex = -1;
|
13109
|
+
result = findItemBase();
|
13110
|
+
if (result !== undefined) return result;
|
13111
|
+
|
13112
|
+
// Still nothing, try just the new letter
|
13113
|
+
keyboardLookupPrefix = e.key.toLowerCase();
|
13114
|
+
return findItemBase();
|
13115
|
+
}
|
13116
|
+
function findItemBase() {
|
13117
|
+
for (let i = 0; i < items.length; i++) {
|
13118
|
+
const _item = items[i];
|
13119
|
+
if (i > keyboardLookupIndex && _item.title.toLowerCase().startsWith(keyboardLookupPrefix)) {
|
13120
|
+
keyboardLookupIndex = i;
|
13121
|
+
return _item;
|
13122
|
+
}
|
13123
|
+
}
|
13124
|
+
return undefined;
|
13125
|
+
}
|
13126
|
+
const item = findItem();
|
13113
13127
|
if (item !== undefined) {
|
13114
|
-
|
13128
|
+
if (!props.multiple) {
|
13129
|
+
model.value = [item];
|
13130
|
+
}
|
13115
13131
|
const index = displayItems.value.indexOf(item);
|
13116
|
-
|
13117
|
-
|
13118
|
-
}
|
13132
|
+
if (~index && IN_BROWSER) {
|
13133
|
+
listRef.value?.focus(index);
|
13134
|
+
}
|
13119
13135
|
}
|
13120
13136
|
}
|
13121
13137
|
|
@@ -29238,7 +29254,7 @@
|
|
29238
29254
|
};
|
29239
29255
|
});
|
29240
29256
|
}
|
29241
|
-
const version$1 = "3.8.5-
|
29257
|
+
const version$1 = "3.8.5-pr-21419.3ae3440";
|
29242
29258
|
createVuetify$1.version = version$1;
|
29243
29259
|
|
29244
29260
|
// Vue's inject() can only be used in setup
|
@@ -29263,7 +29279,7 @@
|
|
29263
29279
|
...options
|
29264
29280
|
});
|
29265
29281
|
};
|
29266
|
-
const version = "3.8.5-
|
29282
|
+
const version = "3.8.5-pr-21419.3ae3440";
|
29267
29283
|
createVuetify.version = version;
|
29268
29284
|
|
29269
29285
|
exports.blueprints = index;
|