vuetify 3.5.1 → 3.5.3
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 +39 -27
- package/dist/json/importMap.json +100 -100
- package/dist/json/tags.json +6 -3
- package/dist/json/web-types.json +101 -65
- package/dist/vuetify-labs.css +1717 -1712
- package/dist/vuetify-labs.d.ts +191 -92
- package/dist/vuetify-labs.esm.js +49 -30
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +49 -30
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +1154 -1149
- package/dist/vuetify.d.ts +215 -116
- package/dist/vuetify.esm.js +49 -30
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +49 -30
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +25 -26
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +12 -0
- package/lib/components/VAvatar/VAvatar.mjs +16 -2
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VBottomSheet/index.d.mts +6 -0
- package/lib/components/VCheckbox/VCheckbox.css +3 -0
- package/lib/components/VCheckbox/VCheckbox.sass +3 -0
- package/lib/components/VCheckbox/_variables.scss +3 -0
- package/lib/components/VChip/VChip.css +0 -1
- package/lib/components/VChip/VChip.mjs +2 -1
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs +1 -1
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +12 -0
- package/lib/components/VDatePicker/VDatePicker.mjs +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.mjs +2 -3
- package/lib/components/VDatePicker/VDatePickerMonth.mjs.map +1 -1
- package/lib/components/VDatePicker/index.d.mts +45 -63
- package/lib/components/VDialog/index.d.mts +21 -3
- package/lib/components/VLabel/VLabel.mjs +5 -4
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/index.d.mts +6 -9
- package/lib/components/VList/VListItem.css +19 -6
- package/lib/components/VList/VListItem.sass +16 -3
- package/lib/components/VList/_variables.scss +6 -4
- package/lib/components/VMenu/VMenu.mjs +1 -0
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.mts +21 -3
- package/lib/components/VOverlay/VOverlay.css +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +4 -2
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VOverlay/index.d.mts +6 -0
- package/lib/components/VOverlay/scrollStrategies.mjs +3 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +12 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +4 -2
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSnackbar/index.d.mts +21 -3
- 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 +15 -28
- package/lib/components/VTable/VTable.sass +6 -13
- package/lib/components/VTable/_variables.scss +1 -1
- package/lib/components/VTooltip/index.d.mts +21 -3
- package/lib/components/VWindow/VWindow.css +1 -1
- package/lib/components/VWindow/VWindow.sass +1 -1
- package/lib/components/index.d.mts +183 -84
- package/lib/composables/calendar.mjs +1 -1
- package/lib/composables/calendar.mjs.map +1 -1
- package/lib/composables/date/adapters/vuetify.mjs +2 -8
- package/lib/composables/date/adapters/vuetify.mjs.map +1 -1
- package/lib/composables/group.mjs +4 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/validation.mjs +1 -1
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +32 -32
- package/lib/labs/VCalendar/index.d.mts +8 -8
- package/lib/labs/components.d.mts +8 -8
- package/package.json +2 -2
package/dist/vuetify.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.5.
|
|
2
|
+
* Vuetify v3.5.3
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -4137,6 +4137,9 @@
|
|
|
4137
4137
|
const key = Symbol.for(`${injectKey.description}:id`);
|
|
4138
4138
|
const children = findChildrenWithProvide(key, groupVm?.vnode);
|
|
4139
4139
|
const index = children.indexOf(vm);
|
|
4140
|
+
if (vue.unref(unwrapped.value) == null) {
|
|
4141
|
+
unwrapped.value = index;
|
|
4142
|
+
}
|
|
4140
4143
|
if (index > -1) {
|
|
4141
4144
|
items.splice(index, 0, unwrapped);
|
|
4142
4145
|
} else {
|
|
@@ -5881,7 +5884,7 @@
|
|
|
5881
5884
|
}, themeClasses.value, colorClasses.value, densityClasses.value, roundedClasses.value, sizeClasses.value, variantClasses.value, props.class],
|
|
5882
5885
|
"style": [colorStyles.value, sizeStyles.value, props.style]
|
|
5883
5886
|
}, {
|
|
5884
|
-
default: () => [props.image ? vue.createVNode(VImg, {
|
|
5887
|
+
default: () => [!slots.default ? props.image ? vue.createVNode(VImg, {
|
|
5885
5888
|
"key": "image",
|
|
5886
5889
|
"src": props.image,
|
|
5887
5890
|
"alt": "",
|
|
@@ -5889,7 +5892,20 @@
|
|
|
5889
5892
|
}, null) : props.icon ? vue.createVNode(VIcon, {
|
|
5890
5893
|
"key": "icon",
|
|
5891
5894
|
"icon": props.icon
|
|
5892
|
-
}, null) :
|
|
5895
|
+
}, null) : props.text : vue.createVNode(VDefaultsProvider, {
|
|
5896
|
+
"key": "content-defaults",
|
|
5897
|
+
"defaults": {
|
|
5898
|
+
VAvatar: {
|
|
5899
|
+
cover: true,
|
|
5900
|
+
image: props.image
|
|
5901
|
+
},
|
|
5902
|
+
VIcon: {
|
|
5903
|
+
icon: props.icon
|
|
5904
|
+
}
|
|
5905
|
+
}
|
|
5906
|
+
}, {
|
|
5907
|
+
default: () => [slots.default?.()]
|
|
5908
|
+
}), genOverlays(false, 'v-avatar')]
|
|
5893
5909
|
}));
|
|
5894
5910
|
return {};
|
|
5895
5911
|
}
|
|
@@ -5897,7 +5913,7 @@
|
|
|
5897
5913
|
|
|
5898
5914
|
const makeVLabelProps = propsFactory({
|
|
5899
5915
|
text: String,
|
|
5900
|
-
|
|
5916
|
+
onClick: EventProp(),
|
|
5901
5917
|
...makeComponentProps(),
|
|
5902
5918
|
...makeThemeProps()
|
|
5903
5919
|
}, 'VLabel');
|
|
@@ -5910,9 +5926,10 @@
|
|
|
5910
5926
|
} = _ref;
|
|
5911
5927
|
useRender(() => vue.createVNode("label", {
|
|
5912
5928
|
"class": ['v-label', {
|
|
5913
|
-
'v-label--clickable': props.
|
|
5929
|
+
'v-label--clickable': !!props.onClick
|
|
5914
5930
|
}, props.class],
|
|
5915
|
-
"style": props.style
|
|
5931
|
+
"style": props.style,
|
|
5932
|
+
"onClick": props.onClick
|
|
5916
5933
|
}, [props.text, slots.default?.()]));
|
|
5917
5934
|
return {};
|
|
5918
5935
|
}
|
|
@@ -6131,6 +6148,9 @@
|
|
|
6131
6148
|
isFocused.value = false;
|
|
6132
6149
|
isFocusVisible.value = false;
|
|
6133
6150
|
}
|
|
6151
|
+
function onClickLabel(e) {
|
|
6152
|
+
e.stopPropagation();
|
|
6153
|
+
}
|
|
6134
6154
|
function onInput(e) {
|
|
6135
6155
|
if (!isInteractive.value) return;
|
|
6136
6156
|
if (props.readonly && group) {
|
|
@@ -6197,8 +6217,7 @@
|
|
|
6197
6217
|
"icon": icon.value
|
|
6198
6218
|
}, null), inputNode])]), [[vue.resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && vue.createVNode(VLabel, {
|
|
6199
6219
|
"for": id.value,
|
|
6200
|
-
"
|
|
6201
|
-
"onClick": e => e.stopPropagation()
|
|
6220
|
+
"onClick": onClickLabel
|
|
6202
6221
|
}, {
|
|
6203
6222
|
default: () => [label]
|
|
6204
6223
|
})]);
|
|
@@ -6611,7 +6630,7 @@
|
|
|
6611
6630
|
if (!val) validate();
|
|
6612
6631
|
});
|
|
6613
6632
|
});
|
|
6614
|
-
vue.watch(isValid, () => {
|
|
6633
|
+
vue.watch([isValid, errorMessages], () => {
|
|
6615
6634
|
form?.update(uid.value, isValid.value, errorMessages.value);
|
|
6616
6635
|
});
|
|
6617
6636
|
function reset() {
|
|
@@ -7635,7 +7654,8 @@
|
|
|
7635
7654
|
}
|
|
7636
7655
|
}
|
|
7637
7656
|
}, slots.prepend)]), vue.createVNode("div", {
|
|
7638
|
-
"class": "v-chip__content"
|
|
7657
|
+
"class": "v-chip__content",
|
|
7658
|
+
"data-no-activator": ""
|
|
7639
7659
|
}, [slots.default?.({
|
|
7640
7660
|
isSelected: group?.isSelected.value,
|
|
7641
7661
|
selectedClass: group?.selectedClass.value,
|
|
@@ -9556,12 +9576,15 @@
|
|
|
9556
9576
|
scrollElements.forEach((el, i) => {
|
|
9557
9577
|
const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));
|
|
9558
9578
|
const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));
|
|
9579
|
+
const scrollBehavior = el.style.scrollBehavior;
|
|
9580
|
+
el.style.scrollBehavior = 'auto';
|
|
9559
9581
|
el.style.removeProperty('--v-body-scroll-x');
|
|
9560
9582
|
el.style.removeProperty('--v-body-scroll-y');
|
|
9561
9583
|
el.style.removeProperty('--v-scrollbar-offset');
|
|
9562
9584
|
el.classList.remove('v-overlay-scroll-blocked');
|
|
9563
9585
|
el.scrollLeft = -x;
|
|
9564
9586
|
el.scrollTop = -y;
|
|
9587
|
+
el.style.scrollBehavior = scrollBehavior;
|
|
9565
9588
|
});
|
|
9566
9589
|
if (scrollableParent) {
|
|
9567
9590
|
data.root.value.classList.remove('v-overlay--scroll-blocked');
|
|
@@ -10168,6 +10191,7 @@
|
|
|
10168
10191
|
contentClass: null,
|
|
10169
10192
|
contentProps: null,
|
|
10170
10193
|
disabled: Boolean,
|
|
10194
|
+
opacity: [Number, String],
|
|
10171
10195
|
noClickAnimation: Boolean,
|
|
10172
10196
|
modelValue: Boolean,
|
|
10173
10197
|
persistent: Boolean,
|
|
@@ -10354,7 +10378,7 @@
|
|
|
10354
10378
|
ref: activatorRef,
|
|
10355
10379
|
targetRef
|
|
10356
10380
|
}, activatorEvents.value, props.activatorProps)
|
|
10357
|
-
}),
|
|
10381
|
+
}), isMounted.value && hasContent.value && vue.createVNode(vue.Teleport, {
|
|
10358
10382
|
"disabled": !teleportTarget.value,
|
|
10359
10383
|
"to": teleportTarget.value
|
|
10360
10384
|
}, {
|
|
@@ -10365,12 +10389,13 @@
|
|
|
10365
10389
|
'v-overlay--contained': props.contained
|
|
10366
10390
|
}, themeClasses.value, rtlClasses.value, props.class],
|
|
10367
10391
|
"style": [stackStyles.value, {
|
|
10392
|
+
'--v-overlay-opacity': props.opacity,
|
|
10368
10393
|
top: convertToUnit(top.value)
|
|
10369
10394
|
}, props.style],
|
|
10370
10395
|
"ref": root
|
|
10371
10396
|
}, scopeId, attrs), [vue.createVNode(Scrim, vue.mergeProps({
|
|
10372
10397
|
"color": scrimColor,
|
|
10373
|
-
"modelValue":
|
|
10398
|
+
"modelValue": isActive.value && !!props.scrim
|
|
10374
10399
|
}, scrimEvents.value), null), vue.createVNode(MaybeTransition, {
|
|
10375
10400
|
"appear": true,
|
|
10376
10401
|
"persisted": true,
|
|
@@ -10617,6 +10642,7 @@
|
|
|
10617
10642
|
const overlayProps = VOverlay.filterProps(props);
|
|
10618
10643
|
return vue.createVNode(VOverlay, vue.mergeProps({
|
|
10619
10644
|
"ref": overlay,
|
|
10645
|
+
"id": id.value,
|
|
10620
10646
|
"class": ['v-menu', props.class],
|
|
10621
10647
|
"style": props.style
|
|
10622
10648
|
}, overlayProps, {
|
|
@@ -14216,7 +14242,7 @@
|
|
|
14216
14242
|
ctx.fillStyle = saturationGradient;
|
|
14217
14243
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
14218
14244
|
const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height);
|
|
14219
|
-
valueGradient.addColorStop(0, 'hsla(0, 0%,
|
|
14245
|
+
valueGradient.addColorStop(0, 'hsla(0, 0%, 0%, 0)'); // transparent
|
|
14220
14246
|
valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)'); // black
|
|
14221
14247
|
ctx.fillStyle = valueGradient;
|
|
14222
14248
|
ctx.fillRect(0, 0, canvas.width, canvas.height);
|
|
@@ -14299,7 +14325,7 @@
|
|
|
14299
14325
|
const nullColor = {
|
|
14300
14326
|
h: 0,
|
|
14301
14327
|
s: 0,
|
|
14302
|
-
v:
|
|
14328
|
+
v: 0,
|
|
14303
14329
|
a: 1
|
|
14304
14330
|
};
|
|
14305
14331
|
const rgba = {
|
|
@@ -14500,7 +14526,7 @@
|
|
|
14500
14526
|
onChange: e => {
|
|
14501
14527
|
const target = e.target;
|
|
14502
14528
|
if (!target) return;
|
|
14503
|
-
emit('update:color', mode.from(getColor(color ?? nullColor, target.value)));
|
|
14529
|
+
emit('update:color', mode.from(getColor(color ?? mode.to(nullColor), target.value)));
|
|
14504
14530
|
}
|
|
14505
14531
|
};
|
|
14506
14532
|
});
|
|
@@ -17102,16 +17128,13 @@
|
|
|
17102
17128
|
return null;
|
|
17103
17129
|
}
|
|
17104
17130
|
const sundayJanuarySecond2000 = new Date(2000, 0, 2);
|
|
17105
|
-
|
|
17106
|
-
// The number of letters returned by getWeekday() varies by date library
|
|
17107
|
-
// So we've opted for 3-letter abbreviations for all locales
|
|
17108
17131
|
function getWeekdays(locale) {
|
|
17109
17132
|
const daysFromSunday = firstDay[locale.slice(-2).toUpperCase()];
|
|
17110
17133
|
return createRange(7).map(i => {
|
|
17111
17134
|
const weekday = new Date(sundayJanuarySecond2000);
|
|
17112
17135
|
weekday.setDate(sundayJanuarySecond2000.getDate() + daysFromSunday + i);
|
|
17113
17136
|
return new Intl.DateTimeFormat(locale, {
|
|
17114
|
-
weekday: '
|
|
17137
|
+
weekday: 'narrow'
|
|
17115
17138
|
}).format(weekday);
|
|
17116
17139
|
});
|
|
17117
17140
|
}
|
|
@@ -17174,10 +17197,7 @@
|
|
|
17174
17197
|
};
|
|
17175
17198
|
break;
|
|
17176
17199
|
case 'dayOfMonth':
|
|
17177
|
-
|
|
17178
|
-
day: 'numeric'
|
|
17179
|
-
};
|
|
17180
|
-
break;
|
|
17200
|
+
return new Intl.NumberFormat(locale).format(newDate.getDate());
|
|
17181
17201
|
case 'shortDate':
|
|
17182
17202
|
options = {
|
|
17183
17203
|
year: '2-digit',
|
|
@@ -20338,7 +20358,7 @@
|
|
|
20338
20358
|
}, v => adapter.getYear(v));
|
|
20339
20359
|
const month = useProxiedModel(props, 'month', undefined, v => {
|
|
20340
20360
|
const value = v != null ? Number(v) : adapter.getMonth(displayValue.value);
|
|
20341
|
-
const date = adapter.setYear(adapter.date(), adapter.getYear(year.value));
|
|
20361
|
+
const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
|
|
20342
20362
|
return adapter.setMonth(date, value);
|
|
20343
20363
|
}, v => adapter.getMonth(v));
|
|
20344
20364
|
const weeksInMonth = vue.computed(() => {
|
|
@@ -20440,7 +20460,6 @@
|
|
|
20440
20460
|
color: String,
|
|
20441
20461
|
hideWeekdays: Boolean,
|
|
20442
20462
|
multiple: [Boolean, Number, String],
|
|
20443
|
-
range: Boolean,
|
|
20444
20463
|
showWeek: Boolean,
|
|
20445
20464
|
...makeCalendarProps()
|
|
20446
20465
|
}, 'VDatePickerMonth');
|
|
@@ -20462,7 +20481,7 @@
|
|
|
20462
20481
|
daysInMonth,
|
|
20463
20482
|
model,
|
|
20464
20483
|
weekNumbers
|
|
20465
|
-
} = useCalendar(props);
|
|
20484
|
+
} = useCalendar(props);
|
|
20466
20485
|
const adapter = useDate();
|
|
20467
20486
|
const rangeStart = vue.shallowRef();
|
|
20468
20487
|
const rangeStop = vue.shallowRef();
|
|
@@ -20534,7 +20553,7 @@
|
|
|
20534
20553
|
"class": "v-date-picker-month__days"
|
|
20535
20554
|
}, [!props.hideWeekdays && adapter.getWeekdays().map(weekDay => vue.createVNode("div", {
|
|
20536
20555
|
"class": ['v-date-picker-month__day', 'v-date-picker-month__weekday']
|
|
20537
|
-
}, [weekDay
|
|
20556
|
+
}, [weekDay])), daysInMonth.value.map((item, i) => {
|
|
20538
20557
|
const slotProps = {
|
|
20539
20558
|
props: {
|
|
20540
20559
|
onClick: () => onClick(item.date)
|
|
@@ -20858,7 +20877,7 @@
|
|
|
20858
20877
|
return props.multiple && model.value.length > 1 ? t('$vuetify.datePicker.itemsSelected', model.value.length) : model.value[0] && adapter.isValid(model.value[0]) ? adapter.format(model.value[0], 'normalDateWithWeekday') : t(props.header);
|
|
20859
20878
|
});
|
|
20860
20879
|
const text = vue.computed(() => {
|
|
20861
|
-
return adapter.format(adapter.
|
|
20880
|
+
return adapter.format(adapter.parseISO(`${year.value}-${month.value + 1}-01`), 'monthAndYear');
|
|
20862
20881
|
});
|
|
20863
20882
|
// const headerIcon = computed(() => props.inputMode === 'calendar' ? props.keyboardIcon : props.calendarIcon)
|
|
20864
20883
|
const headerTransition = vue.computed(() => `date-picker-header${isReversing.value ? '-reverse' : ''}-transition`);
|
|
@@ -25647,7 +25666,7 @@
|
|
|
25647
25666
|
goTo
|
|
25648
25667
|
};
|
|
25649
25668
|
}
|
|
25650
|
-
const version$1 = "3.5.
|
|
25669
|
+
const version$1 = "3.5.3";
|
|
25651
25670
|
createVuetify$1.version = version$1;
|
|
25652
25671
|
|
|
25653
25672
|
// Vue's inject() can only be used in setup
|
|
@@ -25672,7 +25691,7 @@
|
|
|
25672
25691
|
...options
|
|
25673
25692
|
});
|
|
25674
25693
|
};
|
|
25675
|
-
const version = "3.5.
|
|
25694
|
+
const version = "3.5.3";
|
|
25676
25695
|
createVuetify.version = version;
|
|
25677
25696
|
|
|
25678
25697
|
exports.components = components;
|