vuetify 3.3.11 → 3.3.13

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 (199) hide show
  1. package/dist/json/attributes.json +49 -5
  2. package/dist/json/importMap.json +12 -12
  3. package/dist/json/tags.json +11 -0
  4. package/dist/json/web-types.json +168 -11
  5. package/dist/vuetify-labs.css +423 -358
  6. package/dist/vuetify-labs.d.ts +233 -91
  7. package/dist/vuetify-labs.esm.js +189 -104
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +189 -104
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +130 -65
  12. package/dist/vuetify.d.ts +172 -38
  13. package/dist/vuetify.esm.js +100 -59
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +100 -59
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +152 -152
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/md3.mjs +2 -1
  21. package/lib/blueprints/md3.mjs.map +1 -1
  22. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  23. package/lib/components/VAppBar/index.d.mts +6 -6
  24. package/lib/components/VAutocomplete/VAutocomplete.mjs +6 -2
  25. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  26. package/lib/components/VAutocomplete/index.d.mts +42 -0
  27. package/lib/components/VBanner/VBanner.css +2 -0
  28. package/lib/components/VBanner/VBanner.sass +2 -0
  29. package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -0
  30. package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -0
  31. package/lib/components/VBtn/VBtn.css +6 -0
  32. package/lib/components/VBtn/VBtn.sass +5 -0
  33. package/lib/components/VCheckbox/index.d.mts +3 -1
  34. package/lib/components/VChip/VChip.mjs +1 -0
  35. package/lib/components/VChip/VChip.mjs.map +1 -1
  36. package/lib/components/VCombobox/VCombobox.mjs +6 -2
  37. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  38. package/lib/components/VCombobox/index.d.mts +42 -0
  39. package/lib/components/VDialog/VDialog.css +15 -6
  40. package/lib/components/VDialog/VDialog.sass +41 -35
  41. package/lib/components/VField/VField.css +7 -2
  42. package/lib/components/VField/VField.mjs +5 -3
  43. package/lib/components/VField/VField.mjs.map +1 -1
  44. package/lib/components/VField/VField.sass +7 -2
  45. package/lib/components/VFileInput/VFileInput.css +4 -0
  46. package/lib/components/VFileInput/VFileInput.sass +5 -1
  47. package/lib/components/VFileInput/_variables.scss +2 -1
  48. package/lib/components/VGrid/VGrid.css +4 -0
  49. package/lib/components/VGrid/VGrid.sass +4 -1
  50. package/lib/components/VGrid/VSpacer.mjs +1 -1
  51. package/lib/components/VGrid/VSpacer.mjs.map +1 -1
  52. package/lib/components/VList/VList.css +1 -1
  53. package/lib/components/VList/VList.sass +1 -1
  54. package/lib/components/VList/VListItem.css +20 -9
  55. package/lib/components/VList/VListItem.mjs +6 -2
  56. package/lib/components/VList/VListItem.mjs.map +1 -1
  57. package/lib/components/VList/VListItem.sass +19 -8
  58. package/lib/components/VMenu/VMenu.mjs +4 -3
  59. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  60. package/lib/components/VMenu/index.d.mts +5 -5
  61. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +0 -1
  62. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
  63. package/lib/components/VNavigationDrawer/_variables.scss +0 -1
  64. package/lib/components/VRadio/index.d.mts +3 -1
  65. package/lib/components/VRadioGroup/VRadioGroup.css +6 -1
  66. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -0
  67. package/lib/components/VRadioGroup/_variables.scss +3 -1
  68. package/lib/components/VRadioGroup/index.d.mts +3 -1
  69. package/lib/components/VSelect/VSelect.mjs +14 -2
  70. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  71. package/lib/components/VSelect/index.d.mts +42 -0
  72. package/lib/components/VSelectionControl/VSelectionControl.mjs +22 -19
  73. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  74. package/lib/components/VSelectionControl/index.d.mts +27 -25
  75. package/lib/components/VSwitch/VSwitch.css +24 -17
  76. package/lib/components/VSwitch/VSwitch.mjs +28 -19
  77. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  78. package/lib/components/VSwitch/VSwitch.sass +20 -11
  79. package/lib/components/VSwitch/_variables.scss +18 -6
  80. package/lib/components/VSwitch/index.d.mts +3 -1
  81. package/lib/components/VTextField/VTextField.css +9 -2
  82. package/lib/components/VTextField/VTextField.mjs +6 -3
  83. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  84. package/lib/components/VTextField/VTextField.sass +10 -3
  85. package/lib/components/VTextField/index.d.mts +6 -0
  86. package/lib/components/VTextarea/VTextarea.mjs +1 -2
  87. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  88. package/lib/components/VTimeline/VTimeline.css +6 -1
  89. package/lib/components/VTimeline/VTimeline.sass +6 -1
  90. package/lib/components/VTooltip/VTooltip.css +1 -1
  91. package/lib/components/VTooltip/_variables.scss +1 -1
  92. package/lib/components/index.d.mts +169 -35
  93. package/lib/entry-bundler.mjs +1 -1
  94. package/lib/framework.mjs +1 -1
  95. package/lib/index.d.mts +3 -3
  96. package/lib/labs/VDateInput/composables.mjs +11 -1
  97. package/lib/labs/VDateInput/composables.mjs.map +1 -1
  98. package/lib/labs/VDateInput/index.d.mts +6 -0
  99. package/lib/labs/VDatePicker/VDatePicker.mjs +34 -14
  100. package/lib/labs/VDatePicker/VDatePicker.mjs.map +1 -1
  101. package/lib/labs/VDatePicker/VDatePickerMonth.mjs +1 -1
  102. package/lib/labs/VDatePicker/VDatePickerMonth.mjs.map +1 -1
  103. package/lib/labs/VDatePicker/composables.mjs +4 -2
  104. package/lib/labs/VDatePicker/composables.mjs.map +1 -1
  105. package/lib/labs/VDatePicker/index.d.mts +14 -0
  106. package/lib/labs/VOtpInput/VOtpInput.mjs +31 -22
  107. package/lib/labs/VOtpInput/VOtpInput.mjs.map +1 -1
  108. package/lib/labs/VStepper/VStepper.mjs +12 -9
  109. package/lib/labs/VStepper/VStepper.mjs.map +1 -1
  110. package/lib/labs/VStepper/index.d.mts +50 -56
  111. package/lib/labs/components.d.mts +64 -56
  112. package/lib/labs/date/adapters/vuetify.mjs +1 -1
  113. package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
  114. package/lib/locale/af.mjs +1 -0
  115. package/lib/locale/af.mjs.map +1 -1
  116. package/lib/locale/ar.mjs +1 -0
  117. package/lib/locale/ar.mjs.map +1 -1
  118. package/lib/locale/az.mjs +1 -0
  119. package/lib/locale/az.mjs.map +1 -1
  120. package/lib/locale/bg.mjs +1 -0
  121. package/lib/locale/bg.mjs.map +1 -1
  122. package/lib/locale/ca.mjs +1 -0
  123. package/lib/locale/ca.mjs.map +1 -1
  124. package/lib/locale/ckb.mjs +1 -0
  125. package/lib/locale/ckb.mjs.map +1 -1
  126. package/lib/locale/cs.mjs +1 -0
  127. package/lib/locale/cs.mjs.map +1 -1
  128. package/lib/locale/da.mjs +1 -0
  129. package/lib/locale/da.mjs.map +1 -1
  130. package/lib/locale/de.mjs +1 -0
  131. package/lib/locale/de.mjs.map +1 -1
  132. package/lib/locale/el.mjs +1 -0
  133. package/lib/locale/el.mjs.map +1 -1
  134. package/lib/locale/en.mjs +1 -0
  135. package/lib/locale/en.mjs.map +1 -1
  136. package/lib/locale/es.mjs +1 -0
  137. package/lib/locale/es.mjs.map +1 -1
  138. package/lib/locale/et.mjs +1 -0
  139. package/lib/locale/et.mjs.map +1 -1
  140. package/lib/locale/fa.mjs +1 -0
  141. package/lib/locale/fa.mjs.map +1 -1
  142. package/lib/locale/fi.mjs +1 -0
  143. package/lib/locale/fi.mjs.map +1 -1
  144. package/lib/locale/fr.mjs +1 -0
  145. package/lib/locale/fr.mjs.map +1 -1
  146. package/lib/locale/he.mjs +1 -0
  147. package/lib/locale/he.mjs.map +1 -1
  148. package/lib/locale/hr.mjs +1 -0
  149. package/lib/locale/hr.mjs.map +1 -1
  150. package/lib/locale/hu.mjs +1 -0
  151. package/lib/locale/hu.mjs.map +1 -1
  152. package/lib/locale/id.mjs +1 -0
  153. package/lib/locale/id.mjs.map +1 -1
  154. package/lib/locale/index.d.mts +42 -0
  155. package/lib/locale/it.mjs +1 -0
  156. package/lib/locale/it.mjs.map +1 -1
  157. package/lib/locale/ja.mjs +1 -0
  158. package/lib/locale/ja.mjs.map +1 -1
  159. package/lib/locale/ko.mjs +1 -0
  160. package/lib/locale/ko.mjs.map +1 -1
  161. package/lib/locale/lt.mjs +1 -0
  162. package/lib/locale/lt.mjs.map +1 -1
  163. package/lib/locale/lv.mjs +1 -0
  164. package/lib/locale/lv.mjs.map +1 -1
  165. package/lib/locale/nl.mjs +1 -0
  166. package/lib/locale/nl.mjs.map +1 -1
  167. package/lib/locale/no.mjs +16 -15
  168. package/lib/locale/no.mjs.map +1 -1
  169. package/lib/locale/pl.mjs +1 -0
  170. package/lib/locale/pl.mjs.map +1 -1
  171. package/lib/locale/pt.mjs +1 -0
  172. package/lib/locale/pt.mjs.map +1 -1
  173. package/lib/locale/ro.mjs +1 -0
  174. package/lib/locale/ro.mjs.map +1 -1
  175. package/lib/locale/ru.mjs +1 -0
  176. package/lib/locale/ru.mjs.map +1 -1
  177. package/lib/locale/sk.mjs +1 -0
  178. package/lib/locale/sk.mjs.map +1 -1
  179. package/lib/locale/sl.mjs +1 -0
  180. package/lib/locale/sl.mjs.map +1 -1
  181. package/lib/locale/sr-Cyrl.mjs +1 -0
  182. package/lib/locale/sr-Cyrl.mjs.map +1 -1
  183. package/lib/locale/sr-Latn.mjs +1 -0
  184. package/lib/locale/sr-Latn.mjs.map +1 -1
  185. package/lib/locale/sv.mjs +1 -0
  186. package/lib/locale/sv.mjs.map +1 -1
  187. package/lib/locale/th.mjs +1 -0
  188. package/lib/locale/th.mjs.map +1 -1
  189. package/lib/locale/tr.mjs +1 -0
  190. package/lib/locale/tr.mjs.map +1 -1
  191. package/lib/locale/uk.mjs +1 -0
  192. package/lib/locale/uk.mjs.map +1 -1
  193. package/lib/locale/vi.mjs +1 -0
  194. package/lib/locale/vi.mjs.map +1 -1
  195. package/lib/locale/zh-Hans.mjs +1 -0
  196. package/lib/locale/zh-Hans.mjs.map +1 -1
  197. package/lib/locale/zh-Hant.mjs +1 -0
  198. package/lib/locale/zh-Hant.mjs.map +1 -1
  199. package/package.json +2 -2
