@vuetify/nightly 3.9.0-beta.1-dev.2025-07-05 → 3.9.0-dev.2025-07-15
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 +4 -113
- package/dist/json/attributes.json +3780 -3744
- package/dist/json/importMap-labs.json +16 -16
- package/dist/json/importMap.json +190 -190
- package/dist/json/tags.json +9 -0
- package/dist/json/web-types.json +6526 -6437
- package/dist/vuetify-labs.cjs +136 -34
- package/dist/vuetify-labs.css +4604 -4547
- package/dist/vuetify-labs.d.ts +280 -185
- package/dist/vuetify-labs.esm.js +136 -34
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +136 -34
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.cjs +135 -33
- package/dist/vuetify.cjs.map +1 -1
- package/dist/vuetify.css +3908 -3851
- package/dist/vuetify.d.ts +280 -185
- package/dist/vuetify.esm.js +135 -33
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +135 -33
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1089 -1085
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.d.ts +39 -14
- package/lib/components/VAutocomplete/VAutocomplete.js +3 -2
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.d.ts +39 -14
- package/lib/components/VCombobox/VCombobox.js +3 -2
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataIterator/composables/items.d.ts +2 -1
- package/lib/components/VDataIterator/composables/items.js.map +1 -1
- package/lib/components/VDataTable/types.d.ts +1 -1
- package/lib/components/VDataTable/types.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +2 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VList/VList.d.ts +24 -27
- package/lib/components/VList/VList.js +2 -5
- package/lib/components/VList/VList.js.map +1 -1
- package/lib/components/VList/VListItem.js +7 -1
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VSelect/VSelect.d.ts +58 -22
- package/lib/components/VSelect/VSelect.js +3 -2
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.d.ts +229 -167
- package/lib/components/VTreeview/VTreeview.js +7 -3
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewChildren.d.ts +81 -10
- package/lib/components/VTreeview/VTreeviewChildren.js +50 -11
- package/lib/components/VTreeview/VTreeviewChildren.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewItem.css +57 -0
- package/lib/components/VTreeview/VTreeviewItem.d.ts +119 -94
- package/lib/components/VTreeview/VTreeviewItem.js +13 -3
- package/lib/components/VTreeview/VTreeviewItem.js.map +1 -1
- package/lib/components/VTreeview/VTreeviewItem.sass +60 -0
- package/lib/components/VTreeview/_variables.scss +15 -0
- package/lib/composables/filter.d.ts +1 -0
- package/lib/composables/filter.js +1 -1
- package/lib/composables/filter.js.map +1 -1
- package/lib/composables/list-items.d.ts +14 -1
- package/lib/composables/list-items.js +9 -3
- package/lib/composables/list-items.js.map +1 -1
- package/lib/entry-bundler.js +1 -1
- package/lib/entry-bundler.js.map +1 -1
- package/lib/framework.d.ts +65 -64
- package/lib/framework.js +1 -1
- package/lib/framework.js.map +1 -1
- package/lib/labs/VCalendar/VCalendar.js +1 -1
- package/lib/labs/VCalendar/VCalendar.js.map +1 -1
- package/lib/util/helpers.d.ts +3 -0
- package/lib/util/helpers.js +4 -0
- package/lib/util/helpers.js.map +1 -1
- package/lib/util/indentLines.d.ts +17 -0
- package/lib/util/indentLines.js +34 -0
- package/lib/util/indentLines.js.map +1 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/package.json +1 -1
package/dist/vuetify-labs.js
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
|
-
* Vuetify v3.9.0-
|
2
|
+
* Vuetify v3.9.0-dev.2025-07-15
|
3
3
|
* Forged by John Leider
|
4
4
|
* Released under the MIT License.
|
5
5
|
*/
|
@@ -550,6 +550,10 @@
|
|
550
550
|
return child.type !== vue.Fragment || ensureValidVNode(child.children);
|
551
551
|
}) ? vnodes : null;
|
552
552
|
}
|
553
|
+
function renderSlot(slot, props, fallback) {
|
554
|
+
// TODO: check if slot returns elements: #18308
|
555
|
+
return slot?.(props) ?? fallback?.(props);
|
556
|
+
}
|
553
557
|
function defer(timeout, cb) {
|
554
558
|
if (!IN_BROWSER || timeout === 0) {
|
555
559
|
cb();
|
@@ -1624,6 +1628,40 @@
|
|
1624
1628
|
return ['scroll', 'auto'].includes(style.overflowY);
|
1625
1629
|
}
|
1626
1630
|
|
1631
|
+
// Types
|
1632
|
+
|
1633
|
+
function getIndentLines(_ref) {
|
1634
|
+
let {
|
1635
|
+
depth,
|
1636
|
+
isLast,
|
1637
|
+
isLastGroup,
|
1638
|
+
leafLinks,
|
1639
|
+
separateRoots,
|
1640
|
+
parentIndentLines,
|
1641
|
+
variant
|
1642
|
+
} = _ref;
|
1643
|
+
if (!parentIndentLines || !depth) {
|
1644
|
+
return {
|
1645
|
+
leaf: undefined,
|
1646
|
+
node: undefined,
|
1647
|
+
children: parentIndentLines
|
1648
|
+
};
|
1649
|
+
}
|
1650
|
+
if (variant === 'simple') {
|
1651
|
+
return {
|
1652
|
+
leaf: [...parentIndentLines, 'line'],
|
1653
|
+
node: [...parentIndentLines, 'line'],
|
1654
|
+
children: [...parentIndentLines, 'line']
|
1655
|
+
};
|
1656
|
+
}
|
1657
|
+
const isLastLeaf = isLast && (!isLastGroup || separateRoots || depth > 1);
|
1658
|
+
return {
|
1659
|
+
leaf: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf', ...(leafLinks ? ['leaf-link'] : [])],
|
1660
|
+
node: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf'],
|
1661
|
+
children: [...parentIndentLines, isLastLeaf ? 'none' : 'line']
|
1662
|
+
};
|
1663
|
+
}
|
1664
|
+
|
1627
1665
|
function isFixedPosition(el) {
|
1628
1666
|
while (el) {
|
1629
1667
|
if (window.getComputedStyle(el).position === 'fixed') {
|
@@ -9524,6 +9562,11 @@
|
|
9524
9562
|
const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
|
9525
9563
|
const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
|
9526
9564
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
|
9565
|
+
const role = vue.computed(() => list ? isSelectable.value ? 'option' : 'listitem' : undefined);
|
9566
|
+
const ariaSelected = vue.computed(() => {
|
9567
|
+
if (!isSelectable.value) return undefined;
|
9568
|
+
return root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value;
|
9569
|
+
});
|
9527
9570
|
const roundedProps = vue.toRef(() => props.rounded || props.nav);
|
9528
9571
|
const color = vue.toRef(() => props.color ?? props.activeColor);
|
9529
9572
|
const variantProps = vue.toRef(() => ({
|
@@ -9627,7 +9670,8 @@
|
|
9627
9670
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
9628
9671
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
9629
9672
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
9630
|
-
"aria-selected":
|
9673
|
+
"aria-selected": ariaSelected.value,
|
9674
|
+
"role": role.value,
|
9631
9675
|
"onClick": onClick,
|
9632
9676
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
9633
9677
|
}, link.linkProps), {
|
@@ -9870,6 +9914,10 @@
|
|
9870
9914
|
type: [Boolean, String, Array, Function],
|
9871
9915
|
default: 'props'
|
9872
9916
|
},
|
9917
|
+
itemType: {
|
9918
|
+
type: [Boolean, String, Array, Function],
|
9919
|
+
default: 'type'
|
9920
|
+
},
|
9873
9921
|
returnObject: Boolean,
|
9874
9922
|
valueComparator: Function
|
9875
9923
|
}, 'list-items');
|
@@ -9877,6 +9925,7 @@
|
|
9877
9925
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
9878
9926
|
const value = getPropertyFromItem(item, props.itemValue, title);
|
9879
9927
|
const children = getPropertyFromItem(item, props.itemChildren);
|
9928
|
+
const type = getPropertyFromItem(item, props.itemType, 'item');
|
9880
9929
|
const itemProps = props.itemProps === true ? typeof item === 'object' && item != null && !Array.isArray(item) ? 'children' in item ? omit(item, ['children']) : item : undefined : getPropertyFromItem(item, props.itemProps);
|
9881
9930
|
const _props = {
|
9882
9931
|
title,
|
@@ -9884,15 +9933,16 @@
|
|
9884
9933
|
...itemProps
|
9885
9934
|
};
|
9886
9935
|
return {
|
9936
|
+
type,
|
9887
9937
|
title: String(_props.title ?? ''),
|
9888
9938
|
value: _props.value,
|
9889
9939
|
props: _props,
|
9890
|
-
children: Array.isArray(children) ? transformItems$3(props, children) : undefined,
|
9940
|
+
children: type === 'item' && Array.isArray(children) ? transformItems$3(props, children) : undefined,
|
9891
9941
|
raw: item
|
9892
9942
|
};
|
9893
9943
|
}
|
9894
9944
|
function transformItems$3(props, items) {
|
9895
|
-
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
9945
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'itemType', 'returnObject', 'valueComparator']);
|
9896
9946
|
const array = [];
|
9897
9947
|
for (const item of items) {
|
9898
9948
|
array.push(transformItem$3(_props, item));
|
@@ -9934,7 +9984,7 @@
|
|
9934
9984
|
const _returnObject = props.returnObject;
|
9935
9985
|
const hasValueComparator = !!props.valueComparator;
|
9936
9986
|
const valueComparator = props.valueComparator || deepEqual;
|
9937
|
-
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
9987
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'itemType', 'returnObject', 'valueComparator']);
|
9938
9988
|
const returnValue = [];
|
9939
9989
|
main: for (const v of value) {
|
9940
9990
|
// When the model value is null, return an InternalItem
|
@@ -10054,10 +10104,6 @@
|
|
10054
10104
|
...makeDensityProps(),
|
10055
10105
|
...makeDimensionProps(),
|
10056
10106
|
...makeElevationProps(),
|
10057
|
-
itemType: {
|
10058
|
-
type: String,
|
10059
|
-
default: 'type'
|
10060
|
-
},
|
10061
10107
|
...makeItemsProps(),
|
10062
10108
|
...makeRoundedProps(),
|
10063
10109
|
...makeTagProps(),
|
@@ -10117,6 +10163,7 @@
|
|
10117
10163
|
const activeColor = vue.toRef(() => props.activeColor);
|
10118
10164
|
const baseColor = vue.toRef(() => props.baseColor);
|
10119
10165
|
const color = vue.toRef(() => props.color);
|
10166
|
+
const isSelectable = vue.toRef(() => props.selectable || props.activatable);
|
10120
10167
|
createList({
|
10121
10168
|
filterable: props.filterable
|
10122
10169
|
});
|
@@ -10186,7 +10233,7 @@
|
|
10186
10233
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
|
10187
10234
|
"style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
|
10188
10235
|
"tabindex": props.disabled ? -1 : 0,
|
10189
|
-
"role":
|
10236
|
+
"role": isSelectable.value ? 'listbox' : 'list',
|
10190
10237
|
"aria-activedescendant": undefined,
|
10191
10238
|
"onFocusin": onFocusin,
|
10192
10239
|
"onFocusout": onFocusout,
|
@@ -13251,6 +13298,7 @@
|
|
13251
13298
|
"onKeydown": onListKeydown,
|
13252
13299
|
"onFocusin": onFocusin,
|
13253
13300
|
"tabindex": "-1",
|
13301
|
+
"selectable": true,
|
13254
13302
|
"aria-live": "polite",
|
13255
13303
|
"aria-label": `${props.label}-list`,
|
13256
13304
|
"color": props.itemColor ?? props.color
|
@@ -13276,7 +13324,7 @@
|
|
13276
13324
|
key: item.value,
|
13277
13325
|
onClick: () => select(item, null)
|
13278
13326
|
});
|
13279
|
-
if (item.
|
13327
|
+
if (item.type === 'divider') {
|
13280
13328
|
return slots.divider?.({
|
13281
13329
|
props: item.raw,
|
13282
13330
|
index
|
@@ -13284,7 +13332,7 @@
|
|
13284
13332
|
"key": `divider-${index}`
|
13285
13333
|
}), null);
|
13286
13334
|
}
|
13287
|
-
if (item.
|
13335
|
+
if (item.type === 'subheader') {
|
13288
13336
|
return slots.subheader?.({
|
13289
13337
|
props: item.raw,
|
13290
13338
|
index
|
@@ -13452,7 +13500,7 @@
|
|
13452
13500
|
let match = -1;
|
13453
13501
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13454
13502
|
if (typeof item === 'object') {
|
13455
|
-
if (
|
13503
|
+
if (item.type === 'divider' || item.type === 'subheader') {
|
13456
13504
|
continue;
|
13457
13505
|
}
|
13458
13506
|
const filterKeys = keys || Object.keys(transformed);
|
@@ -13870,6 +13918,7 @@
|
|
13870
13918
|
"onFocusin": onFocusin,
|
13871
13919
|
"onFocusout": onFocusout,
|
13872
13920
|
"tabindex": "-1",
|
13921
|
+
"selectable": true,
|
13873
13922
|
"aria-live": "polite",
|
13874
13923
|
"color": props.itemColor ?? props.color
|
13875
13924
|
}, listEvents, props.listProps), {
|
@@ -13894,7 +13943,7 @@
|
|
13894
13943
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
13895
13944
|
onClick: () => select(item, null)
|
13896
13945
|
});
|
13897
|
-
if (item.
|
13946
|
+
if (item.type === 'divider') {
|
13898
13947
|
return slots.divider?.({
|
13899
13948
|
props: item.raw,
|
13900
13949
|
index
|
@@ -13902,7 +13951,7 @@
|
|
13902
13951
|
"key": `divider-${index}`
|
13903
13952
|
}), null);
|
13904
13953
|
}
|
13905
|
-
if (item.
|
13954
|
+
if (item.type === 'subheader') {
|
13906
13955
|
return slots.subheader?.({
|
13907
13956
|
props: item.raw,
|
13908
13957
|
index
|
@@ -18957,6 +19006,7 @@
|
|
18957
19006
|
"selected": selectedValues.value,
|
18958
19007
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
18959
19008
|
"onMousedown": e => e.preventDefault(),
|
19009
|
+
"selectable": true,
|
18960
19010
|
"onKeydown": onListKeydown,
|
18961
19011
|
"onFocusin": onFocusin,
|
18962
19012
|
"onFocusout": onFocusout,
|
@@ -18985,7 +19035,7 @@
|
|
18985
19035
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
18986
19036
|
onClick: () => select(item, null)
|
18987
19037
|
});
|
18988
|
-
if (item.
|
19038
|
+
if (item.type === 'divider') {
|
18989
19039
|
return slots.divider?.({
|
18990
19040
|
props: item.raw,
|
18991
19041
|
index
|
@@ -18993,7 +19043,7 @@
|
|
18993
19043
|
"key": `divider-${index}`
|
18994
19044
|
}), null);
|
18995
19045
|
}
|
18996
|
-
if (item.
|
19046
|
+
if (item.type === 'subheader') {
|
18997
19047
|
return slots.subheader?.({
|
18998
19048
|
props: item.raw,
|
18999
19049
|
index
|
@@ -23335,7 +23385,8 @@
|
|
23335
23385
|
}
|
23336
23386
|
function allowedMonths(month) {
|
23337
23387
|
if (typeof props.allowedDates === 'function') {
|
23338
|
-
const
|
23388
|
+
const monthTwoDigits = String(month + 1).padStart(2, '0');
|
23389
|
+
const startOfMonth = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
|
23339
23390
|
return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
|
23340
23391
|
}
|
23341
23392
|
if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
|
@@ -30131,6 +30182,8 @@
|
|
30131
30182
|
|
30132
30183
|
const makeVTreeviewItemProps = propsFactory({
|
30133
30184
|
loading: Boolean,
|
30185
|
+
hideActions: Boolean,
|
30186
|
+
indentLines: Array,
|
30134
30187
|
toggleIcon: IconValue,
|
30135
30188
|
...makeVListItemProps({
|
30136
30189
|
slim: true
|
@@ -30167,7 +30220,7 @@
|
|
30167
30220
|
}
|
30168
30221
|
useRender(() => {
|
30169
30222
|
const listItemProps = VListItem.filterProps(props);
|
30170
|
-
const hasPrepend = slots.prepend || props.toggleIcon;
|
30223
|
+
const hasPrepend = slots.prepend || props.toggleIcon || props.indentLines;
|
30171
30224
|
return vue.createVNode(VListItem, vue.mergeProps({
|
30172
30225
|
"ref": vListItemRef
|
30173
30226
|
}, listItemProps, {
|
@@ -30181,7 +30234,15 @@
|
|
30181
30234
|
}), {
|
30182
30235
|
...slots,
|
30183
30236
|
prepend: hasPrepend ? slotProps => {
|
30184
|
-
return vue.createElementVNode(vue.Fragment, null, [vue.
|
30237
|
+
return vue.createElementVNode(vue.Fragment, null, [props.indentLines && props.indentLines.length > 0 ? vue.createElementVNode("div", {
|
30238
|
+
"key": "indent-lines",
|
30239
|
+
"class": "v-treeview-indent-lines",
|
30240
|
+
"style": {
|
30241
|
+
'--v-indent-parts': props.indentLines.length
|
30242
|
+
}
|
30243
|
+
}, [props.indentLines.map(type => vue.createElementVNode("div", {
|
30244
|
+
"class": vue.normalizeClass(`v-treeview-indent-line v-treeview-indent-line--${type}`)
|
30245
|
+
}, null))]) : '', !props.hideActions && vue.createVNode(VListItemAction, {
|
30185
30246
|
"start": true
|
30186
30247
|
}, {
|
30187
30248
|
default: () => [props.toggleIcon ? vue.createVNode(VBtn, {
|
@@ -30233,10 +30294,15 @@
|
|
30233
30294
|
selectedColor: String,
|
30234
30295
|
selectStrategy: [String, Function, Object],
|
30235
30296
|
index: Number,
|
30297
|
+
isLastGroup: Boolean,
|
30298
|
+
separateRoots: Boolean,
|
30299
|
+
parentIndentLines: Array,
|
30300
|
+
indentLinesVariant: String,
|
30236
30301
|
path: {
|
30237
30302
|
type: Array,
|
30238
30303
|
default: () => []
|
30239
30304
|
},
|
30305
|
+
...pick(makeVTreeviewItemProps(), ['hideActions']),
|
30240
30306
|
...makeDensityProps()
|
30241
30307
|
}, 'VTreeviewChildren');
|
30242
30308
|
const VTreeviewChildren = genericComponent()({
|
@@ -30265,19 +30331,32 @@
|
|
30265
30331
|
select(isSelected);
|
30266
30332
|
}
|
30267
30333
|
}
|
30268
|
-
return () => slots.default?.() ?? props.items?.map((item, index) => {
|
30334
|
+
return () => slots.default?.() ?? props.items?.map((item, index, items) => {
|
30269
30335
|
const {
|
30270
30336
|
children,
|
30271
30337
|
props: itemProps
|
30272
30338
|
} = item;
|
30273
30339
|
const loading = isLoading.has(item.value);
|
30340
|
+
const nextItemHasChildren = !!items.at(index + 1)?.children;
|
30341
|
+
const depth = props.path?.length ?? 0;
|
30342
|
+
const isLast = items.length - 1 === index;
|
30274
30343
|
const treeItemProps = {
|
30275
30344
|
index,
|
30276
|
-
depth
|
30345
|
+
depth,
|
30277
30346
|
isFirst: index === 0,
|
30278
|
-
isLast
|
30279
|
-
path: [...props.path, index]
|
30347
|
+
isLast,
|
30348
|
+
path: [...props.path, index],
|
30349
|
+
hideAction: props.hideActions
|
30280
30350
|
};
|
30351
|
+
const indentLines = getIndentLines({
|
30352
|
+
depth,
|
30353
|
+
isLast,
|
30354
|
+
isLastGroup: props.isLastGroup,
|
30355
|
+
leafLinks: !props.hideActions,
|
30356
|
+
separateRoots: props.separateRoots,
|
30357
|
+
parentIndentLines: props.parentIndentLines,
|
30358
|
+
variant: props.indentLinesVariant
|
30359
|
+
});
|
30281
30360
|
const slotsWithItem = {
|
30282
30361
|
prepend: slotProps => vue.createElementVNode(vue.Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && vue.createElementVNode("div", null, [vue.createVNode(VCheckboxBtn, {
|
30283
30362
|
"key": item.value,
|
@@ -30343,21 +30422,40 @@
|
|
30343
30422
|
return vue.createVNode(VTreeviewItem, vue.mergeProps({
|
30344
30423
|
"ref": el => activatorItems.value[index] = el
|
30345
30424
|
}, listItemProps, {
|
30425
|
+
"hideActions": props.hideActions,
|
30426
|
+
"indentLines": indentLines.node,
|
30346
30427
|
"value": props.returnObject ? item.raw : itemProps.value,
|
30347
30428
|
"loading": loading
|
30348
30429
|
}), slotsWithItem);
|
30349
30430
|
},
|
30350
30431
|
default: () => vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
30351
30432
|
"items": children,
|
30433
|
+
"indentLinesVariant": props.indentLinesVariant,
|
30434
|
+
"parentIndentLines": indentLines.children,
|
30435
|
+
"isLastGroup": nextItemHasChildren,
|
30352
30436
|
"returnObject": props.returnObject
|
30353
30437
|
}), slots)
|
30354
|
-
}) : slots.item
|
30438
|
+
}) : renderSlot(slots.item, {
|
30355
30439
|
props: itemProps,
|
30356
30440
|
item: item.raw,
|
30357
30441
|
internalItem: item
|
30358
|
-
}
|
30359
|
-
|
30360
|
-
|
30442
|
+
}, () => {
|
30443
|
+
if (item.type === 'divider') {
|
30444
|
+
return renderSlot(slots.divider, {
|
30445
|
+
props: item.raw
|
30446
|
+
}, () => vue.createVNode(VDivider, item.props, null));
|
30447
|
+
}
|
30448
|
+
if (item.type === 'subheader') {
|
30449
|
+
return renderSlot(slots.subheader, {
|
30450
|
+
props: item.raw
|
30451
|
+
}, () => vue.createVNode(VListSubheader, item.props, null));
|
30452
|
+
}
|
30453
|
+
return vue.createVNode(VTreeviewItem, vue.mergeProps(itemProps, {
|
30454
|
+
"hideActions": props.hideActions,
|
30455
|
+
"indentLines": indentLines.leaf,
|
30456
|
+
"value": props.returnObject ? vue.toRaw(item.raw) : itemProps.value
|
30457
|
+
}), slotsWithItem);
|
30458
|
+
});
|
30361
30459
|
});
|
30362
30460
|
}
|
30363
30461
|
});
|
@@ -30373,16 +30471,17 @@
|
|
30373
30471
|
const makeVTreeviewProps = propsFactory({
|
30374
30472
|
fluid: Boolean,
|
30375
30473
|
openAll: Boolean,
|
30474
|
+
indentLines: [Boolean, String],
|
30376
30475
|
search: String,
|
30377
30476
|
...makeFilterProps({
|
30378
30477
|
filterKeys: ['title']
|
30379
30478
|
}),
|
30380
|
-
...omit(makeVTreeviewChildrenProps(), ['index', 'path']),
|
30479
|
+
...omit(makeVTreeviewChildrenProps(), ['index', 'path', 'indentLinesVariant', 'parentIndentLines', 'isLastGroup']),
|
30381
30480
|
...omit(makeVListProps({
|
30382
30481
|
collapseIcon: '$treeviewCollapse',
|
30383
30482
|
expandIcon: '$treeviewExpand',
|
30384
30483
|
slim: true
|
30385
|
-
}), ['
|
30484
|
+
}), ['nav', 'openStrategy']),
|
30386
30485
|
modelValue: Array
|
30387
30486
|
}, 'VTreeview');
|
30388
30487
|
const VTreeview = genericComponent()({
|
@@ -30479,6 +30578,7 @@
|
|
30479
30578
|
useRender(() => {
|
30480
30579
|
const listProps = VList.filterProps(props);
|
30481
30580
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
30581
|
+
const indentLinesVariant = typeof props.indentLines === 'boolean' ? 'default' : props.indentLines;
|
30482
30582
|
return vue.createVNode(VList, vue.mergeProps({
|
30483
30583
|
"ref": vListRef
|
30484
30584
|
}, listProps, {
|
@@ -30496,7 +30596,9 @@
|
|
30496
30596
|
default: () => [vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
30497
30597
|
"density": props.density,
|
30498
30598
|
"returnObject": props.returnObject,
|
30499
|
-
"items": items.value
|
30599
|
+
"items": items.value,
|
30600
|
+
"parentIndentLines": props.indentLines ? [] : undefined,
|
30601
|
+
"indentLinesVariant": indentLinesVariant
|
30500
30602
|
}), slots)]
|
30501
30603
|
});
|
30502
30604
|
});
|
@@ -31089,7 +31191,7 @@
|
|
31089
31191
|
weekNumber: weekNumbers.value[wi],
|
31090
31192
|
week
|
31091
31193
|
}))), [weekNumbers.value[wi]]) : '', week.map(day => vue.createVNode(VCalendarMonthDay, vue.mergeProps({
|
31092
|
-
"key": day.date.getTime()
|
31194
|
+
"key": adapter.toJsDate(day.date).getTime()
|
31093
31195
|
}, calendarDayProps, {
|
31094
31196
|
"day": day,
|
31095
31197
|
"title": adapter.format(day.date, 'dayOfMonth'),
|
@@ -33584,7 +33686,7 @@
|
|
33584
33686
|
};
|
33585
33687
|
});
|
33586
33688
|
}
|
33587
|
-
const version$1 = "3.9.0-
|
33689
|
+
const version$1 = "3.9.0-dev.2025-07-15";
|
33588
33690
|
createVuetify$1.version = version$1;
|
33589
33691
|
|
33590
33692
|
// Vue's inject() can only be used in setup
|
@@ -33882,7 +33984,7 @@
|
|
33882
33984
|
|
33883
33985
|
/* eslint-disable local-rules/sort-imports */
|
33884
33986
|
|
33885
|
-
const version = "3.9.0-
|
33987
|
+
const version = "3.9.0-dev.2025-07-15";
|
33886
33988
|
|
33887
33989
|
/* eslint-disable local-rules/sort-imports */
|
33888
33990
|
|