@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-labs.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
|
*/
|
@@ -4807,6 +4807,8 @@
|
|
4807
4807
|
calendar: 'mdi-calendar',
|
4808
4808
|
treeviewCollapse: 'mdi-menu-down',
|
4809
4809
|
treeviewExpand: 'mdi-menu-right',
|
4810
|
+
tableGroupCollapse: 'mdi-chevron-down',
|
4811
|
+
tableGroupExpand: 'mdi-chevron-right',
|
4810
4812
|
eyeDropper: 'mdi-eyedropper',
|
4811
4813
|
upload: 'mdi-cloud-upload',
|
4812
4814
|
color: 'mdi-palette',
|
@@ -15628,7 +15630,7 @@
|
|
15628
15630
|
'v-window--vertical-arrows': !!props.verticalArrows,
|
15629
15631
|
'v-window--crossfade': !!props.crossfade
|
15630
15632
|
}, themeClasses.value, props.class]),
|
15631
|
-
"style": vue.normalizeStyle([props.style, props.transitionDuration ? {
|
15633
|
+
"style": vue.normalizeStyle([props.style, props.transitionDuration && !PREFERS_REDUCED_MOTION ? {
|
15632
15634
|
'--v-window-transition-duration': convertToUnit(props.transitionDuration, 'ms')
|
15633
15635
|
} : undefined])
|
15634
15636
|
}, {
|
@@ -20433,6 +20435,7 @@
|
|
20433
20435
|
isGroupOpen,
|
20434
20436
|
toggleGroup,
|
20435
20437
|
items: paginatedItemsWithoutGroups.value,
|
20438
|
+
itemsCount: filteredItems.value.length,
|
20436
20439
|
groupedItems: paginatedItems.value
|
20437
20440
|
}));
|
20438
20441
|
useRender(() => vue.createVNode(props.tag, {
|
@@ -20943,6 +20946,8 @@
|
|
20943
20946
|
lastFixed: Boolean,
|
20944
20947
|
firstFixedEnd: Boolean,
|
20945
20948
|
noPadding: Boolean,
|
20949
|
+
indent: [Number, String],
|
20950
|
+
empty: Boolean,
|
20946
20951
|
tag: String,
|
20947
20952
|
width: [Number, String],
|
20948
20953
|
maxWidth: [Number, String],
|
@@ -20960,14 +20965,16 @@
|
|
20960
20965
|
'v-data-table-column--last-fixed': props.lastFixed,
|
20961
20966
|
'v-data-table-column--first-fixed-end': props.firstFixedEnd,
|
20962
20967
|
'v-data-table-column--no-padding': props.noPadding,
|
20963
|
-
'v-data-table-column--nowrap': props.nowrap
|
20968
|
+
'v-data-table-column--nowrap': props.nowrap,
|
20969
|
+
'v-data-table-column--empty': props.empty
|
20964
20970
|
}, `v-data-table-column--align-${props.align}`]),
|
20965
20971
|
"style": {
|
20966
20972
|
height: convertToUnit(props.height),
|
20967
20973
|
width: convertToUnit(props.width),
|
20968
20974
|
maxWidth: convertToUnit(props.maxWidth),
|
20969
20975
|
left: fixedSide === 'start' ? convertToUnit(props.fixedOffset || null) : undefined,
|
20970
|
-
right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined
|
20976
|
+
right: fixedSide === 'end' ? convertToUnit(props.fixedEndOffset || null) : undefined,
|
20977
|
+
paddingInlineStart: props.indent ? convertToUnit(props.indent) : undefined
|
20971
20978
|
}
|
20972
20979
|
}, {
|
20973
20980
|
default: () => [slots.default?.()]
|
@@ -21382,6 +21389,7 @@
|
|
21382
21389
|
y
|
21383
21390
|
} = _ref2;
|
21384
21391
|
const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';
|
21392
|
+
const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title;
|
21385
21393
|
const headerProps = vue.mergeProps(props.headerProps ?? {}, column.headerProps ?? {});
|
21386
21394
|
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
21387
21395
|
"tag": "th",
|
@@ -21404,6 +21412,7 @@
|
|
21404
21412
|
"lastFixed": column.lastFixed,
|
21405
21413
|
"firstFixedEnd": column.firstFixedEnd,
|
21406
21414
|
"noPadding": noPadding,
|
21415
|
+
"empty": isEmpty,
|
21407
21416
|
"tabindex": column.sortable ? 0 : undefined,
|
21408
21417
|
"onClick": column.sortable ? () => toggleSort(column) : undefined,
|
21409
21418
|
"onKeydown": column.sortable ? event => handleEnterKeyPress(event, column) : undefined
|
@@ -21421,6 +21430,7 @@
|
|
21421
21430
|
getSortIcon
|
21422
21431
|
};
|
21423
21432
|
if (slots[columnSlotName]) return slots[columnSlotName](columnSlotProps);
|
21433
|
+
if (isEmpty) return '';
|
21424
21434
|
if (column.key === 'data-table-select') {
|
21425
21435
|
return slots['header.data-table-select']?.(columnSlotProps) ?? (showSelectAll.value && vue.createVNode(VCheckboxBtn, {
|
21426
21436
|
"modelValue": allSelected.value,
|
@@ -21515,6 +21525,14 @@
|
|
21515
21525
|
item: {
|
21516
21526
|
type: Object,
|
21517
21527
|
required: true
|
21528
|
+
},
|
21529
|
+
groupCollapseIcon: {
|
21530
|
+
type: IconValue,
|
21531
|
+
default: '$tableGroupCollapse'
|
21532
|
+
},
|
21533
|
+
groupExpandIcon: {
|
21534
|
+
type: IconValue,
|
21535
|
+
default: '$tableGroupExpand'
|
21518
21536
|
}
|
21519
21537
|
}, 'VDataTableGroupHeaderRow');
|
21520
21538
|
const VDataTableGroupHeaderRow = genericComponent()({
|
@@ -21540,6 +21558,7 @@
|
|
21540
21558
|
const rows = vue.computed(() => {
|
21541
21559
|
return extractRows([props.item]);
|
21542
21560
|
});
|
21561
|
+
const colspan = vue.toRef(() => columns.value.length - (columns.value.some(c => c.key === 'data-table-select') ? 1 : 0));
|
21543
21562
|
return () => vue.createElementVNode("tr", {
|
21544
21563
|
"class": "v-data-table-group-header-row",
|
21545
21564
|
"style": {
|
@@ -21547,7 +21566,7 @@
|
|
21547
21566
|
}
|
21548
21567
|
}, [columns.value.map(column => {
|
21549
21568
|
if (column.key === 'data-table-group') {
|
21550
|
-
const icon = isGroupOpen(props.item) ?
|
21569
|
+
const icon = isGroupOpen(props.item) ? props.groupCollapseIcon : props.groupExpandIcon;
|
21551
21570
|
const onClick = () => toggleGroup(props.item);
|
21552
21571
|
return slots['data-table-group']?.({
|
21553
21572
|
item: props.item,
|
@@ -21557,7 +21576,8 @@
|
|
21557
21576
|
onClick
|
21558
21577
|
}
|
21559
21578
|
}) ?? vue.createVNode(VDataTableColumn, {
|
21560
|
-
"class": "v-data-table-group-header-row__column"
|
21579
|
+
"class": "v-data-table-group-header-row__column",
|
21580
|
+
"colspan": colspan.value
|
21561
21581
|
}, {
|
21562
21582
|
default: () => [vue.createVNode(VBtn, {
|
21563
21583
|
"size": "small",
|
@@ -21566,8 +21586,7 @@
|
|
21566
21586
|
"onClick": onClick
|
21567
21587
|
}, null), vue.createElementVNode("span", null, [props.item.value]), vue.createElementVNode("span", null, [vue.createTextVNode("("), rows.value.length, vue.createTextVNode(")")])]
|
21568
21588
|
});
|
21569
|
-
}
|
21570
|
-
if (column.key === 'data-table-select') {
|
21589
|
+
} else if (column.key === 'data-table-select') {
|
21571
21590
|
const modelValue = isSelected(rows.value);
|
21572
21591
|
const indeterminate = isSomeSelected(rows.value) && !modelValue;
|
21573
21592
|
const selectGroup = v => select(rows.value, v);
|
@@ -21577,13 +21596,18 @@
|
|
21577
21596
|
indeterminate,
|
21578
21597
|
'onUpdate:modelValue': selectGroup
|
21579
21598
|
}
|
21580
|
-
}) ?? vue.
|
21581
|
-
"
|
21582
|
-
"
|
21583
|
-
|
21584
|
-
|
21599
|
+
}) ?? vue.createVNode(VDataTableColumn, {
|
21600
|
+
"class": "v-data-table__td--select-row",
|
21601
|
+
"noPadding": true
|
21602
|
+
}, {
|
21603
|
+
default: () => [vue.createVNode(VCheckboxBtn, {
|
21604
|
+
"modelValue": modelValue,
|
21605
|
+
"indeterminate": indeterminate,
|
21606
|
+
"onUpdate:modelValue": selectGroup
|
21607
|
+
}, null)]
|
21608
|
+
});
|
21585
21609
|
}
|
21586
|
-
return
|
21610
|
+
return '';
|
21587
21611
|
})]);
|
21588
21612
|
}
|
21589
21613
|
});
|
@@ -21594,6 +21618,14 @@
|
|
21594
21618
|
index: Number,
|
21595
21619
|
item: Object,
|
21596
21620
|
cellProps: [Object, Function],
|
21621
|
+
collapseIcon: {
|
21622
|
+
type: IconValue,
|
21623
|
+
default: '$collapse'
|
21624
|
+
},
|
21625
|
+
expandIcon: {
|
21626
|
+
type: IconValue,
|
21627
|
+
default: '$expand'
|
21628
|
+
},
|
21597
21629
|
onClick: EventProp(),
|
21598
21630
|
onContextmenu: EventProp(),
|
21599
21631
|
onDblclick: EventProp(),
|
@@ -21674,8 +21706,11 @@
|
|
21674
21706
|
internalItem: slotProps.internalItem,
|
21675
21707
|
value: slotProps.value
|
21676
21708
|
}) : column.cellProps;
|
21709
|
+
const noPadding = column.key === 'data-table-select' || column.key === 'data-table-expand';
|
21710
|
+
const isEmpty = column.key === 'data-table-group' && column.width === 0 && !column.title;
|
21677
21711
|
return vue.createVNode(VDataTableColumn, vue.mergeProps({
|
21678
21712
|
"align": column.align,
|
21713
|
+
"indent": column.intent,
|
21679
21714
|
"class": {
|
21680
21715
|
'v-data-table__td--expanded-row': column.key === 'data-table-expand',
|
21681
21716
|
'v-data-table__td--select-row': column.key === 'data-table-select'
|
@@ -21686,7 +21721,8 @@
|
|
21686
21721
|
"lastFixed": column.lastFixed,
|
21687
21722
|
"firstFixedEnd": column.firstFixedEnd,
|
21688
21723
|
"maxWidth": !mobile.value ? column.maxWidth : undefined,
|
21689
|
-
"noPadding":
|
21724
|
+
"noPadding": noPadding,
|
21725
|
+
"empty": isEmpty,
|
21690
21726
|
"nowrap": column.nowrap,
|
21691
21727
|
"width": !mobile.value ? column.width : undefined
|
21692
21728
|
}, cellProps, columnCellProps), {
|
@@ -21709,13 +21745,13 @@
|
|
21709
21745
|
return slots['item.data-table-expand']?.({
|
21710
21746
|
...slotProps,
|
21711
21747
|
props: {
|
21712
|
-
icon: isExpanded(item) ?
|
21748
|
+
icon: isExpanded(item) ? props.collapseIcon : props.expandIcon,
|
21713
21749
|
size: 'small',
|
21714
21750
|
variant: 'text',
|
21715
21751
|
onClick: vue.withModifiers(() => toggleExpand(item), ['stop'])
|
21716
21752
|
}
|
21717
21753
|
}) ?? vue.createVNode(VBtn, {
|
21718
|
-
"icon": isExpanded(item) ?
|
21754
|
+
"icon": isExpanded(item) ? props.collapseIcon : props.expandIcon,
|
21719
21755
|
"size": "small",
|
21720
21756
|
"variant": "text",
|
21721
21757
|
"onClick": vue.withModifiers(() => toggleExpand(item), ['stop'])
|
@@ -21753,6 +21789,8 @@
|
|
21753
21789
|
},
|
21754
21790
|
rowProps: [Object, Function],
|
21755
21791
|
cellProps: [Object, Function],
|
21792
|
+
...pick(makeVDataTableRowProps(), ['collapseIcon', 'expandIcon']),
|
21793
|
+
...pick(makeVDataTableGroupHeaderRowProps(), ['groupCollapseIcon', 'groupExpandIcon']),
|
21756
21794
|
...makeDisplayProps()
|
21757
21795
|
}, 'VDataTableRows');
|
21758
21796
|
const VDataTableRows = genericComponent()({
|
@@ -21787,6 +21825,7 @@
|
|
21787
21825
|
mobile
|
21788
21826
|
} = useDisplay(props);
|
21789
21827
|
useRender(() => {
|
21828
|
+
const groupHeaderRowProps = pick(props, ['groupCollapseIcon', 'groupExpandIcon']);
|
21790
21829
|
if (props.loading && (!props.items.length || slots.loading)) {
|
21791
21830
|
return vue.createElementVNode("tr", {
|
21792
21831
|
"class": "v-data-table-rows-loading",
|
@@ -21819,7 +21858,7 @@
|
|
21819
21858
|
return slots['group-header'] ? slots['group-header'](slotProps) : vue.createVNode(VDataTableGroupHeaderRow, vue.mergeProps({
|
21820
21859
|
"key": `group-header_${item.id}`,
|
21821
21860
|
"item": item
|
21822
|
-
}, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps)), slots);
|
21861
|
+
}, getPrefixedEventHandlers(attrs, ':group-header', () => slotProps), groupHeaderRowProps), slots);
|
21823
21862
|
}
|
21824
21863
|
const slotProps = {
|
21825
21864
|
index,
|
@@ -21841,6 +21880,8 @@
|
|
21841
21880
|
index,
|
21842
21881
|
item,
|
21843
21882
|
cellProps: props.cellProps,
|
21883
|
+
collapseIcon: props.collapseIcon,
|
21884
|
+
expandIcon: props.expandIcon,
|
21844
21885
|
mobile: mobile.value
|
21845
21886
|
}, getPrefixedEventHandlers(attrs, ':row', () => slotProps), typeof props.rowProps === 'function' ? props.rowProps({
|
21846
21887
|
item: slotProps.item,
|
@@ -24498,6 +24539,10 @@
|
|
24498
24539
|
return typeof v === 'boolean' || [1000, 1024].includes(Number(v));
|
24499
24540
|
}
|
24500
24541
|
},
|
24542
|
+
truncateLength: {
|
24543
|
+
type: [Number, String],
|
24544
|
+
default: 22
|
24545
|
+
},
|
24501
24546
|
...makeVInputProps({
|
24502
24547
|
prependIcon: '$file'
|
24503
24548
|
}),
|
@@ -24555,7 +24600,8 @@
|
|
24555
24600
|
name = '',
|
24556
24601
|
size = 0
|
24557
24602
|
} = file;
|
24558
|
-
|
24603
|
+
const truncatedText = truncateText(name);
|
24604
|
+
return !props.showSize ? truncatedText : `${truncatedText} (${humanReadableFileSize(size, base.value)})`;
|
24559
24605
|
}));
|
24560
24606
|
const counterValue = vue.computed(() => {
|
24561
24607
|
const fileCount = model.value?.length ?? 0;
|
@@ -24595,6 +24641,11 @@
|
|
24595
24641
|
callEvent(props['onClick:clear'], e);
|
24596
24642
|
});
|
24597
24643
|
}
|
24644
|
+
function truncateText(str) {
|
24645
|
+
if (str.length < Number(props.truncateLength)) return str;
|
24646
|
+
const charsKeepOneSide = Math.floor((Number(props.truncateLength) - 1) / 2);
|
24647
|
+
return `${str.slice(0, charsKeepOneSide)}…${str.slice(str.length - charsKeepOneSide)}`;
|
24648
|
+
}
|
24598
24649
|
function onDragover(e) {
|
24599
24650
|
e.preventDefault();
|
24600
24651
|
e.stopImmediatePropagation();
|
@@ -27454,9 +27505,11 @@
|
|
27454
27505
|
}, 'VSkeletonLoader');
|
27455
27506
|
const VSkeletonLoader = genericComponent()({
|
27456
27507
|
name: 'VSkeletonLoader',
|
27508
|
+
inheritAttrs: false,
|
27457
27509
|
props: makeVSkeletonLoaderProps(),
|
27458
27510
|
setup(props, _ref) {
|
27459
27511
|
let {
|
27512
|
+
attrs,
|
27460
27513
|
slots
|
27461
27514
|
} = _ref;
|
27462
27515
|
const {
|
@@ -27483,12 +27536,12 @@
|
|
27483
27536
|
ariaLabel: t(props.loadingText),
|
27484
27537
|
role: 'alert'
|
27485
27538
|
};
|
27486
|
-
return vue.createElementVNode("div", vue.mergeProps({
|
27539
|
+
return vue.createElementVNode(vue.Fragment, null, [isLoading ? vue.createElementVNode("div", vue.mergeProps({
|
27487
27540
|
"class": ['v-skeleton-loader', {
|
27488
27541
|
'v-skeleton-loader--boilerplate': props.boilerplate
|
27489
27542
|
}, themeClasses.value, backgroundColorClasses.value, elevationClasses.value],
|
27490
|
-
"style": [backgroundColorStyles.value,
|
27491
|
-
}, loadingProps), [
|
27543
|
+
"style": [backgroundColorStyles.value, dimensionStyles.value]
|
27544
|
+
}, loadingProps, attrs), [items.value]) : slots.default?.()]);
|
27492
27545
|
});
|
27493
27546
|
return {};
|
27494
27547
|
}
|
@@ -35577,7 +35630,7 @@
|
|
35577
35630
|
};
|
35578
35631
|
});
|
35579
35632
|
}
|
35580
|
-
const version$1 = "3.9.3-dev.2025-
|
35633
|
+
const version$1 = "3.9.3-dev.2025-08-02";
|
35581
35634
|
createVuetify$1.version = version$1;
|
35582
35635
|
|
35583
35636
|
// Vue's inject() can only be used in setup
|
@@ -35875,7 +35928,7 @@
|
|
35875
35928
|
|
35876
35929
|
/* eslint-disable local-rules/sort-imports */
|
35877
35930
|
|
35878
|
-
const version = "3.9.3-dev.2025-
|
35931
|
+
const version = "3.9.3-dev.2025-08-02";
|
35879
35932
|
|
35880
35933
|
/* eslint-disable local-rules/sort-imports */
|
35881
35934
|
|