@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.cjs
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
|
*/
|
@@ -473,6 +473,10 @@
|
|
473
473
|
return child.type !== vue.Fragment || ensureValidVNode(child.children);
|
474
474
|
}) ? vnodes : null;
|
475
475
|
}
|
476
|
+
function renderSlot(slot, props, fallback) {
|
477
|
+
// TODO: check if slot returns elements: #18308
|
478
|
+
return slot?.(props) ?? fallback?.(props);
|
479
|
+
}
|
476
480
|
function defer(timeout, cb) {
|
477
481
|
if (!IN_BROWSER || timeout === 0) {
|
478
482
|
cb();
|
@@ -1618,6 +1622,40 @@
|
|
1618
1622
|
return ['scroll', 'auto'].includes(style.overflowY);
|
1619
1623
|
}
|
1620
1624
|
|
1625
|
+
// Types
|
1626
|
+
|
1627
|
+
function getIndentLines(_ref) {
|
1628
|
+
let {
|
1629
|
+
depth,
|
1630
|
+
isLast,
|
1631
|
+
isLastGroup,
|
1632
|
+
leafLinks,
|
1633
|
+
separateRoots,
|
1634
|
+
parentIndentLines,
|
1635
|
+
variant
|
1636
|
+
} = _ref;
|
1637
|
+
if (!parentIndentLines || !depth) {
|
1638
|
+
return {
|
1639
|
+
leaf: undefined,
|
1640
|
+
node: undefined,
|
1641
|
+
children: parentIndentLines
|
1642
|
+
};
|
1643
|
+
}
|
1644
|
+
if (variant === 'simple') {
|
1645
|
+
return {
|
1646
|
+
leaf: [...parentIndentLines, 'line'],
|
1647
|
+
node: [...parentIndentLines, 'line'],
|
1648
|
+
children: [...parentIndentLines, 'line']
|
1649
|
+
};
|
1650
|
+
}
|
1651
|
+
const isLastLeaf = isLast && (!isLastGroup || separateRoots || depth > 1);
|
1652
|
+
return {
|
1653
|
+
leaf: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf', ...(leafLinks ? ['leaf-link'] : [])],
|
1654
|
+
node: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf'],
|
1655
|
+
children: [...parentIndentLines, isLastLeaf ? 'none' : 'line']
|
1656
|
+
};
|
1657
|
+
}
|
1658
|
+
|
1621
1659
|
function isFixedPosition(el) {
|
1622
1660
|
while (el) {
|
1623
1661
|
if (window.getComputedStyle(el).position === 'fixed') {
|
@@ -9802,6 +9840,11 @@
|
|
9802
9840
|
const isLink = vue.toRef(() => props.link !== false && link.isLink.value);
|
9803
9841
|
const isSelectable = vue.computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
|
9804
9842
|
const isClickable = vue.computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
|
9843
|
+
const role = vue.computed(() => list ? isSelectable.value ? 'option' : 'listitem' : undefined);
|
9844
|
+
const ariaSelected = vue.computed(() => {
|
9845
|
+
if (!isSelectable.value) return undefined;
|
9846
|
+
return root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value;
|
9847
|
+
});
|
9805
9848
|
const roundedProps = vue.toRef(() => props.rounded || props.nav);
|
9806
9849
|
const color = vue.toRef(() => props.color ?? props.activeColor);
|
9807
9850
|
const variantProps = vue.toRef(() => ({
|
@@ -9905,7 +9948,8 @@
|
|
9905
9948
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
9906
9949
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
9907
9950
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
9908
|
-
"aria-selected":
|
9951
|
+
"aria-selected": ariaSelected.value,
|
9952
|
+
"role": role.value,
|
9909
9953
|
"onClick": onClick,
|
9910
9954
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
9911
9955
|
}, link.linkProps), {
|
@@ -10148,6 +10192,10 @@
|
|
10148
10192
|
type: [Boolean, String, Array, Function],
|
10149
10193
|
default: 'props'
|
10150
10194
|
},
|
10195
|
+
itemType: {
|
10196
|
+
type: [Boolean, String, Array, Function],
|
10197
|
+
default: 'type'
|
10198
|
+
},
|
10151
10199
|
returnObject: Boolean,
|
10152
10200
|
valueComparator: Function
|
10153
10201
|
}, 'list-items');
|
@@ -10155,6 +10203,7 @@
|
|
10155
10203
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
10156
10204
|
const value = getPropertyFromItem(item, props.itemValue, title);
|
10157
10205
|
const children = getPropertyFromItem(item, props.itemChildren);
|
10206
|
+
const type = getPropertyFromItem(item, props.itemType, 'item');
|
10158
10207
|
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);
|
10159
10208
|
const _props = {
|
10160
10209
|
title,
|
@@ -10162,15 +10211,16 @@
|
|
10162
10211
|
...itemProps
|
10163
10212
|
};
|
10164
10213
|
return {
|
10214
|
+
type,
|
10165
10215
|
title: String(_props.title ?? ''),
|
10166
10216
|
value: _props.value,
|
10167
10217
|
props: _props,
|
10168
|
-
children: Array.isArray(children) ? transformItems$3(props, children) : undefined,
|
10218
|
+
children: type === 'item' && Array.isArray(children) ? transformItems$3(props, children) : undefined,
|
10169
10219
|
raw: item
|
10170
10220
|
};
|
10171
10221
|
}
|
10172
10222
|
function transformItems$3(props, items) {
|
10173
|
-
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
10223
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'itemType', 'returnObject', 'valueComparator']);
|
10174
10224
|
const array = [];
|
10175
10225
|
for (const item of items) {
|
10176
10226
|
array.push(transformItem$3(_props, item));
|
@@ -10212,7 +10262,7 @@
|
|
10212
10262
|
const _returnObject = props.returnObject;
|
10213
10263
|
const hasValueComparator = !!props.valueComparator;
|
10214
10264
|
const valueComparator = props.valueComparator || deepEqual;
|
10215
|
-
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
10265
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'itemType', 'returnObject', 'valueComparator']);
|
10216
10266
|
const returnValue = [];
|
10217
10267
|
main: for (const v of value) {
|
10218
10268
|
// When the model value is null, return an InternalItem
|
@@ -10332,10 +10382,6 @@
|
|
10332
10382
|
...makeDensityProps(),
|
10333
10383
|
...makeDimensionProps(),
|
10334
10384
|
...makeElevationProps(),
|
10335
|
-
itemType: {
|
10336
|
-
type: String,
|
10337
|
-
default: 'type'
|
10338
|
-
},
|
10339
10385
|
...makeItemsProps(),
|
10340
10386
|
...makeRoundedProps(),
|
10341
10387
|
...makeTagProps(),
|
@@ -10395,6 +10441,7 @@
|
|
10395
10441
|
const activeColor = vue.toRef(() => props.activeColor);
|
10396
10442
|
const baseColor = vue.toRef(() => props.baseColor);
|
10397
10443
|
const color = vue.toRef(() => props.color);
|
10444
|
+
const isSelectable = vue.toRef(() => props.selectable || props.activatable);
|
10398
10445
|
createList({
|
10399
10446
|
filterable: props.filterable
|
10400
10447
|
});
|
@@ -10464,7 +10511,7 @@
|
|
10464
10511
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
|
10465
10512
|
"style": vue.normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
|
10466
10513
|
"tabindex": props.disabled ? -1 : 0,
|
10467
|
-
"role":
|
10514
|
+
"role": isSelectable.value ? 'listbox' : 'list',
|
10468
10515
|
"aria-activedescendant": undefined,
|
10469
10516
|
"onFocusin": onFocusin,
|
10470
10517
|
"onFocusout": onFocusout,
|
@@ -13529,6 +13576,7 @@
|
|
13529
13576
|
"onKeydown": onListKeydown,
|
13530
13577
|
"onFocusin": onFocusin,
|
13531
13578
|
"tabindex": "-1",
|
13579
|
+
"selectable": true,
|
13532
13580
|
"aria-live": "polite",
|
13533
13581
|
"aria-label": `${props.label}-list`,
|
13534
13582
|
"color": props.itemColor ?? props.color
|
@@ -13554,7 +13602,7 @@
|
|
13554
13602
|
key: item.value,
|
13555
13603
|
onClick: () => select(item, null)
|
13556
13604
|
});
|
13557
|
-
if (item.
|
13605
|
+
if (item.type === 'divider') {
|
13558
13606
|
return slots.divider?.({
|
13559
13607
|
props: item.raw,
|
13560
13608
|
index
|
@@ -13562,7 +13610,7 @@
|
|
13562
13610
|
"key": `divider-${index}`
|
13563
13611
|
}), null);
|
13564
13612
|
}
|
13565
|
-
if (item.
|
13613
|
+
if (item.type === 'subheader') {
|
13566
13614
|
return slots.subheader?.({
|
13567
13615
|
props: item.raw,
|
13568
13616
|
index
|
@@ -13730,7 +13778,7 @@
|
|
13730
13778
|
let match = -1;
|
13731
13779
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13732
13780
|
if (typeof item === 'object') {
|
13733
|
-
if (
|
13781
|
+
if (item.type === 'divider' || item.type === 'subheader') {
|
13734
13782
|
continue;
|
13735
13783
|
}
|
13736
13784
|
const filterKeys = keys || Object.keys(transformed);
|
@@ -14148,6 +14196,7 @@
|
|
14148
14196
|
"onFocusin": onFocusin,
|
14149
14197
|
"onFocusout": onFocusout,
|
14150
14198
|
"tabindex": "-1",
|
14199
|
+
"selectable": true,
|
14151
14200
|
"aria-live": "polite",
|
14152
14201
|
"color": props.itemColor ?? props.color
|
14153
14202
|
}, listEvents, props.listProps), {
|
@@ -14172,7 +14221,7 @@
|
|
14172
14221
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
14173
14222
|
onClick: () => select(item, null)
|
14174
14223
|
});
|
14175
|
-
if (item.
|
14224
|
+
if (item.type === 'divider') {
|
14176
14225
|
return slots.divider?.({
|
14177
14226
|
props: item.raw,
|
14178
14227
|
index
|
@@ -14180,7 +14229,7 @@
|
|
14180
14229
|
"key": `divider-${index}`
|
14181
14230
|
}), null);
|
14182
14231
|
}
|
14183
|
-
if (item.
|
14232
|
+
if (item.type === 'subheader') {
|
14184
14233
|
return slots.subheader?.({
|
14185
14234
|
props: item.raw,
|
14186
14235
|
index
|
@@ -19235,6 +19284,7 @@
|
|
19235
19284
|
"selected": selectedValues.value,
|
19236
19285
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
19237
19286
|
"onMousedown": e => e.preventDefault(),
|
19287
|
+
"selectable": true,
|
19238
19288
|
"onKeydown": onListKeydown,
|
19239
19289
|
"onFocusin": onFocusin,
|
19240
19290
|
"onFocusout": onFocusout,
|
@@ -19263,7 +19313,7 @@
|
|
19263
19313
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
19264
19314
|
onClick: () => select(item, null)
|
19265
19315
|
});
|
19266
|
-
if (item.
|
19316
|
+
if (item.type === 'divider') {
|
19267
19317
|
return slots.divider?.({
|
19268
19318
|
props: item.raw,
|
19269
19319
|
index
|
@@ -19271,7 +19321,7 @@
|
|
19271
19321
|
"key": `divider-${index}`
|
19272
19322
|
}), null);
|
19273
19323
|
}
|
19274
|
-
if (item.
|
19324
|
+
if (item.type === 'subheader') {
|
19275
19325
|
return slots.subheader?.({
|
19276
19326
|
props: item.raw,
|
19277
19327
|
index
|
@@ -23613,7 +23663,8 @@
|
|
23613
23663
|
}
|
23614
23664
|
function allowedMonths(month) {
|
23615
23665
|
if (typeof props.allowedDates === 'function') {
|
23616
|
-
const
|
23666
|
+
const monthTwoDigits = String(month + 1).padStart(2, '0');
|
23667
|
+
const startOfMonth = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
|
23617
23668
|
return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
|
23618
23669
|
}
|
23619
23670
|
if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
|
@@ -30409,6 +30460,8 @@
|
|
30409
30460
|
|
30410
30461
|
const makeVTreeviewItemProps = propsFactory({
|
30411
30462
|
loading: Boolean,
|
30463
|
+
hideActions: Boolean,
|
30464
|
+
indentLines: Array,
|
30412
30465
|
toggleIcon: IconValue,
|
30413
30466
|
...makeVListItemProps({
|
30414
30467
|
slim: true
|
@@ -30445,7 +30498,7 @@
|
|
30445
30498
|
}
|
30446
30499
|
useRender(() => {
|
30447
30500
|
const listItemProps = VListItem.filterProps(props);
|
30448
|
-
const hasPrepend = slots.prepend || props.toggleIcon;
|
30501
|
+
const hasPrepend = slots.prepend || props.toggleIcon || props.indentLines;
|
30449
30502
|
return vue.createVNode(VListItem, vue.mergeProps({
|
30450
30503
|
"ref": vListItemRef
|
30451
30504
|
}, listItemProps, {
|
@@ -30459,7 +30512,15 @@
|
|
30459
30512
|
}), {
|
30460
30513
|
...slots,
|
30461
30514
|
prepend: hasPrepend ? slotProps => {
|
30462
|
-
return vue.createElementVNode(vue.Fragment, null, [vue.
|
30515
|
+
return vue.createElementVNode(vue.Fragment, null, [props.indentLines && props.indentLines.length > 0 ? vue.createElementVNode("div", {
|
30516
|
+
"key": "indent-lines",
|
30517
|
+
"class": "v-treeview-indent-lines",
|
30518
|
+
"style": {
|
30519
|
+
'--v-indent-parts': props.indentLines.length
|
30520
|
+
}
|
30521
|
+
}, [props.indentLines.map(type => vue.createElementVNode("div", {
|
30522
|
+
"class": vue.normalizeClass(`v-treeview-indent-line v-treeview-indent-line--${type}`)
|
30523
|
+
}, null))]) : '', !props.hideActions && vue.createVNode(VListItemAction, {
|
30463
30524
|
"start": true
|
30464
30525
|
}, {
|
30465
30526
|
default: () => [props.toggleIcon ? vue.createVNode(VBtn, {
|
@@ -30511,10 +30572,15 @@
|
|
30511
30572
|
selectedColor: String,
|
30512
30573
|
selectStrategy: [String, Function, Object],
|
30513
30574
|
index: Number,
|
30575
|
+
isLastGroup: Boolean,
|
30576
|
+
separateRoots: Boolean,
|
30577
|
+
parentIndentLines: Array,
|
30578
|
+
indentLinesVariant: String,
|
30514
30579
|
path: {
|
30515
30580
|
type: Array,
|
30516
30581
|
default: () => []
|
30517
30582
|
},
|
30583
|
+
...pick(makeVTreeviewItemProps(), ['hideActions']),
|
30518
30584
|
...makeDensityProps()
|
30519
30585
|
}, 'VTreeviewChildren');
|
30520
30586
|
const VTreeviewChildren = genericComponent()({
|
@@ -30543,19 +30609,32 @@
|
|
30543
30609
|
select(isSelected);
|
30544
30610
|
}
|
30545
30611
|
}
|
30546
|
-
return () => slots.default?.() ?? props.items?.map((item, index) => {
|
30612
|
+
return () => slots.default?.() ?? props.items?.map((item, index, items) => {
|
30547
30613
|
const {
|
30548
30614
|
children,
|
30549
30615
|
props: itemProps
|
30550
30616
|
} = item;
|
30551
30617
|
const loading = isLoading.has(item.value);
|
30618
|
+
const nextItemHasChildren = !!items.at(index + 1)?.children;
|
30619
|
+
const depth = props.path?.length ?? 0;
|
30620
|
+
const isLast = items.length - 1 === index;
|
30552
30621
|
const treeItemProps = {
|
30553
30622
|
index,
|
30554
|
-
depth
|
30623
|
+
depth,
|
30555
30624
|
isFirst: index === 0,
|
30556
|
-
isLast
|
30557
|
-
path: [...props.path, index]
|
30625
|
+
isLast,
|
30626
|
+
path: [...props.path, index],
|
30627
|
+
hideAction: props.hideActions
|
30558
30628
|
};
|
30629
|
+
const indentLines = getIndentLines({
|
30630
|
+
depth,
|
30631
|
+
isLast,
|
30632
|
+
isLastGroup: props.isLastGroup,
|
30633
|
+
leafLinks: !props.hideActions,
|
30634
|
+
separateRoots: props.separateRoots,
|
30635
|
+
parentIndentLines: props.parentIndentLines,
|
30636
|
+
variant: props.indentLinesVariant
|
30637
|
+
});
|
30559
30638
|
const slotsWithItem = {
|
30560
30639
|
prepend: slotProps => vue.createElementVNode(vue.Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && vue.createElementVNode("div", null, [vue.createVNode(VCheckboxBtn, {
|
30561
30640
|
"key": item.value,
|
@@ -30621,21 +30700,40 @@
|
|
30621
30700
|
return vue.createVNode(VTreeviewItem, vue.mergeProps({
|
30622
30701
|
"ref": el => activatorItems.value[index] = el
|
30623
30702
|
}, listItemProps, {
|
30703
|
+
"hideActions": props.hideActions,
|
30704
|
+
"indentLines": indentLines.node,
|
30624
30705
|
"value": props.returnObject ? item.raw : itemProps.value,
|
30625
30706
|
"loading": loading
|
30626
30707
|
}), slotsWithItem);
|
30627
30708
|
},
|
30628
30709
|
default: () => vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
30629
30710
|
"items": children,
|
30711
|
+
"indentLinesVariant": props.indentLinesVariant,
|
30712
|
+
"parentIndentLines": indentLines.children,
|
30713
|
+
"isLastGroup": nextItemHasChildren,
|
30630
30714
|
"returnObject": props.returnObject
|
30631
30715
|
}), slots)
|
30632
|
-
}) : slots.item
|
30716
|
+
}) : renderSlot(slots.item, {
|
30633
30717
|
props: itemProps,
|
30634
30718
|
item: item.raw,
|
30635
30719
|
internalItem: item
|
30636
|
-
}
|
30637
|
-
|
30638
|
-
|
30720
|
+
}, () => {
|
30721
|
+
if (item.type === 'divider') {
|
30722
|
+
return renderSlot(slots.divider, {
|
30723
|
+
props: item.raw
|
30724
|
+
}, () => vue.createVNode(VDivider, item.props, null));
|
30725
|
+
}
|
30726
|
+
if (item.type === 'subheader') {
|
30727
|
+
return renderSlot(slots.subheader, {
|
30728
|
+
props: item.raw
|
30729
|
+
}, () => vue.createVNode(VListSubheader, item.props, null));
|
30730
|
+
}
|
30731
|
+
return vue.createVNode(VTreeviewItem, vue.mergeProps(itemProps, {
|
30732
|
+
"hideActions": props.hideActions,
|
30733
|
+
"indentLines": indentLines.leaf,
|
30734
|
+
"value": props.returnObject ? vue.toRaw(item.raw) : itemProps.value
|
30735
|
+
}), slotsWithItem);
|
30736
|
+
});
|
30639
30737
|
});
|
30640
30738
|
}
|
30641
30739
|
});
|
@@ -30651,16 +30749,17 @@
|
|
30651
30749
|
const makeVTreeviewProps = propsFactory({
|
30652
30750
|
fluid: Boolean,
|
30653
30751
|
openAll: Boolean,
|
30752
|
+
indentLines: [Boolean, String],
|
30654
30753
|
search: String,
|
30655
30754
|
...makeFilterProps({
|
30656
30755
|
filterKeys: ['title']
|
30657
30756
|
}),
|
30658
|
-
...omit(makeVTreeviewChildrenProps(), ['index', 'path']),
|
30757
|
+
...omit(makeVTreeviewChildrenProps(), ['index', 'path', 'indentLinesVariant', 'parentIndentLines', 'isLastGroup']),
|
30659
30758
|
...omit(makeVListProps({
|
30660
30759
|
collapseIcon: '$treeviewCollapse',
|
30661
30760
|
expandIcon: '$treeviewExpand',
|
30662
30761
|
slim: true
|
30663
|
-
}), ['
|
30762
|
+
}), ['nav', 'openStrategy']),
|
30664
30763
|
modelValue: Array
|
30665
30764
|
}, 'VTreeview');
|
30666
30765
|
const VTreeview = genericComponent()({
|
@@ -30757,6 +30856,7 @@
|
|
30757
30856
|
useRender(() => {
|
30758
30857
|
const listProps = VList.filterProps(props);
|
30759
30858
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
30859
|
+
const indentLinesVariant = typeof props.indentLines === 'boolean' ? 'default' : props.indentLines;
|
30760
30860
|
return vue.createVNode(VList, vue.mergeProps({
|
30761
30861
|
"ref": vListRef
|
30762
30862
|
}, listProps, {
|
@@ -30774,7 +30874,9 @@
|
|
30774
30874
|
default: () => [vue.createVNode(VTreeviewChildren, vue.mergeProps(treeviewChildrenProps, {
|
30775
30875
|
"density": props.density,
|
30776
30876
|
"returnObject": props.returnObject,
|
30777
|
-
"items": items.value
|
30877
|
+
"items": items.value,
|
30878
|
+
"parentIndentLines": props.indentLines ? [] : undefined,
|
30879
|
+
"indentLinesVariant": indentLinesVariant
|
30778
30880
|
}), slots)]
|
30779
30881
|
});
|
30780
30882
|
});
|
@@ -31294,7 +31396,7 @@
|
|
31294
31396
|
};
|
31295
31397
|
});
|
31296
31398
|
}
|
31297
|
-
const version$1 = "3.9.0-
|
31399
|
+
const version$1 = "3.9.0-dev.2025-07-15";
|
31298
31400
|
createVuetify$1.version = version$1;
|
31299
31401
|
|
31300
31402
|
// Vue's inject() can only be used in setup
|
@@ -31319,7 +31421,7 @@
|
|
31319
31421
|
...options
|
31320
31422
|
});
|
31321
31423
|
};
|
31322
|
-
const version = "3.9.0-
|
31424
|
+
const version = "3.9.0-dev.2025-07-15";
|
31323
31425
|
createVuetify.version = version;
|
31324
31426
|
|
31325
31427
|
exports.blueprints = index;
|