@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.esm.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
|
*/
|
@@ -469,6 +469,10 @@ function ensureValidVNode(vnodes) {
|
|
469
469
|
return child.type !== Fragment || ensureValidVNode(child.children);
|
470
470
|
}) ? vnodes : null;
|
471
471
|
}
|
472
|
+
function renderSlot(slot, props, fallback) {
|
473
|
+
// TODO: check if slot returns elements: #18308
|
474
|
+
return slot?.(props) ?? fallback?.(props);
|
475
|
+
}
|
472
476
|
function defer(timeout, cb) {
|
473
477
|
if (!IN_BROWSER || timeout === 0) {
|
474
478
|
cb();
|
@@ -1614,6 +1618,40 @@ function isPotentiallyScrollable(el) {
|
|
1614
1618
|
return ['scroll', 'auto'].includes(style.overflowY);
|
1615
1619
|
}
|
1616
1620
|
|
1621
|
+
// Types
|
1622
|
+
|
1623
|
+
function getIndentLines(_ref) {
|
1624
|
+
let {
|
1625
|
+
depth,
|
1626
|
+
isLast,
|
1627
|
+
isLastGroup,
|
1628
|
+
leafLinks,
|
1629
|
+
separateRoots,
|
1630
|
+
parentIndentLines,
|
1631
|
+
variant
|
1632
|
+
} = _ref;
|
1633
|
+
if (!parentIndentLines || !depth) {
|
1634
|
+
return {
|
1635
|
+
leaf: undefined,
|
1636
|
+
node: undefined,
|
1637
|
+
children: parentIndentLines
|
1638
|
+
};
|
1639
|
+
}
|
1640
|
+
if (variant === 'simple') {
|
1641
|
+
return {
|
1642
|
+
leaf: [...parentIndentLines, 'line'],
|
1643
|
+
node: [...parentIndentLines, 'line'],
|
1644
|
+
children: [...parentIndentLines, 'line']
|
1645
|
+
};
|
1646
|
+
}
|
1647
|
+
const isLastLeaf = isLast && (!isLastGroup || separateRoots || depth > 1);
|
1648
|
+
return {
|
1649
|
+
leaf: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf', ...(leafLinks ? ['leaf-link'] : [])],
|
1650
|
+
node: [...parentIndentLines, isLastLeaf ? 'last-leaf' : 'leaf'],
|
1651
|
+
children: [...parentIndentLines, isLastLeaf ? 'none' : 'line']
|
1652
|
+
};
|
1653
|
+
}
|
1654
|
+
|
1617
1655
|
function isFixedPosition(el) {
|
1618
1656
|
while (el) {
|
1619
1657
|
if (window.getComputedStyle(el).position === 'fixed') {
|
@@ -9798,6 +9836,11 @@ const VListItem = genericComponent()({
|
|
9798
9836
|
const isLink = toRef(() => props.link !== false && link.isLink.value);
|
9799
9837
|
const isSelectable = computed(() => !!list && (root.selectable.value || root.activatable.value || props.value != null));
|
9800
9838
|
const isClickable = computed(() => !props.disabled && props.link !== false && (props.link || link.isClickable.value || isSelectable.value));
|
9839
|
+
const role = computed(() => list ? isSelectable.value ? 'option' : 'listitem' : undefined);
|
9840
|
+
const ariaSelected = computed(() => {
|
9841
|
+
if (!isSelectable.value) return undefined;
|
9842
|
+
return root.activatable.value ? isActivated.value : root.selectable.value ? isSelected.value : isActive.value;
|
9843
|
+
});
|
9801
9844
|
const roundedProps = toRef(() => props.rounded || props.nav);
|
9802
9845
|
const color = toRef(() => props.color ?? props.activeColor);
|
9803
9846
|
const variantProps = toRef(() => ({
|
@@ -9901,7 +9944,8 @@ const VListItem = genericComponent()({
|
|
9901
9944
|
}, themeClasses.value, borderClasses.value, colorClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, variantClasses.value, props.class],
|
9902
9945
|
"style": [colorStyles.value, dimensionStyles.value, props.style],
|
9903
9946
|
"tabindex": isClickable.value ? list ? -2 : 0 : undefined,
|
9904
|
-
"aria-selected":
|
9947
|
+
"aria-selected": ariaSelected.value,
|
9948
|
+
"role": role.value,
|
9905
9949
|
"onClick": onClick,
|
9906
9950
|
"onKeydown": isClickable.value && !isLink.value && onKeyDown
|
9907
9951
|
}, link.linkProps), {
|
@@ -10144,6 +10188,10 @@ const makeItemsProps = propsFactory({
|
|
10144
10188
|
type: [Boolean, String, Array, Function],
|
10145
10189
|
default: 'props'
|
10146
10190
|
},
|
10191
|
+
itemType: {
|
10192
|
+
type: [Boolean, String, Array, Function],
|
10193
|
+
default: 'type'
|
10194
|
+
},
|
10147
10195
|
returnObject: Boolean,
|
10148
10196
|
valueComparator: Function
|
10149
10197
|
}, 'list-items');
|
@@ -10151,6 +10199,7 @@ function transformItem$3(props, item) {
|
|
10151
10199
|
const title = getPropertyFromItem(item, props.itemTitle, item);
|
10152
10200
|
const value = getPropertyFromItem(item, props.itemValue, title);
|
10153
10201
|
const children = getPropertyFromItem(item, props.itemChildren);
|
10202
|
+
const type = getPropertyFromItem(item, props.itemType, 'item');
|
10154
10203
|
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);
|
10155
10204
|
const _props = {
|
10156
10205
|
title,
|
@@ -10158,15 +10207,16 @@ function transformItem$3(props, item) {
|
|
10158
10207
|
...itemProps
|
10159
10208
|
};
|
10160
10209
|
return {
|
10210
|
+
type,
|
10161
10211
|
title: String(_props.title ?? ''),
|
10162
10212
|
value: _props.value,
|
10163
10213
|
props: _props,
|
10164
|
-
children: Array.isArray(children) ? transformItems$3(props, children) : undefined,
|
10214
|
+
children: type === 'item' && Array.isArray(children) ? transformItems$3(props, children) : undefined,
|
10165
10215
|
raw: item
|
10166
10216
|
};
|
10167
10217
|
}
|
10168
10218
|
function transformItems$3(props, items) {
|
10169
|
-
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
10219
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'itemType', 'returnObject', 'valueComparator']);
|
10170
10220
|
const array = [];
|
10171
10221
|
for (const item of items) {
|
10172
10222
|
array.push(transformItem$3(_props, item));
|
@@ -10208,7 +10258,7 @@ function useItems(props) {
|
|
10208
10258
|
const _returnObject = props.returnObject;
|
10209
10259
|
const hasValueComparator = !!props.valueComparator;
|
10210
10260
|
const valueComparator = props.valueComparator || deepEqual;
|
10211
|
-
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'returnObject', 'valueComparator']);
|
10261
|
+
const _props = pick(props, ['itemTitle', 'itemValue', 'itemChildren', 'itemProps', 'itemType', 'returnObject', 'valueComparator']);
|
10212
10262
|
const returnValue = [];
|
10213
10263
|
main: for (const v of value) {
|
10214
10264
|
// When the model value is null, return an InternalItem
|
@@ -10328,10 +10378,6 @@ const makeVListProps = propsFactory({
|
|
10328
10378
|
...makeDensityProps(),
|
10329
10379
|
...makeDimensionProps(),
|
10330
10380
|
...makeElevationProps(),
|
10331
|
-
itemType: {
|
10332
|
-
type: String,
|
10333
|
-
default: 'type'
|
10334
|
-
},
|
10335
10381
|
...makeItemsProps(),
|
10336
10382
|
...makeRoundedProps(),
|
10337
10383
|
...makeTagProps(),
|
@@ -10391,6 +10437,7 @@ const VList = genericComponent()({
|
|
10391
10437
|
const activeColor = toRef(() => props.activeColor);
|
10392
10438
|
const baseColor = toRef(() => props.baseColor);
|
10393
10439
|
const color = toRef(() => props.color);
|
10440
|
+
const isSelectable = toRef(() => props.selectable || props.activatable);
|
10394
10441
|
createList({
|
10395
10442
|
filterable: props.filterable
|
10396
10443
|
});
|
@@ -10460,7 +10507,7 @@ const VList = genericComponent()({
|
|
10460
10507
|
}, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
|
10461
10508
|
"style": normalizeStyle([backgroundColorStyles.value, dimensionStyles.value, props.style]),
|
10462
10509
|
"tabindex": props.disabled ? -1 : 0,
|
10463
|
-
"role":
|
10510
|
+
"role": isSelectable.value ? 'listbox' : 'list',
|
10464
10511
|
"aria-activedescendant": undefined,
|
10465
10512
|
"onFocusin": onFocusin,
|
10466
10513
|
"onFocusout": onFocusout,
|
@@ -13525,6 +13572,7 @@ const VSelect = genericComponent()({
|
|
13525
13572
|
"onKeydown": onListKeydown,
|
13526
13573
|
"onFocusin": onFocusin,
|
13527
13574
|
"tabindex": "-1",
|
13575
|
+
"selectable": true,
|
13528
13576
|
"aria-live": "polite",
|
13529
13577
|
"aria-label": `${props.label}-list`,
|
13530
13578
|
"color": props.itemColor ?? props.color
|
@@ -13550,7 +13598,7 @@ const VSelect = genericComponent()({
|
|
13550
13598
|
key: item.value,
|
13551
13599
|
onClick: () => select(item, null)
|
13552
13600
|
});
|
13553
|
-
if (item.
|
13601
|
+
if (item.type === 'divider') {
|
13554
13602
|
return slots.divider?.({
|
13555
13603
|
props: item.raw,
|
13556
13604
|
index
|
@@ -13558,7 +13606,7 @@ const VSelect = genericComponent()({
|
|
13558
13606
|
"key": `divider-${index}`
|
13559
13607
|
}), null);
|
13560
13608
|
}
|
13561
|
-
if (item.
|
13609
|
+
if (item.type === 'subheader') {
|
13562
13610
|
return slots.subheader?.({
|
13563
13611
|
props: item.raw,
|
13564
13612
|
index
|
@@ -13726,7 +13774,7 @@ function filterItems(items, query, options) {
|
|
13726
13774
|
let match = -1;
|
13727
13775
|
if ((query || customFiltersLength > 0) && !options?.noFilter) {
|
13728
13776
|
if (typeof item === 'object') {
|
13729
|
-
if (
|
13777
|
+
if (item.type === 'divider' || item.type === 'subheader') {
|
13730
13778
|
continue;
|
13731
13779
|
}
|
13732
13780
|
const filterKeys = keys || Object.keys(transformed);
|
@@ -14144,6 +14192,7 @@ const VAutocomplete = genericComponent()({
|
|
14144
14192
|
"onFocusin": onFocusin,
|
14145
14193
|
"onFocusout": onFocusout,
|
14146
14194
|
"tabindex": "-1",
|
14195
|
+
"selectable": true,
|
14147
14196
|
"aria-live": "polite",
|
14148
14197
|
"color": props.itemColor ?? props.color
|
14149
14198
|
}, listEvents, props.listProps), {
|
@@ -14168,7 +14217,7 @@ const VAutocomplete = genericComponent()({
|
|
14168
14217
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
14169
14218
|
onClick: () => select(item, null)
|
14170
14219
|
});
|
14171
|
-
if (item.
|
14220
|
+
if (item.type === 'divider') {
|
14172
14221
|
return slots.divider?.({
|
14173
14222
|
props: item.raw,
|
14174
14223
|
index
|
@@ -14176,7 +14225,7 @@ const VAutocomplete = genericComponent()({
|
|
14176
14225
|
"key": `divider-${index}`
|
14177
14226
|
}), null);
|
14178
14227
|
}
|
14179
|
-
if (item.
|
14228
|
+
if (item.type === 'subheader') {
|
14180
14229
|
return slots.subheader?.({
|
14181
14230
|
props: item.raw,
|
14182
14231
|
index
|
@@ -19231,6 +19280,7 @@ const VCombobox = genericComponent()({
|
|
19231
19280
|
"selected": selectedValues.value,
|
19232
19281
|
"selectStrategy": props.multiple ? 'independent' : 'single-independent',
|
19233
19282
|
"onMousedown": e => e.preventDefault(),
|
19283
|
+
"selectable": true,
|
19234
19284
|
"onKeydown": onListKeydown,
|
19235
19285
|
"onFocusin": onFocusin,
|
19236
19286
|
"onFocusout": onFocusout,
|
@@ -19259,7 +19309,7 @@ const VCombobox = genericComponent()({
|
|
19259
19309
|
active: highlightFirst.value && index === 0 ? true : undefined,
|
19260
19310
|
onClick: () => select(item, null)
|
19261
19311
|
});
|
19262
|
-
if (item.
|
19312
|
+
if (item.type === 'divider') {
|
19263
19313
|
return slots.divider?.({
|
19264
19314
|
props: item.raw,
|
19265
19315
|
index
|
@@ -19267,7 +19317,7 @@ const VCombobox = genericComponent()({
|
|
19267
19317
|
"key": `divider-${index}`
|
19268
19318
|
}), null);
|
19269
19319
|
}
|
19270
|
-
if (item.
|
19320
|
+
if (item.type === 'subheader') {
|
19271
19321
|
return slots.subheader?.({
|
19272
19322
|
props: item.raw,
|
19273
19323
|
index
|
@@ -23609,7 +23659,8 @@ const VDatePicker = genericComponent()({
|
|
23609
23659
|
}
|
23610
23660
|
function allowedMonths(month) {
|
23611
23661
|
if (typeof props.allowedDates === 'function') {
|
23612
|
-
const
|
23662
|
+
const monthTwoDigits = String(month + 1).padStart(2, '0');
|
23663
|
+
const startOfMonth = adapter.parseISO(`${year.value}-${monthTwoDigits}-01`);
|
23613
23664
|
return isAllowedInRange(startOfMonth, adapter.endOfMonth(startOfMonth));
|
23614
23665
|
}
|
23615
23666
|
if (Array.isArray(props.allowedDates) && props.allowedDates.length) {
|
@@ -30405,6 +30456,8 @@ const VTreeviewSymbol = Symbol.for('vuetify:v-treeview');
|
|
30405
30456
|
|
30406
30457
|
const makeVTreeviewItemProps = propsFactory({
|
30407
30458
|
loading: Boolean,
|
30459
|
+
hideActions: Boolean,
|
30460
|
+
indentLines: Array,
|
30408
30461
|
toggleIcon: IconValue,
|
30409
30462
|
...makeVListItemProps({
|
30410
30463
|
slim: true
|
@@ -30441,7 +30494,7 @@ const VTreeviewItem = genericComponent()({
|
|
30441
30494
|
}
|
30442
30495
|
useRender(() => {
|
30443
30496
|
const listItemProps = VListItem.filterProps(props);
|
30444
|
-
const hasPrepend = slots.prepend || props.toggleIcon;
|
30497
|
+
const hasPrepend = slots.prepend || props.toggleIcon || props.indentLines;
|
30445
30498
|
return createVNode(VListItem, mergeProps({
|
30446
30499
|
"ref": vListItemRef
|
30447
30500
|
}, listItemProps, {
|
@@ -30455,7 +30508,15 @@ const VTreeviewItem = genericComponent()({
|
|
30455
30508
|
}), {
|
30456
30509
|
...slots,
|
30457
30510
|
prepend: hasPrepend ? slotProps => {
|
30458
|
-
return createElementVNode(Fragment, null, [
|
30511
|
+
return createElementVNode(Fragment, null, [props.indentLines && props.indentLines.length > 0 ? createElementVNode("div", {
|
30512
|
+
"key": "indent-lines",
|
30513
|
+
"class": "v-treeview-indent-lines",
|
30514
|
+
"style": {
|
30515
|
+
'--v-indent-parts': props.indentLines.length
|
30516
|
+
}
|
30517
|
+
}, [props.indentLines.map(type => createElementVNode("div", {
|
30518
|
+
"class": normalizeClass(`v-treeview-indent-line v-treeview-indent-line--${type}`)
|
30519
|
+
}, null))]) : '', !props.hideActions && createVNode(VListItemAction, {
|
30459
30520
|
"start": true
|
30460
30521
|
}, {
|
30461
30522
|
default: () => [props.toggleIcon ? createVNode(VBtn, {
|
@@ -30507,10 +30568,15 @@ const makeVTreeviewChildrenProps = propsFactory({
|
|
30507
30568
|
selectedColor: String,
|
30508
30569
|
selectStrategy: [String, Function, Object],
|
30509
30570
|
index: Number,
|
30571
|
+
isLastGroup: Boolean,
|
30572
|
+
separateRoots: Boolean,
|
30573
|
+
parentIndentLines: Array,
|
30574
|
+
indentLinesVariant: String,
|
30510
30575
|
path: {
|
30511
30576
|
type: Array,
|
30512
30577
|
default: () => []
|
30513
30578
|
},
|
30579
|
+
...pick(makeVTreeviewItemProps(), ['hideActions']),
|
30514
30580
|
...makeDensityProps()
|
30515
30581
|
}, 'VTreeviewChildren');
|
30516
30582
|
const VTreeviewChildren = genericComponent()({
|
@@ -30539,19 +30605,32 @@ const VTreeviewChildren = genericComponent()({
|
|
30539
30605
|
select(isSelected);
|
30540
30606
|
}
|
30541
30607
|
}
|
30542
|
-
return () => slots.default?.() ?? props.items?.map((item, index) => {
|
30608
|
+
return () => slots.default?.() ?? props.items?.map((item, index, items) => {
|
30543
30609
|
const {
|
30544
30610
|
children,
|
30545
30611
|
props: itemProps
|
30546
30612
|
} = item;
|
30547
30613
|
const loading = isLoading.has(item.value);
|
30614
|
+
const nextItemHasChildren = !!items.at(index + 1)?.children;
|
30615
|
+
const depth = props.path?.length ?? 0;
|
30616
|
+
const isLast = items.length - 1 === index;
|
30548
30617
|
const treeItemProps = {
|
30549
30618
|
index,
|
30550
|
-
depth
|
30619
|
+
depth,
|
30551
30620
|
isFirst: index === 0,
|
30552
|
-
isLast
|
30553
|
-
path: [...props.path, index]
|
30621
|
+
isLast,
|
30622
|
+
path: [...props.path, index],
|
30623
|
+
hideAction: props.hideActions
|
30554
30624
|
};
|
30625
|
+
const indentLines = getIndentLines({
|
30626
|
+
depth,
|
30627
|
+
isLast,
|
30628
|
+
isLastGroup: props.isLastGroup,
|
30629
|
+
leafLinks: !props.hideActions,
|
30630
|
+
separateRoots: props.separateRoots,
|
30631
|
+
parentIndentLines: props.parentIndentLines,
|
30632
|
+
variant: props.indentLinesVariant
|
30633
|
+
});
|
30555
30634
|
const slotsWithItem = {
|
30556
30635
|
prepend: slotProps => createElementVNode(Fragment, null, [props.selectable && (!children || children && !['leaf', 'single-leaf'].includes(props.selectStrategy)) && createElementVNode("div", null, [createVNode(VCheckboxBtn, {
|
30557
30636
|
"key": item.value,
|
@@ -30617,21 +30696,40 @@ const VTreeviewChildren = genericComponent()({
|
|
30617
30696
|
return createVNode(VTreeviewItem, mergeProps({
|
30618
30697
|
"ref": el => activatorItems.value[index] = el
|
30619
30698
|
}, listItemProps, {
|
30699
|
+
"hideActions": props.hideActions,
|
30700
|
+
"indentLines": indentLines.node,
|
30620
30701
|
"value": props.returnObject ? item.raw : itemProps.value,
|
30621
30702
|
"loading": loading
|
30622
30703
|
}), slotsWithItem);
|
30623
30704
|
},
|
30624
30705
|
default: () => createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
30625
30706
|
"items": children,
|
30707
|
+
"indentLinesVariant": props.indentLinesVariant,
|
30708
|
+
"parentIndentLines": indentLines.children,
|
30709
|
+
"isLastGroup": nextItemHasChildren,
|
30626
30710
|
"returnObject": props.returnObject
|
30627
30711
|
}), slots)
|
30628
|
-
}) : slots.item
|
30712
|
+
}) : renderSlot(slots.item, {
|
30629
30713
|
props: itemProps,
|
30630
30714
|
item: item.raw,
|
30631
30715
|
internalItem: item
|
30632
|
-
}
|
30633
|
-
|
30634
|
-
|
30716
|
+
}, () => {
|
30717
|
+
if (item.type === 'divider') {
|
30718
|
+
return renderSlot(slots.divider, {
|
30719
|
+
props: item.raw
|
30720
|
+
}, () => createVNode(VDivider, item.props, null));
|
30721
|
+
}
|
30722
|
+
if (item.type === 'subheader') {
|
30723
|
+
return renderSlot(slots.subheader, {
|
30724
|
+
props: item.raw
|
30725
|
+
}, () => createVNode(VListSubheader, item.props, null));
|
30726
|
+
}
|
30727
|
+
return createVNode(VTreeviewItem, mergeProps(itemProps, {
|
30728
|
+
"hideActions": props.hideActions,
|
30729
|
+
"indentLines": indentLines.leaf,
|
30730
|
+
"value": props.returnObject ? toRaw(item.raw) : itemProps.value
|
30731
|
+
}), slotsWithItem);
|
30732
|
+
});
|
30635
30733
|
});
|
30636
30734
|
}
|
30637
30735
|
});
|
@@ -30647,16 +30745,17 @@ function flatten(items) {
|
|
30647
30745
|
const makeVTreeviewProps = propsFactory({
|
30648
30746
|
fluid: Boolean,
|
30649
30747
|
openAll: Boolean,
|
30748
|
+
indentLines: [Boolean, String],
|
30650
30749
|
search: String,
|
30651
30750
|
...makeFilterProps({
|
30652
30751
|
filterKeys: ['title']
|
30653
30752
|
}),
|
30654
|
-
...omit(makeVTreeviewChildrenProps(), ['index', 'path']),
|
30753
|
+
...omit(makeVTreeviewChildrenProps(), ['index', 'path', 'indentLinesVariant', 'parentIndentLines', 'isLastGroup']),
|
30655
30754
|
...omit(makeVListProps({
|
30656
30755
|
collapseIcon: '$treeviewCollapse',
|
30657
30756
|
expandIcon: '$treeviewExpand',
|
30658
30757
|
slim: true
|
30659
|
-
}), ['
|
30758
|
+
}), ['nav', 'openStrategy']),
|
30660
30759
|
modelValue: Array
|
30661
30760
|
}, 'VTreeview');
|
30662
30761
|
const VTreeview = genericComponent()({
|
@@ -30753,6 +30852,7 @@ const VTreeview = genericComponent()({
|
|
30753
30852
|
useRender(() => {
|
30754
30853
|
const listProps = VList.filterProps(props);
|
30755
30854
|
const treeviewChildrenProps = VTreeviewChildren.filterProps(props);
|
30855
|
+
const indentLinesVariant = typeof props.indentLines === 'boolean' ? 'default' : props.indentLines;
|
30756
30856
|
return createVNode(VList, mergeProps({
|
30757
30857
|
"ref": vListRef
|
30758
30858
|
}, listProps, {
|
@@ -30770,7 +30870,9 @@ const VTreeview = genericComponent()({
|
|
30770
30870
|
default: () => [createVNode(VTreeviewChildren, mergeProps(treeviewChildrenProps, {
|
30771
30871
|
"density": props.density,
|
30772
30872
|
"returnObject": props.returnObject,
|
30773
|
-
"items": items.value
|
30873
|
+
"items": items.value,
|
30874
|
+
"parentIndentLines": props.indentLines ? [] : undefined,
|
30875
|
+
"indentLinesVariant": indentLinesVariant
|
30774
30876
|
}), slots)]
|
30775
30877
|
});
|
30776
30878
|
});
|
@@ -31290,7 +31392,7 @@ function createVuetify$1() {
|
|
31290
31392
|
};
|
31291
31393
|
});
|
31292
31394
|
}
|
31293
|
-
const version$1 = "3.9.0-
|
31395
|
+
const version$1 = "3.9.0-dev.2025-07-15";
|
31294
31396
|
createVuetify$1.version = version$1;
|
31295
31397
|
|
31296
31398
|
// Vue's inject() can only be used in setup
|
@@ -31315,7 +31417,7 @@ const createVuetify = function () {
|
|
31315
31417
|
...options
|
31316
31418
|
});
|
31317
31419
|
};
|
31318
|
-
const version = "3.9.0-
|
31420
|
+
const version = "3.9.0-dev.2025-07-15";
|
31319
31421
|
createVuetify.version = version;
|
31320
31422
|
|
31321
31423
|
export { index as blueprints, components, createVuetify, directives, useDate, useDefaults, useDisplay, useGoTo, useHotkey, useLayout, useLocale, useRtl, useTheme, version };
|