vuetify 3.2.2 → 3.2.3

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 (299) hide show
  1. package/dist/json/attributes.json +538 -242
  2. package/dist/json/importMap.json +8 -8
  3. package/dist/json/tags.json +77 -2
  4. package/dist/json/web-types.json +1284 -558
  5. package/dist/vuetify-labs.css +123 -119
  6. package/dist/vuetify-labs.d.ts +2222 -11380
  7. package/dist/vuetify-labs.esm.js +2230 -2144
  8. package/dist/vuetify-labs.esm.js.map +1 -1
  9. package/dist/vuetify-labs.js +2230 -2144
  10. package/dist/vuetify-labs.min.css +2 -2
  11. package/dist/vuetify.css +39 -35
  12. package/dist/vuetify.d.ts +1225 -11178
  13. package/dist/vuetify.esm.js +1691 -1591
  14. package/dist/vuetify.esm.js.map +1 -1
  15. package/dist/vuetify.js +1691 -1591
  16. package/dist/vuetify.js.map +1 -1
  17. package/dist/vuetify.min.css +2 -2
  18. package/dist/vuetify.min.js +597 -597
  19. package/dist/vuetify.min.js.map +1 -1
  20. package/lib/blueprints/index.d.ts +1 -3
  21. package/lib/blueprints/md1.d.ts +1 -3
  22. package/lib/blueprints/md2.d.ts +1 -3
  23. package/lib/blueprints/md3.d.ts +1 -3
  24. package/lib/components/VAlert/VAlert.mjs +47 -46
  25. package/lib/components/VAlert/VAlert.mjs.map +1 -1
  26. package/lib/components/VAlert/index.d.ts +2 -2
  27. package/lib/components/VApp/VApp.mjs +9 -8
  28. package/lib/components/VApp/VApp.mjs.map +1 -1
  29. package/lib/components/VAppBar/VAppBar.mjs +21 -20
  30. package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
  31. package/lib/components/VAppBar/VAppBarNavIcon.mjs +8 -5
  32. package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
  33. package/lib/components/VAppBar/index.d.ts +4 -4
  34. package/lib/components/VAutocomplete/VAutocomplete.css +0 -4
  35. package/lib/components/VAutocomplete/VAutocomplete.mjs +28 -33
  36. package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
  37. package/lib/components/VAutocomplete/VAutocomplete.sass +0 -5
  38. package/lib/components/VAutocomplete/index.d.ts +67 -1174
  39. package/lib/components/VBadge/VBadge.mjs +33 -32
  40. package/lib/components/VBadge/VBadge.mjs.map +1 -1
  41. package/lib/components/VBanner/VBanner.mjs +21 -20
  42. package/lib/components/VBanner/VBanner.mjs.map +1 -1
  43. package/lib/components/VBanner/VBannerActions.mjs +7 -6
  44. package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
  45. package/lib/components/VBanner/index.d.ts +2 -2
  46. package/lib/components/VBottomNavigation/VBottomNavigation.mjs +35 -34
  47. package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
  48. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +24 -23
  49. package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
  50. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -5
  51. package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
  52. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -14
  53. package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
  54. package/lib/components/VBreadcrumbs/index.d.ts +1 -0
  55. package/lib/components/VBtnToggle/VBtnToggle.mjs +6 -5
  56. package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
  57. package/lib/components/VCard/VCard.mjs +38 -37
  58. package/lib/components/VCard/VCard.mjs.map +1 -1
  59. package/lib/components/VCard/VCardItem.mjs +12 -11
  60. package/lib/components/VCard/VCardItem.mjs.map +1 -1
  61. package/lib/components/VCard/index.d.ts +4 -4
  62. package/lib/components/VCarousel/VCarousel.mjs +28 -27
  63. package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
  64. package/lib/components/VCarousel/VCarouselItem.mjs +18 -16
  65. package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
  66. package/lib/components/VCarousel/index.d.ts +170 -20
  67. package/lib/components/VCheckbox/VCheckbox.mjs +6 -5
  68. package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
  69. package/lib/components/VCheckbox/index.d.ts +24 -12
  70. package/lib/components/VChip/VChip.css +8 -0
  71. package/lib/components/VChip/VChip.mjs +60 -57
  72. package/lib/components/VChip/VChip.mjs.map +1 -1
  73. package/lib/components/VChip/VChip.sass +10 -0
  74. package/lib/components/VChip/index.d.ts +8 -8
  75. package/lib/components/VChipGroup/VChipGroup.mjs +19 -18
  76. package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
  77. package/lib/components/VColorPicker/VColorPicker.mjs +44 -39
  78. package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
  79. package/lib/components/VColorPicker/VColorPickerCanvas.mjs +21 -20
  80. package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
  81. package/lib/components/VColorPicker/VColorPickerEdit.mjs +17 -16
  82. package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
  83. package/lib/components/VColorPicker/VColorPickerPreview.mjs +10 -9
  84. package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
  85. package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -11
  86. package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
  87. package/lib/components/VColorPicker/index.d.ts +4 -4
  88. package/lib/components/VColorPicker/util/index.mjs +2 -2
  89. package/lib/components/VColorPicker/util/index.mjs.map +1 -1
  90. package/lib/components/VCombobox/VCombobox.mjs +32 -36
  91. package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
  92. package/lib/components/VCombobox/index.d.ts +67 -1171
  93. package/lib/components/VCounter/VCounter.mjs +16 -15
  94. package/lib/components/VCounter/VCounter.mjs.map +1 -1
  95. package/lib/components/VCounter/index.d.ts +25 -1774
  96. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +9 -8
  97. package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
  98. package/lib/components/VDialog/VDialog.mjs +18 -17
  99. package/lib/components/VDialog/VDialog.mjs.map +1 -1
  100. package/lib/components/VDialog/index.d.ts +130 -1120
  101. package/lib/components/VDivider/VDivider.mjs +11 -10
  102. package/lib/components/VDivider/VDivider.mjs.map +1 -1
  103. package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -15
  104. package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
  105. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +6 -5
  106. package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
  107. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -5
  108. package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
  109. package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -14
  110. package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
  111. package/lib/components/VExpansionPanel/index.d.ts +15 -15
  112. package/lib/components/VField/VField.mjs +6 -2
  113. package/lib/components/VField/VField.mjs.map +1 -1
  114. package/lib/components/VField/VFieldLabel.mjs +6 -5
  115. package/lib/components/VField/VFieldLabel.mjs.map +1 -1
  116. package/lib/components/VFileInput/VFileInput.mjs +35 -34
  117. package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
  118. package/lib/components/VFileInput/index.d.ts +3 -3
  119. package/lib/components/VFooter/VFooter.mjs +19 -18
  120. package/lib/components/VFooter/VFooter.mjs.map +1 -1
  121. package/lib/components/VForm/VForm.mjs +6 -5
  122. package/lib/components/VForm/VForm.mjs.map +1 -1
  123. package/lib/components/VForm/index.d.ts +3 -3
  124. package/lib/components/VGrid/VCol.mjs +26 -25
  125. package/lib/components/VGrid/VCol.mjs.map +1 -1
  126. package/lib/components/VGrid/VContainer.mjs +16 -11
  127. package/lib/components/VGrid/VContainer.mjs.map +1 -1
  128. package/lib/components/VGrid/VRow.mjs +26 -25
  129. package/lib/components/VGrid/VRow.mjs.map +1 -1
  130. package/lib/components/VHover/VHover.mjs +10 -9
  131. package/lib/components/VHover/VHover.mjs.map +1 -1
  132. package/lib/components/VImg/VImg.mjs +29 -28
  133. package/lib/components/VImg/VImg.mjs.map +1 -1
  134. package/lib/components/VItemGroup/VItemGroup.mjs +10 -9
  135. package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
  136. package/lib/components/VLabel/VLabel.mjs +8 -7
  137. package/lib/components/VLabel/VLabel.mjs.map +1 -1
  138. package/lib/components/VLayout/VLayout.mjs +6 -5
  139. package/lib/components/VLayout/VLayout.mjs.map +1 -1
  140. package/lib/components/VLayout/VLayoutItem.mjs +15 -14
  141. package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
  142. package/lib/components/VLazy/VLazy.mjs +21 -20
  143. package/lib/components/VLazy/VLazy.mjs.map +1 -1
  144. package/lib/components/VList/VList.mjs +33 -32
  145. package/lib/components/VList/VList.mjs.map +1 -1
  146. package/lib/components/VList/VListChildren.mjs +5 -4
  147. package/lib/components/VList/VListChildren.mjs.map +1 -1
  148. package/lib/components/VList/VListGroup.mjs +2 -4
  149. package/lib/components/VList/VListGroup.mjs.map +1 -1
  150. package/lib/components/VList/VListItem.mjs +42 -41
  151. package/lib/components/VList/VListItem.mjs.map +1 -1
  152. package/lib/components/VList/VListItemAction.mjs +8 -7
  153. package/lib/components/VList/VListItemAction.mjs.map +1 -1
  154. package/lib/components/VList/VListItemMedia.mjs +8 -7
  155. package/lib/components/VList/VListItemMedia.mjs.map +1 -1
  156. package/lib/components/VList/VListSubheader.mjs +10 -9
  157. package/lib/components/VList/VListSubheader.mjs.map +1 -1
  158. package/lib/components/VList/index.d.ts +30 -30
  159. package/lib/components/VLocaleProvider/VLocaleProvider.mjs +12 -11
  160. package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
  161. package/lib/components/VMain/VMain.mjs +9 -8
  162. package/lib/components/VMain/VMain.mjs.map +1 -1
  163. package/lib/components/VMenu/VMenu.mjs +18 -17
  164. package/lib/components/VMenu/VMenu.mjs.map +1 -1
  165. package/lib/components/VMenu/index.d.ts +40 -1030
  166. package/lib/components/VMessages/VMessages.mjs +18 -17
  167. package/lib/components/VMessages/VMessages.mjs.map +1 -1
  168. package/lib/components/VMessages/index.d.ts +25 -1774
  169. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +48 -47
  170. package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
  171. package/lib/components/VNavigationDrawer/sticky.mjs +9 -3
  172. package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
  173. package/lib/components/VOverlay/locationStrategies.mjs +5 -3
  174. package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
  175. package/lib/components/VPagination/VPagination.mjs +82 -81
  176. package/lib/components/VPagination/VPagination.mjs.map +1 -1
  177. package/lib/components/VPagination/index.d.ts +8 -8
  178. package/lib/components/VParallax/VParallax.mjs +9 -8
  179. package/lib/components/VParallax/VParallax.mjs.map +1 -1
  180. package/lib/components/VProgressCircular/VProgressCircular.mjs +25 -24
  181. package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
  182. package/lib/components/VProgressLinear/VProgressLinear.mjs +44 -42
  183. package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
  184. package/lib/components/VProgressLinear/index.d.ts +8 -8
  185. package/lib/components/VRadio/VRadio.mjs +8 -7
  186. package/lib/components/VRadio/VRadio.mjs.map +1 -1
  187. package/lib/components/VRadio/index.d.ts +18 -12
  188. package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -21
  189. package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
  190. package/lib/components/VRadioGroup/index.d.ts +16 -10
  191. package/lib/components/VRangeSlider/VRangeSlider.mjs +18 -13
  192. package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
  193. package/lib/components/VRating/VRating.mjs +44 -43
  194. package/lib/components/VRating/VRating.mjs.map +1 -1
  195. package/lib/components/VRating/index.d.ts +8 -8
  196. package/lib/components/VResponsive/VResponsive.mjs +8 -7
  197. package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
  198. package/lib/components/VSelect/VSelect.mjs +20 -19
  199. package/lib/components/VSelect/VSelect.mjs.map +1 -1
  200. package/lib/components/VSelect/index.d.ts +64 -2506
  201. package/lib/components/VSelectionControl/index.d.ts +42 -36
  202. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -10
  203. package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
  204. package/lib/components/VSelectionControlGroup/index.d.ts +28 -28
  205. package/lib/components/VSheet/VSheet.mjs +1 -3
  206. package/lib/components/VSheet/VSheet.mjs.map +1 -1
  207. package/lib/components/VSlideGroup/VSlideGroupItem.mjs +1 -3
  208. package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
  209. package/lib/components/VSlider/VSlider.mjs +18 -13
  210. package/lib/components/VSlider/VSlider.mjs.map +1 -1
  211. package/lib/components/VSlider/VSliderThumb.mjs +26 -25
  212. package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
  213. package/lib/components/VSlider/VSliderTrack.mjs +13 -12
  214. package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
  215. package/lib/components/VSnackbar/VSnackbar.mjs +20 -19
  216. package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
  217. package/lib/components/VSwitch/VSwitch.mjs +13 -12
  218. package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
  219. package/lib/components/VSwitch/index.d.ts +18 -12
  220. package/lib/components/VSystemBar/VSystemBar.mjs +13 -12
  221. package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
  222. package/lib/components/VTable/VTable.mjs +12 -11
  223. package/lib/components/VTable/VTable.mjs.map +1 -1
  224. package/lib/components/VTabs/VTab.mjs +15 -14
  225. package/lib/components/VTabs/VTab.mjs.map +1 -1
  226. package/lib/components/VTabs/VTabs.mjs +28 -27
  227. package/lib/components/VTabs/VTabs.mjs.map +1 -1
  228. package/lib/components/VTabs/index.d.ts +12 -12
  229. package/lib/components/VTextField/index.d.ts +3 -3
  230. package/lib/components/VTextarea/VTextarea.mjs +26 -25
  231. package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
  232. package/lib/components/VTextarea/index.d.ts +3 -3
  233. package/lib/components/VThemeProvider/VThemeProvider.mjs +8 -7
  234. package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
  235. package/lib/components/VTimeline/VTimeline.mjs +46 -41
  236. package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
  237. package/lib/components/VTimeline/VTimelineDivider.mjs +14 -13
  238. package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
  239. package/lib/components/VTimeline/VTimelineItem.mjs +21 -20
  240. package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
  241. package/lib/components/VToolbar/VToolbar.mjs +6 -2
  242. package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
  243. package/lib/components/VToolbar/VToolbarItems.mjs +8 -7
  244. package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
  245. package/lib/components/VToolbar/index.d.ts +11 -11
  246. package/lib/components/VTooltip/VTooltip.mjs +20 -19
  247. package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
  248. package/lib/components/VValidation/VValidation.mjs +1 -3
  249. package/lib/components/VValidation/VValidation.mjs.map +1 -1
  250. package/lib/components/VVirtualScroll/VVirtualScroll.mjs +11 -10
  251. package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
  252. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +6 -5
  253. package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
  254. package/lib/components/VWindow/VWindow.mjs.map +1 -1
  255. package/lib/components/VWindow/VWindowItem.mjs +15 -14
  256. package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
  257. package/lib/components/VWindow/index.d.ts +9 -9
  258. package/lib/components/index.d.ts +1301 -11252
  259. package/lib/components/transitions/createTransition.mjs +16 -15
  260. package/lib/components/transitions/createTransition.mjs.map +1 -1
  261. package/lib/components/transitions/dialog-transition.mjs +5 -4
  262. package/lib/components/transitions/dialog-transition.mjs.map +1 -1
  263. package/lib/components/transitions/index.d.ts +143 -143
  264. package/lib/composables/forwardRefs.mjs.map +1 -1
  265. package/lib/composables/theme.mjs +3 -3
  266. package/lib/composables/theme.mjs.map +1 -1
  267. package/lib/directives/click-outside/index.mjs +1 -1
  268. package/lib/directives/click-outside/index.mjs.map +1 -1
  269. package/lib/entry-bundler.mjs +1 -1
  270. package/lib/framework.mjs +1 -1
  271. package/lib/index.d.ts +3 -5
  272. package/lib/labs/VDataTable/VDataTable.mjs +53 -59
  273. package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
  274. package/lib/labs/VDataTable/VDataTableFooter.mjs +64 -63
  275. package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
  276. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +8 -7
  277. package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
  278. package/lib/labs/VDataTable/VDataTableHeaders.mjs +16 -15
  279. package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
  280. package/lib/labs/VDataTable/VDataTableRow.mjs +7 -6
  281. package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
  282. package/lib/labs/VDataTable/VDataTableRows.mjs +20 -19
  283. package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
  284. package/lib/labs/VDataTable/VDataTableServer.mjs +53 -64
  285. package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
  286. package/lib/labs/VDataTable/VDataTableVirtual.mjs +65 -72
  287. package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
  288. package/lib/labs/VDataTable/index.d.ts +991 -206
  289. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +54 -48
  290. package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
  291. package/lib/labs/VInfiniteScroll/index.d.ts +16 -1
  292. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +18 -17
  293. package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
  294. package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
  295. package/lib/labs/components.d.ts +1011 -211
  296. package/lib/labs/date/date.mjs +7 -7
  297. package/lib/labs/date/date.mjs.map +1 -1
  298. package/lib/labs/date/index.d.ts +1 -3
  299. package/package.json +2 -2
