vuetify 3.7.9 → 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 +1041 -1037
- package/dist/json/importMap-labs.json +14 -14
- package/dist/json/importMap.json +154 -154
- package/dist/json/tags.json +1 -0
- package/dist/json/web-types.json +2437 -2427
- package/dist/vuetify-labs.css +4911 -4911
- package/dist/vuetify-labs.d.ts +41 -118
- package/dist/vuetify-labs.esm.js +72 -9
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +71 -8
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +4741 -4741
- package/dist/vuetify.d.ts +81 -173
- package/dist/vuetify.esm.js +61 -8
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +60 -7
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +462 -459
- 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/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 +55 -55
- 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;
|
|
@@ -12635,6 +12637,34 @@
|
|
|
12635
12637
|
}; // typescript doesn't know about vue's event merging
|
|
12636
12638
|
}
|
|
12637
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
|
+
|
|
12638
12668
|
// Types
|
|
12639
12669
|
|
|
12640
12670
|
const makeSelectProps = propsFactory({
|
|
@@ -12724,6 +12754,9 @@
|
|
|
12724
12754
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12725
12755
|
});
|
|
12726
12756
|
const form = useForm(props);
|
|
12757
|
+
const {
|
|
12758
|
+
isMousedown
|
|
12759
|
+
} = useIsMousedown();
|
|
12727
12760
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
|
|
12728
12761
|
const isFocused = vue.shallowRef(false);
|
|
12729
12762
|
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12821,7 +12854,7 @@
|
|
|
12821
12854
|
}
|
|
12822
12855
|
}
|
|
12823
12856
|
function onBlur(e) {
|
|
12824
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12857
|
+
if (!listRef.value?.$el.contains(e.relatedTarget) && !isMousedown.value) {
|
|
12825
12858
|
menu.value = false;
|
|
12826
12859
|
}
|
|
12827
12860
|
}
|
|
@@ -13233,6 +13266,9 @@
|
|
|
13233
13266
|
textColorClasses,
|
|
13234
13267
|
textColorStyles
|
|
13235
13268
|
} = useTextColor(color);
|
|
13269
|
+
const {
|
|
13270
|
+
isMousedown
|
|
13271
|
+
} = useIsMousedown();
|
|
13236
13272
|
const search = useProxiedModel(props, 'search', '');
|
|
13237
13273
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13238
13274
|
const transformed = transformOut(v);
|
|
@@ -13406,6 +13442,11 @@
|
|
|
13406
13442
|
});
|
|
13407
13443
|
}
|
|
13408
13444
|
}
|
|
13445
|
+
function onBlur(e) {
|
|
13446
|
+
if (!isMousedown.value) {
|
|
13447
|
+
menu.value = false;
|
|
13448
|
+
}
|
|
13449
|
+
}
|
|
13409
13450
|
vue.watch(isFocused, (val, oldVal) => {
|
|
13410
13451
|
if (val === oldVal) return;
|
|
13411
13452
|
if (val) {
|
|
@@ -13415,7 +13456,6 @@
|
|
|
13415
13456
|
vue.nextTick(() => isSelecting.value = false);
|
|
13416
13457
|
} else {
|
|
13417
13458
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13418
|
-
menu.value = false;
|
|
13419
13459
|
if (!model.value.some(_ref3 => {
|
|
13420
13460
|
let {
|
|
13421
13461
|
title
|
|
@@ -13469,6 +13509,7 @@
|
|
|
13469
13509
|
"readonly": form.isReadonly.value,
|
|
13470
13510
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13471
13511
|
"onClick:clear": onClear,
|
|
13512
|
+
"onBlur": onBlur,
|
|
13472
13513
|
"onMousedown:control": onMousedownControl,
|
|
13473
13514
|
"onKeydown": onKeydown
|
|
13474
13515
|
}), {
|
|
@@ -17088,6 +17129,9 @@
|
|
|
17088
17129
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
17089
17130
|
});
|
|
17090
17131
|
const form = useForm(props);
|
|
17132
|
+
const {
|
|
17133
|
+
isMousedown
|
|
17134
|
+
} = useIsMousedown();
|
|
17091
17135
|
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
17092
17136
|
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
17093
17137
|
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17251,6 +17295,12 @@
|
|
|
17251
17295
|
vTextFieldRef.value?.focus();
|
|
17252
17296
|
}
|
|
17253
17297
|
}
|
|
17298
|
+
function onBlur(e) {
|
|
17299
|
+
if (!isMousedown.value) {
|
|
17300
|
+
menu.value = false;
|
|
17301
|
+
}
|
|
17302
|
+
}
|
|
17303
|
+
|
|
17254
17304
|
/** @param set - null means toggle */
|
|
17255
17305
|
function select(item) {
|
|
17256
17306
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
@@ -17295,7 +17345,6 @@
|
|
|
17295
17345
|
vue.watch(isFocused, (val, oldVal) => {
|
|
17296
17346
|
if (val || val === oldVal) return;
|
|
17297
17347
|
selectionIndex.value = -1;
|
|
17298
|
-
menu.value = false;
|
|
17299
17348
|
if (search.value) {
|
|
17300
17349
|
if (props.multiple) {
|
|
17301
17350
|
select(transformItem$3(props, search.value));
|
|
@@ -17353,6 +17402,7 @@
|
|
|
17353
17402
|
"readonly": form.isReadonly.value,
|
|
17354
17403
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17355
17404
|
"onClick:clear": onClear,
|
|
17405
|
+
"onBlur": onBlur,
|
|
17356
17406
|
"onMousedown:control": onMousedownControl,
|
|
17357
17407
|
"onKeydown": onKeydown
|
|
17358
17408
|
}), {
|
|
@@ -22439,8 +22489,9 @@
|
|
|
22439
22489
|
targets.push(...['prev', 'next']);
|
|
22440
22490
|
} else {
|
|
22441
22491
|
let _date = adapter.date();
|
|
22442
|
-
_date = adapter.
|
|
22492
|
+
_date = adapter.startOfMonth(_date);
|
|
22443
22493
|
_date = adapter.setMonth(_date, month.value);
|
|
22494
|
+
_date = adapter.setYear(_date, year.value);
|
|
22444
22495
|
if (minDate.value) {
|
|
22445
22496
|
const date = adapter.addDays(adapter.startOfMonth(_date), -1);
|
|
22446
22497
|
adapter.isAfter(minDate.value, date) && targets.push('prev');
|
|
@@ -27090,6 +27141,8 @@
|
|
|
27090
27141
|
}
|
|
27091
27142
|
});
|
|
27092
27143
|
|
|
27144
|
+
// Types
|
|
27145
|
+
|
|
27093
27146
|
function parseItems(items) {
|
|
27094
27147
|
if (!items) return [];
|
|
27095
27148
|
return items.map(item => {
|
|
@@ -28328,7 +28381,7 @@
|
|
|
28328
28381
|
goTo
|
|
28329
28382
|
};
|
|
28330
28383
|
}
|
|
28331
|
-
const version$1 = "3.7.
|
|
28384
|
+
const version$1 = "3.7.10";
|
|
28332
28385
|
createVuetify$1.version = version$1;
|
|
28333
28386
|
|
|
28334
28387
|
// Vue's inject() can only be used in setup
|
|
@@ -28353,7 +28406,7 @@
|
|
|
28353
28406
|
...options
|
|
28354
28407
|
});
|
|
28355
28408
|
};
|
|
28356
|
-
const version = "3.7.
|
|
28409
|
+
const version = "3.7.10";
|
|
28357
28410
|
createVuetify.version = version;
|
|
28358
28411
|
|
|
28359
28412
|
exports.blueprints = index;
|