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-labs.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
|
*/
|
|
@@ -2771,6 +2771,7 @@
|
|
|
2771
2771
|
},
|
|
2772
2772
|
onEnter(el) {
|
|
2773
2773
|
const initialStyle = el._initialStyle;
|
|
2774
|
+
if (!initialStyle) return;
|
|
2774
2775
|
el.style.setProperty('transition', 'none', 'important');
|
|
2775
2776
|
// Hide overflow to account for collapsed margins in the calculated height
|
|
2776
2777
|
el.style.overflow = 'hidden';
|
|
@@ -2810,6 +2811,7 @@
|
|
|
2810
2811
|
resetStyles(el);
|
|
2811
2812
|
}
|
|
2812
2813
|
function resetStyles(el) {
|
|
2814
|
+
if (!el._initialStyle) return;
|
|
2813
2815
|
const size = el._initialStyle[sizeProperty];
|
|
2814
2816
|
el.style.overflow = el._initialStyle.overflow;
|
|
2815
2817
|
if (size != null) el.style[sizeProperty] = size;
|
|
@@ -12402,6 +12404,34 @@
|
|
|
12402
12404
|
}; // typescript doesn't know about vue's event merging
|
|
12403
12405
|
}
|
|
12404
12406
|
|
|
12407
|
+
// https://github.com/vuetifyjs/vuetify/issues/20003
|
|
12408
|
+
/**
|
|
12409
|
+
* This composable is designed to track whether the mouse is in a mousedown state at any given time. The original motivation is that
|
|
12410
|
+
* it is impossible to distinguish whether a blur event is triggered by mousedown, keydown, or via JavaScript.
|
|
12411
|
+
* This composable allows for conditional logic when a blur is triggered by mousedown.
|
|
12412
|
+
*/
|
|
12413
|
+
|
|
12414
|
+
function useIsMousedown() {
|
|
12415
|
+
const isMousedown = vue.shallowRef(false);
|
|
12416
|
+
function mousedown() {
|
|
12417
|
+
isMousedown.value = true;
|
|
12418
|
+
}
|
|
12419
|
+
function mouseup() {
|
|
12420
|
+
isMousedown.value = false;
|
|
12421
|
+
}
|
|
12422
|
+
vue.onMounted(() => {
|
|
12423
|
+
document.body.addEventListener('mousedown', mousedown);
|
|
12424
|
+
document.body.addEventListener('mouseup', mouseup);
|
|
12425
|
+
});
|
|
12426
|
+
vue.onUnmounted(() => {
|
|
12427
|
+
document.body.removeEventListener('mousedown', mousedown);
|
|
12428
|
+
document.body.removeEventListener('mouseup', mouseup);
|
|
12429
|
+
});
|
|
12430
|
+
return {
|
|
12431
|
+
isMousedown
|
|
12432
|
+
};
|
|
12433
|
+
}
|
|
12434
|
+
|
|
12405
12435
|
// Types
|
|
12406
12436
|
|
|
12407
12437
|
const makeSelectProps = propsFactory({
|
|
@@ -12491,6 +12521,9 @@
|
|
|
12491
12521
|
return typeof props.counterValue === 'function' ? props.counterValue(model.value) : typeof props.counterValue === 'number' ? props.counterValue : model.value.length;
|
|
12492
12522
|
});
|
|
12493
12523
|
const form = useForm(props);
|
|
12524
|
+
const {
|
|
12525
|
+
isMousedown
|
|
12526
|
+
} = useIsMousedown();
|
|
12494
12527
|
const selectedValues = vue.computed(() => model.value.map(selection => selection.value));
|
|
12495
12528
|
const isFocused = vue.shallowRef(false);
|
|
12496
12529
|
const label = vue.computed(() => menu.value ? props.closeText : props.openText);
|
|
@@ -12588,7 +12621,7 @@
|
|
|
12588
12621
|
}
|
|
12589
12622
|
}
|
|
12590
12623
|
function onBlur(e) {
|
|
12591
|
-
if (!listRef.value?.$el.contains(e.relatedTarget)) {
|
|
12624
|
+
if (!listRef.value?.$el.contains(e.relatedTarget) && !isMousedown.value) {
|
|
12592
12625
|
menu.value = false;
|
|
12593
12626
|
}
|
|
12594
12627
|
}
|
|
@@ -13000,6 +13033,9 @@
|
|
|
13000
13033
|
textColorClasses,
|
|
13001
13034
|
textColorStyles
|
|
13002
13035
|
} = useTextColor(color);
|
|
13036
|
+
const {
|
|
13037
|
+
isMousedown
|
|
13038
|
+
} = useIsMousedown();
|
|
13003
13039
|
const search = useProxiedModel(props, 'search', '');
|
|
13004
13040
|
const model = useProxiedModel(props, 'modelValue', [], v => transformIn(v === null ? [null] : wrapInArray(v)), v => {
|
|
13005
13041
|
const transformed = transformOut(v);
|
|
@@ -13173,6 +13209,11 @@
|
|
|
13173
13209
|
});
|
|
13174
13210
|
}
|
|
13175
13211
|
}
|
|
13212
|
+
function onBlur(e) {
|
|
13213
|
+
if (!isMousedown.value) {
|
|
13214
|
+
menu.value = false;
|
|
13215
|
+
}
|
|
13216
|
+
}
|
|
13176
13217
|
vue.watch(isFocused, (val, oldVal) => {
|
|
13177
13218
|
if (val === oldVal) return;
|
|
13178
13219
|
if (val) {
|
|
@@ -13182,7 +13223,6 @@
|
|
|
13182
13223
|
vue.nextTick(() => isSelecting.value = false);
|
|
13183
13224
|
} else {
|
|
13184
13225
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13185
|
-
menu.value = false;
|
|
13186
13226
|
if (!model.value.some(_ref3 => {
|
|
13187
13227
|
let {
|
|
13188
13228
|
title
|
|
@@ -13236,6 +13276,7 @@
|
|
|
13236
13276
|
"readonly": form.isReadonly.value,
|
|
13237
13277
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
13238
13278
|
"onClick:clear": onClear,
|
|
13279
|
+
"onBlur": onBlur,
|
|
13239
13280
|
"onMousedown:control": onMousedownControl,
|
|
13240
13281
|
"onKeydown": onKeydown
|
|
13241
13282
|
}), {
|
|
@@ -16855,6 +16896,9 @@
|
|
|
16855
16896
|
return props.multiple ? transformed : transformed[0] ?? null;
|
|
16856
16897
|
});
|
|
16857
16898
|
const form = useForm(props);
|
|
16899
|
+
const {
|
|
16900
|
+
isMousedown
|
|
16901
|
+
} = useIsMousedown();
|
|
16858
16902
|
const hasChips = vue.computed(() => !!(props.chips || slots.chip));
|
|
16859
16903
|
const hasSelectionSlot = vue.computed(() => hasChips.value || !!slots.selection);
|
|
16860
16904
|
const _search = vue.shallowRef(!props.multiple && !hasSelectionSlot.value ? model.value[0]?.title ?? '' : '');
|
|
@@ -17018,6 +17062,12 @@
|
|
|
17018
17062
|
vTextFieldRef.value?.focus();
|
|
17019
17063
|
}
|
|
17020
17064
|
}
|
|
17065
|
+
function onBlur(e) {
|
|
17066
|
+
if (!isMousedown.value) {
|
|
17067
|
+
menu.value = false;
|
|
17068
|
+
}
|
|
17069
|
+
}
|
|
17070
|
+
|
|
17021
17071
|
/** @param set - null means toggle */
|
|
17022
17072
|
function select(item) {
|
|
17023
17073
|
let set = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
@@ -17062,7 +17112,6 @@
|
|
|
17062
17112
|
vue.watch(isFocused, (val, oldVal) => {
|
|
17063
17113
|
if (val || val === oldVal) return;
|
|
17064
17114
|
selectionIndex.value = -1;
|
|
17065
|
-
menu.value = false;
|
|
17066
17115
|
if (search.value) {
|
|
17067
17116
|
if (props.multiple) {
|
|
17068
17117
|
select(transformItem$3(props, search.value));
|
|
@@ -17120,6 +17169,7 @@
|
|
|
17120
17169
|
"readonly": form.isReadonly.value,
|
|
17121
17170
|
"placeholder": isDirty ? undefined : props.placeholder,
|
|
17122
17171
|
"onClick:clear": onClear,
|
|
17172
|
+
"onBlur": onBlur,
|
|
17123
17173
|
"onMousedown:control": onMousedownControl,
|
|
17124
17174
|
"onKeydown": onKeydown
|
|
17125
17175
|
}), {
|
|
@@ -22206,8 +22256,9 @@
|
|
|
22206
22256
|
targets.push(...['prev', 'next']);
|
|
22207
22257
|
} else {
|
|
22208
22258
|
let _date = adapter.date();
|
|
22209
|
-
_date = adapter.
|
|
22259
|
+
_date = adapter.startOfMonth(_date);
|
|
22210
22260
|
_date = adapter.setMonth(_date, month.value);
|
|
22261
|
+
_date = adapter.setYear(_date, year.value);
|
|
22211
22262
|
if (minDate.value) {
|
|
22212
22263
|
const date = adapter.addDays(adapter.startOfMonth(_date), -1);
|
|
22213
22264
|
adapter.isAfter(minDate.value, date) && targets.push('prev');
|
|
@@ -26857,6 +26908,8 @@
|
|
|
26857
26908
|
}
|
|
26858
26909
|
});
|
|
26859
26910
|
|
|
26911
|
+
// Types
|
|
26912
|
+
|
|
26860
26913
|
function parseItems(items) {
|
|
26861
26914
|
if (!items) return [];
|
|
26862
26915
|
return items.map(item => {
|
|
@@ -30093,6 +30146,11 @@
|
|
|
30093
30146
|
}
|
|
30094
30147
|
}
|
|
30095
30148
|
return () => slots.default?.() ?? props.items?.map(item => {
|
|
30149
|
+
if (item.type === 'divider') {
|
|
30150
|
+
return slots.divider?.({
|
|
30151
|
+
props: item.props
|
|
30152
|
+
}) ?? vue.createVNode(VDivider, item.props, null);
|
|
30153
|
+
}
|
|
30096
30154
|
const {
|
|
30097
30155
|
children,
|
|
30098
30156
|
props: itemProps
|
|
@@ -30129,6 +30187,11 @@
|
|
|
30129
30187
|
...slotProps,
|
|
30130
30188
|
item: item.raw,
|
|
30131
30189
|
internalItem: item
|
|
30190
|
+
}) : undefined,
|
|
30191
|
+
subtitle: slots.subtitle ? slotProps => slots.subtitle?.({
|
|
30192
|
+
...slotProps,
|
|
30193
|
+
item: item.raw,
|
|
30194
|
+
internalItem: item
|
|
30132
30195
|
}) : undefined
|
|
30133
30196
|
};
|
|
30134
30197
|
const treeviewGroupProps = VTreeviewGroup.filterProps(itemProps);
|
|
@@ -30186,7 +30249,7 @@
|
|
|
30186
30249
|
collapseIcon: '$treeviewCollapse',
|
|
30187
30250
|
expandIcon: '$treeviewExpand',
|
|
30188
30251
|
slim: true
|
|
30189
|
-
}), ['
|
|
30252
|
+
}), ['nav', 'openStrategy']),
|
|
30190
30253
|
modelValue: {
|
|
30191
30254
|
type: Array,
|
|
30192
30255
|
default: () => []
|
|
@@ -30806,7 +30869,7 @@
|
|
|
30806
30869
|
goTo
|
|
30807
30870
|
};
|
|
30808
30871
|
}
|
|
30809
|
-
const version$1 = "3.7.
|
|
30872
|
+
const version$1 = "3.7.10";
|
|
30810
30873
|
createVuetify$1.version = version$1;
|
|
30811
30874
|
|
|
30812
30875
|
// Vue's inject() can only be used in setup
|
|
@@ -31059,7 +31122,7 @@
|
|
|
31059
31122
|
|
|
31060
31123
|
/* eslint-disable local-rules/sort-imports */
|
|
31061
31124
|
|
|
31062
|
-
const version = "3.7.
|
|
31125
|
+
const version = "3.7.10";
|
|
31063
31126
|
|
|
31064
31127
|
/* eslint-disable local-rules/sort-imports */
|
|
31065
31128
|
|