@vuetify/nightly 3.8.0-beta.0-dev.2025-03-31 → 3.8.0-dev.2025-04-03
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 +10 -96
- package/dist/json/attributes.json +3028 -3028
- package/dist/json/importMap-labs.json +32 -32
- package/dist/json/importMap.json +154 -154
- package/dist/json/web-types.json +5664 -5664
- package/dist/vuetify-labs.cjs +73 -67
- package/dist/vuetify-labs.css +3832 -3835
- package/dist/vuetify-labs.d.ts +110 -71
- package/dist/vuetify-labs.esm.js +73 -67
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +73 -67
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +68 -58
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +4692 -4695
- package/dist/vuetify.d.ts +110 -71
- package/dist/vuetify.esm.js +68 -58
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +68 -58
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +88 -87
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +0 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +16 -19
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerPreview.js +4 -3
- package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +0 -1
- package/lib/components/VCombobox/VCombobox.js +22 -20
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +0 -1
- package/lib/components/VEmptyState/VEmptyState.js +3 -1
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VField/VField.d.ts +3 -0
- package/lib/components/VField/VField.js +3 -2
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VInput/VInput.css +11 -11
- package/lib/components/VInput/VInput.sass +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +39 -12
- package/lib/components/VSelect/VSelect.css +0 -1
- package/lib/components/VSelect/VSelect.js +11 -9
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelect/VSelect.sass +0 -1
- package/lib/components/VTextField/VTextField.d.ts +12 -3
- package/lib/composables/virtual.js +6 -1
- package/lib/composables/virtual.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/VDateInput/VDateInput.js +3 -8
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +2 -1
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/util/helpers.d.ts +1 -2
- package/lib/util/helpers.js +1 -11
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.0-
|
2
|
+
* Vuetify v3.8.0-dev.2025-04-03
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -11997,7 +11997,7 @@ const VField = genericComponent()({
|
|
11997
11997
|
return props.error || props.disabled ? undefined : isActive.value && isFocused.value ? props.color : props.baseColor;
|
11998
11998
|
});
|
11999
11999
|
const iconColor = computed(() => {
|
12000
|
-
if (!props.iconColor) return undefined;
|
12000
|
+
if (!props.iconColor || props.glow && !isFocused.value) return undefined;
|
12001
12001
|
return props.iconColor === true ? color.value : props.iconColor;
|
12002
12002
|
});
|
12003
12003
|
const {
|
@@ -12195,7 +12195,8 @@ const VField = genericComponent()({
|
|
12195
12195
|
})])]);
|
12196
12196
|
});
|
12197
12197
|
return {
|
12198
|
-
controlRef
|
12198
|
+
controlRef,
|
12199
|
+
fieldIconColor: iconColor
|
12199
12200
|
};
|
12200
12201
|
}
|
12201
12202
|
});
|
@@ -12545,7 +12546,12 @@ function useVirtual(props, items) {
|
|
12545
12546
|
}
|
12546
12547
|
function calculateOffset(index) {
|
12547
12548
|
index = clamp(index, 0, items.value.length - 1);
|
12548
|
-
|
12549
|
+
const whole = Math.floor(index);
|
12550
|
+
const fraction = index % 1;
|
12551
|
+
const next = whole + 1;
|
12552
|
+
const wholeOffset = offsets[whole] || 0;
|
12553
|
+
const nextOffset = offsets[next] || wholeOffset;
|
12554
|
+
return wholeOffset + (nextOffset - wholeOffset) * fraction;
|
12549
12555
|
}
|
12550
12556
|
function calculateIndex(scrollTop) {
|
12551
12557
|
return binaryClosest(offsets, scrollTop);
|
@@ -12933,14 +12939,6 @@ const VSelect = genericComponent()({
|
|
12933
12939
|
const vTextFieldRef = ref();
|
12934
12940
|
const vMenuRef = ref();
|
12935
12941
|
const vVirtualScrollRef = ref();
|
12936
|
-
const _menu = useProxiedModel(props, 'menu');
|
12937
|
-
const menu = computed({
|
12938
|
-
get: () => _menu.value,
|
12939
|
-
set: v => {
|
12940
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
12941
|
-
_menu.value = v;
|
12942
|
-
}
|
12943
|
-
});
|
12944
12942
|
const {
|
12945
12943
|
items,
|
12946
12944
|
transformIn,
|
@@ -12956,7 +12954,6 @@ const VSelect = genericComponent()({
|
|
12956
12954
|
const form = useForm(props);
|
12957
12955
|
const selectedValues = computed(() => model.value.map(selection => selection.value));
|
12958
12956
|
const isFocused = shallowRef(false);
|
12959
|
-
const label = computed(() => menu.value ? props.closeText : props.openText);
|
12960
12957
|
let keyboardLookupPrefix = '';
|
12961
12958
|
let keyboardLookupLastTime;
|
12962
12959
|
const displayItems = computed(() => {
|
@@ -12966,6 +12963,16 @@ const VSelect = genericComponent()({
|
|
12966
12963
|
return items.value;
|
12967
12964
|
});
|
12968
12965
|
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
|
12966
|
+
const _menu = useProxiedModel(props, 'menu');
|
12967
|
+
const menu = computed({
|
12968
|
+
get: () => _menu.value,
|
12969
|
+
set: v => {
|
12970
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
12971
|
+
if (v && menuDisabled.value) return;
|
12972
|
+
_menu.value = v;
|
12973
|
+
}
|
12974
|
+
});
|
12975
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
12969
12976
|
const computedMenuProps = computed(() => {
|
12970
12977
|
return {
|
12971
12978
|
...props.menuProps,
|
@@ -13261,6 +13268,7 @@ const VSelect = genericComponent()({
|
|
13261
13268
|
}
|
13262
13269
|
return createVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
|
13263
13270
|
"class": "v-select__menu-icon",
|
13271
|
+
"color": vTextFieldRef.value?.fieldIconColor,
|
13264
13272
|
"icon": props.menuIcon
|
13265
13273
|
}, null) : undefined]);
|
13266
13274
|
}
|
@@ -13464,17 +13472,8 @@ const VAutocomplete = genericComponent()({
|
|
13464
13472
|
const listHasFocus = shallowRef(false);
|
13465
13473
|
const vMenuRef = ref();
|
13466
13474
|
const vVirtualScrollRef = ref();
|
13467
|
-
const _menu = useProxiedModel(props, 'menu');
|
13468
|
-
const menu = computed({
|
13469
|
-
get: () => _menu.value,
|
13470
|
-
set: v => {
|
13471
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
13472
|
-
_menu.value = v;
|
13473
|
-
}
|
13474
|
-
});
|
13475
13475
|
const selectionIndex = shallowRef(-1);
|
13476
13476
|
const color = computed(() => vTextFieldRef.value?.color);
|
13477
|
-
const label = computed(() => menu.value ? props.closeText : props.openText);
|
13478
13477
|
const {
|
13479
13478
|
items,
|
13480
13479
|
transformIn,
|
@@ -13511,6 +13510,16 @@ const VAutocomplete = genericComponent()({
|
|
13511
13510
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
13512
13511
|
});
|
13513
13512
|
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
|
13513
|
+
const _menu = useProxiedModel(props, 'menu');
|
13514
|
+
const menu = computed({
|
13515
|
+
get: () => _menu.value,
|
13516
|
+
set: v => {
|
13517
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
13518
|
+
if (v && menuDisabled.value) return;
|
13519
|
+
_menu.value = v;
|
13520
|
+
}
|
13521
|
+
});
|
13522
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
13514
13523
|
const listRef = ref();
|
13515
13524
|
const listEvents = useScrolling(listRef, vTextFieldRef);
|
13516
13525
|
function onClear(e) {
|
@@ -13667,12 +13676,7 @@ const VAutocomplete = genericComponent()({
|
|
13667
13676
|
} else {
|
13668
13677
|
if (!props.multiple && search.value == null) model.value = [];
|
13669
13678
|
menu.value = false;
|
13670
|
-
if (
|
13671
|
-
let {
|
13672
|
-
title
|
13673
|
-
} = _ref3;
|
13674
|
-
return title === search.value;
|
13675
|
-
})) search.value = '';
|
13679
|
+
if (props.multiple || hasSelectionSlot.value) search.value = '';
|
13676
13680
|
selectionIndex.value = -1;
|
13677
13681
|
}
|
13678
13682
|
});
|
@@ -13760,12 +13764,12 @@ const VAutocomplete = genericComponent()({
|
|
13760
13764
|
"items": displayItems.value,
|
13761
13765
|
"itemKey": "value"
|
13762
13766
|
}, {
|
13763
|
-
default:
|
13767
|
+
default: _ref3 => {
|
13764
13768
|
let {
|
13765
13769
|
item,
|
13766
13770
|
index,
|
13767
13771
|
itemRef
|
13768
|
-
} =
|
13772
|
+
} = _ref3;
|
13769
13773
|
const itemProps = mergeProps(item.props, {
|
13770
13774
|
ref: itemRef,
|
13771
13775
|
key: item.value,
|
@@ -13779,10 +13783,10 @@ const VAutocomplete = genericComponent()({
|
|
13779
13783
|
}) ?? createVNode(VListItem, mergeProps(itemProps, {
|
13780
13784
|
"role": "option"
|
13781
13785
|
}), {
|
13782
|
-
prepend:
|
13786
|
+
prepend: _ref4 => {
|
13783
13787
|
let {
|
13784
13788
|
isSelected
|
13785
|
-
} =
|
13789
|
+
} = _ref4;
|
13786
13790
|
return createVNode(Fragment, null, [props.multiple && !props.hideSelected ? createVNode(VCheckboxBtn, {
|
13787
13791
|
"key": item.value,
|
13788
13792
|
"modelValue": isSelected,
|
@@ -13865,6 +13869,7 @@ const VAutocomplete = genericComponent()({
|
|
13865
13869
|
}
|
13866
13870
|
return createVNode(Fragment, null, [slots['append-inner']?.(...args), props.menuIcon ? createVNode(VIcon, {
|
13867
13871
|
"class": "v-autocomplete__menu-icon",
|
13872
|
+
"color": vTextFieldRef.value?.fieldIconColor,
|
13868
13873
|
"icon": props.menuIcon,
|
13869
13874
|
"onMousedown": onMousedownMenuIcon,
|
13870
13875
|
"onClick": noop,
|
@@ -16651,7 +16656,7 @@ const VColorPickerPreview = defineComponent({
|
|
16651
16656
|
const abortController = new AbortController();
|
16652
16657
|
onUnmounted(() => abortController.abort());
|
16653
16658
|
async function openEyeDropper() {
|
16654
|
-
if (!SUPPORTS_EYE_DROPPER) return;
|
16659
|
+
if (!SUPPORTS_EYE_DROPPER || props.disabled) return;
|
16655
16660
|
const eyeDropper = new window.EyeDropper();
|
16656
16661
|
try {
|
16657
16662
|
const result = await eyeDropper.open({
|
@@ -16673,10 +16678,11 @@ const VColorPickerPreview = defineComponent({
|
|
16673
16678
|
"class": "v-color-picker-preview__eye-dropper",
|
16674
16679
|
"key": "eyeDropper"
|
16675
16680
|
}, [createVNode(VBtn, {
|
16676
|
-
"
|
16681
|
+
"density": "comfortable",
|
16682
|
+
"disabled": props.disabled,
|
16677
16683
|
"icon": "$eyeDropper",
|
16678
16684
|
"variant": "plain",
|
16679
|
-
"
|
16685
|
+
"onClick": openEyeDropper
|
16680
16686
|
}, null)]), createVNode("div", {
|
16681
16687
|
"class": "v-color-picker-preview__dot"
|
16682
16688
|
}, [createVNode("div", {
|
@@ -18233,18 +18239,9 @@ const VCombobox = genericComponent()({
|
|
18233
18239
|
const listHasFocus = shallowRef(false);
|
18234
18240
|
const vMenuRef = ref();
|
18235
18241
|
const vVirtualScrollRef = ref();
|
18236
|
-
const _menu = useProxiedModel(props, 'menu');
|
18237
|
-
const menu = computed({
|
18238
|
-
get: () => _menu.value,
|
18239
|
-
set: v => {
|
18240
|
-
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
18241
|
-
_menu.value = v;
|
18242
|
-
}
|
18243
|
-
});
|
18244
18242
|
const selectionIndex = shallowRef(-1);
|
18245
18243
|
let cleared = false;
|
18246
18244
|
const color = computed(() => vTextFieldRef.value?.color);
|
18247
|
-
const label = computed(() => menu.value ? props.closeText : props.openText);
|
18248
18245
|
const {
|
18249
18246
|
items,
|
18250
18247
|
transformIn,
|
@@ -18288,6 +18285,27 @@ const VCombobox = genericComponent()({
|
|
18288
18285
|
const counterValue = computed(() => {
|
18289
18286
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : props.multiple ? model.value.length : search.value.length;
|
18290
18287
|
});
|
18288
|
+
const {
|
18289
|
+
filteredItems,
|
18290
|
+
getMatches
|
18291
|
+
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
18292
|
+
const displayItems = computed(() => {
|
18293
|
+
if (props.hideSelected) {
|
18294
|
+
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
18295
|
+
}
|
18296
|
+
return filteredItems.value;
|
18297
|
+
});
|
18298
|
+
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
|
18299
|
+
const _menu = useProxiedModel(props, 'menu');
|
18300
|
+
const menu = computed({
|
18301
|
+
get: () => _menu.value,
|
18302
|
+
set: v => {
|
18303
|
+
if (_menu.value && !v && vMenuRef.value?.ΨopenChildren.size) return;
|
18304
|
+
if (v && menuDisabled.value) return;
|
18305
|
+
_menu.value = v;
|
18306
|
+
}
|
18307
|
+
});
|
18308
|
+
const label = computed(() => menu.value ? props.closeText : props.openText);
|
18291
18309
|
watch(_search, value => {
|
18292
18310
|
if (cleared) {
|
18293
18311
|
// wait for clear to finish, VTextField sets _search to null
|
@@ -18303,22 +18321,11 @@ const VCombobox = genericComponent()({
|
|
18303
18321
|
_search.value = value[0]?.title ?? '';
|
18304
18322
|
}
|
18305
18323
|
});
|
18306
|
-
const {
|
18307
|
-
filteredItems,
|
18308
|
-
getMatches
|
18309
|
-
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
18310
|
-
const displayItems = computed(() => {
|
18311
|
-
if (props.hideSelected) {
|
18312
|
-
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
18313
|
-
}
|
18314
|
-
return filteredItems.value;
|
18315
|
-
});
|
18316
18324
|
const selectedValues = computed(() => model.value.map(selection => selection.value));
|
18317
18325
|
const highlightFirst = computed(() => {
|
18318
18326
|
const selectFirst = props.autoSelectFirst === true || props.autoSelectFirst === 'exact' && search.value === displayItems.value[0]?.title;
|
18319
18327
|
return selectFirst && displayItems.value.length > 0 && !isPristine.value && !listHasFocus.value;
|
18320
18328
|
});
|
18321
|
-
const menuDisabled = computed(() => props.hideNoData && !displayItems.value.length || form.isReadonly.value || form.isDisabled.value);
|
18322
18329
|
const listRef = ref();
|
18323
18330
|
const listEvents = useScrolling(listRef, vTextFieldRef);
|
18324
18331
|
function onClear(e) {
|
@@ -18669,6 +18676,7 @@ const VCombobox = genericComponent()({
|
|
18669
18676
|
}
|
18670
18677
|
return createVNode(Fragment, null, [slots['append-inner']?.(...args), (!props.hideNoData || props.items.length) && props.menuIcon ? createVNode(VIcon, {
|
18671
18678
|
"class": "v-combobox__menu-icon",
|
18679
|
+
"color": vTextFieldRef.value?.fieldIconColor,
|
18672
18680
|
"icon": props.menuIcon,
|
18673
18681
|
"onMousedown": onMousedownMenuIcon,
|
18674
18682
|
"onClick": noop,
|
@@ -23061,7 +23069,9 @@ const VEmptyState = genericComponent()({
|
|
23061
23069
|
VBtn: {
|
23062
23070
|
class: 'v-empty-state__action-btn',
|
23063
23071
|
color: props.color ?? 'surface-variant',
|
23064
|
-
|
23072
|
+
href: props.href,
|
23073
|
+
text: props.actionText,
|
23074
|
+
to: props.to
|
23065
23075
|
}
|
23066
23076
|
}
|
23067
23077
|
}, {
|
@@ -29208,7 +29218,7 @@ function createVuetify$1() {
|
|
29208
29218
|
};
|
29209
29219
|
});
|
29210
29220
|
}
|
29211
|
-
const version$1 = "3.8.0-
|
29221
|
+
const version$1 = "3.8.0-dev.2025-04-03";
|
29212
29222
|
createVuetify$1.version = version$1;
|
29213
29223
|
|
29214
29224
|
// Vue's inject() can only be used in setup
|
@@ -29233,7 +29243,7 @@ const createVuetify = function () {
|
|
29233
29243
|
...options
|
29234
29244
|
});
|
29235
29245
|
};
|
29236
|
-
const version = "3.8.0-
|
29246
|
+
const version = "3.8.0-dev.2025-04-03";
|
29237
29247
|
createVuetify.version = version;
|
29238
29248
|
|
29239
29249
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|