@vuetify/nightly 3.0.0-beta.4 → 3.0.0-beta.9

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 (433) hide show
  1. package/CHANGELOG.md +10 -24
  2. package/dist/json/attributes.json +187 -203
  3. package/dist/json/importMap.json +99 -147
  4. package/dist/json/tags.json +49 -102
  5. package/dist/json/web-types.json +761 -949
  6. package/dist/vuetify.css +13059 -13058
  7. package/dist/vuetify.d.ts +1663 -5104
  8. package/dist/vuetify.esm.js +8655 -7971
  9. package/dist/vuetify.esm.js.map +1 -1
  10. package/dist/vuetify.js +8654 -7969
  11. package/dist/vuetify.js.map +1 -1
  12. package/dist/vuetify.min.css +3 -3
  13. package/dist/vuetify.min.js +1115 -1077
  14. package/dist/vuetify.min.js.map +1 -1
  15. package/lib/blueprints/index.mjs +4 -0
  16. package/lib/blueprints/index.mjs.map +1 -0
  17. package/lib/blueprints/md1.mjs +63 -0
  18. package/lib/blueprints/md1.mjs.map +1 -0
  19. package/lib/blueprints/md2.mjs +60 -0
  20. package/lib/blueprints/md2.mjs.map +1 -0
  21. package/lib/blueprints/md3.mjs +74 -0
  22. package/lib/blueprints/md3.mjs.map +1 -0
  23. package/lib/components/VAlert/VAlert.css +0 -3
  24. package/lib/components/VAlert/VAlert.mjs +27 -11
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/VAlert.sass +0 -3
  27. package/lib/components/VApp/VApp.css +2 -5
  28. package/lib/components/VApp/VApp.mjs +3 -4
  29. package/lib/components/VApp/VApp.mjs.map +1 -1
  30. package/lib/components/VApp/VApp.sass +11 -12
  31. package/lib/components/VApp/variables.scss +6 -0
  32. package/lib/components/VAppBar/VAppBar.mjs +4 -3
  33. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  34. package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -12
  35. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  36. package/lib/components/VAppBar/VAppBarTitle.mjs +4 -3
  37. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  38. package/lib/components/VAppBar/_variables.scss +2 -0
  39. package/lib/components/VAutocomplete/VAutocomplete.css +10 -0
  40. package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -8
  41. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  42. package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
  43. package/lib/components/VAutocomplete/_variables.scss +1 -0
  44. package/lib/components/VAvatar/VAvatar.css +2 -0
  45. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  46. package/lib/components/VAvatar/VAvatar.sass +3 -0
  47. package/lib/components/VBadge/VBadge.mjs +8 -7
  48. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  49. package/lib/components/VBadge/_variables.scss +2 -2
  50. package/lib/components/VBanner/VBanner.css +7 -7
  51. package/lib/components/VBanner/VBanner.mjs +24 -17
  52. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  53. package/lib/components/VBanner/VBanner.sass +6 -7
  54. package/lib/components/VBanner/VBannerActions.mjs +1 -1
  55. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  56. package/lib/components/VBanner/index.mjs +0 -2
  57. package/lib/components/VBanner/index.mjs.map +1 -1
  58. package/lib/components/VBottomNavigation/VBottomNavigation.css +4 -11
  59. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -3
  60. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  61. package/lib/components/VBottomNavigation/VBottomNavigation.sass +5 -12
  62. package/lib/components/VBottomNavigation/_variables.scss +7 -8
  63. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +13 -6
  64. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +30 -19
  65. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  66. package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -3
  67. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
  68. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  69. package/lib/components/VBreadcrumbs/_variables.scss +2 -1
  70. package/lib/components/VBtn/VBtn.css +77 -13
  71. package/lib/components/VBtn/VBtn.mjs +63 -29
  72. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  73. package/lib/components/VBtn/VBtn.sass +86 -14
  74. package/lib/components/VBtn/_variables.scss +8 -1
  75. package/lib/components/VBtnGroup/VBtnGroup.css +1 -0
  76. package/lib/components/VBtnGroup/_variables.scss +2 -0
  77. package/lib/components/VBtnToggle/_variables.scss +1 -0
  78. package/lib/components/VCard/VCard.css +81 -64
  79. package/lib/components/VCard/VCard.mjs +62 -71
  80. package/lib/components/VCard/VCard.mjs.map +1 -1
  81. package/lib/components/VCard/VCard.sass +74 -61
  82. package/lib/components/VCard/VCardActions.mjs +1 -1
  83. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  84. package/lib/components/VCard/VCardItem.mjs +88 -0
  85. package/lib/components/VCard/VCardItem.mjs.map +1 -0
  86. package/lib/components/VCard/_variables.scss +40 -24
  87. package/lib/components/VCard/index.mjs +1 -5
  88. package/lib/components/VCard/index.mjs.map +1 -1
  89. package/lib/components/VCarousel/VCarousel.mjs +5 -4
  90. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  91. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  92. package/lib/components/VCarousel/_variables.scss +1 -0
  93. package/lib/components/VChip/VChip.css +137 -60
  94. package/lib/components/VChip/VChip.mjs +76 -37
  95. package/lib/components/VChip/VChip.mjs.map +1 -1
  96. package/lib/components/VChip/VChip.sass +6 -0
  97. package/lib/components/VChip/_mixins.scss +26 -6
  98. package/lib/components/VChip/_variables.scss +1 -5
  99. package/lib/components/VChipGroup/VChipGroup.mjs +4 -3
  100. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  101. package/lib/components/VChipGroup/VChipGroup.sass +1 -1
  102. package/lib/components/VChipGroup/_variables.scss +1 -1
  103. package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
  104. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  105. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
  106. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  107. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
  108. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  109. package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
  110. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  111. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
  112. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  113. package/lib/components/VColorPicker/_variables.scss +17 -10
  114. package/lib/components/VCombobox/VCombobox.css +10 -0
  115. package/lib/components/VCombobox/VCombobox.mjs +15 -17
  116. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  117. package/lib/components/VCombobox/VCombobox.sass +10 -0
  118. package/lib/components/VCombobox/_variables.scss +1 -0
  119. package/lib/components/VCounter/VCounter.mjs +16 -16
  120. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  121. package/lib/components/VCounter/VCounter.sass +1 -1
  122. package/lib/components/VCounter/_variables.scss +2 -1
  123. package/lib/components/VDialog/VDialog.css +2 -5
  124. package/lib/components/VDialog/VDialog.mjs +26 -26
  125. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  126. package/lib/components/VDialog/VDialog.sass +1 -4
  127. package/lib/components/VDialog/_variables.scss +0 -1
  128. package/lib/components/VDivider/VDivider.mjs +16 -17
  129. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  130. package/lib/components/VDivider/_variables.scss +3 -1
  131. package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -0
  132. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +9 -4
  133. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  134. package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -0
  135. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -7
  136. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  137. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  138. package/lib/components/VExpansionPanel/_variables.scss +15 -10
  139. package/lib/components/VField/VField.css +43 -24
  140. package/lib/components/VField/VField.mjs +18 -11
  141. package/lib/components/VField/VField.mjs.map +1 -1
  142. package/lib/components/VField/VField.sass +32 -18
  143. package/lib/components/VField/VFieldLabel.mjs +8 -9
  144. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  145. package/lib/components/VField/_variables.scss +3 -2
  146. package/lib/components/VFileInput/VFileInput.css +3 -3
  147. package/lib/components/VFileInput/VFileInput.mjs +14 -9
  148. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  149. package/lib/components/VFileInput/VFileInput.sass +3 -3
  150. package/lib/components/VFooter/VFooter.mjs +4 -3
  151. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  152. package/lib/components/VFooter/_variables.scss +2 -1
  153. package/lib/components/VForm/VForm.mjs +4 -4
  154. package/lib/components/VForm/VForm.mjs.map +1 -1
  155. package/lib/components/VGrid/VCol.mjs +2 -1
  156. package/lib/components/VGrid/VCol.mjs.map +1 -1
  157. package/lib/components/VGrid/VContainer.mjs +4 -3
  158. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  159. package/lib/components/VGrid/VRow.mjs +8 -3
  160. package/lib/components/VGrid/VRow.mjs.map +1 -1
  161. package/lib/components/VIcon/VIcon.css +0 -18
  162. package/lib/components/VIcon/VIcon.mjs +20 -21
  163. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  164. package/lib/components/VIcon/VIcon.sass +0 -18
  165. package/lib/components/VIcon/_variables.scss +2 -6
  166. package/lib/components/VIcon/index.mjs.map +1 -1
  167. package/lib/components/VImg/VImg.mjs +1 -0
  168. package/lib/components/VImg/VImg.mjs.map +1 -1
  169. package/lib/components/VInput/VInput.css +2 -1
  170. package/lib/components/VInput/VInput.mjs +10 -6
  171. package/lib/components/VInput/VInput.mjs.map +1 -1
  172. package/lib/components/VInput/VInput.sass +2 -1
  173. package/lib/components/VInput/_variables.scss +0 -1
  174. package/lib/components/VItemGroup/VItem.mjs +3 -0
  175. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  176. package/lib/components/VLabel/VLabel.mjs +4 -3
  177. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  178. package/lib/components/VLabel/_variables.scss +1 -0
  179. package/lib/components/VLayout/VLayout.css +0 -2
  180. package/lib/components/VLayout/VLayout.sass +0 -2
  181. package/lib/components/VLazy/VLazy.mjs +5 -3
  182. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  183. package/lib/components/VList/VList.css +6 -3
  184. package/lib/components/VList/VList.mjs +15 -17
  185. package/lib/components/VList/VList.mjs.map +1 -1
  186. package/lib/components/VList/VList.sass +6 -2
  187. package/lib/components/VList/VListChildren.mjs +25 -7
  188. package/lib/components/VList/VListChildren.mjs.map +1 -1
  189. package/lib/components/VList/VListGroup.mjs +47 -42
  190. package/lib/components/VList/VListGroup.mjs.map +1 -1
  191. package/lib/components/VList/VListItem.css +78 -52
  192. package/lib/components/VList/VListItem.mjs +94 -54
  193. package/lib/components/VList/VListItem.mjs.map +1 -1
  194. package/lib/components/VList/VListItem.sass +67 -38
  195. package/lib/components/VList/VListItemAction.mjs +8 -9
  196. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  197. package/lib/components/VList/VListItemMedia.mjs +4 -3
  198. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  199. package/lib/components/VList/VListSubheader.mjs +4 -3
  200. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  201. package/lib/components/VList/_variables.scss +12 -5
  202. package/lib/components/VList/index.mjs +2 -5
  203. package/lib/components/VList/index.mjs.map +1 -1
  204. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
  205. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  206. package/lib/components/VMain/VMain.css +21 -3
  207. package/lib/components/VMain/VMain.mjs +17 -11
  208. package/lib/components/VMain/VMain.mjs.map +1 -1
  209. package/lib/components/VMain/VMain.sass +18 -3
  210. package/lib/components/VMain/_variables.scss +1 -1
  211. package/lib/components/VMenu/VMenu.mjs +6 -6
  212. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  213. package/lib/components/VMessages/VMessages.mjs +5 -3
  214. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  215. package/lib/components/VMessages/_variables.scss +1 -1
  216. package/lib/components/VNavigationDrawer/VNavigationDrawer.css +12 -17
  217. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +54 -19
  218. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  219. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +15 -20
  220. package/lib/components/VNavigationDrawer/_variables.scss +3 -2
  221. package/lib/components/VNavigationDrawer/sticky.mjs +72 -0
  222. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
  223. package/lib/components/VNavigationDrawer/touch.mjs +5 -2
  224. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  225. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  226. package/lib/components/VOverlay/VOverlay.mjs +18 -14
  227. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  228. package/lib/components/VOverlay/_variables.scss +1 -1
  229. package/lib/components/VOverlay/locationStrategies.mjs +267 -78
  230. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  231. package/lib/components/VOverlay/useActivator.mjs +5 -4
  232. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  233. package/lib/components/VOverlay/util/point.mjs +3 -3
  234. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  235. package/lib/components/VPagination/VPagination.mjs +42 -24
  236. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  237. package/lib/components/VParallax/VParallax.mjs +5 -5
  238. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  239. package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
  240. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  241. package/lib/components/VProgressCircular/_variables.scss +2 -0
  242. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
  243. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  244. package/lib/components/VProgressLinear/_variables.scss +1 -0
  245. package/lib/components/VRadio/VRadio.mjs +8 -17
  246. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  247. package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -5
  248. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  249. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
  250. package/lib/components/VRadioGroup/_variables.scss +3 -4
  251. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
  252. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  253. package/lib/components/VRating/VRating.mjs +6 -5
  254. package/lib/components/VRating/VRating.mjs.map +1 -1
  255. package/lib/components/VRating/VRating.sass +2 -0
  256. package/lib/components/VResponsive/VResponsive.mjs +7 -6
  257. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  258. package/lib/components/VSelect/VSelect.css +10 -0
  259. package/lib/components/VSelect/VSelect.mjs +14 -11
  260. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  261. package/lib/components/VSelect/VSelect.sass +10 -0
  262. package/lib/components/VSelect/_variables.scss +1 -0
  263. package/lib/components/VSelectionControl/VSelectionControl.mjs +15 -9
  264. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  265. package/lib/components/VSelectionControl/_variables.scss +1 -0
  266. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
  267. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  268. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -5
  269. package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
  270. package/lib/components/VSheet/VSheet.mjs +3 -3
  271. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  272. package/lib/components/VSheet/_variables.scss +3 -2
  273. package/lib/components/VSlideGroup/VSlideGroup.mjs +47 -49
  274. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  275. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +7 -3
  276. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  277. package/lib/components/VSlideGroup/_variables.scss +0 -5
  278. package/lib/components/VSlideGroup/index.mjs +2 -2
  279. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  280. package/lib/components/VSlider/VSlider.mjs +7 -9
  281. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  282. package/lib/components/VSlider/VSliderThumb.mjs +6 -5
  283. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  284. package/lib/components/VSlider/VSliderTrack.mjs +11 -10
  285. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  286. package/lib/components/VSlider/slider.mjs +4 -4
  287. package/lib/components/VSlider/slider.mjs.map +1 -1
  288. package/lib/components/VSnackbar/VSnackbar.css +1 -1
  289. package/lib/components/VSnackbar/VSnackbar.mjs +50 -50
  290. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  291. package/lib/components/VSnackbar/_variables.scss +3 -3
  292. package/lib/components/VSwitch/VSwitch.css +7 -0
  293. package/lib/components/VSwitch/VSwitch.sass +6 -0
  294. package/lib/components/VSwitch/_variables.scss +1 -0
  295. package/lib/components/VSystemBar/VSystemBar.mjs +5 -13
  296. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  297. package/lib/components/VSystemBar/_variables.scss +2 -1
  298. package/lib/components/VTable/VTable.css +1 -0
  299. package/lib/components/VTable/VTable.mjs +9 -8
  300. package/lib/components/VTable/VTable.mjs.map +1 -1
  301. package/lib/components/VTable/VTable.sass +1 -0
  302. package/lib/components/VTable/_variables.scss +2 -0
  303. package/lib/components/VTabs/VTab.css +3 -2
  304. package/lib/components/VTabs/VTab.mjs +4 -4
  305. package/lib/components/VTabs/VTab.mjs.map +1 -1
  306. package/lib/components/VTabs/VTab.sass +4 -2
  307. package/lib/components/VTabs/VTabs.mjs +15 -12
  308. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  309. package/lib/components/VTabs/_variables.scss +3 -1
  310. package/lib/components/VTextField/VTextField.css +2 -1
  311. package/lib/components/VTextField/VTextField.mjs +31 -23
  312. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  313. package/lib/components/VTextField/VTextField.sass +2 -1
  314. package/lib/components/VTextField/_variables.scss +1 -1
  315. package/lib/components/VTextarea/VTextarea.css +6 -2
  316. package/lib/components/VTextarea/VTextarea.mjs +39 -22
  317. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  318. package/lib/components/VTextarea/VTextarea.sass +9 -2
  319. package/lib/components/VTextarea/_variables.scss +1 -1
  320. package/lib/components/VTimeline/VTimeline.css +123 -112
  321. package/lib/components/VTimeline/VTimeline.mjs +24 -25
  322. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  323. package/lib/components/VTimeline/VTimeline.sass +132 -113
  324. package/lib/components/VTimeline/VTimelineDivider.mjs +44 -38
  325. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  326. package/lib/components/VTimeline/VTimelineItem.mjs +13 -12
  327. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  328. package/lib/components/VTimeline/_variables.scss +11 -6
  329. package/lib/components/VToolbar/VToolbar.css +17 -32
  330. package/lib/components/VToolbar/VToolbar.mjs +12 -13
  331. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  332. package/lib/components/VToolbar/VToolbar.sass +17 -18
  333. package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
  334. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  335. package/lib/components/VToolbar/_variables.scss +7 -7
  336. package/lib/components/VTooltip/VTooltip.mjs +41 -39
  337. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  338. package/lib/components/VTooltip/_variables.scss +1 -0
  339. package/lib/components/VWindow/VWindow.mjs +4 -4
  340. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  341. package/lib/components/VWindow/VWindowItem.mjs +13 -9
  342. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  343. package/lib/components/VWindow/_variables.scss +1 -0
  344. package/lib/components/index.d.ts +1653 -5068
  345. package/lib/components/transitions/dialog-transition.mjs +3 -0
  346. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  347. package/lib/components/transitions/index.mjs +0 -5
  348. package/lib/components/transitions/index.mjs.map +1 -1
  349. package/lib/composables/border.mjs +5 -6
  350. package/lib/composables/border.mjs.map +1 -1
  351. package/lib/composables/color.mjs +19 -26
  352. package/lib/composables/color.mjs.map +1 -1
  353. package/lib/composables/defaults.mjs +1 -1
  354. package/lib/composables/defaults.mjs.map +1 -1
  355. package/lib/composables/form.mjs +29 -9
  356. package/lib/composables/form.mjs.map +1 -1
  357. package/lib/composables/{forwardRef.mjs → forwardRefs.mjs} +29 -3
  358. package/lib/composables/forwardRefs.mjs.map +1 -0
  359. package/lib/composables/group.mjs.map +1 -1
  360. package/lib/composables/index.mjs +3 -2
  361. package/lib/composables/index.mjs.map +1 -1
  362. package/lib/composables/layout.mjs +12 -12
  363. package/lib/composables/layout.mjs.map +1 -1
  364. package/lib/composables/location.mjs +4 -8
  365. package/lib/composables/location.mjs.map +1 -1
  366. package/lib/composables/proxiedModel.mjs +2 -1
  367. package/lib/composables/proxiedModel.mjs.map +1 -1
  368. package/lib/composables/rtl.mjs +2 -2
  369. package/lib/composables/rtl.mjs.map +1 -1
  370. package/lib/composables/size.mjs +18 -14
  371. package/lib/composables/size.mjs.map +1 -1
  372. package/lib/composables/stack.mjs +22 -12
  373. package/lib/composables/stack.mjs.map +1 -1
  374. package/lib/composables/theme.mjs +18 -10
  375. package/lib/composables/theme.mjs.map +1 -1
  376. package/lib/composables/validation.mjs +14 -4
  377. package/lib/composables/validation.mjs.map +1 -1
  378. package/lib/composables/variant.mjs +4 -2
  379. package/lib/composables/variant.mjs.map +1 -1
  380. package/lib/entry-bundler.mjs +1 -1
  381. package/lib/framework.mjs +7 -2
  382. package/lib/framework.mjs.map +1 -1
  383. package/lib/index.d.ts +39 -47
  384. package/lib/styles/generic/_colors.scss +17 -9
  385. package/lib/styles/generic/_transitions.scss +13 -77
  386. package/lib/styles/main.css +1170 -1420
  387. package/lib/styles/settings/_utilities.scss +16 -5
  388. package/lib/styles/utilities/_index.sass +0 -1
  389. package/lib/util/anchor.mjs +33 -29
  390. package/lib/util/anchor.mjs.map +1 -1
  391. package/lib/util/animation.mjs +2 -2
  392. package/lib/util/animation.mjs.map +1 -1
  393. package/lib/util/box.mjs +12 -0
  394. package/lib/util/box.mjs.map +1 -1
  395. package/lib/util/colorUtils.mjs +2 -2
  396. package/lib/util/colorUtils.mjs.map +1 -1
  397. package/lib/util/colors.mjs +1 -1
  398. package/lib/util/colors.mjs.map +1 -1
  399. package/lib/util/defineComponent.mjs +6 -3
  400. package/lib/util/defineComponent.mjs.map +1 -1
  401. package/lib/util/helpers.mjs +24 -1
  402. package/lib/util/helpers.mjs.map +1 -1
  403. package/lib/util/injectSelf.mjs +12 -0
  404. package/lib/util/injectSelf.mjs.map +1 -0
  405. package/package.json +10 -10
  406. package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
  407. package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
  408. package/lib/components/VBanner/VBannerIcon.mjs +0 -20
  409. package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
  410. package/lib/components/VBreadcrumbs/shared.mjs +0 -2
  411. package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
  412. package/lib/components/VCard/VCardAvatar.mjs +0 -3
  413. package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
  414. package/lib/components/VCard/VCardContent.mjs +0 -3
  415. package/lib/components/VCard/VCardContent.mjs.map +0 -1
  416. package/lib/components/VCard/VCardHeader.mjs +0 -3
  417. package/lib/components/VCard/VCardHeader.mjs.map +0 -1
  418. package/lib/components/VCard/VCardHeaderText.mjs +0 -3
  419. package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
  420. package/lib/components/VCard/VCardImg.mjs +0 -3
  421. package/lib/components/VCard/VCardImg.mjs.map +0 -1
  422. package/lib/components/VList/VListItemAvatar.mjs +0 -23
  423. package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
  424. package/lib/components/VList/VListItemHeader.mjs +0 -3
  425. package/lib/components/VList/VListItemHeader.mjs.map +0 -1
  426. package/lib/components/VList/VListItemIcon.mjs +0 -23
  427. package/lib/components/VList/VListItemIcon.mjs.map +0 -1
  428. package/lib/components/VTimeline/shared.mjs +0 -2
  429. package/lib/components/VTimeline/shared.mjs.map +0 -1
  430. package/lib/composables/forwardRef.mjs.map +0 -1
  431. package/lib/presets/default/index.mjs +0 -71
  432. package/lib/presets/default/index.mjs.map +0 -1
  433. package/lib/styles/utilities/_text.sass +0 -9
