@vuetify/nightly 3.6.13-3.7.0-beta.0.0-dev.2024-07-24 → 3.6.13-3.7.0-beta.0.0-dev.2024-07-25
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/importMap-labs.json +28 -28
- package/dist/json/importMap.json +142 -142
- package/dist/json/web-types.json +1 -1
- package/dist/vuetify-labs.css +1853 -1853
- package/dist/vuetify-labs.d.ts +6 -3
- package/dist/vuetify-labs.esm.js +62 -42
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +62 -42
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1851 -1851
- package/dist/vuetify.d.ts +57 -54
- package/dist/vuetify.esm.js +62 -42
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +62 -42
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +984 -985
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +15 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +15 -8
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +7 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +3 -3
- package/lib/components/VOverlay/locationStrategies.mjs +0 -6
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +15 -13
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/useScrolling.mjs +3 -3
- package/lib/components/VSelect/useScrolling.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +2 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.d.mts +3 -0
- package/lib/components/index.d.mts +6 -3
- package/lib/composables/virtual.mjs +1 -0
- package/lib/composables/virtual.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +51 -51
- package/lib/util/helpers.mjs +5 -0
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.6.13-3.7.0-beta.0.0-dev.2024-07-
|
2
|
+
* Vuetify v3.6.13-3.7.0-beta.0.0-dev.2024-07-25
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -579,6 +579,11 @@
|
|
579
579
|
});
|
580
580
|
return fn;
|
581
581
|
}
|
582
|
+
function checkPrintable(e) {
|
583
|
+
const isPrintableChar = e.key.length === 1;
|
584
|
+
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
585
|
+
return isPrintableChar && noModifier;
|
586
|
+
}
|
582
587
|
|
583
588
|
// Utilities
|
584
589
|
const block = ['top', 'bottom'];
|
@@ -9747,12 +9752,6 @@
|
|
9747
9752
|
// el.style.removeProperty('max-width')
|
9748
9753
|
// el.style.removeProperty('max-height')
|
9749
9754
|
|
9750
|
-
if (isRtl) {
|
9751
|
-
el.style.removeProperty('left');
|
9752
|
-
} else {
|
9753
|
-
el.style.removeProperty('right');
|
9754
|
-
}
|
9755
|
-
|
9756
9755
|
/* eslint-disable-next-line sonarjs/prefer-immediate-return */
|
9757
9756
|
const contentBox = nullifyTransforms(el);
|
9758
9757
|
if (isRtl) {
|
@@ -11144,23 +11143,25 @@
|
|
11144
11143
|
const id = vue.computed(() => props.id || `v-menu-${uid}`);
|
11145
11144
|
const overlay = vue.ref();
|
11146
11145
|
const parent = vue.inject(VMenuSymbol, null);
|
11147
|
-
const openChildren = vue.shallowRef(
|
11146
|
+
const openChildren = vue.shallowRef(new Set());
|
11148
11147
|
vue.provide(VMenuSymbol, {
|
11149
11148
|
register() {
|
11150
|
-
|
11149
|
+
openChildren.value.add(uid);
|
11151
11150
|
},
|
11152
11151
|
unregister() {
|
11153
|
-
|
11152
|
+
openChildren.value.delete(uid);
|
11154
11153
|
},
|
11155
11154
|
closeParents(e) {
|
11156
11155
|
setTimeout(() => {
|
11157
|
-
if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
11156
|
+
if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
11158
11157
|
isActive.value = false;
|
11159
11158
|
parent?.closeParents();
|
11160
11159
|
}
|
11161
11160
|
}, 40);
|
11162
11161
|
}
|
11163
11162
|
});
|
11163
|
+
vue.onBeforeUnmount(() => parent?.unregister());
|
11164
|
+
vue.onDeactivated(() => isActive.value = false);
|
11164
11165
|
async function onFocusIn(e) {
|
11165
11166
|
const before = e.relatedTarget;
|
11166
11167
|
const after = e.target;
|
@@ -12072,6 +12073,7 @@
|
|
12072
12073
|
deep: true
|
12073
12074
|
});
|
12074
12075
|
return {
|
12076
|
+
calculateVisibleItems,
|
12075
12077
|
containerRef,
|
12076
12078
|
markerRef,
|
12077
12079
|
computedItems,
|
@@ -12135,6 +12137,7 @@
|
|
12135
12137
|
dimensionStyles
|
12136
12138
|
} = useDimension(props);
|
12137
12139
|
const {
|
12140
|
+
calculateVisibleItems,
|
12138
12141
|
containerRef,
|
12139
12142
|
markerRef,
|
12140
12143
|
handleScroll,
|
@@ -12206,6 +12209,7 @@
|
|
12206
12209
|
}, [children])]);
|
12207
12210
|
});
|
12208
12211
|
return {
|
12212
|
+
calculateVisibleItems,
|
12209
12213
|
scrollToIndex
|
12210
12214
|
};
|
12211
12215
|
}
|
@@ -12274,9 +12278,9 @@
|
|
12274
12278
|
}
|
12275
12279
|
}
|
12276
12280
|
return {
|
12277
|
-
onListScroll,
|
12278
|
-
onListKeydown
|
12279
|
-
};
|
12281
|
+
onScrollPassive: onListScroll,
|
12282
|
+
onKeydown: onListKeydown
|
12283
|
+
}; // typescript doesn't know about vue's event merging
|
12280
12284
|
}
|
12281
12285
|
|
12282
12286
|
// Types
|
@@ -12351,7 +12355,7 @@
|
|
12351
12355
|
const menu = vue.computed({
|
12352
12356
|
get: () => _menu.value,
|
12353
12357
|
set: v => {
|
12354
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
12358
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
12355
12359
|
_menu.value = v;
|
12356
12360
|
}
|
12357
12361
|
});
|
@@ -12390,10 +12394,7 @@
|
|
12390
12394
|
};
|
12391
12395
|
});
|
12392
12396
|
const listRef = vue.ref();
|
12393
|
-
const
|
12394
|
-
onListScroll,
|
12395
|
-
onListKeydown
|
12396
|
-
} = useScrolling(listRef, vTextFieldRef);
|
12397
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
12397
12398
|
function onClear(e) {
|
12398
12399
|
if (props.openOnClear) {
|
12399
12400
|
menu.value = true;
|
@@ -12403,6 +12404,11 @@
|
|
12403
12404
|
if (menuDisabled.value) return;
|
12404
12405
|
menu.value = !menu.value;
|
12405
12406
|
}
|
12407
|
+
function onListKeydown(e) {
|
12408
|
+
if (checkPrintable(e)) {
|
12409
|
+
onKeydown(e);
|
12410
|
+
}
|
12411
|
+
}
|
12406
12412
|
function onKeydown(e) {
|
12407
12413
|
if (!e.key || props.readonly || form?.isReadonly.value) return;
|
12408
12414
|
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
@@ -12423,11 +12429,6 @@
|
|
12423
12429
|
// html select hotkeys
|
12424
12430
|
const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
|
12425
12431
|
|
12426
|
-
function checkPrintable(e) {
|
12427
|
-
const isPrintableChar = e.key.length === 1;
|
12428
|
-
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
12429
|
-
return isPrintableChar && noModifier;
|
12430
|
-
}
|
12431
12432
|
if (props.multiple || !checkPrintable(e)) return;
|
12432
12433
|
const now = performance.now();
|
12433
12434
|
if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
|
@@ -12472,6 +12473,11 @@
|
|
12472
12473
|
menu.value = false;
|
12473
12474
|
}
|
12474
12475
|
}
|
12476
|
+
function onAfterEnter() {
|
12477
|
+
if (props.eager) {
|
12478
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
12479
|
+
}
|
12480
|
+
}
|
12475
12481
|
function onAfterLeave() {
|
12476
12482
|
if (isFocused.value) {
|
12477
12483
|
vTextFieldRef.value?.focus();
|
@@ -12550,6 +12556,7 @@
|
|
12550
12556
|
"openOnClick": false,
|
12551
12557
|
"closeOnContentClick": false,
|
12552
12558
|
"transition": props.transition,
|
12559
|
+
"onAfterEnter": onAfterEnter,
|
12553
12560
|
"onAfterLeave": onAfterLeave
|
12554
12561
|
}, computedMenuProps.value), {
|
12555
12562
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
@@ -12559,11 +12566,10 @@
|
|
12559
12566
|
"onMousedown": e => e.preventDefault(),
|
12560
12567
|
"onKeydown": onListKeydown,
|
12561
12568
|
"onFocusin": onFocusin,
|
12562
|
-
"onScrollPassive": onListScroll,
|
12563
12569
|
"tabindex": "-1",
|
12564
12570
|
"aria-live": "polite",
|
12565
12571
|
"color": props.itemColor ?? props.color
|
12566
|
-
}, props.listProps), {
|
12572
|
+
}, listEvents, props.listProps), {
|
12567
12573
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
12568
12574
|
"title": t(props.noDataText)
|
12569
12575
|
}, null)), vue.createVNode(VVirtualScroll, {
|
@@ -12858,7 +12864,7 @@
|
|
12858
12864
|
const menu = vue.computed({
|
12859
12865
|
get: () => _menu.value,
|
12860
12866
|
set: v => {
|
12861
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
12867
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
12862
12868
|
_menu.value = v;
|
12863
12869
|
}
|
12864
12870
|
});
|
@@ -12902,10 +12908,7 @@
|
|
12902
12908
|
});
|
12903
12909
|
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
12904
12910
|
const listRef = vue.ref();
|
12905
|
-
const
|
12906
|
-
onListScroll,
|
12907
|
-
onListKeydown
|
12908
|
-
} = useScrolling(listRef, vTextFieldRef);
|
12911
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
12909
12912
|
function onClear(e) {
|
12910
12913
|
if (props.openOnClear) {
|
12911
12914
|
menu.value = true;
|
@@ -12924,6 +12927,11 @@
|
|
12924
12927
|
}
|
12925
12928
|
menu.value = !menu.value;
|
12926
12929
|
}
|
12930
|
+
function onListKeydown(e) {
|
12931
|
+
if (checkPrintable(e)) {
|
12932
|
+
vTextFieldRef.value?.focus();
|
12933
|
+
}
|
12934
|
+
}
|
12927
12935
|
function onKeydown(e) {
|
12928
12936
|
if (props.readonly || form?.isReadonly.value) return;
|
12929
12937
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
@@ -12988,6 +12996,11 @@
|
|
12988
12996
|
}
|
12989
12997
|
}
|
12990
12998
|
}
|
12999
|
+
function onAfterEnter() {
|
13000
|
+
if (props.eager) {
|
13001
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
13002
|
+
}
|
13003
|
+
}
|
12991
13004
|
function onAfterLeave() {
|
12992
13005
|
if (isFocused.value) {
|
12993
13006
|
isPristine.value = true;
|
@@ -13116,6 +13129,7 @@
|
|
13116
13129
|
"openOnClick": false,
|
13117
13130
|
"closeOnContentClick": false,
|
13118
13131
|
"transition": props.transition,
|
13132
|
+
"onAfterEnter": onAfterEnter,
|
13119
13133
|
"onAfterLeave": onAfterLeave
|
13120
13134
|
}, props.menuProps), {
|
13121
13135
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
@@ -13126,11 +13140,10 @@
|
|
13126
13140
|
"onKeydown": onListKeydown,
|
13127
13141
|
"onFocusin": onFocusin,
|
13128
13142
|
"onFocusout": onFocusout,
|
13129
|
-
"onScrollPassive": onListScroll,
|
13130
13143
|
"tabindex": "-1",
|
13131
13144
|
"aria-live": "polite",
|
13132
13145
|
"color": props.itemColor ?? props.color
|
13133
|
-
}, props.listProps), {
|
13146
|
+
}, listEvents, props.listProps), {
|
13134
13147
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
13135
13148
|
"title": t(props.noDataText)
|
13136
13149
|
}, null)), vue.createVNode(VVirtualScroll, {
|
@@ -16691,7 +16704,7 @@
|
|
16691
16704
|
const menu = vue.computed({
|
16692
16705
|
get: () => _menu.value,
|
16693
16706
|
set: v => {
|
16694
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
16707
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
16695
16708
|
_menu.value = v;
|
16696
16709
|
}
|
16697
16710
|
});
|
@@ -16774,10 +16787,7 @@
|
|
16774
16787
|
});
|
16775
16788
|
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
16776
16789
|
const listRef = vue.ref();
|
16777
|
-
const
|
16778
|
-
onListScroll,
|
16779
|
-
onListKeydown
|
16780
|
-
} = useScrolling(listRef, vTextFieldRef);
|
16790
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
16781
16791
|
function onClear(e) {
|
16782
16792
|
cleared = true;
|
16783
16793
|
if (props.openOnClear) {
|
@@ -16796,6 +16806,11 @@
|
|
16796
16806
|
}
|
16797
16807
|
menu.value = !menu.value;
|
16798
16808
|
}
|
16809
|
+
function onListKeydown(e) {
|
16810
|
+
if (checkPrintable(e)) {
|
16811
|
+
vTextFieldRef.value?.focus();
|
16812
|
+
}
|
16813
|
+
}
|
16799
16814
|
// eslint-disable-next-line complexity
|
16800
16815
|
function onKeydown(e) {
|
16801
16816
|
if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
|
@@ -16860,6 +16875,11 @@
|
|
16860
16875
|
}
|
16861
16876
|
}
|
16862
16877
|
}
|
16878
|
+
function onAfterEnter() {
|
16879
|
+
if (props.eager) {
|
16880
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
16881
|
+
}
|
16882
|
+
}
|
16863
16883
|
function onAfterLeave() {
|
16864
16884
|
if (isFocused.value) {
|
16865
16885
|
isPristine.value = true;
|
@@ -16984,6 +17004,7 @@
|
|
16984
17004
|
"openOnClick": false,
|
16985
17005
|
"closeOnContentClick": false,
|
16986
17006
|
"transition": props.transition,
|
17007
|
+
"onAfterEnter": onAfterEnter,
|
16987
17008
|
"onAfterLeave": onAfterLeave
|
16988
17009
|
}, props.menuProps), {
|
16989
17010
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
@@ -16994,11 +17015,10 @@
|
|
16994
17015
|
"onKeydown": onListKeydown,
|
16995
17016
|
"onFocusin": onFocusin,
|
16996
17017
|
"onFocusout": onFocusout,
|
16997
|
-
"onScrollPassive": onListScroll,
|
16998
17018
|
"tabindex": "-1",
|
16999
17019
|
"aria-live": "polite",
|
17000
17020
|
"color": props.itemColor ?? props.color
|
17001
|
-
}, props.listProps), {
|
17021
|
+
}, listEvents, props.listProps), {
|
17002
17022
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
17003
17023
|
"title": t(props.noDataText)
|
17004
17024
|
}, null)), vue.createVNode(VVirtualScroll, {
|
@@ -30292,7 +30312,7 @@
|
|
30292
30312
|
goTo
|
30293
30313
|
};
|
30294
30314
|
}
|
30295
|
-
const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-
|
30315
|
+
const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
|
30296
30316
|
createVuetify$1.version = version$1;
|
30297
30317
|
|
30298
30318
|
// Vue's inject() can only be used in setup
|
@@ -30545,7 +30565,7 @@
|
|
30545
30565
|
|
30546
30566
|
/* eslint-disable local-rules/sort-imports */
|
30547
30567
|
|
30548
|
-
const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-
|
30568
|
+
const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
|
30549
30569
|
|
30550
30570
|
/* eslint-disable local-rules/sort-imports */
|
30551
30571
|
|