vuetify 3.3.10 → 3.3.12
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/dist/_component-variables-labs.sass +3 -1
- package/dist/json/attributes.json +225 -33
- package/dist/json/importMap-labs.json +28 -0
- package/dist/json/tags.json +80 -0
- package/dist/json/web-types.json +703 -34
- package/dist/vuetify-labs.css +1092 -899
- package/dist/vuetify-labs.d.ts +2810 -304
- package/dist/vuetify-labs.esm.js +784 -87
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +784 -87
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +349 -316
- package/dist/vuetify.d.ts +64 -29
- package/dist/vuetify.esm.js +141 -63
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +141 -63
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +954 -947
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/md1.mjs +5 -0
- package/lib/blueprints/md1.mjs.map +1 -1
- package/lib/blueprints/md2.mjs +5 -0
- package/lib/blueprints/md2.mjs.map +1 -1
- package/lib/blueprints/md3.mjs +7 -1
- package/lib/blueprints/md3.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +13 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +6 -0
- package/lib/components/VBanner/VBanner.css +2 -0
- package/lib/components/VBanner/VBanner.sass +2 -0
- package/lib/components/VBtn/VBtn.css +3 -0
- package/lib/components/VBtn/VBtn.sass +2 -0
- package/lib/components/VCarousel/index.d.mts +12 -10
- package/lib/components/VChip/VChip.mjs +4 -3
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +10 -4
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +6 -0
- package/lib/components/VDialog/VDialog.css +15 -6
- package/lib/components/VDialog/VDialog.sass +41 -35
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +8 -3
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VField/VField.css +6 -2
- package/lib/components/VField/VField.sass +6 -2
- package/lib/components/VGrid/VGrid.css +4 -0
- package/lib/components/VGrid/VGrid.sass +4 -1
- package/lib/components/VGrid/VSpacer.mjs +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +7 -1
- package/lib/components/VList/VListItem.mjs +1 -0
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +4 -0
- package/lib/components/VMenu/VMenu.mjs +29 -4
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +2 -2
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.mts +8 -8
- package/lib/components/VRating/VRating.mjs +4 -2
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +11 -4
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +6 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.mjs +2 -3
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +1 -0
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.css +3 -0
- package/lib/components/VSwitch/VSwitch.sass +3 -0
- package/lib/components/VSwitch/_variables.scss +1 -0
- package/lib/components/VTable/VTable.css +2 -0
- package/lib/components/VTable/VTable.sass +2 -0
- package/lib/components/VTimeline/VTimeline.css +2 -2
- package/lib/components/VTimeline/VTimeline.sass +2 -2
- package/lib/components/VTooltip/VTooltip.css +1 -1
- package/lib/components/VTooltip/_variables.scss +1 -1
- package/lib/components/VWindow/VWindow.mjs +1 -0
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +3 -1
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.mts +29 -11
- package/lib/components/index.d.mts +57 -29
- package/lib/composables/group.mjs +1 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/theme.mjs +12 -6
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +7 -0
- package/lib/labs/VDateInput/composables.mjs +11 -1
- package/lib/labs/VDateInput/composables.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.css +6 -5
- package/lib/labs/VDatePicker/VDatePicker.mjs +36 -16
- package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/labs/VDatePicker/VDatePicker.sass +8 -9
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs +1 -1
- package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/labs/VDatePicker/composables.mjs +4 -2
- package/lib/labs/VDatePicker/composables.mjs.map +1 -1
- package/lib/labs/VDatePicker/index.d.mts +14 -0
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs +2 -2
- package/lib/labs/VDateRangePicker/VDateRangePickerHeader.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +4 -5
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VOtpInput/VOtpInput.css +53 -0
- package/lib/labs/VOtpInput/VOtpInput.mjs +222 -0
- package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -0
- package/lib/labs/VOtpInput/VOtpInput.sass +55 -0
- package/lib/labs/VOtpInput/_variables.scss +2 -0
- package/lib/labs/VOtpInput/index.d.mts +459 -0
- package/lib/labs/VOtpInput/index.mjs +2 -0
- package/lib/labs/VOtpInput/index.mjs.map +1 -0
- package/lib/labs/VPicker/VPicker.mjs +1 -1
- package/lib/labs/VPicker/VPicker.mjs.map +1 -1
- package/lib/labs/VStepper/VStepper.css +42 -0
- package/lib/labs/VStepper/VStepper.mjs +150 -0
- package/lib/labs/VStepper/VStepper.mjs.map +1 -0
- package/lib/labs/VStepper/VStepper.sass +44 -0
- package/lib/labs/VStepper/VStepperActions.mjs +61 -0
- package/lib/labs/VStepper/VStepperActions.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperHeader.mjs +4 -0
- package/lib/labs/VStepper/VStepperHeader.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperItem.css +67 -0
- package/lib/labs/VStepper/VStepperItem.mjs +114 -0
- package/lib/labs/VStepper/VStepperItem.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperItem.sass +71 -0
- package/lib/labs/VStepper/VStepperWindow.mjs +50 -0
- package/lib/labs/VStepper/VStepperWindow.mjs.map +1 -0
- package/lib/labs/VStepper/VStepperWindowItem.mjs +24 -0
- package/lib/labs/VStepper/VStepperWindowItem.mjs.map +1 -0
- package/lib/labs/VStepper/_variables.scss +4 -0
- package/lib/labs/VStepper/index.d.mts +2045 -0
- package/lib/labs/VStepper/index.mjs +7 -0
- package/lib/labs/VStepper/index.mjs.map +1 -0
- package/lib/labs/components.d.mts +2759 -267
- package/lib/labs/components.mjs +2 -0
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/adapters/vuetify.mjs +7 -8
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/locale/af.mjs +6 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +6 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +6 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +6 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +6 -1
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +6 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +6 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +6 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +6 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +6 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +6 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +6 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +6 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +6 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +6 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +6 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +6 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +6 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +6 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +6 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.mts +210 -0
- package/lib/locale/it.mjs +6 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +6 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +6 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +6 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +6 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +6 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +19 -14
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +6 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +6 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +23 -18
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +6 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +6 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +6 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +6 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +6 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +6 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +6 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +6 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +6 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +6 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +6 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +6 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/util/globals.mjs +0 -1
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +32 -12
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +3 -2
package/dist/vuetify.esm.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.3.
|
|
2
|
+
* Vuetify v3.3.12
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -71,6 +71,10 @@ const makeComponentProps = propsFactory({
|
|
|
71
71
|
}
|
|
72
72
|
}, 'component');
|
|
73
73
|
|
|
74
|
+
const IN_BROWSER = typeof window !== 'undefined';
|
|
75
|
+
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
76
|
+
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
77
|
+
|
|
74
78
|
function _classPrivateFieldInitSpec(obj, privateMap, value) { _checkPrivateRedeclaration(obj, privateMap); privateMap.set(obj, value); }
|
|
75
79
|
function _checkPrivateRedeclaration(obj, privateCollection) { if (privateCollection.has(obj)) { throw new TypeError("Cannot initialize the same private elements twice on an object"); } }
|
|
76
80
|
function _classPrivateFieldSet(receiver, privateMap, value) { var descriptor = _classExtractFieldDescriptor(receiver, privateMap, "set"); _classApplyDescriptorSet(receiver, descriptor, value); return value; }
|
|
@@ -403,12 +407,22 @@ function callEvent(handler) {
|
|
|
403
407
|
}
|
|
404
408
|
}
|
|
405
409
|
function focusableChildren(el) {
|
|
406
|
-
|
|
410
|
+
let filterByTabIndex = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
411
|
+
const targets = ['button', '[href]', 'input:not([type="hidden"])', 'select', 'textarea', '[tabindex]'].map(s => `${s}${filterByTabIndex ? ':not([tabindex="-1"])' : ''}:not([disabled])`).join(', ');
|
|
407
412
|
return [...el.querySelectorAll(targets)];
|
|
408
413
|
}
|
|
414
|
+
function getNextElement(elements, location, condition) {
|
|
415
|
+
let _el;
|
|
416
|
+
let idx = elements.indexOf(document.activeElement);
|
|
417
|
+
const inc = location === 'next' ? 1 : -1;
|
|
418
|
+
do {
|
|
419
|
+
idx += inc;
|
|
420
|
+
_el = elements[idx];
|
|
421
|
+
} while ((!_el || _el.offsetParent == null || !(condition?.(_el) ?? true)) && idx < elements.length && idx >= 0);
|
|
422
|
+
return _el;
|
|
423
|
+
}
|
|
409
424
|
function focusChild(el, location) {
|
|
410
425
|
const focusable = focusableChildren(el);
|
|
411
|
-
const idx = focusable.indexOf(document.activeElement);
|
|
412
426
|
if (!location) {
|
|
413
427
|
if (el === document.activeElement || !el.contains(document.activeElement)) {
|
|
414
428
|
focusable[0]?.focus();
|
|
@@ -417,19 +431,26 @@ function focusChild(el, location) {
|
|
|
417
431
|
focusable[0]?.focus();
|
|
418
432
|
} else if (location === 'last') {
|
|
419
433
|
focusable.at(-1)?.focus();
|
|
434
|
+
} else if (typeof location === 'number') {
|
|
435
|
+
focusable[location]?.focus();
|
|
420
436
|
} else {
|
|
421
|
-
|
|
422
|
-
let idxx = idx;
|
|
423
|
-
const inc = location === 'next' ? 1 : -1;
|
|
424
|
-
do {
|
|
425
|
-
idxx += inc;
|
|
426
|
-
_el = focusable[idxx];
|
|
427
|
-
} while ((!_el || _el.offsetParent == null) && idxx < focusable.length && idxx >= 0);
|
|
437
|
+
const _el = getNextElement(focusable, location);
|
|
428
438
|
if (_el) _el.focus();else focusChild(el, location === 'next' ? 'first' : 'last');
|
|
429
439
|
}
|
|
430
440
|
}
|
|
431
441
|
function noop() {}
|
|
432
442
|
|
|
443
|
+
/** Returns null if the selector is not supported or we can't check */
|
|
444
|
+
function matchesSelector(el, selector) {
|
|
445
|
+
const supportsSelector = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports(`selector(${selector})`);
|
|
446
|
+
if (!supportsSelector) return null;
|
|
447
|
+
try {
|
|
448
|
+
return !!el && el.matches(selector);
|
|
449
|
+
} catch (err) {
|
|
450
|
+
return null;
|
|
451
|
+
}
|
|
452
|
+
}
|
|
453
|
+
|
|
433
454
|
// Utilities
|
|
434
455
|
const block = ['top', 'bottom'];
|
|
435
456
|
const inline = ['start', 'end', 'left', 'right'];
|
|
@@ -1275,11 +1296,6 @@ function isPotentiallyScrollable(el) {
|
|
|
1275
1296
|
return ['scroll', 'auto'].includes(style.overflowY);
|
|
1276
1297
|
}
|
|
1277
1298
|
|
|
1278
|
-
const IN_BROWSER = typeof window !== 'undefined';
|
|
1279
|
-
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
1280
|
-
const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0);
|
|
1281
|
-
const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && typeof CSS !== 'undefined' && typeof CSS.supports !== 'undefined' && CSS.supports('selector(:focus-visible)');
|
|
1282
|
-
|
|
1283
1299
|
// Utilities
|
|
1284
1300
|
|
|
1285
1301
|
// Types
|
|
@@ -1681,7 +1697,8 @@ var en = {
|
|
|
1681
1697
|
input: {
|
|
1682
1698
|
clear: 'Clear {0}',
|
|
1683
1699
|
prependAction: '{0} prepended action',
|
|
1684
|
-
appendAction: '{0} appended action'
|
|
1700
|
+
appendAction: '{0} appended action',
|
|
1701
|
+
otp: 'Please enter OTP character {0}'
|
|
1685
1702
|
},
|
|
1686
1703
|
fileInput: {
|
|
1687
1704
|
counter: '{0} files',
|
|
@@ -1702,6 +1719,10 @@ var en = {
|
|
|
1702
1719
|
last: 'Last page'
|
|
1703
1720
|
}
|
|
1704
1721
|
},
|
|
1722
|
+
stepper: {
|
|
1723
|
+
next: 'Next',
|
|
1724
|
+
prev: 'Previous'
|
|
1725
|
+
},
|
|
1705
1726
|
rating: {
|
|
1706
1727
|
ariaLabel: {
|
|
1707
1728
|
item: 'Rating {0} of {1}'
|
|
@@ -2240,9 +2261,11 @@ function createTheme(options) {
|
|
|
2240
2261
|
if (head) {
|
|
2241
2262
|
if (head.push) {
|
|
2242
2263
|
const entry = head.push(getHead);
|
|
2243
|
-
|
|
2244
|
-
|
|
2245
|
-
|
|
2264
|
+
if (IN_BROWSER) {
|
|
2265
|
+
watch(styles, () => {
|
|
2266
|
+
entry.patch(getHead);
|
|
2267
|
+
});
|
|
2268
|
+
}
|
|
2246
2269
|
} else {
|
|
2247
2270
|
if (IN_BROWSER) {
|
|
2248
2271
|
head.addHeadObjs(computed(getHead));
|
|
@@ -2253,9 +2276,13 @@ function createTheme(options) {
|
|
|
2253
2276
|
}
|
|
2254
2277
|
} else {
|
|
2255
2278
|
let styleEl = IN_BROWSER ? document.getElementById('vuetify-theme-stylesheet') : null;
|
|
2256
|
-
|
|
2257
|
-
|
|
2258
|
-
|
|
2279
|
+
if (IN_BROWSER) {
|
|
2280
|
+
watch(styles, updateStyles, {
|
|
2281
|
+
immediate: true
|
|
2282
|
+
});
|
|
2283
|
+
} else {
|
|
2284
|
+
updateStyles();
|
|
2285
|
+
}
|
|
2259
2286
|
function updateStyles() {
|
|
2260
2287
|
if (typeof document !== 'undefined' && !styleEl) {
|
|
2261
2288
|
const el = document.createElement('style');
|
|
@@ -3860,7 +3887,7 @@ function useGroupItem(props, injectKey) {
|
|
|
3860
3887
|
throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`);
|
|
3861
3888
|
}
|
|
3862
3889
|
const value = toRef(props, 'value');
|
|
3863
|
-
const disabled = computed(() => group.disabled.value || props.disabled);
|
|
3890
|
+
const disabled = computed(() => !!(group.disabled.value || props.disabled));
|
|
3864
3891
|
group.register({
|
|
3865
3892
|
id,
|
|
3866
3893
|
value,
|
|
@@ -5795,7 +5822,7 @@ const VSelectionControl = genericComponent()({
|
|
|
5795
5822
|
});
|
|
5796
5823
|
function onFocus(e) {
|
|
5797
5824
|
isFocused.value = true;
|
|
5798
|
-
if (
|
|
5825
|
+
if (matchesSelector(e.target, ':focus-visible') !== false) {
|
|
5799
5826
|
isFocusVisible.value = true;
|
|
5800
5827
|
}
|
|
5801
5828
|
}
|
|
@@ -6755,6 +6782,7 @@ const VChip = genericComponent()({
|
|
|
6755
6782
|
const closeProps = computed(() => ({
|
|
6756
6783
|
'aria-label': t(props.closeLabel),
|
|
6757
6784
|
onClick(e) {
|
|
6785
|
+
e.stopPropagation();
|
|
6758
6786
|
isActive.value = false;
|
|
6759
6787
|
emit('click:close', e);
|
|
6760
6788
|
}
|
|
@@ -6804,7 +6832,7 @@ const VChip = genericComponent()({
|
|
|
6804
6832
|
}, [!slots.filter ? createVNode(VIcon, {
|
|
6805
6833
|
"key": "filter-icon",
|
|
6806
6834
|
"icon": props.filterIcon
|
|
6807
|
-
}, null) :
|
|
6835
|
+
}, null) : createVNode(VDefaultsProvider, {
|
|
6808
6836
|
"key": "filter-defaults",
|
|
6809
6837
|
"disabled": !props.filterIcon,
|
|
6810
6838
|
"defaults": {
|
|
@@ -6812,7 +6840,7 @@ const VChip = genericComponent()({
|
|
|
6812
6840
|
icon: props.filterIcon
|
|
6813
6841
|
}
|
|
6814
6842
|
}
|
|
6815
|
-
},
|
|
6843
|
+
}, slots.filter)]), [[vShow, group.isSelected.value]])]
|
|
6816
6844
|
}), hasPrepend && createVNode("div", {
|
|
6817
6845
|
"key": "prepend",
|
|
6818
6846
|
"class": "v-chip__prepend"
|
|
@@ -7626,6 +7654,7 @@ const VListItem = genericComponent()({
|
|
|
7626
7654
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
|
7627
7655
|
"href": link.href.value,
|
|
7628
7656
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
|
7657
|
+
"title": props.title,
|
|
7629
7658
|
"onClick": onClick,
|
|
7630
7659
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
|
7631
7660
|
}, {
|
|
@@ -8893,7 +8922,7 @@ function useActivator(props, _ref) {
|
|
|
8893
8922
|
runCloseDelay();
|
|
8894
8923
|
},
|
|
8895
8924
|
onFocus: e => {
|
|
8896
|
-
if (
|
|
8925
|
+
if (matchesSelector(e.target, ':focus-visible') === false) return;
|
|
8897
8926
|
isFocused = true;
|
|
8898
8927
|
e.stopPropagation();
|
|
8899
8928
|
activatorEl.value = e.currentTarget || e.target;
|
|
@@ -9813,8 +9842,30 @@ const VMenu = genericComponent()({
|
|
|
9813
9842
|
}, 40);
|
|
9814
9843
|
}
|
|
9815
9844
|
});
|
|
9845
|
+
function onFocusIn(e) {
|
|
9846
|
+
const before = e.relatedTarget;
|
|
9847
|
+
const after = e.target;
|
|
9848
|
+
if (before !== after && overlay.value?.contentEl &&
|
|
9849
|
+
// We're the topmost menu
|
|
9850
|
+
overlay.value?.globalTop &&
|
|
9851
|
+
// It isn't the document or the menu body
|
|
9852
|
+
![document, overlay.value.contentEl].includes(after) &&
|
|
9853
|
+
// It isn't inside the menu body
|
|
9854
|
+
!overlay.value.contentEl.contains(after)) {
|
|
9855
|
+
const focusable = focusableChildren(overlay.value.contentEl);
|
|
9856
|
+
focusable[0]?.focus();
|
|
9857
|
+
}
|
|
9858
|
+
}
|
|
9816
9859
|
watch(isActive, val => {
|
|
9817
|
-
|
|
9860
|
+
if (val) {
|
|
9861
|
+
parent?.register();
|
|
9862
|
+
document.addEventListener('focusin', onFocusIn, {
|
|
9863
|
+
once: true
|
|
9864
|
+
});
|
|
9865
|
+
} else {
|
|
9866
|
+
parent?.unregister();
|
|
9867
|
+
document.removeEventListener('focusin', onFocusIn);
|
|
9868
|
+
}
|
|
9818
9869
|
});
|
|
9819
9870
|
function onClickOutside() {
|
|
9820
9871
|
parent?.closeParents();
|
|
@@ -9822,8 +9873,11 @@ const VMenu = genericComponent()({
|
|
|
9822
9873
|
function onKeydown(e) {
|
|
9823
9874
|
if (props.disabled) return;
|
|
9824
9875
|
if (e.key === 'Tab') {
|
|
9825
|
-
|
|
9826
|
-
|
|
9876
|
+
const nextElement = getNextElement(focusableChildren(overlay.value?.contentEl, false), e.shiftKey ? 'prev' : 'next', el => el.tabIndex >= 0);
|
|
9877
|
+
if (!nextElement) {
|
|
9878
|
+
isActive.value = false;
|
|
9879
|
+
overlay.value?.activatorEl?.focus();
|
|
9880
|
+
}
|
|
9827
9881
|
}
|
|
9828
9882
|
}
|
|
9829
9883
|
function onActivatorKeydown(e) {
|
|
@@ -10737,6 +10791,7 @@ const makeSelectProps = propsFactory({
|
|
|
10737
10791
|
type: Function,
|
|
10738
10792
|
default: deepEqual
|
|
10739
10793
|
},
|
|
10794
|
+
itemColor: String,
|
|
10740
10795
|
...makeItemsProps({
|
|
10741
10796
|
itemChildren: false
|
|
10742
10797
|
})
|
|
@@ -10789,7 +10844,12 @@ const VSelect = genericComponent()({
|
|
|
10789
10844
|
const form = useForm();
|
|
10790
10845
|
const selections = computed(() => {
|
|
10791
10846
|
return model.value.map(v => {
|
|
10792
|
-
return items.value.find(item =>
|
|
10847
|
+
return items.value.find(item => {
|
|
10848
|
+
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
10849
|
+
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
10850
|
+
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
10851
|
+
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
10852
|
+
}) || v;
|
|
10793
10853
|
});
|
|
10794
10854
|
});
|
|
10795
10855
|
const selected = computed(() => selections.value.map(selection => selection.props.value));
|
|
@@ -10883,7 +10943,7 @@ const VSelect = genericComponent()({
|
|
|
10883
10943
|
isFocused.value = true;
|
|
10884
10944
|
}
|
|
10885
10945
|
function onModelUpdate(v) {
|
|
10886
|
-
if (v == null) model.value = [];else if (vTextFieldRef.value
|
|
10946
|
+
if (v == null) model.value = [];else if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {
|
|
10887
10947
|
const item = items.value.find(item => item.title === v);
|
|
10888
10948
|
if (item) {
|
|
10889
10949
|
select(item);
|
|
@@ -10945,7 +11005,8 @@ const VSelect = genericComponent()({
|
|
|
10945
11005
|
"onKeydown": onListKeydown,
|
|
10946
11006
|
"onFocusin": onFocusin,
|
|
10947
11007
|
"onScrollPassive": onListScroll,
|
|
10948
|
-
"tabindex": "-1"
|
|
11008
|
+
"tabindex": "-1",
|
|
11009
|
+
"color": props.itemColor ?? props.color
|
|
10949
11010
|
}, {
|
|
10950
11011
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
10951
11012
|
"title": t(props.noDataText)
|
|
@@ -11207,7 +11268,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11207
11268
|
const vTextFieldRef = ref();
|
|
11208
11269
|
const isFocused = shallowRef(false);
|
|
11209
11270
|
const isPristine = shallowRef(true);
|
|
11210
|
-
const listHasFocus =
|
|
11271
|
+
const listHasFocus = shallowRef(false);
|
|
11211
11272
|
const vMenuRef = ref();
|
|
11212
11273
|
const _menu = useProxiedModel(props, 'menu');
|
|
11213
11274
|
const menu = computed({
|
|
@@ -11240,7 +11301,12 @@ const VAutocomplete = genericComponent()({
|
|
|
11240
11301
|
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
11241
11302
|
const selections = computed(() => {
|
|
11242
11303
|
return model.value.map(v => {
|
|
11243
|
-
return items.value.find(item =>
|
|
11304
|
+
return items.value.find(item => {
|
|
11305
|
+
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
11306
|
+
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
11307
|
+
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
11308
|
+
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
11309
|
+
}) || v;
|
|
11244
11310
|
});
|
|
11245
11311
|
});
|
|
11246
11312
|
const displayItems = computed(() => {
|
|
@@ -11292,11 +11358,8 @@ const VAutocomplete = genericComponent()({
|
|
|
11292
11358
|
if (['Escape'].includes(e.key)) {
|
|
11293
11359
|
menu.value = false;
|
|
11294
11360
|
}
|
|
11295
|
-
if (['Enter', '
|
|
11296
|
-
|
|
11297
|
-
select(filteredItems.value[0]);
|
|
11298
|
-
}
|
|
11299
|
-
isPristine.value = true;
|
|
11361
|
+
if (highlightFirst.value && ['Enter', 'Tab'].includes(e.key)) {
|
|
11362
|
+
select(filteredItems.value[0]);
|
|
11300
11363
|
}
|
|
11301
11364
|
if (e.key === 'ArrowDown' && highlightFirst.value) {
|
|
11302
11365
|
listRef.value?.focus('next');
|
|
@@ -11338,7 +11401,7 @@ const VAutocomplete = genericComponent()({
|
|
|
11338
11401
|
search.value = e.target.value;
|
|
11339
11402
|
}
|
|
11340
11403
|
function onChange(e) {
|
|
11341
|
-
if (vTextFieldRef.value
|
|
11404
|
+
if (matchesSelector(vTextFieldRef.value, ':autofill') || matchesSelector(vTextFieldRef.value, ':-webkit-autofill')) {
|
|
11342
11405
|
const item = items.value.find(item => item.title === e.target.value);
|
|
11343
11406
|
if (item) {
|
|
11344
11407
|
select(item);
|
|
@@ -11462,7 +11525,8 @@ const VAutocomplete = genericComponent()({
|
|
|
11462
11525
|
"onFocusin": onFocusin,
|
|
11463
11526
|
"onFocusout": onFocusout,
|
|
11464
11527
|
"onScrollPassive": onListScroll,
|
|
11465
|
-
"tabindex": "-1"
|
|
11528
|
+
"tabindex": "-1",
|
|
11529
|
+
"color": props.itemColor ?? props.color
|
|
11466
11530
|
}, {
|
|
11467
11531
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
11468
11532
|
"title": t(props.noDataText)
|
|
@@ -12510,6 +12574,7 @@ const makeVWindowProps = propsFactory({
|
|
|
12510
12574
|
},
|
|
12511
12575
|
// TODO: mandatory should probably not be exposed but do this for now
|
|
12512
12576
|
mandatory: {
|
|
12577
|
+
type: [Boolean, String],
|
|
12513
12578
|
default: 'force'
|
|
12514
12579
|
},
|
|
12515
12580
|
...makeComponentProps(),
|
|
@@ -12877,7 +12942,9 @@ const VWindowItem = genericComponent()({
|
|
|
12877
12942
|
"style": props.style
|
|
12878
12943
|
}, [hasContent.value && slots.default?.()]), [[vShow, groupItem.isSelected.value]])]
|
|
12879
12944
|
}));
|
|
12880
|
-
return {
|
|
12945
|
+
return {
|
|
12946
|
+
groupItem
|
|
12947
|
+
};
|
|
12881
12948
|
}
|
|
12882
12949
|
});
|
|
12883
12950
|
|
|
@@ -13431,6 +13498,7 @@ const useSteps = props => {
|
|
|
13431
13498
|
const step = computed(() => +props.step > 0 ? parseFloat(props.step) : 0);
|
|
13432
13499
|
const decimals = computed(() => Math.max(getDecimals(step.value), getDecimals(min.value)));
|
|
13433
13500
|
function roundValue(value) {
|
|
13501
|
+
value = parseFloat(value);
|
|
13434
13502
|
if (step.value <= 0) return value;
|
|
13435
13503
|
const clamped = clamp(value, min.value, max.value);
|
|
13436
13504
|
const offset = min.value % step.value;
|
|
@@ -13934,9 +14002,8 @@ const VSlider = genericComponent()({
|
|
|
13934
14002
|
rtlClasses
|
|
13935
14003
|
} = useRtl();
|
|
13936
14004
|
const steps = useSteps(props);
|
|
13937
|
-
const model = useProxiedModel(props, 'modelValue', undefined,
|
|
13938
|
-
|
|
13939
|
-
return steps.roundValue(value);
|
|
14005
|
+
const model = useProxiedModel(props, 'modelValue', undefined, value => {
|
|
14006
|
+
return steps.roundValue(value == null ? steps.min.value : value);
|
|
13940
14007
|
});
|
|
13941
14008
|
const {
|
|
13942
14009
|
min,
|
|
@@ -14730,7 +14797,7 @@ const VCombobox = genericComponent()({
|
|
|
14730
14797
|
const vTextFieldRef = ref();
|
|
14731
14798
|
const isFocused = shallowRef(false);
|
|
14732
14799
|
const isPristine = shallowRef(true);
|
|
14733
|
-
const listHasFocus =
|
|
14800
|
+
const listHasFocus = shallowRef(false);
|
|
14734
14801
|
const vMenuRef = ref();
|
|
14735
14802
|
const _menu = useProxiedModel(props, 'menu');
|
|
14736
14803
|
const menu = computed({
|
|
@@ -14802,7 +14869,12 @@ const VCombobox = genericComponent()({
|
|
|
14802
14869
|
} = useFilter(props, items, () => isPristine.value ? '' : search.value);
|
|
14803
14870
|
const selections = computed(() => {
|
|
14804
14871
|
return model.value.map(v => {
|
|
14805
|
-
return items.value.find(item =>
|
|
14872
|
+
return items.value.find(item => {
|
|
14873
|
+
const itemRawValue = getPropertyFromItem(item.raw, props.itemValue);
|
|
14874
|
+
const modelRawValue = getPropertyFromItem(v.raw, props.itemValue);
|
|
14875
|
+
if (itemRawValue === undefined || modelRawValue === undefined) return false;
|
|
14876
|
+
return props.returnObject ? props.valueComparator(itemRawValue, modelRawValue) : props.valueComparator(item.value, v.value);
|
|
14877
|
+
}) || v;
|
|
14806
14878
|
});
|
|
14807
14879
|
});
|
|
14808
14880
|
const displayItems = computed(() => {
|
|
@@ -15011,7 +15083,8 @@ const VCombobox = genericComponent()({
|
|
|
15011
15083
|
"onFocusin": onFocusin,
|
|
15012
15084
|
"onFocusout": onFocusout,
|
|
15013
15085
|
"onScrollPassive": onListScroll,
|
|
15014
|
-
"tabindex": "-1"
|
|
15086
|
+
"tabindex": "-1",
|
|
15087
|
+
"color": props.itemColor ?? props.color
|
|
15015
15088
|
}, {
|
|
15016
15089
|
default: () => [slots['prepend-item']?.(), !displayItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? createVNode(VListItem, {
|
|
15017
15090
|
"title": t(props.noDataText)
|
|
@@ -15429,6 +15502,11 @@ const VExpansionPanel = genericComponent()({
|
|
|
15429
15502
|
return !groupItem.isSelected.value && selectedIndices.value.some(selectedIndex => selectedIndex - index === -1);
|
|
15430
15503
|
});
|
|
15431
15504
|
provide(VExpansionPanelSymbol, groupItem);
|
|
15505
|
+
provideDefaults({
|
|
15506
|
+
VExpansionPanelText: {
|
|
15507
|
+
eager: toRef(props, 'eager')
|
|
15508
|
+
}
|
|
15509
|
+
});
|
|
15432
15510
|
useRender(() => {
|
|
15433
15511
|
const hasText = !!(slots.text || props.text);
|
|
15434
15512
|
const hasTitle = !!(slots.title || props.title);
|
|
@@ -15453,8 +15531,7 @@ const VExpansionPanel = genericComponent()({
|
|
|
15453
15531
|
}, {
|
|
15454
15532
|
default: () => [slots.title ? slots.title() : props.title]
|
|
15455
15533
|
}), hasText && createVNode(VExpansionPanelText, {
|
|
15456
|
-
"key": "text"
|
|
15457
|
-
"eager": props.eager
|
|
15534
|
+
"key": "text"
|
|
15458
15535
|
}, {
|
|
15459
15536
|
default: () => [slots.text ? slots.text() : props.text]
|
|
15460
15537
|
}), slots.default?.()]
|
|
@@ -16072,7 +16149,7 @@ const VRow = genericComponent()({
|
|
|
16072
16149
|
});
|
|
16073
16150
|
|
|
16074
16151
|
// Utilities
|
|
16075
|
-
const VSpacer = createSimpleFunctional('
|
|
16152
|
+
const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer');
|
|
16076
16153
|
|
|
16077
16154
|
// Composables
|
|
16078
16155
|
const makeVHoverProps = propsFactory({
|
|
@@ -17796,7 +17873,9 @@ const VRating = genericComponent()({
|
|
|
17796
17873
|
value,
|
|
17797
17874
|
index,
|
|
17798
17875
|
rating: normalizedValue.value
|
|
17799
|
-
}) : createVNode(VBtn,
|
|
17876
|
+
}) : createVNode(VBtn, mergeProps({
|
|
17877
|
+
"aria-label": t(props.itemAriaLabel, value, props.length)
|
|
17878
|
+
}, btnProps), null)]), createVNode("input", {
|
|
17800
17879
|
"class": "v-rating__hidden",
|
|
17801
17880
|
"name": name.value,
|
|
17802
17881
|
"id": id,
|
|
@@ -19863,12 +19942,11 @@ function startOfMonth(date) {
|
|
|
19863
19942
|
function endOfMonth(date) {
|
|
19864
19943
|
return new Date(date.getFullYear(), date.getMonth() + 1, 0);
|
|
19865
19944
|
}
|
|
19866
|
-
function
|
|
19867
|
-
const
|
|
19868
|
-
|
|
19869
|
-
|
|
19870
|
-
|
|
19871
|
-
return `${formattedValue}T00:00:00.000${offsetSign}${offsetValue}:00`;
|
|
19945
|
+
function parseLocalDate(value) {
|
|
19946
|
+
const parts = value.split('-').map(Number);
|
|
19947
|
+
|
|
19948
|
+
// new Date() uses local time zone when passing individual date component values
|
|
19949
|
+
return new Date(parts[0], parts[1] - 1, parts[2]);
|
|
19872
19950
|
}
|
|
19873
19951
|
const _YYYMMDD = /([12]\d{3}-([1-9]|0[1-9]|1[0-2])-([1-9]|0[1-9]|[12]\d|3[01]))/;
|
|
19874
19952
|
function date(value) {
|
|
@@ -19877,7 +19955,7 @@ function date(value) {
|
|
|
19877
19955
|
if (typeof value === 'string') {
|
|
19878
19956
|
let parsed;
|
|
19879
19957
|
if (_YYYMMDD.test(value)) {
|
|
19880
|
-
|
|
19958
|
+
return parseLocalDate(value);
|
|
19881
19959
|
} else {
|
|
19882
19960
|
parsed = Date.parse(value);
|
|
19883
19961
|
}
|
|
@@ -19892,7 +19970,7 @@ function getWeekdays(locale) {
|
|
|
19892
19970
|
const weekday = new Date(sundayJanuarySecond2000);
|
|
19893
19971
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
19894
19972
|
return new Intl.DateTimeFormat(locale, {
|
|
19895
|
-
weekday: '
|
|
19973
|
+
weekday: 'narrow'
|
|
19896
19974
|
}).format(weekday);
|
|
19897
19975
|
});
|
|
19898
19976
|
}
|
|
@@ -20211,7 +20289,7 @@ function createVuetify$1() {
|
|
|
20211
20289
|
date
|
|
20212
20290
|
};
|
|
20213
20291
|
}
|
|
20214
|
-
const version$1 = "3.3.
|
|
20292
|
+
const version$1 = "3.3.12";
|
|
20215
20293
|
createVuetify$1.version = version$1;
|
|
20216
20294
|
|
|
20217
20295
|
// Vue's inject() can only be used in setup
|
|
@@ -20236,7 +20314,7 @@ const createVuetify = function () {
|
|
|
20236
20314
|
...options
|
|
20237
20315
|
});
|
|
20238
20316
|
};
|
|
20239
|
-
const version = "3.3.
|
|
20317
|
+
const version = "3.3.12";
|
|
20240
20318
|
createVuetify.version = version;
|
|
20241
20319
|
|
|
20242
20320
|
export { components, createVuetify, directives, useDefaults, useDisplay, useLayout, useLocale, useRtl, useTheme, version };
|