@@ -15,29 +15,31 @@
15
15
  display: flex
16
16
  flex-direction: column
17
17
 
18
- > .v-card,
19
- > .v-sheet
20
- --v-scrollbar-offset: 0px
21
- border-radius: $dialog-border-radius
22
- overflow-y: auto
18
+ &,
19
+ > form
20
+ > .v-card,
21
+ > .v-sheet
22
+ --v-scrollbar-offset: 0px
23
+ border-radius: $dialog-border-radius
24
+ overflow-y: auto
23
25
 
24
- @include tools.elevation($dialog-elevation)
26
+ @include tools.elevation($dialog-elevation)
25
27
 
26
- > .v-card
27
- display: flex
28
- flex-direction: column
28
+ > .v-card
29
+ display: flex
30
+ flex-direction: column
29
31
 
30
- > .v-card-item
31
- padding: $dialog-card-header-padding
32
+ > .v-card-item
33
+ padding: $dialog-card-header-padding
32
34
 
33
- + .v-card-text
34
- padding-top: $dialog-card-header-text-padding-top
35
+ + .v-card-text
36
+ padding-top: $dialog-card-header-text-padding-top
35
37
 
36
- > .v-card-text
37
- font-size: inherit
38
- letter-spacing: $dialog-card-text-letter-spacing
39
- line-height: inherit
40
- padding: $dialog-card-text-padding
38
+ > .v-card-text
39
+ font-size: inherit
40
+ letter-spacing: $dialog-card-text-letter-spacing
41
+ line-height: inherit
42
+ padding: $dialog-card-text-padding
41
43
 
