@vuetify/nightly 3.8.6-master.2025-05-22 → 3.8.6-master.2025-05-24
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 +15 -3
- package/dist/json/attributes.json +3419 -3419
- package/dist/json/importMap-labs.json +32 -32
- package/dist/json/importMap.json +162 -162
- package/dist/json/web-types.json +6126 -6126
- package/dist/vuetify-labs.cjs +37 -11
- package/dist/vuetify-labs.css +3740 -3740
- package/dist/vuetify-labs.d.ts +60 -60
- package/dist/vuetify-labs.esm.js +37 -11
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +37 -11
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +37 -11
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2094 -2094
- package/dist/vuetify.d.ts +60 -60
- package/dist/vuetify.esm.js +37 -11
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +37 -11
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +11 -8
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VField/VField.js +4 -2
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VInput/InputIcon.d.ts +1 -1
- package/lib/components/VInput/InputIcon.js +5 -4
- package/lib/components/VInput/InputIcon.js.map +1 -1
- package/lib/components/VNumberInput/VNumberInput.js +12 -4
- package/lib/components/VNumberInput/VNumberInput.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +60 -60
- package/lib/framework.js +1 -1
- package/lib/util/helpers.d.ts +1 -0
- package/lib/util/helpers.js +15 -0
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.8.6-master.2025-05-
|
2
|
+
* Vuetify v3.8.6-master.2025-05-24
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -591,6 +591,21 @@
|
|
591
591
|
function isPrimitive(value) {
|
592
592
|
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
593
593
|
}
|
594
|
+
function extractNumber(text, decimalDigitsLimit) {
|
595
|
+
const cleanText = text.split('').filter(x => /[\d\-.]/.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
|
596
|
+
// sign allowed at the start
|
597
|
+
x === '.' && i === all.indexOf('.') ||
|
598
|
+
// decimal separator allowed only once
|
599
|
+
/\d/.test(x)).join('');
|
600
|
+
if (decimalDigitsLimit === 0) {
|
601
|
+
return cleanText.split('.')[0];
|
602
|
+
}
|
603
|
+
if (decimalDigitsLimit !== null && /\.\d/.test(cleanText)) {
|
604
|
+
const parts = cleanText.split('.');
|
605
|
+
return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join('.');
|
606
|
+
}
|
607
|
+
return cleanText;
|
608
|
+
}
|
594
609
|
|
595
610
|
// Utilities
|
596
611
|
const block = ['top', 'bottom'];
|
@@ -6546,7 +6561,8 @@
|
|
6546
6561
|
function InputIcon(_ref) {
|
6547
6562
|
let {
|
6548
6563
|
name,
|
6549
|
-
color
|
6564
|
+
color,
|
6565
|
+
...attrs
|
6550
6566
|
} = _ref;
|
6551
6567
|
const localeKey = {
|
6552
6568
|
prepend: 'prependAction',
|
@@ -6563,13 +6579,13 @@
|
|
6563
6579
|
callEvent(listener, new PointerEvent('click', e));
|
6564
6580
|
}
|
6565
6581
|
const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;
|
6566
|
-
return vue.createVNode(VIcon, {
|
6582
|
+
return vue.createVNode(VIcon, vue.mergeProps({
|
6567
6583
|
"icon": props[`${name}Icon`],
|
6568
6584
|
"aria-label": label,
|
6569
6585
|
"onClick": listener,
|
6570
6586
|
"onKeydown": onKeydown,
|
6571
6587
|
"color": color
|
6572
|
-
}, null);
|
6588
|
+
}, attrs), null);
|
6573
6589
|
}
|
6574
6590
|
return {
|
6575
6591
|
InputIcon
|
@@ -11982,12 +11998,14 @@
|
|
11982
11998
|
props: {
|
11983
11999
|
onFocus: focus,
|
11984
12000
|
onBlur: blur,
|
11985
|
-
onClick: props['onClick:clear']
|
12001
|
+
onClick: props['onClick:clear'],
|
12002
|
+
tabindex: -1
|
11986
12003
|
}
|
11987
12004
|
}) : vue.createVNode(InputIcon, {
|
11988
12005
|
"name": "clear",
|
11989
12006
|
"onFocus": focus,
|
11990
|
-
"onBlur": blur
|
12007
|
+
"onBlur": blur,
|
12008
|
+
"tabindex": -1
|
11991
12009
|
}, null)]
|
11992
12010
|
})]), [[vue.vShow, props.dirty]])]
|
11993
12011
|
}), hasAppend && vue.createVNode("div", {
|
@@ -24897,25 +24915,33 @@
|
|
24897
24915
|
}
|
24898
24916
|
function onBeforeinput(e) {
|
24899
24917
|
if (!e.data) return;
|
24900
|
-
const
|
24901
|
-
const
|
24902
|
-
|
24918
|
+
const inputElement = e.target;
|
24919
|
+
const {
|
24920
|
+
value: existingTxt,
|
24921
|
+
selectionStart,
|
24922
|
+
selectionEnd
|
24923
|
+
} = inputElement ?? {};
|
24903
24924
|
const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
|
24925
|
+
const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
|
24926
|
+
|
24904
24927
|
// Only numbers, "-", "." are allowed
|
24905
24928
|
// AND "-", "." are allowed only once
|
24906
24929
|
// AND "-" is only allowed at the start
|
24907
24930
|
if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
|
24908
24931
|
e.preventDefault();
|
24932
|
+
inputElement.value = potentialNewNumber;
|
24909
24933
|
}
|
24910
24934
|
if (props.precision == null) return;
|
24911
24935
|
|
24912
24936
|
// Ignore decimal digits above precision limit
|
24913
24937
|
if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
|
24914
24938
|
e.preventDefault();
|
24939
|
+
inputElement.value = potentialNewNumber;
|
24915
24940
|
}
|
24916
24941
|
// Ignore decimal separator when precision = 0
|
24917
24942
|
if (props.precision === 0 && potentialNewInputVal.includes('.')) {
|
24918
24943
|
e.preventDefault();
|
24944
|
+
inputElement.value = potentialNewNumber;
|
24919
24945
|
}
|
24920
24946
|
}
|
24921
24947
|
async function onKeydown(e) {
|
@@ -31989,7 +32015,7 @@
|
|
31989
32015
|
};
|
31990
32016
|
});
|
31991
32017
|
}
|
31992
|
-
const version$1 = "3.8.6-master.2025-05-
|
32018
|
+
const version$1 = "3.8.6-master.2025-05-24";
|
31993
32019
|
createVuetify$1.version = version$1;
|
31994
32020
|
|
31995
32021
|
// Vue's inject() can only be used in setup
|
@@ -32287,7 +32313,7 @@
|
|
32287
32313
|
|
32288
32314
|
/* eslint-disable local-rules/sort-imports */
|
32289
32315
|
|
32290
|
-
const version = "3.8.6-master.2025-05-
|
32316
|
+
const version = "3.8.6-master.2025-05-24";
|
32291
32317
|
|
32292
32318
|
/* eslint-disable local-rules/sort-imports */
|
32293
32319
|
|