@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.2

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 (277) hide show
  1. package/CHANGELOG.md +53 -2
  2. package/dist/json/attributes.json +343 -195
  3. package/dist/json/importMap.json +20 -0
  4. package/dist/json/tags.json +106 -44
  5. package/dist/json/web-types.json +946 -549
  6. package/dist/vuetify.css +1486 -1085
  7. package/dist/vuetify.d.ts +9036 -8077
  8. package/dist/vuetify.esm.js +1511 -944
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +1510 -943
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +825 -754
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/components/VAlert/VAlert.css +29 -8
  16. package/lib/components/VAlert/VAlert.mjs +31 -17
  17. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  18. package/lib/components/VAlert/VAlert.sass +27 -7
  19. package/lib/components/VAlert/VAlertTitle.mjs +1 -0
  20. package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
  21. package/lib/components/VAlert/_variables.scss +14 -7
  22. package/lib/components/VApp/VApp.css +1 -0
  23. package/lib/components/VApp/VApp.sass +1 -0
  24. package/lib/components/VAppBar/VAppBar.mjs +7 -3
  25. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  26. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  27. package/lib/components/VAutocomplete/VAutocomplete.mjs +82 -69
  28. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  29. package/lib/components/VAvatar/VAvatar.mjs +15 -14
  30. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  31. package/lib/components/VBanner/VBanner.css +82 -58
  32. package/lib/components/VBanner/VBanner.mjs +39 -43
  33. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  34. package/lib/components/VBanner/VBanner.sass +61 -54
  35. package/lib/components/VBanner/VBannerActions.mjs +34 -2
  36. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  37. package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
  38. package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
  39. package/lib/components/VBanner/VBannerIcon.mjs +20 -0
  40. package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
  41. package/lib/components/VBanner/_variables.scss +10 -14
  42. package/lib/components/VBanner/index.mjs +2 -0
  43. package/lib/components/VBanner/index.mjs.map +1 -1
  44. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +2 -0
  45. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  46. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
  47. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  48. package/lib/components/VBtn/VBtn.css +20 -1
  49. package/lib/components/VBtn/VBtn.mjs +20 -7
  50. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  51. package/lib/components/VBtn/VBtn.sass +15 -2
  52. package/lib/components/VBtn/_variables.scss +3 -0
  53. package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
  54. package/lib/components/VBtnGroup/VBtnGroup.sass +14 -6
  55. package/lib/components/VCard/VCard.css +13 -11
  56. package/lib/components/VCard/VCard.mjs +5 -2
  57. package/lib/components/VCard/VCard.mjs.map +1 -1
  58. package/lib/components/VCard/VCard.sass +12 -9
  59. package/lib/components/VCard/VCardActions.mjs +1 -2
  60. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  61. package/lib/components/VCard/VCardContent.mjs +3 -0
  62. package/lib/components/VCard/VCardContent.mjs.map +1 -0
  63. package/lib/components/VCard/_variables.scss +11 -5
  64. package/lib/components/VCard/index.mjs +1 -0
  65. package/lib/components/VCard/index.mjs.map +1 -1
  66. package/lib/components/VCarousel/VCarousel.mjs +1 -1
  67. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  68. package/lib/components/VCheckbox/VCheckbox.mjs +2 -2
  69. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  70. package/lib/components/VChip/VChip.css +3 -0
  71. package/lib/components/VChip/VChip.sass +3 -0
  72. package/lib/components/VChip/_variables.scss +3 -0
  73. package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
  74. package/lib/components/VCombobox/VCombobox.mjs +92 -74
  75. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  76. package/lib/components/VDialog/VDialog.css +31 -11
  77. package/lib/components/VDialog/VDialog.mjs +6 -9
  78. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  79. package/lib/components/VDialog/VDialog.sass +27 -10
  80. package/lib/components/VDialog/_variables.scss +3 -6
  81. package/lib/components/VExpansionPanel/VExpansionPanel.css +3 -2
  82. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
  83. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  84. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +5 -3
  85. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  86. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
  87. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  88. package/lib/components/VField/VField.css +1 -1
  89. package/lib/components/VField/VField.mjs +3 -4
  90. package/lib/components/VField/VField.mjs.map +1 -1
  91. package/lib/components/VField/VField.sass +1 -1
  92. package/lib/components/VFileInput/VFileInput.mjs +2 -1
  93. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  94. package/lib/components/VFooter/VFooter.mjs +32 -15
  95. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  96. package/lib/components/VForm/VForm.mjs +25 -11
  97. package/lib/components/VForm/VForm.mjs.map +1 -1
  98. package/lib/components/VIcon/VIcon.css +27 -12
  99. package/lib/components/VIcon/VIcon.mjs +19 -16
  100. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  101. package/lib/components/VIcon/VIcon.sass +27 -16
  102. package/lib/components/VIcon/_variables.scss +1 -0
  103. package/lib/components/VInput/VInput.css +3 -1
  104. package/lib/components/VInput/VInput.mjs +3 -4
  105. package/lib/components/VInput/VInput.mjs.map +1 -1
  106. package/lib/components/VInput/VInput.sass +3 -1
  107. package/lib/components/VInput/_variables.scss +4 -0
  108. package/lib/components/VList/VList.css +7 -6
  109. package/lib/components/VList/VList.mjs +36 -17
  110. package/lib/components/VList/VList.mjs.map +1 -1
  111. package/lib/components/VList/VList.sass +3 -2
  112. package/lib/components/VList/VListChildren.mjs +1 -1
  113. package/lib/components/VList/VListChildren.mjs.map +1 -1
  114. package/lib/components/VList/VListGroup.mjs +28 -10
  115. package/lib/components/VList/VListGroup.mjs.map +1 -1
  116. package/lib/components/VList/VListItem.css +119 -42
  117. package/lib/components/VList/VListItem.mjs +36 -32
  118. package/lib/components/VList/VListItem.mjs.map +1 -1
  119. package/lib/components/VList/VListItem.sass +76 -28
  120. package/lib/components/VList/VListItemAction.mjs +29 -0
  121. package/lib/components/VList/VListItemAction.mjs.map +1 -0
  122. package/lib/components/VList/VListItemAvatar.mjs +10 -16
  123. package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
  124. package/lib/components/VList/VListItemIcon.mjs +23 -0
  125. package/lib/components/VList/VListItemIcon.mjs.map +1 -0
  126. package/lib/components/VList/VListItemMedia.mjs +4 -4
  127. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  128. package/lib/components/VList/_variables.scss +12 -3
  129. package/lib/components/VList/index.mjs +2 -0
  130. package/lib/components/VList/index.mjs.map +1 -1
  131. package/lib/components/VMenu/VMenu.css +2 -12
  132. package/lib/components/VMenu/VMenu.mjs +61 -31
  133. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  134. package/lib/components/VMenu/VMenu.sass +3 -6
  135. package/lib/components/VMenu/shared.mjs +2 -0
  136. package/lib/components/VMenu/shared.mjs.map +1 -0
  137. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +1 -1
  138. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  139. package/lib/components/VOverlay/VOverlay.css +8 -0
  140. package/lib/components/VOverlay/VOverlay.mjs +16 -15
  141. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  142. package/lib/components/VOverlay/VOverlay.sass +9 -0
  143. package/lib/components/VOverlay/_variables.scss +1 -0
  144. package/lib/components/VOverlay/positionStrategies.mjs +7 -3
  145. package/lib/components/VOverlay/positionStrategies.mjs.map +1 -1
  146. package/lib/components/VOverlay/scrollStrategies.mjs +9 -0
  147. package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
  148. package/lib/components/VOverlay/useActivator.mjs +50 -14
  149. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  150. package/lib/components/VPagination/VPagination.mjs +10 -12
  151. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  152. package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
  153. package/lib/components/VRadio/VRadio.mjs +1 -2
  154. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  155. package/lib/components/VRadioGroup/VRadioGroup.mjs +2 -2
  156. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  157. package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
  158. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  159. package/lib/components/VRating/VRating.css +2 -2
  160. package/lib/components/VRating/VRating.mjs +13 -3
  161. package/lib/components/VRating/VRating.mjs.map +1 -1
  162. package/lib/components/VRating/VRating.sass +2 -2
  163. package/lib/components/VSelect/VSelect.mjs +70 -91
  164. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  165. package/lib/components/VSelectionControl/VSelectionControl.mjs +2 -1
  166. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  167. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +2 -2
  168. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  169. package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
  170. package/lib/components/VSlideGroup/VSlideGroup.mjs +36 -14
  171. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  172. package/lib/components/VSlideGroup/VSlideGroup.sass +0 -4
  173. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
  174. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  175. package/lib/components/VSlider/VSlider.css +7 -2
  176. package/lib/components/VSlider/VSlider.sass +11 -5
  177. package/lib/components/VSlider/VSliderTrack.css +6 -6
  178. package/lib/components/VSlider/VSliderTrack.mjs +1 -1
  179. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  180. package/lib/components/VSlider/VSliderTrack.sass +7 -7
  181. package/lib/components/VSlider/_variables.scss +5 -2
  182. package/lib/components/VSnackbar/VSnackbar.css +14 -13
  183. package/lib/components/VSnackbar/VSnackbar.mjs +22 -10
  184. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  185. package/lib/components/VSnackbar/VSnackbar.sass +15 -16
  186. package/lib/components/VSnackbar/_variables.scss +0 -4
  187. package/lib/components/VSwitch/VSwitch.mjs +8 -5
  188. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  189. package/lib/components/VSystemBar/VSystemBar.css +0 -5
  190. package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
  191. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  192. package/lib/components/VSystemBar/VSystemBar.sass +0 -5
  193. package/lib/components/VSystemBar/_variables.scss +0 -3
  194. package/lib/components/VTabs/VTab.mjs +28 -32
  195. package/lib/components/VTabs/VTab.mjs.map +1 -1
  196. package/lib/components/VTabs/VTabs.css +6 -2
  197. package/lib/components/VTabs/VTabs.mjs +7 -8
  198. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  199. package/lib/components/VTabs/VTabs.sass +6 -1
  200. package/lib/components/VTabs/shared.mjs +2 -0
  201. package/lib/components/VTabs/shared.mjs.map +1 -0
  202. package/lib/components/VTextField/VTextField.css +4 -4
  203. package/lib/components/VTextField/VTextField.mjs +5 -9
  204. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  205. package/lib/components/VTextField/VTextField.sass +5 -5
  206. package/lib/components/VTextarea/VTextarea.css +7 -4
  207. package/lib/components/VTextarea/VTextarea.sass +9 -5
  208. package/lib/components/VTimeline/VTimeline.css +187 -48
  209. package/lib/components/VTimeline/VTimeline.mjs +27 -11
  210. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  211. package/lib/components/VTimeline/VTimeline.sass +196 -51
  212. package/lib/components/VTimeline/VTimelineDivider.mjs +2 -1
  213. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  214. package/lib/components/VTimeline/_variables.scss +2 -1
  215. package/lib/components/VToolbar/VToolbar.css +8 -1
  216. package/lib/components/VToolbar/VToolbar.mjs +8 -11
  217. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  218. package/lib/components/VToolbar/VToolbar.sass +2 -1
  219. package/lib/components/VToolbar/VToolbarItems.mjs +0 -1
  220. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  221. package/lib/components/VToolbar/_variables.scss +13 -1
  222. package/lib/components/VWindow/VWindow.mjs +0 -8
  223. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  224. package/lib/components/index.d.ts +9025 -8077
  225. package/lib/composables/defaults.mjs +2 -2
  226. package/lib/composables/defaults.mjs.map +1 -1
  227. package/lib/composables/form.mjs +18 -5
  228. package/lib/composables/form.mjs.map +1 -1
  229. package/lib/composables/forwardRef.mjs +10 -6
  230. package/lib/composables/forwardRef.mjs.map +1 -1
  231. package/lib/composables/group.mjs +14 -6
  232. package/lib/composables/group.mjs.map +1 -1
  233. package/lib/composables/index.mjs.map +1 -1
  234. package/lib/composables/items.mjs +56 -0
  235. package/lib/composables/items.mjs.map +1 -0
  236. package/lib/composables/layout.mjs +7 -3
  237. package/lib/composables/layout.mjs.map +1 -1
  238. package/lib/composables/loader.mjs.map +1 -1
  239. package/lib/composables/nested/nested.mjs +27 -14
  240. package/lib/composables/nested/nested.mjs.map +1 -1
  241. package/lib/composables/nested/openStrategies.mjs +63 -36
  242. package/lib/composables/nested/openStrategies.mjs.map +1 -1
  243. package/lib/composables/nested/selectStrategies.mjs +163 -122
  244. package/lib/composables/nested/selectStrategies.mjs.map +1 -1
  245. package/lib/composables/overlay.mjs +5 -1
  246. package/lib/composables/overlay.mjs.map +1 -1
  247. package/lib/composables/proxiedModel.mjs.map +1 -1
  248. package/lib/composables/resizeObserver.mjs +1 -9
  249. package/lib/composables/resizeObserver.mjs.map +1 -1
  250. package/lib/composables/router.mjs +17 -5
  251. package/lib/composables/router.mjs.map +1 -1
  252. package/lib/composables/selectLink.mjs +19 -0
  253. package/lib/composables/selectLink.mjs.map +1 -0
  254. package/lib/composables/stack.mjs +7 -4
  255. package/lib/composables/stack.mjs.map +1 -1
  256. package/lib/composables/validation.mjs +6 -3
  257. package/lib/composables/validation.mjs.map +1 -1
  258. package/lib/composables/variant.mjs +0 -3
  259. package/lib/composables/variant.mjs.map +1 -1
  260. package/lib/directives/ripple/index.mjs +15 -3
  261. package/lib/directives/ripple/index.mjs.map +1 -1
  262. package/lib/entry-bundler.mjs +1 -1
  263. package/lib/framework.mjs +12 -7
  264. package/lib/framework.mjs.map +1 -1
  265. package/lib/index.d.ts +18 -2
  266. package/lib/locale/ca.mjs +9 -9
  267. package/lib/locale/ca.mjs.map +1 -1
  268. package/lib/styles/generic/_colors.scss +0 -1
  269. package/lib/styles/main.css +400 -392
  270. package/lib/styles/settings/_utilities.scss +54 -26
  271. package/lib/styles/tools/_states.sass +2 -1
  272. package/lib/util/defineComponent.mjs +37 -6
  273. package/lib/util/defineComponent.mjs.map +1 -1
  274. package/lib/util/getCurrentInstance.mjs +1 -1
  275. package/lib/util/getCurrentInstance.mjs.map +1 -1
  276. package/lib/util/helpers.mjs.map +1 -1
  277. package/package.json +31 -29
