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.esm.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
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
|
*/
|
|
6
6
|
|
|
7
|
-
import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode,
|
|
7
|
+
import { shallowRef, Fragment, reactive, computed, watchEffect, toRefs, capitalize, isVNode, Comment, unref, warn, getCurrentInstance as getCurrentInstance$1, ref, provide, inject as inject$1, defineComponent as defineComponent$1, camelize, h, createVNode, mergeProps, onBeforeUnmount, watch, readonly, onDeactivated, onActivated, onMounted, onScopeDispose, effectScope, toRaw, TransitionGroup, Transition, isRef, toRef, onBeforeMount, nextTick, withDirectives, resolveDirective, vShow, onUpdated, Text, resolveDynamicComponent, markRaw, Teleport, cloneVNode, onUnmounted, createTextVNode, onBeforeUpdate, withModifiers, toDisplayString, vModelText, resolveComponent, render } from 'vue';
|
|
8
8
|
|
|
9
9
|
const IN_BROWSER = typeof window !== 'undefined';
|
|
10
10
|
const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window;
|
|
@@ -3208,6 +3208,7 @@ function ExpandTransitionGenerator () {
|
|
|
3208
3208
|
},
|
|
3209
3209
|
onEnter(el) {
|
|
3210
3210
|
const initialStyle = el._initialStyle;
|
|
3211
|
+
if (!initialStyle) return;
|
|
3211
3212
|
el.style.setProperty('transition', 'none', 'important');
|
|
3212
3213
|
// Hide overflow to account for collapsed margins in the calculated height
|
|
3213
3214
|
el.style.overflow = 'hidden';
|
|
@@ -3247,6 +3248,7 @@ function ExpandTransitionGenerator () {
|
|
|
3247
3248
|
resetStyles(el);
|
|
3248
3249
|
}
|
|
3249
3250
|
function resetStyles(el) {
|
|
3251
|
+
if (!el._initialStyle) return;
|
|
3250
3252
|
const size = el._initialStyle[sizeProperty];
|
|
3251
3253
|
el.style.overflow = el._initialStyle.overflow;
|
|
3252
3254
|
if (size != null) el.style[sizeProperty] = size;
|
|
@@ -7434,7 +7436,9 @@ const makeDisplayProps = propsFactory({
|
|
|
7434
7436
|
mobileBreakpoint: [Number, String]
|
|
7435
7437
|
}, 'display');
|
|
7436
7438
|
function useDisplay() {
|
|
7437
|
-
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
7439
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {
|
|
7440
|
+
mobile: null
|
|
7441
|
+
};
|
|
7438
7442
|
let name = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : getCurrentInstanceName();
|
|
7439
7443
|
const display = inject$1(DisplaySymbol);
|
|
7440
7444
|
if (!display) throw new Error('Could not find Vuetify display injection');
|
|
@@ -12629,6 +12633,34 @@ function useScrolling(listRef, textFieldRef) {
|
|
|
12629
12633
|
}; // typescript doesn't know about vue's event merging
|
|
12630
12634
|
}
|
|
12631
12635
|
|
|
12636
|
+
// https://github.com/vuetifyjs/vuetify/issues/20003
|
|
12637
|
+
/**
|
|
12638
|
+
* This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
|
|
12639
|
+
* it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
|
|
12640
|
+
* This composable allows for conditional logic when a blur is triggered by mousedown.
|
|
12641
|
+
*/
|
|
12642
|
+
|
|
12643
|
+
function useIsMousedown() {
|
|
12644
|
+
const isMousedown = shallowRef(false);
|
|
12645
|
+
function mousedown() {
|
|
12646
|
+
isMousedown.value = true;
|
|
12647
|
+
}
|
|
12648
|
+
function mouseup() {
|
|
12649
|
+
isMousedown.value = false;
|
|
12650
|
+
}
|
|
12651
|
+
onMounted(() => {
|
|
12652
|
+
document.body.addEventListener('mousedown', mousedown);
|
|
12653
|
+
document.body.addEventListener('mouseup', mouseup);
|
|
12654
|
+
});
|
|
12655
|
+
onUnmounted(() => {
|
|
12656
|
+
document.body.removeEventListener('mousedown', mousedown);
|
|
12657
|
+
document.body.removeEventListener('mouseup', mouseup);
|
|
12658
|
+
});
|
|
12659
|
+
return {
|
|
12660
|
+
isMousedown
|
|
12661
|
+
};
|
|
12662
|
+
}
|
|
12663
|
+
|
|
12632
12664
|
// Types
|
|
12633
12665
|
|
|
12634
12666
|
const makeSelectProps = propsFactory({
|
|
@@ -12718,6 +12750,9 @@ const VSelect = genericComponent()({
|
|
|
12718
12750
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12719
12751
|
});
|
|
12720
12752
|
const form = useForm(props);
|
|
12753
|
+
const {
|
|
12754
|
+
isMousedown
|
|
12755
|
+
} = useIsMousedown();
|
|
12721
12756
|
const selectedValues = computed(() => model.value.map(selection => selection.value));
|
|
12722
12757
|
const isFocused = shallowRef(false);
|
|
12723
12758
|
const label = computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12815,7 +12850,7 @@ const VSelect = genericComponent()({
|
|
|
12815
12850
|
}
|
|
12816
12851
|
}
|
|
12817
12852
|
function onBlur(e) {
|
|
12818
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12853
|
+
if (!listRef.value?.$el.contains(e.relatedTarget) && !isMousedown.value) {
|
|
12819
12854
|
menu.value = false;
|
|
12820
12855
|
}
|
|
12821
12856
|
}
|
|
@@ -13227,6 +13262,9 @@ const VAutocomplete = genericComponent()({
|
|
|
13227
13262
|
textColorClasses,
|
|
13228
13263
|
textColorStyles
|
|
13229
13264
|
} = useTextColor(color);
|
|
13265
|
+
const {
|
|
13266
|
+
isMousedown
|
|
13267
|
+
} = useIsMousedown();
|
|
13230
13268
|
const search = useProxiedModel(props, 'search', '');
|
|
13231
13269
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13232
13270
|
const transformed = transformOut(v);
|
|
@@ -13400,6 +13438,11 @@ const VAutocomplete = genericComponent()({
|
|
|
13400
13438
|
});
|
|
13401
13439
|
}
|
|
13402
13440
|
}
|
|
13441
|
+
function onBlur(e) {
|
|
13442
|
+
if (!isMousedown.value) {
|
|
13443
|
+
menu.value = false;
|
|
13444
|
+
}
|
|
13445
|
+
}
|
|
13403
13446
|
watch(isFocused, (val, oldVal) => {
|
|
13404
13447
|
if (val === oldVal) return;
|
|
13405
13448
|
if (val) {
|
|
@@ -13409,7 +13452,6 @@ const VAutocomplete = genericComponent()({
|
|
|
13409
13452
|
nextTick(() => isSelecting.value = false);
|
|
13410
13453
|
} else {
|
|
13411
13454
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13412
|
-
menu.value = false;
|
|
13413
13455
|
if (!model.value.some(_ref3 => {
|
|
13414
13456
|
let {
|
|
13415
13457
|
title
|
|
@@ -13463,6 +13505,7 @@ const VAutocomplete = genericComponent()({
|
|
|
13463
13505
|
"readonly": form.isReadonly.value,
|
|
13464
13506
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13465
13507
|
"onClick:clear": onClear,
|
|
13508
|
+
"onBlur": onBlur,
|
|
13466
13509
|
"onMousedown:control": onMousedownControl,
|
|
13467
13510
|
"onKeydown": onKeydown
|
|
13468
13511
|
}), {
|
|
@@ -17082,6 +17125,9 @@ const VCombobox = genericComponent()({
|
|
|
17082
17125
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
17083
17126
|
});
|
|
17084
17127
|
const form = useForm(props);
|
|
17128
|
+
const {
|
|
17129
|
+
isMousedown
|
|
17130
|
+
} = useIsMousedown();
|
|
17085
17131
|
const hasChips = computed(() => !!(props.chips || slots.chip));
|
|
17086
17132
|
const hasSelectionSlot = computed(() => hasChips.value || !!slots.selection);
|
|
17087
17133
|
const _search = shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17245,6 +17291,12 @@ const VCombobox = genericComponent()({
|
|
|
17245
17291
|
vTextFieldRef.value?.focus();
|
|
17246
17292
|
}
|
|
17247
17293
|
}
|
|
17294
|
+
function onBlur(e) {
|
|
17295
|
+
if (!isMousedown.value) {
|
|
17296
|
+
menu.value = false;
|
|
17297
|
+
}
|
|
17298
|
+
}
|
|
17299
|
+
|
|
17248
17300
|
/** @param set - null means toggle */
|
|
17249
17301
|
function select(item) {
|
|
17250
17302
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
@@ -17289,7 +17341,6 @@ const VCombobox = genericComponent()({
|
|
|
17289
17341
|
watch(isFocused, (val, oldVal) => {
|
|
17290
17342
|
if (val || val === oldVal) return;
|
|
17291
17343
|
selectionIndex.value = -1;
|
|
17292
|
-
menu.value = false;
|
|
17293
17344
|
if (search.value) {
|
|
17294
17345
|
if (props.multiple) {
|
|
17295
17346
|
select(transformItem$3(props, search.value));
|
|
@@ -17347,6 +17398,7 @@ const VCombobox = genericComponent()({
|
|
|
17347
17398
|
"readonly": form.isReadonly.value,
|
|
17348
17399
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17349
17400
|
"onClick:clear": onClear,
|
|
17401
|
+
"onBlur": onBlur,
|
|
17350
17402
|
"onMousedown:control": onMousedownControl,
|
|
17351
17403
|
"onKeydown": onKeydown
|
|
17352
17404
|
}), {
|
|
@@ -22433,8 +22485,9 @@ const VDatePicker = genericComponent()({
|
|
|
22433
22485
|
targets.push(...['prev', 'next']);
|
|
22434
22486
|
} else {
|
|
22435
22487
|
let _date = adapter.date();
|
|
22436
|
-
_date = adapter.
|
|
22488
|
+
_date = adapter.startOfMonth(_date);
|
|
22437
22489
|
_date = adapter.setMonth(_date, month.value);
|
|
22490
|
+
_date = adapter.setYear(_date, year.value);
|
|
22438
22491
|
if (minDate.value) {
|
|
22439
22492
|
const date = adapter.addDays(adapter.startOfMonth(_date), -1);
|
|
22440
22493
|
adapter.isAfter(minDate.value, date) && targets.push('prev');
|
|
@@ -27084,6 +27137,8 @@ const VTabsWindowItem = genericComponent()({
|
|
|
27084
27137
|
}
|
|
27085
27138
|
});
|
|
27086
27139
|
|
|
27140
|
+
// Types
|
|
27141
|
+
|
|
27087
27142
|
function parseItems(items) {
|
|
27088
27143
|
if (!items) return [];
|
|
27089
27144
|
return items.map(item => {
|
|
@@ -28322,7 +28377,7 @@ function createVuetify$1() {
|
|
|
28322
28377
|
goTo
|
|
28323
28378
|
};
|
|
28324
28379
|
}
|
|
28325
|
-
const version$1 = "3.7.
|
|
28380
|
+
const version$1 = "3.7.10";
|
|
28326
28381
|
createVuetify$1.version = version$1;
|
|
28327
28382
|
|
|
28328
28383
|
// Vue's inject() can only be used in setup
|
|
@@ -28347,7 +28402,7 @@ const createVuetify = function () {
|
|
|
28347
28402
|
...options
|
|
28348
28403
|
});
|
|
28349
28404
|
};
|
|
28350
|
-
const version = "3.7.
|
|
28405
|
+
const version = "3.7.10";
|
|
28351
28406
|
createVuetify.version = version;
|
|
28352
28407
|
|
|
28353
28408
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useLayout, useLocale, useRtl, useTheme, version };
|