@vuetify/nightly 3.9.3-dev.2025-07-31 → 3.9.3-dev.2025-08-02
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/CHANGELOG.md +10 -3
- package/dist/json/attributes.json +2098 -2022
- package/dist/json/importMap-labs.json +24 -24
- package/dist/json/importMap.json +168 -168
- package/dist/json/tags.json +19 -0
- package/dist/json/web-types.json +4252 -4050
- package/dist/vuetify-labs.cjs +77 -24
- package/dist/vuetify-labs.css +5349 -5343
- package/dist/vuetify-labs.d.ts +329 -61
- package/dist/vuetify-labs.esm.js +77 -24
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +77 -24
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +77 -24
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +2939 -2933
- package/dist/vuetify.d.ts +329 -61
- package/dist/vuetify.esm.js +77 -24
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +77 -24
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +252 -249
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.d.ts +1 -0
- package/lib/components/VDataIterator/VDataIterator.js +1 -0
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.css +7 -1
- package/lib/components/VDataTable/VDataTable.d.ts +164 -0
- package/lib/components/VDataTable/VDataTable.sass +4 -1
- package/lib/components/VDataTable/VDataTableColumn.d.ts +4 -1
- package/lib/components/VDataTable/VDataTableColumn.js +6 -2
- package/lib/components/VDataTable/VDataTableColumn.js.map +1 -1
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.d.ts +57 -3
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js +27 -12
- package/lib/components/VDataTable/VDataTableGroupHeaderRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaders.js +3 -0
- package/lib/components/VDataTable/VDataTableHeaders.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRow.d.ts +51 -0
- package/lib/components/VDataTable/VDataTableRow.js +17 -4
- package/lib/components/VDataTable/VDataTableRow.js.map +1 -1
- package/lib/components/VDataTable/VDataTableRows.d.ts +100 -0
- package/lib/components/VDataTable/VDataTableRows.js +9 -4
- package/lib/components/VDataTable/VDataTableRows.js.map +1 -1
- package/lib/components/VDataTable/VDataTableServer.d.ts +110 -0
- package/lib/components/VDataTable/VDataTableVirtual.d.ts +110 -0
- package/lib/components/VDataTable/composables/headers.d.ts +14 -0
- package/lib/components/VDataTable/types.d.ts +1 -0
- package/lib/components/VDataTable/types.js.map +1 -1
- package/lib/components/VFileInput/VFileInput.d.ts +25 -0
- package/lib/components/VFileInput/VFileInput.js +11 -1
- package/lib/components/VFileInput/VFileInput.js.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js +6 -4
- package/lib/components/VSkeletonLoader/VSkeletonLoader.js.map +1 -1
- package/lib/components/VWindow/VWindow.js +2 -2
- package/lib/components/VWindow/VWindow.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/framework.d.ts +62 -61
- package/lib/framework.js +1 -1
- package/lib/iconsets/fa.js +2 -0
- package/lib/iconsets/fa.js.map +1 -1
- package/lib/iconsets/fa4.js +2 -0
- package/lib/iconsets/fa4.js.map +1 -1
- package/lib/iconsets/md.js +2 -0
- package/lib/iconsets/md.js.map +1 -1
- package/lib/iconsets/mdi-svg.js +2 -0
- package/lib/iconsets/mdi-svg.js.map +1 -1
- package/lib/iconsets/mdi.js +2 -0
- package/lib/iconsets/mdi.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify.cjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.9.3-dev.2025-
|
2
|
+
* Vuetify v3.9.3-dev.2025-08-02
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -1873,6 +1873,8 @@
|
|
1873
1873
|
calendar: 'mdi-calendar',
|
1874
1874
|
treeviewCollapse: 'mdi-menu-down',
|
1875
1875
|
treeviewExpand: 'mdi-menu-right',
|
1876
|
+
tableGroupCollapse: 'mdi-chevron-down',
|
1877
|
+
tableGroupExpand: 'mdi-chevron-right',
|
1876
1878
|
eyeDropper: 'mdi-eyedropper',
|
1877
1879
|
upload: 'mdi-cloud-upload',
|
1878
1880
|
color: 'mdi-palette',
|
@@ -15868,7 +15870,7 @@
|
|
15868
15870
|
'v-window--vertical-arrows': !!props.verticalArrows,
|
15869
15871
|
'v-window--crossfade': !!props.crossfade
|
15870
15872
|
}, themeClasses.value, props.class]),
|
15871
|
-
"style": vue.normalizeStyle([props.style, props.transitionDuration ? {
|
15873
|
+
"style": vue.normalizeStyle([props.style, props.transitionDuration && !PREFERS_REDUCED_MOTION ? {
|
15872
15874
|
'--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms')
|
15873
15875
|
} : undefined])
|
15874
15876
|
}, {
|
@@ -20673,6 +20675,7 @@
|
|
20673
20675
|
isGroupOpen,
|
20674
20676
|
toggleGroup,
|
20675
20677
|
items: paginatedItemsWithoutGroups.value,
|
20678
|
+
itemsCount: filteredItems.value.length,
|
20676
20679
|
groupedItems: paginatedItems.value
|
20677
20680
|
}));
|
20678
20681
|
useRender(() => vue.createVNode(props.tag, {
|
@@ -21183,6 +21186,8 @@
|
|
21183
21186
|
lastFixed: Boolean,
|
21184
21187
|
firstFixedEnd: Boolean,
|
21185
21188
|
noPadding: Boolean,
|
21189
|
+
indent: [Number, String],
|
21190
|
+
empty: Boolean,
|
21186
21191
|
tag: String,
|
21187
21192
|
width: [Number, String],
|
21188
21193
|
maxWidth: [Number, String],
|
@@ -21200,14 +21205,16 @@
|
|
21200
21205
|
'v-data-table-column--last-fixed': props.lastFixed,
|
21201
21206
|
'v-data-table-column--first-fixed-end': props.firstFixedEnd,
|
21202
21207
|
'v-data-table-column--no-padding': props.noPadding,
|
21203
|
-
'v-data-table-column--nowrap': props.nowrap
|
21208
|
+
'v-data-table-column--nowrap': props.nowrap,
|
21209
|
+
'v-data-table-column--empty': props.empty
|
21204
21210
|
}, `v-data-table-column--align-${props.align}`]),
|
21205
21211
|
"style": {
|
21206
21212
|
height: convertToUnit(props.height),
|
21207
21213
|
width: convertToUnit(props.width),
|
21208
21214
|
maxWidth: convertToUnit(props.maxWidth),
|
21209
21215
|
left: fixedSide === 'start' ? convertToUnit(props.fixedOffset || null) : undefined,
|
21210
|
-
right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined
|
21216
|
+
right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined,
|
21217
|
+
paddingInlineStart: props.indent ? convertToUnit(props.indent) : undefined
|
21211
21218
|
}
|
21212
21219
|
}, {
|
21213
21220
|
default: () => [slots.default?.()]
|
@@ -21622,6 +21629,7 @@
|
|
21622
21629
|
y
|
21623
21630
|
} = _ref2;
|
21624
21631
|
const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';
|
21632
|
+
const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title;
|
21625
21633
|
const headerProps = vue.mergeProps(props.headerProps ?? {}, column.headerProps ?? {});
|
21626
21634
|
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
21627
21635
|
"tag": "th",
|
@@ -21644,6 +21652,7 @@
|
|
21644
21652
|
"lastFixed": column.lastFixed,
|
21645
21653
|
"firstFixedEnd": column.firstFixedEnd,
|
21646
21654
|
"noPadding": noPadding,
|
21655
|
+
"empty": isEmpty,
|
21647
21656
|
"tabindex": column.sortable ? 0 : undefined,
|
21648
21657
|
"onClick": column.sortable ? () => toggleSort(column) : undefined,
|
21649
21658
|
"onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
|
@@ -21661,6 +21670,7 @@
|
|
21661
21670
|
getSortIcon
|
21662
21671
|
};
|
21663
21672
|
if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
|
21673
|
+
if (isEmpty) return '';
|
21664
21674
|
if (column.key === 'data-table-select') {
|
21665
21675
|
return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && vue.createVNode(VCheckboxBtn, {
|
21666
21676
|
"modelValue": allSelected.value,
|
@@ -21755,6 +21765,14 @@
|
|
21755
21765
|
item: {
|
21756
21766
|
type: Object,
|
21757
21767
|
required: true
|
21768
|
+
},
|
21769
|
+
groupCollapseIcon: {
|
21770
|
+
type: IconValue,
|
21771
|
+
default: '$tableGroupCollapse'
|
21772
|
+
},
|
21773
|
+
groupExpandIcon: {
|
21774
|
+
type: IconValue,
|
21775
|
+
default: '$tableGroupExpand'
|
21758
21776
|
}
|
21759
21777
|
}, 'VDataTableGroupHeaderRow');
|
21760
21778
|
const VDataTableGroupHeaderRow = genericComponent()({
|
@@ -21780,6 +21798,7 @@
|
|
21780
21798
|
const rows = vue.computed(() => {
|
21781
21799
|
return extractRows([props.item]);
|
21782
21800
|
});
|
21801
|
+
const colspan = vue.toRef(() => columns.value.length - (columns.value.some(c => c.key === 'data-table-select') ? 1 : 0));
|
21783
21802
|
return () => vue.createElementVNode("tr", {
|
21784
21803
|
"class": "v-data-table-group-header-row",
|
21785
21804
|
"style": {
|
@@ -21787,7 +21806,7 @@
|
|
21787
21806
|
}
|
21788
21807
|
}, [columns.value.map(column => {
|
21789
21808
|
if (column.key === 'data-table-group') {
|
21790
|
-
const icon = isGroupOpen(props.item) ?
|
21809
|
+
const icon = isGroupOpen(props.item) ? props.groupCollapseIcon : props.groupExpandIcon;
|
21791
21810
|
const onClick = () => toggleGroup(props.item);
|
21792
21811
|
return slots['data-table-group']?.({
|
21793
21812
|
item: props.item,
|
@@ -21797,7 +21816,8 @@
|
|
21797
21816
|
onClick
|
21798
21817
|
}
|
21799
21818
|
}) ?? vue.createVNode(VDataTableColumn, {
|
21800
|
-
"class": "v-data-table-group-header-row__column"
|
21819
|
+
"class": "v-data-table-group-header-row__column",
|
21820
|
+
"colspan": colspan.value
|
21801
21821
|
}, {
|
21802
21822
|
default: () => [vue.createVNode(VBtn, {
|
21803
21823
|
"size": "small",
|
@@ -21806,8 +21826,7 @@
|
|
21806
21826
|
"onClick": onClick
|
21807
21827
|
}, null), vue.createElementVNode("span", null, [props.item.value]), vue.createElementVNode("span", null, [vue.createTextVNode("("), rows.value.length, vue.createTextVNode(")")])]
|
21808
21828
|
});
|
21809
|
-
}
|
21810
|
-
if (column.key === 'data-table-select') {
|
21829
|
+
} else if (column.key === 'data-table-select') {
|
21811
21830
|
const modelValue = isSelected(rows.value);
|
21812
21831
|
const indeterminate = isSomeSelected(rows.value) && !modelValue;
|
21813
21832
|
const selectGroup = v => select(rows.value, v);
|
@@ -21817,13 +21836,18 @@
|
|
21817
21836
|
indeterminate,
|
21818
21837
|
'onUpdate:modelValue': selectGroup
|
21819
21838
|
}
|
21820
|
-
}) ?? vue.
|
21821
|
-
"
|
21822
|
-
"
|
21823
|
-
|
21824
|
-
|
21839
|
+
}) ?? vue.createVNode(VDataTableColumn, {
|
21840
|
+
"class": "v-data-table__td--select-row",
|
21841
|
+
"noPadding": true
|
21842
|
+
}, {
|
21843
|
+
default: () => [vue.createVNode(VCheckboxBtn, {
|
21844
|
+
"modelValue": modelValue,
|
21845
|
+
"indeterminate": indeterminate,
|
21846
|
+
"onUpdate:modelValue": selectGroup
|
21847
|
+
}, null)]
|
21848
|
+
});
|
21825
21849
|
}
|
21826
|
-
return
|
21850
|
+
return '';
|
21827
21851
|
})]);
|
21828
21852
|
}
|
21829
21853
|
});
|
@@ -21834,6 +21858,14 @@
|
|
21834
21858
|
index: Number,
|
21835
21859
|
item: Object,
|
21836
21860
|
cellProps: [Object, Function],
|
21861
|
+
collapseIcon: {
|
21862
|
+
type: IconValue,
|
21863
|
+
default: '$collapse'
|
21864
|
+
},
|
21865
|
+
expandIcon: {
|
21866
|
+
type: IconValue,
|
21867
|
+
default: '$expand'
|
21868
|
+
},
|
21837
21869
|
onClick: EventProp(),
|
21838
21870
|
onContextmenu: EventProp(),
|
21839
21871
|
onDblclick: EventProp(),
|
@@ -21914,8 +21946,11 @@
|
|
21914
21946
|
internalItem: slotProps.internalItem,
|
21915
21947
|
value: slotProps.value
|
21916
21948
|
}) : column.cellProps;
|
21949
|
+
const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';
|
21950
|
+
const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title;
|
21917
21951
|
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
21918
21952
|
"align": column.align,
|
21953
|
+
"indent": column.intent,
|
21919
21954
|
"class": {
|
21920
21955
|
'v-data-table__td--expanded-row': column.key === 'data-table-expand',
|
21921
21956
|
'v-data-table__td--select-row': column.key === 'data-table-select'
|
@@ -21926,7 +21961,8 @@
|
|
21926
21961
|
"lastFixed": column.lastFixed,
|
21927
21962
|
"firstFixedEnd": column.firstFixedEnd,
|
21928
21963
|
"maxWidth": !mobile.value ? column.maxWidth : undefined,
|
21929
|
-
"noPadding":
|
21964
|
+
"noPadding": noPadding,
|
21965
|
+
"empty": isEmpty,
|
21930
21966
|
"nowrap": column.nowrap,
|
21931
21967
|
"width": !mobile.value ? column.width : undefined
|
21932
21968
|
}, cellProps, columnCellProps), {
|
@@ -21949,13 +21985,13 @@
|
|
21949
21985
|
return slots['item.data-table-expand']?.({
|
21950
21986
|
...slotProps,
|
21951
21987
|
props: {
|
21952
|
-
icon: isExpanded(item) ?
|
21988
|
+
icon: isExpanded(item) ? props.collapseIcon : props.expandIcon,
|
21953
21989
|
size: 'small',
|
21954
21990
|
variant: 'text',
|
21955
21991
|
onClick: vue.withModifiers(() => toggleExpand(item), ['stop'])
|
21956
21992
|
}
|
21957
21993
|
}) ?? vue.createVNode(VBtn, {
|
21958
|
-
"icon": isExpanded(item) ?
|
21994
|
+
"icon": isExpanded(item) ? props.collapseIcon : props.expandIcon,
|
21959
21995
|
"size": "small",
|
21960
21996
|
"variant": "text",
|
21961
21997
|
"onClick": vue.withModifiers(() => toggleExpand(item), ['stop'])
|
@@ -21993,6 +22029,8 @@
|
|
21993
22029
|
},
|
21994
22030
|
rowProps: [Object, Function],
|
21995
22031
|
cellProps: [Object, Function],
|
22032
|
+
...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon']),
|
22033
|
+
...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon']),
|
21996
22034
|
...makeDisplayProps()
|
21997
22035
|
}, 'VDataTableRows');
|
21998
22036
|
const VDataTableRows = genericComponent()({
|
@@ -22027,6 +22065,7 @@
|
|
22027
22065
|
mobile
|
22028
22066
|
} = useDisplay(props);
|
22029
22067
|
useRender(() => {
|
22068
|
+
const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon']);
|
22030
22069
|
if (props.loading && (!props.items.length || slots.loading)) {
|
22031
22070
|
return vue.createElementVNode("tr", {
|
22032
22071
|
"class": "v-data-table-rows-loading",
|
@@ -22059,7 +22098,7 @@
|
|
22059
22098
|
return slots['group-header'] ? slots['group-header'](slotProps) : vue.createVNode(VDataTableGroupHeaderRow, vue.mergeProps({
|
22060
22099
|
"key": `group-header_${item.id}`,
|
22061
22100
|
"item": item
|
22062
|
-
}, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps)), slots);
|
22101
|
+
}, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
|
22063
22102
|
}
|
22064
22103
|
const slotProps = {
|
22065
22104
|
index,
|
@@ -22081,6 +22120,8 @@
|
|
22081
22120
|
index,
|
22082
22121
|
item,
|
22083
22122
|
cellProps: props.cellProps,
|
22123
|
+
collapseIcon: props.collapseIcon,
|
22124
|
+
expandIcon: props.expandIcon,
|
22084
22125
|
mobile: mobile.value
|
22085
22126
|
}, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({
|
22086
22127
|
item: slotProps.item,
|
@@ -24738,6 +24779,10 @@
|
|
24738
24779
|
return typeof v === 'boolean' || [1000, 1024].includes(Number(v));
|
24739
24780
|
}
|
24740
24781
|
},
|
24782
|
+
truncateLength: {
|
24783
|
+
type: [Number, String],
|
24784
|
+
default: 22
|
24785
|
+
},
|
24741
24786
|
...makeVInputProps({
|
24742
24787
|
prependIcon: '$file'
|
24743
24788
|
}),
|
@@ -24795,7 +24840,8 @@
|
|
24795
24840
|
name = '',
|
24796
24841
|
size = 0
|
24797
24842
|
} = file;
|
24798
|
-
|
24843
|
+
const truncatedText = truncateText(name);
|
24844
|
+
return !props.showSize ? truncatedText : `${truncatedText} (${humanReadableFileSize(size, base.value)})`;
|
24799
24845
|
}));
|
24800
24846
|
const counterValue = vue.computed(() => {
|
24801
24847
|
const fileCount = model.value?.length ?? 0;
|
@@ -24835,6 +24881,11 @@
|
|
24835
24881
|
callEvent(props['onClick:clear'], e);
|
24836
24882
|
});
|
24837
24883
|
}
|
24884
|
+
function truncateText(str) {
|
24885
|
+
if (str.length < Number(props.truncateLength)) return str;
|
24886
|
+
const charsKeepOneSide = Math.floor((Number(props.truncateLength) - 1) / 2);
|
24887
|
+
return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`;
|
24888
|
+
}
|
24838
24889
|
function onDragover(e) {
|
24839
24890
|
e.preventDefault();
|
24840
24891
|
e.stopImmediatePropagation();
|
@@ -27694,9 +27745,11 @@
|
|
27694
27745
|
}, 'VSkeletonLoader');
|
27695
27746
|
const VSkeletonLoader = genericComponent()({
|
27696
27747
|
name: 'VSkeletonLoader',
|
27748
|
+
inheritAttrs: false,
|
27697
27749
|
props: makeVSkeletonLoaderProps(),
|
27698
27750
|
setup(props, _ref) {
|
27699
27751
|
let {
|
27752
|
+
attrs,
|
27700
27753
|
slots
|
27701
27754
|
} = _ref;
|
27702
27755
|
const {
|
@@ -27723,12 +27776,12 @@
|
|
27723
27776
|
ariaLabel: t(props.loadingText),
|
27724
27777
|
role: 'alert'
|
27725
27778
|
};
|
27726
|
-
return vue.createElementVNode("div", vue.mergeProps({
|
27779
|
+
return vue.createElementVNode(vue.Fragment, null, [isLoading ? vue.createElementVNode("div", vue.mergeProps({
|
27727
27780
|
"class": ['v-skeleton-loader', {
|
27728
27781
|
'v-skeleton-loader--boilerplate': props.boilerplate
|
27729
27782
|
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
|
27730
|
-
"style": [backgroundColorStyles.value,
|
27731
|
-
}, loadingProps), [
|
27783
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value]
|
27784
|
+
}, loadingProps, attrs), [items.value]) : slots.default?.()]);
|
27732
27785
|
});
|
27733
27786
|
return {};
|
27734
27787
|
}
|
@@ -31848,7 +31901,7 @@
|
|
31848
31901
|
};
|
31849
31902
|
});
|
31850
31903
|
}
|
31851
|
-
const version$1 = "3.9.3-dev.2025-
|
31904
|
+
const version$1 = "3.9.3-dev.2025-08-02";
|
31852
31905
|
createVuetify$1.version = version$1;
|
31853
31906
|
|
31854
31907
|
// Vue's inject() can only be used in setup
|
@@ -31873,7 +31926,7 @@
|
|
31873
31926
|
...options
|
31874
31927
|
});
|
31875
31928
|
};
|
31876
|
-
const version = "3.9.3-dev.2025-
|
31929
|
+
const version = "3.9.3-dev.2025-08-02";
|
31877
31930
|
createVuetify.version = version;
|
31878
31931
|
|
31879
31932
|
exports.blueprints = index;
|