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.
- package/dist/json/attributes.json +538 -242
- package/dist/json/importMap.json +8 -8
- package/dist/json/tags.json +77 -2
- package/dist/json/web-types.json +1284 -558
- package/dist/vuetify-labs.css +123 -119
- package/dist/vuetify-labs.d.ts +2222 -11380
- package/dist/vuetify-labs.esm.js +2230 -2144
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +2230 -2144
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +39 -35
- package/dist/vuetify.d.ts +1225 -11178
- package/dist/vuetify.esm.js +1691 -1591
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +1691 -1591
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +597 -597
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +1 -3
- package/lib/blueprints/md1.d.ts +1 -3
- package/lib/blueprints/md2.d.ts +1 -3
- package/lib/blueprints/md3.d.ts +1 -3
- package/lib/components/VAlert/VAlert.mjs +47 -46
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/index.d.ts +2 -2
- package/lib/components/VApp/VApp.mjs +9 -8
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +21 -20
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +8 -5
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/index.d.ts +4 -4
- package/lib/components/VAutocomplete/VAutocomplete.css +0 -4
- package/lib/components/VAutocomplete/VAutocomplete.mjs +28 -33
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -5
- package/lib/components/VAutocomplete/index.d.ts +67 -1174
- package/lib/components/VBadge/VBadge.mjs +33 -32
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.mjs +21 -20
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBannerActions.mjs +7 -6
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.d.ts +2 -2
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +35 -34
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +24 -23
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +6 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -14
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.d.ts +1 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +6 -5
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VCard/VCard.mjs +38 -37
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +12 -11
- package/lib/components/VCard/VCardItem.mjs.map +1 -1
- package/lib/components/VCard/index.d.ts +4 -4
- package/lib/components/VCarousel/VCarousel.mjs +28 -27
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarouselItem.mjs +18 -16
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/index.d.ts +170 -20
- package/lib/components/VCheckbox/VCheckbox.mjs +6 -5
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/index.d.ts +24 -12
- package/lib/components/VChip/VChip.css +8 -0
- package/lib/components/VChip/VChip.mjs +60 -57
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +10 -0
- package/lib/components/VChip/index.d.ts +8 -8
- package/lib/components/VChipGroup/VChipGroup.mjs +19 -18
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +44 -39
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +21 -20
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +17 -16
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +10 -9
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +12 -11
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/index.d.ts +4 -4
- package/lib/components/VColorPicker/util/index.mjs +2 -2
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +32 -36
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.ts +67 -1171
- package/lib/components/VCounter/VCounter.mjs +16 -15
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/index.d.ts +25 -1774
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +9 -8
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.mjs +18 -17
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/index.d.ts +130 -1120
- package/lib/components/VDivider/VDivider.mjs +11 -10
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -15
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +6 -5
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +3 -5
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +15 -14
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.d.ts +15 -15
- package/lib/components/VField/VField.mjs +6 -2
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VFieldLabel.mjs +6 -5
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +35 -34
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/index.d.ts +3 -3
- package/lib/components/VFooter/VFooter.mjs +19 -18
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +6 -5
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +3 -3
- package/lib/components/VGrid/VCol.mjs +26 -25
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +16 -11
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +26 -25
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs +10 -9
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs +29 -28
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs +10 -9
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs +8 -7
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.mjs +6 -5
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +15 -14
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs +21 -20
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VList/VList.mjs +33 -32
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VListChildren.mjs +5 -4
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +2 -4
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.mjs +42 -41
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItemAction.mjs +8 -7
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +8 -7
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +10 -9
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/index.d.ts +30 -30
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +12 -11
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs +9 -8
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.mjs +18 -17
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/index.d.ts +40 -1030
- package/lib/components/VMessages/VMessages.mjs +18 -17
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/index.d.ts +25 -1774
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +48 -47
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs +9 -3
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +5 -3
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +82 -81
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/index.d.ts +8 -8
- package/lib/components/VParallax/VParallax.mjs +9 -8
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs +25 -24
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +44 -42
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/index.d.ts +8 -8
- package/lib/components/VRadio/VRadio.mjs +8 -7
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.ts +18 -12
- package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -21
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.d.ts +16 -10
- package/lib/components/VRangeSlider/VRangeSlider.mjs +18 -13
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs +44 -43
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/index.d.ts +8 -8
- package/lib/components/VResponsive/VResponsive.mjs +8 -7
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +20 -19
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.ts +64 -2506
- package/lib/components/VSelectionControl/index.d.ts +42 -36
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -10
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/index.d.ts +28 -28
- package/lib/components/VSheet/VSheet.mjs +1 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +1 -3
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.mjs +18 -13
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.mjs +26 -25
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +13 -12
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +20 -19
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +13 -12
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.ts +18 -12
- package/lib/components/VSystemBar/VSystemBar.mjs +13 -12
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VTable/VTable.mjs +12 -11
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTabs/VTab.mjs +15 -14
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.mjs +28 -27
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/index.d.ts +12 -12
- package/lib/components/VTextField/index.d.ts +3 -3
- package/lib/components/VTextarea/VTextarea.mjs +26 -25
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/index.d.ts +3 -3
- package/lib/components/VThemeProvider/VThemeProvider.mjs +8 -7
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.mjs +46 -41
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineDivider.mjs +14 -13
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +21 -20
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.mjs +6 -2
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarItems.mjs +8 -7
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/index.d.ts +11 -11
- package/lib/components/VTooltip/VTooltip.mjs +20 -19
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VValidation/VValidation.mjs +1 -3
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +11 -10
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs +6 -5
- package/lib/components/VVirtualScroll/VVirtualScrollItem.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindowItem.mjs +15 -14
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.d.ts +9 -9
- package/lib/components/index.d.ts +1301 -11252
- package/lib/components/transitions/createTransition.mjs +16 -15
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +5 -4
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.d.ts +143 -143
- package/lib/composables/forwardRefs.mjs.map +1 -1
- package/lib/composables/theme.mjs +3 -3
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs +1 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.ts +3 -5
- package/lib/labs/VDataTable/VDataTable.mjs +53 -59
- package/lib/labs/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableFooter.mjs +64 -63
- package/lib/labs/VDataTable/VDataTableFooter.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs +8 -7
- package/lib/labs/VDataTable/VDataTableGroupHeaderRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableHeaders.mjs +16 -15
- package/lib/labs/VDataTable/VDataTableHeaders.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRow.mjs +7 -6
- package/lib/labs/VDataTable/VDataTableRow.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableRows.mjs +20 -19
- package/lib/labs/VDataTable/VDataTableRows.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableServer.mjs +53 -64
- package/lib/labs/VDataTable/VDataTableServer.mjs.map +1 -1
- package/lib/labs/VDataTable/VDataTableVirtual.mjs +65 -72
- package/lib/labs/VDataTable/VDataTableVirtual.mjs.map +1 -1
- package/lib/labs/VDataTable/index.d.ts +991 -206
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs +54 -48
- package/lib/labs/VInfiniteScroll/VInfiniteScroll.mjs.map +1 -1
- package/lib/labs/VInfiniteScroll/index.d.ts +16 -1
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs +18 -17
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/labs/VSkeletonLoader/index.d.ts +9 -9
- package/lib/labs/components.d.ts +1011 -211
- package/lib/labs/date/date.mjs +7 -7
- package/lib/labs/date/date.mjs.map +1 -1
- package/lib/labs/date/index.d.ts +1 -3
- 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)]),
|
|
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" | "
|
|
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","
|
|
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";
|
|
13
|
-
import {
|
|
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
|