@vuetify/nightly 3.8.5-dev.2025-05-17 → 3.8.5-dev.2025-05-20
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 +6 -3
- package/dist/json/attributes.json +2855 -2851
- package/dist/json/importMap-labs.json +18 -18
- package/dist/json/importMap.json +154 -154
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +5580 -5480
- package/dist/vuetify-labs.cjs +136 -69
- package/dist/vuetify-labs.css +5215 -5215
- package/dist/vuetify-labs.d.ts +151 -65
- package/dist/vuetify-labs.esm.js +136 -69
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +136 -69
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +136 -69
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +5450 -5450
- package/dist/vuetify.d.ts +148 -62
- package/dist/vuetify.esm.js +136 -69
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +136 -69
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +73 -71
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +26 -2
- package/lib/components/VAutocomplete/VAutocomplete.js +18 -1
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +26 -2
- package/lib/components/VCombobox/VCombobox.js +19 -1
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VList/VListChildren.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.d.ts +14 -0
- package/lib/components/VNumberInput/VNumberInput.js +19 -4
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +26 -2
- package/lib/components/VSelect/VSelect.js +18 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/composables/filter.js +3 -0
- package/lib/composables/filter.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +56 -56
- package/lib/framework.js +1 -1
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/package.json +1 -1
package/dist/vuetify-labs.esm.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.5-dev.2025-05-
|
2
|
+
* Vuetify v3.8.5-dev.2025-05-20
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -8327,6 +8327,68 @@ const VChip = genericComponent()({
|
|
8327
8327
|
}
|
8328
8328
|
});
|
8329
8329
|
|
8330
|
+
const makeVDividerProps = propsFactory({
|
8331
|
+
color: String,
|
8332
|
+
inset: Boolean,
|
8333
|
+
length: [Number, String],
|
8334
|
+
opacity: [Number, String],
|
8335
|
+
thickness: [Number, String],
|
8336
|
+
vertical: Boolean,
|
8337
|
+
...makeComponentProps(),
|
8338
|
+
...makeThemeProps()
|
8339
|
+
}, 'VDivider');
|
8340
|
+
const VDivider = genericComponent()({
|
8341
|
+
name: 'VDivider',
|
8342
|
+
props: makeVDividerProps(),
|
8343
|
+
setup(props, _ref) {
|
8344
|
+
let {
|
8345
|
+
attrs,
|
8346
|
+
slots
|
8347
|
+
} = _ref;
|
8348
|
+
const {
|
8349
|
+
themeClasses
|
8350
|
+
} = provideTheme(props);
|
8351
|
+
const {
|
8352
|
+
textColorClasses,
|
8353
|
+
textColorStyles
|
8354
|
+
} = useTextColor(() => props.color);
|
8355
|
+
const dividerStyles = computed(() => {
|
8356
|
+
const styles = {};
|
8357
|
+
if (props.length) {
|
8358
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8359
|
+
}
|
8360
|
+
if (props.thickness) {
|
8361
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8362
|
+
}
|
8363
|
+
return styles;
|
8364
|
+
});
|
8365
|
+
useRender(() => {
|
8366
|
+
const divider = createVNode("hr", {
|
8367
|
+
"class": [{
|
8368
|
+
'v-divider': true,
|
8369
|
+
'v-divider--inset': props.inset,
|
8370
|
+
'v-divider--vertical': props.vertical
|
8371
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
8372
|
+
"style": [dividerStyles.value, textColorStyles.value, {
|
8373
|
+
'--v-border-opacity': props.opacity
|
8374
|
+
}, props.style],
|
8375
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8376
|
+
"role": `${attrs.role || 'separator'}`
|
8377
|
+
}, null);
|
8378
|
+
if (!slots.default) return divider;
|
8379
|
+
return createVNode("div", {
|
8380
|
+
"class": ['v-divider__wrapper', {
|
8381
|
+
'v-divider__wrapper--vertical': props.vertical,
|
8382
|
+
'v-divider__wrapper--inset': props.inset
|
8383
|
+
}]
|
8384
|
+
}, [divider, createVNode("div", {
|
8385
|
+
"class": "v-divider__content"
|
8386
|
+
}, [slots.default()]), divider]);
|
8387
|
+
});
|
8388
|
+
return {};
|
8389
|
+
}
|
8390
|
+
});
|
8391
|
+
|
8330
8392
|
// Utilities
|
8331
8393
|
|
8332
8394
|
// List
|
@@ -9478,68 +9540,6 @@ const VListSubheader = genericComponent()({
|
|
9478
9540
|
}
|
9479
9541
|
});
|
9480
9542
|
|
9481
|
-
const makeVDividerProps = propsFactory({
|
9482
|
-
color: String,
|
9483
|
-
inset: Boolean,
|
9484
|
-
length: [Number, String],
|
9485
|
-
opacity: [Number, String],
|
9486
|
-
thickness: [Number, String],
|
9487
|
-
vertical: Boolean,
|
9488
|
-
...makeComponentProps(),
|
9489
|
-
...makeThemeProps()
|
9490
|
-
}, 'VDivider');
|
9491
|
-
const VDivider = genericComponent()({
|
9492
|
-
name: 'VDivider',
|
9493
|
-
props: makeVDividerProps(),
|
9494
|
-
setup(props, _ref) {
|
9495
|
-
let {
|
9496
|
-
attrs,
|
9497
|
-
slots
|
9498
|
-
} = _ref;
|
9499
|
-
const {
|
9500
|
-
themeClasses
|
9501
|
-
} = provideTheme(props);
|
9502
|
-
const {
|
9503
|
-
textColorClasses,
|
9504
|
-
textColorStyles
|
9505
|
-
} = useTextColor(() => props.color);
|
9506
|
-
const dividerStyles = computed(() => {
|
9507
|
-
const styles = {};
|
9508
|
-
if (props.length) {
|
9509
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9510
|
-
}
|
9511
|
-
if (props.thickness) {
|
9512
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9513
|
-
}
|
9514
|
-
return styles;
|
9515
|
-
});
|
9516
|
-
useRender(() => {
|
9517
|
-
const divider = createVNode("hr", {
|
9518
|
-
"class": [{
|
9519
|
-
'v-divider': true,
|
9520
|
-
'v-divider--inset': props.inset,
|
9521
|
-
'v-divider--vertical': props.vertical
|
9522
|
-
}, themeClasses.value, textColorClasses.value, props.class],
|
9523
|
-
"style": [dividerStyles.value, textColorStyles.value, {
|
9524
|
-
'--v-border-opacity': props.opacity
|
9525
|
-
}, props.style],
|
9526
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9527
|
-
"role": `${attrs.role || 'separator'}`
|
9528
|
-
}, null);
|
9529
|
-
if (!slots.default) return divider;
|
9530
|
-
return createVNode("div", {
|
9531
|
-
"class": ['v-divider__wrapper', {
|
9532
|
-
'v-divider__wrapper--vertical': props.vertical,
|
9533
|
-
'v-divider__wrapper--inset': props.inset
|
9534
|
-
}]
|
9535
|
-
}, [divider, createVNode("div", {
|
9536
|
-
"class": "v-divider__content"
|
9537
|
-
}, [slots.default()]), divider]);
|
9538
|
-
});
|
9539
|
-
return {};
|
9540
|
-
}
|
9541
|
-
});
|
9542
|
-
|
9543
9543
|
// Types
|
9544
9544
|
|
9545
9545
|
const makeVListChildrenProps = propsFactory({
|
@@ -13091,6 +13091,22 @@ const VSelect = genericComponent()({
|
|
13091
13091
|
key: item.value,
|
13092
13092
|
onClick: () => select(item, null)
|
13093
13093
|
});
|
13094
|
+
if (item.raw.type === 'divider') {
|
13095
|
+
return slots.divider?.({
|
13096
|
+
props: item.raw,
|
13097
|
+
index
|
13098
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
13099
|
+
"key": `divider-${index}`
|
13100
|
+
}), null);
|
13101
|
+
}
|
13102
|
+
if (item.raw.type === 'subheader') {
|
13103
|
+
return slots.subheader?.({
|
13104
|
+
props: item.raw,
|
13105
|
+
index
|
13106
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
13107
|
+
"key": `subheader-${index}`
|
13108
|
+
}), null);
|
13109
|
+
}
|
13094
13110
|
return slots.item?.({
|
13095
13111
|
item,
|
13096
13112
|
index,
|
@@ -13251,6 +13267,9 @@ function filterItems(items, query, options) {
|
|
13251
13267
|
let match = -1;
|
13252
13268
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13253
13269
|
if (typeof item === 'object') {
|
13270
|
+
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13271
|
+
continue;
|
13272
|
+
}
|
13254
13273
|
const filterKeys = keys || Object.keys(transformed);
|
13255
13274
|
for (const key of filterKeys) {
|
13256
13275
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13689,6 +13708,22 @@ const VAutocomplete = genericComponent()({
|
|
13689
13708
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13690
13709
|
onClick: () => select(item, null)
|
13691
13710
|
});
|
13711
|
+
if (item.raw.type === 'divider') {
|
13712
|
+
return slots.divider?.({
|
13713
|
+
props: item.raw,
|
13714
|
+
index
|
13715
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
13716
|
+
"key": `divider-${index}`
|
13717
|
+
}), null);
|
13718
|
+
}
|
13719
|
+
if (item.raw.type === 'subheader') {
|
13720
|
+
return slots.subheader?.({
|
13721
|
+
props: item.raw,
|
13722
|
+
index
|
13723
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
13724
|
+
"key": `subheader-${index}`
|
13725
|
+
}), null);
|
13726
|
+
}
|
13692
13727
|
return slots.item?.({
|
13693
13728
|
item,
|
13694
13729
|
index,
|
@@ -18099,6 +18134,7 @@ const VCombobox = genericComponent()({
|
|
18099
18134
|
_search.value = val ?? '';
|
18100
18135
|
if (!props.multiple && !hasSelectionSlot.value) {
|
18101
18136
|
model.value = [transformItem$3(props, val)];
|
18137
|
+
nextTick(() => vVirtualScrollRef.value?.scrollToIndex(0));
|
18102
18138
|
}
|
18103
18139
|
if (val && props.multiple && props.delimiters?.length) {
|
18104
18140
|
const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`));
|
@@ -18415,6 +18451,22 @@ const VCombobox = genericComponent()({
|
|
18415
18451
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18416
18452
|
onClick: () => select(item, null)
|
18417
18453
|
});
|
18454
|
+
if (item.raw.type === 'divider') {
|
18455
|
+
return slots.divider?.({
|
18456
|
+
props: item.raw,
|
18457
|
+
index
|
18458
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
18459
|
+
"key": `divider-${index}`
|
18460
|
+
}), null);
|
18461
|
+
}
|
18462
|
+
if (item.raw.type === 'subheader') {
|
18463
|
+
return slots.subheader?.({
|
18464
|
+
props: item.raw,
|
18465
|
+
index
|
18466
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
18467
|
+
"key": `subheader-${index}`
|
18468
|
+
}), null);
|
18469
|
+
}
|
18418
18470
|
return slots.item?.({
|
18419
18471
|
item,
|
18420
18472
|
index,
|
@@ -24837,6 +24889,10 @@ const makeVNumberInputProps = propsFactory({
|
|
24837
24889
|
type: Number,
|
24838
24890
|
default: 0
|
24839
24891
|
},
|
24892
|
+
minFractionDigits: {
|
24893
|
+
type: Number,
|
24894
|
+
default: null
|
24895
|
+
},
|
24840
24896
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
24841
24897
|
}, 'VNumberInput');
|
24842
24898
|
const VNumberInput = genericComponent()({
|
@@ -24867,9 +24923,19 @@ const VNumberInput = genericComponent()({
|
|
24867
24923
|
} = useFocus(props);
|
24868
24924
|
function correctPrecision(val) {
|
24869
24925
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
24870
|
-
|
24871
|
-
|
24872
|
-
|
24926
|
+
if (precision == null) {
|
24927
|
+
return String(val);
|
24928
|
+
}
|
24929
|
+
let fixed = val.toFixed(precision);
|
24930
|
+
if (isFocused.value) {
|
24931
|
+
return Number(fixed).toString(); // trim zeros
|
24932
|
+
}
|
24933
|
+
if ((props.minFractionDigits ?? precision) < precision) {
|
24934
|
+
const trimLimit = precision - props.minFractionDigits;
|
24935
|
+
const [baseDigits, fractionDigits] = fixed.split('.');
|
24936
|
+
fixed = [baseDigits, fractionDigits.replace(new RegExp(`0{1,${trimLimit}}$`), '')].filter(Boolean).join('.');
|
24937
|
+
}
|
24938
|
+
return fixed;
|
24873
24939
|
}
|
24874
24940
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
24875
24941
|
const _inputText = shallowRef(null);
|
@@ -24922,6 +24988,7 @@ const VNumberInput = genericComponent()({
|
|
24922
24988
|
}
|
24923
24989
|
};
|
24924
24990
|
watch(() => props.precision, () => formatInputValue());
|
24991
|
+
watch(() => props.minFractionDigits, () => formatInputValue());
|
24925
24992
|
onMounted(() => {
|
24926
24993
|
clampModel();
|
24927
24994
|
});
|
@@ -25023,7 +25090,7 @@ const VNumberInput = genericComponent()({
|
|
25023
25090
|
inputText.value = null;
|
25024
25091
|
return;
|
25025
25092
|
}
|
25026
|
-
inputText.value =
|
25093
|
+
inputText.value = correctPrecision(model.value);
|
25027
25094
|
}
|
25028
25095
|
function trimDecimalZeros() {
|
25029
25096
|
if (controlsDisabled.value) return;
|
@@ -32033,7 +32100,7 @@ function createVuetify$1() {
|
|
32033
32100
|
};
|
32034
32101
|
});
|
32035
32102
|
}
|
32036
|
-
const version$1 = "3.8.5-dev.2025-05-
|
32103
|
+
const version$1 = "3.8.5-dev.2025-05-20";
|
32037
32104
|
createVuetify$1.version = version$1;
|
32038
32105
|
|
32039
32106
|
// Vue's inject() can only be used in setup
|
@@ -32331,7 +32398,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
32331
32398
|
|
32332
32399
|
/* eslint-disable local-rules/sort-imports */
|
32333
32400
|
|
32334
|
-
const version = "3.8.5-dev.2025-05-
|
32401
|
+
const version = "3.8.5-dev.2025-05-20";
|
32335
32402
|
|
32336
32403
|
/* eslint-disable local-rules/sort-imports */
|
32337
32404
|
|