42
44
  .v-dialog--fullscreen
43
45
  --v-scrollbar-offset: 0px
@@ -54,23 +56,27 @@
54
56
  top: 0
55
57
  left: 0
56
58
 
57
- > .v-card,
58
- > .v-sheet
59
- min-height: 100%
60
- min-width: 100%
61
- border-radius: 0
59
+ &,
60
+ > form
61
+ > .v-card,
62
+ > .v-sheet
63
+ min-height: 100%
64
+ min-width: 100%
65
+ border-radius: 0
62
66
 
63
- .v-dialog--scrollable > .v-overlay__content,
64
- .v-dialog--scrollable > .v-overlay__content > form
65
- display: flex
66
-
67
- > .v-card
67
+ .v-dialog--scrollable > .v-overlay__content
68
+ &,
69
+ > form
68
70
  display: flex
69
- flex: 1 1 100%
70
- flex-direction: column
71
- max-height: 100%
72
- max-width: 100%
71
+ overflow: hidden
72
+
73
+ > .v-card
74
+ display: flex
75
+ flex: 1 1 100%
76
+ flex-direction: column
77
+ max-height: 100%
78
+ max-width: 100%
73
79
 
74
- > .v-card-text
75
- backface-visibility: hidden
76
- overflow-y: auto
80
+ > .v-card-text
81
+ backface-visibility: hidden
82
+ overflow-y: auto
@@ -253,6 +253,7 @@ textarea.v-field__input::placeholder {
253
253
  transform-origin: left center;
254
254
  transition: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
255
255
  transition-property: opacity, transform;
256
+ z-index: 1;
256
257
  }
