@vuetify/nightly 3.8.9-master.2025-06-13 → 3.8.9-master.2025-06-17
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 +9 -3
- package/dist/json/attributes.json +3382 -3382
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +166 -166
- package/dist/json/web-types.json +6389 -6389
- package/dist/vuetify-labs.cjs +39 -14
- package/dist/vuetify-labs.css +3161 -3157
- package/dist/vuetify-labs.d.ts +65 -65
- package/dist/vuetify-labs.esm.js +39 -14
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +39 -14
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +38 -14
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3844 -3840
- package/dist/vuetify.d.ts +65 -65
- package/dist/vuetify.esm.js +38 -14
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +38 -14
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +372 -371
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +2 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +2 -1
- package/lib/components/VDataTable/VDataTable.css +6 -3
- package/lib/components/VDataTable/VDataTable.sass +4 -2
- package/lib/components/VOtpInput/VOtpInput.js +17 -1
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +4 -4
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.js +4 -4
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/composables/autofocus.d.ts +7 -0
- package/lib/composables/autofocus.js +10 -0
- package/lib/composables/autofocus.js.map +1 -0
- package/lib/composables/group.js +1 -0
- package/lib/composables/group.js.map +1 -1
- package/lib/composables/hotkey.js +17 -17
- package/lib/composables/hotkey.js.map +1 -1
- package/lib/composables/intersectionObserver.js +2 -2
- package/lib/composables/intersectionObserver.js.map +1 -1
- package/lib/composables/selectLink.js +2 -2
- package/lib/composables/selectLink.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +65 -65
- package/lib/framework.js +1 -1
- package/lib/labs/VFileUpload/VFileUploadItem.js +1 -0
- package/lib/labs/VFileUpload/VFileUploadItem.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.9-master.2025-06-
|
2
|
+
* Vuetify v3.8.9-master.2025-06-17
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -4891,6 +4891,7 @@
|
|
4891
4891
|
} else {
|
4892
4892
|
const isSelected = selected.value.includes(id);
|
4893
4893
|
if (props.mandatory && isSelected) return;
|
4894
|
+
if (!isSelected && !value) return;
|
4894
4895
|
selected.value = value ?? !isSelected ? [id] : [];
|
4895
4896
|
}
|
4896
4897
|
}
|
@@ -5116,7 +5117,7 @@
|
|
5116
5117
|
const observer = new IntersectionObserver(entries => {
|
5117
5118
|
isIntersecting.value = !!entries.find(entry => entry.isIntersecting);
|
5118
5119
|
}, options);
|
5119
|
-
vue.
|
5120
|
+
vue.onScopeDispose(() => {
|
5120
5121
|
observer.disconnect();
|
5121
5122
|
});
|
5122
5123
|
vue.watch(intersectionRef, (newValue, oldValue) => {
|
@@ -5647,9 +5648,9 @@
|
|
5647
5648
|
|
5648
5649
|
function useSelectLink(link, select) {
|
5649
5650
|
vue.watch(() => link.isActive?.value, isActive => {
|
5650
|
-
if (link.isLink.value && isActive && select) {
|
5651
|
+
if (link.isLink.value && isActive != null && select) {
|
5651
5652
|
vue.nextTick(() => {
|
5652
|
-
select(
|
5653
|
+
select(isActive);
|
5653
5654
|
});
|
5654
5655
|
}
|
5655
5656
|
}, {
|
@@ -12346,6 +12347,16 @@
|
|
12346
12347
|
}
|
12347
12348
|
});
|
12348
12349
|
|
12350
|
+
function useAutofocus(props) {
|
12351
|
+
function onIntersect(isIntersecting, entries) {
|
12352
|
+
if (!props.autofocus || !isIntersecting) return;
|
12353
|
+
entries[0].target?.focus?.();
|
12354
|
+
}
|
12355
|
+
return {
|
12356
|
+
onIntersect
|
12357
|
+
};
|
12358
|
+
}
|
12359
|
+
|
12349
12360
|
// Types
|
12350
12361
|
|
12351
12362
|
const activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month'];
|
@@ -12392,6 +12403,9 @@
|
|
12392
12403
|
focus,
|
12393
12404
|
blur
|
12394
12405
|
} = useFocus(props);
|
12406
|
+
const {
|
12407
|
+
onIntersect
|
12408
|
+
} = useAutofocus(props);
|
12395
12409
|
const counterValue = vue.computed(() => {
|
12396
12410
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : (model.value ?? '').toString().length;
|
12397
12411
|
});
|
@@ -12401,10 +12415,6 @@
|
|
12401
12415
|
return props.counter;
|
12402
12416
|
});
|
12403
12417
|
const isPlainOrUnderlined = vue.computed(() => ['plain', 'underlined'].includes(props.variant));
|
12404
|
-
function onIntersect(isIntersecting, entries) {
|
12405
|
-
if (!props.autofocus || !isIntersecting) return;
|
12406
|
-
entries[0].target?.focus?.();
|
12407
|
-
}
|
12408
12418
|
const vInputRef = vue.ref();
|
12409
12419
|
const vFieldRef = vue.ref();
|
12410
12420
|
const inputRef = vue.ref();
|
@@ -25650,6 +25660,21 @@
|
|
25650
25660
|
const contentRef = vue.ref();
|
25651
25661
|
const inputRef = vue.ref([]);
|
25652
25662
|
const current = vue.computed(() => inputRef.value[focusIndex.value]);
|
25663
|
+
const intersectScope = vue.effectScope();
|
25664
|
+
intersectScope.run(() => {
|
25665
|
+
const {
|
25666
|
+
intersectionRef,
|
25667
|
+
isIntersecting
|
25668
|
+
} = useIntersectionObserver();
|
25669
|
+
vue.watch(isIntersecting, v => {
|
25670
|
+
if (!v) return;
|
25671
|
+
intersectionRef.value?.focus();
|
25672
|
+
intersectScope.stop();
|
25673
|
+
});
|
25674
|
+
vue.watchEffect(() => {
|
25675
|
+
intersectionRef.value = inputRef.value[0];
|
25676
|
+
});
|
25677
|
+
});
|
25653
25678
|
function onInput() {
|
25654
25679
|
// The maxlength attribute doesn't work for the number type input, so the text type is used.
|
25655
25680
|
// The following logic simulates the behavior of a number input.
|
@@ -28396,6 +28421,9 @@
|
|
28396
28421
|
focus,
|
28397
28422
|
blur
|
28398
28423
|
} = useFocus(props);
|
28424
|
+
const {
|
28425
|
+
onIntersect
|
28426
|
+
} = useAutofocus(props);
|
28399
28427
|
const counterValue = vue.computed(() => {
|
28400
28428
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : (model.value || '').toString().length;
|
28401
28429
|
});
|
@@ -28404,10 +28432,6 @@
|
|
28404
28432
|
if (!props.counter || typeof props.counter !== 'number' && typeof props.counter !== 'string') return undefined;
|
28405
28433
|
return props.counter;
|
28406
28434
|
});
|
28407
|
-
function onIntersect(isIntersecting, entries) {
|
28408
|
-
if (!props.autofocus || !isIntersecting) return;
|
28409
|
-
entries[0].target?.focus?.();
|
28410
|
-
}
|
28411
28435
|
const vInputRef = vue.ref();
|
28412
28436
|
const vFieldRef = vue.ref();
|
28413
28437
|
const controlHeight = vue.shallowRef('');
|
@@ -29487,7 +29511,7 @@
|
|
29487
29511
|
};
|
29488
29512
|
});
|
29489
29513
|
}
|
29490
|
-
const version$1 = "3.8.9-master.2025-06-
|
29514
|
+
const version$1 = "3.8.9-master.2025-06-17";
|
29491
29515
|
createVuetify$1.version = version$1;
|
29492
29516
|
|
29493
29517
|
// Vue's inject() can only be used in setup
|
@@ -29512,7 +29536,7 @@
|
|
29512
29536
|
...options
|
29513
29537
|
});
|
29514
29538
|
};
|
29515
|
-
const version = "3.8.9-master.2025-06-
|
29539
|
+
const version = "3.8.9-master.2025-06-17";
|
29516
29540
|
createVuetify.version = version;
|
29517
29541
|
|
29518
29542
|
exports.blueprints = index;
|