@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.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
|
*/
|
@@ -502,6 +502,11 @@
|
|
502
502
|
});
|
503
503
|
return fn;
|
504
504
|
}
|
505
|
+
function checkPrintable(e) {
|
506
|
+
const isPrintableChar = e.key.length === 1;
|
507
|
+
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
508
|
+
return isPrintableChar && noModifier;
|
509
|
+
}
|
505
510
|
|
506
511
|
// Utilities
|
507
512
|
const block = ['top', 'bottom'];
|
@@ -9980,12 +9985,6 @@
|
|
9980
9985
|
// el.style.removeProperty('max-width')
|
9981
9986
|
// el.style.removeProperty('max-height')
|
9982
9987
|
|
9983
|
-
if (isRtl) {
|
9984
|
-
el.style.removeProperty('left');
|
9985
|
-
} else {
|
9986
|
-
el.style.removeProperty('right');
|
9987
|
-
}
|
9988
|
-
|
9989
9988
|
/* eslint-disable-next-line sonarjs/prefer-immediate-return */
|
9990
9989
|
const contentBox = nullifyTransforms(el);
|
9991
9990
|
if (isRtl) {
|
@@ -11377,23 +11376,25 @@
|
|
11377
11376
|
const id = vue.computed(() => props.id || `v-menu-${uid}`);
|
11378
11377
|
const overlay = vue.ref();
|
11379
11378
|
const parent = vue.inject(VMenuSymbol, null);
|
11380
|
-
const openChildren = vue.shallowRef(
|
11379
|
+
const openChildren = vue.shallowRef(new Set());
|
11381
11380
|
vue.provide(VMenuSymbol, {
|
11382
11381
|
register() {
|
11383
|
-
|
11382
|
+
openChildren.value.add(uid);
|
11384
11383
|
},
|
11385
11384
|
unregister() {
|
11386
|
-
|
11385
|
+
openChildren.value.delete(uid);
|
11387
11386
|
},
|
11388
11387
|
closeParents(e) {
|
11389
11388
|
setTimeout(() => {
|
11390
|
-
if (!openChildren.value && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
11389
|
+
if (!openChildren.value.size && !props.persistent && (e == null || e && !isClickInsideElement(e, overlay.value.contentEl))) {
|
11391
11390
|
isActive.value = false;
|
11392
11391
|
parent?.closeParents();
|
11393
11392
|
}
|
11394
11393
|
}, 40);
|
11395
11394
|
}
|
11396
11395
|
});
|
11396
|
+
vue.onBeforeUnmount(() => parent?.unregister());
|
11397
|
+
vue.onDeactivated(() => isActive.value = false);
|
11397
11398
|
async function onFocusIn(e) {
|
11398
11399
|
const before = e.relatedTarget;
|
11399
11400
|
const after = e.target;
|
@@ -12305,6 +12306,7 @@
|
|
12305
12306
|
deep: true
|
12306
12307
|
});
|
12307
12308
|
return {
|
12309
|
+
calculateVisibleItems,
|
12308
12310
|
containerRef,
|
12309
12311
|
markerRef,
|
12310
12312
|
computedItems,
|
@@ -12368,6 +12370,7 @@
|
|
12368
12370
|
dimensionStyles
|
12369
12371
|
} = useDimension(props);
|
12370
12372
|
const {
|
12373
|
+
calculateVisibleItems,
|
12371
12374
|
containerRef,
|
12372
12375
|
markerRef,
|
12373
12376
|
handleScroll,
|
@@ -12439,6 +12442,7 @@
|
|
12439
12442
|
}, [children])]);
|
12440
12443
|
});
|
12441
12444
|
return {
|
12445
|
+
calculateVisibleItems,
|
12442
12446
|
scrollToIndex
|
12443
12447
|
};
|
12444
12448
|
}
|
@@ -12507,9 +12511,9 @@
|
|
12507
12511
|
}
|
12508
12512
|
}
|
12509
12513
|
return {
|
12510
|
-
onListScroll,
|
12511
|
-
onListKeydown
|
12512
|
-
};
|
12514
|
+
onScrollPassive: onListScroll,
|
12515
|
+
onKeydown: onListKeydown
|
12516
|
+
}; // typescript doesn't know about vue's event merging
|
12513
12517
|
}
|
12514
12518
|
|
12515
12519
|
// Types
|
@@ -12584,7 +12588,7 @@
|
|
12584
12588
|
const menu = vue.computed({
|
12585
12589
|
get: () => _menu.value,
|
12586
12590
|
set: v => {
|
12587
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
12591
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
12588
12592
|
_menu.value = v;
|
12589
12593
|
}
|
12590
12594
|
});
|
@@ -12623,10 +12627,7 @@
|
|
12623
12627
|
};
|
12624
12628
|
});
|
12625
12629
|
const listRef = vue.ref();
|
12626
|
-
const
|
12627
|
-
onListScroll,
|
12628
|
-
onListKeydown
|
12629
|
-
} = useScrolling(listRef, vTextFieldRef);
|
12630
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
12630
12631
|
function onClear(e) {
|
12631
12632
|
if (props.openOnClear) {
|
12632
12633
|
menu.value = true;
|
@@ -12636,6 +12637,11 @@
|
|
12636
12637
|
if (menuDisabled.value) return;
|
12637
12638
|
menu.value = !menu.value;
|
12638
12639
|
}
|
12640
|
+
function onListKeydown(e) {
|
12641
|
+
if (checkPrintable(e)) {
|
12642
|
+
onKeydown(e);
|
12643
|
+
}
|
12644
|
+
}
|
12639
12645
|
function onKeydown(e) {
|
12640
12646
|
if (!e.key || props.readonly || form?.isReadonly.value) return;
|
12641
12647
|
if (['Enter', ' ', 'ArrowDown', 'ArrowUp', 'Home', 'End'].includes(e.key)) {
|
@@ -12656,11 +12662,6 @@
|
|
12656
12662
|
// html select hotkeys
|
12657
12663
|
const KEYBOARD_LOOKUP_THRESHOLD = 1000; // milliseconds
|
12658
12664
|
|
12659
|
-
function checkPrintable(e) {
|
12660
|
-
const isPrintableChar = e.key.length === 1;
|
12661
|
-
const noModifier = !e.ctrlKey && !e.metaKey && !e.altKey;
|
12662
|
-
return isPrintableChar && noModifier;
|
12663
|
-
}
|
12664
12665
|
if (props.multiple || !checkPrintable(e)) return;
|
12665
12666
|
const now = performance.now();
|
12666
12667
|
if (now - keyboardLookupLastTime > KEYBOARD_LOOKUP_THRESHOLD) {
|
@@ -12705,6 +12706,11 @@
|
|
12705
12706
|
menu.value = false;
|
12706
12707
|
}
|
12707
12708
|
}
|
12709
|
+
function onAfterEnter() {
|
12710
|
+
if (props.eager) {
|
12711
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
12712
|
+
}
|
12713
|
+
}
|
12708
12714
|
function onAfterLeave() {
|
12709
12715
|
if (isFocused.value) {
|
12710
12716
|
vTextFieldRef.value?.focus();
|
@@ -12783,6 +12789,7 @@
|
|
12783
12789
|
"openOnClick": false,
|
12784
12790
|
"closeOnContentClick": false,
|
12785
12791
|
"transition": props.transition,
|
12792
|
+
"onAfterEnter": onAfterEnter,
|
12786
12793
|
"onAfterLeave": onAfterLeave
|
12787
12794
|
}, computedMenuProps.value), {
|
12788
12795
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
@@ -12792,11 +12799,10 @@
|
|
12792
12799
|
"onMousedown": e => e.preventDefault(),
|
12793
12800
|
"onKeydown": onListKeydown,
|
12794
12801
|
"onFocusin": onFocusin,
|
12795
|
-
"onScrollPassive": onListScroll,
|
12796
12802
|
"tabindex": "-1",
|
12797
12803
|
"aria-live": "polite",
|
12798
12804
|
"color": props.itemColor ?? props.color
|
12799
|
-
}, props.listProps), {
|
12805
|
+
}, listEvents, props.listProps), {
|
12800
12806
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
12801
12807
|
"title": t(props.noDataText)
|
12802
12808
|
}, null)), vue.createVNode(VVirtualScroll, {
|
@@ -13091,7 +13097,7 @@
|
|
13091
13097
|
const menu = vue.computed({
|
13092
13098
|
get: () => _menu.value,
|
13093
13099
|
set: v => {
|
13094
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
13100
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
13095
13101
|
_menu.value = v;
|
13096
13102
|
}
|
13097
13103
|
});
|
@@ -13135,10 +13141,7 @@
|
|
13135
13141
|
});
|
13136
13142
|
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
13137
13143
|
const listRef = vue.ref();
|
13138
|
-
const
|
13139
|
-
onListScroll,
|
13140
|
-
onListKeydown
|
13141
|
-
} = useScrolling(listRef, vTextFieldRef);
|
13144
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
13142
13145
|
function onClear(e) {
|
13143
13146
|
if (props.openOnClear) {
|
13144
13147
|
menu.value = true;
|
@@ -13157,6 +13160,11 @@
|
|
13157
13160
|
}
|
13158
13161
|
menu.value = !menu.value;
|
13159
13162
|
}
|
13163
|
+
function onListKeydown(e) {
|
13164
|
+
if (checkPrintable(e)) {
|
13165
|
+
vTextFieldRef.value?.focus();
|
13166
|
+
}
|
13167
|
+
}
|
13160
13168
|
function onKeydown(e) {
|
13161
13169
|
if (props.readonly || form?.isReadonly.value) return;
|
13162
13170
|
const selectionStart = vTextFieldRef.value.selectionStart;
|
@@ -13221,6 +13229,11 @@
|
|
13221
13229
|
}
|
13222
13230
|
}
|
13223
13231
|
}
|
13232
|
+
function onAfterEnter() {
|
13233
|
+
if (props.eager) {
|
13234
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
13235
|
+
}
|
13236
|
+
}
|
13224
13237
|
function onAfterLeave() {
|
13225
13238
|
if (isFocused.value) {
|
13226
13239
|
isPristine.value = true;
|
@@ -13349,6 +13362,7 @@
|
|
13349
13362
|
"openOnClick": false,
|
13350
13363
|
"closeOnContentClick": false,
|
13351
13364
|
"transition": props.transition,
|
13365
|
+
"onAfterEnter": onAfterEnter,
|
13352
13366
|
"onAfterLeave": onAfterLeave
|
13353
13367
|
}, props.menuProps), {
|
13354
13368
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
@@ -13359,11 +13373,10 @@
|
|
13359
13373
|
"onKeydown": onListKeydown,
|
13360
13374
|
"onFocusin": onFocusin,
|
13361
13375
|
"onFocusout": onFocusout,
|
13362
|
-
"onScrollPassive": onListScroll,
|
13363
13376
|
"tabindex": "-1",
|
13364
13377
|
"aria-live": "polite",
|
13365
13378
|
"color": props.itemColor ?? props.color
|
13366
|
-
}, props.listProps), {
|
13379
|
+
}, listEvents, props.listProps), {
|
13367
13380
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
13368
13381
|
"title": t(props.noDataText)
|
13369
13382
|
}, null)), vue.createVNode(VVirtualScroll, {
|
@@ -16924,7 +16937,7 @@
|
|
16924
16937
|
const menu = vue.computed({
|
16925
16938
|
get: () => _menu.value,
|
16926
16939
|
set: v => {
|
16927
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren) return;
|
16940
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
16928
16941
|
_menu.value = v;
|
16929
16942
|
}
|
16930
16943
|
});
|
@@ -17007,10 +17020,7 @@
|
|
17007
17020
|
});
|
17008
17021
|
const menuDisabled = vue.computed(() => props.hideNoData && !displayItems.value.length || props.readonly || form?.isReadonly.value);
|
17009
17022
|
const listRef = vue.ref();
|
17010
|
-
const
|
17011
|
-
onListScroll,
|
17012
|
-
onListKeydown
|
17013
|
-
} = useScrolling(listRef, vTextFieldRef);
|
17023
|
+
const listEvents = useScrolling(listRef, vTextFieldRef);
|
17014
17024
|
function onClear(e) {
|
17015
17025
|
cleared = true;
|
17016
17026
|
if (props.openOnClear) {
|
@@ -17029,6 +17039,11 @@
|
|
17029
17039
|
}
|
17030
17040
|
menu.value = !menu.value;
|
17031
17041
|
}
|
17042
|
+
function onListKeydown(e) {
|
17043
|
+
if (checkPrintable(e)) {
|
17044
|
+
vTextFieldRef.value?.focus();
|
17045
|
+
}
|
17046
|
+
}
|
17032
17047
|
// eslint-disable-next-line complexity
|
17033
17048
|
function onKeydown(e) {
|
17034
17049
|
if (isComposingIgnoreKey(e) || props.readonly || form?.isReadonly.value) return;
|
@@ -17093,6 +17108,11 @@
|
|
17093
17108
|
}
|
17094
17109
|
}
|
17095
17110
|
}
|
17111
|
+
function onAfterEnter() {
|
17112
|
+
if (props.eager) {
|
17113
|
+
vVirtualScrollRef.value?.calculateVisibleItems();
|
17114
|
+
}
|
17115
|
+
}
|
17096
17116
|
function onAfterLeave() {
|
17097
17117
|
if (isFocused.value) {
|
17098
17118
|
isPristine.value = true;
|
@@ -17217,6 +17237,7 @@
|
|
17217
17237
|
"openOnClick": false,
|
17218
17238
|
"closeOnContentClick": false,
|
17219
17239
|
"transition": props.transition,
|
17240
|
+
"onAfterEnter": onAfterEnter,
|
17220
17241
|
"onAfterLeave": onAfterLeave
|
17221
17242
|
}, props.menuProps), {
|
17222
17243
|
default: () => [hasList && vue.createVNode(VList, vue.mergeProps({
|
@@ -17227,11 +17248,10 @@
|
|
17227
17248
|
"onKeydown": onListKeydown,
|
17228
17249
|
"onFocusin": onFocusin,
|
17229
17250
|
"onFocusout": onFocusout,
|
17230
|
-
"onScrollPassive": onListScroll,
|
17231
17251
|
"tabindex": "-1",
|
17232
17252
|
"aria-live": "polite",
|
17233
17253
|
"color": props.itemColor ?? props.color
|
17234
|
-
}, props.listProps), {
|
17254
|
+
}, listEvents, props.listProps), {
|
17235
17255
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? vue.createVNode(VListItem, {
|
17236
17256
|
"title": t(props.noDataText)
|
17237
17257
|
}, null)), vue.createVNode(VVirtualScroll, {
|
@@ -28159,7 +28179,7 @@
|
|
28159
28179
|
goTo
|
28160
28180
|
};
|
28161
28181
|
}
|
28162
|
-
const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-
|
28182
|
+
const version$1 = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
|
28163
28183
|
createVuetify$1.version = version$1;
|
28164
28184
|
|
28165
28185
|
// Vue's inject() can only be used in setup
|
@@ -28184,7 +28204,7 @@
|
|
28184
28204
|
...options
|
28185
28205
|
});
|
28186
28206
|
};
|
28187
|
-
const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-
|
28207
|
+
const version = "3.6.13-3.7.0-beta.0.0-dev.2024-07-25";
|
28188
28208
|
createVuetify.version = version;
|
28189
28209
|
|
28190
28210
|
exports.blueprints = index;
|