@vuetify/nightly 3.0.0-beta.4 → 3.0.0-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -24
- package/dist/json/attributes.json +187 -203
- package/dist/json/importMap.json +99 -147
- package/dist/json/tags.json +49 -102
- package/dist/json/web-types.json +761 -949
- package/dist/vuetify.css +13059 -13058
- package/dist/vuetify.d.ts +1663 -5104
- package/dist/vuetify.esm.js +8655 -7971
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +8654 -7969
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +1115 -1077
- 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 +0 -3
- package/lib/components/VAlert/VAlert.mjs +27 -11
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +0 -3
- 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/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.css +10 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +11 -8
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +10 -0
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VAvatar/VAvatar.css +2 -0
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +3 -0
- package/lib/components/VBadge/VBadge.mjs +8 -7
- package/lib/components/VBadge/VBadge.mjs.map +1 -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 -7
- 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 -12
- 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 -3
- 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 +77 -13
- package/lib/components/VBtn/VBtn.mjs +63 -29
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +86 -14
- package/lib/components/VBtn/_variables.scss +8 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +1 -0
- package/lib/components/VBtnGroup/_variables.scss +2 -0
- package/lib/components/VBtnToggle/_variables.scss +1 -0
- package/lib/components/VCard/VCard.css +81 -64
- package/lib/components/VCard/VCard.mjs +62 -71
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +74 -61
- 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/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/_variables.scss +1 -0
- package/lib/components/VChip/VChip.css +137 -60
- package/lib/components/VChip/VChip.mjs +76 -37
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +6 -0
- package/lib/components/VChip/_mixins.scss +26 -6
- package/lib/components/VChip/_variables.scss +1 -5
- package/lib/components/VChipGroup/VChipGroup.mjs +4 -3
- 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/VColorPicker/VColorPicker.mjs +16 -10
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +5 -4
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +4 -3
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/_variables.scss +17 -10
- package/lib/components/VCombobox/VCombobox.css +10 -0
- package/lib/components/VCombobox/VCombobox.mjs +15 -17
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +10 -0
- package/lib/components/VCombobox/_variables.scss +1 -0
- package/lib/components/VCounter/VCounter.mjs +16 -16
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +1 -1
- package/lib/components/VCounter/_variables.scss +2 -1
- package/lib/components/VDialog/VDialog.css +2 -5
- package/lib/components/VDialog/VDialog.mjs +26 -26
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +1 -4
- 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/_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 -0
- 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 +43 -24
- package/lib/components/VField/VField.mjs +18 -11
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +32 -18
- package/lib/components/VField/VFieldLabel.mjs +8 -9
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +3 -2
- package/lib/components/VFileInput/VFileInput.css +3 -3
- package/lib/components/VFileInput/VFileInput.mjs +14 -9
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +3 -3
- package/lib/components/VFooter/VFooter.mjs +4 -3
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/_variables.scss +2 -1
- package/lib/components/VForm/VForm.mjs +4 -4
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs +2 -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 +8 -3
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +0 -18
- package/lib/components/VIcon/VIcon.mjs +20 -21
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +0 -18
- package/lib/components/VIcon/_variables.scss +2 -6
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs +1 -0
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +2 -1
- package/lib/components/VInput/VInput.mjs +10 -6
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +2 -1
- package/lib/components/VInput/_variables.scss +0 -1
- package/lib/components/VItemGroup/VItem.mjs +3 -0
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs +4 -3
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/_variables.scss +1 -0
- package/lib/components/VLayout/VLayout.css +0 -2
- package/lib/components/VLayout/VLayout.sass +0 -2
- package/lib/components/VLazy/VLazy.mjs +5 -3
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VList/VList.css +6 -3
- package/lib/components/VList/VList.mjs +15 -17
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +6 -2
- package/lib/components/VList/VListChildren.mjs +25 -7
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +47 -42
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +78 -52
- package/lib/components/VList/VListItem.mjs +94 -54
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +67 -38
- 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 +12 -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.css +21 -3
- package/lib/components/VMain/VMain.mjs +17 -11
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +18 -3
- package/lib/components/VMain/_variables.scss +1 -1
- package/lib/components/VMenu/VMenu.mjs +6 -6
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.mjs +5 -3
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/_variables.scss +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +12 -17
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +54 -19
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +15 -20
- package/lib/components/VNavigationDrawer/_variables.scss +3 -2
- package/lib/components/VNavigationDrawer/sticky.mjs +72 -0
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
- 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 +18 -14
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +267 -78
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +5 -4
- 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 +42 -24
- package/lib/components/VPagination/VPagination.mjs.map +1 -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/_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/_variables.scss +1 -0
- package/lib/components/VRadio/VRadio.mjs +8 -17
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +22 -5
- 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 -0
- package/lib/components/VResponsive/VResponsive.mjs +7 -6
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +10 -0
- package/lib/components/VSelect/VSelect.mjs +14 -11
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +10 -0
- package/lib/components/VSelect/_variables.scss +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +15 -9
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +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 -5
- 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/_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/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/VSliderThumb.mjs +6 -5
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.mjs +11 -10
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +4 -4
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +1 -1
- package/lib/components/VSnackbar/VSnackbar.mjs +50 -50
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/_variables.scss +3 -3
- package/lib/components/VSwitch/VSwitch.css +7 -0
- package/lib/components/VSwitch/VSwitch.sass +6 -0
- 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/_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 -0
- package/lib/components/VTable/_variables.scss +2 -0
- package/lib/components/VTabs/VTab.css +3 -2
- 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/_variables.scss +3 -1
- package/lib/components/VTextField/VTextField.css +2 -1
- package/lib/components/VTextField/VTextField.mjs +31 -23
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +2 -1
- package/lib/components/VTextField/_variables.scss +1 -1
- package/lib/components/VTextarea/VTextarea.css +6 -2
- package/lib/components/VTextarea/VTextarea.mjs +39 -22
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +9 -2
- package/lib/components/VTextarea/_variables.scss +1 -1
- package/lib/components/VTimeline/VTimeline.css +123 -112
- package/lib/components/VTimeline/VTimeline.mjs +24 -25
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +132 -113
- package/lib/components/VTimeline/VTimelineDivider.mjs +44 -38
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +13 -12
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +11 -6
- package/lib/components/VToolbar/VToolbar.css +17 -32
- package/lib/components/VToolbar/VToolbar.mjs +12 -13
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +17 -18
- package/lib/components/VToolbar/VToolbarItems.mjs +12 -8
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +7 -7
- package/lib/components/VTooltip/VTooltip.mjs +41 -39
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -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/VWindowItem.mjs +13 -9
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/_variables.scss +1 -0
- package/lib/components/index.d.ts +1653 -5068
- 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/color.mjs +19 -26
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +1 -1
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/form.mjs +29 -9
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/{forwardRef.mjs → forwardRefs.mjs} +29 -3
- package/lib/composables/forwardRefs.mjs.map +1 -0
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/index.mjs +3 -2
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/layout.mjs +12 -12
- package/lib/composables/layout.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/rtl.mjs +2 -2
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/size.mjs +18 -14
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/stack.mjs +22 -12
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/theme.mjs +18 -10
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/validation.mjs +14 -4
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +4 -2
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +7 -2
- package/lib/framework.mjs.map +1 -1
- package/lib/index.d.ts +39 -47
- package/lib/styles/generic/_colors.scss +17 -9
- package/lib/styles/generic/_transitions.scss +13 -77
- package/lib/styles/main.css +1170 -1420
- package/lib/styles/settings/_utilities.scss +16 -5
- package/lib/styles/utilities/_index.sass +0 -1
- package/lib/util/anchor.mjs +33 -29
- 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/colorUtils.mjs +2 -2
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +6 -3
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/helpers.mjs +24 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/injectSelf.mjs +12 -0
- package/lib/util/injectSelf.mjs.map +1 -0
- package/package.json +10 -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/composables/forwardRef.mjs.map +0 -1
- package/lib/presets/default/index.mjs +0 -71
- package/lib/presets/default/index.mjs.map +0 -1
- package/lib/styles/utilities/_text.sass +0 -9
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { createVNode as _createVNode } from "vue";
|
|
2
2
|
// Components
|
|
3
3
|
import { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from "./VExpansionPanelTitle.mjs";
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { VExpansionPanelSymbol } from "./VExpansionPanels.mjs";
|
|
5
|
+
import { VExpansionPanelText } from "./VExpansionPanelText.mjs"; // Composables
|
|
6
6
|
|
|
7
7
|
import { makeElevationProps, useElevation } from "../../composables/elevation.mjs";
|
|
8
8
|
import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs";
|
|
9
|
+
import { makeLazyProps } from "../../composables/lazy.mjs";
|
|
9
10
|
import { makeRoundedProps, useRounded } from "../../composables/rounded.mjs";
|
|
10
|
-
import { useBackgroundColor } from "../../composables/color.mjs";
|
|
11
11
|
import { makeTagProps } from "../../composables/tag.mjs";
|
|
12
|
-
import {
|
|
12
|
+
import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
|
|
13
13
|
|
|
14
14
|
import { computed, provide } from 'vue';
|
|
15
15
|
import { defineComponent, useRender } from "../../util/index.mjs";
|
|
@@ -26,6 +26,9 @@ export const VExpansionPanel = defineComponent({
|
|
|
26
26
|
...makeTagProps(),
|
|
27
27
|
...makeVExpansionPanelTitleProps()
|
|
28
28
|
},
|
|
29
|
+
emits: {
|
|
30
|
+
'group:selected': val => true
|
|
31
|
+
},
|
|
29
32
|
|
|
30
33
|
setup(props, _ref) {
|
|
31
34
|
let {
|
|
@@ -74,6 +77,7 @@ export const VExpansionPanel = defineComponent({
|
|
|
74
77
|
default: () => [_createVNode("div", {
|
|
75
78
|
"class": ['v-expansion-panel__shadow', ...elevationClasses.value]
|
|
76
79
|
}, null), hasTitle && _createVNode(VExpansionPanelTitle, {
|
|
80
|
+
"key": "title",
|
|
77
81
|
"collapseIcon": props.collapseIcon,
|
|
78
82
|
"color": props.color,
|
|
79
83
|
"expandIcon": props.expandIcon,
|
|
@@ -82,6 +86,7 @@ export const VExpansionPanel = defineComponent({
|
|
|
82
86
|
}, {
|
|
83
87
|
default: () => [slots.title ? slots.title() : props.title]
|
|
84
88
|
}), hasText && _createVNode(VExpansionPanelText, {
|
|
89
|
+
"key": "text",
|
|
85
90
|
"eager": props.eager
|
|
86
91
|
}, {
|
|
87
92
|
default: () => [slots.text ? slots.text() : props.text]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VExpansionPanel.mjs","names":["makeVExpansionPanelTitleProps","VExpansionPanelTitle","
|
|
1
|
+
{"version":3,"file":"VExpansionPanel.mjs","names":["makeVExpansionPanelTitleProps","VExpansionPanelTitle","VExpansionPanelSymbol","VExpansionPanelText","makeElevationProps","useElevation","makeGroupItemProps","useGroupItem","makeLazyProps","makeRoundedProps","useRounded","makeTagProps","useBackgroundColor","computed","provide","defineComponent","useRender","VExpansionPanel","name","props","title","String","text","bgColor","emits","val","setup","slots","groupItem","backgroundColorClasses","backgroundColorStyles","elevationClasses","roundedClasses","isDisabled","disabled","value","selectedIndices","group","items","reduce","arr","item","index","selected","includes","id","push","isBeforeSelected","findIndex","isSelected","some","selectedIndex","isAfterSelected","hasText","hasTitle","collapseIcon","color","expandIcon","hideActions","ripple","eager","default"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanel.tsx"],"sourcesContent":["// Components\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VExpansionPanelText } from './VExpansionPanelText'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps } from '@/composables/lazy'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VExpansionPanel = defineComponent({\n name: 'VExpansionPanel',\n\n props: {\n title: String,\n text: String,\n bgColor: String,\n\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n },\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled)\n\n const selectedIndices = computed(() => groupItem.group.items.value.reduce<number[]>((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index)\n return arr\n }, []))\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === -1)\n })\n\n provide(VExpansionPanelSymbol, groupItem)\n\n useRender(() => {\n const hasText = !!(slots.text || props.text)\n const hasTitle = !!(slots.title || props.title)\n\n return (\n <props.tag\n class={[\n 'v-expansion-panel',\n {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value,\n },\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n aria-expanded={ groupItem.isSelected.value }\n >\n <div\n class={[\n 'v-expansion-panel__shadow',\n ...elevationClasses.value,\n ]}\n />\n\n { hasTitle && (\n <VExpansionPanelTitle\n key=\"title\"\n collapseIcon={ props.collapseIcon }\n color={ props.color }\n expandIcon={ props.expandIcon }\n hideActions={ props.hideActions }\n ripple={ props.ripple }\n >\n { slots.title ? slots.title() : props.title }\n </VExpansionPanelTitle>\n ) }\n\n { hasText && (\n <VExpansionPanelText key=\"text\" eager={ props.eager }>\n { slots.text ? slots.text() : props.text }\n </VExpansionPanelText>\n ) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VExpansionPanel = InstanceType<typeof VExpansionPanel>\n"],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { withDirectives as _withDirectives, resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
|
|
2
2
|
// Components
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
3
|
+
import { VExpansionPanelSymbol } from "./VExpansionPanels.mjs";
|
|
4
|
+
import { VIcon } from "../VIcon/index.mjs"; // Directives
|
|
5
5
|
|
|
6
|
-
import {
|
|
7
|
-
import { IconValue } from "../../composables/icons.mjs"; // Directives
|
|
6
|
+
import { Ripple } from "../../directives/ripple/index.mjs"; // Composables
|
|
8
7
|
|
|
9
|
-
import {
|
|
8
|
+
import { IconValue } from "../../composables/icons.mjs";
|
|
9
|
+
import { useBackgroundColor } from "../../composables/color.mjs"; // Utilities
|
|
10
10
|
|
|
11
11
|
import { computed, inject } from 'vue';
|
|
12
12
|
import { defineComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
@@ -65,9 +65,9 @@ export const VExpansionPanelTitle = defineComponent({
|
|
|
65
65
|
"disabled": expansionPanel.disabled.value,
|
|
66
66
|
"aria-expanded": expansionPanel.isSelected.value,
|
|
67
67
|
"onClick": !props.readonly ? expansionPanel.toggle : undefined
|
|
68
|
-
}, [_createVNode("
|
|
68
|
+
}, [_createVNode("span", {
|
|
69
69
|
"class": "v-expansion-panel-title__overlay"
|
|
70
|
-
}, null), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value), !props.hideActions && _createVNode("
|
|
70
|
+
}, null), (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, slotProps.value), !props.hideActions && _createVNode("span", {
|
|
71
71
|
"class": "v-expansion-panel-title__icon"
|
|
72
72
|
}, [slots.actions ? slots.actions(slotProps.value) : _createVNode(VIcon, {
|
|
73
73
|
"icon": expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VExpansionPanelTitle.mjs","names":["
|
|
1
|
+
{"version":3,"file":"VExpansionPanelTitle.mjs","names":["VExpansionPanelSymbol","VIcon","Ripple","IconValue","useBackgroundColor","computed","inject","defineComponent","propsFactory","useRender","makeVExpansionPanelTitleProps","color","String","expandIcon","type","default","collapseIcon","hideActions","Boolean","ripple","Object","readonly","VExpansionPanelTitle","name","directives","props","setup","slots","expansionPanel","Error","backgroundColorClasses","backgroundColorStyles","slotProps","disabled","value","expanded","isSelected","undefined","toggle","actions"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanelTitle.tsx"],"sourcesContent":["// Components\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\nimport { VIcon } from '@/components/VIcon'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n})\n\nexport const VExpansionPanelTitle = defineComponent({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <span class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <span class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </span>\n ) }\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n"],"mappings":";AAAA;SACSA,qB;SACAC,K,8BAET;;SACSC,M,6CAET;;SACSC,S;SACAC,kB,uCAET;;AACA,SAASC,QAAT,EAAmBC,MAAnB,QAAiC,KAAjC;SACSC,e,EAAiBC,Y,EAAcC,S;AAExC,OAAO,MAAMC,6BAA6B,GAAGF,YAAY,CAAC;EACxDG,KAAK,EAAEC,MADiD;EAExDC,UAAU,EAAE;IACVC,IAAI,EAAEX,SADI;IAEVY,OAAO,EAAE;EAFC,CAF4C;EAMxDC,YAAY,EAAE;IACZF,IAAI,EAAEX,SADM;IAEZY,OAAO,EAAE;EAFG,CAN0C;EAUxDE,WAAW,EAAEC,OAV2C;EAWxDC,MAAM,EAAE;IACNL,IAAI,EAAE,CAACI,OAAD,EAAUE,MAAV,CADA;IAENL,OAAO,EAAE;EAFH,CAXgD;EAexDM,QAAQ,EAAEH;AAf8C,CAAD,CAAlD;AAkBP,OAAO,MAAMI,oBAAoB,GAAGf,eAAe,CAAC;EAClDgB,IAAI,EAAE,sBAD4C;EAGlDC,UAAU,EAAE;IAAEtB;EAAF,CAHsC;EAKlDuB,KAAK,EAAE,EACL,GAAGf,6BAA6B;EAD3B,CAL2C;;EASlDgB,KAAK,CAAED,KAAF,QAAoB;IAAA,IAAX;MAAEE;IAAF,CAAW;IACvB,MAAMC,cAAc,GAAGtB,MAAM,CAACN,qBAAD,CAA7B;IAEA,IAAI,CAAC4B,cAAL,EAAqB,MAAM,IAAIC,KAAJ,CAAU,+EAAV,CAAN;IAErB,MAAM;MAAEC,sBAAF;MAA0BC;IAA1B,IAAoD3B,kBAAkB,CAACqB,KAAD,EAAQ,OAAR,CAA5E;IAEA,MAAMO,SAAS,GAAG3B,QAAQ,CAAC,OAAO;MAChCW,YAAY,EAAES,KAAK,CAACT,YADY;MAEhCiB,QAAQ,EAAEL,cAAc,CAACK,QAAf,CAAwBC,KAFF;MAGhCC,QAAQ,EAAEP,cAAc,CAACQ,UAAf,CAA0BF,KAHJ;MAIhCrB,UAAU,EAAEY,KAAK,CAACZ,UAJc;MAKhCQ,QAAQ,EAAEI,KAAK,CAACJ;IALgB,CAAP,CAAD,CAA1B;IAQAZ,SAAS,CAAC;MAAA;;MAAA;QAAA,SAEC,CACL,yBADK,EAEL;UACE,mCAAmCmB,cAAc,CAACQ,UAAf,CAA0BF;QAD/D,CAFK,EAKLJ,sBAAsB,CAACI,KALlB,CAFD;QAAA,SASEH,qBAAqB,CAACG,KATxB;QAAA,QAUD,QAVC;QAAA,YAWKN,cAAc,CAACK,QAAf,CAAwBC,KAAxB,GAAgC,CAAC,CAAjC,GAAqCG,SAX1C;QAAA,YAYKT,cAAc,CAACK,QAAf,CAAwBC,KAZ7B;QAAA,iBAaUN,cAAc,CAACQ,UAAf,CAA0BF,KAbpC;QAAA,WAcI,CAACT,KAAK,CAACJ,QAAP,GAAkBO,cAAc,CAACU,MAAjC,GAA0CD;MAd9C;QAAA,SAiBM;MAjBN,4BAmBJV,KAAK,CAACZ,OAnBF,qBAmBJ,oBAAAY,KAAK,EAAWK,SAAS,CAACE,KAArB,CAnBD,EAqBJ,CAACT,KAAK,CAACR,WAAP;QAAA,SACY;MADZ,IAGIU,KAAK,CAACY,OAAN,GAAgBZ,KAAK,CAACY,OAAN,CAAcP,SAAS,CAACE,KAAxB,CAAhB;QAAA,QACgBN,cAAc,CAACQ,UAAf,CAA0BF,KAA1B,GAAkCT,KAAK,CAACT,YAAxC,GAAuDS,KAAK,CAACZ;MAD7E,QAHJ,EArBI,mCAeKY,KAAK,CAACN,MAfX;IAAA,CAAD,CAAT;IAgCA,OAAO,EAAP;EACD;;AAzDiD,CAAD,CAA5C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VExpansionPanels.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","defineComponent","useRender","VExpansionPanelSymbol","Symbol","for","allowedVariants","VExpansionPanels","name","props","color","String","variant","type","default","validator","v","includes","readonly","Boolean","emits","val","setup","slots","themeClasses","variantClass","VExpansionPanel","VExpansionPanelTitle","value"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanels.tsx"],"sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type {
|
|
1
|
+
{"version":3,"file":"VExpansionPanels.mjs","names":["makeGroupProps","useGroup","makeTagProps","makeThemeProps","provideTheme","provideDefaults","computed","toRef","defineComponent","useRender","VExpansionPanelSymbol","Symbol","for","allowedVariants","VExpansionPanels","name","props","color","String","variant","type","default","validator","v","includes","readonly","Boolean","emits","val","setup","slots","themeClasses","variantClass","VExpansionPanel","VExpansionPanelTitle","value"],"sources":["../../../src/components/VExpansionPanel/VExpansionPanels.tsx"],"sourcesContent":["// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { GroupItemProvide } from '@/composables/group'\nimport type { InjectionKey, PropType } from 'vue'\n\nexport const VExpansionPanelSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-expansion-panel')\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport const VExpansionPanels = defineComponent({\n name: 'VExpansionPanels',\n\n props: {\n color: String,\n variant: {\n type: String as PropType<Variant>,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n readonly: Boolean,\n\n ...makeGroupProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n color: toRef(props, 'color'),\n },\n VExpansionPanelTitle: {\n readonly: toRef(props, 'readonly'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-expansion-panels',\n themeClasses.value,\n variantClass.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanels = InstanceType<typeof VExpansionPanels>\n"],"mappings":";AAAA;AACA,+B,CAEA;;SACSA,c,EAAgBC,Q;SAChBC,Y;SACAC,c,EAAgBC,Y;SAChBC,e,0CAET;;AACA,SAASC,QAAT,EAAmBC,KAAnB,QAAgC,KAAhC;SACSC,e,EAAiBC,S,gCAE1B;;AAIA,OAAO,MAAMC,qBAAqD,GAAGC,MAAM,CAACC,GAAP,CAAW,2BAAX,CAA9D;AAEP,MAAMC,eAAe,GAAG,CAAC,SAAD,EAAY,WAAZ,EAAyB,OAAzB,EAAkC,QAAlC,CAAxB;AAIA,OAAO,MAAMC,gBAAgB,GAAGN,eAAe,CAAC;EAC9CO,IAAI,EAAE,kBADwC;EAG9CC,KAAK,EAAE;IACLC,KAAK,EAAEC,MADF;IAELC,OAAO,EAAE;MACPC,IAAI,EAAEF,MADC;MAEPG,OAAO,EAAE,SAFF;MAGPC,SAAS,EAAGC,CAAD,IAAYV,eAAe,CAACW,QAAhB,CAAyBD,CAAzB;IAHhB,CAFJ;IAOLE,QAAQ,EAAEC,OAPL;IASL,GAAG1B,cAAc,EATZ;IAUL,GAAGE,YAAY,EAVV;IAWL,GAAGC,cAAc;EAXZ,CAHuC;EAiB9CwB,KAAK,EAAE;IACL,qBAAsBC,GAAD,IAAkB;EADlC,CAjBuC;;EAqB9CC,KAAK,CAAEb,KAAF,QAAoB;IAAA,IAAX;MAAEc;IAAF,CAAW;IACvB7B,QAAQ,CAACe,KAAD,EAAQN,qBAAR,CAAR;IAEA,MAAM;MAAEqB;IAAF,IAAmB3B,YAAY,CAACY,KAAD,CAArC;IAEA,MAAMgB,YAAY,GAAG1B,QAAQ,CAAC,MAAMU,KAAK,CAACG,OAAN,IAAkB,+BAA8BH,KAAK,CAACG,OAAQ,EAArE,CAA7B;IAEAd,eAAe,CAAC;MACd4B,eAAe,EAAE;QACfhB,KAAK,EAAEV,KAAK,CAACS,KAAD,EAAQ,OAAR;MADG,CADH;MAIdkB,oBAAoB,EAAE;QACpBT,QAAQ,EAAElB,KAAK,CAACS,KAAD,EAAQ,UAAR;MADK;IAJR,CAAD,CAAf;IASAP,SAAS,CAAC;MAAA,SAEC,CACL,oBADK,EAELsB,YAAY,CAACI,KAFR,EAGLH,YAAY,CAACG,KAHR;IAFD,GAOIL,KAPJ,CAAD,CAAT;IAWA,OAAO,EAAP;EACD;;AAjD6C,CAAD,CAAxC"}
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
@use '../../styles/settings';
|
|
2
2
|
|
|
3
|
+
// VExpansionPanel
|
|
4
|
+
$expansion-panel-active-margin: 16px !default;
|
|
3
5
|
$expansion-panel-background-color: rgb(var(--v-theme-surface)) !default;
|
|
4
|
-
$expansion-panel-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
|
|
5
6
|
$expansion-panel-border-color: rgba(var(--v-border-color), var(--v-border-opacity)) !default;
|
|
6
7
|
$expansion-panel-border-radius: settings.$border-radius-root !default;
|
|
7
|
-
$expansion-panel-
|
|
8
|
+
$expansion-panel-color: rgba(var(--v-theme-on-surface), var(--v-high-emphasis-opacity)) !default;
|
|
9
|
+
$expansion-panel-disabled-opacity: 0.26 !default;
|
|
10
|
+
$expansion-panel-disabled-color: rgba(var(--v-theme-on-surface), $expansion-panel-disabled-opacity) !default;
|
|
11
|
+
$expansion-panel-disabled-overlay: 0.12 !default;
|
|
12
|
+
$expansion-panel-inset-active-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
|
|
13
|
+
$expansion-panel-inset-max-width: 100% !default;
|
|
14
|
+
$expansion-panel-popout-active-max-width: calc(100% + #{$expansion-panel-active-margin}) !default;
|
|
15
|
+
$expansion-panel-popout-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
|
|
16
|
+
|
|
17
|
+
// VExpansionPanelTitle
|
|
18
|
+
$expansion-panel-active-title-min-height: 64px !default;
|
|
8
19
|
$expansion-panel-title-font-size: 0.9375rem !default;
|
|
9
20
|
$expansion-panel-title-min-height: 48px !default;
|
|
10
|
-
$expansion-panel-active-title-min-height: 64px !default;
|
|
11
21
|
$expansion-panel-title-padding: 16px 24px !default;
|
|
22
|
+
|
|
23
|
+
// VExpansionPanelText
|
|
12
24
|
$expansion-panel-text-padding: 8px 24px 16px !default;
|
|
13
|
-
$expansion-panel-popout-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
|
|
14
|
-
$expansion-panel-popout-active-max-width: calc(100% + #{$expansion-panel-active-margin}) !default;
|
|
15
|
-
$expansion-panel-inset-max-width: 100% !default;
|
|
16
|
-
$expansion-panel-inset-active-max-width: calc(100% - #{$expansion-panel-active-margin * 2}) !default;
|
|
17
|
-
$expansion-panel-disabled-opacity: 0.26 !default;
|
|
18
|
-
$expansion-panel-disabled-overlay: 0.12 !default;
|
|
19
|
-
$expansion-panel-disabled-color: rgba(var(--v-theme-on-surface), $expansion-panel-disabled-opacity) !default;
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
position: relative;
|
|
14
14
|
--v-field-padding-start: 16px;
|
|
15
15
|
--v-field-padding-end: 16px;
|
|
16
|
-
--v-field-padding-top:
|
|
16
|
+
--v-field-padding-top: 10px;
|
|
17
17
|
--v-field-padding-bottom: 6px;
|
|
18
18
|
}
|
|
19
19
|
.v-field--disabled {
|
|
@@ -25,8 +25,6 @@
|
|
|
25
25
|
/* region MODIFIERS */
|
|
26
26
|
.v-field--prepended {
|
|
27
27
|
padding-inline-start: 12px;
|
|
28
|
-
--v-field-padding-start: 6px;
|
|
29
|
-
--v-field-padding-end: 6px;
|
|
30
28
|
}
|
|
31
29
|
.v-field--appended {
|
|
32
30
|
padding-inline-end: 12px;
|
|
@@ -44,16 +42,26 @@
|
|
|
44
42
|
.v-field--variant-plain, .v-field--variant-underlined {
|
|
45
43
|
border-radius: 0;
|
|
46
44
|
padding: 0;
|
|
47
|
-
--v-field-padding-start:
|
|
48
|
-
--v-field-padding-end:
|
|
49
|
-
--v-field-padding-top:
|
|
50
|
-
|
|
51
|
-
.v-field--variant-plain.v-field--single-line, .v-field--variant-underlined.v-field--single-line {
|
|
52
|
-
--v-field-padding-top: 0;
|
|
45
|
+
--v-field-padding-start: 0px;
|
|
46
|
+
--v-field-padding-end: 0px;
|
|
47
|
+
--v-field-padding-top: 6px;
|
|
48
|
+
--v-field-padding-bottom: 2px;
|
|
53
49
|
}
|
|
54
50
|
.v-field--variant-outlined, .v-field--single-line {
|
|
55
|
-
--v-field-padding-top:
|
|
51
|
+
--v-field-padding-top: 0px;
|
|
56
52
|
}
|
|
53
|
+
.v-input--density-default .v-field--variant-outlined, .v-input--density-default .v-field--single-line {
|
|
54
|
+
--v-field-padding-bottom: 16px;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.v-input--density-comfortable .v-field--variant-outlined, .v-input--density-comfortable .v-field--single-line {
|
|
58
|
+
--v-field-padding-bottom: 12px;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.v-input--density-compact .v-field--variant-outlined, .v-input--density-compact .v-field--single-line {
|
|
62
|
+
--v-field-padding-bottom: 8px;
|
|
63
|
+
}
|
|
64
|
+
|
|
57
65
|
.v-input--density-default .v-field--variant-solo, .v-input--density-default .v-field--variant-filled {
|
|
58
66
|
--v-input-control-height: 56px;
|
|
59
67
|
--v-field-padding-bottom: 6px;
|
|
@@ -69,38 +77,49 @@
|
|
|
69
77
|
--v-field-padding-bottom: -2px;
|
|
70
78
|
}
|
|
71
79
|
|
|
72
|
-
.v-input--density-default .v-field--variant-underlined {
|
|
80
|
+
.v-input--density-default .v-field--variant-plain, .v-input--density-default .v-field--variant-underlined {
|
|
81
|
+
--v-input-control-height: 48px;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.v-input--density-comfortable .v-field--variant-plain, .v-input--density-comfortable .v-field--variant-underlined {
|
|
73
85
|
--v-input-control-height: 40px;
|
|
74
|
-
--v-field-padding-bottom: 6px;
|
|
75
86
|
}
|
|
76
87
|
|
|
77
|
-
.v-input--density-
|
|
88
|
+
.v-input--density-compact .v-field--variant-plain, .v-input--density-compact .v-field--variant-underlined {
|
|
78
89
|
--v-input-control-height: 32px;
|
|
79
|
-
--v-field-padding-bottom: 4px;
|
|
80
90
|
}
|
|
81
91
|
|
|
82
|
-
.v-
|
|
83
|
-
--v-
|
|
84
|
-
|
|
92
|
+
.v-field--prepended {
|
|
93
|
+
--v-field-padding-start: 6px;
|
|
94
|
+
}
|
|
95
|
+
.v-field--appended {
|
|
96
|
+
--v-field-padding-end: 6px;
|
|
85
97
|
}
|
|
86
98
|
|
|
87
99
|
/* endregion */
|
|
88
100
|
/* region ELEMENTS */
|
|
89
101
|
.v-field__input {
|
|
90
|
-
align-self: stretch;
|
|
91
102
|
color: inherit;
|
|
92
103
|
display: flex;
|
|
93
104
|
flex-wrap: wrap;
|
|
94
105
|
letter-spacing: 0.009375em;
|
|
95
106
|
opacity: var(--v-high-emphasis-opacity);
|
|
107
|
+
min-height: var(--v-input-control-height, 56px);
|
|
96
108
|
padding-inline-start: var(--v-field-padding-start);
|
|
97
109
|
padding-inline-end: var(--v-field-padding-end);
|
|
98
|
-
padding-top: var(--v-field-padding-top,
|
|
110
|
+
padding-top: calc(var(--v-field-padding-top, 10px) + var(--v-input-padding-top, 0));
|
|
111
|
+
padding-bottom: var(--v-field-padding-bottom, 6px);
|
|
99
112
|
width: 100%;
|
|
100
113
|
}
|
|
101
114
|
.v-field__input input {
|
|
102
115
|
letter-spacing: inherit;
|
|
103
116
|
}
|
|
117
|
+
.v-field__input input::placeholder,
|
|
118
|
+
textarea.v-field__input::placeholder {
|
|
119
|
+
color: currentColor;
|
|
120
|
+
opacity: var(--v-disabled-opacity);
|
|
121
|
+
}
|
|
122
|
+
|
|
104
123
|
.v-field__input:focus, .v-field__input:active {
|
|
105
124
|
outline: none;
|
|
106
125
|
}
|
|
@@ -110,10 +129,10 @@
|
|
|
110
129
|
|
|
111
130
|
.v-field__field {
|
|
112
131
|
flex: 1 0;
|
|
113
|
-
min-height: var(--v-input-control-height, 56px);
|
|
114
132
|
grid-area: field;
|
|
115
|
-
padding-bottom: var(--v-field-padding-bottom, 6px);
|
|
116
133
|
position: relative;
|
|
134
|
+
align-items: flex-start;
|
|
135
|
+
display: flex;
|
|
117
136
|
}
|
|
118
137
|
|
|
119
138
|
/* endregion */
|
|
@@ -132,13 +151,12 @@
|
|
|
132
151
|
padding-inline-start: var(--v-field-padding-after);
|
|
133
152
|
}
|
|
134
153
|
|
|
135
|
-
.v-field__field,
|
|
136
154
|
.v-field__prepend-inner,
|
|
137
155
|
.v-field__append-inner,
|
|
138
156
|
.v-field__clearable {
|
|
139
157
|
align-items: flex-start;
|
|
140
158
|
display: flex;
|
|
141
|
-
padding-top: var(--v-input-padding-top,
|
|
159
|
+
padding-top: var(--v-input-padding-top, 10px);
|
|
142
160
|
}
|
|
143
161
|
|
|
144
162
|
.v-field--focused .v-field__prepend-inner,
|
|
@@ -190,6 +208,7 @@
|
|
|
190
208
|
max-width: calc(100% - var(--v-field-padding-start) - var(--v-field-padding-end));
|
|
191
209
|
pointer-events: none;
|
|
192
210
|
position: absolute;
|
|
211
|
+
top: var(--v-input-padding-top, 10px);
|
|
193
212
|
transform-origin: left center;
|
|
194
213
|
transition: 0.15s cubic-bezier(0.4, 0, 0.2, 1);
|
|
195
214
|
transition-property: opacity, transform;
|
|
@@ -225,7 +244,7 @@
|
|
|
225
244
|
}
|
|
226
245
|
|
|
227
246
|
.v-field--variant-plain .v-label.v-field-label--floating, .v-field--variant-underlined .v-label.v-field-label--floating {
|
|
228
|
-
transform: translateY(-
|
|
247
|
+
transform: translateY(-16px);
|
|
229
248
|
margin: 0;
|
|
230
249
|
}
|
|
231
250
|
.v-field--variant-outlined .v-label.v-field-label--floating {
|
|
@@ -3,14 +3,14 @@ import { mergeProps as _mergeProps, Fragment as _Fragment, withDirectives as _wi
|
|
|
3
3
|
import "./VField.css"; // Components
|
|
4
4
|
|
|
5
5
|
import { VExpandXTransition } from "../transitions/index.mjs";
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
6
|
+
import { VFieldLabel } from "./VFieldLabel.mjs";
|
|
7
|
+
import { VIcon } from "../VIcon/index.mjs"; // Composables
|
|
8
8
|
|
|
9
|
+
import { IconValue } from "../../composables/icons.mjs";
|
|
9
10
|
import { LoaderSlot, makeLoaderProps, useLoader } from "../../composables/loader.mjs";
|
|
10
|
-
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
11
|
-
import { useBackgroundColor, useTextColor } from "../../composables/color.mjs";
|
|
12
11
|
import { makeFocusProps, useFocus } from "../../composables/focus.mjs";
|
|
13
|
-
import {
|
|
12
|
+
import { makeThemeProps, provideTheme } from "../../composables/theme.mjs";
|
|
13
|
+
import { useBackgroundColor, useTextColor } from "../../composables/color.mjs"; // Utilities
|
|
14
14
|
|
|
15
15
|
import { computed, ref, toRef, watch } from 'vue';
|
|
16
16
|
import { convertToUnit, genericComponent, getUid, nullifyTransforms, pick, propsFactory, standardEasing, useRender } from "../../util/index.mjs"; // Types
|
|
@@ -104,7 +104,7 @@ export const VField = genericComponent()({
|
|
|
104
104
|
const width = Math.abs(targetWidth - rect.width) > 1 ? {
|
|
105
105
|
maxWidth: convertToUnit(targetWidth)
|
|
106
106
|
} : undefined;
|
|
107
|
-
const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000;
|
|
107
|
+
const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000 || 150;
|
|
108
108
|
const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'));
|
|
109
109
|
el.style.visibility = 'visible';
|
|
110
110
|
targetEl.style.visibility = 'hidden';
|
|
@@ -145,9 +145,9 @@ export const VField = genericComponent()({
|
|
|
145
145
|
var _slots$prependInner, _slots$default, _slots$appendInner;
|
|
146
146
|
|
|
147
147
|
const isOutlined = props.variant === 'outlined';
|
|
148
|
-
const hasPrepend = slots
|
|
148
|
+
const hasPrepend = slots['prepend-inner'] || props.prependInnerIcon;
|
|
149
149
|
const hasClear = !!(props.clearable || slots.clear);
|
|
150
|
-
const hasAppend = !!(slots
|
|
150
|
+
const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear);
|
|
151
151
|
const label = slots.label ? slots.label({
|
|
152
152
|
label: props.label,
|
|
153
153
|
props: {
|
|
@@ -180,14 +180,17 @@ export const VField = genericComponent()({
|
|
|
180
180
|
}, {
|
|
181
181
|
default: slots.loader
|
|
182
182
|
}), hasPrepend && _createVNode("div", {
|
|
183
|
+
"key": "prepend",
|
|
183
184
|
"class": "v-field__prepend-inner"
|
|
184
185
|
}, [props.prependInnerIcon && _createVNode(VIcon, {
|
|
186
|
+
"key": "prepend-icon",
|
|
185
187
|
"onClick": attrs['onClick:prependInner'],
|
|
186
188
|
"icon": props.prependInnerIcon
|
|
187
|
-
}, null),
|
|
189
|
+
}, null), (_slots$prependInner = slots['prepend-inner']) == null ? void 0 : _slots$prependInner.call(slots, slotProps.value)]), _createVNode("div", {
|
|
188
190
|
"class": "v-field__field",
|
|
189
191
|
"data-no-activator": ""
|
|
190
192
|
}, [['solo', 'filled'].includes(props.variant) && hasLabel.value && _createVNode(VFieldLabel, {
|
|
193
|
+
"key": "floating-label",
|
|
191
194
|
"ref": floatingLabelRef,
|
|
192
195
|
"class": [textColorClasses.value],
|
|
193
196
|
"floating": true
|
|
@@ -205,7 +208,9 @@ export const VField = genericComponent()({
|
|
|
205
208
|
},
|
|
206
209
|
focus,
|
|
207
210
|
blur
|
|
208
|
-
})]), hasClear && _createVNode(VExpandXTransition,
|
|
211
|
+
})]), hasClear && _createVNode(VExpandXTransition, {
|
|
212
|
+
"key": "clear"
|
|
213
|
+
}, {
|
|
209
214
|
default: () => [_withDirectives(_createVNode("div", {
|
|
210
215
|
"class": "v-field__clearable"
|
|
211
216
|
}, [slots.clear ? slots.clear() : _createVNode(VIcon, {
|
|
@@ -213,8 +218,10 @@ export const VField = genericComponent()({
|
|
|
213
218
|
"icon": props.clearIcon
|
|
214
219
|
}, null)]), [[_vShow, props.dirty]])]
|
|
215
220
|
}), hasAppend && _createVNode("div", {
|
|
221
|
+
"key": "append",
|
|
216
222
|
"class": "v-field__append-inner"
|
|
217
|
-
}, [
|
|
223
|
+
}, [(_slots$appendInner = slots['append-inner']) == null ? void 0 : _slots$appendInner.call(slots, slotProps.value), props.appendInnerIcon && _createVNode(VIcon, {
|
|
224
|
+
"key": "append-icon",
|
|
218
225
|
"onClick": attrs['onClick:appendInner'],
|
|
219
226
|
"icon": props.appendInnerIcon
|
|
220
227
|
}, null)]), _createVNode("div", {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VField.mjs","names":["VExpandXTransition","VIcon","VFieldLabel","LoaderSlot","makeLoaderProps","useLoader","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","makeFocusProps","useFocus","IconValue","computed","ref","toRef","watch","convertToUnit","genericComponent","getUid","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","color","dirty","disabled","error","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","e","focused","val","setup","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","isActive","hasLabel","uid","labelRef","floatingLabelRef","controlRef","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","value","undefined","el","$el","targetEl","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","duration","parseFloat","getComputedStyle","transitionDuration","scale","getPropertyValue","style","visibility","animate","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","target","document","activeElement","preventDefault","isOutlined","hasPrepend","prependInner","hasClear","clear","hasAppend","appendInner","for","loading","loader","class","filterFieldProps","Object","keys"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\nimport { VFieldLabel } from './VFieldLabel'\n\n// Composables\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getUid,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { VInputSlot } from '@/components/VInput/VInput'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n prependInner: [DefaultInputSlot & VInputSlot]\n appendInner: [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\n loader: [LoaderSlotProps]\n default: [VFieldSlot]\n}>\n\nexport const VField = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: VFieldSlots\n}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000\n const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'))\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n el.animate([\n { transform: 'translate(0)' },\n { transform: `translate(${x}px, ${y}px) scale(${scale})`, ...width },\n ], {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n\n emit('click:control', e)\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots.prependInner || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots.appendInner || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--has-label': !!label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ props.loading }\n color={ props.error ? 'error' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div\n class=\"v-field__prepend-inner\"\n >\n { props.prependInnerIcon && (\n <VIcon\n onClick={ attrs['onClick:prependInner'] }\n icon={ props.prependInnerIcon }\n />\n ) }\n\n { slots?.prependInner?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n { ['solo', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n >\n { label }\n </VFieldLabel>\n ) }\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n },\n focus,\n blur,\n } as VFieldSlot) }\n </div>\n\n { hasClear && (\n <VExpandXTransition>\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n >\n { slots.clear\n ? slots.clear()\n : (\n <VIcon\n onClick={ (e: MouseEvent) => emit('click:clear', e) }\n icon={ props.clearIcon }\n />\n )\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasAppend && (\n <div\n class=\"v-field__append-inner\"\n >\n { slots?.appendInner?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <VIcon\n onClick={ attrs['onClick:appendInner'] }\n icon={ props.appendInnerIcon }\n />\n ) }\n </div>\n ) }\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating>\n { label }\n </VFieldLabel>\n </div>\n ) }\n\n <div class=\"v-field__outline__end\" />\n </>\n ) }\n\n { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating>\n { label }\n </VFieldLabel>\n ) }\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n return pick(attrs, Object.keys(VField.props))\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VField.mjs","names":["VExpandXTransition","VFieldLabel","VIcon","IconValue","LoaderSlot","makeLoaderProps","useLoader","makeFocusProps","useFocus","makeThemeProps","provideTheme","useBackgroundColor","useTextColor","computed","ref","toRef","watch","convertToUnit","genericComponent","getUid","nullifyTransforms","pick","propsFactory","standardEasing","useRender","allowedVariants","makeVFieldProps","appendInnerIcon","bgColor","String","clearable","Boolean","clearIcon","type","default","active","color","dirty","disabled","error","label","persistentClear","prependInnerIcon","reverse","singleLine","variant","validator","v","includes","VField","name","inheritAttrs","props","id","emits","e","focused","val","setup","attrs","emit","slots","themeClasses","loaderClasses","focusClasses","isFocused","focus","blur","isActive","hasLabel","uid","labelRef","floatingLabelRef","controlRef","backgroundColorClasses","backgroundColorStyles","textColorClasses","textColorStyles","value","undefined","el","$el","targetEl","rect","targetRect","getBoundingClientRect","x","y","height","targetWidth","width","Math","abs","maxWidth","duration","parseFloat","getComputedStyle","transitionDuration","scale","getPropertyValue","style","visibility","animate","transform","easing","direction","finished","then","removeProperty","flush","slotProps","onClick","target","document","activeElement","preventDefault","isOutlined","hasPrepend","hasClear","clear","hasAppend","for","loading","loader","class","filterFieldProps","Object","keys"],"sources":["../../../src/components/VField/VField.tsx"],"sourcesContent":["// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VFieldLabel } from './VFieldLabel'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { IconValue } from '@/composables/icons'\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getUid,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { MakeSlots } from '@/util'\nimport type { PropType, Ref } from 'vue'\nimport type { VInputSlot } from '@/components/VInput/VInput'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'solo', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n 'prepend-inner': [DefaultInputSlot & VInputSlot]\n 'append-inner': [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\n loader: [LoaderSlotProps]\n default: [VFieldSlot]\n}>\n\nexport const VField = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: VFieldSlots\n}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000 || 150\n const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'))\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n el.animate([\n { transform: 'translate(0)' },\n { transform: `translate(${x}px, ${y}px) scale(${scale})`, ...width },\n ], {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n\n emit('click:control', e)\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots['prepend-inner'] || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots['append-inner'] || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--has-label': !!label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ props.loading }\n color={ props.error ? 'error' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div key=\"prepend\" class=\"v-field__prepend-inner\">\n { props.prependInnerIcon && (\n <VIcon\n key=\"prepend-icon\"\n onClick={ attrs['onClick:prependInner'] }\n icon={ props.prependInnerIcon }\n />\n ) }\n\n { slots['prepend-inner']?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n { ['solo', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n key=\"floating-label\"\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n >\n { label }\n </VFieldLabel>\n ) }\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n },\n focus,\n blur,\n } as VFieldSlot) }\n </div>\n\n { hasClear && (\n <VExpandXTransition key=\"clear\">\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n >\n { slots.clear\n ? slots.clear()\n : (\n <VIcon\n onClick={ (e: MouseEvent) => emit('click:clear', e) }\n icon={ props.clearIcon }\n />\n )\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasAppend && (\n <div key=\"append\" class=\"v-field__append-inner\">\n { slots['append-inner']?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <VIcon\n key=\"append-icon\"\n onClick={ attrs['onClick:appendInner'] }\n icon={ props.appendInnerIcon }\n />\n ) }\n </div>\n ) }\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating>\n { label }\n </VFieldLabel>\n </div>\n ) }\n\n <div class=\"v-field__outline__end\" />\n </>\n ) }\n\n { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating>\n { label }\n </VFieldLabel>\n ) }\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n return pick(attrs, Object.keys(VField.props))\n}\n"],"mappings":"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"}
|