@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-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,
|
@@ -18416,6 +18451,22 @@ const VCombobox = genericComponent()({
|
|
18416
18451
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18417
18452
|
onClick: () => select(item, null)
|
18418
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
|
+
}
|
18419
18470
|
return slots.item?.({
|
18420
18471
|
item,
|
18421
18472
|
index,
|
@@ -24838,6 +24889,10 @@ const makeVNumberInputProps = propsFactory({
|
|
24838
24889
|
type: Number,
|
24839
24890
|
default: 0
|
24840
24891
|
},
|
24892
|
+
minFractionDigits: {
|
24893
|
+
type: Number,
|
24894
|
+
default: null
|
24895
|
+
},
|
24841
24896
|
...omit(makeVTextFieldProps(), ['modelValue', 'validationValue'])
|
24842
24897
|
}, 'VNumberInput');
|
24843
24898
|
const VNumberInput = genericComponent()({
|
@@ -24868,9 +24923,19 @@ const VNumberInput = genericComponent()({
|
|
24868
24923
|
} = useFocus(props);
|
24869
24924
|
function correctPrecision(val) {
|
24870
24925
|
let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : props.precision;
|
24871
|
-
|
24872
|
-
|
24873
|
-
|
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;
|
24874
24939
|
}
|
24875
24940
|
const model = useProxiedModel(props, 'modelValue', null, val => val ?? null, val => val == null ? val ?? null : clamp(Number(val), props.min, props.max));
|
24876
24941
|
const _inputText = shallowRef(null);
|
@@ -24923,6 +24988,7 @@ const VNumberInput = genericComponent()({
|
|
24923
24988
|
}
|
24924
24989
|
};
|
24925
24990
|
watch(() => props.precision, () => formatInputValue());
|
24991
|
+
watch(() => props.minFractionDigits, () => formatInputValue());
|
24926
24992
|
onMounted(() => {
|
24927
24993
|
clampModel();
|
24928
24994
|
});
|
@@ -25024,7 +25090,7 @@ const VNumberInput = genericComponent()({
|
|
25024
25090
|
inputText.value = null;
|
25025
25091
|
return;
|
25026
25092
|
}
|
25027
|
-
inputText.value =
|
25093
|
+
inputText.value = correctPrecision(model.value);
|
25028
25094
|
}
|
25029
25095
|
function trimDecimalZeros() {
|
25030
25096
|
if (controlsDisabled.value) return;
|
@@ -32034,7 +32100,7 @@ function createVuetify$1() {
|
|
32034
32100
|
};
|
32035
32101
|
});
|
32036
32102
|
}
|
32037
|
-
const version$1 = "3.8.5-dev.2025-05-
|
32103
|
+
const version$1 = "3.8.5-dev.2025-05-20";
|
32038
32104
|
createVuetify$1.version = version$1;
|
32039
32105
|
|
32040
32106
|
// Vue's inject() can only be used in setup
|
@@ -32332,7 +32398,7 @@ var index = /*#__PURE__*/Object.freeze({
|
|
32332
32398
|
|
32333
32399
|
/* eslint-disable local-rules/sort-imports */
|
32334
32400
|
|
32335
|
-
const version = "3.8.5-dev.2025-05-
|
32401
|
+
const version = "3.8.5-dev.2025-05-20";
|
32336
32402
|
|
32337
32403
|
/* eslint-disable local-rules/sort-imports */
|
32338
32404
|
|