257
258
  .v-field--variant-underlined .v-label.v-field-label, .v-field--variant-plain .v-label.v-field-label {
258
259
  top: calc(var(--v-input-padding-top) + var(--v-field-padding-top));
@@ -336,6 +337,7 @@ textarea.v-field__input::placeholder {
336
337
  --v-field-border-width: 2px;
337
338
  }
338
339
  .v-field--variant-filled .v-field__outline::before, .v-field--variant-underlined .v-field__outline::before {
340
+ border-color: currentColor;
339
341
  border-style: solid;
340
342
  border-width: 0 0 var(--v-field-border-width);
341
343
  opacity: var(--v-field-border-opacity);
@@ -505,10 +507,13 @@ textarea.v-field__input::placeholder {
505
507
 
506
508
  /* endregion */
507
509
  /* region MODIFIERS */
508
- .v-field--reverse .v-field__input.v-locale--is-ltr, .v-locale--is-ltr .v-field--reverse .v-field__input {
510
+ .v-field--reverse .v-field__field, .v-field--reverse .v-field__input {
511
+ flex-direction: row-reverse;
512
+ }
513
+ .v-field--reverse .v-field__input.v-locale--is-ltr, .v-locale--is-ltr .v-field--reverse .v-field__input, .v-field--reverse input.v-locale--is-ltr, .v-locale--is-ltr .v-field--reverse input {
509
514
  text-align: right;
510
515
  }
511
- .v-field--reverse .v-field__input.v-locale--is-rtl, .v-locale--is-rtl .v-field--reverse .v-field__input {
516
+ .v-field--reverse .v-field__input.v-locale--is-rtl, .v-locale--is-rtl .v-field--reverse .v-field__input, .v-field--reverse input.v-locale--is-rtl, .v-locale--is-rtl .v-field--reverse input {
512
517
  text-align: left;
513
518
  }
514
519
 
@@ -193,7 +193,7 @@ export const VField = genericComponent()({
193
193
  'v-field--no-label': !label,
194
194
  [`v-field--variant-${props.variant}`]: true
195
195
  }, themeClasses.value, backgroundColorClasses.value, focusClasses.value, loaderClasses.value, roundedClasses.value, rtlClasses.value, props.class],
196
- "style": [backgroundColorStyles.value, textColorStyles.value, props.style],
196
+ "style": [backgroundColorStyles.value, props.style],
197
197
  "onClick": onClick
198
198
  }, attrs), [_createVNode("div", {
199
199
  "class": "v-field__overlay"
@@ -217,7 +217,8 @@ export const VField = genericComponent()({
217
217
  "ref": floatingLabelRef,
218
218
  "class": [textColorClasses.value],
219
219
  "floating": true,
220
- "for": id.value
220
+ "for": id.value,
221
+ "style": textColorStyles.value
221
222
  }, {
222
223
  default: () => [label]
223
224
  }), _createVNode(VFieldLabel, {
@@ -253,7 +254,8 @@ export const VField = genericComponent()({
253
254
  "key": "append-icon",
254
255
  "name": "appendInner"
255
256
  }, null)]), _createVNode("div", {
256
- "class": ['v-field__outline', textColorClasses.value]
257
+ "class": ['v-field__outline', textColorClasses.value],
258
+ "style": textColorStyles.value
257
259
  }, [isOutlined && _createVNode(_Fragment, null, [_createVNode("div", {
258
260
  "class": "v-field__outline__start"
259
261
  }, null), hasLabel.value && _createVNode("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"VField.mjs","names":["VFieldLabel","VExpandXTransition","useInputIcon","useBackgroundColor","useTextColor","makeComponentProps","makeFocusProps","useFocus","IconValue","LoaderSlot","makeLoaderProps","useLoader","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","computed","ref","toRef","watch","animate","convertToUnit","EventProp","genericComponent","getUid","isOn","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","centerAffix","undefined","color","baseColor","dirty","disabled","error","flat","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","focused","val","setup","_ref","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","roundedClasses","rtlClasses","isActive","hasLabel","uid","messagesId","value","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","e","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","_createVNode","_mergeProps","class","loading","loader","_withDirectives","stopPropagation","_vShow","_Fragment","filterFieldProps","keys","Object","filter","k"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: never\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record<string, any> }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n },\n slots: VFieldSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n roundedClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n props.style,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : (typeof props.loading === 'string' ? props.loading : props.color) }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <InputIcon key=\"prepend-icon\" name=\"prependInner\" />\n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n )}\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n >\n { label }\n </VFieldLabel>\n )}\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { slots.clear\n ? slots.clear()\n : <InputIcon name=\"clear\" />\n }\n </div>\n </VExpandXTransition>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <InputIcon key=\"append-icon\" name=\"appendInner\" />\n )}\n </div>\n )}\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n </div>\n )}\n\n <div class=\"v-field__outline__end\" />\n </>\n )}\n\n { isPlainOrUnderlined.value && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n )}\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style')\n return pick(attrs, keys)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VField.mjs","names":["VFieldLabel","VExpandXTransition","useInputIcon","useBackgroundColor","useTextColor","makeComponentProps","makeFocusProps","useFocus","IconValue","LoaderSlot","makeLoaderProps","useLoader","useRtl","makeRoundedProps","useRounded","makeThemeProps","provideTheme","computed","ref","toRef","watch","animate","convertToUnit","EventProp","genericComponent","getUid","isOn","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","centerAffix","undefined","color","baseColor","dirty","disabled","error","flat","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","focused","val","setup","_ref","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","InputIcon","roundedClasses","rtlClasses","isActive","hasLabel","uid","messagesId","value","labelRef","floatingLabelRef","controlRef","isPlainOrUnderlined","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","el","$el","targetEl","requestAnimationFrame","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","style","getComputedStyle","targetStyle","duration","parseFloat","transitionDuration","scale","getPropertyValue","visibility","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","e","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","_createVNode","_mergeProps","class","loading","loader","_withDirectives","stopPropagation","_vShow","_Fragment","filterFieldProps","keys","Object","filter","k"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VFieldLabel } from './VFieldLabel'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { useInputIcon } from '@/components/VInput/InputIcon'\n\n// Composables\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { useRtl } from '@/composables/locale'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n animate,\n convertToUnit,\n EventProp,\n genericComponent,\n getUid,\n isOn,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { GenericProps } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'solo-inverted', 'solo-filled', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n centerAffix: {\n type: Boolean,\n default: undefined,\n },\n color: String,\n baseColor: String,\n dirty: Boolean,\n disabled: {\n type: Boolean,\n default: null,\n },\n error: Boolean,\n flat: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n 'onClick:clear': EventProp<[MouseEvent]>(),\n 'onClick:appendInner': EventProp<[MouseEvent]>(),\n 'onClick:prependInner': EventProp<[MouseEvent]>(),\n\n ...makeComponentProps(),\n ...makeLoaderProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n}, 'VField')\n\nexport type VFieldSlots = {\n clear: never\n 'prepend-inner': DefaultInputSlot\n 'append-inner': DefaultInputSlot\n label: DefaultInputSlot & { label: string | undefined, props: Record<string, any> }\n loader: LoaderSlotProps\n default: VFieldSlot\n}\n\nexport const VField = genericComponent<new <T>(\n props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n },\n slots: VFieldSlots\n) => GenericProps<typeof props, typeof slots>>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n const { InputIcon } = useInputIcon(props)\n const { roundedClasses } = useRounded(props)\n const { rtlClasses } = useRtl()\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const messagesId = computed(() => `${id.value}-messages`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n const isPlainOrUnderlined = computed(() => ['plain', 'underlined'].includes(props.variant))\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.error || props.disabled ? undefined\n : isActive.value && isFocused.value ? props.color\n : props.baseColor\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n\n requestAnimationFrame(() => {\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const style = getComputedStyle(el)\n const targetStyle = getComputedStyle(targetEl)\n const duration = parseFloat(style.transitionDuration) * 1000 || 150\n const scale = parseFloat(targetStyle.getPropertyValue('--v-field-label-scale'))\n const color = targetStyle.getPropertyValue('color')\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n animate(el, {\n transform: `translate(${x}px, ${y}px) scale(${scale})`,\n color,\n ...width,\n }, {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n ...slotProps.value,\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--center-affix': props.centerAffix ?? !isPlainOrUnderlined.value,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--flat': props.flat,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--no-label': !label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n roundedClasses.value,\n rtlClasses.value,\n props.class,\n ]}\n style={[\n backgroundColorStyles.value,\n props.style,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ !!props.loading }\n color={ props.error ? 'error' : (typeof props.loading === 'string' ? props.loading : props.color) }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <InputIcon key=\"prepend-icon\" name=\"prependInner\" />\n )}\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n )}\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n {['filled', 'solo', 'solo-inverted', 'solo-filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n for={ id.value }\n style={ textColorStyles.value }\n >\n { label }\n </VFieldLabel>\n )}\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n 'aria-describedby': messagesId.value,\n },\n focus,\n blur,\n } as VFieldSlot)}\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n onMousedown={ (e: MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n }}\n >\n { slots.clear\n ? slots.clear()\n : <InputIcon name=\"clear\" />\n }\n </div>\n </VExpandXTransition>\n )}\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <InputIcon key=\"append-icon\" name=\"appendInner\" />\n )}\n </div>\n )}\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n </div>\n )}\n\n <div class=\"v-field__outline__end\" />\n </>\n )}\n\n { isPlainOrUnderlined.value && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating for={ id.value }>\n { label }\n </VFieldLabel>\n )}\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n const keys = Object.keys(VField.props).filter(k => !isOn(k) && k !== 'class' && k !== 'style')\n return pick(attrs, keys)\n}\n"],"mappings":"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"}
@@ -129,7 +129,7 @@
129
129
  padding-inline-end: var(--v-field-padding-end)
130
130
  padding-top: var(--v-field-input-padding-top)
131
131
  padding-bottom: var(--v-field-input-padding-bottom)
132
- position: relative
132
+ position: relative
133
133
  width: 100%
134
134
 
135
135
  input
@@ -239,6 +239,7 @@
239
239
  transform-origin: left center
240
240
  transition: $field-transition-timing
241
241
  transition-property: opacity, transform
242
+ z-index: 1
242
243
 
243
244
  .v-field--variant-underlined &,
244
245
  .v-field--variant-plain &
@@ -325,6 +326,7 @@
325
326
  .v-field--variant-filled &,
326
327
  .v-field--variant-underlined &
327
328
  &::before
329
+ border-color: currentColor
328
330
  border-style: solid
329
331
  border-width: 0 0 var(--v-field-border-width)
330
332
  opacity: var(--v-field-border-opacity)
@@ -476,7 +478,10 @@
476
478
  /* endregion */
477
479
  /* region MODIFIERS */
478
480
  .v-field--reverse
479
- .v-field__input
481
+ .v-field__field, .v-field__input
482
+ flex-direction: row-reverse
483
+
484
+ .v-field__input, input
480
485
  @include tools.ltr()
481
486
  text-align: right
482
487
 
@@ -7,6 +7,10 @@
7
7
  width: 100%;
8
8
  z-index: 1;
9
9
  }
10
+ .v-file-input .v-input__details {
11
+ padding-inline-start: 16px;
12
+ padding-inline-end: 16px;
13
+ }
10
14
  .v-file-input .v-chip {
11
15
  margin-top: var(--v-input-chips-margin-top);
12
16
  margin-bottom: var(--v-input-chips-margin-bottom);
@@ -12,7 +12,11 @@
12
12
  top: 0
13
13
  width: 100%
14
14
  z-index: 1
15
-
15
+
16
+ .v-input__details
17
+ padding-inline-start: $file-input-details-padding-inline
18
+ padding-inline-end: $file-input-details-padding-inline
19
+
16
20
  .v-chip
17
21
  margin-top: var(--v-input-chips-margin-top)
18
22
  margin-bottom: var(--v-input-chips-margin-bottom)
@@ -1,4 +1,5 @@
1
1
  // Defaults
2
2
  $file-input-chip-margin-inline-end: null !default;
3
3
  $file-input-chips-margin-top: null !default;
4
- $file-input-chips-margin-bottom: null !default;
4
+ $file-input-chips-margin-bottom: null !default;
5
+ $file-input-details-padding-inline: 16px !default;
@@ -60,6 +60,10 @@
60
60
  padding: 0;
61
61
  }
62
62
 
63
+ .v-spacer {
64
+ flex-grow: 1;
65
+ }
66
+
63
67
  .v-col-xxl,
64
68
  .v-col-xxl-auto, .v-col-xxl-12, .v-col-xxl-11, .v-col-xxl-10, .v-col-xxl-9, .v-col-xxl-8, .v-col-xxl-7, .v-col-xxl-6, .v-col-xxl-5, .v-col-xxl-4, .v-col-xxl-3, .v-col-xxl-2, .v-col-xxl-1, .v-col-xl,
65
69
  .v-col-xl-auto, .v-col-xl-12, .v-col-xl-11, .v-col-xl-10, .v-col-xl-9, .v-col-xl-8, .v-col-xl-7, .v-col-xl-6, .v-col-xl-5, .v-col-xl-4, .v-col-xl-3, .v-col-xl-2, .v-col-xl-1, .v-col-lg,
@@ -7,7 +7,7 @@
7
7
 
8
8
  &--fluid
9
9
  max-width: 100%
10
-
10
+
11
11
  &.fill-height
12
12
  align-items: center
13
13
  display: flex
@@ -40,6 +40,9 @@
40
40
  > [class*="v-col-"]
41
41
  padding: 0
42
42
 
43
+ .v-spacer
44
+ flex-grow: 1
45
+
43
46
  // Columns
44
47
  //
45
48
  // Common styles for small and large grid columns
@@ -1,4 +1,4 @@
1
1
  // Utilities
2
2
  import { createSimpleFunctional } from "../../util/index.mjs";
3
- export const VSpacer = createSimpleFunctional('flex-grow-1', 'div', 'VSpacer');
3
+ export const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer');
4
4
  //# sourceMappingURL=VSpacer.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"VSpacer.mjs","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('flex-grow-1', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType<typeof VSpacer>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,aAAa,EAAE,KAAK,EAAE,SAAS,CAAC"}
1
+ {"version":3,"file":"VSpacer.mjs","names":["createSimpleFunctional","VSpacer"],"sources":["../../../src/components/VGrid/VSpacer.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer')\n\nexport type VSpacer = InstanceType<typeof VSpacer>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,OAAO,GAAGD,sBAAsB,CAAC,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC"}
@@ -23,7 +23,7 @@
23
23
  padding-inline-start: 8px;
24
24
  padding-inline-end: 8px;
25
25
  }
26
- .v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering) .v-list .v-avatar {
26
+ .v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering.v-navigation-drawer--expand-on-hover) .v-list .v-avatar {
27
27
  --v-avatar-height: 24px;
28
28
  }
29
29
  .v-list--rounded {
@@ -21,7 +21,7 @@
21
21
  padding-inline-start: $list-nav-padding
22
22
  padding-inline-end: $list-nav-padding
23
23
 
24
- .v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering) &
24
+ .v-navigation-drawer--rail:not(.v-navigation-drawer--is-hovering.v-navigation-drawer--expand-on-hover) &
25
25
  .v-avatar
26
26
  --v-avatar-height: 24px
27
27
 
@@ -101,10 +101,14 @@
101
101
  opacity: calc(0.15 * var(--v-theme-overlay-multiplier));
102
102
  }
103
103
  }
104
- .v-list-item__prepend > .v-icon, .v-list-item__append > .v-icon {
104
+ .v-list-item__prepend > .v-badge .v-icon,
105
+ .v-list-item__prepend > .v-icon, .v-list-item__append > .v-badge .v-icon,
106
+ .v-list-item__append > .v-icon {
105
107
  opacity: var(--v-medium-emphasis-opacity);
106
108
  }
109
+ .v-list-item--active .v-list-item__prepend > .v-badge .v-icon,
107
110
  .v-list-item--active .v-list-item__prepend > .v-icon,
111
+ .v-list-item--active .v-list-item__append > .v-badge .v-icon,
108
112
  .v-list-item--active .v-list-item__append > .v-icon {
109
113
  opacity: 1;
110
114
  }
@@ -126,11 +130,13 @@
126
130
  display: flex;
127
131
  grid-area: prepend;
128
132
  }
129
- .v-list-item__prepend > .v-avatar {
130
- margin-inline-end: 16px;
133
+ .v-list-item__prepend > .v-badge ~ .v-list-item__spacer,
134
+ .v-list-item__prepend > .v-icon ~ .v-list-item__spacer,
135
+ .v-list-item__prepend > .v-tooltip ~ .v-list-item__spacer {
136
+ width: 32px;
131
137
  }
132
- .v-list-item__prepend > .v-icon {
133
- margin-inline-end: 32px;
138
+ .v-list-item__prepend > .v-avatar ~ .v-list-item__spacer {
139
+ width: 16px;
134
140
  }
135
141
  .v-list-item--three-line .v-list-item__prepend {
136
142
  align-self: start;
@@ -142,11 +148,16 @@
142
148
  align-items: center;
143
149
  grid-area: append;
144
150
  }
145
- .v-list-item__append > .v-avatar {
146
- margin-inline-start: 16px;
151
+ .v-list-item__append .v-list-item__spacer {
152
+ order: -1;
147
153
  }
148
- .v-list-item__append > .v-icon {
149
- margin-inline-start: 32px;
154
+ .v-list-item__append > .v-badge ~ .v-list-item__spacer,
155
+ .v-list-item__append > .v-icon ~ .v-list-item__spacer,
156
+ .v-list-item__append > .v-tooltip ~ .v-list-item__spacer {
157
+ width: 32px;
158
+ }
159
+ .v-list-item__append > .v-avatar ~ .v-list-item__spacer {
160
+ width: 16px;
150
161
  }
151
162
  .v-list-item--three-line .v-list-item__append {
152
163
  align-self: start;
@@ -210,7 +210,9 @@ export const VListItem = genericComponent()({
210
210
  }
211
211
  }, {
212
212
  default: () => [slots.prepend?.(slotProps.value)]
213
- })]), _createVNode("div", {
213
+ }), _createVNode("div", {
214
+ "class": "v-list-item__spacer"
215
+ }, null)]), _createVNode("div", {
214
216
  "class": "v-list-item__content",
215
217
  "data-no-activator": ""
216
218
  }, [hasTitle && _createVNode(VListItemTitle, {
@@ -254,7 +256,9 @@ export const VListItem = genericComponent()({
254
256
  }
255
257
  }, {
256
258
  default: () => [slots.append?.(slotProps.value)]
257
- })])]
259
+ }), _createVNode("div", {
260
+ "class": "v-list-item__spacer"
261
+ }, null)])]
258
262
  }), [[_resolveDirective("ripple"), isClickable.value && props.ripple]]);
