@vuetify/nightly 3.0.0-beta.3 → 3.0.0-beta.6

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 (441) hide show
  1. package/CHANGELOG.md +43 -2
  2. package/dist/_component-variables.sass +61 -0
  3. package/dist/json/attributes.json +261 -205
  4. package/dist/json/importMap.json +175 -219
  5. package/dist/json/tags.json +74 -104
  6. package/dist/json/web-types.json +880 -835
  7. package/dist/vuetify.css +597 -407
  8. package/dist/vuetify.d.ts +6770 -2144
  9. package/dist/vuetify.esm.js +9075 -8454
  10. package/dist/vuetify.esm.js.map +1 -1
  11. package/dist/vuetify.js +9074 -8453
  12. package/dist/vuetify.js.map +1 -1
  13. package/dist/vuetify.min.css +2 -2
  14. package/dist/vuetify.min.js +1078 -1040
  15. package/dist/vuetify.min.js.map +1 -1
  16. package/lib/blueprints/index.mjs +4 -0
  17. package/lib/blueprints/index.mjs.map +1 -0
  18. package/lib/blueprints/md1.mjs +63 -0
  19. package/lib/blueprints/md1.mjs.map +1 -0
  20. package/lib/blueprints/md2.mjs +60 -0
  21. package/lib/blueprints/md2.mjs.map +1 -0
  22. package/lib/blueprints/md3.mjs +74 -0
  23. package/lib/blueprints/md3.mjs.map +1 -0
  24. package/lib/components/VAlert/VAlert.css +5 -5
  25. package/lib/components/VAlert/VAlert.mjs +8 -2
  26. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  27. package/lib/components/VAlert/VAlert.sass +0 -2
  28. package/lib/components/VApp/VApp.css +2 -5
  29. package/lib/components/VApp/VApp.mjs +3 -4
  30. package/lib/components/VApp/VApp.mjs.map +1 -1
  31. package/lib/components/VApp/VApp.sass +11 -12
  32. package/lib/components/VApp/variables.scss +6 -0
  33. package/lib/components/VAppBar/VAppBar.mjs +4 -3
  34. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  35. package/lib/components/VAppBar/VAppBar.sass +0 -1
  36. package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -12
  37. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  38. package/lib/components/VAppBar/VAppBarTitle.mjs +4 -3
  39. package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
  40. package/lib/components/VAppBar/_variables.scss +2 -0
  41. package/lib/components/VAutocomplete/VAutocomplete.mjs +54 -21
  42. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  43. package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
  44. package/lib/components/VAvatar/VAvatar.css +1 -1
  45. package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
  46. package/lib/components/VAvatar/VAvatar.sass +1 -2
  47. package/lib/components/VAvatar/_mixins.scss +0 -1
  48. package/lib/components/VBadge/VBadge.mjs +8 -7
  49. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  50. package/lib/components/VBadge/VBadge.sass +0 -1
  51. package/lib/components/VBadge/_variables.scss +2 -2
  52. package/lib/components/VBanner/VBanner.css +7 -7
  53. package/lib/components/VBanner/VBanner.mjs +24 -17
  54. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  55. package/lib/components/VBanner/VBanner.sass +6 -8
  56. package/lib/components/VBanner/VBannerActions.mjs +1 -1
  57. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  58. package/lib/components/VBanner/index.mjs +0 -2
  59. package/lib/components/VBanner/index.mjs.map +1 -1
  60. package/lib/components/VBottomNavigation/VBottomNavigation.css +4 -11
  61. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -3
  62. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  63. package/lib/components/VBottomNavigation/VBottomNavigation.sass +5 -13
  64. package/lib/components/VBottomNavigation/_variables.scss +7 -8
  65. package/lib/components/VBreadcrumbs/VBreadcrumbs.css +13 -6
  66. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +30 -19
  67. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  68. package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -4
  69. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
  70. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  71. package/lib/components/VBreadcrumbs/_variables.scss +2 -1
  72. package/lib/components/VBtn/VBtn.css +72 -15
  73. package/lib/components/VBtn/VBtn.mjs +70 -27
  74. package/lib/components/VBtn/VBtn.mjs.map +1 -1
  75. package/lib/components/VBtn/VBtn.sass +70 -13
  76. package/lib/components/VBtn/_variables.scss +4 -1
  77. package/lib/components/VBtnGroup/VBtnGroup.sass +0 -1
  78. package/lib/components/VBtnGroup/_variables.scss +2 -0
  79. package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
  80. package/lib/components/VBtnToggle/_variables.scss +1 -0
  81. package/lib/components/VCard/VCard.css +86 -69
  82. package/lib/components/VCard/VCard.mjs +52 -66
  83. package/lib/components/VCard/VCard.mjs.map +1 -1
  84. package/lib/components/VCard/VCard.sass +74 -62
  85. package/lib/components/VCard/VCardActions.mjs +1 -1
  86. package/lib/components/VCard/VCardActions.mjs.map +1 -1
  87. package/lib/components/VCard/VCardItem.mjs +88 -0
  88. package/lib/components/VCard/VCardItem.mjs.map +1 -0
  89. package/lib/components/VCard/_variables.scss +40 -24
  90. package/lib/components/VCard/index.mjs +1 -5
  91. package/lib/components/VCard/index.mjs.map +1 -1
  92. package/lib/components/VCarousel/VCarousel.mjs +5 -4
  93. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  94. package/lib/components/VCarousel/VCarousel.sass +0 -1
  95. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  96. package/lib/components/VCarousel/_variables.scss +1 -0
  97. package/lib/components/VCheckbox/VCheckbox.mjs +13 -46
  98. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  99. package/lib/components/VCheckbox/VCheckbox.sass +0 -1
  100. package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
  101. package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
  102. package/lib/components/VCheckbox/index.mjs +1 -0
  103. package/lib/components/VCheckbox/index.mjs.map +1 -1
  104. package/lib/components/VChip/VChip.css +142 -65
  105. package/lib/components/VChip/VChip.mjs +77 -38
  106. package/lib/components/VChip/VChip.mjs.map +1 -1
  107. package/lib/components/VChip/VChip.sass +6 -1
  108. package/lib/components/VChip/_mixins.scss +26 -6
  109. package/lib/components/VChip/_variables.scss +1 -5
  110. package/lib/components/VChipGroup/VChipGroup.mjs +5 -4
  111. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  112. package/lib/components/VChipGroup/VChipGroup.sass +1 -1
  113. package/lib/components/VChipGroup/_variables.scss +1 -1
  114. package/lib/components/VCode/VCode.sass +1 -2
  115. package/lib/components/VCode/_variables.scss +1 -1
  116. package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
  117. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  118. package/lib/components/VColorPicker/VColorPicker.sass +0 -1
  119. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
  120. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  121. package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
  122. package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
  123. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  124. package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
  125. package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
  126. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  127. package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
  128. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
  129. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  130. package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
  131. package/lib/components/VColorPicker/_variables.scss +17 -10
  132. package/lib/components/VCombobox/VCombobox.mjs +52 -36
  133. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  134. package/lib/components/VCombobox/VCombobox.sass +0 -2
  135. package/lib/components/VCounter/VCounter.mjs +16 -16
  136. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  137. package/lib/components/VCounter/VCounter.sass +1 -2
  138. package/lib/components/VCounter/_variables.scss +2 -1
  139. package/lib/components/VDialog/VDialog.css +2 -5
  140. package/lib/components/VDialog/VDialog.mjs +25 -25
  141. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  142. package/lib/components/VDialog/VDialog.sass +1 -5
  143. package/lib/components/VDialog/_variables.scss +0 -1
  144. package/lib/components/VDivider/VDivider.mjs +16 -17
  145. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  146. package/lib/components/VDivider/VDivider.sass +0 -1
  147. package/lib/components/VDivider/_variables.scss +3 -1
  148. package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -0
  149. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +9 -4
  150. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  151. package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -1
  152. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -7
  153. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  154. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  155. package/lib/components/VExpansionPanel/_variables.scss +15 -10
  156. package/lib/components/VField/VField.css +11 -11
  157. package/lib/components/VField/VField.mjs +19 -12
  158. package/lib/components/VField/VField.mjs.map +1 -1
  159. package/lib/components/VField/VField.sass +8 -10
  160. package/lib/components/VField/VFieldLabel.mjs +8 -9
  161. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  162. package/lib/components/VField/_variables.scss +3 -3
  163. package/lib/components/VFileInput/VFileInput.css +3 -3
  164. package/lib/components/VFileInput/VFileInput.mjs +12 -7
  165. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  166. package/lib/components/VFileInput/VFileInput.sass +3 -4
  167. package/lib/components/VFooter/VFooter.mjs +4 -3
  168. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  169. package/lib/components/VFooter/VFooter.sass +0 -1
  170. package/lib/components/VFooter/_variables.scss +2 -1
  171. package/lib/components/VForm/VForm.mjs +3 -3
  172. package/lib/components/VForm/VForm.mjs.map +1 -1
  173. package/lib/components/VGrid/VCol.mjs.map +1 -1
  174. package/lib/components/VGrid/VContainer.mjs +4 -3
  175. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  176. package/lib/components/VGrid/VRow.mjs.map +1 -1
  177. package/lib/components/VIcon/VIcon.css +0 -8
  178. package/lib/components/VIcon/VIcon.mjs +20 -21
  179. package/lib/components/VIcon/VIcon.mjs.map +1 -1
  180. package/lib/components/VIcon/VIcon.sass +0 -9
  181. package/lib/components/VIcon/_variables.scss +2 -5
  182. package/lib/components/VIcon/index.mjs.map +1 -1
  183. package/lib/components/VImg/VImg.sass +0 -1
  184. package/lib/components/VInput/VInput.mjs +13 -9
  185. package/lib/components/VInput/VInput.mjs.map +1 -1
  186. package/lib/components/VInput/VInput.sass +0 -1
  187. package/lib/components/VItemGroup/VItem.mjs +3 -0
  188. package/lib/components/VItemGroup/VItem.mjs.map +1 -1
  189. package/lib/components/VItemGroup/VItemGroup.sass +0 -1
  190. package/lib/components/VKbd/VKbd.sass +0 -1
  191. package/lib/components/VKbd/_variables.scss +1 -1
  192. package/lib/components/VLabel/VLabel.mjs +4 -3
  193. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  194. package/lib/components/VLabel/VLabel.sass +0 -1
  195. package/lib/components/VLabel/_variables.scss +1 -0
  196. package/lib/components/VLazy/VLazy.mjs +5 -3
  197. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  198. package/lib/components/VList/VList.css +2 -2
  199. package/lib/components/VList/VList.mjs +16 -18
  200. package/lib/components/VList/VList.mjs.map +1 -1
  201. package/lib/components/VList/VList.sass +1 -2
  202. package/lib/components/VList/VListChildren.mjs +7 -6
  203. package/lib/components/VList/VListChildren.mjs.map +1 -1
  204. package/lib/components/VList/VListGroup.mjs +45 -31
  205. package/lib/components/VList/VListGroup.mjs.map +1 -1
  206. package/lib/components/VList/VListItem.css +84 -58
  207. package/lib/components/VList/VListItem.mjs +78 -45
  208. package/lib/components/VList/VListItem.mjs.map +1 -1
  209. package/lib/components/VList/VListItem.sass +68 -40
  210. package/lib/components/VList/VListItemAction.mjs +8 -9
  211. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  212. package/lib/components/VList/VListItemMedia.mjs +4 -3
  213. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  214. package/lib/components/VList/VListSubheader.mjs +4 -3
  215. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  216. package/lib/components/VList/_variables.scss +11 -5
  217. package/lib/components/VList/index.mjs +2 -5
  218. package/lib/components/VList/index.mjs.map +1 -1
  219. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
  220. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  221. package/lib/components/VMain/VMain.mjs +4 -3
  222. package/lib/components/VMain/VMain.mjs.map +1 -1
  223. package/lib/components/VMain/VMain.sass +0 -1
  224. package/lib/components/VMain/_variables.scss +1 -1
  225. package/lib/components/VMenu/VMenu.mjs +5 -5
  226. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  227. package/lib/components/VMenu/VMenu.sass +0 -1
  228. package/lib/components/VMessages/VMessages.mjs +5 -3
  229. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  230. package/lib/components/VMessages/VMessages.sass +0 -1
  231. package/lib/components/VMessages/_variables.scss +1 -1
  232. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +10 -4
  233. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  234. package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
  235. package/lib/components/VNavigationDrawer/_variables.scss +2 -1
  236. package/lib/components/VNavigationDrawer/touch.mjs +5 -2
  237. package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
  238. package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
  239. package/lib/components/VOverlay/VOverlay.mjs +10 -8
  240. package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
  241. package/lib/components/VOverlay/VOverlay.sass +0 -1
  242. package/lib/components/VOverlay/locationStrategies.mjs +267 -78
  243. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  244. package/lib/components/VOverlay/useActivator.mjs +4 -3
  245. package/lib/components/VOverlay/useActivator.mjs.map +1 -1
  246. package/lib/components/VOverlay/util/point.mjs +3 -3
  247. package/lib/components/VOverlay/util/point.mjs.map +1 -1
  248. package/lib/components/VPagination/VPagination.mjs +41 -23
  249. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  250. package/lib/components/VPagination/VPagination.sass +0 -1
  251. package/lib/components/VParallax/VParallax.mjs +5 -5
  252. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  253. package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
  254. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  255. package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
  256. package/lib/components/VProgressCircular/_variables.scss +2 -0
  257. package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
  258. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  259. package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
  260. package/lib/components/VProgressLinear/_variables.scss +1 -0
  261. package/lib/components/VRadioGroup/VRadioGroup.mjs +6 -3
  262. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  263. package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
  264. package/lib/components/VRadioGroup/_variables.scss +3 -4
  265. package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
  266. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  267. package/lib/components/VRating/VRating.mjs +6 -5
  268. package/lib/components/VRating/VRating.mjs.map +1 -1
  269. package/lib/components/VRating/VRating.sass +2 -1
  270. package/lib/components/VResponsive/VResponsive.mjs +7 -6
  271. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  272. package/lib/components/VSelect/VSelect.mjs +61 -22
  273. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  274. package/lib/components/VSelect/VSelect.sass +0 -2
  275. package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
  276. package/lib/components/VSelectionControl/VSelectionControl.mjs +12 -10
  277. package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
  278. package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
  279. package/lib/components/VSelectionControl/_variables.scss +1 -0
  280. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
  281. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  282. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -6
  283. package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
  284. package/lib/components/VSheet/VSheet.mjs +3 -3
  285. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  286. package/lib/components/VSheet/VSheet.sass +0 -1
  287. package/lib/components/VSheet/_variables.scss +3 -2
  288. package/lib/components/VSlideGroup/VSlideGroup.mjs +47 -49
  289. package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
  290. package/lib/components/VSlideGroup/VSlideGroup.sass +0 -1
  291. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +7 -3
  292. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  293. package/lib/components/VSlideGroup/_variables.scss +0 -5
  294. package/lib/components/VSlideGroup/index.mjs +2 -2
  295. package/lib/components/VSlideGroup/index.mjs.map +1 -1
  296. package/lib/components/VSlider/VSlider.mjs +7 -9
  297. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  298. package/lib/components/VSlider/VSlider.sass +0 -2
  299. package/lib/components/VSlider/VSliderThumb.mjs +6 -5
  300. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  301. package/lib/components/VSlider/VSliderThumb.sass +0 -2
  302. package/lib/components/VSlider/VSliderTrack.mjs +11 -10
  303. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  304. package/lib/components/VSlider/VSliderTrack.sass +0 -2
  305. package/lib/components/VSlider/slider.mjs +4 -4
  306. package/lib/components/VSlider/slider.mjs.map +1 -1
  307. package/lib/components/VSnackbar/VSnackbar.css +5 -5
  308. package/lib/components/VSnackbar/VSnackbar.mjs +49 -49
  309. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  310. package/lib/components/VSnackbar/VSnackbar.sass +0 -1
  311. package/lib/components/VSnackbar/_variables.scss +2 -0
  312. package/lib/components/VSwitch/VSwitch.css +7 -0
  313. package/lib/components/VSwitch/VSwitch.mjs +8 -2
  314. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  315. package/lib/components/VSwitch/VSwitch.sass +6 -1
  316. package/lib/components/VSwitch/_variables.scss +1 -0
  317. package/lib/components/VSystemBar/VSystemBar.mjs +5 -13
  318. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  319. package/lib/components/VSystemBar/VSystemBar.sass +0 -1
  320. package/lib/components/VSystemBar/_variables.scss +2 -1
  321. package/lib/components/VTable/VTable.css +1 -0
  322. package/lib/components/VTable/VTable.mjs +9 -8
  323. package/lib/components/VTable/VTable.mjs.map +1 -1
  324. package/lib/components/VTable/VTable.sass +1 -1
  325. package/lib/components/VTable/_variables.scss +2 -0
  326. package/lib/components/VTabs/VTab.css +3 -1
  327. package/lib/components/VTabs/VTab.mjs +4 -4
  328. package/lib/components/VTabs/VTab.mjs.map +1 -1
  329. package/lib/components/VTabs/VTab.sass +4 -2
  330. package/lib/components/VTabs/VTabs.mjs +15 -12
  331. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  332. package/lib/components/VTabs/VTabs.sass +0 -1
  333. package/lib/components/VTabs/_variables.scss +2 -0
  334. package/lib/components/VTextField/VTextField.mjs +25 -13
  335. package/lib/components/VTextField/VTextField.mjs.map +1 -1
  336. package/lib/components/VTextField/VTextField.sass +0 -1
  337. package/lib/components/VTextField/_variables.scss +1 -1
  338. package/lib/components/VTextarea/VTextarea.mjs +22 -12
  339. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  340. package/lib/components/VTextarea/VTextarea.sass +0 -2
  341. package/lib/components/VTextarea/_variables.scss +1 -0
  342. package/lib/components/VTimeline/VTimeline.mjs +24 -25
  343. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  344. package/lib/components/VTimeline/VTimeline.sass +3 -3
  345. package/lib/components/VTimeline/VTimelineDivider.mjs +41 -38
  346. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  347. package/lib/components/VTimeline/VTimelineItem.mjs +10 -11
  348. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  349. package/lib/components/VTimeline/_variables.scss +11 -6
  350. package/lib/components/VToolbar/VToolbar.css +15 -6
  351. package/lib/components/VToolbar/VToolbar.mjs +9 -9
  352. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  353. package/lib/components/VToolbar/VToolbar.sass +15 -7
  354. package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
  355. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  356. package/lib/components/VToolbar/_variables.scss +6 -2
  357. package/lib/components/VTooltip/VTooltip.mjs +41 -39
  358. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  359. package/lib/components/VTooltip/VTooltip.sass +0 -1
  360. package/lib/components/VTooltip/_variables.scss +1 -0
  361. package/lib/components/VWindow/VWindow.mjs +4 -4
  362. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  363. package/lib/components/VWindow/VWindow.sass +0 -2
  364. package/lib/components/VWindow/VWindowItem.mjs +21 -11
  365. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  366. package/lib/components/VWindow/_variables.scss +1 -0
  367. package/lib/components/index.d.ts +7316 -2666
  368. package/lib/components/transitions/dialog-transition.mjs +3 -0
  369. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  370. package/lib/components/transitions/index.mjs +0 -5
  371. package/lib/components/transitions/index.mjs.map +1 -1
  372. package/lib/composables/border.mjs +5 -6
  373. package/lib/composables/border.mjs.map +1 -1
  374. package/lib/composables/display.mjs +13 -11
  375. package/lib/composables/display.mjs.map +1 -1
  376. package/lib/composables/form.mjs +6 -6
  377. package/lib/composables/form.mjs.map +1 -1
  378. package/lib/composables/group.mjs.map +1 -1
  379. package/lib/composables/items.mjs +2 -2
  380. package/lib/composables/items.mjs.map +1 -1
  381. package/lib/composables/location.mjs +4 -8
  382. package/lib/composables/location.mjs.map +1 -1
  383. package/lib/composables/proxiedModel.mjs +2 -1
  384. package/lib/composables/proxiedModel.mjs.map +1 -1
  385. package/lib/composables/size.mjs +2 -2
  386. package/lib/composables/size.mjs.map +1 -1
  387. package/lib/composables/ssrBoot.mjs +3 -2
  388. package/lib/composables/ssrBoot.mjs.map +1 -1
  389. package/lib/composables/stack.mjs +7 -7
  390. package/lib/composables/stack.mjs.map +1 -1
  391. package/lib/composables/theme.mjs +15 -6
  392. package/lib/composables/theme.mjs.map +1 -1
  393. package/lib/composables/validation.mjs +15 -8
  394. package/lib/composables/validation.mjs.map +1 -1
  395. package/lib/composables/variant.mjs +7 -5
  396. package/lib/composables/variant.mjs.map +1 -1
  397. package/lib/directives/ripple/VRipple.sass +0 -1
  398. package/lib/entry-bundler.mjs +1 -1
  399. package/lib/framework.mjs +29 -7
  400. package/lib/framework.mjs.map +1 -1
  401. package/lib/index.d.ts +68 -70
  402. package/lib/styles/generic/_transitions.scss +13 -77
  403. package/lib/styles/main.css +44 -58
  404. package/lib/styles/tools/_variant.sass +6 -6
  405. package/lib/util/anchor.mjs +34 -28
  406. package/lib/util/anchor.mjs.map +1 -1
  407. package/lib/util/animation.mjs +2 -2
  408. package/lib/util/animation.mjs.map +1 -1
  409. package/lib/util/box.mjs +12 -0
  410. package/lib/util/box.mjs.map +1 -1
  411. package/lib/util/getCurrentInstance.mjs +19 -0
  412. package/lib/util/getCurrentInstance.mjs.map +1 -1
  413. package/lib/util/helpers.mjs +21 -5
  414. package/lib/util/helpers.mjs.map +1 -1
  415. package/package.json +16 -10
  416. package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
  417. package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
  418. package/lib/components/VBanner/VBannerIcon.mjs +0 -20
  419. package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
  420. package/lib/components/VBreadcrumbs/shared.mjs +0 -2
  421. package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
  422. package/lib/components/VCard/VCardAvatar.mjs +0 -3
  423. package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
  424. package/lib/components/VCard/VCardContent.mjs +0 -3
  425. package/lib/components/VCard/VCardContent.mjs.map +0 -1
  426. package/lib/components/VCard/VCardHeader.mjs +0 -3
  427. package/lib/components/VCard/VCardHeader.mjs.map +0 -1
  428. package/lib/components/VCard/VCardHeaderText.mjs +0 -3
  429. package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
  430. package/lib/components/VCard/VCardImg.mjs +0 -3
  431. package/lib/components/VCard/VCardImg.mjs.map +0 -1
  432. package/lib/components/VList/VListItemAvatar.mjs +0 -23
  433. package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
  434. package/lib/components/VList/VListItemHeader.mjs +0 -3
  435. package/lib/components/VList/VListItemHeader.mjs.map +0 -1
  436. package/lib/components/VList/VListItemIcon.mjs +0 -23
  437. package/lib/components/VList/VListItemIcon.mjs.map +0 -1
  438. package/lib/components/VTimeline/shared.mjs +0 -2
  439. package/lib/components/VTimeline/shared.mjs.map +0 -1
  440. package/lib/presets/default/index.mjs +0 -71
  441. package/lib/presets/default/index.mjs.map +0 -1
