vuetify 3.7.8 → 3.7.10
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/json/attributes.json +855 -851
- package/dist/json/importMap-labs.json +28 -28
- package/dist/json/importMap.json +182 -182
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +1675 -1665
- package/dist/vuetify-labs.css +4564 -4564
- package/dist/vuetify-labs.d.ts +41 -118
- package/dist/vuetify-labs.esm.js +75 -10
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +74 -9
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +5268 -5268
- package/dist/vuetify.d.ts +90 -182
- package/dist/vuetify.esm.js +64 -9
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +63 -8
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +463 -460
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +10 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +11 -1
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +2 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +5 -1
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +1 -1
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.mts +52 -119
- package/lib/components/index.d.mts +26 -118
- package/lib/components/transitions/expand-transition.mjs +2 -0
- package/lib/components/transitions/expand-transition.mjs.map +1 -1
- package/lib/composables/display.mjs +3 -1
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/mousedown.mjs +30 -0
- package/lib/composables/mousedown.mjs.map +1 -0
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.mts +64 -64
- package/lib/labs/VTreeview/VTreeview.mjs +1 -1
- package/lib/labs/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/labs/VTreeview/VTreeviewChildren.mjs +13 -2
- package/lib/labs/VTreeview/VTreeviewChildren.mjs.map +1 -1
- package/lib/labs/VTreeview/index.d.mts +15 -0
- package/lib/labs/components.d.mts +15 -0
- package/lib/locale/da.mjs +5 -5
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +3 -3
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -5
- package/lib/locale/fi.mjs.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.7.
|
|
2
|
+
* Vuetify v3.7.10
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -3212,6 +3212,7 @@
|
|
|
3212
3212
|
},
|
|
3213
3213
|
onEnter(el) {
|
|
3214
3214
|
const initialStyle = el._initialStyle;
|
|
3215
|
+
if (!initialStyle) return;
|
|
3215
3216
|
el.style.setProperty('transition', 'none', 'important');
|
|
3216
3217
|
// Hide overflow to account for collapsed margins in the calculated height
|
|
3217
3218
|
el.style.overflow = 'hidden';
|
|
@@ -3251,6 +3252,7 @@
|
|
|
3251
3252
|
resetStyles(el);
|
|
3252
3253
|
}
|
|
3253
3254
|
function resetStyles(el) {
|
|
3255
|
+
if (!el._initialStyle) return;
|
|
3254
3256
|
const size = el._initialStyle[sizeProperty];
|
|
3255
3257
|
el.style.overflow = el._initialStyle.overflow;
|
|
3256
3258
|
if (size != null) el.style[sizeProperty] = size;
|
|
@@ -7438,7 +7440,9 @@
|
|
|
7438
7440
|
mobileBreakpoint: [Number, String]
|
|
7439
7441
|
}, 'display');
|
|
7440
7442
|
function useDisplay() {
|
|
7441
|
-
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
7443
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
7444
|
+
mobile: null
|
|
7445
|
+
};
|
|
7442
7446
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
7443
7447
|
const display = vue.inject(DisplaySymbol);
|
|
7444
7448
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
@@ -12633,6 +12637,34 @@
|
|
|
12633
12637
|
}; // typescript doesn't know about vue's event merging
|
|
12634
12638
|
}
|
|
12635
12639
|
|
|
12640
|
+
// https://github.com/vuetifyjs/vuetify/issues/20003
|
|
12641
|
+
/**
|
|
12642
|
+
* This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
|
|
12643
|
+
* it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
|
|
12644
|
+
* This composable allows for conditional logic when a blur is triggered by mousedown.
|
|
12645
|
+
*/
|
|
12646
|
+
|
|
12647
|
+
function useIsMousedown() {
|
|
12648
|
+
const isMousedown = vue.shallowRef(false);
|
|
12649
|
+
function mousedown() {
|
|
12650
|
+
isMousedown.value = true;
|
|
12651
|
+
}
|
|
12652
|
+
function mouseup() {
|
|
12653
|
+
isMousedown.value = false;
|
|
12654
|
+
}
|
|
12655
|
+
vue.onMounted(() => {
|
|
12656
|
+
document.body.addEventListener('mousedown', mousedown);
|
|
12657
|
+
document.body.addEventListener('mouseup', mouseup);
|
|
12658
|
+
});
|
|
12659
|
+
vue.onUnmounted(() => {
|
|
12660
|
+
document.body.removeEventListener('mousedown', mousedown);
|
|
12661
|
+
document.body.removeEventListener('mouseup', mouseup);
|
|
12662
|
+
});
|
|
12663
|
+
return {
|
|
12664
|
+
isMousedown
|
|
12665
|
+
};
|
|
12666
|
+
}
|
|
12667
|
+
|
|
12636
12668
|
// Types
|
|
12637
12669
|
|
|
12638
12670
|
const makeSelectProps = propsFactory({
|
|
@@ -12722,6 +12754,9 @@
|
|
|
12722
12754
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12723
12755
|
});
|
|
12724
12756
|
const form = useForm(props);
|
|
12757
|
+
const {
|
|
12758
|
+
isMousedown
|
|
12759
|
+
} = useIsMousedown();
|
|
12725
12760
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
|
|
12726
12761
|
const isFocused = vue.shallowRef(false);
|
|
12727
12762
|
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12819,7 +12854,7 @@
|
|
|
12819
12854
|
}
|
|
12820
12855
|
}
|
|
12821
12856
|
function onBlur(e) {
|
|
12822
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12857
|
+
if (!listRef.value?.$el.contains(e.relatedTarget) && !isMousedown.value) {
|
|
12823
12858
|
menu.value = false;
|
|
12824
12859
|
}
|
|
12825
12860
|
}
|
|
@@ -13231,6 +13266,9 @@
|
|
|
13231
13266
|
textColorClasses,
|
|
13232
13267
|
textColorStyles
|
|
13233
13268
|
} = useTextColor(color);
|
|
13269
|
+
const {
|
|
13270
|
+
isMousedown
|
|
13271
|
+
} = useIsMousedown();
|
|
13234
13272
|
const search = useProxiedModel(props, 'search', '');
|
|
13235
13273
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13236
13274
|
const transformed = transformOut(v);
|
|
@@ -13404,6 +13442,11 @@
|
|
|
13404
13442
|
});
|
|
13405
13443
|
}
|
|
13406
13444
|
}
|
|
13445
|
+
function onBlur(e) {
|
|
13446
|
+
if (!isMousedown.value) {
|
|
13447
|
+
menu.value = false;
|
|
13448
|
+
}
|
|
13449
|
+
}
|
|
13407
13450
|
vue.watch(isFocused, (val, oldVal) => {
|
|
13408
13451
|
if (val === oldVal) return;
|
|
13409
13452
|
if (val) {
|
|
@@ -13413,7 +13456,6 @@
|
|
|
13413
13456
|
vue.nextTick(() => isSelecting.value = false);
|
|
13414
13457
|
} else {
|
|
13415
13458
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13416
|
-
menu.value = false;
|
|
13417
13459
|
if (!model.value.some(_ref3 => {
|
|
13418
13460
|
let {
|
|
13419
13461
|
title
|
|
@@ -13467,6 +13509,7 @@
|
|
|
13467
13509
|
"readonly": form.isReadonly.value,
|
|
13468
13510
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13469
13511
|
"onClick:clear": onClear,
|
|
13512
|
+
"onBlur": onBlur,
|
|
13470
13513
|
"onMousedown:control": onMousedownControl,
|
|
13471
13514
|
"onKeydown": onKeydown
|
|
13472
13515
|
}), {
|
|
@@ -17086,6 +17129,9 @@
|
|
|
17086
17129
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
17087
17130
|
});
|
|
17088
17131
|
const form = useForm(props);
|
|
17132
|
+
const {
|
|
17133
|
+
isMousedown
|
|
17134
|
+
} = useIsMousedown();
|
|
17089
17135
|
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
17090
17136
|
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
17091
17137
|
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17249,6 +17295,12 @@
|
|
|
17249
17295
|
vTextFieldRef.value?.focus();
|
|
17250
17296
|
}
|
|
17251
17297
|
}
|
|
17298
|
+
function onBlur(e) {
|
|
17299
|
+
if (!isMousedown.value) {
|
|
17300
|
+
menu.value = false;
|
|
17301
|
+
}
|
|
17302
|
+
}
|
|
17303
|
+
|
|
17252
17304
|
/** @param set - null means toggle */
|
|
17253
17305
|
function select(item) {
|
|
17254
17306
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
@@ -17293,7 +17345,6 @@
|
|
|
17293
17345
|
vue.watch(isFocused, (val, oldVal) => {
|
|
17294
17346
|
if (val || val === oldVal) return;
|
|
17295
17347
|
selectionIndex.value = -1;
|
|
17296
|
-
menu.value = false;
|
|
17297
17348
|
if (search.value) {
|
|
17298
17349
|
if (props.multiple) {
|
|
17299
17350
|
select(transformItem$3(props, search.value));
|
|
@@ -17351,6 +17402,7 @@
|
|
|
17351
17402
|
"readonly": form.isReadonly.value,
|
|
17352
17403
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17353
17404
|
"onClick:clear": onClear,
|
|
17405
|
+
"onBlur": onBlur,
|
|
17354
17406
|
"onMousedown:control": onMousedownControl,
|
|
17355
17407
|
"onKeydown": onKeydown
|
|
17356
17408
|
}), {
|
|
@@ -22437,8 +22489,9 @@
|
|
|
22437
22489
|
targets.push(...['prev', 'next']);
|
|
22438
22490
|
} else {
|
|
22439
22491
|
let _date = adapter.date();
|
|
22440
|
-
_date = adapter.
|
|
22492
|
+
_date = adapter.startOfMonth(_date);
|
|
22441
22493
|
_date = adapter.setMonth(_date, month.value);
|
|
22494
|
+
_date = adapter.setYear(_date, year.value);
|
|
22442
22495
|
if (minDate.value) {
|
|
22443
22496
|
const date = adapter.addDays(adapter.startOfMonth(_date), -1);
|
|
22444
22497
|
adapter.isAfter(minDate.value, date) && targets.push('prev');
|
|
@@ -27088,6 +27141,8 @@
|
|
|
27088
27141
|
}
|
|
27089
27142
|
});
|
|
27090
27143
|
|
|
27144
|
+
// Types
|
|
27145
|
+
|
|
27091
27146
|
function parseItems(items) {
|
|
27092
27147
|
if (!items) return [];
|
|
27093
27148
|
return items.map(item => {
|
|
@@ -28326,7 +28381,7 @@
|
|
|
28326
28381
|
goTo
|
|
28327
28382
|
};
|
|
28328
28383
|
}
|
|
28329
|
-
const version$1 = "3.7.
|
|
28384
|
+
const version$1 = "3.7.10";
|
|
28330
28385
|
createVuetify$1.version = version$1;
|
|
28331
28386
|
|
|
28332
28387
|
// Vue's inject() can only be used in setup
|
|
@@ -28351,7 +28406,7 @@
|
|
|
28351
28406
|
...options
|
|
28352
28407
|
});
|
|
28353
28408
|
};
|
|
28354
|
-
const version = "3.7.
|
|
28409
|
+
const version = "3.7.10";
|
|
28355
28410
|
createVuetify.version = version;
|
|
28356
28411
|
|
|
28357
28412
|
exports.blueprints = index;
|