@vuetify/nightly 3.0.0-beta.3 → 3.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +43 -2
- package/dist/_component-variables.sass +61 -0
- package/dist/json/attributes.json +261 -205
- package/dist/json/importMap.json +175 -219
- package/dist/json/tags.json +74 -104
- package/dist/json/web-types.json +880 -835
- package/dist/vuetify.css +597 -407
- package/dist/vuetify.d.ts +6770 -2144
- package/dist/vuetify.esm.js +9075 -8454
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +9074 -8453
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +1078 -1040
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.mjs +4 -0
- package/lib/blueprints/index.mjs.map +1 -0
- package/lib/blueprints/md1.mjs +63 -0
- package/lib/blueprints/md1.mjs.map +1 -0
- package/lib/blueprints/md2.mjs +60 -0
- package/lib/blueprints/md2.mjs.map +1 -0
- package/lib/blueprints/md3.mjs +74 -0
- package/lib/blueprints/md3.mjs.map +1 -0
- package/lib/components/VAlert/VAlert.css +5 -5
- package/lib/components/VAlert/VAlert.mjs +8 -2
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +0 -2
- package/lib/components/VApp/VApp.css +2 -5
- package/lib/components/VApp/VApp.mjs +3 -4
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +11 -12
- package/lib/components/VApp/variables.scss +6 -0
- package/lib/components/VAppBar/VAppBar.mjs +4 -3
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +0 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +7 -12
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +4 -3
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/_variables.scss +2 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +54 -21
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +1 -2
- package/lib/components/VAvatar/_mixins.scss +0 -1
- package/lib/components/VBadge/VBadge.mjs +8 -7
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +0 -1
- package/lib/components/VBadge/_variables.scss +2 -2
- package/lib/components/VBanner/VBanner.css +7 -7
- package/lib/components/VBanner/VBanner.mjs +24 -17
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +6 -8
- package/lib/components/VBanner/VBannerActions.mjs +1 -1
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/index.mjs +0 -2
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +4 -11
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +4 -3
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +5 -13
- package/lib/components/VBottomNavigation/_variables.scss +7 -8
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +13 -6
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +30 -19
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +5 -8
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/_variables.scss +2 -1
- package/lib/components/VBtn/VBtn.css +72 -15
- package/lib/components/VBtn/VBtn.mjs +70 -27
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +70 -13
- package/lib/components/VBtn/_variables.scss +4 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +0 -1
- package/lib/components/VBtnGroup/_variables.scss +2 -0
- package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
- package/lib/components/VBtnToggle/_variables.scss +1 -0
- package/lib/components/VCard/VCard.css +86 -69
- package/lib/components/VCard/VCard.mjs +52 -66
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +74 -62
- package/lib/components/VCard/VCardActions.mjs +1 -1
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +88 -0
- package/lib/components/VCard/VCardItem.mjs.map +1 -0
- package/lib/components/VCard/_variables.scss +40 -24
- package/lib/components/VCard/index.mjs +1 -5
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +5 -4
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +0 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/_variables.scss +1 -0
- package/lib/components/VCheckbox/VCheckbox.mjs +13 -46
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.sass +0 -1
- package/lib/components/VCheckbox/VCheckboxBtn.mjs +67 -0
- package/lib/components/VCheckbox/VCheckboxBtn.mjs.map +1 -0
- package/lib/components/VCheckbox/index.mjs +1 -0
- package/lib/components/VCheckbox/index.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +142 -65
- package/lib/components/VChip/VChip.mjs +77 -38
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +6 -1
- package/lib/components/VChip/_mixins.scss +26 -6
- package/lib/components/VChip/_variables.scss +1 -5
- package/lib/components/VChipGroup/VChipGroup.mjs +5 -4
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.sass +1 -1
- package/lib/components/VChipGroup/_variables.scss +1 -1
- package/lib/components/VCode/VCode.sass +1 -2
- package/lib/components/VCode/_variables.scss +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs +16 -10
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
- package/lib/components/VColorPicker/_variables.scss +17 -10
- package/lib/components/VCombobox/VCombobox.mjs +52 -36
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +0 -2
- package/lib/components/VCounter/VCounter.mjs +16 -16
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +1 -2
- package/lib/components/VCounter/_variables.scss +2 -1
- package/lib/components/VDialog/VDialog.css +2 -5
- package/lib/components/VDialog/VDialog.mjs +25 -25
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +1 -5
- package/lib/components/VDialog/_variables.scss +0 -1
- package/lib/components/VDivider/VDivider.mjs +16 -17
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +0 -1
- package/lib/components/VDivider/_variables.scss +3 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +1 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +9 -4
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +7 -7
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/_variables.scss +15 -10
- package/lib/components/VField/VField.css +11 -11
- package/lib/components/VField/VField.mjs +19 -12
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +8 -10
- package/lib/components/VField/VFieldLabel.mjs +8 -9
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +3 -3
- package/lib/components/VFileInput/VFileInput.css +3 -3
- package/lib/components/VFileInput/VFileInput.mjs +12 -7
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +3 -4
- package/lib/components/VFooter/VFooter.mjs +4 -3
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +0 -1
- package/lib/components/VFooter/_variables.scss +2 -1
- package/lib/components/VForm/VForm.mjs +3 -3
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +4 -3
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +0 -8
- package/lib/components/VIcon/VIcon.mjs +20 -21
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +0 -9
- package/lib/components/VIcon/_variables.scss +2 -5
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +0 -1
- package/lib/components/VInput/VInput.mjs +13 -9
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +0 -1
- package/lib/components/VItemGroup/VItem.mjs +3 -0
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.sass +0 -1
- package/lib/components/VKbd/VKbd.sass +0 -1
- package/lib/components/VKbd/_variables.scss +1 -1
- package/lib/components/VLabel/VLabel.mjs +4 -3
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +0 -1
- package/lib/components/VLabel/_variables.scss +1 -0
- package/lib/components/VLazy/VLazy.mjs +5 -3
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VList/VList.css +2 -2
- package/lib/components/VList/VList.mjs +16 -18
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +1 -2
- package/lib/components/VList/VListChildren.mjs +7 -6
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +45 -31
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +84 -58
- package/lib/components/VList/VListItem.mjs +78 -45
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +68 -40
- package/lib/components/VList/VListItemAction.mjs +8 -9
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +4 -3
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +4 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +11 -5
- package/lib/components/VList/index.mjs +2 -5
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs +4 -3
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +0 -1
- package/lib/components/VMain/_variables.scss +1 -1
- package/lib/components/VMenu/VMenu.mjs +5 -5
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +0 -1
- package/lib/components/VMessages/VMessages.mjs +5 -3
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.sass +0 -1
- package/lib/components/VMessages/_variables.scss +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +10 -4
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/_variables.scss +2 -1
- package/lib/components/VNavigationDrawer/touch.mjs +5 -2
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.mjs +10 -8
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +0 -1
- package/lib/components/VOverlay/locationStrategies.mjs +267 -78
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +4 -3
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs +3 -3
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +41 -23
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +0 -1
- package/lib/components/VParallax/VParallax.mjs +5 -5
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs +6 -5
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
- package/lib/components/VProgressCircular/_variables.scss +2 -0
- package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VProgressLinear/_variables.scss +1 -0
- package/lib/components/VRadioGroup/VRadioGroup.mjs +6 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +5 -3
- package/lib/components/VRadioGroup/_variables.scss +3 -4
- package/lib/components/VRangeSlider/VRangeSlider.mjs +12 -13
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRating/VRating.mjs +6 -5
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -1
- package/lib/components/VResponsive/VResponsive.mjs +7 -6
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +61 -22
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +0 -2
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +12 -10
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSelectionControl/_variables.scss +1 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +3 -3
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +1 -6
- package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
- package/lib/components/VSheet/VSheet.mjs +3 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +0 -1
- package/lib/components/VSheet/_variables.scss +3 -2
- package/lib/components/VSlideGroup/VSlideGroup.mjs +47 -49
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +7 -3
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/_variables.scss +0 -5
- package/lib/components/VSlideGroup/index.mjs +2 -2
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.mjs +7 -9
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +0 -2
- package/lib/components/VSlider/VSliderThumb.mjs +6 -5
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.sass +0 -2
- package/lib/components/VSlider/VSliderTrack.mjs +11 -10
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +0 -2
- package/lib/components/VSlider/slider.mjs +4 -4
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +5 -5
- package/lib/components/VSnackbar/VSnackbar.mjs +49 -49
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +0 -1
- package/lib/components/VSnackbar/_variables.scss +2 -0
- package/lib/components/VSwitch/VSwitch.css +7 -0
- package/lib/components/VSwitch/VSwitch.mjs +8 -2
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +6 -1
- package/lib/components/VSwitch/_variables.scss +1 -0
- package/lib/components/VSystemBar/VSystemBar.mjs +5 -13
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -1
- package/lib/components/VSystemBar/_variables.scss +2 -1
- package/lib/components/VTable/VTable.css +1 -0
- package/lib/components/VTable/VTable.mjs +9 -8
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/VTable.sass +1 -1
- package/lib/components/VTable/_variables.scss +2 -0
- package/lib/components/VTabs/VTab.css +3 -1
- package/lib/components/VTabs/VTab.mjs +4 -4
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +4 -2
- package/lib/components/VTabs/VTabs.mjs +15 -12
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +0 -1
- package/lib/components/VTabs/_variables.scss +2 -0
- package/lib/components/VTextField/VTextField.mjs +25 -13
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +0 -1
- package/lib/components/VTextField/_variables.scss +1 -1
- package/lib/components/VTextarea/VTextarea.mjs +22 -12
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +0 -2
- package/lib/components/VTextarea/_variables.scss +1 -0
- package/lib/components/VTimeline/VTimeline.mjs +24 -25
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +3 -3
- package/lib/components/VTimeline/VTimelineDivider.mjs +41 -38
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +10 -11
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +11 -6
- package/lib/components/VToolbar/VToolbar.css +15 -6
- package/lib/components/VToolbar/VToolbar.mjs +9 -9
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +15 -7
- package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +6 -2
- package/lib/components/VTooltip/VTooltip.mjs +41 -39
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +0 -1
- package/lib/components/VTooltip/_variables.scss +1 -0
- package/lib/components/VWindow/VWindow.mjs +4 -4
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +0 -2
- package/lib/components/VWindow/VWindowItem.mjs +21 -11
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/_variables.scss +1 -0
- package/lib/components/index.d.ts +7316 -2666
- package/lib/components/transitions/dialog-transition.mjs +3 -0
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/index.mjs +0 -5
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/border.mjs +5 -6
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/display.mjs +13 -11
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/form.mjs +6 -6
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/items.mjs +2 -2
- package/lib/composables/items.mjs.map +1 -1
- package/lib/composables/location.mjs +4 -8
- package/lib/composables/location.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +2 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/size.mjs +2 -2
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs +3 -2
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +7 -7
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +15 -6
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +15 -8
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +7 -5
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.sass +0 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +29 -7
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +68 -70
- package/lib/styles/generic/_transitions.scss +13 -77
- package/lib/styles/main.css +44 -58
- package/lib/styles/tools/_variant.sass +6 -6
- package/lib/util/anchor.mjs +34 -28
- package/lib/util/anchor.mjs.map +1 -1
- package/lib/util/animation.mjs +2 -2
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +19 -0
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/helpers.mjs +21 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +16 -10
- package/lib/components/VBanner/VBannerAvatar.mjs +0 -20
- package/lib/components/VBanner/VBannerAvatar.mjs.map +0 -1
- package/lib/components/VBanner/VBannerIcon.mjs +0 -20
- package/lib/components/VBanner/VBannerIcon.mjs.map +0 -1
- package/lib/components/VBreadcrumbs/shared.mjs +0 -2
- package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
- package/lib/components/VCard/VCardAvatar.mjs +0 -3
- package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
- package/lib/components/VCard/VCardContent.mjs +0 -3
- package/lib/components/VCard/VCardContent.mjs.map +0 -1
- package/lib/components/VCard/VCardHeader.mjs +0 -3
- package/lib/components/VCard/VCardHeader.mjs.map +0 -1
- package/lib/components/VCard/VCardHeaderText.mjs +0 -3
- package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
- package/lib/components/VCard/VCardImg.mjs +0 -3
- package/lib/components/VCard/VCardImg.mjs.map +0 -1
- package/lib/components/VList/VListItemAvatar.mjs +0 -23
- package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
- package/lib/components/VList/VListItemHeader.mjs +0 -3
- package/lib/components/VList/VListItemHeader.mjs.map +0 -1
- package/lib/components/VList/VListItemIcon.mjs +0 -23
- package/lib/components/VList/VListItemIcon.mjs.map +0 -1
- package/lib/components/VTimeline/shared.mjs +0 -2
- package/lib/components/VTimeline/shared.mjs.map +0 -1
- package/lib/presets/default/index.mjs +0 -71
- package/lib/presets/default/index.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VChip.mjs","names":["VAvatar","VChipGroupSymbol","VExpandXTransition","VIcon","genOverlays","makeVariantProps","useVariant","makeBorderProps","useBorder","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useProxiedModel","IconValue","Ripple","defineComponent","VChip","name","directives","props","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","pill","prependAvatar","prependIcon","ripple","text","modelValue","tag","variant","emits","e","value","setup","attrs","emit","slots","isActive","themeClasses","borderClasses","colorClasses","colorStyles","variantClasses","elevationClasses","group","roundedClasses","sizeClasses","densityClasses","onCloseClick","Tag","isLink","hasAppend","append","hasClose","close","hasFilter","hasPrepend","prepend","hasColor","isSelected","isClickable","disabled","onClickFunc","toggle","undefined","selectedClass","href","size","select","onClick"],"sources":["../../../src/components/VChip/VChip.tsx"],"sourcesContent":["// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\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 { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VChip = defineComponent({\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: Boolean,\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 ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained-text' } as const),\n },\n\n emits: {\n 'click:close': (e: Event) => true,\n 'update:active': (value: Boolean) => true,\n 'update:modelValue': (value: Boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { elevationClasses } = useElevation(props)\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { densityClasses } = useDensity(props)\n const link = useLink(props, attrs)\n\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link)\n const onClickFunc = props.link ? props.link : group?.toggle\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,\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 ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable && props.ripple, null] }\n onClick={ isClickable && onClickFunc }\n >\n { genOverlays(isClickable, 'v-chip') }\n\n { hasFilter && (\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter\n ? slots.filter()\n : <VIcon icon={ props.filterIcon } />\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasPrepend && (\n <div class=\"v-chip__prepend\">\n { slots.prepend\n ? slots.prepend()\n : (\n <VAvatar\n icon={ props.prependIcon }\n image={ props.prependAvatar }\n size={ props.size }\n />\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 class=\"v-chip__append\">\n { slots.append\n ? slots.append()\n : (\n <VAvatar\n icon={ props.appendIcon }\n image={ props.appendAvatar }\n size={ props.size }\n />\n )\n }\n </div>\n ) }\n\n { hasClose && (\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close\n ? slots.close({ props: { onClick: onCloseClick } })\n : (\n <VIcon\n icon={ props.closeIcon }\n size=\"x-small\"\n />\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","makeBorderProps","useBorder","makeDensityProps","useDensity","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeRoundedProps","useRounded","makeRouterProps","useLink","makeSizeProps","useSize","makeTagProps","makeThemeProps","provideTheme","useProxiedModel","IconValue","Ripple","defineComponent","VChip","name","directives","props","activeClass","String","appendAvatar","appendIcon","closable","Boolean","closeIcon","type","default","closeLabel","draggable","filter","filterIcon","label","link","pill","prependAvatar","prependIcon","ripple","text","modelValue","tag","variant","emits","e","value","val","setup","attrs","emit","slots","borderClasses","colorClasses","colorStyles","variantClasses","densityClasses","elevationClasses","roundedClasses","sizeClasses","themeClasses","isActive","group","onCloseClick","Tag","isLink","hasAppend","append","hasClose","close","hasFilter","hasPrepend","prepend","hasColor","isSelected","isClickable","disabled","onClickFunc","toggle","undefined","selectedClass","href","icon","image","select","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 { makeBorderProps, useBorder } from '@/composables/border'\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 { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VChip = defineComponent({\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: Boolean,\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 ...makeBorderProps(),\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: Event) => true,\n 'update:active': (value: boolean) => true,\n 'update:modelValue': (value: boolean) => true,\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\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\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link)\n const onClickFunc = props.link ? props.link : group?.toggle\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,\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 ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable && props.ripple, null] }\n onClick={ isClickable && onClickFunc }\n >\n { genOverlays(isClickable, 'v-chip') }\n\n { hasFilter && (\n <VDefaultsProvider\n key=\"filter\"\n defaults={{\n VIcon: { icon: props.filterIcon },\n }}\n >\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter ? slots.filter() : (<VIcon />) }\n </div>\n </VExpandXTransition>\n </VDefaultsProvider>\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n key=\"prepend\"\n defaults={{\n VAvatar: {\n image: props.prependAvatar,\n },\n VIcon: {\n icon: props.prependIcon,\n },\n }}\n >\n { slots.prepend\n ? (\n <div class=\"v-chip__prepend\">\n { slots.prepend() }\n </div>\n )\n : props.prependAvatar ? (<VAvatar start />)\n : props.prependIcon ? (<VIcon start />)\n : undefined\n }\n </VDefaultsProvider>\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 <VDefaultsProvider\n key=\"append\"\n defaults={{\n VAvatar: {\n image: props.appendAvatar,\n },\n VIcon: {\n icon: props.appendIcon,\n },\n }}\n >\n { slots.append\n ? (\n <div class=\"v-chip__append\">\n { slots.append() }\n </div>\n )\n : props.appendAvatar ? (<VAvatar end />)\n : props.appendIcon ? (<VIcon end />)\n : undefined\n }\n </VDefaultsProvider>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n key=\"close\"\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'x-small',\n },\n }}\n >\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close ? slots.close() : (<VIcon />) }\n </div>\n </VDefaultsProvider>\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
@forward './variables'
|
|
2
1
|
@use '../../styles/tools'
|
|
3
2
|
@use './variables' as *
|
|
4
3
|
@use './mixins' as *
|
|
@@ -29,6 +28,9 @@
|
|
|
29
28
|
&--link
|
|
30
29
|
cursor: pointer
|
|
31
30
|
|
|
31
|
+
&--filter
|
|
32
|
+
user-select: none
|
|
33
|
+
|
|
32
34
|
&--label
|
|
33
35
|
@include tools.rounded($chip-label-border-radius)
|
|
34
36
|
|
|
@@ -51,6 +53,9 @@
|
|
|
51
53
|
.v-icon
|
|
52
54
|
font-size: inherit
|
|
53
55
|
|
|
56
|
+
.v-chip__filter
|
|
57
|
+
transition: $chip-filter-transition
|
|
58
|
+
|
|
54
59
|
.v-chip__overlay
|
|
55
60
|
@include tools.absolute()
|
|
56
61
|
background-color: currentColor
|
|
@@ -11,24 +11,35 @@
|
|
|
11
11
|
$height: map.get($chip-sizes, "height") + (6 * $multiplier);
|
|
12
12
|
$padding: math.round(math.div($height, $chip-padding-ratio));
|
|
13
13
|
|
|
14
|
-
.v-chip--size-#{$sizeName} {
|
|
14
|
+
.v-chip.v-chip--size-#{$sizeName} {
|
|
15
15
|
--v-chip-size: #{$size};
|
|
16
16
|
--v-chip-height: #{$height};
|
|
17
17
|
font-size: $size;
|
|
18
18
|
padding: 0 $padding;
|
|
19
19
|
|
|
20
20
|
.v-avatar {
|
|
21
|
-
--v-avatar-height: #{$height -
|
|
21
|
+
--v-avatar-height: #{$height - 6};
|
|
22
22
|
|
|
23
23
|
@at-root #{selector.append('.v-chip--pill', &)} {
|
|
24
24
|
--v-avatar-height: #{$height};
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
+
.v-chip__filter,
|
|
28
29
|
.v-chip__prepend,
|
|
29
|
-
.v-
|
|
30
|
-
|
|
30
|
+
> .v-avatar--start,
|
|
31
|
+
> .v-icon--start {
|
|
31
32
|
margin-inline-end: $padding * .5;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.v-chip__filter,
|
|
36
|
+
.v-chip__prepend,
|
|
37
|
+
.v-icon--start {
|
|
38
|
+
margin-inline-start: -$padding * .5;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.v-avatar--start {
|
|
42
|
+
margin-inline-start: -$padding * .7;
|
|
32
43
|
|
|
33
44
|
@at-root #{selector.append('.v-chip--pill', &)} {
|
|
34
45
|
margin-inline-start: -$padding;
|
|
@@ -36,12 +47,21 @@
|
|
|
36
47
|
}
|
|
37
48
|
|
|
38
49
|
.v-chip__append,
|
|
39
|
-
.v-chip__close
|
|
40
|
-
|
|
50
|
+
.v-chip__close,
|
|
51
|
+
> .v-avatar--end,
|
|
52
|
+
> .v-icon--end {
|
|
41
53
|
margin-inline-start: $padding * .5;
|
|
54
|
+
margin-inline-end: -$padding * .5;
|
|
55
|
+
}
|
|
42
56
|
|
|
57
|
+
.v-avatar--end,
|
|
58
|
+
.v-icon--end {
|
|
43
59
|
@at-root #{selector.append('.v-chip--pill', &)} {
|
|
44
60
|
margin-inline-end: -$padding;
|
|
61
|
+
|
|
62
|
+
+ .v-chip__close {
|
|
63
|
+
margin-inline-start: $padding;
|
|
64
|
+
}
|
|
45
65
|
}
|
|
46
66
|
}
|
|
47
67
|
}
|
|
@@ -4,16 +4,12 @@
|
|
|
4
4
|
@use '../../styles/tools';
|
|
5
5
|
|
|
6
6
|
// Defaults
|
|
7
|
-
$chip-append-margin-inline-end: 0 !default;
|
|
8
|
-
$chip-append-margin-inline-start: 8px !default;
|
|
9
7
|
$chip-background: rgb(var(--v-theme-surface-variant)) !default;
|
|
10
8
|
$chip-border-color: settings.$border-color-root !default;
|
|
11
9
|
$chip-border-radius: map.get(settings.$rounded, "pill") !default;
|
|
12
10
|
$chip-border-style: settings.$border-style-root !default;
|
|
13
11
|
$chip-border-thin-width: thin !default;
|
|
14
12
|
$chip-border-width: 0 !default;
|
|
15
|
-
$chip-close-margin-inline-end: -4px !default;
|
|
16
|
-
$chip-close-margin-inline-start: 8px !default;
|
|
17
13
|
$chip-close-size: 18px !default;
|
|
18
14
|
$chip-color: rgb(var(--v-theme-on-surface-variant)) !default;
|
|
19
15
|
$chip-density: ("default": 0, "comfortable": -2, "compact": -3) !default;
|
|
@@ -28,7 +24,7 @@ $chip-max-width: 100% !default;
|
|
|
28
24
|
$chip-overflow: hidden !default;
|
|
29
25
|
$chip-padding-ratio: 2 + math.div(2, 3) !default;
|
|
30
26
|
$chip-plain-opacity: 0.26 !default;
|
|
31
|
-
$chip-
|
|
27
|
+
$chip-filter-transition: .15s settings.$standard-easing !default;
|
|
32
28
|
$chip-white-space: nowrap !default;
|
|
33
29
|
|
|
34
30
|
$chip-sizes: (
|
|
@@ -8,7 +8,7 @@ import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
|
8
8
|
import { makeVariantProps } from "../../composables/variant.mjs";
|
|
9
9
|
import { provideDefaults } from "../../composables/defaults.mjs"; // Utilities
|
|
10
10
|
|
|
11
|
-
import { deepEqual, defineComponent } from "../../util/index.mjs";
|
|
11
|
+
import { deepEqual, defineComponent, useRender } from "../../util/index.mjs";
|
|
12
12
|
import { toRef } from 'vue'; // Types
|
|
13
13
|
|
|
14
14
|
export const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group');
|
|
@@ -27,7 +27,7 @@ export const VChipGroup = defineComponent({
|
|
|
27
27
|
...makeTagProps(),
|
|
28
28
|
...makeThemeProps(),
|
|
29
29
|
...makeVariantProps({
|
|
30
|
-
variant: '
|
|
30
|
+
variant: 'tonal'
|
|
31
31
|
})
|
|
32
32
|
},
|
|
33
33
|
emits: {
|
|
@@ -55,7 +55,7 @@ export const VChipGroup = defineComponent({
|
|
|
55
55
|
variant: toRef(props, 'variant')
|
|
56
56
|
}
|
|
57
57
|
});
|
|
58
|
-
|
|
58
|
+
useRender(() => {
|
|
59
59
|
var _slots$default;
|
|
60
60
|
|
|
61
61
|
return _createVNode(props.tag, {
|
|
@@ -71,7 +71,8 @@ export const VChipGroup = defineComponent({
|
|
|
71
71
|
selected: selected.value
|
|
72
72
|
})]
|
|
73
73
|
});
|
|
74
|
-
};
|
|
74
|
+
});
|
|
75
|
+
return {};
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VChipGroup.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","deepEqual","defineComponent","toRef","VChipGroupSymbol","Symbol","for","VChipGroup","name","props","column","Boolean","filter","valueComparator","type","Function","default","selectedClass","variant","emits","value","setup","slots","themeClasses","isSelected","select","next","prev","selected","VChip","color"],"sources":["../../../src/components/VChipGroup/VChipGroup.tsx"],"sourcesContent":["// Styles\nimport './VChipGroup.sass'\n\n// Composables\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, defineComponent } 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 = defineComponent({\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 ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: '
|
|
1
|
+
{"version":3,"file":"VChipGroup.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","makeVariantProps","provideDefaults","deepEqual","defineComponent","useRender","toRef","VChipGroupSymbol","Symbol","for","VChipGroup","name","props","column","Boolean","filter","valueComparator","type","Function","default","selectedClass","variant","emits","value","setup","slots","themeClasses","isSelected","select","next","prev","selected","VChip","color"],"sources":["../../../src/components/VChipGroup/VChipGroup.tsx"],"sourcesContent":["// Styles\nimport './VChipGroup.sass'\n\n// Composables\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, defineComponent, 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 = defineComponent({\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 ...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 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 ]}\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,0B,CAEA;;SACSA,c,EAAgBC,Q;SAChBC,Y;SACAC,c,EAAgBC,Y;SAChBC,gB;SACAC,e,0CAET;;SACSC,S,EAAWC,e,EAAiBC,S;AACrC,SAASC,KAAT,QAAsB,KAAtB,C,CAEA;;AAGA,OAAO,MAAMC,gBAAgB,GAAGC,MAAM,CAACC,GAAP,CAAW,sBAAX,CAAzB;AAEP,OAAO,MAAMC,UAAU,GAAGN,eAAe,CAAC;EACxCO,IAAI,EAAE,YADkC;EAGxCC,KAAK,EAAE;IACLC,MAAM,EAAEC,OADH;IAELC,MAAM,EAAED,OAFH;IAGLE,eAAe,EAAE;MACfC,IAAI,EAAEC,QADS;MAEfC,OAAO,EAAEhB;IAFM,CAHZ;IAQL,GAAGP,cAAc,CAAC;MAAEwB,aAAa,EAAE;IAAjB,CAAD,CARZ;IASL,GAAGtB,YAAY,EATV;IAUL,GAAGC,cAAc,EAVZ;IAWL,GAAGE,gBAAgB,CAAC;MAAEoB,OAAO,EAAE;IAAX,CAAD;EAXd,CAHiC;EAiBxCC,KAAK,EAAE;IACL,qBAAsBC,KAAD,IAAgB;EADhC,CAjBiC;;EAqBxCC,KAAK,CAAEZ,KAAF,QAAoB;IAAA,IAAX;MAAEa;IAAF,CAAW;IACvB,MAAM;MAAEC;IAAF,IAAmB1B,YAAY,CAACY,KAAD,CAArC;IACA,MAAM;MAAEe,UAAF;MAAcC,MAAd;MAAsBC,IAAtB;MAA4BC,IAA5B;MAAkCC;IAAlC,IAA+ClC,QAAQ,CAACe,KAAD,EAAQL,gBAAR,CAA7D;IAEAL,eAAe,CAAC;MACd8B,KAAK,EAAE;QACLC,KAAK,EAAE3B,KAAK,CAACM,KAAD,EAAQ,OAAR,CADP;QAELG,MAAM,EAAET,KAAK,CAACM,KAAD,EAAQ,QAAR,CAFR;QAGLS,OAAO,EAAEf,KAAK,CAACM,KAAD,EAAQ,SAAR;MAHT;IADO,CAAD,CAAf;IAQAP,SAAS,CAAC;MAAA;;MAAA;QAAA,SAEC,CACL,cADK,EAEL;UACE,wBAAwBO,KAAK,CAACC;QADhC,CAFK,EAKLa,YAAY,CAACH,KALR;MAFD;QAAA,kCAUJE,KAAK,CAACN,OAVF,qBAUJ,oBAAAM,KAAK,EAAW;UAChBE,UADgB;UAEhBC,MAFgB;UAGhBC,IAHgB;UAIhBC,IAJgB;UAKhBC,QAAQ,EAAEA,QAAQ,CAACR;QALH,CAAX,CAVD;MAAA;IAAA,CAAD,CAAT;IAoBA,OAAO,EAAP;EACD;;AAtDuC,CAAD,CAAlC"}
|
|
@@ -2,20 +2,20 @@ import { createVNode as _createVNode } from "vue";
|
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VColorPicker.css"; // Components
|
|
4
4
|
|
|
5
|
-
import { VSheet } from "../VSheet/index.mjs";
|
|
6
|
-
import { VColorPickerPreview } from "./VColorPickerPreview.mjs";
|
|
7
5
|
import { VColorPickerCanvas } from "./VColorPickerCanvas.mjs";
|
|
8
6
|
import { VColorPickerEdit } from "./VColorPickerEdit.mjs";
|
|
9
|
-
import {
|
|
7
|
+
import { VColorPickerPreview } from "./VColorPickerPreview.mjs";
|
|
8
|
+
import { VColorPickerSwatches } from "./VColorPickerSwatches.mjs";
|
|
9
|
+
import { VSheet } from "../VSheet/index.mjs"; // Composables
|
|
10
10
|
|
|
11
|
-
import { useProxiedModel } from "../../composables/proxiedModel.mjs";
|
|
12
11
|
import { makeElevationProps } from "../../composables/elevation.mjs";
|
|
13
12
|
import { makeRoundedProps } from "../../composables/rounded.mjs";
|
|
14
|
-
import { makeThemeProps } from "../../composables/theme.mjs";
|
|
13
|
+
import { makeThemeProps } from "../../composables/theme.mjs";
|
|
14
|
+
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
15
15
|
|
|
16
|
-
import {
|
|
17
|
-
import {
|
|
18
|
-
import {
|
|
16
|
+
import { defineComponent, HSVAtoCSS, useRender } from "../../util/index.mjs";
|
|
17
|
+
import { extractColor, modes, nullColor, parseColor } from "./util/index.mjs";
|
|
18
|
+
import { onMounted, ref } from 'vue'; // Types
|
|
19
19
|
|
|
20
20
|
export const VColorPicker = defineComponent({
|
|
21
21
|
name: 'VColorPicker',
|
|
@@ -93,7 +93,7 @@ export const VColorPicker = defineComponent({
|
|
|
93
93
|
onMounted(() => {
|
|
94
94
|
if (!props.modes.includes(mode.value)) mode.value = props.modes[0];
|
|
95
95
|
});
|
|
96
|
-
|
|
96
|
+
useRender(() => {
|
|
97
97
|
var _currentColor$value;
|
|
98
98
|
|
|
99
99
|
return _createVNode(VSheet, {
|
|
@@ -109,6 +109,7 @@ export const VColorPicker = defineComponent({
|
|
|
109
109
|
"maxWidth": props.width
|
|
110
110
|
}, {
|
|
111
111
|
default: () => [!props.hideCanvas && _createVNode(VColorPickerCanvas, {
|
|
112
|
+
"key": "canvas",
|
|
112
113
|
"color": currentColor.value,
|
|
113
114
|
"onUpdate:color": updateColor,
|
|
114
115
|
"disabled": props.disabled,
|
|
@@ -116,13 +117,16 @@ export const VColorPicker = defineComponent({
|
|
|
116
117
|
"width": props.width,
|
|
117
118
|
"height": props.canvasHeight
|
|
118
119
|
}, null), (!props.hideSliders || !props.hideInputs) && _createVNode("div", {
|
|
120
|
+
"key": "controls",
|
|
119
121
|
"class": "v-color-picker__controls"
|
|
120
122
|
}, [!props.hideSliders && _createVNode(VColorPickerPreview, {
|
|
123
|
+
"key": "preview",
|
|
121
124
|
"color": currentColor.value,
|
|
122
125
|
"onUpdate:color": updateColor,
|
|
123
126
|
"hideAlpha": !mode.value.endsWith('a'),
|
|
124
127
|
"disabled": props.disabled
|
|
125
128
|
}, null), !props.hideInputs && _createVNode(VColorPickerEdit, {
|
|
129
|
+
"key": "edit",
|
|
126
130
|
"modes": props.modes,
|
|
127
131
|
"mode": mode.value,
|
|
128
132
|
"onUpdate:mode": m => mode.value = m,
|
|
@@ -130,6 +134,7 @@ export const VColorPicker = defineComponent({
|
|
|
130
134
|
"onUpdate:color": updateColor,
|
|
131
135
|
"disabled": props.disabled
|
|
132
136
|
}, null)]), props.showSwatches && _createVNode(VColorPickerSwatches, {
|
|
137
|
+
"key": "swatches",
|
|
133
138
|
"color": currentColor.value,
|
|
134
139
|
"onUpdate:color": updateColor,
|
|
135
140
|
"maxHeight": props.swatchesMaxHeight,
|
|
@@ -137,7 +142,8 @@ export const VColorPicker = defineComponent({
|
|
|
137
142
|
"disabled": props.disabled
|
|
138
143
|
}, null)]
|
|
139
144
|
});
|
|
140
|
-
};
|
|
145
|
+
});
|
|
146
|
+
return {};
|
|
141
147
|
}
|
|
142
148
|
|
|
143
149
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VColorPicker.mjs","names":["
|
|
1
|
+
{"version":3,"file":"VColorPicker.mjs","names":["VColorPickerCanvas","VColorPickerEdit","VColorPickerPreview","VColorPickerSwatches","VSheet","makeElevationProps","makeRoundedProps","makeThemeProps","useProxiedModel","defineComponent","HSVAtoCSS","useRender","extractColor","modes","nullColor","parseColor","onMounted","ref","VColorPicker","name","inheritAttrs","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","rounded","elevation","theme","a","endsWith"],"sources":["../../../src/components/VColorPicker/VColorPicker.tsx"],"sourcesContent":["// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\nimport { VSheet } from '@/components/VSheet'\n\n// Composables\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent, HSVAtoCSS, 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 { HSVA } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n inheritAttrs: false,\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 width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\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<HSVA | 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: HSVA) => {\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 useRender(() => (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n ]}\n style={{\n '--v-color-picker-color-hsv': HSVAtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\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 return {}\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n"],"mappings":"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"}
|
|
@@ -2,8 +2,8 @@ import { createVNode as _createVNode } from "vue";
|
|
|
2
2
|
// Styles
|
|
3
3
|
import "./VColorPickerCanvas.css"; // Utilities
|
|
4
4
|
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from "../../util/index.mjs";
|
|
6
|
+
import { computed, onMounted, ref, watch } from 'vue'; // Types
|
|
7
7
|
|
|
8
8
|
export const VColorPickerCanvas = defineComponent({
|
|
9
9
|
name: 'VColorPickerCanvas',
|
|
@@ -168,7 +168,7 @@ export const VColorPickerCanvas = defineComponent({
|
|
|
168
168
|
immediate: true
|
|
169
169
|
});
|
|
170
170
|
onMounted(() => updateCanvas());
|
|
171
|
-
|
|
171
|
+
useRender(() => _createVNode("div", {
|
|
172
172
|
"class": "v-color-picker-canvas",
|
|
173
173
|
"style": {
|
|
174
174
|
width: convertToUnit(props.width),
|
|
@@ -186,7 +186,8 @@ export const VColorPickerCanvas = defineComponent({
|
|
|
186
186
|
'v-color-picker-canvas__dot--disabled': props.disabled
|
|
187
187
|
}],
|
|
188
188
|
"style": dotStyles.value
|
|
189
|
-
}, null)]);
|
|
189
|
+
}, null)]));
|
|
190
|
+
return {};
|
|
190
191
|
}
|
|
191
192
|
|
|
192
193
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VColorPickerCanvas.mjs","names":["computed","onMounted","ref","watch","clamp","convertToUnit","defineComponent","getEventCoordinates","VColorPickerCanvas","name","props","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","emits","hue","setup","emit","isInteracting","isOutsideUpdate","dotPosition","x","y","dotStyles","value","radius","parseInt","transform","canvasRef","updateDotPosition","rect","left","top","handleClick","e","clientX","clientY","getBoundingClientRect","handleMouseDown","preventDefault","window","addEventListener","handleMouseMove","handleMouseUp","coords","removeEventListener","h","s","v","a","updateCanvas","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","immediate","deep"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: {\n color: {\n type: Object as PropType<HSVA | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = ref(false)\n const isOutsideUpdate = ref(false)\n const dotPosition = ref({ x: 0, y: 0 })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const canvasRef = ref<HTMLCanvasElement | null>()\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleClick (e: MouseEvent) {\n if (props.disabled || !canvasRef.value) return\n\n updateDotPosition(e.clientX, e.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (props.disabled) return\n\n isInteracting.value = true\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n watch(dotPosition, () => {\n if (isOutsideUpdate.value) {\n isOutsideUpdate.value = false\n return\n }\n\n if (!canvasRef.value) return\n\n const { width, height } = canvasRef.value.getBoundingClientRect()\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, width) / width,\n v: 1 - clamp(y, 0, height) / height,\n a: props.color?.a ?? 1,\n })\n })\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n if (!props.color) return\n\n isOutsideUpdate.value = true\n\n dotPosition.value = {\n x: props.color.s * parseInt(props.width, 10),\n y: (1 - props.color.v) * parseInt(props.height, 10),\n }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n return () => (\n <div\n class=\"v-color-picker-canvas\"\n style={{\n width: convertToUnit(props.width),\n height: convertToUnit(props.height),\n }}\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ props.width }\n height={ props.height }\n />\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n </div>\n )\n },\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VColorPickerCanvas.mjs","names":["clamp","convertToUnit","defineComponent","getEventCoordinates","useRender","computed","onMounted","ref","watch","VColorPickerCanvas","name","props","color","type","Object","disabled","Boolean","dotSize","Number","String","default","height","width","emits","hue","setup","emit","isInteracting","isOutsideUpdate","dotPosition","x","y","dotStyles","value","radius","parseInt","transform","canvasRef","updateDotPosition","rect","left","top","handleClick","e","clientX","clientY","getBoundingClientRect","handleMouseDown","preventDefault","window","addEventListener","handleMouseMove","handleMouseUp","coords","removeEventListener","h","s","v","a","updateCanvas","canvas","ctx","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","immediate","deep"],"sources":["../../../src/components/VColorPicker/VColorPickerCanvas.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerCanvas.sass'\n\n// Utilities\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates, useRender } from '@/util'\nimport { computed, onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { HSVA } from '@/util'\nimport type { PropType } from 'vue'\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: {\n color: {\n type: Object as PropType<HSVA | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = ref(false)\n const isOutsideUpdate = ref(false)\n const dotPosition = ref({ x: 0, y: 0 })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const canvasRef = ref<HTMLCanvasElement | null>()\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleClick (e: MouseEvent) {\n if (props.disabled || !canvasRef.value) return\n\n updateDotPosition(e.clientX, e.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (props.disabled) return\n\n isInteracting.value = true\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n watch(dotPosition, () => {\n if (isOutsideUpdate.value) {\n isOutsideUpdate.value = false\n return\n }\n\n if (!canvasRef.value) return\n\n const { width, height } = canvasRef.value.getBoundingClientRect()\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, width) / width,\n v: 1 - clamp(y, 0, height) / height,\n a: props.color?.a ?? 1,\n })\n })\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n if (!props.color) return\n\n isOutsideUpdate.value = true\n\n dotPosition.value = {\n x: props.color.s * parseInt(props.width, 10),\n y: (1 - props.color.v) * parseInt(props.height, 10),\n }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n useRender(() => (\n <div\n class=\"v-color-picker-canvas\"\n style={{\n width: convertToUnit(props.width),\n height: convertToUnit(props.height),\n }}\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ props.width }\n height={ props.height }\n />\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n </div>\n ))\n\n return {}\n },\n})\n"],"mappings":"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"}
|
|
@@ -5,7 +5,7 @@ import "./VColorPickerEdit.css"; // Components
|
|
|
5
5
|
import { VBtn } from "../VBtn/index.mjs"; // Utilities
|
|
6
6
|
|
|
7
7
|
import { computed } from 'vue';
|
|
8
|
-
import { defineComponent } from "../../util/index.mjs";
|
|
8
|
+
import { defineComponent, useRender } from "../../util/index.mjs";
|
|
9
9
|
import { modes } from "./util/index.mjs"; // Types
|
|
10
10
|
|
|
11
11
|
const VColorPickerInput = _ref => {
|
|
@@ -72,7 +72,7 @@ export const VColorPickerEdit = defineComponent({
|
|
|
72
72
|
};
|
|
73
73
|
});
|
|
74
74
|
});
|
|
75
|
-
|
|
75
|
+
useRender(() => {
|
|
76
76
|
var _inputs$value;
|
|
77
77
|
|
|
78
78
|
return _createVNode("div", {
|
|
@@ -86,7 +86,8 @@ export const VColorPickerEdit = defineComponent({
|
|
|
86
86
|
emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name);
|
|
87
87
|
}
|
|
88
88
|
}, null)]);
|
|
89
|
-
};
|
|
89
|
+
});
|
|
90
|
+
return {};
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VColorPickerEdit.mjs","names":["VBtn","computed","defineComponent","modes","VColorPickerInput","label","rest","VColorPickerEdit","name","props","color","Object","disabled","Boolean","mode","type","String","default","validator","v","keys","includes","Array","isArray","every","m","emits","setup","emit","enabledModes","map","key","inputs","value","find","to","getValue","getColor","inputProps","onChange","e","target","from","length","mi","findIndex"],"sources":["../../../src/components/VColorPicker/VColorPickerEdit.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\nimport { modes } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n <div\n class=\"v-color-picker-edit__input\"\n >\n <input {...rest} />\n <span>{ label }</span>\n </div>\n )\n}\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: {\n color: Object as PropType<HSVA | null>,\n disabled: 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 },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : {}\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color, target.value)))\n },\n }\n })\n })\n\n
|
|
1
|
+
{"version":3,"file":"VColorPickerEdit.mjs","names":["VBtn","computed","defineComponent","useRender","modes","VColorPickerInput","label","rest","VColorPickerEdit","name","props","color","Object","disabled","Boolean","mode","type","String","default","validator","v","keys","includes","Array","isArray","every","m","emits","setup","emit","enabledModes","map","key","inputs","value","find","to","getValue","getColor","inputProps","onChange","e","target","from","length","mi","findIndex"],"sources":["../../../src/components/VColorPicker/VColorPickerEdit.tsx"],"sourcesContent":["// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { modes } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n <div\n class=\"v-color-picker-edit__input\"\n >\n <input {...rest} />\n <span>{ label }</span>\n </div>\n )\n}\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: {\n color: Object as PropType<HSVA | null>,\n disabled: 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 },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : {}\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color, target.value)))\n },\n }\n })\n })\n\n useRender(() => (\n <div\n class=\"v-color-picker-edit\"\n >\n { inputs.value?.map(props => (\n <VColorPickerInput {...props} />\n )) }\n { enabledModes.value.length > 1 && (\n <VBtn\n icon=\"$unfold\"\n size=\"x-small\"\n variant=\"plain\"\n onClick={ () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode)\n\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name)\n } }\n />\n ) }\n </div>\n ))\n\n return {}\n },\n})\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import "./VColorPickerPreview.css"; // Components
|
|
|
4
4
|
|
|
5
5
|
import { VSlider } from "../VSlider/index.mjs"; // Utilities
|
|
6
6
|
|
|
7
|
-
import { defineComponent, HSVAtoCSS } from "../../util/index.mjs";
|
|
7
|
+
import { defineComponent, HSVAtoCSS, useRender } from "../../util/index.mjs";
|
|
8
8
|
import { nullColor } from "./util/index.mjs"; // Types
|
|
9
9
|
|
|
10
10
|
export const VColorPickerPreview = defineComponent({
|
|
@@ -24,7 +24,7 @@ export const VColorPickerPreview = defineComponent({
|
|
|
24
24
|
let {
|
|
25
25
|
emit
|
|
26
26
|
} = _ref;
|
|
27
|
-
|
|
27
|
+
useRender(() => {
|
|
28
28
|
var _props$color, _props$color2, _props$color4;
|
|
29
29
|
|
|
30
30
|
return _createVNode("div", {
|
|
@@ -76,7 +76,8 @@ export const VColorPickerPreview = defineComponent({
|
|
|
76
76
|
"trackFillColor": "white",
|
|
77
77
|
"hideDetails": true
|
|
78
78
|
}, null)])]);
|
|
79
|
-
};
|
|
79
|
+
});
|
|
80
|
+
return {};
|
|
80
81
|
}
|
|
81
82
|
|
|
82
83
|
});
|