vuetify 3.12.0 → 3.12.1

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.
Files changed (37) hide show
  1. package/README.md +0 -24
  2. package/dist/json/attributes.json +1793 -1793
  3. package/dist/json/importMap-labs.json +16 -16
  4. package/dist/json/importMap.json +166 -166
  5. package/dist/json/web-types.json +3410 -3410
  6. package/dist/vuetify-labs.cjs +6 -4
  7. package/dist/vuetify-labs.css +4420 -4409
  8. package/dist/vuetify-labs.d.ts +52 -52
  9. package/dist/vuetify-labs.esm.js +6 -4
  10. package/dist/vuetify-labs.esm.js.map +1 -1
  11. package/dist/vuetify-labs.js +6 -4
  12. package/dist/vuetify-labs.min.css +2 -2
  13. package/dist/vuetify.cjs +6 -4
  14. package/dist/vuetify.cjs.map +1 -1
  15. package/dist/vuetify.css +3415 -3404
  16. package/dist/vuetify.d.ts +52 -52
  17. package/dist/vuetify.esm.js +6 -4
  18. package/dist/vuetify.esm.js.map +1 -1
  19. package/dist/vuetify.js +6 -4
  20. package/dist/vuetify.js.map +1 -1
  21. package/dist/vuetify.min.css +2 -2
  22. package/dist/vuetify.min.js +5 -5
  23. package/dist/vuetify.min.js.map +1 -1
  24. package/lib/components/VList/VList.css +0 -5
  25. package/lib/components/VList/VList.js +3 -1
  26. package/lib/components/VList/VList.js.map +1 -1
  27. package/lib/components/VList/VList.sass +0 -6
  28. package/lib/components/VList/VListItem.css +15 -4
  29. package/lib/components/VList/VListItem.sass +16 -4
  30. package/lib/components/VList/_variables.scss +2 -3
  31. package/lib/components/VTreeview/VTreeviewItem.css +27 -22
  32. package/lib/components/VTreeview/VTreeviewItem.sass +23 -26
  33. package/lib/components/VTreeview/_variables.scss +5 -5
  34. package/lib/entry-bundler.js +1 -1
  35. package/lib/framework.d.ts +52 -52
  36. package/lib/framework.js +1 -1
  37. package/package.json +1 -1
@@ -1,6 +1,4 @@
1
1
  .v-list {
2
- --v-list-prepend-gap: 32px;
3
- --v-list-indent: calc(var(--v-list-prepend-gap) + 24px);
4
2
  overflow: auto;
5
3
  padding: 8px 0;
6
4
  position: relative;
@@ -25,9 +23,6 @@
25
23
  background: rgba(var(--v-theme-surface));
26
24
  color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity));
27
25
  }
