@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.cjs
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
|
*/
|
@@ -514,6 +514,21 @@
|
|
514
514
|
function isPrimitive(value) {
|
515
515
|
return typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean' || typeof value === 'bigint';
|
516
516
|
}
|
517
|
+
function extractNumber(text, decimalDigitsLimit) {
|
518
|
+
const cleanText = text.split('').filter(x => /[\d\-.]/.test(x)).filter((x, i, all) => i === 0 && /[-]/.test(x) ||
|
519
|
+
// sign allowed at the start
|
520
|
+
x === '.' && i === all.indexOf('.') ||
|
521
|
+
// decimal separator allowed only once
|
522
|
+
/\d/.test(x)).join('');
|
523
|
+
if (decimalDigitsLimit === 0) {
|
524
|
+
return cleanText.split('.')[0];
|
525
|
+
}
|
526
|
+
if (decimalDigitsLimit !== null && /\.\d/.test(cleanText)) {
|
527
|
+
const parts = cleanText.split('.');
|
528
|
+
return [parts[0], parts[1].substring(0, decimalDigitsLimit)].join('.');
|
529
|
+
}
|
530
|
+
return cleanText;
|
531
|
+
}
|
517
532
|
|
518
533
|
// Utilities
|
519
534
|
const block = ['top', 'bottom'];
|
@@ -6824,7 +6839,8 @@
|
|
6824
6839
|
function InputIcon(_ref) {
|
6825
6840
|
let {
|
6826
6841
|
name,
|
6827
|
-
color
|
6842
|
+
color,
|
6843
|
+
...attrs
|
6828
6844
|
} = _ref;
|
6829
6845
|
const localeKey = {
|
6830
6846
|
prepend: 'prependAction',
|
@@ -6841,13 +6857,13 @@
|
|
6841
6857
|
callEvent(listener, new PointerEvent('click', e));
|
6842
6858
|
}
|
6843
6859
|
const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;
|
6844
|
-
return vue.createVNode(VIcon, {
|
6860
|
+
return vue.createVNode(VIcon, vue.mergeProps({
|
6845
6861
|
"icon": props[`${name}Icon`],
|
6846
6862
|
"aria-label": label,
|
6847
6863
|
"onClick": listener,
|
6848
6864
|
"onKeydown": onKeydown,
|
6849
6865
|
"color": color
|
6850
|
-
}, null);
|
6866
|
+
}, attrs), null);
|
6851
6867
|
}
|
6852
6868
|
return {
|
6853
6869
|
InputIcon
|
@@ -12260,12 +12276,14 @@
|
|
12260
12276
|
props: {
|
12261
12277
|
onFocus: focus,
|
12262
12278
|
onBlur: blur,
|
12263
|
-
onClick: props['onClick:clear']
|
12279
|
+
onClick: props['onClick:clear'],
|
12280
|
+
tabindex: -1
|
12264
12281
|
}
|
12265
12282
|
}) : vue.createVNode(InputIcon, {
|
12266
12283
|
"name": "clear",
|
12267
12284
|
"onFocus": focus,
|
12268
|
-
"onBlur": blur
|
12285
|
+
"onBlur": blur,
|
12286
|
+
"tabindex": -1
|
12269
12287
|
}, null)]
|
12270
12288
|
})]), [[vue.vShow, props.dirty]])]
|
12271
12289
|
}), hasAppend && vue.createVNode("div", {
|
@@ -25175,25 +25193,33 @@
|
|
25175
25193
|
}
|
25176
25194
|
function onBeforeinput(e) {
|
25177
25195
|
if (!e.data) return;
|
25178
|
-
const
|
25179
|
-
const
|
25180
|
-
|
25196
|
+
const inputElement = e.target;
|
25197
|
+
const {
|
25198
|
+
value: existingTxt,
|
25199
|
+
selectionStart,
|
25200
|
+
selectionEnd
|
25201
|
+
} = inputElement ?? {};
|
25181
25202
|
const potentialNewInputVal = existingTxt ? existingTxt.slice(0, selectionStart) + e.data + existingTxt.slice(selectionEnd) : e.data;
|
25203
|
+
const potentialNewNumber = extractNumber(potentialNewInputVal, props.precision);
|
25204
|
+
|
25182
25205
|
// Only numbers, "-", "." are allowed
|
25183
25206
|
// AND "-", "." are allowed only once
|
25184
25207
|
// AND "-" is only allowed at the start
|
25185
25208
|
if (!/^-?(\d+(\.\d*)?|(\.\d+)|\d*|\.)$/.test(potentialNewInputVal)) {
|
25186
25209
|
e.preventDefault();
|
25210
|
+
inputElement.value = potentialNewNumber;
|
25187
25211
|
}
|
25188
25212
|
if (props.precision == null) return;
|
25189
25213
|
|
25190
25214
|
// Ignore decimal digits above precision limit
|
25191
25215
|
if (potentialNewInputVal.split('.')[1]?.length > props.precision) {
|
25192
25216
|
e.preventDefault();
|
25217
|
+
inputElement.value = potentialNewNumber;
|
25193
25218
|
}
|
25194
25219
|
// Ignore decimal separator when precision = 0
|
25195
25220
|
if (props.precision === 0 && potentialNewInputVal.includes('.')) {
|
25196
25221
|
e.preventDefault();
|
25222
|
+
inputElement.value = potentialNewNumber;
|
25197
25223
|
}
|
25198
25224
|
}
|
25199
25225
|
async function onKeydown(e) {
|
@@ -29294,7 +29320,7 @@
|
|
29294
29320
|
};
|
29295
29321
|
});
|
29296
29322
|
}
|
29297
|
-
const version$1 = "3.8.6-master.2025-05-
|
29323
|
+
const version$1 = "3.8.6-master.2025-05-24";
|
29298
29324
|
createVuetify$1.version = version$1;
|
29299
29325
|
|
29300
29326
|
// Vue's inject() can only be used in setup
|
@@ -29319,7 +29345,7 @@
|
|
29319
29345
|
...options
|
29320
29346
|
});
|
29321
29347
|
};
|
29322
|
-
const version = "3.8.6-master.2025-05-
|
29348
|
+
const version = "3.8.6-master.2025-05-24";
|
29323
29349
|
createVuetify.version = version;
|
29324
29350
|
|
29325
29351
|
exports.blueprints = index;
|