@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.4
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 +32 -2
- package/dist/_component-variables.sass +61 -0
- package/dist/json/attributes.json +662 -430
- package/dist/json/importMap.json +222 -198
- package/dist/json/tags.json +184 -96
- package/dist/json/web-types.json +2021 -1152
- package/dist/vuetify.css +1869 -1468
- package/dist/vuetify.d.ts +12840 -9217
- package/dist/vuetify.esm.js +6121 -5104
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +6120 -5103
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +1085 -964
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +34 -13
- package/lib/components/VAlert/VAlert.mjs +43 -24
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +26 -8
- package/lib/components/VAlert/VAlertTitle.mjs +1 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -1
- package/lib/components/VAlert/_variables.scss +14 -7
- package/lib/components/VAlert/index.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +1 -0
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +1 -0
- package/lib/components/VApp/index.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.mjs +11 -7
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +0 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +4 -2
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +3 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/index.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +133 -101
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +0 -2
- package/lib/components/VAutocomplete/index.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +1 -1
- package/lib/components/VAvatar/VAvatar.mjs +17 -15
- 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/VAvatar/index.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +3 -6
- package/lib/components/VBadge/VBadge.mjs +16 -44
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +2 -5
- package/lib/components/VBadge/_variables.scss +1 -2
- package/lib/components/VBadge/index.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +82 -58
- package/lib/components/VBanner/VBanner.mjs +49 -48
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +61 -55
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/VBannerText.mjs.map +1 -1
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.mjs +2 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +1 -2
- package/lib/components/VBottomNavigation/index.mjs.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBottomSheet/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +5 -2
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +0 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +10 -9
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/shared.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +56 -11
- package/lib/components/VBtn/VBtn.mjs +51 -20
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +35 -4
- package/lib/components/VBtn/_variables.scss +2 -0
- package/lib/components/VBtn/index.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +14 -6
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -7
- package/lib/components/VBtnGroup/index.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
- package/lib/components/VBtnToggle/index.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/index.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
- package/lib/components/VCalendar/modes/column.mjs.map +1 -1
- package/lib/components/VCalendar/modes/common.mjs.map +1 -1
- package/lib/components/VCalendar/modes/index.mjs.map +1 -1
- package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
- package/lib/components/VCalendar/util/events.mjs.map +1 -1
- package/lib/components/VCalendar/util/parser.mjs.map +1 -1
- package/lib/components/VCalendar/util/props.mjs.map +1 -1
- package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +23 -20
- package/lib/components/VCard/VCard.mjs +17 -9
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +12 -10
- package/lib/components/VCard/VCardActions.mjs +1 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardAvatar.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/VCardHeader.mjs.map +1 -1
- package/lib/components/VCard/VCardHeaderText.mjs.map +1 -1
- package/lib/components/VCard/VCardImg.mjs.map +1 -1
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
- package/lib/components/VCard/VCardText.mjs.map +1 -1
- package/lib/components/VCard/VCardTitle.mjs.map +1 -1
- package/lib/components/VCard/_variables.scss +11 -5
- package/lib/components/VCard/index.mjs +1 -0
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +4 -3
- 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/index.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.mjs +15 -47
- 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 +8 -5
- package/lib/components/VChip/VChip.mjs +6 -5
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +3 -1
- package/lib/components/VChip/_variables.scss +3 -0
- package/lib/components/VChip/index.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/index.mjs.map +1 -1
- package/lib/components/VCode/VCode.sass +1 -2
- package/lib/components/VCode/_variables.scss +1 -1
- package/lib/components/VCode/index.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.css +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
- package/lib/components/VColorPicker/index.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.mjs +140 -110
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +0 -2
- package/lib/components/VCombobox/index.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +0 -1
- package/lib/components/VCounter/index.mjs.map +1 -1
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VData/index.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.mjs.map +1 -1
- package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
- package/lib/components/VDataTable/Row.mjs.map +1 -1
- package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
- package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
- package/lib/components/VDataTable/index.mjs.map +1 -1
- package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/index.mjs.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
- package/lib/components/VDatePicker/util/index.mjs.map +1 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
- package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
- package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +31 -12
- package/lib/components/VDialog/VDialog.mjs +14 -12
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +27 -12
- package/lib/components/VDialog/_variables.scss +3 -7
- package/lib/components/VDialog/index.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +0 -1
- package/lib/components/VDivider/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +8 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +6 -2
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +0 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +9 -6
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +4 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/index.mjs.map +1 -1
- package/lib/components/VField/VField.css +10 -10
- package/lib/components/VField/VField.mjs +12 -11
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +7 -9
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +3 -3
- package/lib/components/VField/index.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.mjs +5 -3
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +0 -1
- package/lib/components/VFileInput/index.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.mjs +32 -15
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +0 -1
- package/lib/components/VFooter/index.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +25 -11
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/index.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +27 -12
- package/lib/components/VIcon/VIcon.mjs +18 -17
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +27 -17
- package/lib/components/VIcon/_variables.scss +1 -0
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +0 -1
- package/lib/components/VImg/index.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +3 -1
- package/lib/components/VInput/VInput.mjs +10 -10
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +3 -2
- package/lib/components/VInput/_variables.scss +4 -0
- package/lib/components/VInput/index.mjs.map +1 -1
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.sass +0 -1
- package/lib/components/VItemGroup/index.mjs.map +1 -1
- package/lib/components/VKbd/VKbd.sass +0 -1
- package/lib/components/VKbd/_variables.scss +1 -1
- package/lib/components/VKbd/index.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +0 -1
- package/lib/components/VLabel/index.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.mjs.map +1 -1
- package/lib/components/VList/VList.css +7 -12
- package/lib/components/VList/VList.mjs +83 -48
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +3 -4
- package/lib/components/VList/VListChildren.mjs +41 -3
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +43 -15
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +129 -51
- package/lib/components/VList/VListItem.mjs +49 -44
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +77 -30
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +10 -16
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemHeader.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +4 -4
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
- package/lib/components/VList/VListItemTitle.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +3 -3
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +12 -4
- package/lib/components/VList/index.mjs +2 -0
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.mjs.map +1 -1
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +0 -1
- package/lib/components/VMain/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +2 -12
- package/lib/components/VMenu/VMenu.mjs +65 -31
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +3 -7
- package/lib/components/VMenu/_variables.scss +0 -1
- package/lib/components/VMenu/index.mjs.map +1 -1
- package/lib/components/VMenu/shared.mjs +2 -0
- package/lib/components/VMenu/shared.mjs.map +1 -0
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.sass +0 -1
- package/lib/components/VMessages/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +13 -9
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +0 -1
- package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.mjs.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -1
- package/lib/components/VOtpInput/index.mjs.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverflowBtn/index.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +7 -0
- package/lib/components/VOverlay/VOverlay.mjs +57 -32
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +8 -1
- package/lib/components/VOverlay/index.mjs.map +1 -1
- package/lib/components/VOverlay/{positionStrategies.mjs → locationStrategies.mjs} +39 -36
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +11 -2
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +57 -15
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +16 -17
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +0 -1
- package/lib/components/VPagination/index.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.mjs.map +1 -1
- package/lib/components/VPicker/VPicker.mjs.map +1 -1
- package/lib/components/VPicker/index.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
- package/lib/components/VProgressCircular/index.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VProgressLinear/index.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +6 -5
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.mjs +11 -6
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/index.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +5 -2
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +17 -6
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +2 -3
- package/lib/components/VRating/index.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.mjs +134 -107
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +0 -2
- package/lib/components/VSelect/index.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +15 -12
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSelectionControl/index.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +6 -5
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +0 -1
- package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.mjs +7 -3
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +0 -1
- package/lib/components/VSheet/index.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +0 -5
- package/lib/components/VSlideGroup/VSlideGroup.mjs +40 -17
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -5
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +3 -1
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +7 -2
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +11 -7
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.sass +0 -2
- package/lib/components/VSlider/VSliderTrack.css +6 -6
- package/lib/components/VSlider/VSliderTrack.mjs +3 -2
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +7 -9
- package/lib/components/VSlider/_variables.scss +5 -2
- package/lib/components/VSlider/index.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +19 -36
- package/lib/components/VSnackbar/VSnackbar.mjs +38 -19
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -35
- package/lib/components/VSnackbar/_variables.scss +0 -4
- package/lib/components/VSnackbar/index.mjs.map +1 -1
- package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
- package/lib/components/VSparkline/index.mjs.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VSpeedDial/index.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepperContent.mjs.map +1 -1
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VStepper/index.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.mjs +15 -6
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +0 -1
- package/lib/components/VSwitch/index.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +0 -5
- package/lib/components/VSystemBar/VSystemBar.mjs +31 -14
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -6
- package/lib/components/VSystemBar/_variables.scss +0 -3
- package/lib/components/VSystemBar/index.mjs.map +1 -1
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/VTable.sass +0 -1
- package/lib/components/VTable/index.mjs.map +1 -1
- package/lib/components/VTabs/VTab.css +1 -1
- package/lib/components/VTabs/VTab.mjs +33 -36
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +1 -2
- package/lib/components/VTabs/VTabs.css +14 -11
- package/lib/components/VTabs/VTabs.mjs +7 -8
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +10 -7
- package/lib/components/VTabs/_variables.scss +1 -1
- package/lib/components/VTabs/index.mjs.map +1 -1
- package/lib/components/VTabs/shared.mjs +2 -0
- package/lib/components/VTabs/shared.mjs.map +1 -0
- package/lib/components/VTextField/VTextField.css +4 -4
- package/lib/components/VTextField/VTextField.mjs +9 -10
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -6
- package/lib/components/VTextField/index.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +7 -4
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +9 -7
- package/lib/components/VTextarea/index.mjs.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.mjs.map +1 -1
- package/lib/components/VTimePicker/SelectingTimes.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
- package/lib/components/VTimePicker/index.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +187 -48
- package/lib/components/VTimeline/VTimeline.mjs +27 -11
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +196 -52
- package/lib/components/VTimeline/VTimelineDivider.mjs +5 -3
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +3 -2
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_variables.scss +2 -1
- package/lib/components/VTimeline/index.mjs.map +1 -1
- package/lib/components/VTimeline/shared.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +8 -1
- package/lib/components/VToolbar/VToolbar.mjs +21 -17
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +2 -2
- package/lib/components/VToolbar/VToolbarItems.mjs +1 -2
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +13 -1
- package/lib/components/VToolbar/index.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +12 -7
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +0 -1
- package/lib/components/VTooltip/index.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
- package/lib/components/VTreeview/index.mjs.map +1 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
- package/lib/components/VValidation/VValidation.mjs.map +1 -1
- package/lib/components/VValidation/index.mjs.map +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VVirtualScroll/index.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.mjs +2 -10
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +0 -2
- package/lib/components/VWindow/VWindowItem.mjs +9 -3
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/index.mjs.map +1 -1
- package/lib/components/index.d.ts +13464 -9854
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +61 -8
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/expand-transition.mjs.map +1 -1
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/density.mjs.map +1 -1
- package/lib/composables/dimensions.mjs.map +1 -1
- package/lib/composables/display.mjs +13 -11
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/elevation.mjs.map +1 -1
- package/lib/composables/filter.mjs +33 -13
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/form.mjs +24 -11
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRef.mjs +10 -6
- package/lib/composables/forwardRef.mjs.map +1 -1
- package/lib/composables/group.mjs +14 -6
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/icons.mjs +15 -3
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs.map +1 -1
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/items.mjs +84 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +10 -6
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs.map +1 -1
- package/lib/composables/loader.mjs.map +1 -1
- package/lib/composables/locale.mjs +11 -8
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/location.mjs +70 -0
- package/lib/composables/location.mjs.map +1 -0
- package/lib/composables/mutationObserver.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +27 -14
- package/lib/composables/nested/nested.mjs.map +1 -1
- package/lib/composables/nested/openStrategies.mjs +63 -36
- package/lib/composables/nested/openStrategies.mjs.map +1 -1
- package/lib/composables/nested/selectStrategies.mjs +163 -122
- package/lib/composables/nested/selectStrategies.mjs.map +1 -1
- package/lib/composables/position.mjs +4 -25
- package/lib/composables/position.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +1 -9
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/rounded.mjs.map +1 -1
- package/lib/composables/router.mjs +29 -15
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/scopeId.mjs +11 -0
- package/lib/composables/scopeId.mjs.map +1 -0
- package/lib/composables/scroll.mjs.map +1 -1
- package/lib/composables/selectLink.mjs +19 -0
- package/lib/composables/selectLink.mjs.map +1 -0
- 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 +27 -23
- package/lib/composables/stack.mjs.map +1 -1
- package/lib/composables/tag.mjs.map +1 -1
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/composables/theme.mjs +94 -93
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +18 -0
- package/lib/composables/toggleScope.mjs.map +1 -0
- package/lib/composables/touch.mjs.map +1 -1
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +17 -6
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +3 -6
- package/lib/composables/variant.mjs.map +1 -1
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/color/index.mjs.map +1 -1
- package/lib/directives/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/mutate/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.sass +0 -1
- package/lib/directives/ripple/index.mjs +15 -3
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +39 -29
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +2 -1
- package/lib/iconsets/fa-svg.mjs.map +1 -1
- package/lib/iconsets/fa.d.ts +2 -1
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +2 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +161 -138
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/adapters/vue-intl.mjs.map +1 -1
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/presets/default/index.mjs.map +1 -1
- package/lib/services/goto/easing-patterns.mjs.map +1 -1
- package/lib/services/goto/index.mjs.map +1 -1
- package/lib/services/goto/util.mjs.map +1 -1
- package/lib/styles/generic/_colors.scss +0 -1
- package/lib/styles/main.css +400 -392
- package/lib/styles/settings/_utilities.scss +54 -26
- package/lib/styles/tools/_states.sass +11 -3
- package/lib/styles/tools/_utilities.sass +1 -1
- package/lib/styles/tools/_variant.sass +6 -6
- package/lib/{components/VOverlay/util → util}/anchor.mjs +0 -0
- package/lib/util/anchor.mjs.map +1 -0
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/color/APCA.mjs.map +1 -1
- package/lib/util/color/transformCIELAB.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/dateTimeUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +37 -6
- package/lib/util/defineComponent.mjs.map +1 -1
- package/lib/util/dom.mjs.map +1 -1
- package/lib/util/easing.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +20 -1
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/getScrollParent.mjs.map +1 -1
- package/lib/util/globals.mjs +0 -3
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +1 -5
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +1 -0
- package/lib/util/index.mjs.map +1 -1
- package/lib/util/isFixedPosition.mjs.map +1 -1
- package/lib/util/propsFactory.mjs.map +1 -1
- package/lib/util/useRender.mjs.map +1 -1
- package/package.json +41 -31
- package/lib/components/VOverlay/positionStrategies.mjs.map +0 -1
- package/lib/components/VOverlay/util/anchor.mjs.map +0 -1
- package/lib/composables/overlay.mjs +0 -30
- package/lib/composables/overlay.mjs.map +0 -1
|
@@ -9,7 +9,8 @@ import { makeGroupProps, useGroup } from "../../composables/group.mjs";
|
|
|
9
9
|
import { makeTagProps } from "../../composables/tag.mjs";
|
|
10
10
|
import { useDisplay } from "../../composables/index.mjs";
|
|
11
11
|
import { useResizeObserver } from "../../composables/resizeObserver.mjs";
|
|
12
|
-
import { useRtl } from "../../composables/rtl.mjs";
|
|
12
|
+
import { useRtl } from "../../composables/rtl.mjs";
|
|
13
|
+
import { IconValue } from "../../composables/icons.mjs"; // Utilities
|
|
13
14
|
|
|
14
15
|
import { bias, calculateCenteredOffset, calculateUpdatedOffset } from "./helpers.mjs";
|
|
15
16
|
import { clamp, defineComponent, useRender } from "../../util/index.mjs";
|
|
@@ -19,10 +20,6 @@ export const VSlideGroupSymbol = Symbol.for('vuetify:v-slide-group');
|
|
|
19
20
|
export const VSlideGroup = defineComponent({
|
|
20
21
|
name: 'VSlideGroup',
|
|
21
22
|
props: {
|
|
22
|
-
activeClass: {
|
|
23
|
-
type: String,
|
|
24
|
-
default: 'v-slide-item--active'
|
|
25
|
-
},
|
|
26
23
|
centerActive: Boolean,
|
|
27
24
|
direction: {
|
|
28
25
|
type: String,
|
|
@@ -33,11 +30,11 @@ export const VSlideGroup = defineComponent({
|
|
|
33
30
|
default: VSlideGroupSymbol
|
|
34
31
|
},
|
|
35
32
|
nextIcon: {
|
|
36
|
-
type:
|
|
33
|
+
type: IconValue,
|
|
37
34
|
default: '$next'
|
|
38
35
|
},
|
|
39
36
|
prevIcon: {
|
|
40
|
-
type:
|
|
37
|
+
type: IconValue,
|
|
41
38
|
default: '$prev'
|
|
42
39
|
},
|
|
43
40
|
showArrows: {
|
|
@@ -45,7 +42,9 @@ export const VSlideGroup = defineComponent({
|
|
|
45
42
|
validator: v => typeof v === 'boolean' || ['always', 'desktop', 'mobile'].includes(v)
|
|
46
43
|
},
|
|
47
44
|
...makeTagProps(),
|
|
48
|
-
...makeGroupProps(
|
|
45
|
+
...makeGroupProps({
|
|
46
|
+
selectedClass: 'v-slide-group-item--active'
|
|
47
|
+
})
|
|
49
48
|
},
|
|
50
49
|
emits: {
|
|
51
50
|
'update:modelValue': value => true
|
|
@@ -71,21 +70,31 @@ export const VSlideGroup = defineComponent({
|
|
|
71
70
|
resizeRef: containerRef,
|
|
72
71
|
contentRect: containerRect
|
|
73
72
|
} = useResizeObserver();
|
|
74
|
-
const
|
|
73
|
+
const {
|
|
74
|
+
resizeRef: contentRef,
|
|
75
|
+
contentRect
|
|
76
|
+
} = useResizeObserver();
|
|
75
77
|
watchEffect(() => {
|
|
76
|
-
if (!containerRect.value || !
|
|
78
|
+
if (!containerRect.value || !contentRect.value) return;
|
|
77
79
|
const sizeProperty = isHorizontal.value ? 'width' : 'height';
|
|
78
80
|
containerSize.value = containerRect.value[sizeProperty];
|
|
79
|
-
contentSize.value =
|
|
81
|
+
contentSize.value = contentRect.value[sizeProperty];
|
|
80
82
|
isOverflowing.value = containerSize.value + 1 < contentSize.value;
|
|
81
83
|
});
|
|
82
|
-
|
|
83
|
-
if (!selected.length
|
|
84
|
-
|
|
84
|
+
const firstSelectedIndex = computed(() => {
|
|
85
|
+
if (!group.selected.value.length) return -1;
|
|
86
|
+
return group.items.value.findIndex(item => item.id === group.selected.value[0]);
|
|
87
|
+
});
|
|
88
|
+
const lastSelectedIndex = computed(() => {
|
|
89
|
+
if (!group.selected.value.length) return -1;
|
|
90
|
+
return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1]);
|
|
91
|
+
});
|
|
92
|
+
watch(group.selected, () => {
|
|
93
|
+
if (firstSelectedIndex.value < 0 || !contentRef.value) return; // TODO: Is this too naive? Should we store element references in group composable?
|
|
85
94
|
|
|
86
|
-
const selectedElement = contentRef.value.children[
|
|
95
|
+
const selectedElement = contentRef.value.children[lastSelectedIndex.value];
|
|
87
96
|
|
|
88
|
-
if (
|
|
97
|
+
if (firstSelectedIndex.value === 0 || !isOverflowing.value) {
|
|
89
98
|
scrollOffset.value = 0;
|
|
90
99
|
} else if (props.centerActive) {
|
|
91
100
|
scrollOffset.value = calculateCenteredOffset({
|
|
@@ -106,6 +115,20 @@ export const VSlideGroup = defineComponent({
|
|
|
106
115
|
});
|
|
107
116
|
}
|
|
108
117
|
});
|
|
118
|
+
let firstOverflow = true;
|
|
119
|
+
watch(isOverflowing, () => {
|
|
120
|
+
if (!firstOverflow || !contentRef.value || firstSelectedIndex.value < 0) return;
|
|
121
|
+
firstOverflow = false; // TODO: Is this too naive? Should we store element references in group composable?
|
|
122
|
+
|
|
123
|
+
const selectedElement = contentRef.value.children[firstSelectedIndex.value];
|
|
124
|
+
scrollOffset.value = calculateCenteredOffset({
|
|
125
|
+
selectedElement,
|
|
126
|
+
containerSize: containerSize.value,
|
|
127
|
+
contentSize: contentSize.value,
|
|
128
|
+
isRtl: isRtl.value,
|
|
129
|
+
isHorizontal: isHorizontal.value
|
|
130
|
+
});
|
|
131
|
+
});
|
|
109
132
|
const disableTransition = ref(false);
|
|
110
133
|
let startTouch = 0;
|
|
111
134
|
let startOffset = 0;
|
|
@@ -253,7 +276,7 @@ export const VSlideGroup = defineComponent({
|
|
|
253
276
|
// Always show arrows on desktop
|
|
254
277
|
|
|
255
278
|
case 'desktop':
|
|
256
|
-
return mobile.value;
|
|
279
|
+
return !mobile.value;
|
|
257
280
|
// Show arrows on mobile when overflowing.
|
|
258
281
|
// This matches the default 2.2 behavior
|
|
259
282
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"names":["VFadeTransition","VIcon","makeGroupProps","useGroup","makeTagProps","useDisplay","useResizeObserver","useRtl","bias","calculateCenteredOffset","calculateUpdatedOffset","clamp","defineComponent","useRender","computed","ref","watch","watchEffect","VSlideGroupSymbol","Symbol","for","VSlideGroup","name","props","activeClass","type","String","default","centerActive","Boolean","direction","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","emits","value","setup","slots","isRtl","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","sizeProperty","getBoundingClientRect","selected","length","index","items","findIndex","item","id","selectedElement","children","currentScrollOffset","disableTransition","startTouch","startOffset","onTouchstart","e","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","scrollLeft","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","querySelector","focusable","querySelectorAll","filter","hasAttribute","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","sign","newAbosluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext"],"mappings":"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","sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, defineComponent, useRender } from '@/util'\nimport { computed, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\nexport const VSlideGroup = defineComponent({\n name: 'VSlideGroup',\n\n props: {\n activeClass: {\n type: String,\n default: 'v-slide-item--active',\n },\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n ...makeTagProps(),\n ...makeGroupProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = ref(false)\n const scrollOffset = ref(0)\n const containerSize = ref(0)\n const contentSize = ref(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const contentRef = ref<HTMLElement>()\n\n watchEffect(() => {\n if (!containerRect.value || !contentRef.value) return\n\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRef.value.getBoundingClientRect()[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n })\n\n watch(group.selected, selected => {\n if (!selected.length || !contentRef.value) return\n\n const index = group.items.value.findIndex(item => item.id === selected[selected.length - 1])\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[index] as HTMLElement\n\n if (index === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n })\n\n const disableTransition = ref(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n startOffset = scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n scrollOffset.value = startOffset + startTouch - e.touches[0][sizeProperty]\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (isRtl.value) {\n if (scrollOffset.value > 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value <= -maxScrollOffset) {\n scrollOffset.value = -maxScrollOffset\n }\n } else {\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n containerRef.value && (containerRef.value.scrollLeft = 0)\n }\n\n const isFocused = ref(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n if (e.key === (isHorizontal.value ? 'ArrowRight' : 'ArrowDown')) {\n focus('next')\n } else if (e.key === (isHorizontal.value ? 'ArrowLeft' : 'ArrowUp')) {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n contentRef.value.querySelector('[tabindex]')\n const focusable = [...contentRef.value.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const sign = isRtl.value ? -1 : 1\n const newAbosluteOffset = sign * scrollOffset.value +\n (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = sign * clamp(newAbosluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n const scrollAmount = scrollOffset.value <= 0\n ? bias(-scrollOffset.value)\n : scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return hasAffixes.value && scrollOffset.value > 0\n })\n\n const hasNext = computed(() => {\n if (!hasAffixes.value) return false\n\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n ]}\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.prevIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n\n <div\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.nextIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"file":"VSlideGroup.mjs"}
|
|
1
|
+
{"version":3,"file":"VSlideGroup.mjs","names":["VFadeTransition","VIcon","makeGroupProps","useGroup","makeTagProps","useDisplay","useResizeObserver","useRtl","IconValue","bias","calculateCenteredOffset","calculateUpdatedOffset","clamp","defineComponent","useRender","computed","ref","watch","watchEffect","VSlideGroupSymbol","Symbol","for","VSlideGroup","name","props","centerActive","Boolean","direction","type","String","default","symbol","nextIcon","prevIcon","showArrows","validator","v","includes","selectedClass","emits","value","setup","slots","isRtl","mobile","group","isOverflowing","scrollOffset","containerSize","contentSize","isHorizontal","resizeRef","containerRef","contentRect","containerRect","contentRef","sizeProperty","firstSelectedIndex","selected","length","items","findIndex","item","id","lastSelectedIndex","selectedElement","children","currentScrollOffset","firstOverflow","disableTransition","startTouch","startOffset","onTouchstart","e","touches","onTouchmove","onTouchend","maxScrollOffset","onScroll","scrollLeft","isFocused","onFocusin","el","composedPath","onFocusout","onFocus","relatedTarget","contains","focus","onKeydown","key","location","querySelector","focusable","querySelectorAll","filter","hasAttribute","nextElementSibling","previousElementSibling","firstElementChild","lastElementChild","scrollTo","sign","newAbosluteOffset","contentStyles","scrollAmount","transform","transition","willChange","slotProps","next","prev","select","isSelected","hasAffixes","Math","abs","hasPrev","hasNext"],"sources":["../../../src/components/VSlideGroup/VSlideGroup.tsx"],"sourcesContent":["// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, defineComponent, useRender } from '@/util'\nimport { computed, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\nexport const VSlideGroup = defineComponent({\n name: 'VSlideGroup',\n\n props: {\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = ref(false)\n const scrollOffset = ref(0)\n const containerSize = ref(0)\n const contentSize = ref(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n watchEffect(() => {\n if (!containerRect.value || !contentRect.value) return\n\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n watch(group.selected, () => {\n if (firstSelectedIndex.value < 0 || !contentRef.value) return\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n })\n\n let firstOverflow = true\n watch(isOverflowing, () => {\n if (!firstOverflow || !contentRef.value || firstSelectedIndex.value < 0) return\n\n firstOverflow = false\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[firstSelectedIndex.value] as HTMLElement\n\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n })\n\n const disableTransition = ref(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n startOffset = scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n scrollOffset.value = startOffset + startTouch - e.touches[0][sizeProperty]\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (isRtl.value) {\n if (scrollOffset.value > 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value <= -maxScrollOffset) {\n scrollOffset.value = -maxScrollOffset\n }\n } else {\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n containerRef.value && (containerRef.value.scrollLeft = 0)\n }\n\n const isFocused = ref(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n if (e.key === (isHorizontal.value ? 'ArrowRight' : 'ArrowDown')) {\n focus('next')\n } else if (e.key === (isHorizontal.value ? 'ArrowLeft' : 'ArrowUp')) {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n contentRef.value.querySelector('[tabindex]')\n const focusable = [...contentRef.value.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const sign = isRtl.value ? -1 : 1\n const newAbosluteOffset = sign * scrollOffset.value +\n (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = sign * clamp(newAbosluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n const scrollAmount = scrollOffset.value <= 0\n ? bias(-scrollOffset.value)\n : scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return hasAffixes.value && scrollOffset.value > 0\n })\n\n const hasNext = computed(() => {\n if (!hasAffixes.value) return false\n\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n ]}\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.prevIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n\n <div\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.nextIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
@forward './variables'
|
|
2
1
|
@use 'sass:math'
|
|
3
2
|
@use 'sass:map'
|
|
4
3
|
@use '../../styles/settings'
|
|
@@ -9,10 +8,6 @@
|
|
|
9
8
|
.v-slide-group
|
|
10
9
|
display: flex
|
|
11
10
|
|
|
12
|
-
.v-slide-item
|
|
13
|
-
display: inline-flex
|
|
14
|
-
flex: 0 1 auto
|
|
15
|
-
|
|
16
11
|
// Element
|
|
17
12
|
.v-slide-group__next,
|
|
18
13
|
.v-slide-group__prev
|
|
@@ -18,7 +18,9 @@ export const VSlideGroupItem = defineComponent({
|
|
|
18
18
|
|
|
19
19
|
return (_slots$default = slots.default) == null ? void 0 : _slots$default.call(slots, {
|
|
20
20
|
isSelected: slideGroupItem.isSelected.value,
|
|
21
|
-
select: slideGroupItem.select
|
|
21
|
+
select: slideGroupItem.select,
|
|
22
|
+
toggle: slideGroupItem.toggle,
|
|
23
|
+
selectedClass: slideGroupItem.selectedClass.value
|
|
22
24
|
});
|
|
23
25
|
};
|
|
24
26
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"VSlideGroupItem.mjs","names":["makeGroupItemProps","useGroupItem","VSlideGroupSymbol","defineComponent","VSlideGroupItem","name","props","setup","slots","slideGroupItem","default","isSelected","value","select","toggle","selectedClass"],"sources":["../../../src/components/VSlideGroup/VSlideGroupItem.tsx"],"sourcesContent":["// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VSlideGroupItem = defineComponent({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n"],"mappings":"AAAA;SACSA,kB,EAAoBC,Y;SACpBC,iB,6BAET;;SACSC,e;AAET,OAAO,MAAMC,eAAe,GAAGD,eAAe,CAAC;EAC7CE,IAAI,EAAE,iBADuC;EAG7CC,KAAK,EAAE,EACL,GAAGN,kBAAkB;EADhB,CAHsC;;EAO7CO,KAAK,CAAED,KAAF,QAAoB;IAAA,IAAX;MAAEE;IAAF,CAAW;IACvB,MAAMC,cAAc,GAAGR,YAAY,CAACK,KAAD,EAAQJ,iBAAR,CAAnC;IAEA,OAAO;MAAA;;MAAA,yBAAMM,KAAK,CAACE,OAAZ,qBAAM,oBAAAF,KAAK,EAAW;QAC3BG,UAAU,EAAEF,cAAc,CAACE,UAAf,CAA0BC,KADX;QAE3BC,MAAM,EAAEJ,cAAc,CAACI,MAFI;QAG3BC,MAAM,EAAEL,cAAc,CAACK,MAHI;QAI3BC,aAAa,EAAEN,cAAc,CAACM,aAAf,CAA6BH;MAJjB,CAAX,CAAX;IAAA,CAAP;EAMD;;AAhB4C,CAAD,CAAvC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"helpers.mjs","names":["bias","val","c","x","Math","abs","sign","calculateUpdatedOffset","selectedElement","containerSize","contentSize","isRtl","currentScrollOffset","isHorizontal","clientSize","clientWidth","clientHeight","offsetStart","offsetLeft","offsetTop","adjustedOffsetStart","totalSize","itemOffset","additionalOffset","max","min","calculateCenteredOffset","offsetCentered"],"sources":["../../../src/components/VSlideGroup/helpers.ts"],"sourcesContent":["export function bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n currentScrollOffset,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n currentScrollOffset: number\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n const adjustedOffsetStart = isRtl ? (contentSize - offsetStart - clientSize) : offsetStart\n\n if (isRtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalSize = containerSize + currentScrollOffset\n const itemOffset = clientSize + adjustedOffsetStart\n const additionalOffset = clientSize * 0.4\n\n if (adjustedOffsetStart <= currentScrollOffset) {\n currentScrollOffset = Math.max(adjustedOffsetStart - additionalOffset, 0)\n } else if (totalSize <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalSize - itemOffset - additionalOffset), contentSize - containerSize)\n }\n\n return isRtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n\n if (isRtl) {\n const offsetCentered = contentSize - offsetStart - clientSize / 2 - containerSize / 2\n return -Math.min(contentSize - containerSize, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetStart + clientSize / 2 - containerSize / 2\n return Math.min(contentSize - containerSize, Math.max(0, offsetCentered))\n }\n}\n"],"mappings":"AAAA,OAAO,SAASA,IAAT,CAAeC,GAAf,EAA4B;EACjC,MAAMC,CAAC,GAAG,KAAV;EACA,MAAMC,CAAC,GAAGC,IAAI,CAACC,GAAL,CAASJ,GAAT,CAAV;EACA,OAAOG,IAAI,CAACE,IAAL,CAAUL,GAAV,KAAkBE,CAAC,IAAI,CAAC,IAAID,CAAJ,GAAQ,CAAT,KAAe,IAAIC,CAAnB,IAAwB,CAA5B,CAAnB,CAAP;AACD;AAED,OAAO,SAASI,sBAAT,OAcI;EAAA,IAd6B;IACtCC,eADsC;IAEtCC,aAFsC;IAGtCC,WAHsC;IAItCC,KAJsC;IAKtCC,mBALsC;IAMtCC;EANsC,CAc7B;EACT,MAAMC,UAAU,GAAGD,YAAY,GAAGL,eAAe,CAACO,WAAnB,GAAiCP,eAAe,CAACQ,YAAhF;EACA,MAAMC,WAAW,GAAGJ,YAAY,GAAGL,eAAe,CAACU,UAAnB,GAAgCV,eAAe,CAACW,SAAhF;EACA,MAAMC,mBAAmB,GAAGT,KAAK,GAAID,WAAW,GAAGO,WAAd,GAA4BH,UAAhC,GAA8CG,WAA/E;;EAEA,IAAIN,KAAJ,EAAW;IACTC,mBAAmB,GAAG,CAACA,mBAAvB;EACD;;EAED,MAAMS,SAAS,GAAGZ,aAAa,GAAGG,mBAAlC;EACA,MAAMU,UAAU,GAAGR,UAAU,GAAGM,mBAAhC;EACA,MAAMG,gBAAgB,GAAGT,UAAU,GAAG,GAAtC;;EAEA,IAAIM,mBAAmB,IAAIR,mBAA3B,EAAgD;IAC9CA,mBAAmB,GAAGR,IAAI,CAACoB,GAAL,CAASJ,mBAAmB,GAAGG,gBAA/B,EAAiD,CAAjD,CAAtB;EACD,CAFD,MAEO,IAAIF,SAAS,IAAIC,UAAjB,EAA6B;IAClCV,mBAAmB,GAAGR,IAAI,CAACqB,GAAL,CAASb,mBAAmB,IAAIS,SAAS,GAAGC,UAAZ,GAAyBC,gBAA7B,CAA5B,EAA4Eb,WAAW,GAAGD,aAA1F,CAAtB;EACD;;EAED,OAAOE,KAAK,GAAG,CAACC,mBAAJ,GAA0BA,mBAAtC;AACD;AAED,OAAO,SAASc,uBAAT,QAYI;EAAA,IAZ8B;IACvClB,eADuC;IAEvCC,aAFuC;IAGvCC,WAHuC;IAIvCC,KAJuC;IAKvCE;EALuC,CAY9B;EACT,MAAMC,UAAU,GAAGD,YAAY,GAAGL,eAAe,CAACO,WAAnB,GAAiCP,eAAe,CAACQ,YAAhF;EACA,MAAMC,WAAW,GAAGJ,YAAY,GAAGL,eAAe,CAACU,UAAnB,GAAgCV,eAAe,CAACW,SAAhF;;EAEA,IAAIR,KAAJ,EAAW;IACT,MAAMgB,cAAc,GAAGjB,WAAW,GAAGO,WAAd,GAA4BH,UAAU,GAAG,CAAzC,GAA6CL,aAAa,GAAG,CAApF;IACA,OAAO,CAACL,IAAI,CAACqB,GAAL,CAASf,WAAW,GAAGD,aAAvB,EAAsCL,IAAI,CAACoB,GAAL,CAAS,CAAT,EAAYG,cAAZ,CAAtC,CAAR;EACD,CAHD,MAGO;IACL,MAAMA,cAAc,GAAGV,WAAW,GAAGH,UAAU,GAAG,CAA3B,GAA+BL,aAAa,GAAG,CAAtE;IACA,OAAOL,IAAI,CAACqB,GAAL,CAASf,WAAW,GAAGD,aAAvB,EAAsCL,IAAI,CAACoB,GAAL,CAAS,CAAT,EAAYG,cAAZ,CAAtC,CAAP;EACD;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/components/VSlideGroup/index.ts"],"sourcesContent":["export * from './VSlideGroup'\nexport * from './VSlideGroupItem'\n"],"mappings":""}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
.v-slider input {
|
|
1
|
+
.v-slider .v-slider__container input {
|
|
2
2
|
cursor: default;
|
|
3
3
|
padding: 0;
|
|
4
4
|
width: 100%;
|
|
5
5
|
display: none;
|
|
6
6
|
}
|
|
7
|
+
.v-slider .v-input__append, .v-slider .v-input__prepend {
|
|
8
|
+
padding: 0;
|
|
9
|
+
}
|
|
7
10
|
|
|
8
11
|
.v-slider__container {
|
|
9
12
|
position: relative;
|
|
@@ -22,6 +25,7 @@
|
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
.v-slider.v-input--horizontal {
|
|
28
|
+
align-items: center;
|
|
25
29
|
margin-left: 8px;
|
|
26
30
|
margin-right: 8px;
|
|
27
31
|
}
|
|
@@ -32,6 +36,7 @@
|
|
|
32
36
|
}
|
|
33
37
|
|
|
34
38
|
.v-slider.v-input--vertical {
|
|
39
|
+
justify-content: center;
|
|
35
40
|
margin-top: 12px;
|
|
36
41
|
margin-bottom: 12px;
|
|
37
42
|
}
|
|
@@ -44,5 +49,5 @@
|
|
|
44
49
|
}
|
|
45
50
|
|
|
46
51
|
.v-slider--has-labels .v-input__control {
|
|
47
|
-
margin-bottom:
|
|
52
|
+
margin-bottom: 4px;
|
|
48
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"VSlider.mjs","names":["VInput","VSliderThumb","VSliderTrack","makeFocusProps","useFocus","makeSliderProps","useSlider","useProxiedModel","defineComponent","computed","ref","filterInputProps","makeVInputProps","VSlider","name","props","modelValue","type","Number","String","default","emits","value","v","setup","attrs","slots","thumbContainerRef","min","max","mousePressed","roundValue","onSliderMousedown","onSliderTouchstart","trackContainerRef","position","hasLabels","readonly","handleSliderMouseUp","newValue","model","handleMouseMove","getActiveThumb","$el","undefined","parseFloat","isFocused","focus","blur","trackStop","inputProps","_","disabled","id","elevation"],"sources":["../../../src/components/VSlider/VSlider.tsx"],"sourcesContent":["// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VInput } from '../VInput'\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Helpers\nimport { defineComponent } from '@/util'\n\n// Types\nimport { computed, ref } from 'vue'\nimport { filterInputProps, makeVInputProps } from '../VInput/VInput'\n\nexport const VSlider = defineComponent({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { attrs, slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n return () => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n }\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n"],"mappings":"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"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// Imports
|
|
2
|
-
@forward './variables'
|
|
3
1
|
@use 'sass:map'
|
|
4
2
|
@use 'sass:selector'
|
|
5
3
|
@use '../../styles/settings'
|
|
@@ -8,11 +6,15 @@
|
|
|
8
6
|
|
|
9
7
|
// Block
|
|
10
8
|
.v-slider
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
.v-slider__container
|
|
10
|
+
input
|
|
11
|
+
cursor: default
|
|
12
|
+
padding: 0
|
|
13
|
+
width: 100%
|
|
14
|
+
display: none
|
|
15
|
+
|
|
16
|
+
.v-input__append, .v-input__prepend
|
|
13
17
|
padding: 0
|
|
14
|
-
width: 100%
|
|
15
|
-
display: none
|
|
16
18
|
|
|
17
19
|
// Elements
|
|
18
20
|
.v-slider__container
|
|
@@ -32,6 +34,7 @@
|
|
|
32
34
|
|
|
33
35
|
// Modifiers
|
|
34
36
|
.v-slider.v-input--horizontal
|
|
37
|
+
align-items: center
|
|
35
38
|
margin-left: $slider-horizontal-left
|
|
36
39
|
margin-right: $slider-horizontal-right
|
|
37
40
|
|
|
@@ -41,6 +44,7 @@
|
|
|
41
44
|
align-items: center
|
|
42
45
|
|
|
43
46
|
.v-slider.v-input--vertical
|
|
47
|
+
justify-content: center
|
|
44
48
|
margin-top: $slider-vertical-margin-top
|
|
45
49
|
margin-bottom: $slider-vertical-margin-bottom
|
|
46
50
|
|
|
@@ -51,4 +55,4 @@
|
|
|
51
55
|
pointer-events: none
|
|
52
56
|
|
|
53
57
|
.v-slider--has-labels .v-input__control
|
|
54
|
-
margin-bottom: $slider-tick-label-margin-
|
|
58
|
+
margin-bottom: $slider-tick-label-margin-top * .5
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"names":["VScaleTransition","VSliderSymbol","useElevation","Ripple","useTextColor","computed","inject","convertToUnit","defineComponent","keyValues","VSliderThumb","name","directives","props","focused","Boolean","max","type","Number","required","min","modelValue","position","emits","v","setup","slots","emit","slider","Error","thumbColor","step","vertical","disabled","thumbSize","thumbLabel","direction","readonly","elevation","isReversed","horizontalDirection","mousePressed","decimals","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","value","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","Math","onKeydown","newValue","positionPercentage","inset","elevationClasses","undefined","toFixed"],"mappings":"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","sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VScaleTransition } from '../transitions'\nimport { VSliderSymbol } from './slider'\nimport { useElevation } from '@/composables/elevation'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent, keyValues } from '@/util'\n\nexport const VSliderThumb = defineComponent({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: {\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n },\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n vertical,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n readonly,\n elevation,\n isReversed,\n horizontalDirection,\n mousePressed,\n decimals,\n } = slider\n\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = isReversed.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n return () => {\n const positionPercentage = convertToUnit(vertical.value ? 100 - props.position : props.position, '%')\n const inset = vertical.value ? 'block' : 'inline'\n const { elevationClasses } = useElevation(computed(() => !disabled.value ? elevation.value : undefined))\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n ]}\n style={{\n [`inset-${inset}-start`]: `calc(${positionPercentage} - var(--v-slider-thumb-size) / 2)`,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[true, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n }\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"file":"VSliderThumb.mjs"}
|
|
1
|
+
{"version":3,"file":"VSliderThumb.mjs","names":["VScaleTransition","VSliderSymbol","useElevation","Ripple","useTextColor","computed","inject","convertToUnit","defineComponent","keyValues","VSliderThumb","name","directives","props","focused","Boolean","max","type","Number","required","min","modelValue","position","emits","v","setup","slots","emit","slider","Error","thumbColor","step","vertical","disabled","thumbSize","thumbLabel","direction","readonly","elevation","isReversed","horizontalDirection","mousePressed","decimals","textColorClasses","textColorStyles","pageup","pagedown","end","home","left","right","down","up","relevantKeys","multipliers","value","parseKeydown","e","includes","key","preventDefault","_step","steps","increase","multiplier","shiftKey","ctrlKey","Math","onKeydown","newValue","positionPercentage","inset","elevationClasses","undefined","toFixed"],"sources":["../../../src/components/VSlider/VSliderThumb.tsx"],"sourcesContent":["// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VScaleTransition } from '../transitions'\nimport { VSliderSymbol } from './slider'\nimport { useElevation } from '@/composables/elevation'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent, keyValues } from '@/util'\n\nexport const VSliderThumb = defineComponent({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: {\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n },\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n vertical,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n readonly,\n elevation,\n isReversed,\n horizontalDirection,\n mousePressed,\n decimals,\n } = slider\n\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = isReversed.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n return () => {\n const positionPercentage = convertToUnit(vertical.value ? 100 - props.position : props.position, '%')\n const inset = vertical.value ? 'block' : 'inline'\n const { elevationClasses } = useElevation(computed(() => !disabled.value ? elevation.value : undefined))\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n ]}\n style={{\n [`inset-${inset}-start`]: `calc(${positionPercentage} - var(--v-slider-thumb-size) / 2)`,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[true, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n }\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n"],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@
|
|
|
77
77
|
height: inherit;
|
|
78
78
|
}
|
|
79
79
|
.v-slider.v-input--horizontal .v-slider-track__tick {
|
|
80
|
-
margin-
|
|
80
|
+
margin-top: calc(calc(var(--v-slider-track-size) + 2px) / 2);
|
|
81
81
|
}
|
|
82
82
|
.v-slider.v-input--horizontal .v-slider-track__tick.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--horizontal .v-slider-track__tick {
|
|
83
83
|
transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / -2));
|
|
@@ -101,7 +101,7 @@
|
|
|
101
101
|
transform: translateX(100%);
|
|
102
102
|
}
|
|
103
103
|
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
104
|
-
|
|
104
|
+
margin-top: calc(var(--v-slider-track-size) / 2 + 8px);
|
|
105
105
|
}
|
|
106
106
|
.v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label.v-locale--is-ltr, .v-locale--is-ltr .v-slider.v-input--horizontal .v-slider-track__tick .v-slider-track__tick-label {
|
|
107
107
|
transform: translateX(-50%);
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
height: 100%;
|
|
115
115
|
display: flex;
|
|
116
116
|
justify-content: center;
|
|
117
|
-
width: calc(var(--v-slider-track-size
|
|
117
|
+
width: calc(var(--v-slider-track-size) + 2px);
|
|
118
118
|
touch-action: pan-x;
|
|
119
119
|
}
|
|
120
120
|
.v-slider.v-input--vertical .v-slider-track__background {
|
|
@@ -127,17 +127,17 @@
|
|
|
127
127
|
height: 100%;
|
|
128
128
|
}
|
|
129
129
|
.v-slider.v-input--vertical .v-slider-track__tick {
|
|
130
|
-
margin-inline-start: calc(var(--v-slider-track-size) / 2
|
|
130
|
+
margin-inline-start: calc(calc(var(--v-slider-track-size) + 2px) / 2);
|
|
131
131
|
transform: translate(calc(var(--v-slider-tick-size) / -2), calc(var(--v-slider-tick-size) / 2));
|
|
132
132
|
}
|
|
133
133
|
.v-slider.v-input--vertical .v-slider-track__tick.v-locale--is-rtl, .v-locale--is-rtl .v-slider.v-input--vertical .v-slider-track__tick {
|
|
134
134
|
transform: translate(calc(var(--v-slider-tick-size) / 2), calc(var(--v-slider-tick-size) / 2));
|
|
135
135
|
}
|
|
136
136
|
.v-slider.v-input--vertical .v-slider-track__tick:last-child {
|
|
137
|
-
|
|
137
|
+
bottom: calc(0% + var(--v-slider-tick-size) + 1px);
|
|
138
138
|
}
|
|
139
139
|
.v-slider.v-input--vertical .v-slider-track__tick .v-slider-track__tick-label {
|
|
140
|
-
margin-inline-start: calc(var(--v-slider-track-size) +
|
|
140
|
+
margin-inline-start: calc(var(--v-slider-track-size) / 2 + 12px);
|
|
141
141
|
transform: translateY(-50%);
|
|
142
142
|
}
|
|
143
143
|
|
|
@@ -72,14 +72,15 @@ export const VSliderTrack = defineComponent({
|
|
|
72
72
|
return ticks.map((tick, index) => {
|
|
73
73
|
var _slots$tickLabel, _slots$tickLabel2;
|
|
74
74
|
|
|
75
|
-
const directionProperty = vertical.value ? '
|
|
75
|
+
const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start';
|
|
76
|
+
const directionValue = tick.position > 0 && tick.position < 100 ? convertToUnit(tick.position, '%') : undefined;
|
|
76
77
|
return _createVNode("div", {
|
|
77
78
|
"key": tick.value,
|
|
78
79
|
"class": ['v-slider-track__tick', {
|
|
79
80
|
'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop
|
|
80
81
|
}],
|
|
81
82
|
"style": {
|
|
82
|
-
[directionProperty]:
|
|
83
|
+
[directionProperty]: directionValue
|
|
83
84
|
}
|
|
84
85
|
}, [(tick.label || slots['tick-label']) && _createVNode("div", {
|
|
85
86
|
"class": "v-slider-track__tick-label"
|