vuetify 3.8.0-beta.0 → 3.8.0
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/_component-variables-labs.sass +1 -0
- package/dist/json/attributes.json +3162 -3030
- package/dist/json/importMap-labs.json +32 -28
- package/dist/json/importMap.json +166 -166
- package/dist/json/tags.json +38 -0
- package/dist/json/web-types.json +6016 -5639
- package/dist/vuetify-labs.cjs +320 -55
- package/dist/vuetify-labs.css +5453 -5271
- package/dist/vuetify-labs.d.ts +612 -267
- package/dist/vuetify-labs.esm.js +320 -55
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +320 -55
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +74 -36
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3042 -3037
- package/dist/vuetify.d.ts +161 -178
- package/dist/vuetify.esm.js +74 -36
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +74 -36
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +32 -32
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +5 -10
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.js +4 -3
- package/lib/components/VColorPicker/VColorPickerPreview.js.map +1 -1
- package/lib/components/VConfirmEdit/VConfirmEdit.d.ts +31 -6
- package/lib/components/VConfirmEdit/VConfirmEdit.js +17 -2
- package/lib/components/VConfirmEdit/VConfirmEdit.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.d.ts +4 -4
- package/lib/components/VDataTable/VDataTableRow.d.ts +9 -6
- package/lib/components/VDataTable/VDataTableRow.js +18 -3
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +4 -4
- package/lib/components/VDataTable/VDataTableServer.d.ts +4 -4
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +4 -4
- package/lib/components/VDatePicker/VDatePicker.d.ts +33 -78
- package/lib/components/VDatePicker/VDatePicker.js +1 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonth.d.ts +33 -78
- package/lib/components/VEmptyState/VEmptyState.js +3 -1
- package/lib/components/VEmptyState/VEmptyState.js.map +1 -1
- package/lib/components/VField/VField.css +2 -2
- package/lib/components/VField/VField.js +5 -1
- package/lib/components/VField/VField.js.map +1 -1
- package/lib/components/VField/_variables.scss +1 -1
- package/lib/components/VIcon/VIcon.css +1 -0
- package/lib/components/VIcon/VIcon.d.ts +10 -0
- package/lib/components/VIcon/VIcon.js +6 -3
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/components/VIcon/VIcon.sass +1 -0
- package/lib/components/VInput/VInput.css +7 -7
- package/lib/components/VInput/VInput.sass +5 -2
- package/lib/composables/calendar.d.ts +12 -35
- package/lib/composables/calendar.js +12 -9
- package/lib/composables/calendar.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +61 -60
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.d.ts +33 -78
- package/lib/labs/VDateInput/VDateInput.d.ts +103 -81
- package/lib/labs/VDateInput/VDateInput.js +77 -19
- package/lib/labs/VDateInput/VDateInput.js.map +1 -1
- package/lib/labs/VFileUpload/VFileUpload.js +2 -1
- package/lib/labs/VFileUpload/VFileUpload.js.map +1 -1
- package/lib/labs/VIconBtn/VIconBtn.css +178 -0
- package/lib/labs/VIconBtn/VIconBtn.d.ts +608 -0
- package/lib/labs/VIconBtn/VIconBtn.js +184 -0
- package/lib/labs/VIconBtn/VIconBtn.js.map +1 -0
- package/lib/labs/VIconBtn/VIconBtn.scss +110 -0
- package/lib/labs/VIconBtn/_variables.scss +36 -0
- package/lib/labs/VIconBtn/index.d.ts +1 -0
- package/lib/labs/VIconBtn/index.js +2 -0
- package/lib/labs/VIconBtn/index.js.map +1 -0
- package/lib/labs/components.d.ts +1 -0
- package/lib/labs/components.js +1 -0
- package/lib/labs/components.js.map +1 -1
- package/lib/styles/main.css +4 -0
- package/lib/styles/settings/_utilities.scss +5 -0
- package/lib/util/helpers.d.ts +1 -2
- package/lib/util/helpers.js +2 -12
- package/lib/util/helpers.js.map +1 -1
- package/package.json +2 -2
package/dist/vuetify.cjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/*!
|
|
2
|
-
* Vuetify v3.8.0
|
|
2
|
+
* Vuetify v3.8.0
|
|
3
3
|
* Forged by John Leider
|
|
4
4
|
* Released under the MIT License.
|
|
5
5
|
*/
|
|
@@ -162,7 +162,7 @@
|
|
|
162
162
|
function pick(obj, paths) {
|
|
163
163
|
const found = {};
|
|
164
164
|
for (const key of paths) {
|
|
165
|
-
if (Object.
|
|
165
|
+
if (Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
166
166
|
found[key] = obj[key];
|
|
167
167
|
}
|
|
168
168
|
}
|
|
@@ -4932,6 +4932,7 @@
|
|
|
4932
4932
|
start: Boolean,
|
|
4933
4933
|
end: Boolean,
|
|
4934
4934
|
icon: IconValue,
|
|
4935
|
+
opacity: [String, Number],
|
|
4935
4936
|
...makeComponentProps(),
|
|
4936
4937
|
...makeSizeProps(),
|
|
4937
4938
|
...makeTagProps({
|
|
@@ -4950,7 +4951,7 @@
|
|
|
4950
4951
|
const slotIcon = vue.ref();
|
|
4951
4952
|
const {
|
|
4952
4953
|
themeClasses
|
|
4953
|
-
} =
|
|
4954
|
+
} = useTheme();
|
|
4954
4955
|
const {
|
|
4955
4956
|
iconData
|
|
4956
4957
|
} = useIcon(vue.computed(() => slotIcon.value || props.icon));
|
|
@@ -4976,7 +4977,9 @@
|
|
|
4976
4977
|
'v-icon--start': props.start,
|
|
4977
4978
|
'v-icon--end': props.end
|
|
4978
4979
|
}, props.class],
|
|
4979
|
-
"style": [
|
|
4980
|
+
"style": [{
|
|
4981
|
+
'--v-icon-opacity': props.opacity
|
|
4982
|
+
}, !sizeClasses.value ? {
|
|
4980
4983
|
fontSize: convertToUnit(props.size),
|
|
4981
4984
|
height: convertToUnit(props.size),
|
|
4982
4985
|
width: convertToUnit(props.size)
|
|
@@ -12132,7 +12135,11 @@
|
|
|
12132
12135
|
},
|
|
12133
12136
|
focus,
|
|
12134
12137
|
blur
|
|
12135
|
-
})
|
|
12138
|
+
}) ?? vue.createVNode("div", {
|
|
12139
|
+
"id": id.value,
|
|
12140
|
+
"class": "v-field__input",
|
|
12141
|
+
"aria-describedby": messagesId.value
|
|
12142
|
+
}, null)]), hasClear && vue.createVNode(VExpandXTransition, {
|
|
12136
12143
|
"key": "clear"
|
|
12137
12144
|
}, {
|
|
12138
12145
|
default: () => [vue.withDirectives(vue.createVNode("div", {
|
|
@@ -13664,12 +13671,7 @@
|
|
|
13664
13671
|
} else {
|
|
13665
13672
|
if (!props.multiple && search.value == null) model.value = [];
|
|
13666
13673
|
menu.value = false;
|
|
13667
|
-
if (
|
|
13668
|
-
let {
|
|
13669
|
-
title
|
|
13670
|
-
} = _ref3;
|
|
13671
|
-
return title === search.value;
|
|
13672
|
-
})) search.value = '';
|
|
13674
|
+
if (props.multiple || hasSelectionSlot.value) search.value = '';
|
|
13673
13675
|
selectionIndex.value = -1;
|
|
13674
13676
|
}
|
|
13675
13677
|
});
|
|
@@ -13757,12 +13759,12 @@
|
|
|
13757
13759
|
"items": displayItems.value,
|
|
13758
13760
|
"itemKey": "value"
|
|
13759
13761
|
}, {
|
|
13760
|
-
default:
|
|
13762
|
+
default: _ref3 => {
|
|
13761
13763
|
let {
|
|
13762
13764
|
item,
|
|
13763
13765
|
index,
|
|
13764
13766
|
itemRef
|
|
13765
|
-
} =
|
|
13767
|
+
} = _ref3;
|
|
13766
13768
|
const itemProps = vue.mergeProps(item.props, {
|
|
13767
13769
|
ref: itemRef,
|
|
13768
13770
|
key: item.value,
|
|
@@ -13776,10 +13778,10 @@
|
|
|
13776
13778
|
}) ?? vue.createVNode(VListItem, vue.mergeProps(itemProps, {
|
|
13777
13779
|
"role": "option"
|
|
13778
13780
|
}), {
|
|
13779
|
-
prepend:
|
|
13781
|
+
prepend: _ref4 => {
|
|
13780
13782
|
let {
|
|
13781
13783
|
isSelected
|
|
13782
|
-
} =
|
|
13784
|
+
} = _ref4;
|
|
13783
13785
|
return vue.createVNode(vue.Fragment, null, [props.multiple && !props.hideSelected ? vue.createVNode(VCheckboxBtn, {
|
|
13784
13786
|
"key": item.value,
|
|
13785
13787
|
"modelValue": isSelected,
|
|
@@ -16648,7 +16650,7 @@
|
|
|
16648
16650
|
const abortController = new AbortController();
|
|
16649
16651
|
vue.onUnmounted(() => abortController.abort());
|
|
16650
16652
|
async function openEyeDropper() {
|
|
16651
|
-
if (!SUPPORTS_EYE_DROPPER) return;
|
|
16653
|
+
if (!SUPPORTS_EYE_DROPPER || props.disabled) return;
|
|
16652
16654
|
const eyeDropper = new window.EyeDropper();
|
|
16653
16655
|
try {
|
|
16654
16656
|
const result = await eyeDropper.open({
|
|
@@ -16670,10 +16672,11 @@
|
|
|
16670
16672
|
"class": "v-color-picker-preview__eye-dropper",
|
|
16671
16673
|
"key": "eyeDropper"
|
|
16672
16674
|
}, [vue.createVNode(VBtn, {
|
|
16673
|
-
"
|
|
16675
|
+
"density": "comfortable",
|
|
16676
|
+
"disabled": props.disabled,
|
|
16674
16677
|
"icon": "$eyeDropper",
|
|
16675
16678
|
"variant": "plain",
|
|
16676
|
-
"
|
|
16679
|
+
"onClick": openEyeDropper
|
|
16677
16680
|
}, null)]), vue.createVNode("div", {
|
|
16678
16681
|
"class": "v-color-picker-preview__dot"
|
|
16679
16682
|
}, [vue.createVNode("div", {
|
|
@@ -18701,6 +18704,10 @@
|
|
|
18701
18704
|
type: String,
|
|
18702
18705
|
default: '$vuetify.confirmEdit.ok'
|
|
18703
18706
|
},
|
|
18707
|
+
disabled: {
|
|
18708
|
+
type: [Boolean, Array],
|
|
18709
|
+
default: undefined
|
|
18710
|
+
},
|
|
18704
18711
|
hideActions: Boolean
|
|
18705
18712
|
}, 'VConfirmEdit');
|
|
18706
18713
|
const VConfirmEdit = genericComponent()({
|
|
@@ -18727,6 +18734,17 @@
|
|
|
18727
18734
|
const isPristine = vue.computed(() => {
|
|
18728
18735
|
return deepEqual(model.value, internalModel.value);
|
|
18729
18736
|
});
|
|
18737
|
+
function isActionDisabled(action) {
|
|
18738
|
+
if (typeof props.disabled === 'boolean') {
|
|
18739
|
+
return props.disabled;
|
|
18740
|
+
}
|
|
18741
|
+
if (Array.isArray(props.disabled)) {
|
|
18742
|
+
return props.disabled.includes(action);
|
|
18743
|
+
}
|
|
18744
|
+
return isPristine.value;
|
|
18745
|
+
}
|
|
18746
|
+
const isSaveDisabled = vue.computed(() => isActionDisabled('save'));
|
|
18747
|
+
const isCancelDisabled = vue.computed(() => isActionDisabled('cancel'));
|
|
18730
18748
|
function save() {
|
|
18731
18749
|
model.value = internalModel.value;
|
|
18732
18750
|
emit('save', internalModel.value);
|
|
@@ -18737,13 +18755,13 @@
|
|
|
18737
18755
|
}
|
|
18738
18756
|
function actions(actionsProps) {
|
|
18739
18757
|
return vue.createVNode(vue.Fragment, null, [vue.createVNode(VBtn, vue.mergeProps({
|
|
18740
|
-
"disabled":
|
|
18758
|
+
"disabled": isCancelDisabled.value,
|
|
18741
18759
|
"variant": "text",
|
|
18742
18760
|
"color": props.color,
|
|
18743
18761
|
"onClick": cancel,
|
|
18744
18762
|
"text": t(props.cancelText)
|
|
18745
18763
|
}, actionsProps), null), vue.createVNode(VBtn, vue.mergeProps({
|
|
18746
|
-
"disabled":
|
|
18764
|
+
"disabled": isSaveDisabled.value,
|
|
18747
18765
|
"variant": "text",
|
|
18748
18766
|
"color": props.color,
|
|
18749
18767
|
"onClick": save,
|
|
@@ -20829,22 +20847,37 @@
|
|
|
20829
20847
|
"width": !mobile.value ? column.width : undefined
|
|
20830
20848
|
}, cellProps, columnCellProps), {
|
|
20831
20849
|
default: () => {
|
|
20832
|
-
if (slots[slotName] && !mobile.value) return slots[slotName]?.(slotProps);
|
|
20833
20850
|
if (column.key === 'data-table-select') {
|
|
20834
|
-
return slots['item.data-table-select']?.(
|
|
20851
|
+
return slots['item.data-table-select']?.({
|
|
20852
|
+
...slotProps,
|
|
20853
|
+
props: {
|
|
20854
|
+
disabled: !item.selectable,
|
|
20855
|
+
modelValue: isSelected([item]),
|
|
20856
|
+
onClick: vue.withModifiers(() => toggleSelect(item), ['stop'])
|
|
20857
|
+
}
|
|
20858
|
+
}) ?? vue.createVNode(VCheckboxBtn, {
|
|
20835
20859
|
"disabled": !item.selectable,
|
|
20836
20860
|
"modelValue": isSelected([item]),
|
|
20837
20861
|
"onClick": vue.withModifiers(event => toggleSelect(item, props.index, event), ['stop'])
|
|
20838
20862
|
}, null);
|
|
20839
20863
|
}
|
|
20840
20864
|
if (column.key === 'data-table-expand') {
|
|
20841
|
-
return slots['item.data-table-expand']?.(
|
|
20865
|
+
return slots['item.data-table-expand']?.({
|
|
20866
|
+
...slotProps,
|
|
20867
|
+
props: {
|
|
20868
|
+
icon: isExpanded(item) ? '$collapse' : '$expand',
|
|
20869
|
+
size: 'small',
|
|
20870
|
+
variant: 'text',
|
|
20871
|
+
onClick: vue.withModifiers(() => toggleExpand(item), ['stop'])
|
|
20872
|
+
}
|
|
20873
|
+
}) ?? vue.createVNode(VBtn, {
|
|
20842
20874
|
"icon": isExpanded(item) ? '$collapse' : '$expand',
|
|
20843
20875
|
"size": "small",
|
|
20844
20876
|
"variant": "text",
|
|
20845
20877
|
"onClick": vue.withModifiers(() => toggleExpand(item), ['stop'])
|
|
20846
20878
|
}, null);
|
|
20847
20879
|
}
|
|
20880
|
+
if (slots[slotName] && !mobile.value) return slots[slotName](slotProps);
|
|
20848
20881
|
const displayValue = vue.toDisplayString(slotProps.value);
|
|
20849
20882
|
return !mobile.value ? displayValue : vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
|
|
20850
20883
|
"class": "v-data-table__td-title"
|
|
@@ -22183,11 +22216,14 @@
|
|
|
22183
22216
|
type: String,
|
|
22184
22217
|
default: 'dynamic'
|
|
22185
22218
|
},
|
|
22186
|
-
firstDayOfWeek:
|
|
22219
|
+
firstDayOfWeek: {
|
|
22220
|
+
type: [Number, String],
|
|
22221
|
+
default: 0
|
|
22222
|
+
}
|
|
22187
22223
|
}, 'calendar');
|
|
22188
22224
|
function useCalendar(props) {
|
|
22189
22225
|
const adapter = useDate();
|
|
22190
|
-
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v));
|
|
22226
|
+
const model = useProxiedModel(props, 'modelValue', [], v => wrapInArray(v).map(i => adapter.date(i)));
|
|
22191
22227
|
const displayValue = vue.computed(() => {
|
|
22192
22228
|
if (props.displayValue) return adapter.date(props.displayValue);
|
|
22193
22229
|
if (model.value.length > 0) return adapter.date(model.value[0]);
|
|
@@ -22204,15 +22240,15 @@
|
|
|
22204
22240
|
const date = adapter.setYear(adapter.startOfMonth(adapter.date()), adapter.getYear(year.value));
|
|
22205
22241
|
return adapter.setMonth(date, value);
|
|
22206
22242
|
}, v => adapter.getMonth(v));
|
|
22207
|
-
const defaultFirstDayOfWeek = vue.computed(() => {
|
|
22208
|
-
return props.firstDayOfWeek ?? props.weekdays[0];
|
|
22209
|
-
});
|
|
22210
22243
|
const weekDays = vue.computed(() => {
|
|
22211
|
-
const firstDayOfWeek = Number(props.firstDayOfWeek
|
|
22212
|
-
|
|
22244
|
+
const firstDayOfWeek = Number(props.firstDayOfWeek);
|
|
22245
|
+
|
|
22246
|
+
// Always generate all days, regardless of props.weekdays
|
|
22247
|
+
return [0, 1, 2, 3, 4, 5, 6].map(day => (day + firstDayOfWeek) % 7);
|
|
22213
22248
|
});
|
|
22214
22249
|
const weeksInMonth = vue.computed(() => {
|
|
22215
|
-
const
|
|
22250
|
+
const firstDayOfWeek = Number(props.firstDayOfWeek);
|
|
22251
|
+
const weeks = adapter.getWeekArray(month.value, firstDayOfWeek);
|
|
22216
22252
|
const days = weeks.flat();
|
|
22217
22253
|
|
|
22218
22254
|
// Make sure there's always 6 weeks in month (6 * 7 days)
|
|
@@ -22290,7 +22326,7 @@
|
|
|
22290
22326
|
if (typeof props.allowedDates === 'function') {
|
|
22291
22327
|
return !props.allowedDates(date);
|
|
22292
22328
|
}
|
|
22293
|
-
return
|
|
22329
|
+
return !props.weekdays.includes(adapter.toJsDate(date).getDay());
|
|
22294
22330
|
}
|
|
22295
22331
|
return {
|
|
22296
22332
|
displayValue,
|
|
@@ -22700,7 +22736,7 @@
|
|
|
22700
22736
|
const {
|
|
22701
22737
|
rtlClasses
|
|
22702
22738
|
} = useRtl();
|
|
22703
|
-
const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v), v => props.multiple ? v : v[0]);
|
|
22739
|
+
const model = useProxiedModel(props, 'modelValue', undefined, v => wrapInArray(v).map(i => adapter.date(i)), v => props.multiple ? v : v[0]);
|
|
22704
22740
|
const viewMode = useProxiedModel(props, 'viewMode');
|
|
22705
22741
|
// const inputMode = useProxiedModel(props, 'inputMode')
|
|
22706
22742
|
|
|
@@ -23025,7 +23061,9 @@
|
|
|
23025
23061
|
VBtn: {
|
|
23026
23062
|
class: 'v-empty-state__action-btn',
|
|
23027
23063
|
color: props.color ?? 'surface-variant',
|
|
23028
|
-
|
|
23064
|
+
href: props.href,
|
|
23065
|
+
text: props.actionText,
|
|
23066
|
+
to: props.to
|
|
23029
23067
|
}
|
|
23030
23068
|
}
|
|
23031
23069
|
}, {
|
|
@@ -29172,7 +29210,7 @@
|
|
|
29172
29210
|
};
|
|
29173
29211
|
});
|
|
29174
29212
|
}
|
|
29175
|
-
const version$1 = "3.8.0
|
|
29213
|
+
const version$1 = "3.8.0";
|
|
29176
29214
|
createVuetify$1.version = version$1;
|
|
29177
29215
|
|
|
29178
29216
|
// Vue's inject() can only be used in setup
|
|
@@ -29197,7 +29235,7 @@
|
|
|
29197
29235
|
...options
|
|
29198
29236
|
});
|
|
29199
29237
|
};
|
|
29200
|
-
const version = "3.8.0
|
|
29238
|
+
const version = "3.8.0";
|
|
29201
29239
|
createVuetify.version = version;
|
|
29202
29240
|
|
|
29203
29241
|
exports.blueprints = index;
|