@@ -7,6 +7,7 @@ $icon-btn-margin-start-multiplier: -9 !default;
7
7
  $icon-btn-margin-end-multiplier: 4.5 !default;
8
8
  $icon-btn-margin-start: calc(var(--v-btn-height) / #{$icon-btn-margin-start-multiplier}) !default;
9
9
  $icon-btn-margin-end: calc(var(--v-btn-height) / #{$icon-btn-margin-end-multiplier}) !default;
10
+ $icon-btn-stacked-margin: 4px !default;
10
11
  $icon-left-margin-left: map.get(settings.$grid-gutters, 'md') !default;
11
12
  $icon-letter-spacing: normal !default;
12
13
  $icon-line-height: 1 !default;
@@ -1,6 +1,8 @@
1
1
  .v-input {
2
2
  display: grid;
3
3
  flex: 1 1 auto;
4
+ font-size: 1rem;
5
+ font-weight: 400;
4
6
  }
5
7
  .v-input--disabled {
6
8
  pointer-events: none;
@@ -34,7 +36,7 @@
34
36
 
35
37
  .v-input--horizontal {
36
38
  grid-template-areas: "prepend control append" "a messages b";
37
- grid-template-columns: max-content auto max-content;
39
+ grid-template-columns: max-content minmax(0, 1fr) max-content;
38
40
  grid-template-rows: auto auto;
39
41
  }
40
42
  .v-input--horizontal .v-input__prepend {
@@ -33,13 +33,12 @@ export const VInput = genericComponent()({
33
33
  props: { ...makeVInputProps()
34
34
  },
35
35
  emits: {
36
- 'click:prepend': e => true,
37
- 'click:append': e => true,
38
36
  'update:modelValue': val => true
39
37
  },
40
38
 
41
39
  setup(props, _ref) {
42
40
  let {
41
+ attrs,
43
42
  slots,
44
43
  emit
45
44
  } = _ref;
@@ -85,14 +84,14 @@ export const VInput = genericComponent()({
85
84
  }, [hasPrepend && _createVNode("div", {
86
85
  "class": "v-input__prepend"
87
86
  }, [slots == null ? void 0 : (_slots$prepend = slots.prepend) == null ? void 0 : _slots$prepend.call(slots, slotProps.value), props.prependIcon && _createVNode(VIcon, {
88
- "onClick": e => emit('click:prepend', e),
87
+ "onClick": attrs['onClick:prepend'],
89
88
  "icon": props.prependIcon
90
89
  }, null)]), slots.default && _createVNode("div", {
91
90
  "class": "v-input__control"
92
91
  }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value)]), hasAppend && _createVNode("div", {
93
92
  "class": "v-input__append"
94
93
  }, [slots == null ? void 0 : (_slots$append = slots.append) == null ? void 0 : _slots$append.call(slots, slotProps.value), props.appendIcon && _createVNode(VIcon, {
95
- "onClick": e => emit('click:append', e),
94
+ "onClick": attrs['onClick:append'],
96
95
  "icon": props.appendIcon
97
96
  }, null)]), hasDetails && _createVNode("div", {
98
97
  "class": "v-input__details"
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VInput/VInput.tsx"],"names":["VIcon","VMessages","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","genericComponent","getUid","pick","propsFactory","useRender","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","e","val","setup","slots","emit","densityClasses","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","uid","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","value","hasDetails","message","details","filterInputProps","Object","keys"],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: String,\n prependIcon: String,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: VInputSlots\n}>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'click:prepend': (e: MouseEvent) => true,\n 'click:append': (e: MouseEvent) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots, emit }) {\n const { densityClasses } = useDensity(props)\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n hasMessages\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div\n class=\"v-input__prepend\"\n >\n { slots?.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <VIcon\n onClick={ (e: MouseEvent) => emit('click:prepend', e) }\n icon={ props.prependIcon }\n />\n ) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div\n class=\"v-input__append\"\n >\n { slots?.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon\n onClick={ (e: MouseEvent) => emit('click:append', e) }\n icon={ props.appendIcon }\n />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n"],"file":"VInput.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VInput/VInput.tsx"],"names":["VIcon","VMessages","makeDensityProps","useDensity","makeValidationProps","useValidation","computed","genericComponent","getUid","pick","propsFactory","useRender","makeVInputProps","id","String","appendIcon","prependIcon","hideDetails","Boolean","messages","type","Array","default","direction","validator","v","includes","VInput","name","props","emits","val","setup","attrs","slots","emit","densityClasses","errorMessages","isDirty","isDisabled","isReadonly","isPristine","isValid","isValidating","reset","resetValidation","validate","validationClasses","uid","slotProps","hasPrepend","prepend","hasAppend","append","hasMessages","length","value","hasDetails","message","details","filterInputProps","Object","keys"],"mappings":"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","sourcesContent":["// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: String,\n prependIcon: String,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: VInputSlots\n}>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n hasMessages\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div\n class=\"v-input__prepend\"\n >\n { slots?.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <VIcon\n onClick={ attrs['onClick:prepend'] }\n icon={ props.prependIcon }\n />\n ) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div\n class=\"v-input__append\"\n >\n { slots?.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon\n onClick={ attrs['onClick:append'] }\n icon={ props.appendIcon }\n />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n"],"file":"VInput.mjs"}
@@ -5,6 +5,8 @@
5
5
  .v-input
6
6
  display: grid
7
7
  flex: 1 1 auto
8
+ font-size: $input-font-size
9
+ font-weight: $input-font-weight
8
10
 
9
11
  &--disabled
10
12
  pointer-events: none
@@ -27,7 +29,7 @@
27
29
 
28
30
  .v-input--horizontal
29
31
  grid-template-areas: "prepend control append" "a messages b"
30
- grid-template-columns: max-content auto max-content
32
+ grid-template-columns: max-content minmax(0, 1fr) max-content
31
33
  grid-template-rows: auto auto
32
34
 
33
35
  .v-input__prepend
@@ -1,8 +1,12 @@
1
+ @use 'sass:map';
1
2
  @use '../../styles/settings';
3
+ @use '../../styles/tools';
2
4
 
3
5
  // CONTROL
4
6
  $input-density: ('default': 0, 'comfortable': -2, 'compact': -4) !default;
5
7
  $input-control-height: 56px !default;
8
+ $input-font-size: tools.map-deep-get(settings.$typography, 'body-1', 'size') !default;
9
+ $input-font-weight: tools.map-deep-get(settings.$typography, 'body-1', 'weight') !default;
6
10
 
7
11
  // DETAILS
8
12
  $input-details-font-size: .75rem !default;
@@ -24,8 +24,9 @@
24
24
  pointer-events: none;
25
25
  user-select: none;
26
26
  }
27
- .v-list--disabled > [class*=v-list-] {
28
- opacity: 0.6;
27
+ .v-list--nav {
28
+ padding-inline-start: 8px;
29
+ padding-inline-end: 8px;
29
30
  }
30
31
  .v-list--rounded {
31
32
  border-radius: 4px;
@@ -54,7 +55,7 @@
54
55
  font-weight: 500;
55
56
  line-height: 1.375rem;
56
57
  padding-inline-end: 16px;
57
- min-height: 48px;
58
+ min-height: 40px;
58
59
  transition: 0.2s min-height cubic-bezier(0.4, 0, 0.2, 1);
59
60
  }
60
61
  .v-list-subheader__text {
@@ -64,17 +65,17 @@
64
65
  white-space: nowrap;
65
66
  }
66
67
  .v-list--density-default .v-list-subheader {
67
- min-height: 48px;
68
+ min-height: 40px;
68
69
  padding-inline-start: calc(16px + var(--indent-padding)) !important;
69
70
  }
70
71
 
71
72
  .v-list--density-comfortable .v-list-subheader {
72
- min-height: 44px;
73
+ min-height: 36px;
73
74
  padding-inline-start: calc(16px + var(--indent-padding)) !important;
74
75
  }
75
76
 
76
77
  .v-list--density-compact .v-list-subheader {
77
- min-height: 40px;
78
+ min-height: 32px;
78
79
  padding-inline-start: calc(16px + var(--indent-padding)) !important;
79
80
  }
80
81
 
@@ -1,4 +1,4 @@
1
- import { createVNode as _createVNode } from "vue";
1
+ import { createVNode as _createVNode, resolveDirective as _resolveDirective } from "vue";
2
2
  // Styles
3
3
  import "./VList.css"; // Components
4
4
 
@@ -13,7 +13,9 @@ import { makeTagProps } from "../../composables/tag.mjs";
13
13
  import { useBackgroundColor } from "../../composables/color.mjs";
14
14
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
15
15
  import { makeNestedProps, useNested } from "../../composables/nested/nested.mjs";
16
- import { createList } from "./list.mjs"; // Utilities
16
+ import { makeVariantProps } from "../../composables/variant.mjs";
17
+ import { createList } from "./list.mjs";
18
+ import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
17
19
 
18
20
  import { computed, toRef } from 'vue';
19
21
  import { genericComponent, useRender } from "../../util/index.mjs"; // Types
@@ -50,17 +52,19 @@ const parseItems = items => {
50
52
  export const VList = genericComponent()({
51
53
  name: 'VList',
52
54
  props: {
53
- color: String,
55
+ activeColor: String,
56
+ activeClass: String,
57
+ bgColor: String,
54
58
  disabled: Boolean,
55
59
  lines: {
56
- type: String,
60
+ type: [Boolean, String],
57
61
  default: 'one'
58
62
  },
59
63
  nav: Boolean,
60
64
  items: Array,
61
65
  ...makeNestedProps({
62
66
  selectStrategy: 'single-leaf',
63
- openStrategy: 'multiple'
67
+ openStrategy: 'list'
64
68
  }),
65
69
  ...makeBorderProps(),
66
70
  ...makeDensityProps(),
@@ -68,7 +72,10 @@ export const VList = genericComponent()({
68
72
  ...makeElevationProps(),
69
73
  ...makeRoundedProps(),
70
74
  ...makeTagProps(),
71
- ...makeThemeProps()
75
+ ...makeThemeProps(),
76
+ ...makeVariantProps({
77
+ variant: 'text'
78
+ })
72
79
  },
73
80
  emits: {
74
81
  'update:selected': val => true,
@@ -88,7 +95,7 @@ export const VList = genericComponent()({
88
95
  const {
89
96
  backgroundColorClasses,
90
97
  backgroundColorStyles
91
- } = useBackgroundColor(toRef(props, 'color'));
98
+ } = useBackgroundColor(toRef(props, 'bgColor'));
92
99
  const {
93
100
  borderClasses
94
101
  } = useBorder(props);
@@ -108,25 +115,37 @@ export const VList = genericComponent()({
108
115
  open,
109
116
  select
110
117
  } = useNested(props);
118
+ const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined);
119
+ const activeColor = toRef(props, 'activeColor');
120
+ const color = toRef(props, 'color');
111
121
  createList();
122
+ provideDefaults({
123
+ VListGroup: {
124
+ activeColor,
125
+ color
126
+ },
127
+ VListItem: {
128
+ activeClass: toRef(props, 'activeClass'),
129
+ activeColor,
130
+ color,
131
+ density: toRef(props, 'density'),
132
+ disabled: toRef(props, 'disabled'),
133
+ lines: toRef(props, 'lines'),
134
+ nav: toRef(props, 'nav'),
135
+ variant: toRef(props, 'variant')
136
+ }
137
+ });
112
138
  useRender(() => {
113
139
  return _createVNode(props.tag, {
114
140
  "class": ['v-list', {
115
141
  'v-list--disabled': props.disabled,
116
- 'v-list--nav': props.nav,
117
- [`v-list--${props.lines}-line`]: true
118
- }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, roundedClasses.value],
142
+ 'v-list--nav': props.nav
143
+ }, themeClasses.value, backgroundColorClasses.value, borderClasses.value, densityClasses.value, elevationClasses.value, lineClasses.value, roundedClasses.value],
119
144
  "style": [backgroundColorStyles.value, dimensionStyles.value]
120
145
  }, {
121
146
  default: () => [_createVNode(VListChildren, {
122
147
  "items": items.value
123
- }, {
124
- default: slots.default,
125
- item: slots.item,
126
- title: slots.title,
127
- subtitle: slots.subtitle,
128
- header: slots.header
129
- })]
148
+ }, slots)]
130
149
  });
131
150
  });
132
151
  return {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/VList.tsx"],"names":["VListChildren","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","makeThemeProps","provideTheme","makeNestedProps","useNested","createList","computed","toRef","genericComponent","useRender","parseItems","items","undefined","map","item","type","value","title","$type","$children","props","children","VList","name","color","String","disabled","Boolean","lines","default","nav","Array","selectStrategy","openStrategy","emits","val","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","select","subtitle","header"],"mappings":"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","sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { createList } from './list'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupActivatorSlot } from './VListGroup'\n\nexport type ListItem = {\n [key: string]: any\n $type?: 'item' | 'subheader' | 'divider'\n $children?: (string | ListItem)[]\n}\n\nexport type InternalListItem = {\n type?: 'item' | 'subheader' | 'divider'\n props?: Record<string, any>\n children?: InternalListItem[]\n}\n\nconst parseItems = (items?: (string | ListItem)[]): InternalListItem[] | undefined => {\n if (!items) return undefined\n\n return items.map(item => {\n if (typeof item === 'string') return { type: 'item', value: item, title: item }\n\n const { $type, $children, ...props } = item\n\n if ($type === 'subheader') return { type: 'subheader', props }\n if ($type === 'divider') return { type: 'divider', props }\n\n return { type: 'item', props, children: parseItems($children) }\n })\n}\n\nexport const VList = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n subheader: []\n header: [ListGroupActivatorSlot]\n item: [T]\n }>\n}>()({\n name: 'VList',\n\n props: {\n color: String,\n disabled: Boolean,\n lines: {\n type: String,\n default: 'one',\n },\n nav: Boolean,\n items: Array as Prop<ListItem[]>,\n\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'multiple' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:selected': (val: string[]) => true,\n 'update:opened': (val: string[]) => true,\n 'click:open': (value: { id: string, value: boolean, path: string[] }) => true,\n 'click:select': (value: { id: string, value: boolean, path: string[] }) => true,\n },\n\n setup (props, { slots }) {\n const items = computed(() => parseItems(props.items))\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\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 const { open, select } = useNested(props)\n\n createList()\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n [`v-list--${props.lines}-line`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n ]}\n >\n <VListChildren items={ items.value }>\n {{\n default: slots.default,\n item: slots.item,\n title: slots.title,\n subtitle: slots.subtitle,\n header: slots.header,\n }}\n </VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"file":"VList.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/VList.tsx"],"names":["VListChildren","makeBorderProps","useBorder","makeDensityProps","useDensity","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","makeThemeProps","provideTheme","makeNestedProps","useNested","makeVariantProps","createList","provideDefaults","computed","toRef","genericComponent","useRender","parseItems","items","undefined","map","item","type","value","title","$type","$children","props","children","VList","name","activeColor","String","activeClass","bgColor","disabled","Boolean","lines","default","nav","Array","selectStrategy","openStrategy","variant","emits","val","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","densityClasses","dimensionStyles","elevationClasses","roundedClasses","open","select","lineClasses","color","VListGroup","VListItem","density"],"mappings":"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","sourcesContent":["// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeVariantProps } from '@/composables/variant'\nimport { createList } from './list'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupActivatorSlot } from './VListGroup'\n\nexport type ListItem = {\n [key: string]: any\n $type?: 'item' | 'subheader' | 'divider'\n $children?: (string | ListItem)[]\n}\n\nexport type InternalListItem = {\n type?: 'item' | 'subheader' | 'divider'\n props?: Record<string, any>\n children?: InternalListItem[]\n}\n\nconst parseItems = (items?: (string | ListItem)[]): InternalListItem[] | undefined => {\n if (!items) return undefined\n\n return items.map(item => {\n if (typeof item === 'string') return { type: 'item', value: item, title: item }\n\n const { $type, $children, ...props } = item\n\n if ($type === 'subheader') return { type: 'subheader', props }\n if ($type === 'divider') return { type: 'divider', props }\n\n return { type: 'item', props, children: parseItems($children) }\n })\n}\n\nexport const VList = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n subheader: []\n header: [ListGroupActivatorSlot]\n item: [T]\n }>\n}>()({\n name: 'VList',\n\n props: {\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n nav: Boolean,\n items: Array as Prop<ListItem[]>,\n\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:selected': (val: string[]) => true,\n 'update:opened': (val: string[]) => true,\n 'click:open': (value: { id: string, value: boolean, path: string[] }) => true,\n 'click:select': (value: { id: string, value: boolean, path: string[] }) => true,\n },\n\n setup (props, { slots }) {\n const items = computed(() => parseItems(props.items))\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(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 const { open, select } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n color,\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n ]}\n >\n <VListChildren items={ items.value } v-slots={ slots }></VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n"],"file":"VList.mjs"}
@@ -18,8 +18,9 @@
18
18
  pointer-events: none
19
19
  user-select: none
20
20
 
21
- > [class*='v-list-']
22
- opacity: $list-disabled-opacity
21
+ &--nav
22
+ padding-inline-start: $list-nav-padding
23
+ padding-inline-end: $list-nav-padding
23
24
 
24
25
  &--rounded
25
26
  @include tools.rounded($list-rounded-border-radius)
@@ -39,7 +39,7 @@ export const VListChildren = genericComponent()({
39
39
  } = _ref3;
40
40
  return slots.header ? slots.header({ ...itemProps,
41
41
  ...activatorProps
42
- }) : _createVNode(VListItem, _mergeProps(itemProps, activatorProps), null);
42
+ }) : _createVNode(VListItem, _mergeProps(itemProps, activatorProps), slots);
43
43
  },
44
44
  default: () => _createVNode(VListChildren, {
45
45
  "items": children
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/VListChildren.tsx"],"names":["VDivider","VListGroup","VListItem","VListSubheader","genericComponent","createList","VListChildren","name","props","items","Array","setup","slots","default","map","children","itemProps","type","value","activator","activatorProps","header","item"],"mappings":";AAAA;SACSA,Q;SACAC,U;SACAC,S;SACAC,c,gCAET;;SACSC,gB;SACAC,U,sBAET;;AAOA,OAAO,MAAMC,aAAa,GAAGF,gBAAgB,GAWxC;AACHG,EAAAA,IAAI,EAAE,eADH;AAGHC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC;AADF,GAHJ;;AAOHC,EAAAA,KAAK,CAAEH,KAAF,QAAoB;AAAA,QAAX;AAAEI,MAAAA;AAAF,KAAW;AACvBP,IAAAA,UAAU;AAEV,WAAO;AAAA;;AAAA,kDAAMO,KAAK,CAACC,OAAZ,qBAAM,qBAAAD,KAAK,CAAX,6CAA2BJ,KAAK,CAACC,KAAjC,qBAA2B,aAAaK,GAAb,CAAiB,SAA0C;AAAA,YAAzC;AAAEC,UAAAA,QAAF;AAAYP,UAAAA,KAAK,EAAEQ,SAAnB;AAA8BC,UAAAA;AAA9B,SAAyC;AAC3F,YAAIA,IAAI,KAAK,SAAb,EAAwB,8BAAqBD,SAArB;AAExB,YAAIC,IAAI,KAAK,WAAb,EAA0B,oCAA2BD,SAA3B,EAAgDJ,KAAhD;AAE1B,eAAOG,QAAQ;AAAA,mBAEHC,SAFG,oBAEHA,SAAS,CAAEE;AAFR;AAKTC,UAAAA,SAAS,EAAE;AAAA,gBAAC;AAAEX,cAAAA,KAAK,EAAEY;AAAT,aAAD;AAAA,mBAA+BR,KAAK,CAACS,MAAN,GACtCT,KAAK,CAACS,MAAN,CAAa,EAAE,GAAGL,SAAL;AAAgB,iBAAGI;AAAnB,aAAb,CADsC,uCAEtBJ,SAFsB,EAELI,cAFK,QAA/B;AAAA,WALF;AAQTP,UAAAA,OAAO,EAAE;AAAA,qBACgBE;AADhB,aACqCH,KADrC;AARA,aAcbA,KAAK,CAACU,IAAN,GAAaV,KAAK,CAACU,IAAN,CAAWN,SAAX,CAAb,2BAAqDA,SAArD,EAA2EJ,KAA3E,CAdF;AAgBD,OArBiC,CAA3B;AAAA,KAAP;AAsBD;;AAhCE,CAXwC,CAAtC","sourcesContent":["// Components\nimport { VDivider } from '../VDivider'\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\n\n// Utilities\nimport { genericComponent } from '@/util'\nimport { createList } from './list'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { ListItemSubtitleSlot, ListItemTitleSlot } from './VListItem'\nimport type { ListGroupActivatorSlot } from './VListGroup'\nimport type { MakeSlots } from '@/util'\nimport type { Prop } from 'vue'\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n header: [ListGroupActivatorSlot]\n item: [T]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n }>\n}>()({\n name: 'VListChildren',\n\n props: {\n items: Array as Prop<InternalListItem[]>,\n },\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type }) => {\n if (type === 'divider') return <VDivider {...itemProps} />\n\n if (type === 'subheader') return <VListSubheader {...itemProps} v-slots={ slots } />\n\n return children ? (\n <VListGroup\n value={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => slots.header\n ? slots.header({ ...itemProps, ...activatorProps })\n : <VListItem { ...itemProps } { ...activatorProps } />,\n default: () => (\n <VListChildren items={ children } v-slots={ slots } />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(itemProps) : <VListItem { ...itemProps } v-slots={ slots } />\n )\n })\n },\n})\n"],"file":"VListChildren.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/VListChildren.tsx"],"names":["VDivider","VListGroup","VListItem","VListSubheader","genericComponent","createList","VListChildren","name","props","items","Array","setup","slots","default","map","children","itemProps","type","value","activator","activatorProps","header","item"],"mappings":";AAAA;SACSA,Q;SACAC,U;SACAC,S;SACAC,c,gCAET;;SACSC,gB;SACAC,U,sBAET;;AAOA,OAAO,MAAMC,aAAa,GAAGF,gBAAgB,GAWxC;AACHG,EAAAA,IAAI,EAAE,eADH;AAGHC,EAAAA,KAAK,EAAE;AACLC,IAAAA,KAAK,EAAEC;AADF,GAHJ;;AAOHC,EAAAA,KAAK,CAAEH,KAAF,QAAoB;AAAA,QAAX;AAAEI,MAAAA;AAAF,KAAW;AACvBP,IAAAA,UAAU;AAEV,WAAO;AAAA;;AAAA,kDAAMO,KAAK,CAACC,OAAZ,qBAAM,qBAAAD,KAAK,CAAX,6CAA2BJ,KAAK,CAACC,KAAjC,qBAA2B,aAAaK,GAAb,CAAiB,SAA0C;AAAA,YAAzC;AAAEC,UAAAA,QAAF;AAAYP,UAAAA,KAAK,EAAEQ,SAAnB;AAA8BC,UAAAA;AAA9B,SAAyC;AAC3F,YAAIA,IAAI,KAAK,SAAb,EAAwB,8BAAqBD,SAArB;AAExB,YAAIC,IAAI,KAAK,WAAb,EAA0B,oCAA2BD,SAA3B,EAAgDJ,KAAhD;AAE1B,eAAOG,QAAQ;AAAA,mBAEHC,SAFG,oBAEHA,SAAS,CAAEE;AAFR;AAKTC,UAAAA,SAAS,EAAE;AAAA,gBAAC;AAAEX,cAAAA,KAAK,EAAEY;AAAT,aAAD;AAAA,mBAA+BR,KAAK,CAACS,MAAN,GACtCT,KAAK,CAACS,MAAN,CAAa,EAAE,GAAGL,SAAL;AAAgB,iBAAGI;AAAnB,aAAb,CADsC,uCAEtBJ,SAFsB,EAELI,cAFK,GAEsBR,KAFtB,CAA/B;AAAA,WALF;AAQTC,UAAAA,OAAO,EAAE;AAAA,qBACgBE;AADhB,aACqCH,KADrC;AARA,aAcbA,KAAK,CAACU,IAAN,GAAaV,KAAK,CAACU,IAAN,CAAWN,SAAX,CAAb,2BAAqDA,SAArD,EAA2EJ,KAA3E,CAdF;AAgBD,OArBiC,CAA3B;AAAA,KAAP;AAsBD;;AAhCE,CAXwC,CAAtC","sourcesContent":["// Components\nimport { VDivider } from '../VDivider'\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\n\n// Utilities\nimport { genericComponent } from '@/util'\nimport { createList } from './list'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { ListItemSubtitleSlot, ListItemTitleSlot } from './VListItem'\nimport type { ListGroupActivatorSlot } from './VListGroup'\nimport type { MakeSlots } from '@/util'\nimport type { Prop } from 'vue'\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n header: [ListGroupActivatorSlot]\n item: [T]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n }>\n}>()({\n name: 'VListChildren',\n\n props: {\n items: Array as Prop<InternalListItem[]>,\n },\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type }) => {\n if (type === 'divider') return <VDivider {...itemProps} />\n\n if (type === 'subheader') return <VListSubheader {...itemProps} v-slots={ slots } />\n\n return children ? (\n <VListGroup\n value={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => slots.header\n ? slots.header({ ...itemProps, ...activatorProps })\n : <VListItem { ...itemProps } { ...activatorProps } v-slots={ slots } />,\n default: () => (\n <VListChildren items={ children } v-slots={ slots } />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(itemProps) : <VListItem { ...itemProps } v-slots={ slots } />\n )\n })\n },\n})\n"],"file":"VListChildren.mjs"}
@@ -1,13 +1,14 @@
1
1
  import { withDirectives as _withDirectives, vShow as _vShow, createVNode as _createVNode } from "vue";
2
2
  // Components
3
+ import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
3
4
  import { VExpandTransition } from "../transitions/index.mjs"; // Composables
4
5
 
5
6
  import { useList } from "./list.mjs";
6
7
  import { makeTagProps } from "../../composables/tag.mjs";
7
8
  import { useNestedGroupActivator, useNestedItem } from "../../composables/nested/nested.mjs"; // Utilities
8
9
 
9
- import { computed, defineComponent, toRef } from 'vue';
10
- import { genericComponent } from "../../util/index.mjs"; // Types
10
+ import { computed, toRef } from 'vue';
11
+ import { defineComponent, genericComponent } from "../../util/index.mjs"; // Types
11
12
 
12
13
  const VListGroupActivator = defineComponent({
13
14
  name: 'VListGroupActivator',
@@ -28,6 +29,8 @@ const VListGroupActivator = defineComponent({
28
29
  export const VListGroup = genericComponent()({
29
30
  name: 'VListGroup',
30
31
  props: {
32
+ activeColor: String,
33
+ color: String,
31
34
  collapseIcon: {
32
35
  type: String,
33
36
  default: '$collapse'
@@ -54,11 +57,17 @@ export const VListGroup = genericComponent()({
54
57
  open(!isOpen.value, e);
55
58
  };
56
59
 
57
- const activatorProps = computed(() => ({
58
- onClick,
59
- appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,
60
- class: 'v-list-group__header'
61
- }));
60
+ const activatorProps = computed(() => {
61
+ var _props$activeColor;
62
+
63
+ return {
64
+ onClick,
65
+ active: isOpen.value,
66
+ appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,
67
+ class: 'v-list-group__header',
68
+ color: isOpen.value ? (_props$activeColor = props.activeColor) != null ? _props$activeColor : props.color : undefined
69
+ };
70
+ });
62
71
  return () => {
63
72
  var _slots$default2;
64
73
 
@@ -67,9 +76,18 @@ export const VListGroup = genericComponent()({
67
76
  'v-list-group--prepend': list == null ? void 0 : list.hasPrepend.value
68
77
  }]
69
78
  }, {
70
- default: () => [slots.activator && _createVNode(VListGroupActivator, null, {
71
- default: () => [slots.activator({
72
- props: activatorProps.value
79
+ default: () => [slots.activator && _createVNode(VDefaultsProvider, {
80
+ "defaults": {
81
+ VListItemIcon: {
82
+ color: activatorProps.value.color
83
+ }
84
+ }
85
+ }, {
86
+ default: () => [_createVNode(VListGroupActivator, null, {
87
+ default: () => [slots.activator({
88
+ props: activatorProps.value,
89
+ isOpen
90
+ })]
73
91
  })]
74
92
  }), _createVNode(VExpandTransition, null, {
75
93
  default: () => [_withDirectives(_createVNode("div", {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/components/VList/VListGroup.tsx"],"names":["VExpandTransition","useList","makeTagProps","useNestedGroupActivator","useNestedItem","computed","defineComponent","toRef","genericComponent","VListGroupActivator","name","setup","_","slots","default","VListGroup","props","collapseIcon","type","String","expandIcon","value","isOpen","open","list","onClick","e","activatorProps","appendIcon","class","hasPrepend","activator"],"mappings":";AAAA;SACSA,iB,oCAET;;SACSC,O;SACAC,Y;SACAC,uB,EAAyBC,a,+CAElC;;AACA,SAASC,QAAT,EAAmBC,eAAnB,EAAoCC,KAApC,QAAiD,KAAjD;SACSC,gB,gCAET;;AAaA,MAAMC,mBAAmB,GAAGH,eAAe,CAAC;AAC1CI,EAAAA,IAAI,EAAE,qBADoC;;AAG1CC,EAAAA,KAAK,CAAEC,CAAF,QAAgB;AAAA,QAAX;AAAEC,MAAAA;AAAF,KAAW;AACnBV,IAAAA,uBAAuB;AAEvB,WAAO;AAAA;;AAAA,+BAAMU,KAAK,CAACC,OAAZ,qBAAM,oBAAAD,KAAK,CAAX;AAAA,KAAP;AACD;;AAPyC,CAAD,CAA3C;AAUA,OAAO,MAAME,UAAU,GAAGP,gBAAgB,GAQrC;AACHE,EAAAA,IAAI,EAAE,YADH;AAGHM,EAAAA,KAAK,EAAE;AACLC,IAAAA,YAAY,EAAE;AACZC,MAAAA,IAAI,EAAEC,MADM;AAEZL,MAAAA,OAAO,EAAE;AAFG,KADT;AAKLM,IAAAA,UAAU,EAAE;AACVF,MAAAA,IAAI,EAAEC,MADI;AAEVL,MAAAA,OAAO,EAAE;AAFC,KALP;AASLO,IAAAA,KAAK,EAAE,IATF;AAWL,OAAGnB,YAAY;AAXV,GAHJ;;AAiBHS,EAAAA,KAAK,CAAEK,KAAF,SAAoB;AAAA,QAAX;AAAEH,MAAAA;AAAF,KAAW;AACvB,UAAM;AAAES,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAmBnB,aAAa,CAACG,KAAK,CAACS,KAAD,EAAQ,OAAR,CAAN,EAAwB,IAAxB,CAAtC;AACA,UAAMQ,IAAI,GAAGvB,OAAO,EAApB;;AAEA,UAAMwB,OAAO,GAAIC,CAAD,IAAc;AAC5BH,MAAAA,IAAI,CAAC,CAACD,MAAM,CAACD,KAAT,EAAgBK,CAAhB,CAAJ;AACD,KAFD;;AAIA,UAAMC,cAAoD,GAAGtB,QAAQ,CAAC,OAAO;AAC3EoB,MAAAA,OAD2E;AAE3EG,MAAAA,UAAU,EAAEN,MAAM,CAACD,KAAP,GAAeL,KAAK,CAACC,YAArB,GAAoCD,KAAK,CAACI,UAFqB;AAG3ES,MAAAA,KAAK,EAAE;AAHoE,KAAP,CAAD,CAArE;AAMA,WAAO,MAAM;AAAA;;AACX;AAAA,iBAEW,CACL,cADK,EAEL;AACE,mCAAyBL,IAAzB,oBAAyBA,IAAI,CAAEM,UAAN,CAAiBT;AAD5C,SAFK;AAFX;AAAA,wBASMR,KAAK,CAACkB,SAAN;AAAA,0BAEIlB,KAAK,CAACkB,SAAN,CAAgB;AAAEf,YAAAA,KAAK,EAAEW,cAAc,CAACN;AAAxB,WAAhB,CAFJ;AAAA,UATN;AAAA;AAAA,qBAeiB;AAfjB,iCAgBUR,KAAK,CAACC,OAhBhB,qBAgBU,qBAAAD,KAAK,CAhBf,cAe+CS,MAAM,CAACD,KAftD;AAAA;AAAA;AAqBD,KAtBD;AAuBD;;AAtDE,CARqC,CAAnC","sourcesContent":["// Components\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, defineComponent, toRef } from 'vue'\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { InternalListItem } from './VList'\n\nexport type ListGroupActivatorSlot = {\n props: {\n onClick: (e: Event) => void\n appendIcon: string\n class: string\n }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const VListGroup = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n activator: [ListGroupActivatorSlot]\n default: []\n }>\n}>()({\n name: 'VListGroup',\n\n props: {\n collapseIcon: {\n type: String,\n default: '$collapse',\n },\n expandIcon: {\n type: String,\n default: '$expand',\n },\n value: null,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open } = useNestedItem(toRef(props, 'value'), true)\n const list = useList()\n\n const onClick = (e: Event) => {\n open(!isOpen.value, e)\n }\n\n const activatorProps: Ref<ListGroupActivatorSlot['props']> = computed(() => ({\n onClick,\n appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,\n class: 'v-list-group__header',\n }))\n\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n },\n ]}\n >\n { slots.activator && (\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value }) }\n </VListGroupActivator>\n ) }\n <VExpandTransition>\n <div class=\"v-list-group__items\" v-show={isOpen.value}>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n )\n }\n },\n})\n"],"file":"VListGroup.mjs"}
1
+ {"version":3,"sources":["../../../src/components/VList/VListGroup.tsx"],"names":["VDefaultsProvider","VExpandTransition","useList","makeTagProps","useNestedGroupActivator","useNestedItem","computed","toRef","defineComponent","genericComponent","VListGroupActivator","name","setup","_","slots","default","VListGroup","props","activeColor","String","color","collapseIcon","type","expandIcon","value","isOpen","open","list","onClick","e","activatorProps","active","appendIcon","class","undefined","hasPrepend","activator","VListItemIcon"],"mappings":";AAAA;SACSA,iB;SACAC,iB,oCAET;;SACSC,O;SACAC,Y;SACAC,uB,EAAyBC,a,+CAElC;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,e,EAAiBC,gB,gCAE1B;;AAcA,MAAMC,mBAAmB,GAAGF,eAAe,CAAC;AAC1CG,EAAAA,IAAI,EAAE,qBADoC;;AAG1CC,EAAAA,KAAK,CAAEC,CAAF,QAAgB;AAAA,QAAX;AAAEC,MAAAA;AAAF,KAAW;AACnBV,IAAAA,uBAAuB;AAEvB,WAAO;AAAA;;AAAA,+BAAMU,KAAK,CAACC,OAAZ,qBAAM,oBAAAD,KAAK,CAAX;AAAA,KAAP;AACD;;AAPyC,CAAD,CAA3C;AAUA,OAAO,MAAME,UAAU,GAAGP,gBAAgB,GAQrC;AACHE,EAAAA,IAAI,EAAE,YADH;AAGHM,EAAAA,KAAK,EAAE;AACLC,IAAAA,WAAW,EAAEC,MADR;AAELC,IAAAA,KAAK,EAAED,MAFF;AAGLE,IAAAA,YAAY,EAAE;AACZC,MAAAA,IAAI,EAAEH,MADM;AAEZJ,MAAAA,OAAO,EAAE;AAFG,KAHT;AAOLQ,IAAAA,UAAU,EAAE;AACVD,MAAAA,IAAI,EAAEH,MADI;AAEVJ,MAAAA,OAAO,EAAE;AAFC,KAPP;AAWLS,IAAAA,KAAK,EAAE,IAXF;AAaL,OAAGrB,YAAY;AAbV,GAHJ;;AAmBHS,EAAAA,KAAK,CAAEK,KAAF,SAAoB;AAAA,QAAX;AAAEH,MAAAA;AAAF,KAAW;AACvB,UAAM;AAAEW,MAAAA,MAAF;AAAUC,MAAAA;AAAV,QAAmBrB,aAAa,CAACE,KAAK,CAACU,KAAD,EAAQ,OAAR,CAAN,EAAwB,IAAxB,CAAtC;AACA,UAAMU,IAAI,GAAGzB,OAAO,EAApB;;AAEA,UAAM0B,OAAO,GAAIC,CAAD,IAAc;AAC5BH,MAAAA,IAAI,CAAC,CAACD,MAAM,CAACD,KAAT,EAAgBK,CAAhB,CAAJ;AACD,KAFD;;AAIA,UAAMC,cAAoD,GAAGxB,QAAQ,CAAC;AAAA;;AAAA,aAAO;AAC3EsB,QAAAA,OAD2E;AAE3EG,QAAAA,MAAM,EAAEN,MAAM,CAACD,KAF4D;AAG3EQ,QAAAA,UAAU,EAAEP,MAAM,CAACD,KAAP,GAAeP,KAAK,CAACI,YAArB,GAAoCJ,KAAK,CAACM,UAHqB;AAI3EU,QAAAA,KAAK,EAAE,sBAJoE;AAK3Eb,QAAAA,KAAK,EAAEK,MAAM,CAACD,KAAP,yBAAeP,KAAK,CAACC,WAArB,iCAAoCD,KAAK,CAACG,KAA1C,GAAkDc;AALkB,OAAP;AAAA,KAAD,CAArE;AAQA,WAAO,MAAM;AAAA;;AACX;AAAA,iBAEW,CACL,cADK,EAEL;AACE,mCAAyBP,IAAzB,oBAAyBA,IAAI,CAAEQ,UAAN,CAAiBX;AAD5C,SAFK;AAFX;AAAA,wBASMV,KAAK,CAACsB,SAAN;AAAA,sBAEY;AACRC,YAAAA,aAAa,EAAE;AAAEjB,cAAAA,KAAK,EAAEU,cAAc,CAACN,KAAf,CAAqBJ;AAA9B;AADP;AAFZ;AAAA;AAAA,4BAOMN,KAAK,CAACsB,SAAN,CAAgB;AAAEnB,cAAAA,KAAK,EAAEa,cAAc,CAACN,KAAxB;AAA+BC,cAAAA;AAA/B,aAAhB,CAPN;AAAA;AAAA,UATN;AAAA;AAAA,qBAqBiB;AArBjB,iCAsBUX,KAAK,CAACC,OAtBhB,qBAsBU,qBAAAD,KAAK,CAtBf,cAqB+CW,MAAM,CAACD,KArBtD;AAAA;AAAA;AA2BD,KA5BD;AA6BD;;AAhEE,CARqC,CAAnC","sourcesContent":["// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { InternalListItem } from './VList'\n\nexport type ListGroupActivatorSlot = {\n props: {\n onClick: (e: Event) => void\n appendIcon: string\n class: string\n color?: string\n }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const VListGroup = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n activator: [ListGroupActivatorSlot]\n default: []\n }>\n}>()({\n name: 'VListGroup',\n\n props: {\n activeColor: String,\n color: String,\n collapseIcon: {\n type: String,\n default: '$collapse',\n },\n expandIcon: {\n type: String,\n default: '$expand',\n },\n value: null,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open } = useNestedItem(toRef(props, 'value'), true)\n const list = useList()\n\n const onClick = (e: Event) => {\n open(!isOpen.value, e)\n }\n\n const activatorProps: Ref<ListGroupActivatorSlot['props']> = computed(() => ({\n onClick,\n active: isOpen.value,\n appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,\n class: 'v-list-group__header',\n color: isOpen.value ? props.activeColor ?? props.color : undefined,\n }))\n\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n },\n ]}\n >\n { slots.activator && (\n <VDefaultsProvider\n defaults={{\n VListItemIcon: { color: activatorProps.value.color },\n }}\n >\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n ) }\n <VExpandTransition>\n <div class=\"v-list-group__items\" v-show={isOpen.value}>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n )\n }\n },\n})\n"],"file":"VListGroup.mjs"}