@@ -24,67 +24,68 @@ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
24
24
  import { useLocale } from "../../composables/locale.mjs";
25
25
  import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Directives
26
26
  import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
27
- import { EventProp, genericComponent } from "../../util/index.mjs";
27
+ import { EventProp, genericComponent, propsFactory } from "../../util/index.mjs";
28
28
  import { computed } from 'vue';
29
+ export const makeVChipProps = propsFactory({
30
+ activeClass: String,
31
+ appendAvatar: String,
32
+ appendIcon: IconValue,
33
+ closable: Boolean,
34
+ closeIcon: {
35
+ type: IconValue,
36
+ default: '$delete'
37
+ },
38
+ closeLabel: {
39
+ type: String,
40
+ default: '$vuetify.close'
41
+ },
42
+ draggable: Boolean,
43
+ filter: Boolean,
44
+ filterIcon: {
45
+ type: String,
46
+ default: '$complete'
47
+ },
48
+ label: Boolean,
49
+ link: {
50
+ type: Boolean,
51
+ default: undefined
52
+ },
53
+ pill: Boolean,
54
+ prependAvatar: String,
55
+ prependIcon: IconValue,
56
+ ripple: {
57
+ type: Boolean,
58
+ default: true
59
+ },
60
+ text: String,
61
+ modelValue: {
62
+ type: Boolean,
63
+ default: true
64
+ },
65
+ onClick: EventProp(),
66
+ onClickOnce: EventProp(),
67
+ ...makeBorderProps(),
68
+ ...makeComponentProps(),
69
+ ...makeDensityProps(),
70
+ ...makeElevationProps(),
71
+ ...makeGroupItemProps(),
72
+ ...makeRoundedProps(),
73
+ ...makeRouterProps(),
74
+ ...makeSizeProps(),
75
+ ...makeTagProps({
76
+ tag: 'span'
77
+ }),
78
+ ...makeThemeProps(),
79
+ ...makeVariantProps({
80
+ variant: 'tonal'
81
+ })
82
+ }, 'v-chip');
29
83
  export const VChip = genericComponent()({
30
84
  name: 'VChip',
31
85
  directives: {
32
86
  Ripple
33
87
  },
34
- props: {
35
- activeClass: String,
36
- appendAvatar: String,
37
- appendIcon: IconValue,
38
- closable: Boolean,
39
- closeIcon: {
40
- type: IconValue,
41
- default: '$delete'
42
- },
43
- closeLabel: {
44
- type: String,
45
- default: '$vuetify.close'
46
- },
47
- draggable: Boolean,
48
- filter: Boolean,
49
- filterIcon: {
50
- type: String,
51
- default: '$complete'
52
- },
53
- label: Boolean,
54
- link: {
55
- type: Boolean,
56
- default: undefined
57
- },
58
- pill: Boolean,
59
- prependAvatar: String,
60
- prependIcon: IconValue,
61
- ripple: {
62
- type: Boolean,
63
- default: true
64
- },
65
- text: String,
66
- modelValue: {
67
- type: Boolean,
68
- default: true
69
- },
70
- onClick: EventProp(),
71
- onClickOnce: EventProp(),
72
- ...makeBorderProps(),
73
- ...makeComponentProps(),
74
- ...makeDensityProps(),
75
- ...makeElevationProps(),
76
- ...makeGroupItemProps(),
77
- ...makeRoundedProps(),
78
- ...makeRouterProps(),
79
- ...makeSizeProps(),
80
- ...makeTagProps({
81
- tag: 'span'
82
- }),
83
- ...makeThemeProps(),
84
- ...makeVariantProps({
85
- variant: 'tonal'
86
- })
87
- },
88
+ props: makeVChipProps(),
88
89
  emits: {
89
90
  'click:close': e => true,
90
91
  'update:modelValue': value => true,
@@ -213,14 +214,16 @@ export const VChip = genericComponent()({
213
214
  start: true
214
215
  }
215
216
  }
216
- }, slots.prepend)]), slots.default?.({
217
+ }, slots.prepend)]), _createVNode("div", {
218
+ "class": "v-chip__content"
219
+ }, [slots.default?.({
217
220
  isSelected: group?.isSelected.value,
218
221
  selectedClass: group?.selectedClass.value,
219
222
  select: group?.select,
220
223
  toggle: group?.toggle,
221
224
  value: group?.value.value,
222
225
  disabled: props.disabled
223
- }) ?? props.text, hasAppend && _createVNode("div", {
226
+ }) ?? props.text]), hasAppend && _createVNode("div", {
224
227
  "key": "append",
225
228
  "class": "v-chip__append"
226
229
  }, [!slots.append ? _createVNode(_Fragment, null, [props.appendIcon && _createVNode(VIcon, {
@@ -1 +1 @@
1
- {"version":3,"file":"VChip.mjs","names":["VAvatar","VChipGroupSymbol","VDefaultsProvider","VExpandXTransition","VIcon","genOverlays","makeVariantProps","useVariant","IconValue","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","Ripple","EventProp","genericComponent","computed","VChip","name","directives","props","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","undefined","pill","prependAvatar","prependIcon","ripple","text","modelValue","onClick","onClickOnce","tag","variant","emits","e","value","val","click","setup","_ref","attrs","emit","slots","t","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","elevationClasses","roundedClasses","sizeClasses","themeClasses","isActive","group","isLink","isClickable","disabled","closeProps","navigate","toggle","onKeyDown","key","preventDefault","Tag","hasAppendMedia","hasAppend","append","hasClose","close","hasFilter","hasPrependMedia","hasPrepend","prepend","hasColor","isSelected","_withDirectives","_createVNode","selectedClass","class","style","href","icon","_resolveDirective","_vShow","_Fragment","image","start","select","end","_mergeProps","size"],"sources":["../../../src/components/VChip/VChip.tsx"],"sourcesContent":["/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { EventProp, genericComponent } from '@/util'\nimport { computed } from 'vue'\n\nexport type VChipSlots = {\n default: []\n label: []\n prepend: []\n append: []\n}\n\nexport const VChip = genericComponent<VChipSlots>()({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: {\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined,\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (!!group || props.link || link.isClickable.value)\n )\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n props.class,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n props.style,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n tabindex={ isClickable.value ? 0 : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={[isClickable.value && props.ripple, null]}\n >\n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n <VExpandXTransition key=\"filter\">\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { !slots.filter ? (\n <VIcon\n key=\"filter-icon\"\n icon={ props.filterIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"filter-defaults\"\n disabled={ !props.filterIcon }\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n v-slot:default={ slots.filter }\n />\n )}\n </div>\n </VExpandXTransition>\n )}\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-chip__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n icon={ props.prependIcon }\n start\n />\n )}\n\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n image={ props.prependAvatar }\n start\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n start: true,\n },\n VIcon: {\n icon: props.prependIcon,\n start: true,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-chip__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n end\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n end\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n end: true,\n image: props.appendAvatar,\n },\n VIcon: {\n end: true,\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </div>\n )}\n\n { hasClose && (\n <div\n key=\"close\"\n class=\"v-chip__close\"\n { ...closeProps.value }\n >\n { !slots.close ? (\n <VIcon\n key=\"close-icon\"\n icon={ props.closeIcon }\n size=\"x-small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"close-defaults\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n v-slots:default={ slots.close }\n />\n )}\n </div>\n )}\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VChip.mjs","names":["VAvatar","VChipGroupSymbol","VDefaultsProvider","VExpandXTransition","VIcon","genOverlays","makeVariantProps","useVariant","IconValue","makeBorderProps","useBorder","makeComponentProps","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useLocale","useProxiedModel","Ripple","EventProp","genericComponent","propsFactory","computed","makeVChipProps","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","undefined","pill","prependAvatar","prependIcon","ripple","text","modelValue","onClick","onClickOnce","tag","variant","VChip","name","directives","props","emits","e","value","val","click","setup","_ref","attrs","emit","slots","t","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","elevationClasses","roundedClasses","sizeClasses","themeClasses","isActive","group","isLink","isClickable","disabled","closeProps","navigate","toggle","onKeyDown","key","preventDefault","Tag","hasAppendMedia","hasAppend","append","hasClose","close","hasFilter","hasPrependMedia","hasPrepend","prepend","hasColor","isSelected","_withDirectives","_createVNode","selectedClass","class","style","href","icon","_resolveDirective","_vShow","_Fragment","image","start","select","end","_mergeProps","size"],"sources":["../../../src/components/VChip/VChip.tsx"],"sourcesContent":["/* eslint-disable complexity */\n// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { IconValue } from '@/composables/icons'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeComponentProps } from '@/composables/component'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { EventProp, genericComponent, propsFactory } from '@/util'\nimport { computed } from 'vue'\n\nexport type VChipSlots = {\n default: []\n label: []\n prepend: []\n append: []\n}\n\nexport const makeVChipProps = propsFactory({\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: {\n type: Boolean,\n default: undefined,\n },\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n onClick: EventProp<[MouseEvent]>(),\n onClickOnce: EventProp<[MouseEvent]>(),\n\n ...makeBorderProps(),\n ...makeComponentProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'v-chip')\n\nexport const VChip = genericComponent<VChipSlots>()({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: makeVChipProps(),\n\n emits: {\n 'click:close': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n click: (e: MouseEvent | KeyboardEvent) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { themeClasses } = provideTheme(props)\n\n const isActive = useProxiedModel(props, 'modelValue')\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const link = useLink(props, attrs)\n const isLink = computed(() => props.link !== false && link.isLink.value)\n const isClickable = computed(() =>\n !props.disabled &&\n props.link !== false &&\n (!!group || props.link || link.isClickable.value)\n )\n const closeProps = computed(() => ({\n 'aria-label': t(props.closeLabel),\n onClick (e: MouseEvent) {\n isActive.value = false\n\n emit('click:close', e)\n },\n }))\n\n function onClick (e: MouseEvent) {\n emit('click', e)\n\n if (!isClickable.value) return\n\n link.navigate?.(e)\n group?.toggle()\n }\n\n function onKeyDown (e: KeyboardEvent) {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClick(e as any as MouseEvent)\n }\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppendMedia = !!(props.appendIcon || props.appendAvatar)\n const hasAppend = !!(hasAppendMedia || slots.append)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrependMedia = !!(props.prependIcon || props.prependAvatar)\n const hasPrepend = !!(hasPrependMedia || slots.prepend)\n const hasColor = !group || group.isSelected.value\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable.value,\n 'v-chip--filter': hasFilter,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n props.class,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n props.style,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n tabindex={ isClickable.value ? 0 : undefined }\n onClick={ onClick }\n onKeydown={ isClickable.value && !isLink.value && onKeyDown }\n v-ripple={[isClickable.value && props.ripple, null]}\n >\n { genOverlays(isClickable.value, 'v-chip') }\n\n { hasFilter && (\n <VExpandXTransition key=\"filter\">\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { !slots.filter ? (\n <VIcon\n key=\"filter-icon\"\n icon={ props.filterIcon }\n />\n ) : (\n <VDefaultsProvider\n key=\"filter-defaults\"\n disabled={ !props.filterIcon }\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n v-slot:default={ slots.filter }\n />\n )}\n </div>\n </VExpandXTransition>\n )}\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-chip__prepend\">\n { !slots.prepend ? (\n <>\n { props.prependIcon && (\n <VIcon\n key=\"prepend-icon\"\n icon={ props.prependIcon }\n start\n />\n )}\n\n { props.prependAvatar && (\n <VAvatar\n key=\"prepend-avatar\"\n image={ props.prependAvatar }\n start\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"prepend-defaults\"\n disabled={ !hasPrependMedia }\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n start: true,\n },\n VIcon: {\n icon: props.prependIcon,\n start: true,\n },\n }}\n v-slots:default={ slots.prepend }\n />\n )}\n </div>\n )}\n\n <div class=\"v-chip__content\">\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n </div>\n\n { hasAppend && (\n <div key=\"append\" class=\"v-chip__append\">\n { !slots.append ? (\n <>\n { props.appendIcon && (\n <VIcon\n key=\"append-icon\"\n end\n icon={ props.appendIcon }\n />\n )}\n\n { props.appendAvatar && (\n <VAvatar\n key=\"append-avatar\"\n end\n image={ props.appendAvatar }\n />\n )}\n </>\n ) : (\n <VDefaultsProvider\n key=\"append-defaults\"\n disabled={ !hasAppendMedia }\n defaults={{\n VAvatar: {\n end: true,\n image: props.appendAvatar,\n },\n VIcon: {\n end: true,\n icon: props.appendIcon,\n },\n }}\n v-slots:default={ slots.append }\n />\n )}\n </div>\n )}\n\n { hasClose && (\n <div\n key=\"close\"\n class=\"v-chip__close\"\n { ...closeProps.value }\n >\n { !slots.close ? (\n <VIcon\n key=\"close-icon\"\n icon={ props.closeIcon }\n size=\"x-small\"\n />\n ) : (\n <VDefaultsProvider\n key=\"close-defaults\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n v-slots:default={ slots.close }\n />\n )}\n </div>\n )}\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n"],"mappings":"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"}
@@ -6,8 +6,10 @@
6
6
  align-items: center
7
7
  cursor: default
8
8
  display: inline-flex
9
+ flex: 1 0
9
10
  font-weight: $chip-font-weight
10
11
  max-width: $chip-max-width
12
+ min-width: 0
11
13
  overflow: hidden
12
14
  position: relative
13
15
  text-decoration: none
@@ -36,6 +38,14 @@
36
38
  @include tools.rounded($chip-label-border-radius)
37
39
 
38
40
  // Elements
41
+ .v-chip__content
42
+ .v-autocomplete__selection &,
43
+ .v-combobox__selection &,
44
+ .v-select__selection &
45
+ overflow: hidden
46
+ text-overflow: ellipsis
47
+ white-space: nowrap
48
+
39
49
  .v-chip__filter,
40
50
  .v-chip__prepend,
41
51
  .v-chip__append,
@@ -38,8 +38,8 @@ declare const VChip: {
38
38
  closable: boolean;
39
39
  closeIcon: IconValue;
40
40
  closeLabel: string;
41
- pill: boolean;
42
41
  filterIcon: string;
42
+ pill: boolean;
43
43
  }> & Omit<{
44
44
  replace: boolean;
45
45
  filter: boolean;
@@ -57,8 +57,8 @@ declare const VChip: {
57
57
  closable: boolean;
58
58
  closeIcon: IconValue;
59
59
  closeLabel: string;
60
- pill: boolean;
61
60
  filterIcon: string;
61
+ pill: boolean;
62
62
  } & {
63
63
  link?: boolean | undefined;
64
64
  border?: string | number | boolean | undefined;
@@ -104,7 +104,7 @@ declare const VChip: {
104
104
  value: boolean;
105
105
  }) => any) | undefined;
106
106
  "onClick:close"?: ((e: MouseEvent) => any) | undefined;
107
- } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "replace" | "link" | "filter" | "exact" | "label" | "style" | "draggable" | "disabled" | "size" | "tag" | "rounded" | "density" | "variant" | "modelValue" | "ripple" | "closable" | "closeIcon" | "closeLabel" | "pill" | "filterIcon">;
107
+ } & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps, "replace" | "link" | "filter" | "exact" | "label" | "style" | "draggable" | "disabled" | "size" | "tag" | "rounded" | "density" | "variant" | "modelValue" | "ripple" | "closable" | "closeIcon" | "closeLabel" | "filterIcon" | "pill">;
108
108
  $attrs: {
109
109
  [x: string]: unknown;
110
110
  };
@@ -137,8 +137,8 @@ declare const VChip: {
137
137
  closable: boolean;
138
138
  closeIcon: IconValue;
139
139
  closeLabel: string;
140
- pill: boolean;
141
140
  filterIcon: string;
141
+ pill: boolean;
142
142
  } & {
143
143
  link?: boolean | undefined;
144
144
  border?: string | number | boolean | undefined;
@@ -210,8 +210,8 @@ declare const VChip: {
210
210
  closable: boolean;
211
211
  closeIcon: IconValue;
212
212
  closeLabel: string;
213
- pill: boolean;
214
213
  filterIcon: string;
214
+ pill: boolean;
215
215
  }, {}, string> & {
216
216
  beforeCreate?: ((() => void) | (() => void)[]) | undefined;
217
217
  created?: ((() => void) | (() => void)[]) | undefined;
@@ -249,8 +249,8 @@ declare const VChip: {
249
249
  closable: boolean;
250
250
  closeIcon: IconValue;
251
251
  closeLabel: string;
252
- pill: boolean;
253
252
  filterIcon: string;
253
+ pill: boolean;
254
254
  } & {
255
255
  link?: boolean | undefined;
256
256
  border?: string | number | boolean | undefined;
@@ -317,8 +317,8 @@ declare const VChip: {
317
317
  closable: boolean;
318
318
  closeIcon: IconValue;
319
319
  closeLabel: string;
320
- pill: boolean;
321
320
  filterIcon: string;
321
+ pill: boolean;
322
322
  } & {
323
323
  link?: boolean | undefined;
324
324
  border?: string | number | boolean | undefined;
@@ -390,8 +390,8 @@ declare const VChip: {
390
390
  closable: boolean;
391
391
  closeIcon: IconValue;
392
392
  closeLabel: string;
393
- pill: boolean;
394
393
  filterIcon: string;
394
+ pill: boolean;
395
395
  }, {}, string> & vue.VNodeProps & vue.AllowedComponentProps & vue.ComponentCustomProps & FilterPropsOptions<{
396
396
  color: StringConstructor;
397
397
  variant: Omit<{
@@ -9,31 +9,32 @@ import { makeTagProps } from "../../composables/tag.mjs";
9
9
  import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
10
10
  import { makeVariantProps } from "../../composables/variant.mjs";
11
11
  import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
12
- import { deepEqual, genericComponent, useRender } from "../../util/index.mjs";
12
+ import { deepEqual, genericComponent, propsFactory, useRender } from "../../util/index.mjs";
13
13
  import { toRef } from 'vue';
14
14
 
15
15
  // Types
16
16
 
17
17
  export const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
18
+ export const makeVChipGroupProps = propsFactory({
19
+ column: Boolean,
20
+ filter: Boolean,
21
+ valueComparator: {
22
+ type: Function,
23
+ default: deepEqual
24
+ },
25
+ ...makeComponentProps(),
26
+ ...makeGroupProps({
27
+ selectedClass: 'v-chip--selected'
28
+ }),
29
+ ...makeTagProps(),
30
+ ...makeThemeProps(),
31
+ ...makeVariantProps({
32
+ variant: 'tonal'
33
+ })
34
+ }, 'v-chip-group');
18
35
  export const VChipGroup = genericComponent()({
19
36
  name: 'VChipGroup',
20
- props: {
21
- column: Boolean,
22
- filter: Boolean,
23
- valueComparator: {
24
- type: Function,
25
- default: deepEqual
26
- },
27
- ...makeComponentProps(),
28
- ...makeGroupProps({
29
- selectedClass: 'v-chip--selected'
30
- }),
31
- ...makeTagProps(),
32
- ...makeThemeProps(),
33
- ...makeVariantProps({
34
- variant: 'tonal'
35
- })
36
- },
37
+ props: makeVChipGroupProps(),
37
38
  emits: {
38
39
  'update:modelValue': value => true
39
40
  },
@@ -1 +1 @@
1
- {"version":3,"file":"VChipGroup.mjs","names":["makeComponentProps","makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","deepEqual","genericComponent","useRender","toRef","VChipGroupSymbol","Symbol","for","VChipGroup","name","props","column","Boolean","filter","valueComparator","type","Function","default","selectedClass","variant","emits","value","setup","_ref","slots","themeClasses","isSelected","select","next","prev","selected","VChip","color","disabled","_createVNode","tag","class","style"],"sources":["../../../src/components/VChipGroup/VChipGroup.tsx"],"sourcesContent":["// Styles\nimport './VChipGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { deepEqual, genericComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const VChipGroup = genericComponent()({\n name: 'VChipGroup',\n\n props: {\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeComponentProps(),\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-chip-group',\n {\n 'v-chip-group--column': props.column,\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VChipGroup = InstanceType<typeof VChipGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,gBAAgB;AAAA,SAChBC,eAAe,0CAExB;AAAA,SACSC,SAAS,EAAEC,gBAAgB,EAAEC,SAAS;AAC/C,SAASC,KAAK,QAAQ,KAAK;;AAE3B;;AAGA,OAAO,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAElE,OAAO,MAAMC,UAAU,GAAGN,gBAAgB,EAAE,CAAC;EAC3CO,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAE;IACLC,MAAM,EAAEC,OAAO;IACfC,MAAM,EAAED,OAAO;IACfE,eAAe,EAAE;MACfC,IAAI,EAAEC,QAAsC;MAC5CC,OAAO,EAAEhB;IACX,CAAC;IAED,GAAGR,kBAAkB,EAAE;IACvB,GAAGC,cAAc,CAAC;MAAEwB,aAAa,EAAE;IAAmB,CAAC,CAAC;IACxD,GAAGtB,YAAY,EAAE;IACjB,GAAGC,cAAc,EAAE;IACnB,GAAGE,gBAAgB,CAAC;MAAEoB,OAAO,EAAE;IAAQ,CAAC;EAC1C,CAAC;EAEDC,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEZ,KAAK,EAAAa,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAG3B,YAAY,CAACY,KAAK,CAAC;IAC5C,MAAM;MAAEgB,UAAU;MAAEC,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGnC,QAAQ,CAACe,KAAK,EAAEL,gBAAgB,CAAC;IAEtFL,eAAe,CAAC;MACd+B,KAAK,EAAE;QACLC,KAAK,EAAE5B,KAAK,CAACM,KAAK,EAAE,OAAO,CAAC;QAC5BuB,QAAQ,EAAE7B,KAAK,CAACM,KAAK,EAAE,UAAU,CAAC;QAClCG,MAAM,EAAET,KAAK,CAACM,KAAK,EAAE,QAAQ,CAAC;QAC9BS,OAAO,EAAEf,KAAK,CAACM,KAAK,EAAE,SAAS;MACjC;IACF,CAAC,CAAC;IAEFP,SAAS,CAAC,MAAA+B,YAAA,CAAAxB,KAAA,CAAAyB,GAAA;MAAA,SAEC,CACL,cAAc,EACd;QACE,sBAAsB,EAAEzB,KAAK,CAACC;MAChC,CAAC,EACDc,YAAY,CAACJ,KAAK,EAClBX,KAAK,CAAC0B,KAAK,CACZ;MAAA,SACO1B,KAAK,CAAC2B;IAAK;MAAApB,OAAA,EAAAA,CAAA,MAEjBO,KAAK,CAACP,OAAO,GAAG;QAChBS,UAAU;QACVC,MAAM;QACNC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,CAACT;MACrB,CAAC,CAAC;IAAA,EAEL,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
1
+ {"version":3,"file":"VChipGroup.mjs","names":["makeComponentProps","makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","deepEqual","genericComponent","propsFactory","useRender","toRef","VChipGroupSymbol","Symbol","for","makeVChipGroupProps","column","Boolean","filter","valueComparator","type","Function","default","selectedClass","variant","VChipGroup","name","props","emits","value","setup","_ref","slots","themeClasses","isSelected","select","next","prev","selected","VChip","color","disabled","_createVNode","tag","class","style"],"sources":["../../../src/components/VChipGroup/VChipGroup.tsx"],"sourcesContent":["// Styles\nimport './VChipGroup.sass'\n\n// Composables\nimport { makeComponentProps } from '@/composables/component'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { deepEqual, genericComponent, propsFactory, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const makeVChipGroupProps = propsFactory({\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeComponentProps(),\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'tonal' } as const),\n}, 'v-chip-group')\n\nexport const VChipGroup = genericComponent()({\n name: 'VChipGroup',\n\n props: makeVChipGroupProps(),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-chip-group',\n {\n 'v-chip-group--column': props.column,\n },\n themeClasses.value,\n props.class,\n ]}\n style={ props.style }\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n })}\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VChipGroup = InstanceType<typeof VChipGroup>\n"],"mappings":";AAAA;AACA;;AAEA;AAAA,SACSA,kBAAkB;AAAA,SAClBC,cAAc,EAAEC,QAAQ;AAAA,SACxBC,YAAY;AAAA,SACZC,cAAc,EAAEC,YAAY;AAAA,SAC5BC,gBAAgB;AAAA,SAChBC,eAAe,0CAExB;AAAA,SACSC,SAAS,EAAEC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS;AAC7D,SAASC,KAAK,QAAQ,KAAK;;AAE3B;;AAGA,OAAO,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,GAAG,CAAC,sBAAsB,CAAC;AAElE,OAAO,MAAMC,mBAAmB,GAAGN,YAAY,CAAC;EAC9CO,MAAM,EAAEC,OAAO;EACfC,MAAM,EAAED,OAAO;EACfE,eAAe,EAAE;IACfC,IAAI,EAAEC,QAAsC;IAC5CC,OAAO,EAAEf;EACX,CAAC;EAED,GAAGR,kBAAkB,EAAE;EACvB,GAAGC,cAAc,CAAC;IAAEuB,aAAa,EAAE;EAAmB,CAAC,CAAC;EACxD,GAAGrB,YAAY,EAAE;EACjB,GAAGC,cAAc,EAAE;EACnB,GAAGE,gBAAgB,CAAC;IAAEmB,OAAO,EAAE;EAAQ,CAAC;AAC1C,CAAC,EAAE,cAAc,CAAC;AAElB,OAAO,MAAMC,UAAU,GAAGjB,gBAAgB,EAAE,CAAC;EAC3CkB,IAAI,EAAE,YAAY;EAElBC,KAAK,EAAEZ,mBAAmB,EAAE;EAE5Ba,KAAK,EAAE;IACL,mBAAmB,EAAGC,KAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAM;MAAEE;IAAa,CAAC,GAAG7B,YAAY,CAACuB,KAAK,CAAC;IAC5C,MAAM;MAAEO,UAAU;MAAEC,MAAM;MAAEC,IAAI;MAAEC,IAAI;MAAEC;IAAS,CAAC,GAAGrC,QAAQ,CAAC0B,KAAK,EAAEf,gBAAgB,CAAC;IAEtFN,eAAe,CAAC;MACdiC,KAAK,EAAE;QACLC,KAAK,EAAE7B,KAAK,CAACgB,KAAK,EAAE,OAAO,CAAC;QAC5Bc,QAAQ,EAAE9B,KAAK,CAACgB,KAAK,EAAE,UAAU,CAAC;QAClCT,MAAM,EAAEP,KAAK,CAACgB,KAAK,EAAE,QAAQ,CAAC;QAC9BH,OAAO,EAAEb,KAAK,CAACgB,KAAK,EAAE,SAAS;MACjC;IACF,CAAC,CAAC;IAEFjB,SAAS,CAAC,MAAAgC,YAAA,CAAAf,KAAA,CAAAgB,GAAA;MAAA,SAEC,CACL,cAAc,EACd;QACE,sBAAsB,EAAEhB,KAAK,CAACX;MAChC,CAAC,EACDiB,YAAY,CAACJ,KAAK,EAClBF,KAAK,CAACiB,KAAK,CACZ;MAAA,SACOjB,KAAK,CAACkB;IAAK;MAAAvB,OAAA,EAAAA,CAAA,MAEjBU,KAAK,CAACV,OAAO,GAAG;QAChBY,UAAU;QACVC,MAAM;QACNC,IAAI;QACJC,IAAI;QACJC,QAAQ,EAAEA,QAAQ,CAACT;MACrB,CAAC,CAAC;IAAA,EAEL,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
@@ -9,51 +9,53 @@ import { VColorPickerEdit } from "./VColorPickerEdit.mjs";
9
9
  import { VColorPickerPreview } from "./VColorPickerPreview.mjs";
10
10
  import { VColorPickerSwatches } from "./VColorPickerSwatches.mjs"; // Composables
11
11
  import { useProxiedModel } from "../../composables/proxiedModel.mjs";
12
- import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
13
- import { defineComponent, HSVtoCSS, omit, useRender } from "../../util/index.mjs";
12
+ import { provideDefaults } from "../../composables/defaults.mjs";
13
+ import { useRtl } from "../../composables/locale.mjs"; // Utilities
14
+ import { defineComponent, HSVtoCSS, omit, propsFactory, useRender } from "../../util/index.mjs";
14
15
  import { extractColor, modes, nullColor, parseColor } from "./util/index.mjs";
15
16
  import { onMounted, ref } from 'vue';
16
17
 
17
18
  // Types
18
19
 
20
+ export const makeVPickerProps = propsFactory({
21
+ canvasHeight: {
22
+ type: [String, Number],
23
+ default: 150
24
+ },
25
+ disabled: Boolean,
26
+ dotSize: {
27
+ type: [Number, String],
28
+ default: 10
29
+ },
30
+ hideCanvas: Boolean,
31
+ hideSliders: Boolean,
32
+ hideInputs: Boolean,
33
+ mode: {
34
+ type: String,
35
+ default: 'rgba',
36
+ validator: v => Object.keys(modes).includes(v)
37
+ },
38
+ modes: {
39
+ type: Array,
40
+ default: () => Object.keys(modes),
41
+ validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
42
+ },
43
+ showSwatches: Boolean,
44
+ swatches: Array,
45
+ swatchesMaxHeight: {
46
+ type: [Number, String],
47
+ default: 150
48
+ },
49
+ modelValue: {
50
+ type: [Object, String]
51
+ },
52
+ ...omit(makeVSheetProps({
53
+ width: 300
54
+ }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])
55
+ }, 'v-color-picker');
19
56
  export const VColorPicker = defineComponent({
20
57
  name: 'VColorPicker',
21
- props: {
22
- canvasHeight: {
23
- type: [String, Number],
24
- default: 150
25
- },
26
- disabled: Boolean,
27
- dotSize: {
28
- type: [Number, String],
29
- default: 10
30
- },
31
- hideCanvas: Boolean,
32
- hideSliders: Boolean,
33
- hideInputs: Boolean,
34
- mode: {
35
- type: String,
36
- default: 'rgba',
37
- validator: v => Object.keys(modes).includes(v)
38
- },
39
- modes: {
40
- type: Array,
41
- default: () => Object.keys(modes),
42
- validator: v => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m))
43
- },
44
- showSwatches: Boolean,
45
- swatches: Array,
46
- swatchesMaxHeight: {
47
- type: [Number, String],
48
- default: 150
49
- },
50
- modelValue: {
51
- type: [Object, String]
52
- },
53
- ...omit(makeVSheetProps({
54
- width: 300
55
- }), ['height', 'location', 'minHeight', 'maxHeight', 'minWidth', 'maxWidth'])
56
- },
58
+ props: makeVPickerProps(),
57
59
  emits: {
58
60
  'update:modelValue': color => true,
59
61
  'update:mode': mode => true
@@ -76,6 +78,9 @@ export const VColorPicker = defineComponent({
76
78
  if (!v) return null;
77
79
  return extractColor(v, props.modelValue);
78
80
  });
81
+ const {
82
+ rtlClasses
83
+ } = useRtl();
79
84
  const updateColor = hsva => {
80
85
  currentColor.value = hsva;
81
86
  lastPickedColor.value = hsva;
@@ -96,7 +101,7 @@ export const VColorPicker = defineComponent({
96
101
  "rounded": props.rounded,
97
102
  "elevation": props.elevation,
98
103
  "theme": props.theme,
99
- "class": ['v-color-picker', props.class],
104
+ "class": ['v-color-picker', rtlClasses.value, props.class],
100
105
  "style": [{
101
106
  '--v-color-picker-color-hsv': HSVtoCSS({
102
107
  ...(currentColor.value ?? nullColor),
@@ -1 +1 @@
1
- {"version":3,"file":"VColorPicker.mjs","names":["makeVSheetProps","VSheet","VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","useProxiedModel","provideDefaults","defineComponent","HSVtoCSS","omit","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","props","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","emits","color","setup","lastPickedColor","currentColor","undefined","c","value","h","updateColor","hsva","VSlider","trackColor","trackFillColor","sheetProps","filterProps","_createVNode","_mergeProps","rounded","elevation","theme","class","a","style","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, omit, useRender } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const [sheetProps] = VSheet.filterProps(props)\n\n return (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n props.class,\n ]}\n style={[\n {\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n },\n props.style,\n ]}\n { ...sheetProps }\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n )}\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n </div>\n )}\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
1
+ {"version":3,"file":"VColorPicker.mjs","names":["makeVSheetProps","VSheet","VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","useProxiedModel","provideDefaults","useRtl","defineComponent","HSVtoCSS","omit","propsFactory","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","makeVPickerProps","canvasHeight","type","String","Number","default","disabled","Boolean","dotSize","hideCanvas","hideSliders","hideInputs","mode","validator","v","Object","keys","includes","Array","isArray","every","m","showSwatches","swatches","swatchesMaxHeight","modelValue","width","VColorPicker","name","props","emits","color","setup","lastPickedColor","currentColor","undefined","c","value","h","rtlClasses","updateColor","hsva","VSlider","trackColor","trackFillColor","sheetProps","filterProps","_createVNode","_mergeProps","rounded","elevation","theme","class","a","style","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useRtl } from '@/composables/locale'\n\n// Utilities\nimport { defineComponent, HSVtoCSS, omit, propsFactory, useRender } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\nimport { onMounted, ref } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSV } from '@/util'\n\nexport const makeVPickerProps = propsFactory({\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n\n ...omit(makeVSheetProps({ width: 300 }), [\n 'height',\n 'location',\n 'minHeight',\n 'maxHeight',\n 'minWidth',\n 'maxWidth',\n ]),\n}, 'v-color-picker')\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n props: makeVPickerProps(),\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSV | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n const { rtlClasses } = useRtl()\n\n const updateColor = (hsva: HSV) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n provideDefaults({\n VSlider: {\n color: undefined,\n trackColor: undefined,\n trackFillColor: undefined,\n },\n })\n\n useRender(() => {\n const [sheetProps] = VSheet.filterProps(props)\n\n return (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n rtlClasses.value,\n props.class,\n ]}\n style={[\n {\n '--v-color-picker-color-hsv': HSVtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n },\n props.style,\n ]}\n { ...sheetProps }\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n key=\"canvas\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n )}\n\n { (!props.hideSliders || !props.hideInputs) && (\n <div key=\"controls\" class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n key=\"preview\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n )}\n\n { !props.hideInputs && (\n <VColorPickerEdit\n key=\"edit\"\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n )}\n </div>\n )}\n\n { props.showSwatches && (\n <VColorPickerSwatches\n key=\"swatches\"\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n )}\n </VSheet>\n )\n })\n\n return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
@@ -5,32 +5,33 @@ import "./VColorPickerCanvas.css";
5
5
  // Composables
6
6
  import { makeComponentProps } from "../../composables/component.mjs";
7
7
  import { useResizeObserver } from "../../composables/resizeObserver.mjs"; // Utilities
8
- import { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from "../../util/index.mjs";
8
+ import { clamp, convertToUnit, defineComponent, getEventCoordinates, propsFactory, useRender } from "../../util/index.mjs";
9
9
  import { computed, onMounted, ref, watch } from 'vue';
10
10
 
11
11
  // Types
12
12
 
13
+ export const makeVColorPickerCanvasProps = propsFactory({
14
+ color: {
15
+ type: Object
16
+ },
17
+ disabled: Boolean,
18
+ dotSize: {
19
+ type: [Number, String],
20
+ default: 10
21
+ },
22
+ height: {
23
+ type: [Number, String],
24
+ default: 150
25
+ },
26
+ width: {
27
+ type: [Number, String],
28
+ default: 300
29
+ },
30
+ ...makeComponentProps()
31
+ }, 'v-color-picker-canvas');
13
32
  export const VColorPickerCanvas = defineComponent({
14
33
  name: 'VColorPickerCanvas',
15
- props: {
16
- color: {
17
- type: Object
18
- },
19
- disabled: Boolean,
20
- dotSize: {
21
- type: [Number, String],
22
- default: 10
23
- },
24
- height: {
25
- type: [Number, String],
26
- default: 150
27
- },
28
- width: {
29
- type: [Number, String],
30
- default: 300
31
- },
32
- ...makeComponentProps()
33
- },
34
+ props: makeVColorPickerCanvasProps(),
34
35
  emits: {
35
36
  'update:color': color => true,
36
37
  'update:position': hue => true