@@ -105,6 +105,7 @@
105
105
 
106
106
  .v-expansion-panel-title {
107
107
  align-items: center;
108
+ text-align: start;
108
109
  border-radius: inherit;
109
110
  display: flex;
110
111
  font-size: 0.9375rem;
@@ -1,15 +1,15 @@
1
1
  import { createVNode as _createVNode } from "vue";
2
2
  // Components
3
3
  import { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from "./VExpansionPanelTitle.mjs";
4
- import { VExpansionPanelText } from "./VExpansionPanelText.mjs";
5
- import { VExpansionPanelSymbol } from "./VExpansionPanels.mjs"; // Composables
4
+ import { VExpansionPanelSymbol } from "./VExpansionPanels.mjs";
5
+ import { VExpansionPanelText } from "./VExpansionPanelText.mjs"; // Composables
6
6
 
7
7
  import { makeElevationProps, useElevation } from "../../composables/elevation.mjs";
8
8
  import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs";
9
+ import { makeLazyProps } from "../../composables/lazy.mjs";
9
10
  import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
10
- import { useBackgroundColor } from "../../composables/color.mjs";
11
11
  import { makeTagProps } from "../../composables/tag.mjs";
12
- import { makeLazyProps } from "../../composables/lazy.mjs"; // Utilities
12
+ import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
13
13
 
14
14
  import { computed, provide } from 'vue';
15
15
  import { defineComponent, useRender } from "../../util/index.mjs";
@@ -26,6 +26,9 @@ export const VExpansionPanel = defineComponent({
26
26
  ...makeTagProps(),
27
27
  ...makeVExpansionPanelTitleProps()
28
28
  },
29
+ emits: {
30
+ 'group:selected': val => true
31
+ },
29
32
 
30
33
  setup(props, _ref) {
31
34
  let {
@@ -74,6 +77,7 @@ export const VExpansionPanel = defineComponent({
74
77
  default: () => [_createVNode("div", {
75
78
  "class": ['v-expansion-panel__shadow', ...elevationClasses.value]
76
79
  }, null), hasTitle && _createVNode(VExpansionPanelTitle, {
80
+ "key": "title",
77
81
  "collapseIcon": props.collapseIcon,
78
82
  "color": props.color,
79
83
  "expandIcon": props.expandIcon,
@@ -82,6 +86,7 @@ export const VExpansionPanel = defineComponent({
82
86
  }, {
83
87
  default: () => [slots.title ? slots.title() : props.title]
84
88
  }), hasText && _createVNode(VExpansionPanelText, {
89
+ "key": "text",
85
90
  "eager": props.eager
86
91
  }, {
87
92
  default: () => [slots.text ? slots.text() : props.text]
@@ -1 +1 @@
1
- {"version":3,"file":"VExpansionPanel.mjs","names":["makeVExpansionPanelTitleProps","VExpansionPanelTitle","VExpansionPanelText","VExpansionPanelSymbol","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","useBackgroundColor","makeTagProps","makeLazyProps","computed","provide","defineComponent","useRender","VExpansionPanel","name","props","title","String","text","bgColor","setup","slots","groupItem","backgroundColorClasses","backgroundColorStyles","elevationClasses","roundedClasses","isDisabled","disabled","value","selectedIndices","group","items","reduce","arr","item","index","selected","includes","id","push","isBeforeSelected","findIndex","isSelected","some","selectedIndex","isAfterSelected","hasText","hasTitle","collapseIcon","color","expandIcon","hideActions","ripple","eager","default"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanel.tsx"],"sourcesContent":["// Components\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VExpansionPanelText } from './VExpansionPanelText'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeLazyProps } from '@/composables/lazy'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VExpansionPanel = defineComponent({\n name: 'VExpansionPanel',\n\n props: {\n title: String,\n text: String,\n bgColor: String,\n\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled)\n\n const selectedIndices = computed(() => groupItem.group.items.value.reduce<number[]>((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index)\n return arr\n }, []))\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === -1)\n })\n\n provide(VExpansionPanelSymbol, groupItem)\n\n useRender(() => {\n const hasText = !!(slots.text || props.text)\n const hasTitle = !!(slots.title || props.title)\n\n return (\n <props.tag\n class={[\n 'v-expansion-panel',\n {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value,\n },\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n aria-expanded={ groupItem.isSelected.value }\n >\n <div\n class={[\n 'v-expansion-panel__shadow',\n ...elevationClasses.value,\n ]}\n />\n\n { hasTitle && (\n <VExpansionPanelTitle\n collapseIcon={ props.collapseIcon }\n color={ props.color }\n expandIcon={ props.expandIcon }\n hideActions={ props.hideActions }\n ripple={ props.ripple }\n >\n { slots.title ? slots.title() : props.title }\n </VExpansionPanelTitle>\n ) }\n\n { hasText && (\n <VExpansionPanelText eager={ props.eager }>\n { slots.text ? slots.text() : props.text }\n </VExpansionPanelText>\n ) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VExpansionPanel = InstanceType<typeof VExpansionPanel>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VExpansionPanel.mjs","names":["makeVExpansionPanelTitleProps","VExpansionPanelTitle","VExpansionPanelSymbol","VExpansionPanelText","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeLazyProps","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","computed","provide","defineComponent","useRender","VExpansionPanel","name","props","title","String","text","bgColor","emits","val","setup","slots","groupItem","backgroundColorClasses","backgroundColorStyles","elevationClasses","roundedClasses","isDisabled","disabled","value","selectedIndices","group","items","reduce","arr","item","index","selected","includes","id","push","isBeforeSelected","findIndex","isSelected","some","selectedIndex","isAfterSelected","hasText","hasTitle","collapseIcon","color","expandIcon","hideActions","ripple","eager","default"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanel.tsx"],"sourcesContent":["// Components\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VExpansionPanelText } from './VExpansionPanelText'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps } from '@/composables/lazy'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VExpansionPanel = defineComponent({\n name: 'VExpansionPanel',\n\n props: {\n title: String,\n text: String,\n bgColor: String,\n\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled)\n\n const selectedIndices = computed(() => groupItem.group.items.value.reduce<number[]>((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index)\n return arr\n }, []))\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === -1)\n })\n\n provide(VExpansionPanelSymbol, groupItem)\n\n useRender(() => {\n const hasText = !!(slots.text || props.text)\n const hasTitle = !!(slots.title || props.title)\n\n return (\n <props.tag\n class={[\n 'v-expansion-panel',\n {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value,\n },\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n aria-expanded={ groupItem.isSelected.value }\n >\n <div\n class={[\n 'v-expansion-panel__shadow',\n ...elevationClasses.value,\n ]}\n />\n\n { hasTitle && (\n <VExpansionPanelTitle\n key=\"title\"\n collapseIcon={ props.collapseIcon }\n color={ props.color }\n expandIcon={ props.expandIcon }\n hideActions={ props.hideActions }\n ripple={ props.ripple }\n >\n { slots.title ? slots.title() : props.title }\n </VExpansionPanelTitle>\n ) }\n\n { hasText && (\n <VExpansionPanelText key=\"text\" eager={ props.eager }>\n { slots.text ? slots.text() : props.text }\n </VExpansionPanelText>\n ) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VExpansionPanel = InstanceType<typeof VExpansionPanel>\n"],"mappings":"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"}
@@ -112,6 +112,7 @@
112
112
 
113
113
  .v-expansion-panel-title
114
114
  align-items: center
115
+ text-align: start
115
116
  border-radius: inherit
116
117
  display: flex
117
118
  font-size: $expansion-panel-title-font-size
@@ -1,12 +1,12 @@
1
1
  import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
2
2
  // Components
3
- import { VIcon } from "../VIcon/index.mjs";
4
- import { VExpansionPanelSymbol } from "./VExpansionPanels.mjs"; // Composables
3
+ import { VExpansionPanelSymbol } from "./VExpansionPanels.mjs";
4
+ import { VIcon } from "../VIcon/index.mjs"; // Directives
5
5
 
6
- import { useBackgroundColor } from "../../composables/color.mjs";
7
- import { IconValue } from "../../composables/icons.mjs"; // Directives
6
+ import { Ripple } from "../../directives/ripple/index.mjs"; // Composables
8
7
 
9
- import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
8
+ import { IconValue } from "../../composables/icons.mjs";
9
+ import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
10
10
 
11
11
  import { computed, inject } from 'vue';
12
12
  import { defineComponent, propsFactory, useRender } from "../../util/index.mjs";
@@ -65,9 +65,9 @@ export const VExpansionPanelTitle = defineComponent({
65
65
  "disabled": expansionPanel.disabled.value,
66
66
  "aria-expanded": expansionPanel.isSelected.value,
67
67
  "onClick": !props.readonly ? expansionPanel.toggle : undefined
68
- }, [_createVNode("div", {
68
+ }, [_createVNode("span", {
69
69
  "class": "v-expansion-panel-title__overlay"
70
- }, null), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value), !props.hideActions && _createVNode("div", {
70
+ }, null), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value), !props.hideActions && _createVNode("span", {
71
71
  "class": "v-expansion-panel-title__icon"
72
72
  }, [slots.actions ? slots.actions(slotProps.value) : _createVNode(VIcon, {
73
73
  "icon": expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon
@@ -1 +1 @@
1
- {"version":3,"file":"VExpansionPanelTitle.mjs","names":["VIcon","VExpansionPanelSymbol","useBackgroundColor","IconValue","Ripple","computed","inject","defineComponent","propsFactory","useRender","makeVExpansionPanelTitleProps","color","String","expandIcon","type","default","collapseIcon","hideActions","Boolean","ripple","Object","readonly","VExpansionPanelTitle","name","directives","props","setup","slots","expansionPanel","Error","backgroundColorClasses","backgroundColorStyles","slotProps","disabled","value","expanded","isSelected","undefined","toggle","actions"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanelTitle.tsx"],"sourcesContent":["// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n})\n\nexport const VExpansionPanelTitle = defineComponent({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <div class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <div class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </div>\n ) }\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n"],"mappings":";AAAA;SACSA,K;SACAC,qB,kCAET;;SACSC,kB;SACAC,S,uCAET;;SACSC,M,6CAET;;AACA,SAASC,QAAT,EAAmBC,MAAnB,QAAiC,KAAjC;SACSC,e,EAAiBC,Y,EAAcC,S;AAExC,OAAO,MAAMC,6BAA6B,GAAGF,YAAY,CAAC;EACxDG,KAAK,EAAEC,MADiD;EAExDC,UAAU,EAAE;IACVC,IAAI,EAAEX,SADI;IAEVY,OAAO,EAAE;EAFC,CAF4C;EAMxDC,YAAY,EAAE;IACZF,IAAI,EAAEX,SADM;IAEZY,OAAO,EAAE;EAFG,CAN0C;EAUxDE,WAAW,EAAEC,OAV2C;EAWxDC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACI,OAAD,EAAUE,MAAV,CADA;IAENL,OAAO,EAAE;EAFH,CAXgD;EAexDM,QAAQ,EAAEH;AAf8C,CAAD,CAAlD;AAkBP,OAAO,MAAMI,oBAAoB,GAAGf,eAAe,CAAC;EAClDgB,IAAI,EAAE,sBAD4C;EAGlDC,UAAU,EAAE;IAAEpB;EAAF,CAHsC;EAKlDqB,KAAK,EAAE,EACL,GAAGf,6BAA6B;EAD3B,CAL2C;;EASlDgB,KAAK,CAAED,KAAF,QAAoB;IAAA,IAAX;MAAEE;IAAF,CAAW;IACvB,MAAMC,cAAc,GAAGtB,MAAM,CAACL,qBAAD,CAA7B;IAEA,IAAI,CAAC2B,cAAL,EAAqB,MAAM,IAAIC,KAAJ,CAAU,+EAAV,CAAN;IAErB,MAAM;MAAEC,sBAAF;MAA0BC;IAA1B,IAAoD7B,kBAAkB,CAACuB,KAAD,EAAQ,OAAR,CAA5E;IAEA,MAAMO,SAAS,GAAG3B,QAAQ,CAAC,OAAO;MAChCW,YAAY,EAAES,KAAK,CAACT,YADY;MAEhCiB,QAAQ,EAAEL,cAAc,CAACK,QAAf,CAAwBC,KAFF;MAGhCC,QAAQ,EAAEP,cAAc,CAACQ,UAAf,CAA0BF,KAHJ;MAIhCrB,UAAU,EAAEY,KAAK,CAACZ,UAJc;MAKhCQ,QAAQ,EAAEI,KAAK,CAACJ;IALgB,CAAP,CAAD,CAA1B;IAQAZ,SAAS,CAAC;MAAA;;MAAA;QAAA,SAEC,CACL,yBADK,EAEL;UACE,mCAAmCmB,cAAc,CAACQ,UAAf,CAA0BF;QAD/D,CAFK,EAKLJ,sBAAsB,CAACI,KALlB,CAFD;QAAA,SASEH,qBAAqB,CAACG,KATxB;QAAA,QAUD,QAVC;QAAA,YAWKN,cAAc,CAACK,QAAf,CAAwBC,KAAxB,GAAgC,CAAC,CAAjC,GAAqCG,SAX1C;QAAA,YAYKT,cAAc,CAACK,QAAf,CAAwBC,KAZ7B;QAAA,iBAaUN,cAAc,CAACQ,UAAf,CAA0BF,KAbpC;QAAA,WAcI,CAACT,KAAK,CAACJ,QAAP,GAAkBO,cAAc,CAACU,MAAjC,GAA0CD;MAd9C;QAAA,SAiBK;MAjBL,4BAmBJV,KAAK,CAACZ,OAnBF,qBAmBJ,oBAAAY,KAAK,EAAWK,SAAS,CAACE,KAArB,CAnBD,EAqBJ,CAACT,KAAK,CAACR,WAAP;QAAA,SACW;MADX,IAGIU,KAAK,CAACY,OAAN,GAAgBZ,KAAK,CAACY,OAAN,CAAcP,SAAS,CAACE,KAAxB,CAAhB;QAAA,QACgBN,cAAc,CAACQ,UAAf,CAA0BF,KAA1B,GAAkCT,KAAK,CAACT,YAAxC,GAAuDS,KAAK,CAACZ;MAD7E,QAHJ,EArBI,mCAeKY,KAAK,CAACN,MAfX;IAAA,CAAD,CAAT;IAgCA,OAAO,EAAP;EACD;;AAzDiD,CAAD,CAA5C"}
1
+ {"version":3,"file":"VExpansionPanelTitle.mjs","names":["VExpansionPanelSymbol","VIcon","Ripple","IconValue","useBackgroundColor","computed","inject","defineComponent","propsFactory","useRender","makeVExpansionPanelTitleProps","color","String","expandIcon","type","default","collapseIcon","hideActions","Boolean","ripple","Object","readonly","VExpansionPanelTitle","name","directives","props","setup","slots","expansionPanel","Error","backgroundColorClasses","backgroundColorStyles","slotProps","disabled","value","expanded","isSelected","undefined","toggle","actions"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanelTitle.tsx"],"sourcesContent":["// Components\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VIcon } from '@/components/VIcon'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n})\n\nexport const VExpansionPanelTitle = defineComponent({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <span class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <span class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </span>\n ) }\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n"],"mappings":";AAAA;SACSA,qB;SACAC,K,8BAET;;SACSC,M,6CAET;;SACSC,S;SACAC,kB,uCAET;;AACA,SAASC,QAAT,EAAmBC,MAAnB,QAAiC,KAAjC;SACSC,e,EAAiBC,Y,EAAcC,S;AAExC,OAAO,MAAMC,6BAA6B,GAAGF,YAAY,CAAC;EACxDG,KAAK,EAAEC,MADiD;EAExDC,UAAU,EAAE;IACVC,IAAI,EAAEX,SADI;IAEVY,OAAO,EAAE;EAFC,CAF4C;EAMxDC,YAAY,EAAE;IACZF,IAAI,EAAEX,SADM;IAEZY,OAAO,EAAE;EAFG,CAN0C;EAUxDE,WAAW,EAAEC,OAV2C;EAWxDC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACI,OAAD,EAAUE,MAAV,CADA;IAENL,OAAO,EAAE;EAFH,CAXgD;EAexDM,QAAQ,EAAEH;AAf8C,CAAD,CAAlD;AAkBP,OAAO,MAAMI,oBAAoB,GAAGf,eAAe,CAAC;EAClDgB,IAAI,EAAE,sBAD4C;EAGlDC,UAAU,EAAE;IAAEtB;EAAF,CAHsC;EAKlDuB,KAAK,EAAE,EACL,GAAGf,6BAA6B;EAD3B,CAL2C;;EASlDgB,KAAK,CAAED,KAAF,QAAoB;IAAA,IAAX;MAAEE;IAAF,CAAW;IACvB,MAAMC,cAAc,GAAGtB,MAAM,CAACN,qBAAD,CAA7B;IAEA,IAAI,CAAC4B,cAAL,EAAqB,MAAM,IAAIC,KAAJ,CAAU,+EAAV,CAAN;IAErB,MAAM;MAAEC,sBAAF;MAA0BC;IAA1B,IAAoD3B,kBAAkB,CAACqB,KAAD,EAAQ,OAAR,CAA5E;IAEA,MAAMO,SAAS,GAAG3B,QAAQ,CAAC,OAAO;MAChCW,YAAY,EAAES,KAAK,CAACT,YADY;MAEhCiB,QAAQ,EAAEL,cAAc,CAACK,QAAf,CAAwBC,KAFF;MAGhCC,QAAQ,EAAEP,cAAc,CAACQ,UAAf,CAA0BF,KAHJ;MAIhCrB,UAAU,EAAEY,KAAK,CAACZ,UAJc;MAKhCQ,QAAQ,EAAEI,KAAK,CAACJ;IALgB,CAAP,CAAD,CAA1B;IAQAZ,SAAS,CAAC;MAAA;;MAAA;QAAA,SAEC,CACL,yBADK,EAEL;UACE,mCAAmCmB,cAAc,CAACQ,UAAf,CAA0BF;QAD/D,CAFK,EAKLJ,sBAAsB,CAACI,KALlB,CAFD;QAAA,SASEH,qBAAqB,CAACG,KATxB;QAAA,QAUD,QAVC;QAAA,YAWKN,cAAc,CAACK,QAAf,CAAwBC,KAAxB,GAAgC,CAAC,CAAjC,GAAqCG,SAX1C;QAAA,YAYKT,cAAc,CAACK,QAAf,CAAwBC,KAZ7B;QAAA,iBAaUN,cAAc,CAACQ,UAAf,CAA0BF,KAbpC;QAAA,WAcI,CAACT,KAAK,CAACJ,QAAP,GAAkBO,cAAc,CAACU,MAAjC,GAA0CD;MAd9C;QAAA,SAiBM;MAjBN,4BAmBJV,KAAK,CAACZ,OAnBF,qBAmBJ,oBAAAY,KAAK,EAAWK,SAAS,CAACE,KAArB,CAnBD,EAqBJ,CAACT,KAAK,CAACR,WAAP;QAAA,SACY;MADZ,IAGIU,KAAK,CAACY,OAAN,GAAgBZ,KAAK,CAACY,OAAN,CAAcP,SAAS,CAACE,KAAxB,CAAhB;QAAA,QACgBN,cAAc,CAACQ,UAAf,CAA0BF,KAA1B,GAAkCT,KAAK,CAACT,YAAxC,GAAuDS,KAAK,CAACZ;MAD7E,QAHJ,EArBI,mCAeKY,KAAK,CAACN,MAfX;IAAA,CAAD,CAAT;IAgCA,OAAO,EAAP;EACD;;AAzDiD,CAAD,CAA5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"VExpansionPanels.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","defineComponent","useRender","VExpansionPanelSymbol","Symbol","for","allowedVariants","VExpansionPanels","name","props","color","String","variant","type","default","validator","v","includes","readonly","Boolean","emits","val","setup","slots","themeClasses","variantClass","VExpansionPanel","VExpansionPanelTitle","value"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanels.tsx"],"sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VExpansionPanelSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-expansion-panel')\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport const VExpansionPanels = defineComponent({\n name: 'VExpansionPanels',\n\n props: {\n color: String,\n variant: {\n type: String as PropType<Variant>,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n readonly: Boolean,\n\n ...makeGroupProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n color: toRef(props, 'color'),\n },\n VExpansionPanelTitle: {\n readonly: toRef(props, 'readonly'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-expansion-panels',\n themeClasses.value,\n variantClass.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanels = InstanceType<typeof VExpansionPanels>\n"],"mappings":";AAAA;AACA,+B,CAEA;;SACSA,c,EAAgBC,Q;SAChBC,Y;SACAC,c,EAAgBC,Y;SAChBC,e,0CAET;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,e,EAAiBC,S,gCAE1B;;AAIA,OAAO,MAAMC,qBAAqD,GAAGC,MAAM,CAACC,GAAP,CAAW,2BAAX,CAA9D;AAEP,MAAMC,eAAe,GAAG,CAAC,SAAD,EAAY,WAAZ,EAAyB,OAAzB,EAAkC,QAAlC,CAAxB;AAIA,OAAO,MAAMC,gBAAgB,GAAGN,eAAe,CAAC;EAC9CO,IAAI,EAAE,kBADwC;EAG9CC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAELC,OAAO,EAAE;MACPC,IAAI,EAAEF,MADC;MAEPG,OAAO,EAAE,SAFF;MAGPC,SAAS,EAAGC,CAAD,IAAYV,eAAe,CAACW,QAAhB,CAAyBD,CAAzB;IAHhB,CAFJ;IAOLE,QAAQ,EAAEC,OAPL;IASL,GAAG1B,cAAc,EATZ;IAUL,GAAGE,YAAY,EAVV;IAWL,GAAGC,cAAc;EAXZ,CAHuC;EAiB9CwB,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAkB;EADlC,CAjBuC;;EAqB9CC,KAAK,CAAEb,KAAF,QAAoB;IAAA,IAAX;MAAEc;IAAF,CAAW;IACvB7B,QAAQ,CAACe,KAAD,EAAQN,qBAAR,CAAR;IAEA,MAAM;MAAEqB;IAAF,IAAmB3B,YAAY,CAACY,KAAD,CAArC;IAEA,MAAMgB,YAAY,GAAG1B,QAAQ,CAAC,MAAMU,KAAK,CAACG,OAAN,IAAkB,+BAA8BH,KAAK,CAACG,OAAQ,EAArE,CAA7B;IAEAd,eAAe,CAAC;MACd4B,eAAe,EAAE;QACfhB,KAAK,EAAEV,KAAK,CAACS,KAAD,EAAQ,OAAR;MADG,CADH;MAIdkB,oBAAoB,EAAE;QACpBT,QAAQ,EAAElB,KAAK,CAACS,KAAD,EAAQ,UAAR;MADK;IAJR,CAAD,CAAf;IASAP,SAAS,CAAC;MAAA,SAEC,CACL,oBADK,EAELsB,YAAY,CAACI,KAFR,EAGLH,YAAY,CAACG,KAHR;IAFD,GAOIL,KAPJ,CAAD,CAAT;IAWA,OAAO,EAAP;EACD;;AAjD6C,CAAD,CAAxC"}
1
+ {"version":3,"file":"VExpansionPanels.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","defineComponent","useRender","VExpansionPanelSymbol","Symbol","for","allowedVariants","VExpansionPanels","name","props","color","String","variant","type","default","validator","v","includes","readonly","Boolean","emits","val","setup","slots","themeClasses","variantClass","VExpansionPanel","VExpansionPanelTitle","value"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanels.tsx"],"sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { GroupItemProvide } from '@/composables/group'\nimport type { InjectionKey, PropType } from 'vue'\n\nexport const VExpansionPanelSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-expansion-panel')\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport const VExpansionPanels = defineComponent({\n name: 'VExpansionPanels',\n\n props: {\n color: String,\n variant: {\n type: String as PropType<Variant>,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n readonly: Boolean,\n\n ...makeGroupProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n color: toRef(props, 'color'),\n },\n VExpansionPanelTitle: {\n readonly: toRef(props, 'readonly'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-expansion-panels',\n themeClasses.value,\n variantClass.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanels = InstanceType<typeof VExpansionPanels>\n"],"mappings":";AAAA;AACA,+B,CAEA;;SACSA,c,EAAgBC,Q;SAChBC,Y;SACAC,c,EAAgBC,Y;SAChBC,e,0CAET;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,e,EAAiBC,S,gCAE1B;;AAIA,OAAO,MAAMC,qBAAqD,GAAGC,MAAM,CAACC,GAAP,CAAW,2BAAX,CAA9D;AAEP,MAAMC,eAAe,GAAG,CAAC,SAAD,EAAY,WAAZ,EAAyB,OAAzB,EAAkC,QAAlC,CAAxB;AAIA,OAAO,MAAMC,gBAAgB,GAAGN,eAAe,CAAC;EAC9CO,IAAI,EAAE,kBADwC;EAG9CC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAELC,OAAO,EAAE;MACPC,IAAI,EAAEF,MADC;MAEPG,OAAO,EAAE,SAFF;MAGPC,SAAS,EAAGC,CAAD,IAAYV,eAAe,CAACW,QAAhB,CAAyBD,CAAzB;IAHhB,CAFJ;IAOLE,QAAQ,EAAEC,OAPL;IASL,GAAG1B,cAAc,EATZ;IAUL,GAAGE,YAAY,EAVV;IAWL,GAAGC,cAAc;EAXZ,CAHuC;EAiB9CwB,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAkB;EADlC,CAjBuC;;EAqB9CC,KAAK,CAAEb,KAAF,QAAoB;IAAA,IAAX;MAAEc;IAAF,CAAW;IACvB7B,QAAQ,CAACe,KAAD,EAAQN,qBAAR,CAAR;IAEA,MAAM;MAAEqB;IAAF,IAAmB3B,YAAY,CAACY,KAAD,CAArC;IAEA,MAAMgB,YAAY,GAAG1B,QAAQ,CAAC,MAAMU,KAAK,CAACG,OAAN,IAAkB,+BAA8BH,KAAK,CAACG,OAAQ,EAArE,CAA7B;IAEAd,eAAe,CAAC;MACd4B,eAAe,EAAE;QACfhB,KAAK,EAAEV,KAAK,CAACS,KAAD,EAAQ,OAAR;MADG,CADH;MAIdkB,oBAAoB,EAAE;QACpBT,QAAQ,EAAElB,KAAK,CAACS,KAAD,EAAQ,UAAR;MADK;IAJR,CAAD,CAAf;IASAP,SAAS,CAAC;MAAA,SAEC,CACL,oBADK,EAELsB,YAAY,CAACI,KAFR,EAGLH,YAAY,CAACG,KAHR;IAFD,GAOIL,KAPJ,CAAD,CAAT;IAWA,OAAO,EAAP;EACD;;AAjD6C,CAAD,CAAxC"}
@@ -1,19 +1,24 @@
1
1
  @use '../../styles/settings';
2
2
 
3
+ // VExpansionPanel
4
+ $expansion-panel-active-margin: 16px !default;
3
5
  $expansion-panel-background-color: rgb(var(--v-theme-surface)) !default;
4
- $expansion-panel-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
5
6
  $expansion-panel-border-color: rgba(var(--v-border-color), var(--v-border-opacity)) !default;
6
7
  $expansion-panel-border-radius: settings.$border-radius-root !default;
7
- $expansion-panel-active-margin: 16px !default;
8
+ $expansion-panel-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
9
+ $expansion-panel-disabled-opacity: 0.26 !default;
10
+ $expansion-panel-disabled-color: rgba(var(--v-theme-on-surface), $expansion-panel-disabled-opacity) !default;
11
+ $expansion-panel-disabled-overlay: 0.12 !default;
12
+ $expansion-panel-inset-active-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
13
+ $expansion-panel-inset-max-width: 100% !default;
14
+ $expansion-panel-popout-active-max-width: calc(100% + #{$expansion-panel-active-margin}) !default;
15
+ $expansion-panel-popout-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
16
+
17
+ // VExpansionPanelTitle
18
+ $expansion-panel-active-title-min-height: 64px !default;
8
19
  $expansion-panel-title-font-size: 0.9375rem !default;
9
20
  $expansion-panel-title-min-height: 48px !default;
10
- $expansion-panel-active-title-min-height: 64px !default;
11
21
  $expansion-panel-title-padding: 16px 24px !default;
22
+
23
+ // VExpansionPanelText
12
24
  $expansion-panel-text-padding: 8px 24px 16px !default;
13
- $expansion-panel-popout-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
14
- $expansion-panel-popout-active-max-width: calc(100% + #{$expansion-panel-active-margin}) !default;
15
- $expansion-panel-inset-max-width: 100% !default;
16
- $expansion-panel-inset-active-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
17
- $expansion-panel-disabled-opacity: 0.26 !default;
18
- $expansion-panel-disabled-overlay: 0.12 !default;
19
- $expansion-panel-disabled-color: rgba(var(--v-theme-on-surface), $expansion-panel-disabled-opacity) !default;
@@ -13,7 +13,7 @@
13
13
  position: relative;
14
14
  --v-field-padding-start: 16px;
15
15
  --v-field-padding-end: 16px;
16
- --v-field-padding-top: 8px;
16
+ --v-field-padding-top: 10px;
17
17
  --v-field-padding-bottom: 6px;
18
18
  }
19
19
  .v-field--disabled {
@@ -25,8 +25,6 @@
25
25
  /* region MODIFIERS */
26
26
  .v-field--prepended {
27
27
  padding-inline-start: 12px;
28
- --v-field-padding-start: 6px;
29
- --v-field-padding-end: 6px;
30
28
  }
31
29
  .v-field--appended {
32
30
  padding-inline-end: 12px;
@@ -44,16 +42,26 @@
44
42
  .v-field--variant-plain, .v-field--variant-underlined {
45
43
  border-radius: 0;
46
44
  padding: 0;
47
- --v-field-padding-start: 0;
48
- --v-field-padding-end: 0;
49
- --v-field-padding-top: 0;
50
- }
51
- .v-field--variant-plain.v-field--single-line, .v-field--variant-underlined.v-field--single-line {
52
- --v-field-padding-top: 0;
45
+ --v-field-padding-start: 0px;
46
+ --v-field-padding-end: 0px;
47
+ --v-field-padding-top: 6px;
48
+ --v-field-padding-bottom: 2px;
53
49
  }
54
50
  .v-field--variant-outlined, .v-field--single-line {
55
- --v-field-padding-top: 0;
51
+ --v-field-padding-top: 0px;
56
52
  }
53
+ .v-input--density-default .v-field--variant-outlined, .v-input--density-default .v-field--single-line {
54
+ --v-field-padding-bottom: 16px;
55
+ }
56
+
57
+ .v-input--density-comfortable .v-field--variant-outlined, .v-input--density-comfortable .v-field--single-line {
58
+ --v-field-padding-bottom: 12px;
59
+ }
60
+
61
+ .v-input--density-compact .v-field--variant-outlined, .v-input--density-compact .v-field--single-line {
62
+ --v-field-padding-bottom: 8px;
63
+ }
64
+
57
65
  .v-input--density-default .v-field--variant-solo, .v-input--density-default .v-field--variant-filled {
58
66
  --v-input-control-height: 56px;
59
67
  --v-field-padding-bottom: 6px;
@@ -69,38 +77,49 @@
69
77
  --v-field-padding-bottom: -2px;
70
78
  }
71
79
 
72
- .v-input--density-default .v-field--variant-underlined {
80
+ .v-input--density-default .v-field--variant-plain, .v-input--density-default .v-field--variant-underlined {
81
+ --v-input-control-height: 48px;
82
+ }
83
+
84
+ .v-input--density-comfortable .v-field--variant-plain, .v-input--density-comfortable .v-field--variant-underlined {
73
85
  --v-input-control-height: 40px;
74
- --v-field-padding-bottom: 6px;
75
86
  }
76
87
 
77
- .v-input--density-comfortable .v-field--variant-underlined {
88
+ .v-input--density-compact .v-field--variant-plain, .v-input--density-compact .v-field--variant-underlined {
78
89
  --v-input-control-height: 32px;
79
- --v-field-padding-bottom: 4px;
80
90
  }
81
91
 
82
- .v-input--density-compact .v-field--variant-underlined {
83
- --v-input-control-height: 24px;
84
- --v-field-padding-bottom: 2px;
92
+ .v-field--prepended {
93
+ --v-field-padding-start: 6px;
94
+ }
95
+ .v-field--appended {
96
+ --v-field-padding-end: 6px;
85
97
  }
86
98
 
87
99
  /* endregion */
88
100
  /* region ELEMENTS */
89
101
  .v-field__input {
90
- align-self: stretch;
91
102
  color: inherit;
92
103
  display: flex;
93
104
  flex-wrap: wrap;
94
105
  letter-spacing: 0.009375em;
95
106
  opacity: var(--v-high-emphasis-opacity);
107
+ min-height: var(--v-input-control-height, 56px);
96
108
  padding-inline-start: var(--v-field-padding-start);
97
109
  padding-inline-end: var(--v-field-padding-end);
98
- padding-top: var(--v-field-padding-top, 8px);
110
+ padding-top: calc(var(--v-field-padding-top, 10px) + var(--v-input-padding-top, 0));
111
+ padding-bottom: var(--v-field-padding-bottom, 6px);
99
112
  width: 100%;
100
113
  }
101
114
  .v-field__input input {
102
115
  letter-spacing: inherit;
103
116
  }
117
+ .v-field__input input::placeholder,
118
+ textarea.v-field__input::placeholder {
119
+ color: currentColor;
120
+ opacity: var(--v-disabled-opacity);
121
+ }
122
+
104
123
  .v-field__input:focus, .v-field__input:active {
105
124
  outline: none;
106
125
  }
@@ -110,10 +129,10 @@
110
129
 
111
130
  .v-field__field {
112
131
  flex: 1 0;
113
- min-height: var(--v-input-control-height, 56px);
114
132
  grid-area: field;
115
- padding-bottom: var(--v-field-padding-bottom, 6px);
116
133
  position: relative;
134
+ align-items: flex-start;
135
+ display: flex;
117
136
  }
118
137
 
119
138
  /* endregion */
@@ -132,13 +151,12 @@
132
151
  padding-inline-start: var(--v-field-padding-after);
133
152
  }
134
153
 
135
- .v-field__field,
136
154
  .v-field__prepend-inner,
137
155
  .v-field__append-inner,
138
156
  .v-field__clearable {
139
157
  align-items: flex-start;
140
158
  display: flex;
141
- padding-top: var(--v-input-padding-top, 8px);
159
+ padding-top: var(--v-input-padding-top, 10px);
142
160
  }
143
161
 
144
162
  .v-field--focused .v-field__prepend-inner,
@@ -190,6 +208,7 @@
190
208
  max-width: calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));
191
209
  pointer-events: none;
192
210
  position: absolute;
211
+ top: var(--v-input-padding-top, 10px);
193
212
  transform-origin: left center;
194
213
  transition: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
195
214
  transition-property: opacity, transform;
@@ -225,7 +244,7 @@
225
244
  }
226
245
 
227
246
  .v-field--variant-plain .v-label.v-field-label--floating, .v-field--variant-underlined .v-label.v-field-label--floating {
228
- transform: translateY(-6px);
247
+ transform: translateY(-16px);
229
248
  margin: 0;
230
249
  }
231
250
  .v-field--variant-outlined .v-label.v-field-label--floating {
@@ -3,14 +3,14 @@ import { mergeProps as _mergeProps, Fragment as _Fragment, withDirectives as _wi
3
3
  import "./VField.css"; // Components
4
4
 
5
5
  import { VExpandXTransition } from "../transitions/index.mjs";
6
- import { VIcon } from "../VIcon/index.mjs";
7
- import { VFieldLabel } from "./VFieldLabel.mjs"; // Composables
6
+ import { VFieldLabel } from "./VFieldLabel.mjs";
7
+ import { VIcon } from "../VIcon/index.mjs"; // Composables
8
8
 
9
+ import { IconValue } from "../../composables/icons.mjs";
9
10
  import { LoaderSlot, makeLoaderProps, useLoader } from "../../composables/loader.mjs";
10
- import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
11
- import { useBackgroundColor, useTextColor } from "../../composables/color.mjs";
12
11
  import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
13
- import { IconValue } from "../../composables/icons.mjs"; // Utilities
12
+ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
13
+ import { useBackgroundColor, useTextColor } from "../../composables/color.mjs"; // Utilities
14
14
 
15
15
  import { computed, ref, toRef, watch } from 'vue';
16
16
  import { convertToUnit, genericComponent, getUid, nullifyTransforms, pick, propsFactory, standardEasing, useRender } from "../../util/index.mjs"; // Types
@@ -104,7 +104,7 @@ export const VField = genericComponent()({
104
104
  const width = Math.abs(targetWidth - rect.width) > 1 ? {
105
105
  maxWidth: convertToUnit(targetWidth)
106
106
  } : undefined;
107
- const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000;
107
+ const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000 || 150;
108
108
  const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'));
109
109
  el.style.visibility = 'visible';
110
110
  targetEl.style.visibility = 'hidden';
@@ -145,9 +145,9 @@ export const VField = genericComponent()({
145
145
  var _slots$prependInner, _slots$default, _slots$appendInner;
146
146
 
147
147
  const isOutlined = props.variant === 'outlined';
148
- const hasPrepend = slots.prependInner || props.prependInnerIcon;
148
+ const hasPrepend = slots['prepend-inner'] || props.prependInnerIcon;
149
149
  const hasClear = !!(props.clearable || slots.clear);
150
- const hasAppend = !!(slots.appendInner || props.appendInnerIcon || hasClear);
150
+ const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);
151
151
  const label = slots.label ? slots.label({
152
152
  label: props.label,
153
153
  props: {
@@ -180,14 +180,17 @@ export const VField = genericComponent()({
180
180
  }, {
181
181
  default: slots.loader
182
182
  }), hasPrepend && _createVNode("div", {
183
+ "key": "prepend",
183
184
  "class": "v-field__prepend-inner"
184
185
  }, [props.prependInnerIcon && _createVNode(VIcon, {
186
+ "key": "prepend-icon",
185
187
  "onClick": attrs['onClick:prependInner'],
186
188
  "icon": props.prependInnerIcon
187
- }, null), slots == null ? void 0 : (_slots$prependInner = slots.prependInner) == null ? void 0 : _slots$prependInner.call(slots, slotProps.value)]), _createVNode("div", {
189
+ }, null), (_slots$prependInner = slots['prepend-inner']) == null ? void 0 : _slots$prependInner.call(slots, slotProps.value)]), _createVNode("div", {
188
190
  "class": "v-field__field",
189
191
  "data-no-activator": ""
190
192
  }, [['solo', 'filled'].includes(props.variant) && hasLabel.value && _createVNode(VFieldLabel, {
193
+ "key": "floating-label",
191
194
  "ref": floatingLabelRef,
192
195
  "class": [textColorClasses.value],
193
196
  "floating": true
@@ -205,7 +208,9 @@ export const VField = genericComponent()({
205
208
  },
206
209
  focus,
207
210
  blur
208
- })]), hasClear && _createVNode(VExpandXTransition, null, {
211
+ })]), hasClear && _createVNode(VExpandXTransition, {
212
+ "key": "clear"
213
+ }, {
209
214
  default: () => [_withDirectives(_createVNode("div", {
210
215
  "class": "v-field__clearable"
211
216
  }, [slots.clear ? slots.clear() : _createVNode(VIcon, {
@@ -213,8 +218,10 @@ export const VField = genericComponent()({
213
218
  "icon": props.clearIcon
214
219
  }, null)]), [[_vShow, props.dirty]])]
215
220
  }), hasAppend && _createVNode("div", {
221
+ "key": "append",
216
222
  "class": "v-field__append-inner"
217
- }, [slots == null ? void 0 : (_slots$appendInner = slots.appendInner) == null ? void 0 : _slots$appendInner.call(slots, slotProps.value), props.appendInnerIcon && _createVNode(VIcon, {
223
+ }, [(_slots$appendInner = slots['append-inner']) == null ? void 0 : _slots$appendInner.call(slots, slotProps.value), props.appendInnerIcon && _createVNode(VIcon, {
224
+ "key": "append-icon",
218
225
  "onClick": attrs['onClick:appendInner'],
219
226
  "icon": props.appendInnerIcon
220
227
  }, null)]), _createVNode("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"VField.mjs","names":["VExpandXTransition","VIcon","VFieldLabel","LoaderSlot","makeLoaderProps","useLoader","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","makeFocusProps","useFocus","IconValue","computed","ref","toRef","watch","convertToUnit","genericComponent","getUid","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","color","dirty","disabled","error","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","e","focused","val","setup","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","isActive","hasLabel","uid","labelRef","floatingLabelRef","controlRef","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","value","undefined","el","$el","targetEl","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","duration","parseFloat","getComputedStyle","transitionDuration","scale","getPropertyValue","style","visibility","animate","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","target","document","activeElement","preventDefault","isOutlined","hasPrepend","prependInner","hasClear","clear","hasAppend","appendInner","for","loading","loader","class","filterFieldProps","Object","keys"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\nimport { VFieldLabel } from './VFieldLabel'\n\n// Composables\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getUid,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { VInputSlot } from '@/components/VInput/VInput'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', '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 color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: 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 ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n prependInner: [DefaultInputSlot & VInputSlot]\n appendInner: [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\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}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\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\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\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\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 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 duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000\n const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'))\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n el.animate([\n { transform: 'translate(0)' },\n { transform: `translate(${x}px, ${y}px) scale(${scale})`, ...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 }, { 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 emit('click:control', e)\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots.prependInner || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots.appendInner || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\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--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\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--has-label': !!label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\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' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div\n class=\"v-field__prepend-inner\"\n >\n { props.prependInnerIcon && (\n <VIcon\n onClick={ attrs['onClick:prependInner'] }\n icon={ props.prependInnerIcon }\n />\n ) }\n\n { slots?.prependInner?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n { ['solo', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\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 },\n focus,\n blur,\n } as VFieldSlot) }\n </div>\n\n { hasClear && (\n <VExpandXTransition>\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n >\n { slots.clear\n ? slots.clear()\n : (\n <VIcon\n onClick={ (e: MouseEvent) => emit('click:clear', e) }\n icon={ props.clearIcon }\n />\n )\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasAppend && (\n <div\n class=\"v-field__append-inner\"\n >\n { slots?.appendInner?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <VIcon\n onClick={ attrs['onClick:appendInner'] }\n icon={ props.appendInnerIcon }\n />\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>\n { label }\n </VFieldLabel>\n </div>\n ) }\n\n <div class=\"v-field__outline__end\" />\n </>\n ) }\n\n { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating>\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 return pick(attrs, Object.keys(VField.props))\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VField.mjs","names":["VExpandXTransition","VFieldLabel","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeFocusProps","useFocus","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","computed","ref","toRef","watch","convertToUnit","genericComponent","getUid","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","color","dirty","disabled","error","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","e","focused","val","setup","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","isActive","hasLabel","uid","labelRef","floatingLabelRef","controlRef","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","value","undefined","el","$el","targetEl","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","duration","parseFloat","getComputedStyle","transitionDuration","scale","getPropertyValue","style","visibility","animate","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","loading","loader","class","filterFieldProps","Object","keys"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VFieldLabel } from './VFieldLabel'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getUid,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { MakeSlots } from '@/util'\nimport type { PropType, Ref } from 'vue'\nimport type { VInputSlot } from '@/components/VInput/VInput'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', '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 color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: 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 ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n 'prepend-inner': [DefaultInputSlot & VInputSlot]\n 'append-inner': [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\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}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\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\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\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\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 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 duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000 || 150\n const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'))\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n el.animate([\n { transform: 'translate(0)' },\n { transform: `translate(${x}px, ${y}px) scale(${scale})`, ...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 }, { 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 emit('click:control', e)\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 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--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\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--has-label': !!label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\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' : 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 <VIcon\n key=\"prepend-icon\"\n onClick={ attrs['onClick:prependInner'] }\n icon={ props.prependInnerIcon }\n />\n ) }\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n { ['solo', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\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 },\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 >\n { slots.clear\n ? slots.clear()\n : (\n <VIcon\n onClick={ (e: MouseEvent) => emit('click:clear', e) }\n icon={ props.clearIcon }\n />\n )\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 <VIcon\n key=\"append-icon\"\n onClick={ attrs['onClick:appendInner'] }\n icon={ props.appendInnerIcon }\n />\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>\n { label }\n </VFieldLabel>\n </div>\n ) }\n\n <div class=\"v-field__outline__end\" />\n </>\n ) }\n\n { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating>\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 return pick(attrs, Object.keys(VField.props))\n}\n"],"mappings":"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"}