28
- .v-list--slim {
29
- --v-list-prepend-gap: 20px;
30
- }
31
26
  .v-list--disabled {
32
27
  pointer-events: none;
33
28
  user-select: none;
@@ -285,6 +285,7 @@ export const VList = genericComponent()({
285
285
  }
286
286
  }
287
287
  useRender(() => {
288
+ const indent = props.indent ?? (props.prependGap ? Number(props.prependGap) + 24 : undefined);
288
289
  const ariaMultiselectable = isSelectable.value ? attrs.ariaMultiselectable ?? !String(props.selectStrategy).startsWith('single-') : undefined;
289
290
  return _createVNode(props.tag, {
290
291
  "ref": contentRef,
@@ -294,7 +295,8 @@ export const VList = genericComponent()({
294
295
  'v-list--slim': props.slim
295
296
  }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value, props.class]),
296
297
  "style": _normalizeStyle([{
297
- '--v-list-indent': convertToUnit(props.indent),
298
+ '--v-list-indent': convertToUnit(indent),
299
+ '--v-list-group-prepend': indent ? '0px' : undefined,
298
300
  '--v-list-prepend-gap': convertToUnit(props.prependGap)
299
301
  }, backgroundColorStyles.value, dimensionStyles.value, props.style]),
300
302
  "tabindex": props.disabled ? -1 : 0,
@@ -1 +1 @@
1
- {"version":3,"file":"VList.js","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","useProxiedModel","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","useId","watch","convertToUnit","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","itemTypes","Set","transformItem","props","item","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","type","itemType","has","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","filterable","expandIcon","collapseIcon","lines","default","slim","prependGap","Number","indent","nav","navigationStrategy","navigationIndex","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","attrs","slots","emit","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","returnObject","scrollToActive","lineClasses","color","isSelectable","selectable","activatable","v","uid","trackingIndex","VListGroup","VListItem","density","tabindex","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","getNextIndex","relatedTarget","contains","focus","onBlur","getNavigationDirection","key","direction","itemCount","length","nextIndex","startIndex","attempts","onKeydown","target","tagName","includes","preventDefault","onMousedown","location","ariaMultiselectable","startsWith","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, useId, watch } from 'vue'\nimport {\n convertToUnit,\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {}\n\nconst itemTypes = new Set(['item', 'divider', 'subheader'])\n\nfunction transformItem (props: ItemProps, item: any): ListItem {\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n let type = getPropertyFromItem(item, props.itemType, 'item')\n if (!itemTypes.has(type)) {\n type = 'item'\n }\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n filterable: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n prependGap: [Number, String],\n indent: [Number, String],\n nav: Boolean,\n navigationStrategy: {\n type: String as PropType<'focus' | 'track'>,\n default: 'focus',\n },\n navigationIndex: Number,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[unknown]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <S, A, O, T extends readonly any[]>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n activated?: A\n opened?: O\n 'onUpdate:selected'?: (value: S) => void\n 'onUpdate:activated'?: (value: A) => void\n 'onUpdate:opened'?: (value: O) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'update:navigationIndex': (value: number) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const { children, open, parents, select, getPath } = useNested(props, {\n items,\n returnObject: toRef(() => props.returnObject),\n scrollToActive: toRef(() => props.navigationStrategy === 'track'),\n })\n\n const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n const isSelectable = toRef(() => (props.selectable || props.activatable))\n\n const navigationIndex = useProxiedModel(\n props,\n 'navigationIndex',\n -1,\n v => v ?? -1\n )\n\n const uid = useId()\n\n createList({\n filterable: props.filterable,\n trackingIndex: navigationIndex,\n navigationStrategy: toRef(() => props.navigationStrategy),\n uid,\n })\n\n watch(items, () => {\n if (props.navigationStrategy === 'track') {\n navigationIndex.value = -1\n }\n })\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(() => props.expandIcon),\n collapseIcon: toRef(() => props.collapseIcon),\n },\n VListItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n nav: toRef(() => props.nav),\n slim: toRef(() => props.slim),\n variant: toRef(() => props.variant),\n tabindex: toRef(() => props.navigationStrategy === 'track' ? -1 : undefined),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (props.navigationStrategy === 'track') {\n if (!~navigationIndex.value) {\n navigationIndex.value = getNextIndex('first')\n }\n } else if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onBlur () {\n if (props.navigationStrategy === 'track') {\n navigationIndex.value = -1\n }\n }\n\n function getNavigationDirection (key: string): 'next' | 'prev' | 'first' | 'last' | null {\n switch (key) {\n case 'ArrowDown': return 'next'\n case 'ArrowUp': return 'prev'\n case 'Home': return 'first'\n case 'End': return 'last'\n default: return null\n }\n }\n\n function getNextIndex (direction: 'next' | 'prev' | 'first' | 'last'): number {\n const itemCount = items.value.length\n if (itemCount === 0) return -1\n\n let nextIndex: number\n\n if (direction === 'first') {\n nextIndex = 0\n } else if (direction === 'last') {\n nextIndex = itemCount - 1\n } else {\n nextIndex = navigationIndex.value + (direction === 'next' ? 1 : -1)\n\n if (nextIndex < 0) nextIndex = itemCount - 1\n if (nextIndex >= itemCount) nextIndex = 0\n }\n\n const startIndex = nextIndex\n let attempts = 0\n while (attempts < itemCount) {\n const item = items.value[nextIndex]\n if (item && item.type !== 'divider' && item.type !== 'subheader') {\n return nextIndex\n }\n nextIndex += direction === 'next' || direction === 'first' ? 1 : -1\n if (nextIndex < 0) nextIndex = itemCount - 1\n if (nextIndex >= itemCount) nextIndex = 0\n if (nextIndex === startIndex) return -1\n attempts++\n }\n\n return -1\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value ||\n (target.tagName === 'INPUT' && ['Home', 'End'].includes(e.key)) ||\n target.tagName === 'TEXTAREA') {\n return\n }\n\n const direction = getNavigationDirection(e.key)\n\n if (direction !== null) {\n e.preventDefault()\n if (props.navigationStrategy === 'track') {\n const nextIndex = getNextIndex(direction)\n if (nextIndex !== -1) {\n navigationIndex.value = nextIndex\n }\n } else {\n focus(direction)\n }\n }\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last' | number) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n const ariaMultiselectable = isSelectable.value\n ? attrs.ariaMultiselectable ?? !String(props.selectStrategy).startsWith('single-')\n : undefined\n\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-list-indent': convertToUnit(props.indent),\n '--v-list-prepend-gap': convertToUnit(props.prependGap),\n },\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled ? -1 : 0 }\n role={ isSelectable.value ? 'listbox' : 'list' }\n aria-activedescendant={\n props.navigationStrategy === 'track' && navigationIndex.value >= 0\n ? `v-list-item-${uid}-${navigationIndex.value}`\n : undefined\n }\n aria-multiselectable={ ariaMultiselectable }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n navigationIndex,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"VList.js","names":["VListChildren","createList","makeBorderProps","useBorder","useBackgroundColor","makeComponentProps","provideDefaults","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","makeItemsProps","makeNestedProps","useNested","useProxiedModel","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","computed","ref","shallowRef","toRef","useId","watch","convertToUnit","EventProp","focusChild","genericComponent","getPropertyFromItem","isPrimitive","omit","propsFactory","useRender","itemTypes","Set","transformItem","props","item","title","itemTitle","value","itemValue","undefined","children","itemChildren","itemProps","type","itemType","has","_props","transformItems","raw","items","array","push","useListItems","makeVListProps","baseColor","String","activeColor","activeClass","bgColor","disabled","Boolean","filterable","expandIcon","collapseIcon","lines","default","slim","prependGap","Number","indent","nav","navigationStrategy","navigationIndex","selectStrategy","openStrategy","variant","VList","name","emits","setup","_ref","attrs","slots","emit","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","parents","select","getPath","returnObject","scrollToActive","lineClasses","color","isSelectable","selectable","activatable","v","uid","trackingIndex","VListGroup","VListItem","density","tabindex","isFocused","contentRef","onFocusin","e","onFocusout","onFocus","getNextIndex","relatedTarget","contains","focus","onBlur","getNavigationDirection","key","direction","itemCount","length","nextIndex","startIndex","attempts","onKeydown","target","tagName","includes","preventDefault","onMousedown","location","ariaMultiselectable","startsWith","_createVNode","tag","_normalizeClass","class","_normalizeStyle","style"],"sources":["../../../src/components/VList/VList.tsx"],"sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { createList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { makeItemsProps } from '@/composables/list-items'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\n\n// Utilities\nimport { computed, ref, shallowRef, toRef, useId, watch } from 'vue'\nimport {\n convertToUnit,\n EventProp,\n focusChild,\n genericComponent,\n getPropertyFromItem,\n isPrimitive,\n omit,\n propsFactory,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VListChildrenSlots } from './VListChildren'\nimport type { ItemProps, ListItem } from '@/composables/list-items'\nimport type { GenericProps, SelectItemKey } from '@/util'\n\nexport interface InternalListItem<T = any> extends ListItem<T> {}\n\nconst itemTypes = new Set(['item', 'divider', 'subheader'])\n\nfunction transformItem (props: ItemProps, item: any): ListItem {\n const title = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemTitle)\n const value = isPrimitive(item) ? item : getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true\n ? omit(item, ['children'])\n : getPropertyFromItem(item, props.itemProps)\n\n let type = getPropertyFromItem(item, props.itemType, 'item')\n if (!itemTypes.has(type)) {\n type = 'item'\n }\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n raw: item,\n }\n}\n\nfunction transformItems (props: ItemProps, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useListItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n\nexport const makeVListProps = propsFactory({\n baseColor: String,\n /* @deprecated */\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n filterable: Boolean,\n expandIcon: IconValue,\n collapseIcon: IconValue,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n slim: Boolean,\n prependGap: [Number, String],\n indent: [Number, String],\n nav: Boolean,\n navigationStrategy: {\n type: String as PropType<'focus' | 'track'>,\n default: 'focus',\n },\n navigationIndex: Number,\n\n 'onClick:open': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onClick:select': EventProp<[{ id: unknown, value: boolean, path: unknown[] }]>(),\n 'onUpdate:opened': EventProp<[unknown]>(),\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeItemsProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VList')\n\ntype ItemType<T> = T extends readonly (infer U)[] ? U : never\n\nexport const VList = genericComponent<new <S, A, O, T extends readonly any[]>(\n props: {\n items?: T\n itemTitle?: SelectItemKey<ItemType<T>>\n itemValue?: SelectItemKey<ItemType<T>>\n itemChildren?: SelectItemKey<ItemType<T>>\n itemProps?: SelectItemKey<ItemType<T>>\n selected?: S\n activated?: A\n opened?: O\n 'onUpdate:selected'?: (value: S) => void\n 'onUpdate:activated'?: (value: A) => void\n 'onUpdate:opened'?: (value: O) => void\n 'onClick:open'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n 'onClick:select'?: (value: { id: unknown, value: boolean, path: unknown[] }) => void\n },\n slots: VListChildrenSlots<ItemType<T>>\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VList',\n\n props: makeVListProps(),\n\n emits: {\n 'update:selected': (value: unknown) => true,\n 'update:activated': (value: unknown) => true,\n 'update:opened': (value: unknown) => true,\n 'update:navigationIndex': (value: number) => true,\n 'click:open': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:activate': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n 'click:select': (value: { id: unknown, value: boolean, path: unknown[] }) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { items } = useListItems(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(() => props.bgColor)\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const { children, open, parents, select, getPath } = useNested(props, {\n items,\n returnObject: toRef(() => props.returnObject),\n scrollToActive: toRef(() => props.navigationStrategy === 'track'),\n })\n\n const lineClasses = toRef(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(() => props.activeColor)\n const baseColor = toRef(() => props.baseColor)\n const color = toRef(() => props.color)\n const isSelectable = toRef(() => (props.selectable || props.activatable))\n\n const navigationIndex = useProxiedModel(\n props,\n 'navigationIndex',\n -1,\n v => v ?? -1\n )\n\n const uid = useId()\n\n createList({\n filterable: props.filterable,\n trackingIndex: navigationIndex,\n navigationStrategy: toRef(() => props.navigationStrategy),\n uid,\n })\n\n watch(items, () => {\n if (props.navigationStrategy === 'track') {\n navigationIndex.value = -1\n }\n })\n\n provideDefaults({\n VListGroup: {\n activeColor,\n baseColor,\n color,\n expandIcon: toRef(() => props.expandIcon),\n collapseIcon: toRef(() => props.collapseIcon),\n },\n VListItem: {\n activeClass: toRef(() => props.activeClass),\n activeColor,\n baseColor,\n color,\n density: toRef(() => props.density),\n disabled: toRef(() => props.disabled),\n lines: toRef(() => props.lines),\n nav: toRef(() => props.nav),\n slim: toRef(() => props.slim),\n variant: toRef(() => props.variant),\n tabindex: toRef(() => props.navigationStrategy === 'track' ? -1 : undefined),\n },\n })\n\n const isFocused = shallowRef(false)\n const contentRef = ref<HTMLElement>()\n\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (props.navigationStrategy === 'track') {\n if (!~navigationIndex.value) {\n navigationIndex.value = getNextIndex('first')\n }\n } else if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onBlur () {\n if (props.navigationStrategy === 'track') {\n navigationIndex.value = -1\n }\n }\n\n function getNavigationDirection (key: string): 'next' | 'prev' | 'first' | 'last' | null {\n switch (key) {\n case 'ArrowDown': return 'next'\n case 'ArrowUp': return 'prev'\n case 'Home': return 'first'\n case 'End': return 'last'\n default: return null\n }\n }\n\n function getNextIndex (direction: 'next' | 'prev' | 'first' | 'last'): number {\n const itemCount = items.value.length\n if (itemCount === 0) return -1\n\n let nextIndex: number\n\n if (direction === 'first') {\n nextIndex = 0\n } else if (direction === 'last') {\n nextIndex = itemCount - 1\n } else {\n nextIndex = navigationIndex.value + (direction === 'next' ? 1 : -1)\n\n if (nextIndex < 0) nextIndex = itemCount - 1\n if (nextIndex >= itemCount) nextIndex = 0\n }\n\n const startIndex = nextIndex\n let attempts = 0\n while (attempts < itemCount) {\n const item = items.value[nextIndex]\n if (item && item.type !== 'divider' && item.type !== 'subheader') {\n return nextIndex\n }\n nextIndex += direction === 'next' || direction === 'first' ? 1 : -1\n if (nextIndex < 0) nextIndex = itemCount - 1\n if (nextIndex >= itemCount) nextIndex = 0\n if (nextIndex === startIndex) return -1\n attempts++\n }\n\n return -1\n }\n\n function onKeydown (e: KeyboardEvent) {\n const target = e.target as HTMLElement\n\n if (!contentRef.value ||\n (target.tagName === 'INPUT' && ['Home', 'End'].includes(e.key)) ||\n target.tagName === 'TEXTAREA') {\n return\n }\n\n const direction = getNavigationDirection(e.key)\n\n if (direction !== null) {\n e.preventDefault()\n if (props.navigationStrategy === 'track') {\n const nextIndex = getNextIndex(direction)\n if (nextIndex !== -1) {\n navigationIndex.value = nextIndex\n }\n } else {\n focus(direction)\n }\n }\n }\n\n function onMousedown (e: MouseEvent) {\n isFocused.value = true\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last' | number) {\n if (contentRef.value) {\n return focusChild(contentRef.value, location)\n }\n }\n\n useRender(() => {\n const indent = props.indent ??\n (props.prependGap\n ? Number(props.prependGap) + 24\n : undefined)\n\n const ariaMultiselectable = isSelectable.value\n ? attrs.ariaMultiselectable ?? !String(props.selectStrategy).startsWith('single-')\n : undefined\n\n return (\n <props.tag\n ref={ contentRef }\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--slim': props.slim,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-list-indent': convertToUnit(indent),\n '--v-list-group-prepend': indent ? '0px' : undefined,\n '--v-list-prepend-gap': convertToUnit(props.prependGap),\n },\n backgroundColorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n tabindex={ props.disabled ? -1 : 0 }\n role={ isSelectable.value ? 'listbox' : 'list' }\n aria-activedescendant={\n props.navigationStrategy === 'track' && navigationIndex.value >= 0\n ? `v-list-item-${uid}-${navigationIndex.value}`\n : undefined\n }\n aria-multiselectable={ ariaMultiselectable }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onFocus={ onFocus }\n onBlur={ onBlur }\n onKeydown={ onKeydown }\n onMousedown={ onMousedown }\n >\n <VListChildren\n items={ items.value }\n returnObject={ props.returnObject }\n v-slots={ slots }\n />\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n focus,\n children,\n parents,\n getPath,\n navigationIndex,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"mappings":"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","ignoreList":[]}
@@ -4,9 +4,6 @@
4
4
 
5
5
  @include tools.layer('components')
6
6
  .v-list
7
- --v-list-prepend-gap: #{$list-item-prepend-size}
8
- --v-list-indent: calc(var(--v-list-prepend-gap) + #{$list-item-prepend-icon-size})
9
-
10
7
  overflow: auto
11
8
  padding: $list-padding
12
9
  position: relative
@@ -17,9 +14,6 @@
17
14
  @include tools.rounded($list-border-radius)
18
15
  @include tools.theme($list-theme...)
19
16
 
20
- &--slim
21
- --v-list-prepend-gap: #{$list-item-slim-prepend-size}
22
-
23
17
  &--disabled
24
18
  pointer-events: none
25
19
  user-select: none
@@ -147,7 +147,7 @@
147
147
  display: flex;
148
148
  grid-area: prepend;
149
149
  }
150
- .v-list-item__prepend *:not(.v-treeview-indent-lines) ~ .v-list-item__spacer {
150
+ .v-list-item__prepend * ~ .v-list-item__spacer {
151
151
  width: var(--v-list-prepend-gap);
152
152
  }
153
153
  .v-list-item__prepend > .v-badge ~ .v-list-item__spacer,
@@ -441,14 +441,25 @@
441
441
  }
442
442
 
443
443
  .v-list-group {
444
+ --list-indent-size: 16px;
444
445
  --parent-padding: var(--indent-padding);
446
+ --prepend-width: var(--v-list-group-prepend, 40px);
445
447
  }
446
- .v-list-group--fluid > .v-list-group__items {
447
- --indent-padding: 0px;
448
+ .v-list--slim .v-list-group {
449
+ --prepend-width: var(--v-list-group-prepend, 28px);
450
+ }
451
+ .v-list-group--fluid {
452
+ --list-indent-size: 0px;
453
+ }
454
+ .v-list-group--prepend {
455
+ --parent-padding: calc(var(--indent-padding) + var(--prepend-width));
456
+ }
457
+ .v-list-group--fluid.v-list-group--prepend {
458
+ --parent-padding: var(--indent-padding);
448
459
  }
449
460
 
450
461
  .v-list-group__items {
451
- --indent-padding: calc(var(--parent-padding) + var(--v-list-indent));
462
+ --indent-padding: calc(var(--parent-padding) + var(--v-list-indent, var(--list-indent-size)));
452
463
  min-width: min-content;
453
464
  }
454
465
  .v-navigation-drawer--rail .v-list-group__items {
@@ -79,7 +79,7 @@
79
79
  display: flex
80
80
  grid-area: prepend
81
81
 
82
- *:not(.v-treeview-indent-lines) ~ .v-list-item__spacer
82
+ * ~ .v-list-item__spacer
83
83
  width: var(--v-list-prepend-gap)
84
84
 
85
85
  > .v-badge,
@@ -93,6 +93,7 @@
93
93
  ~ .v-list-item__spacer
94
94
  width: var(--v-list-prepend-gap, $list-item-avatar-margin-start)
95
95
 
96
+
96
97
  .v-list-item--slim &
97
98
  > .v-badge,
98
99
  > .v-icon,
@@ -311,13 +312,24 @@
311
312
  --indent-padding: -#{$list-nav-padding}
312
313
 
313
314
  .v-list-group
315
+ --list-indent-size: #{$list-indent-size}
314
316
  --parent-padding: var(--indent-padding)
317
+ --prepend-width: var(--v-list-group-prepend, #{$list-item-prepend-size})
318
+
319
+ .v-list--slim &
320
+ --prepend-width: var(--v-list-group-prepend, #{$list-item-slim-prepend-size})
321
+
322
+ &--fluid
323
+ --list-indent-size: 0px
324
+
325
+ &--prepend
326
+ --parent-padding: calc(var(--indent-padding) + var(--prepend-width))
315
327
 
316
- &--fluid > .v-list-group__items
317
- --indent-padding: 0px
328
+ &--fluid.v-list-group--prepend
329
+ --parent-padding: var(--indent-padding)
318
330
 
319
331
  .v-list-group__items
320
- --indent-padding: calc(var(--parent-padding) + var(--v-list-indent))
332
+ --indent-padding: calc(var(--parent-padding) + var(--v-list-indent, var(--list-indent-size)))
321
333
  min-width: min-content
322
334
 
323
335
  .v-navigation-drawer--rail &
@@ -43,9 +43,8 @@ $list-item-icon-opacity: var(--v-medium-emphasis-opacity) !default;
43
43
  $list-item-icon-active-opacity: 1 !default;
44
44
  $list-item-min-height: 40px !default;
45
45
  $list-item-padding: 4px 16px !default;
46
- $list-item-prepend-size: 32px !default;
47
- $list-item-slim-prepend-size: 20px !default;
48
- $list-item-prepend-icon-size: 24px !default;
46
+ $list-item-prepend-size: 40px !default;
47
+ $list-item-slim-prepend-size: 28px !default;
49
48
  $list-item-plain-opacity: .62 !default;
50
49
  $list-item-rounded-border-radius: map.get(settings.$rounded, null) !default;
51
50
  $list-item-one-line-min-height: 48px !default;
@@ -1,3 +1,6 @@
1
+ .v-treeview-item {
2
+ --list-indent-size: 28px;
3
+ }
1
4
  .v-treeview-item.v-treeview-item--filtered {
2
5
  display: none;
3
6
  }
@@ -7,27 +10,32 @@
7
10
  .v-treeview-item.v-list-item--disabled:not(a) .v-selection-control {
8
11
  pointer-events: none;
9
12
  }
10
- .v-treeview-item .v-list-item-action--start {
11
- margin-inline: -4px 4px;
13
+ .v-treeview-item__level {
14
+ width: 28px;
15
+ }
16
+ .v-treeview--fluid .v-treeview-item__level {
17
+ width: 0;
12
18
  }
13
19
 
14
20
  .v-treeview {
15
21
  --v-treeview-indent-line-color: rgb(var(--v-theme-on-surface));
16
22
  --v-treeview-indent-line-opacity: 0.4;
17
- --v-list-prepend-gap: 10px;
23
+ }
24
+ .v-treeview.v-list {
25
+ --indent-padding: 16px;
18
26
  }
19
27
  .v-treeview.v-list--disabled .v-list-item__prepend {
20
28
  pointer-events: auto;
21
29
  }
30
+ .v-treeview .v-list-item--slim > .v-list-item__prepend > .v-icon ~ .v-list-item__spacer {
31
+ width: var(--v-list-prepend-gap, 10px);
32
+ }
22
33
  .v-treeview .v-list-item--slim > .v-list-item__prepend:not(:has(.v-list-item-action)) > .v-icon {
23
- margin-inline-start: -2px;
34
+ margin-inline-start: -6px;
24
35
  }
25
36
  .v-treeview:has(.v-treeview-indent-lines) .v-list-item-action:first-child > .v-selection-control,
26
37
  .v-treeview:has(.v-treeview-indent-lines) .v-treeview-indent-lines + .v-list-item-action > .v-selection-control {
27
- margin-inline: min(0px, -1 * (var(--v-selection-control-size) - var(--v-list-indent)) / 2);
28
- }
29
- .v-treeview .v-list-group > .v-list-group__header:not(:has(.v-list-item-action + .v-list-item__spacer)) + .v-list-group__items > .v-list-item > .v-list-item__prepend > .v-list-item-action:has(.v-treeview-item__level) + .v-list-item__spacer, .v-treeview:not(.v-treeview--fluid) .v-list-group > .v-list-group__header:has(.v-list-item-action + .v-list-item__spacer) + .v-list-group__items > .v-list-item > .v-list-item__prepend > .v-list-item-action:has(.v-treeview-item__level) + .v-list-item__spacer {
30
- width: 0;
38
+ margin-inline: min(0px, -1 * (var(--v-selection-control-size) - 28px) / 2);
31
39
  }
32
40
 
33
41
  .v-treeview-indent-lines {
@@ -35,9 +43,9 @@
35
43
  inset-inline-start: 0;
36
44
  height: 100%;
37
45
  display: grid;
38
- padding-inline-start: 12px;
46
+ padding-inline-start: 8px;
39
47
  padding-block: 0;
40
- grid-template-columns: repeat(var(--v-indent-parts, 1), var(--v-list-indent));
48
+ grid-template-columns: repeat(var(--v-indent-parts, 1), var(--prepend-width));
41
49
  opacity: var(--v-treeview-indent-line-opacity);
42
50
  pointer-events: none;
43
51
  }
@@ -48,7 +56,7 @@
48
56
  .v-treeview-indent-line--leaf, .v-treeview-indent-line--line {
49
57
  border-inline-start-width: 1px;
50
58
  height: 100%;
51
- width: calc(100% - 28px / 2 + 1px);
59
+ width: calc(50% + 1px);
52
60
  justify-self: end;
53
61
  }
54
62
  .v-treeview-indent-line--leaf {
@@ -68,13 +76,13 @@
68
76
  border-bottom-width: 1px;
69
77
  height: calc(50% + 1px);
70
78
  margin-inline-start: 0;
71
- margin-inline-end: calc(100% - 24px);
79
+ margin-inline-end: 6px;
72
80
  }
73
81
  .v-treeview-indent-line--last-leaf {
74
82
  border-inline-start-width: 1px;
75
83
  border-bottom-width: 1px;
76
84
  height: calc(50% + 1px);
77
- margin-inline-start: calc(24px / 2 + 1px);
85
+ margin-inline-start: calc(50% - 1px);
78
86
  border-bottom-left-radius: 4px;
79
87
  }
80
88
  .v-locale--is-rtl.v-treeview-indent-line--last-leaf, .v-locale--is-rtl .v-treeview-indent-line--last-leaf {
@@ -86,15 +94,12 @@
86
94
  margin-inline-end: 4px;
87
95
  }
88
96
 
89
- .v-treeview-group.v-list-group .v-list-group__items > .v-list-item {
90
- --indent-padding: calc(var(--parent-padding) + var(--v-list-indent));
91
- }
92
- .v-treeview--fluid .v-treeview-group.v-list-group .v-list-group__items > .v-list-item {
93
- --indent-padding: var(--v-list-indent);
97
+ .v-treeview-group.v-list-group {
98
+ --list-indent-size: 0px;
94
99
  }
95
- .v-treeview-group.v-list-group:has(> .v-list-item .v-list-item-action > .v-btn) > .v-list-group__items > .v-list-item {
96
- --indent-padding: calc(var(--parent-padding) + var(--v-list-indent) + 28px);
100
+ .v-treeview-group.v-list-group > .v-treeview-item__level {
101
+ width: 0px;
97
102
  }
98
- .v-treeview--fluid .v-treeview-group.v-list-group:has(> .v-list-item .v-list-item-action > .v-btn) > .v-list-group__items > .v-list-item {
99
- --indent-padding: calc(var(--parent-padding) + 28px);
103
+ .v-treeview-group.v-list-group .v-list-group__items .v-list-item {
104
+ padding-inline-start: calc(var(--indent-padding)) !important;
100
105
  }
@@ -3,7 +3,7 @@
3
3
 
4
4
  @include tools.layer('components')
5
5
  .v-treeview-item
6
-
6
+ --list-indent-size: #{$treeview-indent-size}
7
7
  &.v-treeview-item--filtered
8
8
  display: none
9
9
 
@@ -13,18 +13,27 @@
13
13
  .v-selection-control
14
14
  pointer-events: none
15
15
 
16
- .v-list-item-action--start
17
- margin-inline: -4px 4px
16
+
17
+ &__level
18
+ width: #{$treeview-indent-size}
19
+
20
+ .v-treeview--fluid &
21
+ width: 0
18
22
 
19
23
  .v-treeview
20
24
  --v-treeview-indent-line-color: #{$treeview-indent-line-color}
21
25
  --v-treeview-indent-line-opacity: #{$treeview-indent-lines-opacity}
22
- --v-list-prepend-gap: #{$treeview-prepend-gap}
26
+
27
+ &.v-list
28
+ --indent-padding: #{$treeview-indent-padding}
23
29
 
24
30
  &.v-list--disabled .v-list-item__prepend
25
31
  pointer-events: auto
26
32
 
27
33
  .v-list-item--slim > .v-list-item__prepend
34
+ > .v-icon ~ .v-list-item__spacer
35
+ width: var(--v-list-prepend-gap, $treeview-item-spacer-width)
36
+
28
37
  &:not(:has(.v-list-item-action))
29
38
  > .v-icon
30
39
  margin-inline-start: $treeview-item-first-icon-margin-start
@@ -33,15 +42,7 @@
33
42
  .v-list-item-action:first-child,
34
43
  .v-treeview-indent-lines + .v-list-item-action
35
44
  > .v-selection-control
36
- margin-inline: min(0px, calc(-1 * (var(--v-selection-control-size) - var(--v-list-indent)) / 2))
37
-
38
- // complex selector to keep showing spacer when fluid is used in basic scenario (no checkboxes, no icons)
39
- // it is a heacache to understand because it describes conditions to hide the spacer (counter intuitive)
40
- .v-list-group > .v-list-group__header:not(:has(.v-list-item-action + .v-list-item__spacer)),
41
- &:not(&--fluid) .v-list-group > .v-list-group__header:has(.v-list-item-action + .v-list-item__spacer)
42
- + .v-list-group__items > .v-list-item > .v-list-item__prepend
43
- > .v-list-item-action:has(.v-treeview-item__level) + .v-list-item__spacer
44
- width: 0
45
+ margin-inline: min(0px, calc(-1 * (var(--v-selection-control-size) - #{$treeview-indent-size}) / 2))
45
46
 
46
47
  .v-treeview-indent-lines
47
48
  position: absolute
@@ -50,7 +51,7 @@
50
51
  display: grid
51
52
  padding-inline-start: $treeview-indent-lines-padding-left
52
53
  padding-block: $treeview-indent-lines-gap
53
- grid-template-columns: repeat(var(--v-indent-parts, 1), var(--v-list-indent))
54
+ grid-template-columns: repeat(var(--v-indent-parts, 1), var(--prepend-width))
54
55
  opacity: var(--v-treeview-indent-line-opacity)
55
56
  pointer-events: none
56
57
 
@@ -63,7 +64,7 @@
63
64
  &--line
64
65
  border-inline-start-width: $treeview-indent-line-width
65
66
  height: 100%
66
- width: calc(100% - #{$treeview-action-width} / 2 + #{$treeview-indent-line-width-half})
67
+ width: calc(50% + #{$treeview-indent-line-width-half})
67
68
  justify-self: end
68
69
 
69
70
  &--leaf
@@ -83,13 +84,13 @@
83
84
  border-bottom-width: $treeview-indent-line-width
84
85
  height: calc(50% + #{$treeview-indent-line-width-half})
85
86
  margin-inline-start: $treeview-indent-lines-gap
86
- margin-inline-end: calc(100% - #{$treeview-indent-line-leaf-link-width})
87
+ margin-inline-end: $treeview-indent-line-leaf-link-margin-right
87
88
 
88
89
  &--last-leaf
89
90
  border-inline-start-width: $treeview-indent-line-width
90
91
  border-bottom-width: $treeview-indent-line-width
91
92
  height: calc(50% + #{$treeview-indent-line-width-half})
92
- margin-inline-start: calc(#{$treeview-indent-line-leaf-link-width} / 2 + #{$treeview-indent-line-width-half})
93
+ margin-inline-start: calc(50% - #{$treeview-indent-line-width-half})
93
94
  border-bottom-left-radius: $treeview-indent-line-border-radius
94
95
 
95
96
  @include tools.rtl()
@@ -100,14 +101,10 @@
100
101
  margin-inline-end: $treeview-indent-line-leaf-margin-right
101
102
 
102
103
  .v-treeview-group.v-list-group
103
- .v-list-group__items > .v-list-item
104
- --indent-padding: calc(var(--parent-padding) + var(--v-list-indent))
104
+ --list-indent-size: 0px
105
105
 
106
- .v-treeview--fluid &
107
- --indent-padding: var(--v-list-indent)
106
+ & > .v-treeview-item__level
107
+ width: 0px
108
108
 
109
- &:has(> .v-list-item .v-list-item-action > .v-btn) > .v-list-group__items > .v-list-item
110
- --indent-padding: calc(var(--parent-padding) + var(--v-list-indent) + #{$treeview-action-width})
111
-
112
- .v-treeview--fluid &
113
- --indent-padding: calc(var(--parent-padding) + #{$treeview-action-width})
109
+ .v-list-group__items .v-list-item
110
+ padding-inline-start: calc(var(--indent-padding)) !important
@@ -2,18 +2,18 @@
2
2
  @use 'sass:math';
3
3
 
4
4
  $treeview-item-spacer-width: 10px !default;
5
- $treeview-item-first-icon-margin-start: -2px !default;
5
+ $treeview-item-first-icon-margin-start: -6px !default;
6
6
 
7
- $treeview-prepend-gap: 10px !default;
8
- $treeview-action-width: 28px !default; // expand toggle VBtn
7
+ $treeview-indent-size: 28px !default; // 28px here to match the width of the expand toggle VBtn.
8
+ $treeview-indent-padding: 16px !default;
9
9
 
10
- $treeview-indent-lines-padding-left: 12px !default;
10
+ $treeview-indent-lines-padding-left: 8px !default;
11
11
  $treeview-indent-lines-gap: 0 !default;
12
12
  $treeview-indent-lines-opacity: .4 !default;
13
13
  $treeview-indent-line-width: 1px !default;
14
14
  $treeview-indent-line-width-half: math.round(math.div($treeview-indent-line-width, 2)) !default;
15
15
  $treeview-indent-line-color: rgb(var(--v-theme-on-surface)) !default;
16
16
  $treeview-indent-line-style: solid !default;
17
- $treeview-indent-line-leaf-link-width: 24px !default;
17
+ $treeview-indent-line-leaf-link-margin-right: 6px !default;
18
18
  $treeview-indent-line-leaf-margin-right: 4px !default;
19
19
  $treeview-indent-line-border-radius: 4px !default;
@@ -16,7 +16,7 @@ export const createVuetify = function () {
16
16
  ...options
17
17
  });
18
18
  };
19
- export const version = "3.12.0";
19
+ export const version = "3.12.1";
20
20
  createVuetify.version = version;
21
21
  export { blueprints, components, directives };
22
22
  export * from "./composables/index.js";