@vuetify/nightly 3.10.5-dev.2025-10-07 → 3.10.5-dev.2025-10-10
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 +21 -3
- package/dist/json/attributes.json +2024 -2040
- package/dist/json/importMap-labs.json +12 -12
- package/dist/json/importMap.json +180 -180
- package/dist/json/tags.json +5 -9
- package/dist/json/web-types.json +3964 -3985
- package/dist/vuetify-labs.cjs +233 -169
- package/dist/vuetify-labs.css +4520 -4520
- package/dist/vuetify-labs.d.ts +1444 -1390
- package/dist/vuetify-labs.esm.js +233 -169
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +233 -169
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +156 -92
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3385 -3385
- package/dist/vuetify.d.ts +2289 -2200
- package/dist/vuetify.esm.js +156 -92
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +156 -92
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +959 -955
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +0 -61
- package/lib/components/VAutocomplete/VAutocomplete.js +13 -11
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +6 -67
- package/lib/components/VCombobox/VCombobox.js +22 -23
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +7 -7
- package/lib/components/VDataTable/VDataTableFooter.d.ts +16 -3
- package/lib/components/VDataTable/VDataTableFooter.js +4 -2
- package/lib/components/VDataTable/VDataTableFooter.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +10 -7
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.d.ts +10 -0
- package/lib/components/VDataTable/VDataTableRow.js +3 -0
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +10 -0
- package/lib/components/VDataTable/VDataTableRows.js +2 -0
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +7 -7
- package/lib/components/VNumberInput/VNumberInput.js +23 -8
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.d.ts +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.js.map +1 -1
- package/lib/components/VTabs/VTabs.d.ts +16 -2
- package/lib/components/VTabs/VTabs.js +4 -2
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +2 -2
- package/lib/components/VTextarea/VTextarea.js +20 -1
- package/lib/components/VTextarea/VTextarea.js.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +4 -2
- package/lib/components/VTreeview/VTreeview.d.ts +192 -5
- package/lib/components/VTreeview/VTreeview.js +16 -3
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/composables/icons.d.ts +0 -2
- package/lib/composables/icons.js +3 -36
- package/lib/composables/icons.js.map +1 -1
- package/lib/composables/virtual.js +2 -2
- package/lib/composables/virtual.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +65 -65
- package/lib/framework.js +3 -2
- package/lib/framework.js.map +1 -1
- package/lib/icons.d.ts +3 -0
- package/lib/icons.js +34 -0
- package/lib/icons.js.map +1 -0
- package/lib/labs/VColorInput/VColorInput.d.ts +0 -40
- package/lib/labs/VColorInput/VColorInput.js +2 -2
- package/lib/labs/VColorInput/VColorInput.js.map +1 -1
- package/lib/labs/VDateInput/VDateInput.d.ts +0 -30
- package/lib/labs/VDateInput/VDateInput.js +2 -2
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js +1 -1
- package/lib/labs/VMaskInput/VMaskInput.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.10.5-dev.2025-10-
|
|
2
|
+
* Vuetify v3.10.5-dev.2025-10-10
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -1682,6 +1682,8 @@ function useRender(render) {
|
|
|
1682
1682
|
vm.render = render;
|
|
1683
1683
|
}
|
|
1684
1684
|
|
|
1685
|
+
// Utilities
|
|
1686
|
+
|
|
1685
1687
|
// Types
|
|
1686
1688
|
|
|
1687
1689
|
const IconValue = [String, Function, Object, Array];
|
|
@@ -1763,37 +1765,6 @@ const VClassIcon = defineComponent({
|
|
|
1763
1765
|
};
|
|
1764
1766
|
}
|
|
1765
1767
|
});
|
|
1766
|
-
function genDefaults$3() {
|
|
1767
|
-
return {
|
|
1768
|
-
svg: {
|
|
1769
|
-
component: VSvgIcon
|
|
1770
|
-
},
|
|
1771
|
-
class: {
|
|
1772
|
-
component: VClassIcon
|
|
1773
|
-
}
|
|
1774
|
-
};
|
|
1775
|
-
}
|
|
1776
|
-
|
|
1777
|
-
// Composables
|
|
1778
|
-
function createIcons(options) {
|
|
1779
|
-
const sets = genDefaults$3();
|
|
1780
|
-
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
1781
|
-
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
1782
|
-
sets.mdi = mdi;
|
|
1783
|
-
}
|
|
1784
|
-
return mergeDeep({
|
|
1785
|
-
defaultSet,
|
|
1786
|
-
sets,
|
|
1787
|
-
aliases: {
|
|
1788
|
-
...aliases,
|
|
1789
|
-
/* eslint-disable max-len */
|
|
1790
|
-
vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
|
|
1791
|
-
'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',
|
|
1792
|
-
'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]
|
|
1793
|
-
/* eslint-enable max-len */
|
|
1794
|
-
}
|
|
1795
|
-
}, options);
|
|
1796
|
-
}
|
|
1797
1768
|
const useIcon = props => {
|
|
1798
1769
|
const icons = inject$1(IconSymbol);
|
|
1799
1770
|
if (!icons) throw new Error('Missing Vuetify Icons provide!');
|
|
@@ -2891,7 +2862,7 @@ function provideLocale(props) {
|
|
|
2891
2862
|
provide(LocaleSymbol, data);
|
|
2892
2863
|
return data;
|
|
2893
2864
|
}
|
|
2894
|
-
function genDefaults$
|
|
2865
|
+
function genDefaults$3() {
|
|
2895
2866
|
return {
|
|
2896
2867
|
af: false,
|
|
2897
2868
|
ar: true,
|
|
@@ -2938,7 +2909,7 @@ function genDefaults$2() {
|
|
|
2938
2909
|
};
|
|
2939
2910
|
}
|
|
2940
2911
|
function createRtl(i18n, options) {
|
|
2941
|
-
const rtl = ref(options?.rtl ?? genDefaults$
|
|
2912
|
+
const rtl = ref(options?.rtl ?? genDefaults$3());
|
|
2942
2913
|
const isRtl = computed(() => rtl.value[i18n.current.value] ?? false);
|
|
2943
2914
|
return {
|
|
2944
2915
|
isRtl,
|
|
@@ -2971,7 +2942,7 @@ const ThemeSymbol = Symbol.for('vuetify:theme');
|
|
|
2971
2942
|
const makeThemeProps = propsFactory({
|
|
2972
2943
|
theme: String
|
|
2973
2944
|
}, 'theme');
|
|
2974
|
-
function genDefaults$
|
|
2945
|
+
function genDefaults$2() {
|
|
2975
2946
|
return {
|
|
2976
2947
|
defaultTheme: 'light',
|
|
2977
2948
|
prefix: 'v-',
|
|
@@ -3063,8 +3034,8 @@ function genDefaults$1() {
|
|
|
3063
3034
|
};
|
|
3064
3035
|
}
|
|
3065
3036
|
function parseThemeOptions() {
|
|
3066
|
-
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$
|
|
3067
|
-
const defaults = genDefaults$
|
|
3037
|
+
let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : genDefaults$2();
|
|
3038
|
+
const defaults = genDefaults$2();
|
|
3068
3039
|
if (!options) return {
|
|
3069
3040
|
...defaults,
|
|
3070
3041
|
isDisabled: true
|
|
@@ -8164,7 +8135,7 @@ function useDisplay() {
|
|
|
8164
8135
|
// Types
|
|
8165
8136
|
|
|
8166
8137
|
const GoToSymbol = Symbol.for('vuetify:goto');
|
|
8167
|
-
function genDefaults() {
|
|
8138
|
+
function genDefaults$1() {
|
|
8168
8139
|
return {
|
|
8169
8140
|
container: undefined,
|
|
8170
8141
|
duration: 300,
|
|
@@ -8193,12 +8164,12 @@ function getOffset$2(target, horizontal, rtl) {
|
|
|
8193
8164
|
function createGoTo(options, locale) {
|
|
8194
8165
|
return {
|
|
8195
8166
|
rtl: locale.isRtl,
|
|
8196
|
-
options: mergeDeep(genDefaults(), options)
|
|
8167
|
+
options: mergeDeep(genDefaults$1(), options)
|
|
8197
8168
|
};
|
|
8198
8169
|
}
|
|
8199
8170
|
async function scrollTo(_target, _options, horizontal, goTo) {
|
|
8200
8171
|
const property = horizontal ? 'scrollLeft' : 'scrollTop';
|
|
8201
|
-
const options = mergeDeep(goTo?.options ?? genDefaults(), _options);
|
|
8172
|
+
const options = mergeDeep(goTo?.options ?? genDefaults$1(), _options);
|
|
8202
8173
|
const rtl = goTo?.rtl.value;
|
|
8203
8174
|
const target = (typeof _target === 'number' ? _target : getTarget$1(_target)) ?? 0;
|
|
8204
8175
|
const container = options.container === 'parent' && target instanceof HTMLElement ? target.parentElement : getContainer(options.container);
|
|
@@ -13188,7 +13159,7 @@ function useVirtual(props, items) {
|
|
|
13188
13159
|
const start = performance.now();
|
|
13189
13160
|
offsets[0] = 0;
|
|
13190
13161
|
const length = items.value.length;
|
|
13191
|
-
for (let i = 1; i <= length
|
|
13162
|
+
for (let i = 1; i <= length; i++) {
|
|
13192
13163
|
offsets[i] = (offsets[i - 1] || 0) + getSize(i - 1);
|
|
13193
13164
|
}
|
|
13194
13165
|
updateTime.value = Math.max(updateTime.value, performance.now() - start);
|
|
@@ -13223,7 +13194,7 @@ function useVirtual(props, items) {
|
|
|
13223
13194
|
}
|
|
13224
13195
|
}
|
|
13225
13196
|
function calculateOffset(index) {
|
|
13226
|
-
index = clamp(index, 0, items.value.length
|
|
13197
|
+
index = clamp(index, 0, items.value.length);
|
|
13227
13198
|
const whole = Math.floor(index);
|
|
13228
13199
|
const fraction = index % 1;
|
|
13229
13200
|
const next = whole + 1;
|
|
@@ -14228,10 +14199,7 @@ const makeVAutocompleteProps = propsFactory({
|
|
|
14228
14199
|
...omit(makeVTextFieldProps({
|
|
14229
14200
|
modelValue: null,
|
|
14230
14201
|
role: 'combobox'
|
|
14231
|
-
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
14232
|
-
...makeTransitionProps({
|
|
14233
|
-
transition: false
|
|
14234
|
-
})
|
|
14202
|
+
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
14235
14203
|
}, 'VAutocomplete');
|
|
14236
14204
|
const VAutocomplete = genericComponent()({
|
|
14237
14205
|
name: 'VAutocomplete',
|
|
@@ -14256,6 +14224,7 @@ const VAutocomplete = genericComponent()({
|
|
|
14256
14224
|
const vMenuRef = ref();
|
|
14257
14225
|
const vVirtualScrollRef = ref();
|
|
14258
14226
|
const selectionIndex = shallowRef(-1);
|
|
14227
|
+
const _searchLock = shallowRef(null);
|
|
14259
14228
|
const {
|
|
14260
14229
|
items,
|
|
14261
14230
|
transformIn,
|
|
@@ -14277,9 +14246,9 @@ const VAutocomplete = genericComponent()({
|
|
|
14277
14246
|
const {
|
|
14278
14247
|
filteredItems,
|
|
14279
14248
|
getMatches
|
|
14280
|
-
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
14249
|
+
} = useFilter(props, items, () => _searchLock.value ?? (isPristine.value ? '' : search.value));
|
|
14281
14250
|
const displayItems = computed(() => {
|
|
14282
|
-
if (props.hideSelected) {
|
|
14251
|
+
if (props.hideSelected && _searchLock.value === null) {
|
|
14283
14252
|
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
14284
14253
|
}
|
|
14285
14254
|
return filteredItems.value;
|
|
@@ -14410,6 +14379,7 @@ const VAutocomplete = genericComponent()({
|
|
|
14410
14379
|
isPristine.value = true;
|
|
14411
14380
|
vTextFieldRef.value?.focus();
|
|
14412
14381
|
}
|
|
14382
|
+
_searchLock.value = null;
|
|
14413
14383
|
}
|
|
14414
14384
|
function onFocusin(e) {
|
|
14415
14385
|
isFocused.value = true;
|
|
@@ -14445,6 +14415,7 @@ const VAutocomplete = genericComponent()({
|
|
|
14445
14415
|
} else {
|
|
14446
14416
|
const add = set !== false;
|
|
14447
14417
|
model.value = add ? [item] : [];
|
|
14418
|
+
_searchLock.value = isPristine.value ? '' : search.value ?? '';
|
|
14448
14419
|
search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
14449
14420
|
|
|
14450
14421
|
// watch for search watcher to trigger
|
|
@@ -14464,6 +14435,9 @@ const VAutocomplete = genericComponent()({
|
|
|
14464
14435
|
} else {
|
|
14465
14436
|
if (!props.multiple && search.value == null) model.value = [];
|
|
14466
14437
|
menu.value = false;
|
|
14438
|
+
if (!isPristine.value && search.value) {
|
|
14439
|
+
_searchLock.value = search.value;
|
|
14440
|
+
}
|
|
14467
14441
|
search.value = '';
|
|
14468
14442
|
selectionIndex.value = -1;
|
|
14469
14443
|
}
|
|
@@ -14473,13 +14447,14 @@ const VAutocomplete = genericComponent()({
|
|
|
14473
14447
|
if (val) menu.value = true;
|
|
14474
14448
|
isPristine.value = !val;
|
|
14475
14449
|
});
|
|
14476
|
-
watch(menu,
|
|
14477
|
-
if (!props.hideSelected &&
|
|
14450
|
+
watch(menu, val => {
|
|
14451
|
+
if (!props.hideSelected && val && model.value.length && isPristine.value) {
|
|
14478
14452
|
const index = displayItems.value.findIndex(item => model.value.some(s => item.value === s.value));
|
|
14479
14453
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
14480
14454
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
14481
14455
|
});
|
|
14482
14456
|
}
|
|
14457
|
+
if (val) _searchLock.value = null;
|
|
14483
14458
|
});
|
|
14484
14459
|
watch(items, (newVal, oldVal) => {
|
|
14485
14460
|
if (menu.value) return;
|
|
@@ -14530,7 +14505,6 @@ const VAutocomplete = genericComponent()({
|
|
|
14530
14505
|
"maxHeight": 310,
|
|
14531
14506
|
"openOnClick": false,
|
|
14532
14507
|
"closeOnContentClick": false,
|
|
14533
|
-
"transition": props.transition,
|
|
14534
14508
|
"onAfterEnter": onAfterEnter,
|
|
14535
14509
|
"onAfterLeave": onAfterLeave
|
|
14536
14510
|
}, props.menuProps), {
|
|
@@ -19549,10 +19523,7 @@ const makeVComboboxProps = propsFactory({
|
|
|
19549
19523
|
...omit(makeVTextFieldProps({
|
|
19550
19524
|
modelValue: null,
|
|
19551
19525
|
role: 'combobox'
|
|
19552
|
-
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
19553
|
-
...makeTransitionProps({
|
|
19554
|
-
transition: false
|
|
19555
|
-
})
|
|
19526
|
+
}), ['validationValue', 'dirty', 'appendInnerIcon'])
|
|
19556
19527
|
}, 'VCombobox');
|
|
19557
19528
|
const VCombobox = genericComponent()({
|
|
19558
19529
|
name: 'VCombobox',
|
|
@@ -19596,6 +19567,7 @@ const VCombobox = genericComponent()({
|
|
|
19596
19567
|
const hasChips = computed(() => !!(props.chips || slots.chip));
|
|
19597
19568
|
const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
|
|
19598
19569
|
const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
19570
|
+
const _searchLock = shallowRef(null);
|
|
19599
19571
|
const search = computed({
|
|
19600
19572
|
get: () => {
|
|
19601
19573
|
return _search.value;
|
|
@@ -19630,9 +19602,9 @@ const VCombobox = genericComponent()({
|
|
|
19630
19602
|
const {
|
|
19631
19603
|
filteredItems,
|
|
19632
19604
|
getMatches
|
|
19633
|
-
} = useFilter(props, items, () => props.alwaysFilter || !isPristine.value ? search.value : '');
|
|
19605
|
+
} = useFilter(props, items, () => _searchLock.value ?? (props.alwaysFilter || !isPristine.value ? search.value : ''));
|
|
19634
19606
|
const displayItems = computed(() => {
|
|
19635
|
-
if (props.hideSelected) {
|
|
19607
|
+
if (props.hideSelected && _searchLock.value === null) {
|
|
19636
19608
|
return filteredItems.value.filter(filteredItem => !model.value.some(s => s.value === filteredItem.value));
|
|
19637
19609
|
}
|
|
19638
19610
|
return filteredItems.value;
|
|
@@ -19713,22 +19685,19 @@ const VCombobox = genericComponent()({
|
|
|
19713
19685
|
if (['Escape'].includes(e.key)) {
|
|
19714
19686
|
menu.value = false;
|
|
19715
19687
|
}
|
|
19716
|
-
if (['Enter', '
|
|
19717
|
-
|
|
19718
|
-
|
|
19719
|
-
|
|
19720
|
-
|
|
19721
|
-
|
|
19722
|
-
|
|
19723
|
-
select(filteredItems.value[0]);
|
|
19724
|
-
}
|
|
19725
|
-
isPristine.value = true;
|
|
19688
|
+
if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key) && !model.value.some(_ref2 => {
|
|
19689
|
+
let {
|
|
19690
|
+
value
|
|
19691
|
+
} = _ref2;
|
|
19692
|
+
return value === displayItems.value[0].value;
|
|
19693
|
+
})) {
|
|
19694
|
+
select(filteredItems.value[0]);
|
|
19726
19695
|
}
|
|
19727
19696
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
19728
19697
|
listRef.value?.focus('next');
|
|
19729
19698
|
}
|
|
19730
19699
|
if (e.key === 'Enter' && search.value) {
|
|
19731
|
-
select(transformItem$3(props, search.value));
|
|
19700
|
+
select(transformItem$3(props, search.value), true, true);
|
|
19732
19701
|
if (hasSelectionSlot.value) _search.value = '';
|
|
19733
19702
|
}
|
|
19734
19703
|
if (['Backspace', 'Delete'].includes(e.key)) {
|
|
@@ -19776,10 +19745,12 @@ const VCombobox = genericComponent()({
|
|
|
19776
19745
|
isPristine.value = true;
|
|
19777
19746
|
vTextFieldRef.value?.focus();
|
|
19778
19747
|
}
|
|
19748
|
+
_searchLock.value = null;
|
|
19779
19749
|
}
|
|
19780
19750
|
/** @param set - null means toggle */
|
|
19781
19751
|
function select(item) {
|
|
19782
19752
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
19753
|
+
let keepMenu = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
|
|
19783
19754
|
if (!item || item.props.disabled) return;
|
|
19784
19755
|
if (props.multiple) {
|
|
19785
19756
|
const index = model.value.findIndex(selection => (props.valueComparator || deepEqual)(selection.value, item.value));
|
|
@@ -19797,11 +19768,14 @@ const VCombobox = genericComponent()({
|
|
|
19797
19768
|
} else {
|
|
19798
19769
|
const add = set !== false;
|
|
19799
19770
|
model.value = add ? [item] : [];
|
|
19771
|
+
if ((!isPristine.value || props.alwaysFilter) && _search.value) {
|
|
19772
|
+
_searchLock.value = _search.value;
|
|
19773
|
+
}
|
|
19800
19774
|
_search.value = add && !hasSelectionSlot.value ? item.title : '';
|
|
19801
19775
|
|
|
19802
19776
|
// watch for search watcher to trigger
|
|
19803
19777
|
nextTick(() => {
|
|
19804
|
-
menu.value =
|
|
19778
|
+
menu.value = keepMenu;
|
|
19805
19779
|
isPristine.value = true;
|
|
19806
19780
|
});
|
|
19807
19781
|
}
|
|
@@ -19840,13 +19814,14 @@ const VCombobox = genericComponent()({
|
|
|
19840
19814
|
}
|
|
19841
19815
|
}
|
|
19842
19816
|
});
|
|
19843
|
-
watch(menu,
|
|
19844
|
-
if (!props.hideSelected &&
|
|
19817
|
+
watch(menu, val => {
|
|
19818
|
+
if (!props.hideSelected && val && model.value.length && isPristine.value) {
|
|
19845
19819
|
const index = displayItems.value.findIndex(item => model.value.some(s => (props.valueComparator || deepEqual)(s.value, item.value)));
|
|
19846
19820
|
IN_BROWSER && window.requestAnimationFrame(() => {
|
|
19847
19821
|
index >= 0 && vVirtualScrollRef.value?.scrollToIndex(index);
|
|
19848
19822
|
});
|
|
19849
19823
|
}
|
|
19824
|
+
if (val) _searchLock.value = null;
|
|
19850
19825
|
});
|
|
19851
19826
|
watch(items, (newVal, oldVal) => {
|
|
19852
19827
|
if (menu.value) return;
|
|
@@ -19897,7 +19872,6 @@ const VCombobox = genericComponent()({
|
|
|
19897
19872
|
"maxHeight": 310,
|
|
19898
19873
|
"openOnClick": false,
|
|
19899
19874
|
"closeOnContentClick": false,
|
|
19900
|
-
"transition": props.transition,
|
|
19901
19875
|
"onAfterEnter": onAfterEnter,
|
|
19902
19876
|
"onAfterLeave": onAfterLeave
|
|
19903
19877
|
}, props.menuProps), {
|
|
@@ -21444,6 +21418,7 @@ const VPagination = genericComponent()({
|
|
|
21444
21418
|
// Types
|
|
21445
21419
|
|
|
21446
21420
|
const makeVDataTableFooterProps = propsFactory({
|
|
21421
|
+
color: String,
|
|
21447
21422
|
prevIcon: {
|
|
21448
21423
|
type: IconValue,
|
|
21449
21424
|
default: '$prev'
|
|
@@ -21546,6 +21521,7 @@ const VDataTableFooter = genericComponent()({
|
|
|
21546
21521
|
"aria-label": t(props.itemsPerPageText)
|
|
21547
21522
|
}, [t(props.itemsPerPageText)]), createVNode(VSelect, {
|
|
21548
21523
|
"items": itemsPerPageOptions.value,
|
|
21524
|
+
"itemColor": props.color,
|
|
21549
21525
|
"modelValue": itemsPerPage.value,
|
|
21550
21526
|
"onUpdate:modelValue": v => setItemsPerPage(Number(v)),
|
|
21551
21527
|
"density": "compact",
|
|
@@ -21568,7 +21544,7 @@ const VDataTableFooter = genericComponent()({
|
|
|
21568
21544
|
"showFirstLastPage": true,
|
|
21569
21545
|
"totalVisible": props.showCurrentPage ? 1 : 0,
|
|
21570
21546
|
"variant": "plain"
|
|
21571
|
-
}, paginationProps), null)])]);
|
|
21547
|
+
}, omit(paginationProps, ['color'])), null)])]);
|
|
21572
21548
|
});
|
|
21573
21549
|
return {};
|
|
21574
21550
|
}
|
|
@@ -22079,6 +22055,7 @@ const VDataTableHeaders = genericComponent()({
|
|
|
22079
22055
|
if (isEmpty) return '';
|
|
22080
22056
|
if (column.key === 'data-table-select') {
|
|
22081
22057
|
return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && createVNode(VCheckboxBtn, {
|
|
22058
|
+
"color": props.color,
|
|
22082
22059
|
"density": props.density,
|
|
22083
22060
|
"modelValue": allSelected.value,
|
|
22084
22061
|
"indeterminate": someSelected.value && !allSelected.value,
|
|
@@ -22103,11 +22080,6 @@ const VDataTableHeaders = genericComponent()({
|
|
|
22103
22080
|
const displayItems = computed(() => {
|
|
22104
22081
|
return columns.value.filter(column => column?.sortable && !props.disableSort);
|
|
22105
22082
|
});
|
|
22106
|
-
const appendIcon = computed(() => {
|
|
22107
|
-
const showSelectColumn = columns.value.find(column => column.key === 'data-table-select');
|
|
22108
|
-
if (showSelectColumn == null) return;
|
|
22109
|
-
return allSelected.value ? '$checkboxOn' : someSelected.value ? '$checkboxIndeterminate' : '$checkboxOff';
|
|
22110
|
-
});
|
|
22111
22083
|
return createVNode(VDataTableColumn, mergeProps({
|
|
22112
22084
|
"tag": "th",
|
|
22113
22085
|
"class": [...headerCellClasses.value],
|
|
@@ -22117,6 +22089,7 @@ const VDataTableHeaders = genericComponent()({
|
|
|
22117
22089
|
"class": "v-data-table-header__content"
|
|
22118
22090
|
}, [createVNode(VSelect, {
|
|
22119
22091
|
"chips": true,
|
|
22092
|
+
"color": props.color,
|
|
22120
22093
|
"class": "v-data-table__td-sort-select",
|
|
22121
22094
|
"clearable": true,
|
|
22122
22095
|
"density": "default",
|
|
@@ -22125,9 +22098,15 @@ const VDataTableHeaders = genericComponent()({
|
|
|
22125
22098
|
"multiple": props.multiSort,
|
|
22126
22099
|
"variant": "underlined",
|
|
22127
22100
|
"onClick:clear": () => sortBy.value = [],
|
|
22128
|
-
"appendIcon": appendIcon.value,
|
|
22129
22101
|
"onClick:append": () => selectAll(!allSelected.value)
|
|
22130
22102
|
}, {
|
|
22103
|
+
append: () => createVNode(VCheckboxBtn, {
|
|
22104
|
+
"color": props.color,
|
|
22105
|
+
"density": "compact",
|
|
22106
|
+
"modelValue": allSelected.value,
|
|
22107
|
+
"indeterminate": someSelected.value && !allSelected.value,
|
|
22108
|
+
"onUpdate:modelValue": selectAll
|
|
22109
|
+
}, null),
|
|
22131
22110
|
chip: props => createVNode(VChip, {
|
|
22132
22111
|
"onClick": props.item.raw?.sortable ? () => toggleSort(props.item.raw) : undefined,
|
|
22133
22112
|
"onMousedown": e => {
|
|
@@ -22157,7 +22136,7 @@ const VDataTableHeaders = genericComponent()({
|
|
|
22157
22136
|
"name": "v-data-table-progress",
|
|
22158
22137
|
"absolute": true,
|
|
22159
22138
|
"active": true,
|
|
22160
|
-
"color": typeof props.loading === 'boolean' ?
|
|
22139
|
+
"color": typeof props.loading === 'boolean' || props.loading === 'true' ? props.color : props.loading,
|
|
22161
22140
|
"indeterminate": true
|
|
22162
22141
|
}, {
|
|
22163
22142
|
default: slots.loader
|
|
@@ -22264,6 +22243,7 @@ const VDataTableGroupHeaderRow = genericComponent()({
|
|
|
22264
22243
|
// Types
|
|
22265
22244
|
|
|
22266
22245
|
const makeVDataTableRowProps = propsFactory({
|
|
22246
|
+
color: String,
|
|
22267
22247
|
index: Number,
|
|
22268
22248
|
item: Object,
|
|
22269
22249
|
cellProps: [Object, Function],
|
|
@@ -22381,11 +22361,13 @@ const VDataTableRow = genericComponent()({
|
|
|
22381
22361
|
return slots['item.data-table-select']?.({
|
|
22382
22362
|
...slotProps,
|
|
22383
22363
|
props: {
|
|
22364
|
+
color: props.color,
|
|
22384
22365
|
disabled: !item.selectable,
|
|
22385
22366
|
modelValue: isSelected([item]),
|
|
22386
22367
|
onClick: withModifiers(() => toggleSelect(item), ['stop'])
|
|
22387
22368
|
}
|
|
22388
22369
|
}) ?? createVNode(VCheckboxBtn, {
|
|
22370
|
+
"color": props.color,
|
|
22389
22371
|
"disabled": !item.selectable,
|
|
22390
22372
|
"density": props.density,
|
|
22391
22373
|
"modelValue": isSelected([item]),
|
|
@@ -22424,6 +22406,7 @@ const VDataTableRow = genericComponent()({
|
|
|
22424
22406
|
// Types
|
|
22425
22407
|
|
|
22426
22408
|
const makeVDataTableRowsProps = propsFactory({
|
|
22409
|
+
color: String,
|
|
22427
22410
|
loading: [Boolean, String],
|
|
22428
22411
|
loadingText: {
|
|
22429
22412
|
type: String,
|
|
@@ -22539,6 +22522,7 @@ const VDataTableRows = genericComponent()({
|
|
|
22539
22522
|
} : undefined,
|
|
22540
22523
|
index,
|
|
22541
22524
|
item,
|
|
22525
|
+
color: props.color,
|
|
22542
22526
|
cellProps: props.cellProps,
|
|
22543
22527
|
collapseIcon: props.collapseIcon,
|
|
22544
22528
|
expandIcon: props.expandIcon,
|
|
@@ -26934,12 +26918,17 @@ const VNumberInput = genericComponent()({
|
|
|
26934
26918
|
}
|
|
26935
26919
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
|
26936
26920
|
const _inputText = shallowRef(null);
|
|
26937
|
-
|
|
26938
|
-
|
|
26921
|
+
const _lastParsedValue = shallowRef(null);
|
|
26922
|
+
watch(model, val => {
|
|
26923
|
+
if (isFocused.value && !controlsDisabled.value && Number(_inputText.value) === val) ; else if (val == null) {
|
|
26939
26924
|
_inputText.value = null;
|
|
26940
|
-
|
|
26941
|
-
|
|
26925
|
+
_lastParsedValue.value = null;
|
|
26926
|
+
} else if (!isNaN(val)) {
|
|
26927
|
+
_inputText.value = correctPrecision(val);
|
|
26928
|
+
_lastParsedValue.value = Number(_inputText.value.replace(decimalSeparator.value, '.'));
|
|
26942
26929
|
}
|
|
26930
|
+
}, {
|
|
26931
|
+
immediate: true
|
|
26943
26932
|
});
|
|
26944
26933
|
const inputText = computed({
|
|
26945
26934
|
get: () => _inputText.value,
|
|
@@ -26947,15 +26936,24 @@ const VNumberInput = genericComponent()({
|
|
|
26947
26936
|
if (val === null || val === '') {
|
|
26948
26937
|
model.value = null;
|
|
26949
26938
|
_inputText.value = null;
|
|
26939
|
+
_lastParsedValue.value = null;
|
|
26950
26940
|
return;
|
|
26951
26941
|
}
|
|
26952
26942
|
const parsedValue = Number(val.replace(decimalSeparator.value, '.'));
|
|
26953
|
-
if (!isNaN(parsedValue)
|
|
26954
|
-
model.value = parsedValue;
|
|
26943
|
+
if (!isNaN(parsedValue)) {
|
|
26955
26944
|
_inputText.value = val;
|
|
26945
|
+
_lastParsedValue.value = parsedValue;
|
|
26946
|
+
if (parsedValue <= props.max && parsedValue >= props.min) {
|
|
26947
|
+
model.value = parsedValue;
|
|
26948
|
+
}
|
|
26956
26949
|
}
|
|
26957
26950
|
}
|
|
26958
26951
|
});
|
|
26952
|
+
const isOutOfRange = computed(() => {
|
|
26953
|
+
if (_lastParsedValue.value === null) return false;
|
|
26954
|
+
const numberFromText = Number(_inputText.value);
|
|
26955
|
+
return numberFromText !== clamp(numberFromText, props.min, props.max);
|
|
26956
|
+
});
|
|
26959
26957
|
const canIncrease = computed(() => {
|
|
26960
26958
|
if (controlsDisabled.value) return false;
|
|
26961
26959
|
return (model.value ?? 0) + props.step <= props.max;
|
|
@@ -27211,6 +27209,7 @@ const VNumberInput = genericComponent()({
|
|
|
27211
27209
|
"focused": isFocused.value,
|
|
27212
27210
|
"onUpdate:focused": $event => isFocused.value = $event,
|
|
27213
27211
|
"validationValue": model.value,
|
|
27212
|
+
"error": isOutOfRange.value || undefined,
|
|
27214
27213
|
"onBeforeinput": onBeforeinput,
|
|
27215
27214
|
"onFocus": onFocus,
|
|
27216
27215
|
"onBlur": onBlur,
|
|
@@ -30010,7 +30009,7 @@ const VTabs = genericComponent()({
|
|
|
30010
30009
|
"role": "tablist",
|
|
30011
30010
|
"symbol": VTabsSymbol
|
|
30012
30011
|
}, scopeId, attrs), {
|
|
30013
|
-
default:
|
|
30012
|
+
default: slots.default ?? (() => items.value.map(item => slots.tab?.({
|
|
30014
30013
|
item
|
|
30015
30014
|
}) ?? createVNode(VTab, mergeProps(item, {
|
|
30016
30015
|
"key": item.text,
|
|
@@ -30020,7 +30019,9 @@ const VTabs = genericComponent()({
|
|
|
30020
30019
|
default: slots[`tab.${item.value}`] ? () => slots[`tab.${item.value}`]?.({
|
|
30021
30020
|
item
|
|
30022
30021
|
}) : undefined
|
|
30023
|
-
}))
|
|
30022
|
+
}))),
|
|
30023
|
+
prev: slots.prev,
|
|
30024
|
+
next: slots.next
|
|
30024
30025
|
}), hasWindow && createVNode(VTabsWindow, mergeProps({
|
|
30025
30026
|
"modelValue": model.value,
|
|
30026
30027
|
"onUpdate:modelValue": $event => model.value = $event,
|
|
@@ -30109,6 +30110,10 @@ const VTextarea = genericComponent()({
|
|
|
30109
30110
|
const vFieldRef = ref();
|
|
30110
30111
|
const controlHeight = shallowRef('');
|
|
30111
30112
|
const textareaRef = ref();
|
|
30113
|
+
const scrollbarWidth = ref(0);
|
|
30114
|
+
const {
|
|
30115
|
+
platform
|
|
30116
|
+
} = useDisplay();
|
|
30112
30117
|
const autocomplete = useAutocomplete(props);
|
|
30113
30118
|
const isActive = computed(() => props.persistentPlaceholder || isFocused.value || props.active);
|
|
30114
30119
|
function onFocus() {
|
|
@@ -30153,6 +30158,18 @@ const VTextarea = genericComponent()({
|
|
|
30153
30158
|
if (!props.autoGrow) rows.value = Number(props.rows);
|
|
30154
30159
|
});
|
|
30155
30160
|
function calculateInputHeight() {
|
|
30161
|
+
nextTick(() => {
|
|
30162
|
+
if (!textareaRef.value) return;
|
|
30163
|
+
if (platform.value.firefox) {
|
|
30164
|
+
scrollbarWidth.value = 12;
|
|
30165
|
+
return;
|
|
30166
|
+
}
|
|
30167
|
+
const {
|
|
30168
|
+
offsetWidth,
|
|
30169
|
+
clientWidth
|
|
30170
|
+
} = textareaRef.value;
|
|
30171
|
+
scrollbarWidth.value = Math.max(0, offsetWidth - clientWidth);
|
|
30172
|
+
});
|
|
30156
30173
|
if (!props.autoGrow) return;
|
|
30157
30174
|
nextTick(() => {
|
|
30158
30175
|
if (!sizerRef.value || !vFieldRef.value) return;
|
|
@@ -30213,7 +30230,9 @@ const VTextarea = genericComponent()({
|
|
|
30213
30230
|
'v-textarea--no-resize': props.noResize || props.autoGrow,
|
|
30214
30231
|
'v-input--plain-underlined': isPlainOrUnderlined.value
|
|
30215
30232
|
}, props.class],
|
|
30216
|
-
"style":
|
|
30233
|
+
"style": [{
|
|
30234
|
+
'--v-textarea-scroll-bar-width': convertToUnit(scrollbarWidth.value)
|
|
30235
|
+
}, props.style]
|
|
30217
30236
|
}, rootAttrs, inputProps, {
|
|
30218
30237
|
"centerAffix": rows.value === 1 && !isPlainOrUnderlined.value,
|
|
30219
30238
|
"focused": isFocused.value
|
|
@@ -31732,6 +31751,11 @@ const makeVTreeviewProps = propsFactory({
|
|
|
31732
31751
|
openAll: Boolean,
|
|
31733
31752
|
indentLines: [Boolean, String],
|
|
31734
31753
|
search: String,
|
|
31754
|
+
hideNoData: Boolean,
|
|
31755
|
+
noDataText: {
|
|
31756
|
+
type: String,
|
|
31757
|
+
default: '$vuetify.noDataText'
|
|
31758
|
+
},
|
|
31735
31759
|
...makeFilterProps({
|
|
31736
31760
|
filterKeys: ['title']
|
|
31737
31761
|
}),
|
|
@@ -31759,6 +31783,9 @@ const VTreeview = genericComponent()({
|
|
|
31759
31783
|
slots,
|
|
31760
31784
|
emit
|
|
31761
31785
|
} = _ref;
|
|
31786
|
+
const {
|
|
31787
|
+
t
|
|
31788
|
+
} = useLocale();
|
|
31762
31789
|
const {
|
|
31763
31790
|
items
|
|
31764
31791
|
} = useListItems(props);
|
|
@@ -31852,7 +31879,10 @@ const VTreeview = genericComponent()({
|
|
|
31852
31879
|
"selected": selected.value,
|
|
31853
31880
|
"onUpdate:selected": $event => selected.value = $event
|
|
31854
31881
|
}), {
|
|
31855
|
-
default: () => [
|
|
31882
|
+
default: () => [visibleIds.value?.size === 0 && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
31883
|
+
"key": "no-data",
|
|
31884
|
+
"title": t(props.noDataText)
|
|
31885
|
+
}, null)), createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
|
31856
31886
|
"density": props.density,
|
|
31857
31887
|
"returnObject": props.returnObject,
|
|
31858
31888
|
"items": items.value,
|
|
@@ -32278,6 +32308,40 @@ var directives = /*#__PURE__*/Object.freeze({
|
|
|
32278
32308
|
Touch: Touch
|
|
32279
32309
|
});
|
|
32280
32310
|
|
|
32311
|
+
// Composables
|
|
32312
|
+
|
|
32313
|
+
// Types
|
|
32314
|
+
|
|
32315
|
+
function genDefaults() {
|
|
32316
|
+
return {
|
|
32317
|
+
svg: {
|
|
32318
|
+
component: VSvgIcon
|
|
32319
|
+
},
|
|
32320
|
+
class: {
|
|
32321
|
+
component: VClassIcon
|
|
32322
|
+
}
|
|
32323
|
+
};
|
|
32324
|
+
}
|
|
32325
|
+
function createIcons(options) {
|
|
32326
|
+
const sets = genDefaults();
|
|
32327
|
+
const defaultSet = options?.defaultSet ?? 'mdi';
|
|
32328
|
+
if (defaultSet === 'mdi' && !sets.mdi) {
|
|
32329
|
+
sets.mdi = mdi;
|
|
32330
|
+
}
|
|
32331
|
+
return mergeDeep({
|
|
32332
|
+
defaultSet,
|
|
32333
|
+
sets,
|
|
32334
|
+
aliases: {
|
|
32335
|
+
...aliases,
|
|
32336
|
+
/* eslint-disable max-len */
|
|
32337
|
+
vuetify: ['M8.2241 14.2009L12 21L22 3H14.4459L8.2241 14.2009Z', ['M7.26303 12.4733L7.00113 12L2 3H12.5261C12.5261 3 12.5261 3 12.5261 3L7.26303 12.4733Z', 0.6]],
|
|
32338
|
+
'vuetify-outline': 'svg:M7.26 12.47 12.53 3H2L7.26 12.47ZM14.45 3 8.22 14.2 12 21 22 3H14.45ZM18.6 5 12 16.88 10.51 14.2 15.62 5ZM7.26 8.35 5.4 5H9.13L7.26 8.35Z',
|
|
32339
|
+
'vuetify-play': ['m6.376 13.184-4.11-7.192C1.505 4.66 2.467 3 4.003 3h8.532l-.953 1.576-.006.01-.396.677c-.429.732-.214 1.507.194 2.015.404.503 1.092.878 1.869.806a3.72 3.72 0 0 1 1.005.022c.276.053.434.143.523.237.138.146.38.635-.25 2.09-.893 1.63-1.553 1.722-1.847 1.677-.213-.033-.468-.158-.756-.406a4.95 4.95 0 0 1-.8-.927c-.39-.564-1.04-.84-1.66-.846-.625-.006-1.316.27-1.693.921l-.478.826-.911 1.506Z', ['M9.093 11.552c.046-.079.144-.15.32-.148a.53.53 0 0 1 .43.207c.285.414.636.847 1.046 1.2.405.35.914.662 1.516.754 1.334.205 2.502-.698 3.48-2.495l.014-.028.013-.03c.687-1.574.774-2.852-.005-3.675-.37-.391-.861-.586-1.333-.676a5.243 5.243 0 0 0-1.447-.044c-.173.016-.393-.073-.54-.257-.145-.18-.127-.316-.082-.392l.393-.672L14.287 3h5.71c1.536 0 2.499 1.659 1.737 2.992l-7.997 13.996c-.768 1.344-2.706 1.344-3.473 0l-3.037-5.314 1.377-2.278.004-.006.004-.007.481-.831Z', 0.6]]
|
|
32340
|
+
/* eslint-enable max-len */
|
|
32341
|
+
}
|
|
32342
|
+
}, options);
|
|
32343
|
+
}
|
|
32344
|
+
|
|
32281
32345
|
// Composables
|
|
32282
32346
|
function createVuetify$1() {
|
|
32283
32347
|
let vuetify = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
@@ -32377,7 +32441,7 @@ function createVuetify$1() {
|
|
|
32377
32441
|
};
|
|
32378
32442
|
});
|
|
32379
32443
|
}
|
|
32380
|
-
const version$1 = "3.10.5-dev.2025-10-
|
|
32444
|
+
const version$1 = "3.10.5-dev.2025-10-10";
|
|
32381
32445
|
createVuetify$1.version = version$1;
|
|
32382
32446
|
|
|
32383
32447
|
// Vue's inject() can only be used in setup
|
|
@@ -32402,7 +32466,7 @@ const createVuetify = function () {
|
|
|
32402
32466
|
...options
|
|
32403
32467
|
});
|
|
32404
32468
|
};
|
|
32405
|
-
const version = "3.10.5-dev.2025-10-
|
|
32469
|
+
const version = "3.10.5-dev.2025-10-10";
|
|
32406
32470
|
createVuetify.version = version;
|
|
32407
32471
|
|
|
32408
32472
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useMask, useRtl, useTheme, version };
|