259
263
  });
260
264
  return {};
@@ -1 +1 @@
1
- {"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","color","variantProps","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","class","style","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ntype ListItemSlot = {\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VListItem.mjs","names":["VListItemSubtitle","VListItemTitle","VAvatar","VDefaultsProvider","VIcon","useList","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","IconValue","useNestedItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeTagProps","makeThemeProps","provideTheme","genOverlays","makeVariantProps","useVariant","Ripple","computed","watch","deprecate","EventProp","genericComponent","propsFactory","useRender","makeVListItemProps","active","type","Boolean","default","undefined","activeClass","String","activeColor","appendAvatar","appendIcon","baseColor","disabled","lines","link","nav","prependAvatar","prependIcon","ripple","Object","subtitle","Number","title","value","onClick","onClickOnce","variant","VListItem","name","directives","props","emits","click","e","setup","_ref","attrs","slots","emit","id","href","select","isSelected","isIndeterminate","isGroupActivator","root","parent","openOnSelect","list","isActive","isLink","isClickable","roundedProps","rounded","color","variantProps","val","open","immediate","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","lineClasses","slotProps","navigate","onKeyDown","key","preventDefault","Tag","tag","hasTitle","hasSubtitle","hasAppendMedia","hasAppend","append","hasPrependMedia","hasPrepend","prepend","updateHasPrepend","_withDirectives","_createVNode","class","style","_Fragment","density","image","icon","VListItemAction","start","end","_resolveDirective"],"sources":["../../../src/components/VList/VListItem.tsx"],"sourcesContent":["// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { useList } from './list'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { IconValue } from '@/composables/icons'\nimport { useNestedItem } from '@/composables/nested/nested'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, watch } from 'vue'\nimport { deprecate, EventProp, genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\ntype ListItemSlot = {\n isActive: boolean\n isSelected: boolean\n isIndeterminate: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string | number | boolean\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string | number | boolean\n}\n\nexport type VListItemSlots = {\n prepend: ListItemSlot\n append: ListItemSlot\n default: ListItemSlot\n title: ListItemTitleSlot\n subtitle: ListItemSubtitleSlot\n}\n\nexport const makeVListItemProps = propsFactory({\n active: {\n type: Boolean,\n default: undefined,\n },\n activeClass: String,\n /* @deprecated */\n activeColor: String,\n appendAvatar: String,\n appendIcon: IconValue,\n baseColor: String,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n link: {\n type: Boolean,\n default: undefined,\n },\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\n value: null,\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n}, 'VListItem')\n\nexport const VListItem = genericComponent<VListItemSlots>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeVListItemProps(),\n\n emits: {\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value === undefined ? link.href.value : props.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent, openOnSelect } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() =>\n props.active !== false &&\n (props.active || link.isActive?.value || isSelected.value)\n )\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (props.link || link.isClickable.value || (props.value != null && !!list))\n )\n\n const roundedProps = computed(() => props.rounded || props.nav)\n const color = computed(() => props.color ?? props.activeColor)\n const variantProps = computed(() => ({\n color: isActive.value ? color.value ?? props.baseColor : props.baseColor,\n variant: props.variant,\n }))\n\n watch(() => link.isActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n\n if (val) {\n openOnSelect(val)\n }\n }, { immediate: true })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n } satisfies ListItemSlot))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (isGroupActivator || !isClickable.value) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n useRender(() => {\n const Tag = isLink.value ? 'a' : props.tag\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasAppendMedia = !!(props.appendAvatar || props.appendIcon)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasPrependMedia = !!(props.prependAvatar || props.prependIcon)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n\n list?.updateHasPrepend(hasPrepend)\n\n if (props.activeColor) {\n deprecate('active-color', ['color', 'base-color'])\n }\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable.value,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: props.activeClass && isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n props.class,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n props.style,\n ]}\n href={ link.href.value }\n tabindex={ isClickable.value ? (list ? -2 : 0) : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={ isClickable.value && props.ripple }\n >\n { genOverlays(isClickable.value || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-list-item__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n density={ props.density }\n image={ props.prependAvatar }\n />\n )}\n\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n density={ props.density }\n icon={ props.prependIcon }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.prependAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.prependIcon,\n },\n VListItemAction: {\n start: true,\n },\n }}\n >\n { slots.prepend?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n\n <div class=\"v-list-item__content\" data-no-activator=\"\">\n { hasTitle && (\n <VListItemTitle key=\"title\">\n { slots.title?.({ title: props.title }) ?? props.title }\n </VListItemTitle>\n )}\n\n { hasSubtitle && (\n <VListItemSubtitle key=\"subtitle\">\n { slots.subtitle?.({ subtitle: props.subtitle }) ?? props.subtitle }\n </VListItemSubtitle>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-list-item__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n density={ props.density }\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n density={ props.density }\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n density: props.density,\n image: props.appendAvatar,\n },\n VIcon: {\n density: props.density,\n icon: props.appendIcon,\n },\n VListItemAction: {\n end: true,\n },\n }}\n >\n { slots.append?.(slotProps.value) }\n </VDefaultsProvider>\n )}\n\n <div class=\"v-list-item__spacer\" />\n </div>\n )}\n </Tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n"],"mappings":"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"}