@vuetify/nightly 3.0.0-beta.0 → 3.0.0-beta.13
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 +13 -2
- package/_settings.scss +2 -0
- package/_styles.scss +1 -0
- package/_tools.scss +1 -0
- package/dist/_component-variables.sass +61 -0
- package/dist/json/attributes.json +898 -526
- package/dist/json/importMap.json +156 -180
- package/dist/json/tags.json +221 -147
- package/dist/json/web-types.json +2698 -1609
- package/dist/vuetify.css +4126 -4566
- package/dist/vuetify.d.ts +13705 -11374
- package/dist/vuetify.esm.js +11107 -9293
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +11015 -9200
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +3 -3
- package/dist/vuetify.min.js +1375 -1254
- package/dist/vuetify.min.js.map +1 -1
- package/lib/blueprints/index.d.ts +171 -0
- package/lib/blueprints/index.mjs +4 -0
- package/lib/blueprints/index.mjs.map +1 -0
- package/lib/blueprints/md1.d.ts +167 -0
- package/lib/blueprints/md1.mjs +63 -0
- package/lib/blueprints/md1.mjs.map +1 -0
- package/lib/blueprints/md2.d.ts +167 -0
- package/lib/blueprints/md2.mjs +60 -0
- package/lib/blueprints/md2.mjs.map +1 -0
- package/lib/blueprints/md3.d.ts +167 -0
- package/lib/blueprints/md3.mjs +74 -0
- package/lib/blueprints/md3.mjs.map +1 -0
- package/lib/components/VAlert/VAlert.css +36 -19
- package/lib/components/VAlert/VAlert.mjs +69 -40
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +26 -11
- 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.d.ts +185 -0
- package/lib/components/VAlert/index.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +2 -15
- package/lib/components/VApp/VApp.mjs +3 -4
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +11 -20
- package/lib/components/VApp/index.d.ts +83 -0
- package/lib/components/VApp/index.mjs.map +1 -1
- package/lib/components/VApp/variables.scss +6 -0
- package/lib/components/VAppBar/VAppBar.css +4 -1
- package/lib/components/VAppBar/VAppBar.mjs +15 -10
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +3 -1
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +11 -14
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +7 -4
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/_variables.scss +2 -0
- package/lib/components/VAppBar/index.d.ts +156 -0
- package/lib/components/VAppBar/index.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +11 -1
- package/lib/components/VAutocomplete/VAutocomplete.mjs +142 -105
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +10 -2
- package/lib/components/VAutocomplete/_variables.scss +1 -0
- package/lib/components/VAutocomplete/index.d.ts +1569 -0
- package/lib/components/VAutocomplete/index.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +48 -3
- package/lib/components/VAvatar/VAvatar.mjs +29 -23
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +10 -3
- package/lib/components/VAvatar/_mixins.scss +0 -1
- package/lib/components/VAvatar/_variables.scss +9 -4
- package/lib/components/VAvatar/index.d.ts +80 -0
- package/lib/components/VAvatar/index.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +3 -6
- package/lib/components/VBadge/VBadge.mjs +20 -49
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +2 -5
- package/lib/components/VBadge/_variables.scss +3 -4
- package/lib/components/VBadge/index.d.ts +123 -0
- package/lib/components/VBadge/index.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +81 -57
- package/lib/components/VBanner/VBanner.mjs +45 -37
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +60 -55
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerText.mjs.map +1 -1
- package/lib/components/VBanner/_variables.scss +10 -14
- package/lib/components/VBanner/index.d.ts +122 -0
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +6 -13
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +5 -4
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +6 -14
- package/lib/components/VBottomNavigation/_variables.scss +7 -8
- package/lib/components/VBottomNavigation/index.d.ts +143 -0
- 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.css +13 -6
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +35 -21
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +8 -4
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +15 -17
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/_variables.scss +2 -1
- package/lib/components/VBreadcrumbs/index.d.ts +301 -0
- package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.css +141 -28
- package/lib/components/VBtn/VBtn.mjs +109 -34
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +119 -16
- package/lib/components/VBtn/_variables.scss +10 -1
- package/lib/components/VBtn/index.d.ts +210 -0
- package/lib/components/VBtn/index.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +16 -7
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.sass +14 -7
- package/lib/components/VBtnGroup/_variables.scss +2 -0
- package/lib/components/VBtnGroup/index.d.ts +65 -0
- package/lib/components/VBtnGroup/index.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.mjs +1 -3
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +0 -1
- package/lib/components/VBtnToggle/_variables.scss +1 -0
- package/lib/components/VBtnToggle/index.d.ts +175 -0
- 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 +2 -6
- 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 +108 -84
- package/lib/components/VCard/VCard.mjs +72 -73
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +76 -61
- package/lib/components/VCard/VCardActions.mjs +2 -3
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardItem.mjs +88 -0
- package/lib/components/VCard/VCardItem.mjs.map +1 -0
- package/lib/components/VCard/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 +45 -23
- package/lib/components/VCard/index.d.ts +230 -0
- package/lib/components/VCard/index.mjs +1 -4
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.mjs +9 -7
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +0 -1
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/_variables.scss +1 -0
- package/lib/components/VCarousel/index.d.ts +80 -0
- 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.d.ts +291 -0
- package/lib/components/VCheckbox/index.mjs +1 -0
- package/lib/components/VCheckbox/index.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +147 -68
- package/lib/components/VChip/VChip.mjs +83 -43
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +9 -1
- package/lib/components/VChip/_mixins.scss +26 -6
- package/lib/components/VChip/_variables.scss +4 -5
- package/lib/components/VChip/index.d.ts +195 -0
- package/lib/components/VChip/index.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.mjs +5 -4
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.sass +1 -1
- package/lib/components/VChipGroup/_variables.scss +1 -1
- package/lib/components/VChipGroup/index.d.ts +89 -0
- 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.d.ts +19 -0
- package/lib/components/VCode/index.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.css +3 -3
- package/lib/components/VColorPicker/VColorPicker.mjs +55 -53
- 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 +10 -9
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +4 -3
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +14 -21
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +0 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +6 -5
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +0 -1
- package/lib/components/VColorPicker/_variables.scss +17 -10
- package/lib/components/VColorPicker/index.d.ts +116 -0
- package/lib/components/VColorPicker/index.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs +1 -3
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +11 -1
- package/lib/components/VCombobox/VCombobox.mjs +145 -116
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +10 -2
- package/lib/components/VCombobox/_variables.scss +1 -0
- package/lib/components/VCombobox/index.d.ts +1590 -0
- package/lib/components/VCombobox/index.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.mjs +16 -16
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +1 -2
- package/lib/components/VCounter/_variables.scss +2 -1
- package/lib/components/VCounter/index.d.ts +223 -0
- 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 +11 -15
- 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 +1 -3
- 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.d.ts +26 -0
- package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +36 -17
- package/lib/components/VDialog/VDialog.mjs +46 -38
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +30 -15
- package/lib/components/VDialog/_variables.scss +3 -8
- package/lib/components/VDialog/index.d.ts +859 -0
- package/lib/components/VDialog/index.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.mjs +16 -17
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +0 -1
- package/lib/components/VDivider/_variables.scss +3 -1
- package/lib/components/VDivider/index.d.ts +22 -0
- package/lib/components/VDivider/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +15 -7
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +15 -6
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +14 -11
- 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/_variables.scss +15 -10
- package/lib/components/VExpansionPanel/index.d.ts +206 -0
- package/lib/components/VExpansionPanel/index.mjs.map +1 -1
- package/lib/components/VField/VField.css +63 -41
- package/lib/components/VField/VField.mjs +52 -36
- package/lib/components/VField/VField.mjs.map +1 -1
- package/lib/components/VField/VField.sass +49 -35
- package/lib/components/VField/VFieldLabel.mjs +8 -9
- package/lib/components/VField/VFieldLabel.mjs.map +1 -1
- package/lib/components/VField/_variables.scss +6 -5
- package/lib/components/VField/index.d.ts +332 -0
- package/lib/components/VField/index.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.css +3 -3
- package/lib/components/VFileInput/VFileInput.mjs +48 -47
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +3 -4
- package/lib/components/VFileInput/index.d.ts +236 -0
- package/lib/components/VFileInput/index.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.css +8 -1
- package/lib/components/VFooter/VFooter.mjs +36 -18
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +1 -2
- package/lib/components/VFooter/_variables.scss +13 -1
- package/lib/components/VFooter/index.d.ts +76 -0
- package/lib/components/VFooter/index.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +27 -13
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.d.ts +72 -0
- package/lib/components/VForm/index.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs +2 -1
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +4 -3
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VRow.mjs +8 -3
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/index.d.ts +154 -0
- package/lib/components/VGrid/index.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.d.ts +30 -0
- package/lib/components/VHover/index.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +13 -16
- package/lib/components/VIcon/VIcon.mjs +34 -33
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +8 -16
- package/lib/components/VIcon/_variables.scss +2 -5
- package/lib/components/VIcon/index.d.ts +124 -0
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.mjs +29 -26
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +0 -1
- package/lib/components/VImg/index.d.ts +89 -0
- package/lib/components/VImg/index.mjs.map +1 -1
- package/lib/components/VInput/InputIcon.mjs +33 -0
- package/lib/components/VInput/InputIcon.mjs.map +1 -0
- package/lib/components/VInput/VInput.css +5 -2
- package/lib/components/VInput/VInput.mjs +26 -18
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +5 -3
- package/lib/components/VInput/_variables.scss +4 -1
- package/lib/components/VInput/index.d.ts +325 -0
- package/lib/components/VInput/index.mjs.map +1 -1
- package/lib/components/VItemGroup/VItem.mjs +3 -0
- 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.d.ts +210 -0
- package/lib/components/VItemGroup/index.mjs.map +1 -1
- package/lib/components/VKbd/VKbd.css +1 -1
- package/lib/components/VKbd/VKbd.sass +0 -1
- package/lib/components/VKbd/_variables.scss +1 -1
- package/lib/components/VKbd/index.d.ts +19 -0
- package/lib/components/VKbd/index.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.css +4 -1
- package/lib/components/VLabel/VLabel.mjs +8 -4
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +3 -2
- package/lib/components/VLabel/_variables.scss +1 -0
- package/lib/components/VLabel/index.d.ts +16 -0
- package/lib/components/VLabel/index.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.css +0 -2
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.sass +0 -2
- package/lib/components/VLayout/VLayoutItem.mjs +1 -1
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/index.d.ts +75 -0
- package/lib/components/VLayout/index.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs +5 -3
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.d.ts +85 -0
- package/lib/components/VLazy/index.mjs.map +1 -1
- package/lib/components/VList/VList.css +14 -16
- package/lib/components/VList/VList.mjs +92 -59
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +9 -6
- package/lib/components/VList/VListChildren.mjs +69 -13
- package/lib/components/VList/VListChildren.mjs.map +1 -1
- package/lib/components/VList/VListGroup.mjs +52 -19
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +181 -73
- package/lib/components/VList/VListItem.mjs +124 -82
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +125 -49
- package/lib/components/VList/VListItemAction.mjs +28 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +8 -7
- 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 +8 -7
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +24 -9
- package/lib/components/VList/index.d.ts +1250 -0
- package/lib/components/VList/index.mjs +3 -4
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VList/list.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +5 -3
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/index.d.ts +23 -0
- package/lib/components/VLocaleProvider/index.mjs.map +1 -1
- package/lib/components/VMain/VMain.css +20 -9
- package/lib/components/VMain/VMain.mjs +17 -11
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +17 -11
- package/lib/components/VMain/_variables.scss +1 -1
- package/lib/components/VMain/index.d.ts +26 -0
- package/lib/components/VMain/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +3 -13
- package/lib/components/VMenu/VMenu.mjs +81 -34
- 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.d.ts +817 -0
- 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 +5 -3
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.sass +0 -1
- package/lib/components/VMessages/_variables.scss +1 -1
- package/lib/components/VMessages/index.d.ts +234 -0
- package/lib/components/VMessages/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +14 -19
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +60 -21
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +16 -22
- package/lib/components/VNavigationDrawer/_variables.scss +4 -2
- package/lib/components/VNavigationDrawer/index.d.ts +148 -0
- package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/sticky.mjs +70 -0
- package/lib/components/VNavigationDrawer/sticky.mjs.map +1 -0
- package/lib/components/VNavigationDrawer/touch.mjs +5 -2
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -1
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -1
- package/lib/components/VNoSsr/index.d.ts +7 -0
- 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 +73 -45
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +8 -1
- package/lib/components/VOverlay/_variables.scss +1 -1
- package/lib/components/VOverlay/index.d.ts +579 -0
- package/lib/components/VOverlay/index.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +404 -0
- package/lib/components/VOverlay/locationStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -1
- package/lib/components/VOverlay/scrollStrategies.mjs +19 -13
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -1
- package/lib/components/VOverlay/useActivator.mjs +86 -17
- package/lib/components/VOverlay/useActivator.mjs.map +1 -1
- package/lib/components/VOverlay/util/point.mjs +3 -3
- package/lib/components/VOverlay/util/point.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.mjs +63 -44
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +0 -1
- package/lib/components/VPagination/index.d.ts +247 -0
- package/lib/components/VPagination/index.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.mjs +30 -16
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/index.d.ts +18 -0
- 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 +6 -5
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +0 -1
- package/lib/components/VProgressCircular/_variables.scss +2 -0
- package/lib/components/VProgressCircular/index.d.ts +68 -0
- package/lib/components/VProgressCircular/index.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.mjs +5 -3
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +0 -1
- package/lib/components/VProgressLinear/_variables.scss +1 -0
- package/lib/components/VProgressLinear/index.d.ts +101 -0
- package/lib/components/VProgressLinear/index.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +9 -17
- package/lib/components/VRadio/VRadio.mjs.map +1 -1
- package/lib/components/VRadio/index.d.ts +103 -0
- package/lib/components/VRadio/index.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.css +2 -3
- package/lib/components/VRadioGroup/VRadioGroup.mjs +32 -9
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +6 -4
- package/lib/components/VRadioGroup/_variables.scss +2 -4
- package/lib/components/VRadioGroup/index.d.ts +186 -0
- package/lib/components/VRadioGroup/index.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +27 -15
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.d.ts +242 -0
- package/lib/components/VRangeSlider/index.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +2 -2
- package/lib/components/VRating/VRating.mjs +24 -18
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +4 -3
- package/lib/components/VRating/index.d.ts +356 -0
- package/lib/components/VRating/index.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.mjs +7 -6
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/index.d.ts +23 -0
- package/lib/components/VResponsive/index.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +18 -2
- package/lib/components/VSelect/VSelect.mjs +145 -112
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +20 -3
- package/lib/components/VSelect/_variables.scss +1 -0
- package/lib/components/VSelect/index.d.ts +1521 -0
- package/lib/components/VSelect/index.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +33 -25
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.sass +1 -1
- package/lib/components/VSelectionControl/_variables.scss +1 -0
- package/lib/components/VSelectionControl/index.d.ts +275 -0
- package/lib/components/VSelectionControl/index.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +5 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +10 -7
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -1
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +6 -6
- package/lib/components/VSelectionControlGroup/_variables.scss +1 -4
- package/lib/components/VSelectionControlGroup/index.d.ts +47 -0
- package/lib/components/VSelectionControlGroup/index.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.css +1 -1
- package/lib/components/VSheet/VSheet.mjs +10 -6
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +0 -1
- package/lib/components/VSheet/_variables.scss +3 -2
- package/lib/components/VSheet/index.d.ts +68 -0
- 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 +105 -74
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +0 -5
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +10 -4
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -1
- package/lib/components/VSlideGroup/_variables.scss +0 -5
- package/lib/components/VSlideGroup/helpers.mjs +4 -15
- package/lib/components/VSlideGroup/helpers.mjs.map +1 -1
- package/lib/components/VSlideGroup/index.d.ts +151 -0
- package/lib/components/VSlideGroup/index.mjs +2 -2
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +14 -4
- package/lib/components/VSlider/VSlider.mjs +17 -9
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +17 -9
- package/lib/components/VSlider/VSliderThumb.css +10 -6
- package/lib/components/VSlider/VSliderThumb.mjs +9 -8
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -1
- package/lib/components/VSlider/VSliderThumb.sass +11 -10
- package/lib/components/VSlider/VSliderTrack.css +25 -25
- package/lib/components/VSlider/VSliderTrack.mjs +22 -16
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -1
- package/lib/components/VSlider/VSliderTrack.sass +20 -22
- package/lib/components/VSlider/_variables.scss +7 -4
- package/lib/components/VSlider/index.d.ts +239 -0
- package/lib/components/VSlider/index.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +15 -25
- package/lib/components/VSlider/slider.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.css +22 -40
- package/lib/components/VSnackbar/VSnackbar.mjs +70 -50
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +15 -35
- package/lib/components/VSnackbar/_variables.scss +3 -7
- package/lib/components/VSnackbar/index.d.ts +892 -0
- 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.css +9 -2
- package/lib/components/VSwitch/VSwitch.mjs +15 -6
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +6 -1
- package/lib/components/VSwitch/_variables.scss +1 -0
- package/lib/components/VSwitch/index.d.ts +175 -0
- package/lib/components/VSwitch/index.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +1 -6
- package/lib/components/VSystemBar/VSystemBar.mjs +22 -17
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +0 -6
- package/lib/components/VSystemBar/_variables.scss +2 -4
- package/lib/components/VSystemBar/index.d.ts +61 -0
- package/lib/components/VSystemBar/index.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +1 -0
- package/lib/components/VTable/VTable.mjs +9 -8
- package/lib/components/VTable/VTable.mjs.map +1 -1
- package/lib/components/VTable/VTable.sass +1 -1
- package/lib/components/VTable/_variables.scss +2 -0
- package/lib/components/VTable/index.d.ts +39 -0
- package/lib/components/VTable/index.mjs.map +1 -1
- package/lib/components/VTabs/VTab.css +6 -3
- package/lib/components/VTabs/VTab.mjs +34 -36
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +7 -4
- package/lib/components/VTabs/VTabs.css +16 -13
- package/lib/components/VTabs/VTabs.mjs +17 -15
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +11 -8
- package/lib/components/VTabs/_variables.scss +2 -0
- package/lib/components/VTabs/index.d.ts +178 -0
- 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 +5 -5
- package/lib/components/VTextField/VTextField.mjs +42 -37
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +5 -7
- package/lib/components/VTextField/_variables.scss +1 -1
- package/lib/components/VTextField/index.d.ts +582 -0
- package/lib/components/VTextField/index.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +14 -5
- package/lib/components/VTextarea/VTextarea.mjs +47 -26
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +18 -8
- package/lib/components/VTextarea/_variables.scss +1 -1
- package/lib/components/VTextarea/index.d.ts +218 -0
- package/lib/components/VTextarea/index.mjs.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.d.ts +24 -0
- 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 +241 -55
- package/lib/components/VTimeline/VTimeline.mjs +52 -32
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +251 -57
- package/lib/components/VTimeline/VTimelineDivider.mjs +45 -37
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +17 -15
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_mixins.sass +10 -0
- package/lib/components/VTimeline/_variables.scss +16 -9
- package/lib/components/VTimeline/index.d.ts +154 -0
- package/lib/components/VTimeline/index.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.css +24 -33
- package/lib/components/VToolbar/VToolbar.mjs +32 -31
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +17 -19
- package/lib/components/VToolbar/VToolbarItems.mjs +12 -9
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -1
- package/lib/components/VToolbar/_variables.scss +20 -8
- package/lib/components/VToolbar/index.d.ts +414 -0
- package/lib/components/VToolbar/index.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.mjs +48 -41
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +0 -1
- package/lib/components/VTooltip/_variables.scss +1 -0
- package/lib/components/VTooltip/index.d.ts +799 -0
- package/lib/components/VTooltip/index.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeview.mjs +1 -3
- 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.d.ts +61 -0
- 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 +7 -21
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +0 -2
- package/lib/components/VWindow/VWindowItem.mjs +21 -11
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/_variables.scss +1 -0
- package/lib/components/VWindow/index.d.ts +428 -0
- package/lib/components/VWindow/index.mjs.map +1 -1
- package/lib/components/index.d.ts +14675 -12342
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +66 -10
- 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.d.ts +454 -0
- package/lib/components/transitions/index.mjs +0 -5
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/border.mjs +5 -6
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/color.mjs +19 -26
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +2 -2
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/delay.mjs +1 -3
- 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 +12 -10
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/elevation.mjs.map +1 -1
- package/lib/composables/filter.mjs +35 -17
- package/lib/composables/filter.mjs.map +1 -1
- package/lib/composables/focus.mjs.map +1 -1
- package/lib/composables/form.mjs +44 -11
- package/lib/composables/form.mjs.map +1 -1
- package/lib/composables/forwardRefs.mjs +72 -0
- package/lib/composables/forwardRefs.mjs.map +1 -0
- package/lib/composables/group.mjs +16 -12
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/hydration.mjs.map +1 -1
- package/lib/composables/icons.mjs +16 -4
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs +3 -2
- 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 +24 -24
- 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 +21 -25
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/location.mjs +66 -0
- package/lib/composables/location.mjs.map +1 -0
- package/lib/composables/mutationObserver.mjs +4 -6
- package/lib/composables/mutationObserver.mjs.map +1 -1
- package/lib/composables/nested/nested.mjs +34 -22
- 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 +29 -10
- 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 +39 -17
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/rtl.mjs +2 -4
- 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 +1 -3
- 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 +18 -14
- 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 +37 -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 +123 -112
- 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 +1 -3
- package/lib/composables/touch.mjs.map +1 -1
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +24 -10
- package/lib/composables/validation.mjs.map +1 -1
- package/lib/composables/variant.mjs +7 -8
- 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 +4 -6
- 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 +16 -6
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs +1 -3
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs +3 -3
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +2 -1
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +59 -47
- 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 +158 -130
- package/lib/locale/adapters/vue-i18n.d.ts +35 -0
- package/lib/locale/adapters/vue-i18n.mjs +1 -3
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -1
- package/lib/locale/adapters/vue-intl.d.ts +42 -0
- package/lib/locale/adapters/vue-intl.mjs +3 -5
- package/lib/locale/adapters/vue-intl.mjs.map +1 -1
- package/lib/locale/af.mjs +5 -0
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +5 -0
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +5 -0
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +5 -0
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +14 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +5 -0
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +5 -0
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +5 -0
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs +5 -0
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +5 -0
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +5 -0
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +5 -0
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +5 -0
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +5 -0
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -0
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +5 -0
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +5 -0
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +5 -0
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +5 -0
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +5 -0
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.ts +210 -0
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/it.mjs +5 -0
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +5 -0
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +5 -0
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +5 -0
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +5 -0
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -0
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +5 -0
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +5 -0
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +5 -0
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +5 -0
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +5 -0
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +5 -0
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +5 -0
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +5 -0
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +5 -0
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +5 -0
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +5 -0
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +5 -0
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +5 -0
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +5 -0
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +5 -0
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +5 -0
- package/lib/locale/zh-Hant.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 +17 -10
- package/lib/styles/generic/_transitions.scss +13 -77
- package/lib/styles/main.css +1677 -1919
- package/lib/styles/settings/_colors.scss +84 -84
- package/lib/styles/settings/_elevations.scss +3 -3
- package/lib/styles/settings/_utilities.scss +74 -35
- package/lib/styles/tools/_states.sass +18 -5
- package/lib/styles/tools/_utilities.sass +1 -1
- package/lib/styles/tools/_variant.sass +6 -7
- package/lib/styles/utilities/_index.sass +0 -1
- package/lib/util/anchor.mjs +56 -0
- package/lib/util/anchor.mjs.map +1 -0
- package/lib/util/animation.mjs +18 -2
- package/lib/util/animation.mjs.map +1 -1
- package/lib/util/box.mjs +12 -0
- package/lib/util/box.mjs.map +1 -1
- package/lib/util/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 +2 -2
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs +1 -1
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/dateTimeUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +37 -11
- 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 +22 -4
- package/lib/util/getCurrentInstance.mjs.map +1 -1
- package/lib/util/getScrollParent.mjs +3 -1
- package/lib/util/getScrollParent.mjs.map +1 -1
- package/lib/util/globals.mjs +1 -4
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +37 -7
- 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/injectSelf.mjs +12 -0
- package/lib/util/injectSelf.mjs.map +1 -0
- 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 +50 -35
- package/lib/components/VBreadcrumbs/shared.mjs +0 -2
- package/lib/components/VBreadcrumbs/shared.mjs.map +0 -1
- package/lib/components/VCard/VCardAvatar.mjs +0 -3
- package/lib/components/VCard/VCardAvatar.mjs.map +0 -1
- package/lib/components/VCard/VCardHeader.mjs +0 -3
- package/lib/components/VCard/VCardHeader.mjs.map +0 -1
- package/lib/components/VCard/VCardHeaderText.mjs +0 -3
- package/lib/components/VCard/VCardHeaderText.mjs.map +0 -1
- package/lib/components/VCard/VCardImg.mjs +0 -3
- package/lib/components/VCard/VCardImg.mjs.map +0 -1
- package/lib/components/VList/VListItemAvatar.mjs +0 -29
- package/lib/components/VList/VListItemAvatar.mjs.map +0 -1
- package/lib/components/VList/VListItemHeader.mjs +0 -3
- package/lib/components/VList/VListItemHeader.mjs.map +0 -1
- package/lib/components/VOverlay/positionStrategies.mjs +0 -203
- package/lib/components/VOverlay/positionStrategies.mjs.map +0 -1
- package/lib/components/VOverlay/util/anchor.mjs +0 -52
- package/lib/components/VOverlay/util/anchor.mjs.map +0 -1
- package/lib/components/VTimeline/shared.mjs +0 -2
- package/lib/components/VTimeline/shared.mjs.map +0 -1
- package/lib/composables/forwardRef.mjs +0 -42
- package/lib/composables/forwardRef.mjs.map +0 -1
- package/lib/composables/overlay.mjs +0 -30
- package/lib/composables/overlay.mjs.map +0 -1
- package/lib/presets/default/index.mjs +0 -71
- package/lib/presets/default/index.mjs.map +0 -1
- package/lib/styles/utilities/_text.sass +0 -9
- package/lib/styles.scss +0 -4
|
@@ -0,0 +1,404 @@
|
|
|
1
|
+
// Utilities
|
|
2
|
+
import { computed, effectScope, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue';
|
|
3
|
+
import { clamp, consoleError, convertToUnit, destructComputed, flipAlign, flipCorner, flipSide, getAxis, getScrollParents, IN_BROWSER, isFixedPosition, nullifyTransforms, parseAnchor, propsFactory } from "../../util/index.mjs";
|
|
4
|
+
import { Box, getOverflow } from "../../util/box.mjs";
|
|
5
|
+
import { anchorToPoint, getOffset } from "./util/point.mjs"; // Types
|
|
6
|
+
|
|
7
|
+
const locationStrategies = {
|
|
8
|
+
static: staticLocationStrategy,
|
|
9
|
+
// specific viewport position, usually centered
|
|
10
|
+
connected: connectedLocationStrategy // connected to a certain element
|
|
11
|
+
|
|
12
|
+
};
|
|
13
|
+
export const makeLocationStrategyProps = propsFactory({
|
|
14
|
+
locationStrategy: {
|
|
15
|
+
type: [String, Function],
|
|
16
|
+
default: 'static',
|
|
17
|
+
validator: val => typeof val === 'function' || val in locationStrategies
|
|
18
|
+
},
|
|
19
|
+
location: {
|
|
20
|
+
type: String,
|
|
21
|
+
default: 'bottom'
|
|
22
|
+
},
|
|
23
|
+
origin: {
|
|
24
|
+
type: String,
|
|
25
|
+
default: 'auto'
|
|
26
|
+
},
|
|
27
|
+
offset: [Number, String, Array]
|
|
28
|
+
});
|
|
29
|
+
export function useLocationStrategies(props, data) {
|
|
30
|
+
const contentStyles = ref({});
|
|
31
|
+
const updateLocation = ref();
|
|
32
|
+
let scope;
|
|
33
|
+
watchEffect(async () => {
|
|
34
|
+
var _scope;
|
|
35
|
+
|
|
36
|
+
(_scope = scope) == null ? void 0 : _scope.stop();
|
|
37
|
+
updateLocation.value = undefined;
|
|
38
|
+
if (!(IN_BROWSER && data.isActive.value && props.locationStrategy)) return;
|
|
39
|
+
scope = effectScope();
|
|
40
|
+
await nextTick();
|
|
41
|
+
scope.run(() => {
|
|
42
|
+
if (typeof props.locationStrategy === 'function') {
|
|
43
|
+
var _props$locationStrate;
|
|
44
|
+
|
|
45
|
+
updateLocation.value = (_props$locationStrate = props.locationStrategy(data, props, contentStyles)) == null ? void 0 : _props$locationStrate.updateLocation;
|
|
46
|
+
} else {
|
|
47
|
+
var _locationStrategies$p;
|
|
48
|
+
|
|
49
|
+
updateLocation.value = (_locationStrategies$p = locationStrategies[props.locationStrategy](data, props, contentStyles)) == null ? void 0 : _locationStrategies$p.updateLocation;
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
});
|
|
53
|
+
IN_BROWSER && window.addEventListener('resize', onResize, {
|
|
54
|
+
passive: true
|
|
55
|
+
});
|
|
56
|
+
onScopeDispose(() => {
|
|
57
|
+
var _scope2;
|
|
58
|
+
|
|
59
|
+
IN_BROWSER && window.removeEventListener('resize', onResize);
|
|
60
|
+
updateLocation.value = undefined;
|
|
61
|
+
(_scope2 = scope) == null ? void 0 : _scope2.stop();
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
function onResize(e) {
|
|
65
|
+
var _updateLocation$value;
|
|
66
|
+
|
|
67
|
+
(_updateLocation$value = updateLocation.value) == null ? void 0 : _updateLocation$value.call(updateLocation, e);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return {
|
|
71
|
+
contentStyles,
|
|
72
|
+
updateLocation
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function staticLocationStrategy() {// TODO
|
|
77
|
+
}
|
|
78
|
+
/** Get size of element ignoring max-width/max-height */
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
function getIntrinsicSize(el) {
|
|
82
|
+
// const scrollables = new Map<Element, [number, number]>()
|
|
83
|
+
// el.querySelectorAll('*').forEach(el => {
|
|
84
|
+
// const x = el.scrollLeft
|
|
85
|
+
// const y = el.scrollTop
|
|
86
|
+
// if (x || y) {
|
|
87
|
+
// scrollables.set(el, [x, y])
|
|
88
|
+
// }
|
|
89
|
+
// })
|
|
90
|
+
// const initialMaxWidth = el.style.maxWidth
|
|
91
|
+
// const initialMaxHeight = el.style.maxHeight
|
|
92
|
+
// el.style.removeProperty('max-width')
|
|
93
|
+
// el.style.removeProperty('max-height')
|
|
94
|
+
|
|
95
|
+
/* eslint-disable-next-line sonarjs/prefer-immediate-return */
|
|
96
|
+
const contentBox = nullifyTransforms(el);
|
|
97
|
+
contentBox.x -= parseFloat(el.style.left || 0);
|
|
98
|
+
contentBox.y -= parseFloat(el.style.top || 0); // el.style.maxWidth = initialMaxWidth
|
|
99
|
+
// el.style.maxHeight = initialMaxHeight
|
|
100
|
+
// scrollables.forEach((position, el) => {
|
|
101
|
+
// el.scrollTo(...position)
|
|
102
|
+
// })
|
|
103
|
+
|
|
104
|
+
return contentBox;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
function connectedLocationStrategy(data, props, contentStyles) {
|
|
108
|
+
const activatorFixed = isFixedPosition(data.activatorEl.value);
|
|
109
|
+
|
|
110
|
+
if (activatorFixed) {
|
|
111
|
+
Object.assign(contentStyles.value, {
|
|
112
|
+
position: 'fixed'
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
const {
|
|
117
|
+
preferredAnchor,
|
|
118
|
+
preferredOrigin
|
|
119
|
+
} = destructComputed(() => {
|
|
120
|
+
const parsedAnchor = parseAnchor(props.location, data.isRtl.value);
|
|
121
|
+
const parsedOrigin = props.origin === 'overlap' ? parsedAnchor : props.origin === 'auto' ? flipSide(parsedAnchor) : parseAnchor(props.origin, data.isRtl.value); // Some combinations of props may produce an invalid origin
|
|
122
|
+
|
|
123
|
+
if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {
|
|
124
|
+
return {
|
|
125
|
+
preferredAnchor: flipCorner(parsedAnchor),
|
|
126
|
+
preferredOrigin: flipCorner(parsedOrigin)
|
|
127
|
+
};
|
|
128
|
+
} else {
|
|
129
|
+
return {
|
|
130
|
+
preferredAnchor: parsedAnchor,
|
|
131
|
+
preferredOrigin: parsedOrigin
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
const [minWidth, minHeight, maxWidth, maxHeight] = ['minWidth', 'minHeight', 'maxWidth', 'maxHeight'].map(key => {
|
|
136
|
+
return computed(() => {
|
|
137
|
+
const val = parseFloat(props[key]);
|
|
138
|
+
return isNaN(val) ? Infinity : val;
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
const offset = computed(() => {
|
|
142
|
+
if (Array.isArray(props.offset)) {
|
|
143
|
+
return props.offset;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
if (typeof props.offset === 'string') {
|
|
147
|
+
const offset = props.offset.split(' ').map(parseFloat);
|
|
148
|
+
if (offset.length < 2) offset.push(0);
|
|
149
|
+
return offset;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0];
|
|
153
|
+
});
|
|
154
|
+
let observe = false;
|
|
155
|
+
|
|
156
|
+
if (IN_BROWSER) {
|
|
157
|
+
const observer = new ResizeObserver(() => {
|
|
158
|
+
if (observe) updateLocation();
|
|
159
|
+
});
|
|
160
|
+
watch([data.activatorEl, data.contentEl], (_ref, _ref2) => {
|
|
161
|
+
let [newActivatorEl, newContentEl] = _ref;
|
|
162
|
+
let [oldActivatorEl, oldContentEl] = _ref2;
|
|
163
|
+
if (oldActivatorEl) observer.unobserve(oldActivatorEl);
|
|
164
|
+
if (newActivatorEl) observer.observe(newActivatorEl);
|
|
165
|
+
if (oldContentEl) observer.unobserve(oldContentEl);
|
|
166
|
+
if (newContentEl) observer.observe(newContentEl);
|
|
167
|
+
}, {
|
|
168
|
+
immediate: true
|
|
169
|
+
});
|
|
170
|
+
onScopeDispose(() => {
|
|
171
|
+
observer.disconnect();
|
|
172
|
+
});
|
|
173
|
+
} // eslint-disable-next-line max-statements
|
|
174
|
+
|
|
175
|
+
|
|
176
|
+
function updateLocation() {
|
|
177
|
+
observe = false;
|
|
178
|
+
requestAnimationFrame(() => {
|
|
179
|
+
requestAnimationFrame(() => observe = true);
|
|
180
|
+
});
|
|
181
|
+
if (!data.activatorEl.value || !data.contentEl.value) return;
|
|
182
|
+
const targetBox = data.activatorEl.value.getBoundingClientRect();
|
|
183
|
+
const contentBox = getIntrinsicSize(data.contentEl.value);
|
|
184
|
+
const scrollParents = getScrollParents(data.contentEl.value);
|
|
185
|
+
const viewportMargin = 12;
|
|
186
|
+
|
|
187
|
+
if (!scrollParents.length) {
|
|
188
|
+
scrollParents.push(document.documentElement);
|
|
189
|
+
|
|
190
|
+
if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {
|
|
191
|
+
contentBox.x += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0);
|
|
192
|
+
contentBox.y += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0);
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
const viewport = scrollParents.reduce((box, el) => {
|
|
197
|
+
const rect = el.getBoundingClientRect();
|
|
198
|
+
const scrollBox = new Box({
|
|
199
|
+
x: el === document.documentElement ? 0 : rect.x,
|
|
200
|
+
y: el === document.documentElement ? 0 : rect.y,
|
|
201
|
+
width: el.clientWidth,
|
|
202
|
+
height: el.clientHeight
|
|
203
|
+
});
|
|
204
|
+
|
|
205
|
+
if (box) {
|
|
206
|
+
return new Box({
|
|
207
|
+
x: Math.max(box.left, scrollBox.left),
|
|
208
|
+
y: Math.max(box.top, scrollBox.top),
|
|
209
|
+
width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),
|
|
210
|
+
height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top)
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
return scrollBox;
|
|
215
|
+
}, undefined);
|
|
216
|
+
viewport.x += viewportMargin;
|
|
217
|
+
viewport.y += viewportMargin;
|
|
218
|
+
viewport.width -= viewportMargin * 2;
|
|
219
|
+
viewport.height -= viewportMargin * 2;
|
|
220
|
+
let placement = {
|
|
221
|
+
anchor: preferredAnchor.value,
|
|
222
|
+
origin: preferredOrigin.value
|
|
223
|
+
};
|
|
224
|
+
|
|
225
|
+
function checkOverflow(_placement) {
|
|
226
|
+
const box = new Box(contentBox);
|
|
227
|
+
const targetPoint = anchorToPoint(_placement.anchor, targetBox);
|
|
228
|
+
const contentPoint = anchorToPoint(_placement.origin, box);
|
|
229
|
+
let {
|
|
230
|
+
x,
|
|
231
|
+
y
|
|
232
|
+
} = getOffset(targetPoint, contentPoint);
|
|
233
|
+
|
|
234
|
+
switch (_placement.anchor.side) {
|
|
235
|
+
case 'top':
|
|
236
|
+
y -= offset.value[0];
|
|
237
|
+
break;
|
|
238
|
+
|
|
239
|
+
case 'bottom':
|
|
240
|
+
y += offset.value[0];
|
|
241
|
+
break;
|
|
242
|
+
|
|
243
|
+
case 'left':
|
|
244
|
+
x -= offset.value[0];
|
|
245
|
+
break;
|
|
246
|
+
|
|
247
|
+
case 'right':
|
|
248
|
+
x += offset.value[0];
|
|
249
|
+
break;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
switch (_placement.anchor.align) {
|
|
253
|
+
case 'top':
|
|
254
|
+
y -= offset.value[1];
|
|
255
|
+
break;
|
|
256
|
+
|
|
257
|
+
case 'bottom':
|
|
258
|
+
y += offset.value[1];
|
|
259
|
+
break;
|
|
260
|
+
|
|
261
|
+
case 'left':
|
|
262
|
+
x -= offset.value[1];
|
|
263
|
+
break;
|
|
264
|
+
|
|
265
|
+
case 'right':
|
|
266
|
+
x += offset.value[1];
|
|
267
|
+
break;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
box.x += x;
|
|
271
|
+
box.y += y;
|
|
272
|
+
box.width = Math.min(box.width, maxWidth.value);
|
|
273
|
+
box.height = Math.min(box.height, maxHeight.value);
|
|
274
|
+
const overflows = getOverflow(box, viewport);
|
|
275
|
+
return {
|
|
276
|
+
overflows,
|
|
277
|
+
x,
|
|
278
|
+
y
|
|
279
|
+
};
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
let x = 0;
|
|
283
|
+
let y = 0;
|
|
284
|
+
const available = {
|
|
285
|
+
x: 0,
|
|
286
|
+
y: 0
|
|
287
|
+
};
|
|
288
|
+
const flipped = {
|
|
289
|
+
x: false,
|
|
290
|
+
y: false
|
|
291
|
+
};
|
|
292
|
+
let resets = -1;
|
|
293
|
+
|
|
294
|
+
while (true) {
|
|
295
|
+
if (resets++ > 10) {
|
|
296
|
+
consoleError('Infinite loop detected in connectedLocationStrategy');
|
|
297
|
+
break;
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
const {
|
|
301
|
+
x: _x,
|
|
302
|
+
y: _y,
|
|
303
|
+
overflows
|
|
304
|
+
} = checkOverflow(placement);
|
|
305
|
+
x += _x;
|
|
306
|
+
y += _y;
|
|
307
|
+
contentBox.x += _x;
|
|
308
|
+
contentBox.y += _y; // flip
|
|
309
|
+
|
|
310
|
+
{
|
|
311
|
+
const axis = getAxis(placement.anchor);
|
|
312
|
+
const hasOverflowX = overflows.x.before || overflows.x.after;
|
|
313
|
+
const hasOverflowY = overflows.y.before || overflows.y.after;
|
|
314
|
+
let reset = false;
|
|
315
|
+
['x', 'y'].forEach(key => {
|
|
316
|
+
if (key === 'x' && hasOverflowX && !flipped.x || key === 'y' && hasOverflowY && !flipped.y) {
|
|
317
|
+
const newPlacement = {
|
|
318
|
+
anchor: { ...placement.anchor
|
|
319
|
+
},
|
|
320
|
+
origin: { ...placement.origin
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
const flip = key === 'x' ? axis === 'y' ? flipAlign : flipSide : axis === 'y' ? flipSide : flipAlign;
|
|
324
|
+
newPlacement.anchor = flip(newPlacement.anchor);
|
|
325
|
+
newPlacement.origin = flip(newPlacement.origin);
|
|
326
|
+
const {
|
|
327
|
+
overflows: newOverflows
|
|
328
|
+
} = checkOverflow(newPlacement);
|
|
329
|
+
|
|
330
|
+
if (newOverflows[key].before <= overflows[key].before && newOverflows[key].after <= overflows[key].after || newOverflows[key].before + newOverflows[key].after < (overflows[key].before + overflows[key].after) / 2) {
|
|
331
|
+
placement = newPlacement;
|
|
332
|
+
reset = flipped[key] = true;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
});
|
|
336
|
+
if (reset) continue;
|
|
337
|
+
} // shift
|
|
338
|
+
|
|
339
|
+
if (overflows.x.before) {
|
|
340
|
+
x += overflows.x.before;
|
|
341
|
+
contentBox.x += overflows.x.before;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
if (overflows.x.after) {
|
|
345
|
+
x -= overflows.x.after;
|
|
346
|
+
contentBox.x -= overflows.x.after;
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
if (overflows.y.before) {
|
|
350
|
+
y += overflows.y.before;
|
|
351
|
+
contentBox.y += overflows.y.before;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
if (overflows.y.after) {
|
|
355
|
+
y -= overflows.y.after;
|
|
356
|
+
contentBox.y -= overflows.y.after;
|
|
357
|
+
} // size
|
|
358
|
+
|
|
359
|
+
|
|
360
|
+
{
|
|
361
|
+
const overflows = getOverflow(contentBox, viewport);
|
|
362
|
+
available.x = viewport.width - overflows.x.before - overflows.x.after;
|
|
363
|
+
available.y = viewport.height - overflows.y.before - overflows.y.after;
|
|
364
|
+
x += overflows.x.before;
|
|
365
|
+
contentBox.x += overflows.x.before;
|
|
366
|
+
y += overflows.y.before;
|
|
367
|
+
contentBox.y += overflows.y.before;
|
|
368
|
+
}
|
|
369
|
+
break;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
const axis = getAxis(placement.anchor);
|
|
373
|
+
Object.assign(contentStyles.value, {
|
|
374
|
+
'--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,
|
|
375
|
+
transformOrigin: `${placement.origin.side} ${placement.origin.align}`,
|
|
376
|
+
// transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,
|
|
377
|
+
top: convertToUnit(pixelRound(y)),
|
|
378
|
+
left: convertToUnit(pixelRound(x)),
|
|
379
|
+
minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),
|
|
380
|
+
maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),
|
|
381
|
+
maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value)))
|
|
382
|
+
});
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
watch(() => [preferredAnchor.value, preferredOrigin.value, props.offset, props.minWidth, props.minHeight, props.maxWidth, props.maxHeight], () => updateLocation(), {
|
|
386
|
+
immediate: !activatorFixed
|
|
387
|
+
});
|
|
388
|
+
if (activatorFixed) nextTick(() => updateLocation());
|
|
389
|
+
requestAnimationFrame(() => {
|
|
390
|
+
if (contentStyles.value.maxHeight) updateLocation();
|
|
391
|
+
});
|
|
392
|
+
return {
|
|
393
|
+
updateLocation
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
function pixelRound(val) {
|
|
398
|
+
return Math.round(val * devicePixelRatio) / devicePixelRatio;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
function pixelCeil(val) {
|
|
402
|
+
return Math.ceil(val * devicePixelRatio) / devicePixelRatio;
|
|
403
|
+
}
|
|
404
|
+
//# sourceMappingURL=locationStrategies.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"locationStrategies.mjs","names":["computed","effectScope","nextTick","onScopeDispose","ref","watch","watchEffect","clamp","consoleError","convertToUnit","destructComputed","flipAlign","flipCorner","flipSide","getAxis","getScrollParents","IN_BROWSER","isFixedPosition","nullifyTransforms","parseAnchor","propsFactory","Box","getOverflow","anchorToPoint","getOffset","locationStrategies","static","staticLocationStrategy","connected","connectedLocationStrategy","makeLocationStrategyProps","locationStrategy","type","String","Function","default","validator","val","location","origin","offset","Number","Array","useLocationStrategies","props","data","contentStyles","updateLocation","scope","stop","value","undefined","isActive","run","window","addEventListener","onResize","passive","removeEventListener","e","getIntrinsicSize","el","contentBox","x","parseFloat","style","left","y","top","activatorFixed","activatorEl","Object","assign","position","preferredAnchor","preferredOrigin","parsedAnchor","isRtl","parsedOrigin","side","align","minWidth","minHeight","maxWidth","maxHeight","map","key","isNaN","Infinity","isArray","split","length","push","observe","observer","ResizeObserver","contentEl","newActivatorEl","newContentEl","oldActivatorEl","oldContentEl","unobserve","immediate","disconnect","requestAnimationFrame","targetBox","getBoundingClientRect","scrollParents","viewportMargin","document","documentElement","getPropertyValue","viewport","reduce","box","rect","scrollBox","width","clientWidth","height","clientHeight","Math","max","min","right","bottom","placement","anchor","checkOverflow","_placement","targetPoint","contentPoint","overflows","available","flipped","resets","_x","_y","axis","hasOverflowX","before","after","hasOverflowY","reset","forEach","newPlacement","flip","newOverflows","transformOrigin","pixelRound","pixelCeil","round","devicePixelRatio","ceil"],"sources":["../../../src/components/VOverlay/locationStrategies.ts"],"sourcesContent":["// Utilities\nimport { computed, effectScope, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue'\nimport {\n clamp,\n consoleError,\n convertToUnit,\n destructComputed,\n flipAlign,\n flipCorner,\n flipSide,\n getAxis,\n getScrollParents,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n parseAnchor,\n propsFactory,\n} from '@/util'\nimport { Box, getOverflow } from '@/util/box'\nimport { anchorToPoint, getOffset } from './util/point'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n isRtl: Ref<boolean>\n}\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | (\n (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n ) => undefined | { updateLocation: (e: Event) => void }\n )\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string | number[]\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String, Array] as PropType<StrategyProps['offset']>,\n})\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n updateLocation.value = undefined\n\n if (!(IN_BROWSER && data.isActive.value && props.locationStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n })\n\n IN_BROWSER && window.addEventListener('resize', onResize, { passive: true })\n\n onScopeDispose(() => {\n IN_BROWSER && window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n scope?.stop()\n })\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\n/** Get size of element ignoring max-width/max-height */\nfunction getIntrinsicSize (el: HTMLElement) {\n // const scrollables = new Map<Element, [number, number]>()\n // el.querySelectorAll('*').forEach(el => {\n // const x = el.scrollLeft\n // const y = el.scrollTop\n // if (x || y) {\n // scrollables.set(el, [x, y])\n // }\n // })\n\n // const initialMaxWidth = el.style.maxWidth\n // const initialMaxHeight = el.style.maxHeight\n // el.style.removeProperty('max-width')\n // el.style.removeProperty('max-height')\n\n /* eslint-disable-next-line sonarjs/prefer-immediate-return */\n const contentBox = nullifyTransforms(el)\n\n contentBox.x -= parseFloat(el.style.left || 0)\n contentBox.y -= parseFloat(el.style.top || 0)\n\n // el.style.maxWidth = initialMaxWidth\n // el.style.maxHeight = initialMaxHeight\n // scrollables.forEach((position, el) => {\n // el.scrollTo(...position)\n // })\n\n return contentBox\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = isFixedPosition(data.activatorEl.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n })\n }\n\n const { preferredAnchor, preferredOrigin } = destructComputed(() => {\n const parsedAnchor = parseAnchor(props.location, data.isRtl.value)\n const parsedOrigin =\n props.origin === 'overlap' ? parsedAnchor\n : props.origin === 'auto' ? flipSide(parsedAnchor)\n : parseAnchor(props.origin, data.isRtl.value)\n\n // Some combinations of props may produce an invalid origin\n if (parsedAnchor.side === parsedOrigin.side && parsedAnchor.align === flipAlign(parsedOrigin).align) {\n return {\n preferredAnchor: flipCorner(parsedAnchor),\n preferredOrigin: flipCorner(parsedOrigin),\n }\n } else {\n return {\n preferredAnchor: parsedAnchor,\n preferredOrigin: parsedOrigin,\n }\n }\n })\n\n const [minWidth, minHeight, maxWidth, maxHeight] =\n (['minWidth', 'minHeight', 'maxWidth', 'maxHeight'] as const).map(key => {\n return computed(() => {\n const val = parseFloat(props[key]!)\n return isNaN(val) ? Infinity : val\n })\n })\n\n const offset = computed(() => {\n if (Array.isArray(props.offset)) {\n return props.offset\n }\n if (typeof props.offset === 'string') {\n const offset = props.offset.split(' ').map(parseFloat)\n if (offset.length < 2) offset.push(0)\n return offset\n }\n return typeof props.offset === 'number' ? [props.offset, 0] : [0, 0]\n })\n\n let observe = false\n if (IN_BROWSER) {\n const observer = new ResizeObserver(() => {\n if (observe) updateLocation()\n })\n\n watch([data.activatorEl, data.contentEl], ([newActivatorEl, newContentEl], [oldActivatorEl, oldContentEl]) => {\n if (oldActivatorEl) observer.unobserve(oldActivatorEl)\n if (newActivatorEl) observer.observe(newActivatorEl)\n\n if (oldContentEl) observer.unobserve(oldContentEl)\n if (newContentEl) observer.observe(newContentEl)\n }, {\n immediate: true,\n })\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n }\n\n // eslint-disable-next-line max-statements\n function updateLocation () {\n observe = false\n requestAnimationFrame(() => {\n requestAnimationFrame(() => observe = true)\n })\n\n if (!data.activatorEl.value || !data.contentEl.value) return\n\n const targetBox = data.activatorEl.value.getBoundingClientRect()\n const contentBox = getIntrinsicSize(data.contentEl.value)\n const scrollParents = getScrollParents(data.contentEl.value)\n const viewportMargin = 12\n\n if (!scrollParents.length) {\n scrollParents.push(document.documentElement)\n if (!(data.contentEl.value.style.top && data.contentEl.value.style.left)) {\n contentBox.x += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-x') || 0)\n contentBox.y += parseFloat(document.documentElement.style.getPropertyValue('--v-body-scroll-y') || 0)\n }\n }\n\n const viewport = scrollParents.reduce<Box>((box: Box | undefined, el) => {\n const rect = el.getBoundingClientRect()\n const scrollBox = new Box({\n x: el === document.documentElement ? 0 : rect.x,\n y: el === document.documentElement ? 0 : rect.y,\n width: el.clientWidth,\n height: el.clientHeight,\n })\n\n if (box) {\n return new Box({\n x: Math.max(box.left, scrollBox.left),\n y: Math.max(box.top, scrollBox.top),\n width: Math.min(box.right, scrollBox.right) - Math.max(box.left, scrollBox.left),\n height: Math.min(box.bottom, scrollBox.bottom) - Math.max(box.top, scrollBox.top),\n })\n }\n return scrollBox\n }, undefined!)\n viewport.x += viewportMargin\n viewport.y += viewportMargin\n viewport.width -= viewportMargin * 2\n viewport.height -= viewportMargin * 2\n\n let placement = {\n anchor: preferredAnchor.value,\n origin: preferredOrigin.value,\n }\n\n function checkOverflow (_placement: typeof placement) {\n const box = new Box(contentBox)\n const targetPoint = anchorToPoint(_placement.anchor, targetBox)\n const contentPoint = anchorToPoint(_placement.origin, box)\n\n let { x, y } = getOffset(targetPoint, contentPoint)\n\n switch (_placement.anchor.side) {\n case 'top': y -= offset.value[0]; break\n case 'bottom': y += offset.value[0]; break\n case 'left': x -= offset.value[0]; break\n case 'right': x += offset.value[0]; break\n }\n\n switch (_placement.anchor.align) {\n case 'top': y -= offset.value[1]; break\n case 'bottom': y += offset.value[1]; break\n case 'left': x -= offset.value[1]; break\n case 'right': x += offset.value[1]; break\n }\n\n box.x += x\n box.y += y\n\n box.width = Math.min(box.width, maxWidth.value)\n box.height = Math.min(box.height, maxHeight.value)\n\n const overflows = getOverflow(box, viewport)\n\n return { overflows, x, y }\n }\n\n let x = 0; let y = 0\n const available = { x: 0, y: 0 }\n const flipped = { x: false, y: false }\n let resets = -1\n while (true) {\n if (resets++ > 10) {\n consoleError('Infinite loop detected in connectedLocationStrategy')\n break\n }\n\n const { x: _x, y: _y, overflows } = checkOverflow(placement)\n\n x += _x\n y += _y\n\n contentBox.x += _x\n contentBox.y += _y\n\n // flip\n {\n const axis = getAxis(placement.anchor)\n const hasOverflowX = overflows.x.before || overflows.x.after\n const hasOverflowY = overflows.y.before || overflows.y.after\n\n let reset = false\n ;['x', 'y'].forEach(key => {\n if (\n (key === 'x' && hasOverflowX && !flipped.x) ||\n (key === 'y' && hasOverflowY && !flipped.y)\n ) {\n const newPlacement = { anchor: { ...placement.anchor }, origin: { ...placement.origin } }\n const flip = key === 'x'\n ? axis === 'y' ? flipAlign : flipSide\n : axis === 'y' ? flipSide : flipAlign\n newPlacement.anchor = flip(newPlacement.anchor)\n newPlacement.origin = flip(newPlacement.origin)\n const { overflows: newOverflows } = checkOverflow(newPlacement)\n if (\n (newOverflows[key].before <= overflows[key].before &&\n newOverflows[key].after <= overflows[key].after) ||\n (newOverflows[key].before + newOverflows[key].after <\n (overflows[key].before + overflows[key].after) / 2)\n ) {\n placement = newPlacement\n reset = flipped[key] = true\n }\n }\n })\n if (reset) continue\n }\n\n // shift\n if (overflows.x.before) {\n x += overflows.x.before\n contentBox.x += overflows.x.before\n }\n if (overflows.x.after) {\n x -= overflows.x.after\n contentBox.x -= overflows.x.after\n }\n if (overflows.y.before) {\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n if (overflows.y.after) {\n y -= overflows.y.after\n contentBox.y -= overflows.y.after\n }\n\n // size\n {\n const overflows = getOverflow(contentBox, viewport)\n available.x = viewport.width - overflows.x.before - overflows.x.after\n available.y = viewport.height - overflows.y.before - overflows.y.after\n\n x += overflows.x.before\n contentBox.x += overflows.x.before\n y += overflows.y.before\n contentBox.y += overflows.y.before\n }\n\n break\n }\n\n const axis = getAxis(placement.anchor)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': `${placement.anchor.side} ${placement.anchor.align}`,\n transformOrigin: `${placement.origin.side} ${placement.origin.align}`,\n // transform: `translate(${pixelRound(x)}px, ${pixelRound(y)}px)`,\n top: convertToUnit(pixelRound(y)),\n left: convertToUnit(pixelRound(x)),\n minWidth: convertToUnit(axis === 'y' ? Math.min(minWidth.value, targetBox.width) : minWidth.value),\n maxWidth: convertToUnit(pixelCeil(clamp(available.x, minWidth.value === Infinity ? 0 : minWidth.value, maxWidth.value))),\n maxHeight: convertToUnit(pixelCeil(clamp(available.y, minHeight.value === Infinity ? 0 : minHeight.value, maxHeight.value))),\n })\n }\n\n watch(\n () => [\n preferredAnchor.value,\n preferredOrigin.value,\n props.offset,\n props.minWidth,\n props.minHeight,\n props.maxWidth,\n props.maxHeight,\n ],\n () => updateLocation(),\n { immediate: !activatorFixed }\n )\n\n if (activatorFixed) nextTick(() => updateLocation())\n requestAnimationFrame(() => {\n if (contentStyles.value.maxHeight) updateLocation()\n })\n\n return { updateLocation }\n}\n\nfunction pixelRound (val: number) {\n return Math.round(val * devicePixelRatio) / devicePixelRatio\n}\n\nfunction pixelCeil (val: number) {\n return Math.ceil(val * devicePixelRatio) / devicePixelRatio\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"file":"requestNewFrame.mjs","names":["clean","frames","requestNewFrame","cb","length","push","run","raf","cancelAnimationFrame","requestAnimationFrame","frame","shift"],"sources":["../../../src/components/VOverlay/requestNewFrame.ts"],"sourcesContent":["let clean = true\nconst frames = [] as any[]\n\n/**\n * Schedule a task to run in an animation frame on its own\n * This is useful for heavy tasks that may cause jank if all ran together\n */\nexport function requestNewFrame (cb: () => void) {\n if (!clean || frames.length) {\n frames.push(cb)\n run()\n } else {\n clean = false\n cb()\n run()\n }\n}\n\nlet raf = -1\nfunction run () {\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n const frame = frames.shift()\n if (frame) frame()\n\n if (frames.length) run()\n else clean = true\n })\n}\n"],"mappings":"AAAA,IAAIA,KAAK,GAAG,IAAZ;AACA,MAAMC,MAAM,GAAG,EAAf;AAEA;AACA;AACA;AACA;;AACA,OAAO,SAASC,eAAT,CAA0BC,EAA1B,EAA0C;EAC/C,IAAI,CAACH,KAAD,IAAUC,MAAM,CAACG,MAArB,EAA6B;IAC3BH,MAAM,CAACI,IAAP,CAAYF,EAAZ;IACAG,GAAG;EACJ,CAHD,MAGO;IACLN,KAAK,GAAG,KAAR;IACAG,EAAE;IACFG,GAAG;EACJ;AACF;AAED,IAAIC,GAAG,GAAG,CAAC,CAAX;;AACA,SAASD,GAAT,GAAgB;EACdE,oBAAoB,CAACD,GAAD,CAApB;EACAA,GAAG,GAAGE,qBAAqB,CAAC,MAAM;IAChC,MAAMC,KAAK,GAAGT,MAAM,CAACU,KAAP,EAAd;IACA,IAAID,KAAJ,EAAWA,KAAK;IAEhB,IAAIT,MAAM,CAACG,MAAX,EAAmBE,GAAG,GAAtB,KACKN,KAAK,GAAG,IAAR;EACN,CAN0B,CAA3B;AAOD"}
|
|
@@ -4,6 +4,7 @@ import { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue';
|
|
|
4
4
|
import { requestNewFrame } from "./requestNewFrame.mjs"; // Types
|
|
5
5
|
|
|
6
6
|
const scrollStrategies = {
|
|
7
|
+
none: null,
|
|
7
8
|
close: closeScrollStrategy,
|
|
8
9
|
block: blockScrollStrategy,
|
|
9
10
|
reposition: repositionScrollStrategy
|
|
@@ -27,46 +28,53 @@ export function useScrollStrategies(props, data) {
|
|
|
27
28
|
await nextTick();
|
|
28
29
|
scope.run(() => {
|
|
29
30
|
if (typeof props.scrollStrategy === 'function') {
|
|
30
|
-
props.scrollStrategy(data);
|
|
31
|
+
props.scrollStrategy(data, props);
|
|
31
32
|
} else {
|
|
32
33
|
var _scrollStrategies$pro;
|
|
33
34
|
|
|
34
|
-
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data);
|
|
35
|
+
(_scrollStrategies$pro = scrollStrategies[props.scrollStrategy]) == null ? void 0 : _scrollStrategies$pro.call(scrollStrategies, data, props);
|
|
35
36
|
}
|
|
36
37
|
});
|
|
37
38
|
});
|
|
38
39
|
}
|
|
39
40
|
|
|
40
41
|
function closeScrollStrategy(data) {
|
|
41
|
-
var _data$activatorEl$val;
|
|
42
|
-
|
|
43
42
|
function onScroll(e) {
|
|
44
43
|
data.isActive.value = false;
|
|
45
44
|
}
|
|
46
45
|
|
|
47
|
-
bindScroll(
|
|
46
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, onScroll);
|
|
48
47
|
}
|
|
49
48
|
|
|
50
|
-
function blockScrollStrategy(data) {
|
|
49
|
+
function blockScrollStrategy(data, props) {
|
|
51
50
|
var _data$root$value;
|
|
52
51
|
|
|
53
|
-
const
|
|
52
|
+
const offsetParent = (_data$root$value = data.root.value) == null ? void 0 : _data$root$value.offsetParent;
|
|
53
|
+
const scrollElements = [...new Set([...getScrollParents(data.activatorEl.value, props.contained ? offsetParent : undefined), ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined)])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'));
|
|
54
54
|
const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth;
|
|
55
55
|
|
|
56
|
-
const scrollableParent = (el => hasScrollbar(el) && el)(
|
|
56
|
+
const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement);
|
|
57
57
|
|
|
58
58
|
if (scrollableParent) {
|
|
59
59
|
data.root.value.classList.add('v-overlay--scroll-blocked');
|
|
60
60
|
}
|
|
61
61
|
|
|
62
62
|
scrollElements.forEach((el, i) => {
|
|
63
|
+
el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft));
|
|
64
|
+
el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop));
|
|
63
65
|
el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth));
|
|
64
66
|
el.classList.add('v-overlay-scroll-blocked');
|
|
65
67
|
});
|
|
66
68
|
onScopeDispose(() => {
|
|
67
69
|
scrollElements.forEach((el, i) => {
|
|
70
|
+
const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'));
|
|
71
|
+
const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'));
|
|
72
|
+
el.style.removeProperty('--v-body-scroll-x');
|
|
73
|
+
el.style.removeProperty('--v-body-scroll-y');
|
|
68
74
|
el.style.removeProperty('--v-scrollbar-offset');
|
|
69
75
|
el.classList.remove('v-overlay-scroll-blocked');
|
|
76
|
+
el.scrollLeft = -x;
|
|
77
|
+
el.scrollTop = -y;
|
|
70
78
|
});
|
|
71
79
|
|
|
72
80
|
if (scrollableParent) {
|
|
@@ -76,23 +84,21 @@ function blockScrollStrategy(data) {
|
|
|
76
84
|
}
|
|
77
85
|
|
|
78
86
|
function repositionScrollStrategy(data) {
|
|
79
|
-
var _data$activatorEl$val2;
|
|
80
|
-
|
|
81
87
|
let slow = false;
|
|
82
88
|
let raf = -1;
|
|
83
89
|
|
|
84
90
|
function update(e) {
|
|
85
91
|
requestNewFrame(() => {
|
|
86
|
-
var _data$
|
|
92
|
+
var _data$updateLocation$, _data$updateLocation;
|
|
87
93
|
|
|
88
94
|
const start = performance.now();
|
|
89
|
-
(_data$
|
|
95
|
+
(_data$updateLocation$ = (_data$updateLocation = data.updateLocation).value) == null ? void 0 : _data$updateLocation$.call(_data$updateLocation, e);
|
|
90
96
|
const time = performance.now() - start;
|
|
91
97
|
slow = time / (1000 / 60) > 2;
|
|
92
98
|
});
|
|
93
99
|
}
|
|
94
100
|
|
|
95
|
-
bindScroll(
|
|
101
|
+
bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {
|
|
96
102
|
if (slow) {
|
|
97
103
|
// If the position calculation is slow,
|
|
98
104
|
// defer updates until scrolling is finished.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"names":["convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","effectScope","nextTick","onScopeDispose","watchEffect","requestNewFrame","scrollStrategies","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","run","onScroll","e","bindScroll","activatorEl","contentEl","scrollElements","Set","filter","el","classList","contains","scrollbarWidth","window","innerWidth","document","documentElement","offsetWidth","scrollableParent","root","offsetParent","add","forEach","i","style","setProperty","removeProperty","remove","slow","raf","update","start","performance","now","updatePosition","time","cancelAnimationFrame","requestAnimationFrame","addEventListener","passive","removeEventListener"],"mappings":"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","sourcesContent":["// Utilities\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\nimport { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updatePosition: Ref<((e: Event) => void) | undefined>\n}\n\nconst scrollStrategies = {\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\ninterface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ((data: ScrollStrategyData) => void)\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n})\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data)\n }\n })\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData) {\n const scrollElements = [...new Set([\n ...getScrollParents(data.activatorEl.value),\n ...getScrollParents(data.contentEl.value),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(data.root.value?.offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData) {\n let slow = false\n let raf = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updatePosition.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"file":"scrollStrategies.mjs"}
|
|
1
|
+
{"version":3,"file":"scrollStrategies.mjs","names":["convertToUnit","getScrollParents","hasScrollbar","IN_BROWSER","propsFactory","effectScope","nextTick","onScopeDispose","watchEffect","requestNewFrame","scrollStrategies","none","close","closeScrollStrategy","block","blockScrollStrategy","reposition","repositionScrollStrategy","makeScrollStrategyProps","scrollStrategy","type","String","Function","default","validator","val","useScrollStrategies","props","data","scope","stop","isActive","value","run","onScroll","e","bindScroll","activatorEl","contentEl","offsetParent","root","scrollElements","Set","contained","undefined","filter","el","classList","contains","scrollbarWidth","window","innerWidth","document","documentElement","offsetWidth","scrollableParent","add","forEach","i","style","setProperty","scrollLeft","scrollTop","x","parseFloat","getPropertyValue","y","removeProperty","remove","slow","raf","update","start","performance","now","updateLocation","time","cancelAnimationFrame","requestAnimationFrame","addEventListener","passive","removeEventListener"],"sources":["../../../src/components/VOverlay/scrollStrategies.ts"],"sourcesContent":["// Utilities\nimport { convertToUnit, getScrollParents, hasScrollbar, IN_BROWSER, propsFactory } from '@/util'\nimport { effectScope, nextTick, onScopeDispose, watchEffect } from 'vue'\nimport { requestNewFrame } from './requestNewFrame'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\n\nexport interface ScrollStrategyData {\n root: Ref<HTMLElement | undefined>\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n updateLocation: Ref<((e: Event) => void) | undefined>\n}\n\nconst scrollStrategies = {\n none: null,\n close: closeScrollStrategy,\n block: blockScrollStrategy,\n reposition: repositionScrollStrategy,\n}\n\nexport interface StrategyProps {\n scrollStrategy: keyof typeof scrollStrategies | ((data: ScrollStrategyData, props?: StrategyProps) => void)\n contained: boolean | undefined\n}\n\nexport const makeScrollStrategyProps = propsFactory({\n scrollStrategy: {\n type: [String, Function] as PropType<StrategyProps['scrollStrategy']>,\n default: 'block',\n validator: (val: any) => typeof val === 'function' || val in scrollStrategies,\n },\n})\n\nexport function useScrollStrategies (\n props: StrategyProps,\n data: ScrollStrategyData\n) {\n if (!IN_BROWSER) return\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n\n if (!(data.isActive.value && props.scrollStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.scrollStrategy === 'function') {\n props.scrollStrategy(data, props)\n } else {\n scrollStrategies[props.scrollStrategy]?.(data, props)\n }\n })\n })\n}\n\nfunction closeScrollStrategy (data: ScrollStrategyData) {\n function onScroll (e: Event) {\n data.isActive.value = false\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, onScroll)\n}\n\nfunction blockScrollStrategy (data: ScrollStrategyData, props: StrategyProps) {\n const offsetParent = data.root.value?.offsetParent\n const scrollElements = [...new Set([\n ...getScrollParents(data.activatorEl.value, props.contained ? offsetParent : undefined),\n ...getScrollParents(data.contentEl.value, props.contained ? offsetParent : undefined),\n ])].filter(el => !el.classList.contains('v-overlay-scroll-blocked'))\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n const scrollableParent = (el => hasScrollbar(el) && el)(offsetParent || document.documentElement)\n if (scrollableParent) {\n data.root.value!.classList.add('v-overlay--scroll-blocked')\n }\n\n scrollElements.forEach((el, i) => {\n el.style.setProperty('--v-body-scroll-x', convertToUnit(-el.scrollLeft))\n el.style.setProperty('--v-body-scroll-y', convertToUnit(-el.scrollTop))\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n el.classList.add('v-overlay-scroll-blocked')\n })\n\n onScopeDispose(() => {\n scrollElements.forEach((el, i) => {\n const x = parseFloat(el.style.getPropertyValue('--v-body-scroll-x'))\n const y = parseFloat(el.style.getPropertyValue('--v-body-scroll-y'))\n\n el.style.removeProperty('--v-body-scroll-x')\n el.style.removeProperty('--v-body-scroll-y')\n el.style.removeProperty('--v-scrollbar-offset')\n el.classList.remove('v-overlay-scroll-blocked')\n\n el.scrollLeft = -x\n el.scrollTop = -y\n })\n if (scrollableParent) {\n data.root.value!.classList.remove('v-overlay--scroll-blocked')\n }\n })\n}\n\nfunction repositionScrollStrategy (data: ScrollStrategyData) {\n let slow = false\n let raf = -1\n\n function update (e: Event) {\n requestNewFrame(() => {\n const start = performance.now()\n data.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n"],"mappings":"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"}
|