@vuetify/nightly 3.8.5-dev.2025-05-18 → 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 +5 -3
- package/dist/json/attributes.json +1597 -1593
- package/dist/json/importMap-labs.json +22 -22
- package/dist/json/importMap.json +176 -176
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +3310 -3210
- package/dist/vuetify-labs.cjs +135 -69
- package/dist/vuetify-labs.css +5912 -5912
- package/dist/vuetify-labs.d.ts +161 -75
- package/dist/vuetify-labs.esm.js +135 -69
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +135 -69
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +135 -69
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +1708 -1708
- package/dist/vuetify.d.ts +158 -72
- package/dist/vuetify.esm.js +135 -69
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +135 -69
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +71 -69
- 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 +18 -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 +66 -66
- package/lib/framework.js +1 -1
- package/lib/labs/VFileUpload/VFileUpload.d.ts +3 -3
- package/package.json +1 -1
package/dist/vuetify.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
|
*/
|
@@ -8605,6 +8605,68 @@ const VChip = genericComponent()({
|
|
8605
8605
|
}
|
8606
8606
|
});
|
8607
8607
|
|
8608
|
+
const makeVDividerProps = propsFactory({
|
8609
|
+
color: String,
|
8610
|
+
inset: Boolean,
|
8611
|
+
length: [Number, String],
|
8612
|
+
opacity: [Number, String],
|
8613
|
+
thickness: [Number, String],
|
8614
|
+
vertical: Boolean,
|
8615
|
+
...makeComponentProps(),
|
8616
|
+
...makeThemeProps()
|
8617
|
+
}, 'VDivider');
|
8618
|
+
const VDivider = genericComponent()({
|
8619
|
+
name: 'VDivider',
|
8620
|
+
props: makeVDividerProps(),
|
8621
|
+
setup(props, _ref) {
|
8622
|
+
let {
|
8623
|
+
attrs,
|
8624
|
+
slots
|
8625
|
+
} = _ref;
|
8626
|
+
const {
|
8627
|
+
themeClasses
|
8628
|
+
} = provideTheme(props);
|
8629
|
+
const {
|
8630
|
+
textColorClasses,
|
8631
|
+
textColorStyles
|
8632
|
+
} = useTextColor(() => props.color);
|
8633
|
+
const dividerStyles = computed(() => {
|
8634
|
+
const styles = {};
|
8635
|
+
if (props.length) {
|
8636
|
+
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
8637
|
+
}
|
8638
|
+
if (props.thickness) {
|
8639
|
+
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
8640
|
+
}
|
8641
|
+
return styles;
|
8642
|
+
});
|
8643
|
+
useRender(() => {
|
8644
|
+
const divider = createVNode("hr", {
|
8645
|
+
"class": [{
|
8646
|
+
'v-divider': true,
|
8647
|
+
'v-divider--inset': props.inset,
|
8648
|
+
'v-divider--vertical': props.vertical
|
8649
|
+
}, themeClasses.value, textColorClasses.value, props.class],
|
8650
|
+
"style": [dividerStyles.value, textColorStyles.value, {
|
8651
|
+
'--v-border-opacity': props.opacity
|
8652
|
+
}, props.style],
|
8653
|
+
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
8654
|
+
"role": `${attrs.role || 'separator'}`
|
8655
|
+
}, null);
|
8656
|
+
if (!slots.default) return divider;
|
8657
|
+
return createVNode("div", {
|
8658
|
+
"class": ['v-divider__wrapper', {
|
8659
|
+
'v-divider__wrapper--vertical': props.vertical,
|
8660
|
+
'v-divider__wrapper--inset': props.inset
|
8661
|
+
}]
|
8662
|
+
}, [divider, createVNode("div", {
|
8663
|
+
"class": "v-divider__content"
|
8664
|
+
}, [slots.default()]), divider]);
|
8665
|
+
});
|
8666
|
+
return {};
|
8667
|
+
}
|
8668
|
+
});
|
8669
|
+
|
8608
8670
|
// Utilities
|
8609
8671
|
|
8610
8672
|
// List
|
@@ -9756,68 +9818,6 @@ const VListSubheader = genericComponent()({
|
|
9756
9818
|
}
|
9757
9819
|
});
|
9758
9820
|
|
9759
|
-
const makeVDividerProps = propsFactory({
|
9760
|
-
color: String,
|
9761
|
-
inset: Boolean,
|
9762
|
-
length: [Number, String],
|
9763
|
-
opacity: [Number, String],
|
9764
|
-
thickness: [Number, String],
|
9765
|
-
vertical: Boolean,
|
9766
|
-
...makeComponentProps(),
|
9767
|
-
...makeThemeProps()
|
9768
|
-
}, 'VDivider');
|
9769
|
-
const VDivider = genericComponent()({
|
9770
|
-
name: 'VDivider',
|
9771
|
-
props: makeVDividerProps(),
|
9772
|
-
setup(props, _ref) {
|
9773
|
-
let {
|
9774
|
-
attrs,
|
9775
|
-
slots
|
9776
|
-
} = _ref;
|
9777
|
-
const {
|
9778
|
-
themeClasses
|
9779
|
-
} = provideTheme(props);
|
9780
|
-
const {
|
9781
|
-
textColorClasses,
|
9782
|
-
textColorStyles
|
9783
|
-
} = useTextColor(() => props.color);
|
9784
|
-
const dividerStyles = computed(() => {
|
9785
|
-
const styles = {};
|
9786
|
-
if (props.length) {
|
9787
|
-
styles[props.vertical ? 'height' : 'width'] = convertToUnit(props.length);
|
9788
|
-
}
|
9789
|
-
if (props.thickness) {
|
9790
|
-
styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness);
|
9791
|
-
}
|
9792
|
-
return styles;
|
9793
|
-
});
|
9794
|
-
useRender(() => {
|
9795
|
-
const divider = createVNode("hr", {
|
9796
|
-
"class": [{
|
9797
|
-
'v-divider': true,
|
9798
|
-
'v-divider--inset': props.inset,
|
9799
|
-
'v-divider--vertical': props.vertical
|
9800
|
-
}, themeClasses.value, textColorClasses.value, props.class],
|
9801
|
-
"style": [dividerStyles.value, textColorStyles.value, {
|
9802
|
-
'--v-border-opacity': props.opacity
|
9803
|
-
}, props.style],
|
9804
|
-
"aria-orientation": !attrs.role || attrs.role === 'separator' ? props.vertical ? 'vertical' : 'horizontal' : undefined,
|
9805
|
-
"role": `${attrs.role || 'separator'}`
|
9806
|
-
}, null);
|
9807
|
-
if (!slots.default) return divider;
|
9808
|
-
return createVNode("div", {
|
9809
|
-
"class": ['v-divider__wrapper', {
|
9810
|
-
'v-divider__wrapper--vertical': props.vertical,
|
9811
|
-
'v-divider__wrapper--inset': props.inset
|
9812
|
-
}]
|
9813
|
-
}, [divider, createVNode("div", {
|
9814
|
-
"class": "v-divider__content"
|
9815
|
-
}, [slots.default()]), divider]);
|
9816
|
-
});
|
9817
|
-
return {};
|
9818
|
-
}
|
9819
|
-
});
|
9820
|
-
|
9821
9821
|
// Types
|
9822
9822
|
|
9823
9823
|
const makeVListChildrenProps = propsFactory({
|
@@ -13369,6 +13369,22 @@ const VSelect = genericComponent()({
|
|
13369
13369
|
key: item.value,
|
13370
13370
|
onClick: () => select(item, null)
|
13371
13371
|
});
|
13372
|
+
if (item.raw.type === 'divider') {
|
13373
|
+
return slots.divider?.({
|
13374
|
+
props: item.raw,
|
13375
|
+
index
|
13376
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
13377
|
+
"key": `divider-${index}`
|
13378
|
+
}), null);
|
13379
|
+
}
|
13380
|
+
if (item.raw.type === 'subheader') {
|
13381
|
+
return slots.subheader?.({
|
13382
|
+
props: item.raw,
|
13383
|
+
index
|
13384
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
13385
|
+
"key": `subheader-${index}`
|
13386
|
+
}), null);
|
13387
|
+
}
|
13372
13388
|
return slots.item?.({
|
13373
13389
|
item,
|
13374
13390
|
index,
|
@@ -13529,6 +13545,9 @@ function filterItems(items, query, options) {
|
|
13529
13545
|
let match = -1;
|
13530
13546
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13531
13547
|
if (typeof item === 'object') {
|
13548
|
+
if (['divider', 'subheader'].includes(item.raw?.type)) {
|
13549
|
+
continue;
|
13550
|
+
}
|
13532
13551
|
const filterKeys = keys || Object.keys(transformed);
|
13533
13552
|
for (const key of filterKeys) {
|
13534
13553
|
const value = getPropertyFromItem(transformed, key);
|
@@ -13967,6 +13986,22 @@ const VAutocomplete = genericComponent()({
|
|
13967
13986
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13968
13987
|
onClick: () => select(item, null)
|
13969
13988
|
});
|
13989
|
+
if (item.raw.type === 'divider') {
|
13990
|
+
return slots.divider?.({
|
13991
|
+
props: item.raw,
|
13992
|
+
index
|
13993
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
13994
|
+
"key": `divider-${index}`
|
13995
|
+
}), null);
|
13996
|
+
}
|
13997
|
+
if (item.raw.type === 'subheader') {
|
13998
|
+
return slots.subheader?.({
|
13999
|
+
props: item.raw,
|
14000
|
+
index
|
14001
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
14002
|
+
"key": `subheader-${index}`
|
14003
|
+
}), null);
|
14004
|
+
}
|
13970
14005
|
return slots.item?.({
|
13971
14006
|
item,
|
13972
14007
|
index,
|
@@ -18694,6 +18729,22 @@ const VCombobox = genericComponent()({
|
|
18694
18729
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18695
18730
|
onClick: () => select(item, null)
|
18696
18731
|
});
|
18732
|
+
if (item.raw.type === 'divider') {
|
18733
|
+
return slots.divider?.({
|
18734
|
+
props: item.raw,
|
18735
|
+
index
|
18736
|
+
}) ?? createVNode(VDivider, mergeProps(item.props, {
|
18737
|
+
"key": `divider-${index}`
|
18738
|
+
}), null);
|
18739
|
+
}
|
18740
|
+
if (item.raw.type === 'subheader') {
|
18741
|
+
return slots.subheader?.({
|
18742
|
+
props: item.raw,
|
18743
|
+
index
|
18744
|
+
}) ?? createVNode(VListSubheader, mergeProps(item.props, {
|
18745
|
+
"key": `subheader-${index}`
|
18746
|
+
}), null);
|
18747
|
+
}
|
18697
18748
|
return slots.item?.({
|
18698
18749
|
item,
|
18699
18750
|
index,
|
@@ -25116,6 +25167,10 @@ const makeVNumberInputProps = propsFactory({
|
|
25116
25167
|
type: Number,
|
25117
25168
|
default: 0
|
25118
25169
|
},
|
25170
|
+
minFractionDigits: {
|
25171
|
+
type: Number,
|
25172
|
+
default: null
|
25173
|
+
},
|
25119
25174
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
25120
25175
|
}, 'VNumberInput');
|
25121
25176
|
const VNumberInput = genericComponent()({
|
@@ -25146,9 +25201,19 @@ const VNumberInput = genericComponent()({
|
|
25146
25201
|
} = useFocus(props);
|
25147
25202
|
function correctPrecision(val) {
|
25148
25203
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
25149
|
-
|
25150
|
-
|
25151
|
-
|
25204
|
+
if (precision == null) {
|
25205
|
+
return String(val);
|
25206
|
+
}
|
25207
|
+
let fixed = val.toFixed(precision);
|
25208
|
+
if (isFocused.value) {
|
25209
|
+
return Number(fixed).toString(); // trim zeros
|
25210
|
+
}
|
25211
|
+
if ((props.minFractionDigits ?? precision) < precision) {
|
25212
|
+
const trimLimit = precision - props.minFractionDigits;
|
25213
|
+
const [baseDigits, fractionDigits] = fixed.split('.');
|
25214
|
+
fixed = [baseDigits, fractionDigits.replace(new RegExp(`0{1,${trimLimit}}$`), '')].filter(Boolean).join('.');
|
25215
|
+
}
|
25216
|
+
return fixed;
|
25152
25217
|
}
|
25153
25218
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
25154
25219
|
const _inputText = shallowRef(null);
|
@@ -25201,6 +25266,7 @@ const VNumberInput = genericComponent()({
|
|
25201
25266
|
}
|
25202
25267
|
};
|
25203
25268
|
watch(() => props.precision, () => formatInputValue());
|
25269
|
+
watch(() => props.minFractionDigits, () => formatInputValue());
|
25204
25270
|
onMounted(() => {
|
25205
25271
|
clampModel();
|
25206
25272
|
});
|
@@ -25302,7 +25368,7 @@ const VNumberInput = genericComponent()({
|
|
25302
25368
|
inputText.value = null;
|
25303
25369
|
return;
|
25304
25370
|
}
|
25305
|
-
inputText.value =
|
25371
|
+
inputText.value = correctPrecision(model.value);
|
25306
25372
|
}
|
25307
25373
|
function trimDecimalZeros() {
|
25308
25374
|
if (controlsDisabled.value) return;
|
@@ -29344,7 +29410,7 @@ function createVuetify$1() {
|
|
29344
29410
|
};
|
29345
29411
|
});
|
29346
29412
|
}
|
29347
|
-
const version$1 = "3.8.5-dev.2025-05-
|
29413
|
+
const version$1 = "3.8.5-dev.2025-05-20";
|
29348
29414
|
createVuetify$1.version = version$1;
|
29349
29415
|
|
29350
29416
|
// Vue's inject() can only be used in setup
|
@@ -29369,7 +29435,7 @@ const createVuetify = function () {
|
|
29369
29435
|
...options
|
29370
29436
|
});
|
29371
29437
|
};
|
29372
|
-
const version = "3.8.5-dev.2025-05-
|
29438
|
+
const version = "3.8.5-dev.2025-05-20";
|
29373
29439
|
createVuetify.version = version;
|
29374
29440
|
|
29375
29441
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|