@@ -3,6 +3,7 @@ import { createTextVNode as _createTextVNode, mergeProps as _mergeProps, createV
3
3
  import "./VSelect.css"; // Components
4
4
 
5
5
  import { VDialogTransition } from "../transitions/index.mjs";
6
+ import { VCheckboxBtn } from "../VCheckbox/index.mjs";
6
7
  import { VChip } from "../VChip/index.mjs";
7
8
  import { VDefaultsProvider } from "../VDefaultsProvider/index.mjs";
8
9
  import { VList, VListItem } from "../VList/index.mjs";
@@ -16,7 +17,7 @@ import { useLocale } from "../../composables/locale.mjs";
16
17
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
17
18
  import { IconValue } from "../../composables/icons.mjs"; // Utility
18
19
 
19
- import { computed, ref } from 'vue';
20
+ import { computed, mergeProps, ref } from 'vue';
20
21
  import { genericComponent, propsFactory, useRender, wrapInArray } from "../../util/index.mjs"; // Types
21
22
 
22
23
  export const makeSelectProps = propsFactory({
@@ -25,10 +26,14 @@ export const makeSelectProps = propsFactory({
25
26
  eager: Boolean,
26
27
  hideNoData: Boolean,
27
28
  hideSelected: Boolean,
29
+ menu: Boolean,
28
30
  menuIcon: {
29
31
  type: IconValue,
30
32
  default: '$dropdown'
31
33
  },
34
+ menuProps: {
35
+ type: Object
36
+ },
32
37
  modelValue: {
33
38
  type: null,
34
39
  default: () => []
@@ -53,7 +58,8 @@ export const VSelect = genericComponent()({
53
58
  })
54
59
  },
55
60
  emits: {
56
- 'update:modelValue': val => true
61
+ 'update:modelValue': val => true,
62
+ 'update:menu': val => true
57
63
  },
58
64
 
59
65
  setup(props, _ref) {
@@ -64,15 +70,17 @@ export const VSelect = genericComponent()({
64
70
  t
65
71
  } = useLocale();
66
72
  const vTextFieldRef = ref();
67
- const menu = ref(false);
73
+ const menu = useProxiedModel(props, 'menu');
68
74
  const {
69
75
  items,
70
76
  transformIn,
71
77
  transformOut
72
78
  } = useItems(props);
73
79
  const model = useProxiedModel(props, 'modelValue', [], v => transformIn(wrapInArray(v)), v => {
80
+ var _transformed$;
81
+
74
82
  const transformed = transformOut(v);
75
- return props.multiple ? transformed : transformed[0];
83
+ return props.multiple ? transformed : (_transformed$ = transformed[0]) != null ? _transformed$ : null;
76
84
  });
77
85
  const selections = computed(() => {
78
86
  return model.value.map(v => {
@@ -125,6 +133,11 @@ export const VSelect = genericComponent()({
125
133
  const hasChips = !!(props.chips || slots.chip);
126
134
  return _createVNode(VTextField, {
127
135
  "ref": vTextFieldRef,
136
+ "modelValue": model.value.map(v => v.props.value).join(', '),
137
+ "onUpdate:modelValue": v => {
138
+ if (v == null) model.value = [];
139
+ },
140
+ "validationValue": props.modelValue,
128
141
  "class": ['v-select', {
129
142
  'v-select--active-menu': menu.value,
130
143
  'v-select--chips': !!props.chips,
@@ -136,37 +149,59 @@ export const VSelect = genericComponent()({
136
149
  "onClick:input": onClickControl,
137
150
  "onClick:control": onClickControl,
138
151
  "onBlur": () => menu.value = false,
139
- "modelValue": model.value.map(v => v.props.value).join(', '),
140
152
  "onKeydown": onKeydown
141
153
  }, { ...slots,
142
154
  default: () => {
143
- var _slots$noData, _slots$noData2;
155
+ var _slots$noData, _slots$noData2, _slots$prependItem, _slots$appendItem;
144
156
 
145
- return _createVNode(_Fragment, null, [_createVNode(VMenu, {
157
+ return _createVNode(_Fragment, null, [_createVNode(VMenu, _mergeProps({
146
158
  "modelValue": menu.value,
147
159
  "onUpdate:modelValue": $event => menu.value = $event,
148
160
  "activator": "parent",
149
161
  "contentClass": "v-select__content",
150
162
  "eager": props.eager,
151
163
  "openOnClick": false,
164
+ "closeOnContentClick": false,
152
165
  "transition": props.transition
153
- }, {
166
+ }, props.menuProps), {
154
167
  default: () => [_createVNode(VList, {
155
168
  "selected": selected.value,
156
- "selectStrategy": props.multiple ? 'independent' : 'single-independent'
169
+ "selectStrategy": props.multiple ? 'independent' : 'single-independent',
170
+ "onMousedown": e => e.preventDefault()
157
171
  }, {
158
172
  default: () => [!items.value.length && !props.hideNoData && ((_slots$noData = (_slots$noData2 = slots['no-data']) == null ? void 0 : _slots$noData2.call(slots)) != null ? _slots$noData : _createVNode(VListItem, {
159
173
  "title": t(props.noDataText)
160
- }, null)), items.value.map(item => _createVNode(VListItem, _mergeProps(item.props, {
161
- "onMousedown": e => e.preventDefault(),
162
- "onClick": () => select(item)
163
- }), null))]
174
+ }, null)), (_slots$prependItem = slots['prepend-item']) == null ? void 0 : _slots$prependItem.call(slots), items.value.map((item, index) => {
175
+ var _slots$item, _slots$item2;
176
+
177
+ return (_slots$item = (_slots$item2 = slots.item) == null ? void 0 : _slots$item2.call(slots, {
178
+ item,
179
+ index,
180
+ props: mergeProps(item.props, {
181
+ onClick: () => select(item)
182
+ })
183
+ })) != null ? _slots$item : _createVNode(VListItem, _mergeProps({
184
+ "key": index
185
+ }, item.props, {
186
+ "onClick": () => select(item)
187
+ }), {
188
+ prepend: _ref2 => {
189
+ let {
190
+ isSelected
191
+ } = _ref2;
192
+ return props.multiple && !props.hideSelected ? _createVNode(VCheckboxBtn, {
193
+ "modelValue": isSelected,
194
+ "ripple": false
195
+ }, null) : undefined;
196
+ }
197
+ });
198
+ }), (_slots$appendItem = slots['append-item']) == null ? void 0 : _slots$appendItem.call(slots)]
164
199
  })]
165
- }), selections.value.map((selection, index) => {
200
+ }), selections.value.map((item, index) => {
166
201
  function onChipClose(e) {
167
202
  e.stopPropagation();
168
203
  e.preventDefault();
169
- select(selection);
204
+ select(item);
170
205
  }
171
206
 
172
207
  const slotProps = {
@@ -174,34 +209,38 @@ export const VSelect = genericComponent()({
174
209
  modelValue: true
175
210
  };
176
211
  return _createVNode("div", {
212
+ "key": index,
177
213
  "class": "v-select__selection"
178
214
  }, [hasChips ? _createVNode(VDefaultsProvider, {
179
215
  "defaults": {
180
216
  VChip: {
181
217
  closable: props.closableChips,
182
218
  size: 'small',
183
- text: selection.props.title
219
+ text: item.title
184
220
  }
185
221
  }
186
222
  }, {
187
223
  default: () => [slots.chip ? slots.chip({
188
- props: slotProps,
189
- selection,
190
- index
224
+ item,
225
+ index,
226
+ props: slotProps
191
227
  }) : _createVNode(VChip, slotProps, null)]
192
228
  }) : slots.selection ? slots.selection({
193
- item: selection.originalItem,
229
+ item,
194
230
  index
195
231
  }) : _createVNode("span", {
196
232
  "class": "v-select__selection-text"
197
- }, [selection.props.title, props.multiple && index < selections.value.length - 1 && _createVNode("span", {
233
+ }, [item.title, props.multiple && index < selections.value.length - 1 && _createVNode("span", {
198
234
  "class": "v-select__selection-comma"
199
235
  }, [_createTextVNode(",")])])]);
200
236
  })]);
201
237
  }
202
238
  });
203
239
  });
204
- return useForwardRef({}, vTextFieldRef);
240
+ return useForwardRef({
241
+ menu,
242
+ select
243
+ }, vTextFieldRef);
205
244
  }
206
245
 
207
246
  });
@@ -1 +1 @@
1
- {"version":3,"file":"VSelect.mjs","names":["VDialogTransition","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","useForwardRef","useLocale","useProxiedModel","IconValue","computed","ref","genericComponent","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menuIcon","type","default","modelValue","multiple","noDataText","String","openOnClear","itemChildren","VSelect","name","props","transition","component","emits","val","setup","slots","t","vTextFieldRef","menu","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","onClear","e","onClickControl","length","onKeydown","includes","key","select","index","findIndex","splice","hasChips","chip","join","preventDefault","onChipClose","stopPropagation","slotProps","closable","size","text","title","originalItem"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots } from '@/util'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n modelValue: {\n type: null,\n default: () => ([]),\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: VInputSlots & VFieldSlots & MakeSlots<{\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = ref(false)\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : transformed[0]\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (props.hideNoData && !items.value.length) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:input={ onClickControl }\n onClick:control={ onClickControl }\n onBlur={ () => menu.value = false }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n transition={ props.transition }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { items.value.map(item => (\n <VListItem\n { ...item.props }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onClick={ () => select(item) }\n />\n )) }\n </VList>\n </VMenu>\n\n { selections.value.map((selection, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(selection)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: selection.props.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ props: slotProps, selection, index })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item: selection.originalItem, index })\n : (\n <span class=\"v-select__selection-text\">\n { selection.props.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return useForwardRef({}, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":";AAAA;AACA,uB,CAEA;;SACSA,iB;SACAC,K;SACAC,iB;SACAC,K,EAAOC,S;SACPC,K;SACAC,U,mCAET;;SACSC,c,EAAgBC,Q;SAChBC,mB;SACAC,a;SACAC,S;SACAC,e;SACAC,S,uCAET;;AACA,SAASC,QAAT,EAAmBC,GAAnB,QAA8B,KAA9B;SACSC,gB,EAAkBC,Y,EAAcC,S,EAAWC,W,gCAEpD;;AAMA,OAAO,MAAMC,eAAe,GAAGH,YAAY,CAAC;EAC1CI,KAAK,EAAEC,OADmC;EAE1CC,aAAa,EAAED,OAF2B;EAG1CE,KAAK,EAAEF,OAHmC;EAI1CG,UAAU,EAAEH,OAJ8B;EAK1CI,YAAY,EAAEJ,OAL4B;EAM1CK,QAAQ,EAAE;IACRC,IAAI,EAAEf,SADE;IAERgB,OAAO,EAAE;EAFD,CANgC;EAU1CC,UAAU,EAAE;IACVF,IAAI,EAAE,IADI;IAEVC,OAAO,EAAE,MAAO;EAFN,CAV8B;EAc1CE,QAAQ,EAAET,OAdgC;EAe1CU,UAAU,EAAE;IACVJ,IAAI,EAAEK,MADI;IAEVJ,OAAO,EAAE;EAFC,CAf8B;EAmB1CK,WAAW,EAAEZ,OAnB6B;EAqB1C,GAAGf,cAAc,CAAC;IAAE4B,YAAY,EAAE;EAAhB,CAAD;AArByB,CAAD,EAsBxC,QAtBwC,CAApC;AAmCP,OAAO,MAAMC,OAAO,GAAGpB,gBAAgB,GAkBlC;EACHqB,IAAI,EAAE,SADH;EAGHC,KAAK,EAAE,EACL,GAAGlB,eAAe,EADb;IAEL,GAAGX,mBAAmB,CAAC;MAAE8B,UAAU,EAAE;QAAEC,SAAS,EAAExC;MAAb;IAAd,CAAD;EAFjB,CAHJ;EAQHyC,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAc;EAD9B,CARJ;;EAYHC,KAAK,CAAEL,KAAF,QAAoB;IAAA,IAAX;MAAEM;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAQlC,SAAS,EAAvB;IACA,MAAMmC,aAAa,GAAG/B,GAAG,EAAzB;IACA,MAAMgC,IAAI,GAAGhC,GAAG,CAAC,KAAD,CAAhB;IACA,MAAM;MAAEiC,KAAF;MAASC,WAAT;MAAsBC;IAAtB,IAAuC1C,QAAQ,CAAC8B,KAAD,CAArD;IACA,MAAMa,KAAK,GAAGvC,eAAe,CAC3B0B,KAD2B,EAE3B,YAF2B,EAG3B,EAH2B,EAI3Bc,CAAC,IAAIH,WAAW,CAAC9B,WAAW,CAACiC,CAAD,CAAZ,CAJW,EAK3BA,CAAC,IAAI;MACH,MAAMC,WAAW,GAAGH,YAAY,CAACE,CAAD,CAAhC;MACA,OAAOd,KAAK,CAACP,QAAN,GAAiBsB,WAAjB,GAA+BA,WAAW,CAAC,CAAD,CAAjD;IACD,CAR0B,CAA7B;IAUA,MAAMC,UAAU,GAAGxC,QAAQ,CAAC,MAAM;MAChC,OAAOqC,KAAK,CAACI,KAAN,CAAYC,GAAZ,CAAgBJ,CAAC,IAAI;QAC1B,OAAOJ,KAAK,CAACO,KAAN,CAAYE,IAAZ,CAAiBC,IAAI,IAAIA,IAAI,CAACH,KAAL,KAAeH,CAAC,CAACG,KAA1C,KAAoDH,CAA3D;MACD,CAFM,CAAP;IAGD,CAJ0B,CAA3B;IAKA,MAAMO,QAAQ,GAAG7C,QAAQ,CAAC,MAAMwC,UAAU,CAACC,KAAX,CAAiBC,GAAjB,CAAqBI,SAAS,IAAIA,SAAS,CAACtB,KAAV,CAAgBiB,KAAlD,CAAP,CAAzB;;IAEA,SAASM,OAAT,CAAkBC,CAAlB,EAAiC;MAC/BX,KAAK,CAACI,KAAN,GAAc,EAAd;;MAEA,IAAIjB,KAAK,CAACJ,WAAV,EAAuB;QACrBa,IAAI,CAACQ,KAAL,GAAa,IAAb;MACD;IACF;;IACD,SAASQ,cAAT,GAA2B;MACzB,IAAIzB,KAAK,CAACb,UAAN,IAAoB,CAACuB,KAAK,CAACO,KAAN,CAAYS,MAArC,EAA6C;MAE7CjB,IAAI,CAACQ,KAAL,GAAa,IAAb;IACD;;IACD,SAASU,SAAT,CAAoBH,CAApB,EAAsC;MACpC,IAAI,CAAC,OAAD,EAAU,WAAV,EAAuB,GAAvB,EAA4BI,QAA5B,CAAqCJ,CAAC,CAACK,GAAvC,CAAJ,EAAiD;QAC/CpB,IAAI,CAACQ,KAAL,GAAa,IAAb;MACD;;MAED,IAAI,CAAC,QAAD,EAAW,KAAX,EAAkBW,QAAlB,CAA2BJ,CAAC,CAACK,GAA7B,CAAJ,EAAuC;QACrCpB,IAAI,CAACQ,KAAL,GAAa,KAAb;MACD;IACF;;IACD,SAASa,MAAT,CAAiBV,IAAjB,EAAqC;MACnC,IAAIpB,KAAK,CAACP,QAAV,EAAoB;QAClB,MAAMsC,KAAK,GAAGV,QAAQ,CAACJ,KAAT,CAAee,SAAf,CAAyBV,SAAS,IAAIA,SAAS,KAAKF,IAAI,CAACH,KAAzD,CAAd;;QAEA,IAAIc,KAAK,KAAK,CAAC,CAAf,EAAkB;UAChBlB,KAAK,CAACI,KAAN,GAAc,CAAC,GAAGJ,KAAK,CAACI,KAAV,EAAiBG,IAAjB,CAAd;QACD,CAFD,MAEO;UACL,MAAMH,KAAK,GAAG,CAAC,GAAGJ,KAAK,CAACI,KAAV,CAAd;UACAA,KAAK,CAACgB,MAAN,CAAaF,KAAb,EAAoB,CAApB;UACAlB,KAAK,CAACI,KAAN,GAAcA,KAAd;QACD;MACF,CAVD,MAUO;QACLJ,KAAK,CAACI,KAAN,GAAc,CAACG,IAAD,CAAd;QACAX,IAAI,CAACQ,KAAL,GAAa,KAAb;MACD;IACF;;IAEDrC,SAAS,CAAC,MAAM;MACd,MAAMsD,QAAQ,GAAG,CAAC,EAAElC,KAAK,CAACjB,KAAN,IAAeuB,KAAK,CAAC6B,IAAvB,CAAlB;MAEA;QAAA,OAEU3B,aAFV;QAAA,SAGW,CACL,UADK,EAEL;UACE,yBAAyBC,IAAI,CAACQ,KADhC;UAEE,mBAAmB,CAAC,CAACjB,KAAK,CAACjB,KAF7B;UAGE,CAAE,aAAYiB,KAAK,CAACP,QAAN,GAAiB,UAAjB,GAA8B,QAAS,EAArD,GAAyD;QAH3D,CAFK,CAHX;QAAA,mBAWsBO,KAAK,CAACX,QAX5B;QAAA;QAAA,iBAaoBkC,OAbpB;QAAA,iBAcoBE,cAdpB;QAAA,mBAesBA,cAftB;QAAA,UAgBa,MAAMhB,IAAI,CAACQ,KAAL,GAAa,KAhBhC;QAAA,cAiBiBJ,KAAK,CAACI,KAAN,CAAYC,GAAZ,CAAgBJ,CAAC,IAAIA,CAAC,CAACd,KAAF,CAAQiB,KAA7B,EAAoCmB,IAApC,CAAyC,IAAzC,CAjBjB;QAAA,aAkBgBT;MAlBhB,KAqBM,GAAGrB,KArBT;QAsBMf,OAAO,EAAE;UAAA;;UAAA;YAAA,cAGOkB,IAAI,CAACQ,KAHZ;YAAA,iCAGOR,IAAI,CAACQ,KAHZ;YAAA,aAIO,QAJP;YAAA,gBAKU,mBALV;YAAA,SAMKjB,KAAK,CAACd,KANX;YAAA,eAOW,KAPX;YAAA,cAQUc,KAAK,CAACC;UARhB;YAAA;cAAA,YAWUoB,QAAQ,CAACJ,KAXnB;cAAA,kBAYgBjB,KAAK,CAACP,QAAN,GAAiB,aAAjB,GAAiC;YAZjD;cAAA,gBAcC,CAACiB,KAAK,CAACO,KAAN,CAAYS,MAAb,IAAuB,CAAC1B,KAAK,CAACb,UAA9B,wCAA6CmB,KAAK,CAAC,SAAD,CAAlD,qBAA6C,oBAAAA,KAAK,CAAlD;gBAAA,SACmBC,CAAC,CAACP,KAAK,CAACN,UAAP;cADpB,SAdD,EAkBCgB,KAAK,CAACO,KAAN,CAAYC,GAAZ,CAAgBE,IAAI,wCAEbA,IAAI,CAACpB,KAFQ;gBAAA,eAGHwB,CAAD,IAAmBA,CAAC,CAACa,cAAF,EAHf;gBAAA,WAIR,MAAMP,MAAM,CAACV,IAAD;cAJJ,SAApB,CAlBD;YAAA;UAAA,IA4BHJ,UAAU,CAACC,KAAX,CAAiBC,GAAjB,CAAqB,CAACI,SAAD,EAAYS,KAAZ,KAAsB;YAC3C,SAASO,WAAT,CAAsBd,CAAtB,EAAgC;cAC9BA,CAAC,CAACe,eAAF;cACAf,CAAC,CAACa,cAAF;cAEAP,MAAM,CAACR,SAAD,CAAN;YACD;;YAED,MAAMkB,SAAS,GAAG;cAChB,iBAAiBF,WADD;cAEhB9C,UAAU,EAAE;YAFI,CAAlB;YAKA;cAAA,SACa;YADb,IAEM0C,QAAQ;cAAA,YAEI;gBACRvE,KAAK,EAAE;kBACL8E,QAAQ,EAAEzC,KAAK,CAACf,aADX;kBAELyD,IAAI,EAAE,OAFD;kBAGLC,IAAI,EAAErB,SAAS,CAACtB,KAAV,CAAgB4C;gBAHjB;cADC;YAFJ;cAAA,gBAUJtC,KAAK,CAAC6B,IAAN,GACE7B,KAAK,CAAC6B,IAAN,CAAW;gBAAEnC,KAAK,EAAEwC,SAAT;gBAAoBlB,SAApB;gBAA+BS;cAA/B,CAAX,CADF,uBAEeS,SAFf,OAVI;YAAA,KAgBRlC,KAAK,CAACgB,SAAN,GACIhB,KAAK,CAACgB,SAAN,CAAgB;cAAEF,IAAI,EAAEE,SAAS,CAACuB,YAAlB;cAAgCd;YAAhC,CAAhB,CADJ;cAAA,SAGgB;YAHhB,IAIQT,SAAS,CAACtB,KAAV,CAAgB4C,KAJxB,EAKQ5C,KAAK,CAACP,QAAN,IAAmBsC,KAAK,GAAGf,UAAU,CAACC,KAAX,CAAiBS,MAAjB,GAA0B,CAArD;cAAA,SACY;YADZ,2BALR,EAlBN;UA+BD,CA5CC,CA5BG;QAAA;MAtBf;IAoGD,CAvGQ,CAAT;IAyGA,OAAOtD,aAAa,CAAC,EAAD,EAAKoC,aAAL,CAApB;EACD;;AAlLE,CAlBkC,CAAhC"}
1
+ {"version":3,"file":"VSelect.mjs","names":["VDialogTransition","VCheckboxBtn","VChip","VDefaultsProvider","VList","VListItem","VMenu","VTextField","makeItemsProps","useItems","makeTransitionProps","useForwardRef","useLocale","useProxiedModel","IconValue","computed","mergeProps","ref","genericComponent","propsFactory","useRender","wrapInArray","makeSelectProps","chips","Boolean","closableChips","eager","hideNoData","hideSelected","menu","menuIcon","type","default","menuProps","Object","modelValue","multiple","noDataText","String","openOnClear","itemChildren","VSelect","name","props","transition","component","emits","val","setup","slots","t","vTextFieldRef","items","transformIn","transformOut","model","v","transformed","selections","value","map","find","item","selected","selection","onClear","e","onClickControl","length","onKeydown","includes","key","select","index","findIndex","splice","hasChips","chip","join","preventDefault","onClick","prepend","isSelected","undefined","onChipClose","stopPropagation","slotProps","closable","size","text","title"],"sources":["../../../src/components/VSelect/VSelect.tsx"],"sourcesContent":["// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VCheckboxBtn } from '@/components/VCheckbox'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, mergeProps, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menu: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n menuProps: {\n type: Object as PropType<VMenu['$props']>,\n },\n modelValue: {\n type: null,\n default: () => ([]),\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: VInputSlots & VFieldSlots & MakeSlots<{\n item: [{ item: T, index: number, props: Record<string, unknown> }]\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:menu': (val: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const menu = useProxiedModel(props, 'menu')\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : (transformed[0] ?? null)\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (props.hideNoData && !items.value.length) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n }\n function select (item: InternalItem) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\n }\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n modelValue={ model.value.map(v => v.props.value).join(', ') }\n onUpdate:modelValue={ v => { if (v == null) model.value = [] } }\n validationValue={ props.modelValue }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:input={ onClickControl }\n onClick:control={ onClickControl }\n onBlur={ () => menu.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n closeOnContentClick={ false }\n transition={ props.transition }\n { ...props.menuProps }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { slots['prepend-item']?.() }\n\n { items.value.map((item, index) => slots.item?.({\n item,\n index,\n props: mergeProps(item.props, { onClick: () => select(item) }),\n }) ?? (\n <VListItem\n key={ index }\n { ...item.props }\n onClick={ () => select(item) }\n >\n {{\n prepend: ({ isSelected }) => props.multiple && !props.hideSelected ? (\n <VCheckboxBtn modelValue={ isSelected } ripple={ false } />\n ) : undefined,\n }}\n </VListItem>\n )) }\n\n { slots['append-item']?.() }\n </VList>\n </VMenu>\n\n { selections.value.map((item, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(item)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div key={ index } class=\"v-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: item.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ item, index, props: slotProps })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item, index })\n : (\n <span class=\"v-select__selection-text\">\n { item.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n )}\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return useForwardRef({\n menu,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n"],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- @forward './variables'
2
1
  @use 'sass:selector'
3
2
  @use 'sass:math'
4
3
  @use '../../styles/settings'
5
4
  @use '../../styles/tools'
6
5
  @use './variables' as *
7
- @use '../VInput/variables' as *
8
6
 
9
7
  .v-select
10
8
  .v-field
@@ -23,6 +23,7 @@
23
23
  }
24
24
  .v-selection-control--inline {
25
25
  display: inline-flex;
26
+ flex: 0 0 auto;
26
27
  }
27
28
  .v-selection-control--inline .v-label {
28
29
  width: auto;
@@ -4,18 +4,18 @@ import "./VSelectionControl.css"; // Components
4
4
 
5
5
  import { VIcon } from "../VIcon/index.mjs";
6
6
  import { VLabel } from "../VLabel/index.mjs";
7
- import { VSelectionControlGroupSymbol } from "../VSelectionControlGroup/VSelectionControlGroup.mjs"; // Composables
7
+ import { VSelectionControlGroupSymbol } from "../VSelectionControlGroup/VSelectionControlGroup.mjs"; // Directives
8
8
 
9
+ import { Ripple } from "../../directives/ripple/index.mjs"; // Composables
10
+
11
+ import { IconValue } from "../../composables/icons.mjs";
9
12
  import { makeDensityProps, useDensity } from "../../composables/density.mjs";
10
13
  import { makeThemeProps } from "../../composables/theme.mjs";
11
14
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
12
- import { useTextColor } from "../../composables/color.mjs";
13
- import { IconValue } from "../../composables/icons.mjs"; // Directives
14
-
15
- import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
15
+ import { useTextColor } from "../../composables/color.mjs"; // Utilities
16
16
 
17
17
  import { computed, inject, ref } from 'vue';
18
- import { deepEqual, genericComponent, getUid, pick, propsFactory, SUPPORTS_FOCUS_VISIBLE, useRender, wrapInArray } from "../../util/index.mjs"; // Types
18
+ import { deepEqual, filterInputAttrs, genericComponent, getUid, pick, propsFactory, SUPPORTS_FOCUS_VISIBLE, useRender, wrapInArray } from "../../util/index.mjs"; // Types
19
19
 
20
20
  export const makeSelectionControlProps = propsFactory({
21
21
  color: String,
@@ -156,7 +156,8 @@ export const VSelectionControl = genericComponent()({
156
156
  }
157
157
  }) : props.label;
158
158
  const type = (_group$type$value = group == null ? void 0 : group.type.value) != null ? _group$type$value : props.type;
159
- return _createVNode("div", {
159
+ const [rootAttrs, inputAttrs] = filterInputAttrs(attrs);
160
+ return _createVNode("div", _mergeProps({
160
161
  "class": ['v-selection-control', {
161
162
  'v-selection-control--dirty': model.value,
162
163
  'v-selection-control--disabled': props.disabled,
@@ -165,12 +166,13 @@ export const VSelectionControl = genericComponent()({
165
166
  'v-selection-control--focus-visible': isFocusVisible.value,
166
167
  'v-selection-control--inline': (group == null ? void 0 : group.inline.value) || props.inline
167
168
  }, densityClasses.value]
168
- }, [_createVNode("div", {
169
+ }, rootAttrs), [_createVNode("div", {
169
170
  "class": ['v-selection-control__wrapper', textColorClasses.value],
170
171
  "style": textColorStyles.value
171
172
  }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots), _withDirectives(_createVNode("div", {
172
173
  "class": ['v-selection-control__input']
173
174
  }, [icon.value && _createVNode(VIcon, {
175
+ "key": "icon",
174
176
  "icon": icon.value
175
177
  }, null), _withDirectives(_createVNode("input", _mergeProps({
176
178
  "onUpdate:modelValue": $event => model.value = $event,
@@ -184,7 +186,7 @@ export const VSelectionControl = genericComponent()({
184
186
  "value": trueValue.value,
185
187
  "name": (_group$name$value = group == null ? void 0 : group.name.value) != null ? _group$name$value : props.name,
186
188
  "aria-checked": type === 'checkbox' ? model.value : undefined
187
- }, attrs), null), [[_vModelDynamic, model.value]]), (_slots$input = slots.input) == null ? void 0 : _slots$input.call(slots, {
189
+ }, inputAttrs), null), [[_vModelDynamic, model.value]]), (_slots$input = slots.input) == null ? void 0 : _slots$input.call(slots, {
188
190
  model,
189
191
  textColorClasses,
190
192
  props: {
@@ -192,7 +194,7 @@ export const VSelectionControl = genericComponent()({
192
194
  onBlur,
193
195
  id: id.value
194
196
  }
195
- })]), [[_resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), _createVNode(VLabel, {
197
+ })]), [[_resolveDirective("ripple"), props.ripple && [!props.disabled && !props.readonly, null, ['center', 'circle']]]])]), label && _createVNode(VLabel, {
196
198
  "for": id.value
197
199
  }, {
198
200
  default: () => [label]
@@ -1 +1 @@
1
- {"version":3,"file":"VSelectionControl.mjs","names":["VIcon","VLabel","VSelectionControlGroupSymbol","makeDensityProps","useDensity","makeThemeProps","useProxiedModel","useTextColor","IconValue","Ripple","computed","inject","ref","deepEqual","genericComponent","getUid","pick","propsFactory","SUPPORTS_FOCUS_VISIBLE","useRender","wrapInArray","makeSelectionControlProps","color","String","disabled","Boolean","error","id","inline","label","falseIcon","trueIcon","ripple","type","default","multiple","name","readonly","trueValue","falseValue","modelValue","value","valueComparator","Function","useSelectionControl","props","group","undefined","densityClasses","isMultiple","Array","isArray","model","get","val","some","v","set","currentValue","newVal","filter","item","textColorClasses","textColorStyles","icon","VSelectionControl","directives","inheritAttrs","emits","setup","attrs","slots","uid","isFocused","isFocusVisible","input","onFocus","e","target","matches","onBlur","for","filterControlProps","Object","keys"],"sources":["../../../src/components/VSelectionControl/VSelectionControl.tsx"],"sourcesContent":["// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport {\n deepEqual,\n genericComponent,\n getUid,\n pick,\n propsFactory,\n SUPPORTS_FOCUS_VISIBLE,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref, WritableComputedRef } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef<any>\n isReadonly: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n textColorClasses: Ref<string[]>\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport const makeSelectionControlProps = propsFactory({\n color: String,\n disabled: Boolean,\n error: Boolean,\n id: String,\n inline: Boolean,\n label: String,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n name: String,\n readonly: Boolean,\n trueValue: null,\n falseValue: null,\n modelValue: null,\n type: String,\n value: null,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeThemeProps(),\n ...makeDensityProps(),\n})\n\nexport function useSelectionControl (\n props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>> & {\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n group?.multiple.value ||\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? val.some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n const icon = computed(() => {\n return model.value\n ? group?.trueIcon.value ?? props.trueIcon\n : group?.falseIcon.value ?? props.falseIcon\n })\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: MakeSlots<{\n default: []\n input: [SelectionControlSlot]\n }>\n}>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n densityClasses,\n group,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const isFocused = ref(false)\n const isFocusVisible = ref(false)\n const input = ref<HTMLInputElement>()\n\n function onFocus (e: FocusEvent) {\n isFocused.value = true\n if (\n !SUPPORTS_FOCUS_VISIBLE ||\n (SUPPORTS_FOCUS_VISIBLE && (e.target as HTMLElement).matches(':focus-visible'))\n ) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const type = group?.type.value ?? props.type\n\n return (\n <div\n class={[\n 'v-selection-control',\n {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': group?.inline.value || props.inline,\n },\n densityClasses.value,\n ]}\n >\n <div\n class={[\n 'v-selection-control__wrapper',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { slots.default?.() }\n\n <div\n class={[\n 'v-selection-control__input',\n ]}\n v-ripple={ props.ripple && [\n !props.disabled && !props.readonly,\n null,\n ['center', 'circle'],\n ]}\n >\n { icon.value && <VIcon icon={ icon.value } /> }\n\n <input\n v-model={ model.value }\n ref={ input }\n disabled={ props.disabled }\n id={ id.value }\n onBlur={ onBlur }\n onFocus={ onFocus }\n aria-readonly={ props.readonly }\n type={ type }\n value={ trueValue.value }\n name={ group?.name.value ?? props.name }\n aria-checked={ type === 'checkbox' ? model.value : undefined }\n { ...attrs }\n />\n\n { slots.input?.({\n model,\n textColorClasses,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n }) }\n </div>\n </div>\n\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n </div>\n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType<typeof VSelectionControl>\n\nexport function filterControlProps (props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>>) {\n return pick(props, Object.keys(VSelectionControl.props) as any)\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VSelectionControl.mjs","names":["VIcon","VLabel","VSelectionControlGroupSymbol","Ripple","IconValue","makeDensityProps","useDensity","makeThemeProps","useProxiedModel","useTextColor","computed","inject","ref","deepEqual","filterInputAttrs","genericComponent","getUid","pick","propsFactory","SUPPORTS_FOCUS_VISIBLE","useRender","wrapInArray","makeSelectionControlProps","color","String","disabled","Boolean","error","id","inline","label","falseIcon","trueIcon","ripple","type","default","multiple","name","readonly","trueValue","falseValue","modelValue","value","valueComparator","Function","useSelectionControl","props","group","undefined","densityClasses","isMultiple","Array","isArray","model","get","val","some","v","set","currentValue","newVal","filter","item","textColorClasses","textColorStyles","icon","VSelectionControl","directives","inheritAttrs","emits","setup","attrs","slots","uid","isFocused","isFocusVisible","input","onFocus","e","target","matches","onBlur","for","rootAttrs","inputAttrs","filterControlProps","Object","keys"],"sources":["../../../src/components/VSelectionControl/VSelectionControl.tsx"],"sourcesContent":["// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport {\n deepEqual,\n filterInputAttrs,\n genericComponent,\n getUid,\n pick,\n propsFactory,\n SUPPORTS_FOCUS_VISIBLE,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref, WritableComputedRef } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef<any>\n isReadonly: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n textColorClasses: Ref<string[]>\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport const makeSelectionControlProps = propsFactory({\n color: String,\n disabled: Boolean,\n error: Boolean,\n id: String,\n inline: Boolean,\n label: String,\n falseIcon: IconValue,\n trueIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n name: String,\n readonly: Boolean,\n trueValue: null,\n falseValue: null,\n modelValue: null,\n type: String,\n value: null,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeThemeProps(),\n ...makeDensityProps(),\n})\n\nexport function useSelectionControl (\n props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>> & {\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n group?.multiple.value ||\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? val.some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n const icon = computed(() => {\n return model.value\n ? group?.trueIcon.value ?? props.trueIcon\n : group?.falseIcon.value ?? props.falseIcon\n })\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: MakeSlots<{\n default: []\n input: [SelectionControlSlot]\n }>\n}>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n densityClasses,\n group,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const isFocused = ref(false)\n const isFocusVisible = ref(false)\n const input = ref<HTMLInputElement>()\n\n function onFocus (e: FocusEvent) {\n isFocused.value = true\n if (\n !SUPPORTS_FOCUS_VISIBLE ||\n (SUPPORTS_FOCUS_VISIBLE && (e.target as HTMLElement).matches(':focus-visible'))\n ) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const type = group?.type.value ?? props.type\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n\n return (\n <div\n class={[\n 'v-selection-control',\n {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': group?.inline.value || props.inline,\n },\n densityClasses.value,\n ]}\n { ...rootAttrs }\n >\n <div\n class={[\n 'v-selection-control__wrapper',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { slots.default?.() }\n\n <div\n class={[\n 'v-selection-control__input',\n ]}\n v-ripple={ props.ripple && [\n !props.disabled && !props.readonly,\n null,\n ['center', 'circle'],\n ]}\n >\n { icon.value && <VIcon key=\"icon\" icon={ icon.value } /> }\n\n <input\n v-model={ model.value }\n ref={ input }\n disabled={ props.disabled }\n id={ id.value }\n onBlur={ onBlur }\n onFocus={ onFocus }\n aria-readonly={ props.readonly }\n type={ type }\n value={ trueValue.value }\n name={ group?.name.value ?? props.name }\n aria-checked={ type === 'checkbox' ? model.value : undefined }\n { ...inputAttrs }\n />\n\n { slots.input?.({\n model,\n textColorClasses,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n }) }\n </div>\n </div>\n\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n </div>\n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType<typeof VSelectionControl>\n\nexport function filterControlProps (props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>>) {\n return pick(props, Object.keys(VSelectionControl.props) as any)\n}\n"],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- @forward './variables'
2
1
  @use 'sass:map'
3
2
  @use 'sass:list'
4
3
  @use '../../styles/settings'
@@ -33,6 +32,7 @@
33
32
 
34
33
  &--inline
35
34
  display: inline-flex
35
+ flex: 0 0 auto
36
36
 
37
37
  .v-label
38
38
  width: auto
@@ -2,6 +2,7 @@
2
2
  @use '../../styles/settings';
3
3
  @use '../../styles/tools';
4
4
 
5
+ // VSelectionControl
5
6
  $selection-control-disabled-color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)) !default;
6
7
  $selection-control-error-color: rgb(var(--v-theme-error)) !default;
7
8
  $selection-control-density: ('default': 0, 'comfortable': -1, 'compact': -3) !default;
@@ -2,8 +2,8 @@ import { createVNode as _createVNode } from "vue";
2
2
  // Styles
3
3
  import "./VSelectionControlGroup.css"; // Composables
4
4
 
5
- import { useProxiedModel } from "../../composables/proxiedModel.mjs";
6
- import { IconValue } from "../../composables/icons.mjs"; // Utilities
5
+ import { IconValue } from "../../composables/icons.mjs";
6
+ import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
7
7
 
8
8
  import { computed, provide, toRef } from 'vue';
9
9
  import { defineComponent, getUid, useRender } from "../../util/index.mjs"; // Types
@@ -56,7 +56,7 @@ export const VSelectionControlGroup = defineComponent({
56
56
  "class": "v-selection-control-group",
57
57
  "aria-labelled-by": props.type === 'radio' ? id.value : undefined,
58
58
  "role": props.type === 'radio' ? 'radiogroup' : undefined
59
- }, [slots == null ? void 0 : (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]);
59
+ }, [(_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots)]);
60
60
  });
61
61
  return {};
62
62
  }
@@ -1 +1 @@
1
- {"version":3,"file":"VSelectionControlGroup.mjs","names":["useProxiedModel","IconValue","computed","provide","toRef","defineComponent","getUid","useRender","VSelectionControlGroupSymbol","Symbol","for","VSelectionControlGroup","name","props","disabled","Boolean","id","String","inline","falseIcon","trueIcon","multiple","type","default","readonly","modelValue","emits","val","setup","slots","uid","value","Array","isArray","undefined"],"sources":["../../../src/components/VSelectionControlGroup/VSelectionControlGroup.tsx"],"sourcesContent":["// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { defineComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport interface VSelectionGroupContext {\n disabled: Ref<boolean>\n inline: Ref<boolean>\n name: Ref<string | undefined>\n modelValue: Ref<any>\n multiple: Ref<boolean>\n trueIcon: Ref<IconValue | undefined>\n falseIcon: Ref<IconValue | undefined>\n readonly: Ref<boolean>\n type: Ref<string | undefined>\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey<VSelectionGroupContext> = Symbol.for('vuetify:selection-control-group')\n\nexport const VSelectionControlGroup = defineComponent({\n name: 'VSelectionControlGroup',\n\n props: {\n disabled: Boolean,\n id: String,\n inline: Boolean,\n name: String,\n falseIcon: IconValue,\n trueIcon: IconValue,\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n readonly: Boolean,\n type: String,\n modelValue: null,\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n provide(VSelectionControlGroupSymbol, {\n disabled: toRef(props, 'disabled'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n type: toRef(props, 'type'),\n })\n\n useRender(() => {\n return (\n <div\n class=\"v-selection-control-group\"\n aria-labelled-by={ props.type === 'radio' ? id.value : undefined }\n role={ props.type === 'radio' ? 'radiogroup' : undefined }\n >\n { slots?.default?.() }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType<typeof VSelectionControlGroup>\n"],"mappings":";AAAA;AACA,sC,CAEA;;SACSA,e;SACAC,S,uCAET;;AACA,SAASC,QAAT,EAAmBC,OAAnB,EAA4BC,KAA5B,QAAyC,KAAzC;SACSC,e,EAAiBC,M,EAAQC,S,gCAElC;;AAeA,OAAO,MAAMC,4BAAkE,GAAGC,MAAM,CAACC,GAAP,CAAW,iCAAX,CAA3E;AAEP,OAAO,MAAMC,sBAAsB,GAAGN,eAAe,CAAC;EACpDO,IAAI,EAAE,wBAD8C;EAGpDC,KAAK,EAAE;IACLC,QAAQ,EAAEC,OADL;IAELC,EAAE,EAAEC,MAFC;IAGLC,MAAM,EAAEH,OAHH;IAILH,IAAI,EAAEK,MAJD;IAKLE,SAAS,EAAElB,SALN;IAMLmB,QAAQ,EAAEnB,SANL;IAOLoB,QAAQ,EAAE;MACRC,IAAI,EAAEP,OADE;MAERQ,OAAO,EAAE;IAFD,CAPL;IAWLC,QAAQ,EAAET,OAXL;IAYLO,IAAI,EAAEL,MAZD;IAaLQ,UAAU,EAAE;EAbP,CAH6C;EAmBpDC,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAc;EAD9B,CAnB6C;;EAuBpDC,KAAK,CAAEf,KAAF,QAAoB;IAAA,IAAX;MAAEgB;IAAF,CAAW;IACvB,MAAMJ,UAAU,GAAGzB,eAAe,CAACa,KAAD,EAAQ,YAAR,CAAlC;IACA,MAAMiB,GAAG,GAAGxB,MAAM,EAAlB;IACA,MAAMU,EAAE,GAAGd,QAAQ,CAAC,MAAMW,KAAK,CAACG,EAAN,IAAa,6BAA4Bc,GAAI,EAApD,CAAnB;IACA,MAAMlB,IAAI,GAAGV,QAAQ,CAAC,MAAMW,KAAK,CAACD,IAAN,IAAcI,EAAE,CAACe,KAAxB,CAArB;IAEA5B,OAAO,CAACK,4BAAD,EAA+B;MACpCM,QAAQ,EAAEV,KAAK,CAACS,KAAD,EAAQ,UAAR,CADqB;MAEpCK,MAAM,EAAEd,KAAK,CAACS,KAAD,EAAQ,QAAR,CAFuB;MAGpCY,UAHoC;MAIpCJ,QAAQ,EAAEnB,QAAQ,CAAC,MAAM,CAAC,CAACW,KAAK,CAACQ,QAAR,IAAqBR,KAAK,CAACQ,QAAN,IAAkB,IAAlB,IAA0BW,KAAK,CAACC,OAAN,CAAcR,UAAU,CAACM,KAAzB,CAAtD,CAJkB;MAKpCnB,IALoC;MAMpCO,SAAS,EAAEf,KAAK,CAACS,KAAD,EAAQ,WAAR,CANoB;MAOpCO,QAAQ,EAAEhB,KAAK,CAACS,KAAD,EAAQ,UAAR,CAPqB;MAQpCW,QAAQ,EAAEpB,KAAK,CAACS,KAAD,EAAQ,UAAR,CARqB;MASpCS,IAAI,EAAElB,KAAK,CAACS,KAAD,EAAQ,MAAR;IATyB,CAA/B,CAAP;IAYAN,SAAS,CAAC,MAAM;MAAA;;MACd;QAAA,SAEU,2BAFV;QAAA,oBAGuBM,KAAK,CAACS,IAAN,KAAe,OAAf,GAAyBN,EAAE,CAACe,KAA5B,GAAoCG,SAH3D;QAAA,QAIWrB,KAAK,CAACS,IAAN,KAAe,OAAf,GAAyB,YAAzB,GAAwCY;MAJnD,IAMML,KANN,sCAMMA,KAAK,CAAEN,OANb,qBAMM,oBAAAM,KAAK,CANX;IASD,CAVQ,CAAT;IAYA,OAAO,EAAP;EACD;;AAtDmD,CAAD,CAA9C"}
1
+ {"version":3,"file":"VSelectionControlGroup.mjs","names":["IconValue","useProxiedModel","computed","provide","toRef","defineComponent","getUid","useRender","VSelectionControlGroupSymbol","Symbol","for","VSelectionControlGroup","name","props","disabled","Boolean","id","String","inline","falseIcon","trueIcon","multiple","type","default","readonly","modelValue","emits","val","setup","slots","uid","value","Array","isArray","undefined"],"sources":["../../../src/components/VSelectionControlGroup/VSelectionControlGroup.tsx"],"sourcesContent":["// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, provide, toRef } from 'vue'\nimport { defineComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport interface VSelectionGroupContext {\n disabled: Ref<boolean>\n inline: Ref<boolean>\n name: Ref<string | undefined>\n modelValue: Ref<any>\n multiple: Ref<boolean>\n trueIcon: Ref<IconValue | undefined>\n falseIcon: Ref<IconValue | undefined>\n readonly: Ref<boolean>\n type: Ref<string | undefined>\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey<VSelectionGroupContext> = Symbol.for('vuetify:selection-control-group')\n\nexport const VSelectionControlGroup = defineComponent({\n name: 'VSelectionControlGroup',\n\n props: {\n disabled: Boolean,\n id: String,\n inline: Boolean,\n name: String,\n falseIcon: IconValue,\n trueIcon: IconValue,\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n readonly: Boolean,\n type: String,\n modelValue: null,\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n provide(VSelectionControlGroupSymbol, {\n disabled: toRef(props, 'disabled'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n type: toRef(props, 'type'),\n })\n\n useRender(() => (\n <div\n class=\"v-selection-control-group\"\n aria-labelled-by={ props.type === 'radio' ? id.value : undefined }\n role={ props.type === 'radio' ? 'radiogroup' : undefined }\n >\n { slots.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType<typeof VSelectionControlGroup>\n"],"mappings":";AAAA;AACA,sC,CAEA;;SACSA,S;SACAC,e,8CAET;;AACA,SAASC,QAAT,EAAmBC,OAAnB,EAA4BC,KAA5B,QAAyC,KAAzC;SACSC,e,EAAiBC,M,EAAQC,S,gCAElC;;AAeA,OAAO,MAAMC,4BAAkE,GAAGC,MAAM,CAACC,GAAP,CAAW,iCAAX,CAA3E;AAEP,OAAO,MAAMC,sBAAsB,GAAGN,eAAe,CAAC;EACpDO,IAAI,EAAE,wBAD8C;EAGpDC,KAAK,EAAE;IACLC,QAAQ,EAAEC,OADL;IAELC,EAAE,EAAEC,MAFC;IAGLC,MAAM,EAAEH,OAHH;IAILH,IAAI,EAAEK,MAJD;IAKLE,SAAS,EAAEnB,SALN;IAMLoB,QAAQ,EAAEpB,SANL;IAOLqB,QAAQ,EAAE;MACRC,IAAI,EAAEP,OADE;MAERQ,OAAO,EAAE;IAFD,CAPL;IAWLC,QAAQ,EAAET,OAXL;IAYLO,IAAI,EAAEL,MAZD;IAaLQ,UAAU,EAAE;EAbP,CAH6C;EAmBpDC,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAc;EAD9B,CAnB6C;;EAuBpDC,KAAK,CAAEf,KAAF,QAAoB;IAAA,IAAX;MAAEgB;IAAF,CAAW;IACvB,MAAMJ,UAAU,GAAGxB,eAAe,CAACY,KAAD,EAAQ,YAAR,CAAlC;IACA,MAAMiB,GAAG,GAAGxB,MAAM,EAAlB;IACA,MAAMU,EAAE,GAAGd,QAAQ,CAAC,MAAMW,KAAK,CAACG,EAAN,IAAa,6BAA4Bc,GAAI,EAApD,CAAnB;IACA,MAAMlB,IAAI,GAAGV,QAAQ,CAAC,MAAMW,KAAK,CAACD,IAAN,IAAcI,EAAE,CAACe,KAAxB,CAArB;IAEA5B,OAAO,CAACK,4BAAD,EAA+B;MACpCM,QAAQ,EAAEV,KAAK,CAACS,KAAD,EAAQ,UAAR,CADqB;MAEpCK,MAAM,EAAEd,KAAK,CAACS,KAAD,EAAQ,QAAR,CAFuB;MAGpCY,UAHoC;MAIpCJ,QAAQ,EAAEnB,QAAQ,CAAC,MAAM,CAAC,CAACW,KAAK,CAACQ,QAAR,IAAqBR,KAAK,CAACQ,QAAN,IAAkB,IAAlB,IAA0BW,KAAK,CAACC,OAAN,CAAcR,UAAU,CAACM,KAAzB,CAAtD,CAJkB;MAKpCnB,IALoC;MAMpCO,SAAS,EAAEf,KAAK,CAACS,KAAD,EAAQ,WAAR,CANoB;MAOpCO,QAAQ,EAAEhB,KAAK,CAACS,KAAD,EAAQ,UAAR,CAPqB;MAQpCW,QAAQ,EAAEpB,KAAK,CAACS,KAAD,EAAQ,UAAR,CARqB;MASpCS,IAAI,EAAElB,KAAK,CAACS,KAAD,EAAQ,MAAR;IATyB,CAA/B,CAAP;IAYAN,SAAS,CAAC;MAAA;;MAAA;QAAA,SAEA,2BAFA;QAAA,oBAGaM,KAAK,CAACS,IAAN,KAAe,OAAf,GAAyBN,EAAE,CAACe,KAA5B,GAAoCG,SAHjD;QAAA,QAICrB,KAAK,CAACS,IAAN,KAAe,OAAf,GAAyB,YAAzB,GAAwCY;MAJzC,sBAMJL,KAAK,CAACN,OANF,qBAMJ,oBAAAM,KAAK,CAND;IAAA,CAAD,CAAT;IAUA,OAAO,EAAP;EACD;;AApDmD,CAAD,CAA9C"}
@@ -1,9 +1,4 @@
1
- @forward './variables'
2
- @use 'sass:map'
3
- @use 'sass:list'
4
- @use '../../styles/settings'
5
- @use '../../styles/tools'
6
1
  @use './variables' as *
7
2
 
8
3
  .v-selection-control-group
9
- grid-area: control
4
+ grid-area: $selection-control-group-grid-area
@@ -1,4 +1 @@
1
- @use '../../styles/settings';
2
- @use '../../styles/tools';
3
-
4
- // Defaults
1
+ $selection-control-group-grid-area: control !default;
@@ -9,11 +9,11 @@ import { makeLocationProps, useLocation } from "../../composables/location.mjs";
9
9
  import { makePositionProps, usePosition } from "../../composables/position.mjs";
10
10
  import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
11
11
  import { makeTagProps } from "../../composables/tag.mjs";
12
- import { useBackgroundColor } from "../../composables/color.mjs";
13
- import { makeThemeProps, provideTheme } from "../../composables/theme.mjs"; // Utilities
12
+ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
13
+ import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
14
14
 
15
- import { toRef } from 'vue';
16
15
  import { defineComponent } from "../../util/index.mjs";
16
+ import { toRef } from 'vue';
17
17
  export const VSheet = defineComponent({
18
18
  name: 'VSheet',
19
19
  props: {
@@ -1 +1 @@
1
- {"version":3,"file":"VSheet.mjs","names":["makeBorderProps","useBorder","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","makeThemeProps","provideTheme","toRef","defineComponent","VSheet","name","props","color","String","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","value"],"sources":["../../../src/components/VSheet/VSheet.tsx"],"sourcesContent":["// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VSheet = defineComponent({\n name: 'VSheet',\n\n props: {\n color: String,\n\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n return () => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n"],"mappings":";AAAA;AACA,sB,CAEA;;SACSA,e,EAAiBC,S;SACjBC,kB,EAAoBC,Y;SACpBC,kB,EAAoBC,Y;SACpBC,iB,EAAmBC,W;SACnBC,iB,EAAmBC,W;SACnBC,gB,EAAkBC,U;SAClBC,Y;SACAC,kB;SACAC,c,EAAgBC,Y,uCAEzB;;AACA,SAASC,KAAT,QAAsB,KAAtB;SACSC,e;AAET,OAAO,MAAMC,MAAM,GAAGD,eAAe,CAAC;EACpCE,IAAI,EAAE,QAD8B;EAGpCC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAGL,GAAGtB,eAAe,EAHb;IAIL,GAAGE,kBAAkB,EAJhB;IAKL,GAAGE,kBAAkB,EALhB;IAML,GAAGE,iBAAiB,EANf;IAOL,GAAGE,iBAAiB,EAPf;IAQL,GAAGE,gBAAgB,EARd;IASL,GAAGE,YAAY,EATV;IAUL,GAAGE,cAAc;EAVZ,CAH6B;;EAgBpCS,KAAK,CAAEH,KAAF,QAAoB;IAAA,IAAX;MAAEI;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAmBV,YAAY,CAACK,KAAD,CAArC;IACA,MAAM;MAAEM,sBAAF;MAA0BC;IAA1B,IAAoDd,kBAAkB,CAACG,KAAK,CAACI,KAAD,EAAQ,OAAR,CAAN,CAA5E;IACA,MAAM;MAAEQ;IAAF,IAAoB3B,SAAS,CAACmB,KAAD,CAAnC;IACA,MAAM;MAAES;IAAF,IAAsB1B,YAAY,CAACiB,KAAD,CAAxC;IACA,MAAM;MAAEU;IAAF,IAAuBzB,YAAY,CAACe,KAAD,CAAzC;IACA,MAAM;MAAEW;IAAF,IAAqBxB,WAAW,CAACa,KAAD,CAAtC;IACA,MAAM;MAAEY;IAAF,IAAsBvB,WAAW,CAACW,KAAD,CAAvC;IACA,MAAM;MAAEa;IAAF,IAAqBtB,UAAU,CAACS,KAAD,CAArC;IAEA,OAAO;MAAA,SAEI,CACL,SADK,EAELK,YAAY,CAACS,KAFR,EAGLR,sBAAsB,CAACQ,KAHlB,EAILN,aAAa,CAACM,KAJT,EAKLJ,gBAAgB,CAACI,KALZ,EAMLF,eAAe,CAACE,KANX,EAOLD,cAAc,CAACC,KAPV,CAFJ;MAAA,SAWI,CACLP,qBAAqB,CAACO,KADjB,EAELL,eAAe,CAACK,KAFX,EAGLH,cAAc,CAACG,KAHV;IAXJ,GAgBOV,KAhBP,CAAP;EAmBD;;AA7CmC,CAAD,CAA9B"}
1
+ {"version":3,"file":"VSheet.mjs","names":["makeBorderProps","useBorder","makeDimensionProps","useDimension","makeElevationProps","useElevation","makeLocationProps","useLocation","makePositionProps","usePosition","makeRoundedProps","useRounded","makeTagProps","makeThemeProps","provideTheme","useBackgroundColor","defineComponent","toRef","VSheet","name","props","color","String","setup","slots","themeClasses","backgroundColorClasses","backgroundColorStyles","borderClasses","dimensionStyles","elevationClasses","locationStyles","positionClasses","roundedClasses","value"],"sources":["../../../src/components/VSheet/VSheet.tsx"],"sourcesContent":["// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VSheet = defineComponent({\n name: 'VSheet',\n\n props: {\n color: String,\n\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n return () => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n locationStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n"],"mappings":";AAAA;AACA,sB,CAEA;;SACSA,e,EAAiBC,S;SACjBC,kB,EAAoBC,Y;SACpBC,kB,EAAoBC,Y;SACpBC,iB,EAAmBC,W;SACnBC,iB,EAAmBC,W;SACnBC,gB,EAAkBC,U;SAClBC,Y;SACAC,c,EAAgBC,Y;SAChBC,kB,uCAET;;SACSC,e;AACT,SAASC,KAAT,QAAsB,KAAtB;AAEA,OAAO,MAAMC,MAAM,GAAGF,eAAe,CAAC;EACpCG,IAAI,EAAE,QAD8B;EAGpCC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAGL,GAAGtB,eAAe,EAHb;IAIL,GAAGE,kBAAkB,EAJhB;IAKL,GAAGE,kBAAkB,EALhB;IAML,GAAGE,iBAAiB,EANf;IAOL,GAAGE,iBAAiB,EAPf;IAQL,GAAGE,gBAAgB,EARd;IASL,GAAGE,YAAY,EATV;IAUL,GAAGC,cAAc;EAVZ,CAH6B;;EAgBpCU,KAAK,CAAEH,KAAF,QAAoB;IAAA,IAAX;MAAEI;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAmBX,YAAY,CAACM,KAAD,CAArC;IACA,MAAM;MAAEM,sBAAF;MAA0BC;IAA1B,IAAoDZ,kBAAkB,CAACE,KAAK,CAACG,KAAD,EAAQ,OAAR,CAAN,CAA5E;IACA,MAAM;MAAEQ;IAAF,IAAoB3B,SAAS,CAACmB,KAAD,CAAnC;IACA,MAAM;MAAES;IAAF,IAAsB1B,YAAY,CAACiB,KAAD,CAAxC;IACA,MAAM;MAAEU;IAAF,IAAuBzB,YAAY,CAACe,KAAD,CAAzC;IACA,MAAM;MAAEW;IAAF,IAAqBxB,WAAW,CAACa,KAAD,CAAtC;IACA,MAAM;MAAEY;IAAF,IAAsBvB,WAAW,CAACW,KAAD,CAAvC;IACA,MAAM;MAAEa;IAAF,IAAqBtB,UAAU,CAACS,KAAD,CAArC;IAEA,OAAO;MAAA,SAEI,CACL,SADK,EAELK,YAAY,CAACS,KAFR,EAGLR,sBAAsB,CAACQ,KAHlB,EAILN,aAAa,CAACM,KAJT,EAKLJ,gBAAgB,CAACI,KALZ,EAMLF,eAAe,CAACE,KANX,EAOLD,cAAc,CAACC,KAPV,CAFJ;MAAA,SAWI,CACLP,qBAAqB,CAACO,KADjB,EAELL,eAAe,CAACK,KAFX,EAGLH,cAAc,CAACG,KAHV;IAXJ,GAgBOV,KAhBP,CAAP;EAmBD;;AA7CmC,CAAD,CAA9B"}
@@ -1,4 +1,3 @@
1
- @forward './variables'
2
1
  @use '../../styles/tools'
3
2
  @use './variables' as *
4
3
 
@@ -1,17 +1,18 @@
1
1
  @use '../../styles/settings';
2
2
 
3
- // Defaults
3
+ // VSheet
4
4
  $sheet-background: rgb(var(--v-theme-surface)) !default;
5
- $sheet-color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)) !default;
6
5
  $sheet-border-color: settings.$border-color-root !default;
7
6
  $sheet-border-radius: 0 !default;
8
7
  $sheet-border-style: settings.$border-style-root !default;
9
8
  $sheet-border-thin-width: thin !default;
10
9
  $sheet-border-width: 0 !default;
10
+ $sheet-color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)) !default;
11
11
  $sheet-elevation: 0 !default;
12
12
  $sheet-positions: absolute fixed !default;
13
13
  $sheet-rounded-border-radius: settings.$border-radius-root !default;
14
14
 
15
+ // Lists
15
16
  $sheet-border: (
16
17
  $sheet-border-color,
17
18
  $sheet-border-style,