@vuetify/nightly 3.0.0-alpha.3 → 3.0.0-beta.2
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 +41 -98
- package/dist/json/attributes.json +5378 -0
- package/dist/json/importMap.json +585 -0
- package/dist/json/tags.json +1933 -0
- package/dist/json/web-types.json +18314 -0
- package/dist/vuetify.css +12154 -8451
- package/dist/vuetify.d.ts +15974 -0
- package/dist/vuetify.esm.js +17658 -0
- package/dist/vuetify.esm.js.map +1 -0
- package/dist/vuetify.js +16972 -9378
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +6 -3
- package/dist/vuetify.min.js +1466 -5252
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +214 -0
- package/lib/components/VAlert/VAlert.mjs +157 -206
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +106 -159
- package/lib/components/VAlert/VAlertTitle.mjs +4 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -0
- package/lib/components/VAlert/_variables.scss +50 -14
- package/lib/components/VAlert/index.mjs +2 -3
- package/lib/components/VAlert/index.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +29 -0
- package/lib/components/VApp/VApp.mjs +36 -22
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +1 -4
- package/lib/components/VApp/index.mjs +1 -1
- package/lib/components/VApp/index.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.css +10 -0
- package/lib/components/VAppBar/VAppBar.mjs +63 -227
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +8 -54
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +24 -25
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +15 -62
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/_variables.scss +39 -4
- package/lib/components/VAppBar/index.mjs +3 -11
- package/lib/components/VAppBar/index.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +57 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +240 -357
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.sass +69 -33
- package/lib/components/VAutocomplete/_variables.scss +7 -4
- package/lib/components/VAutocomplete/index.mjs +1 -3
- package/lib/components/VAutocomplete/index.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.css +43 -0
- package/lib/components/VAvatar/VAvatar.mjs +49 -27
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +9 -13
- package/lib/components/VAvatar/_mixins.scss +32 -0
- package/lib/components/VAvatar/_variables.scss +19 -8
- package/lib/components/VAvatar/index.mjs +1 -1
- package/lib/components/VAvatar/index.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +74 -0
- package/lib/components/VBadge/VBadge.mjs +51 -35
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +5 -5
- package/lib/components/VBadge/_variables.scss +11 -3
- package/lib/components/VBadge/index.mjs +1 -1
- package/lib/components/VBadge/index.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.css +157 -0
- package/lib/components/VBanner/VBanner.mjs +75 -46
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +80 -122
- package/lib/components/VBanner/VBannerActions.mjs +35 -0
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -0
- package/lib/components/VBanner/VBannerAvatar.mjs +20 -0
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -0
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/VBannerText.mjs +3 -0
- package/lib/components/VBanner/VBannerText.mjs.map +1 -0
- package/lib/components/VBanner/_variables.scss +37 -45
- package/lib/components/VBanner/index.mjs +5 -1
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +61 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +104 -111
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +48 -74
- package/lib/components/VBottomNavigation/_variables.scss +42 -6
- package/lib/components/VBottomNavigation/index.mjs +1 -3
- package/lib/components/VBottomNavigation/index.mjs.map +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +48 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +81 -51
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +26 -30
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +2 -5
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +56 -35
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/_variables.scss +15 -7
- package/lib/components/VBreadcrumbs/index.mjs +3 -11
- package/lib/components/VBreadcrumbs/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/shared.mjs +2 -0
- package/lib/components/VBreadcrumbs/shared.mjs.map +1 -0
- package/lib/components/VBtn/VBtn.css +319 -0
- package/lib/components/VBtn/VBtn.mjs +103 -67
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +101 -34
- package/lib/components/VBtn/_mixins.scss +31 -7
- package/lib/components/VBtn/_variables.scss +66 -29
- package/lib/components/VBtn/index.mjs +1 -1
- package/lib/components/VBtn/index.mjs.map +1 -1
- package/lib/components/VBtnGroup/VBtnGroup.css +57 -0
- package/lib/components/VBtnGroup/VBtnGroup.mjs +67 -0
- package/lib/components/VBtnGroup/VBtnGroup.mjs.map +1 -0
- package/lib/components/VBtnGroup/VBtnGroup.sass +52 -0
- package/lib/components/VBtnGroup/_variables.scss +25 -0
- package/lib/components/VBtnGroup/index.mjs +2 -0
- package/lib/components/VBtnGroup/index.mjs.map +1 -0
- package/lib/components/VBtnToggle/VBtnToggle.css +3 -0
- package/lib/components/VBtnToggle/VBtnToggle.mjs +45 -39
- package/lib/components/VBtnToggle/VBtnToggle.mjs.map +1 -1
- package/lib/components/VBtnToggle/VBtnToggle.sass +5 -95
- package/lib/components/VBtnToggle/_variables.scss +3 -10
- package/lib/components/VBtnToggle/index.mjs +1 -3
- package/lib/components/VBtnToggle/index.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendar.mjs +15 -6
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs +5 -4
- package/lib/components/VCalendar/VCalendarCategory.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.sass +67 -0
- package/lib/components/VCalendar/VCalendarDaily.mjs +1 -1
- package/lib/components/VCalendar/VCalendarDaily.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarMonthly.mjs +1 -1
- package/lib/components/VCalendar/VCalendarMonthly.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.mjs.map +1 -1
- package/lib/components/VCalendar/_variables.scss +4 -0
- package/lib/components/VCalendar/mixins/calendar-base.mjs +5 -4
- package/lib/components/VCalendar/mixins/calendar-base.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs +40 -33
- package/lib/components/VCalendar/mixins/calendar-with-events.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/calendar-with-events.sass +7 -1
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs +2 -1
- package/lib/components/VCalendar/mixins/calendar-with-intervals.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/mouse.mjs +20 -1
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCalendar/modes/common.mjs +7 -3
- package/lib/components/VCalendar/modes/common.mjs.map +1 -1
- package/lib/components/VCalendar/modes/stack.mjs +2 -1
- package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
- package/lib/components/VCalendar/util/events.mjs +8 -3
- package/lib/components/VCalendar/util/events.mjs.map +1 -1
- package/lib/components/VCalendar/util/parser.mjs +1 -3
- package/lib/components/VCalendar/util/parser.mjs.map +1 -1
- package/lib/components/VCalendar/util/timestamp.mjs +24 -12
- package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +270 -0
- package/lib/components/VCard/VCard.mjs +163 -65
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +147 -119
- package/lib/components/VCard/VCardActions.mjs +29 -0
- package/lib/components/VCard/VCardActions.mjs.map +1 -0
- package/lib/components/VCard/VCardAvatar.mjs +3 -0
- package/lib/components/VCard/VCardAvatar.mjs.map +1 -0
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/VCardHeader.mjs +3 -0
- package/lib/components/VCard/VCardHeader.mjs.map +1 -0
- package/lib/components/VCard/VCardHeaderText.mjs +3 -0
- package/lib/components/VCard/VCardHeaderText.mjs.map +1 -0
- package/lib/components/VCard/VCardImg.mjs +3 -0
- package/lib/components/VCard/VCardImg.mjs.map +1 -0
- package/lib/components/VCard/VCardSubtitle.mjs +3 -0
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -0
- package/lib/components/VCard/VCardText.mjs +3 -0
- package/lib/components/VCard/VCardText.mjs.map +1 -0
- package/lib/components/VCard/VCardTitle.mjs +3 -0
- package/lib/components/VCard/VCardTitle.mjs.map +1 -0
- package/lib/components/VCard/_mixins.scss +13 -0
- package/lib/components/VCard/_variables.scss +106 -26
- package/lib/components/VCard/index.mjs +10 -16
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.css +63 -0
- package/lib/components/VCarousel/VCarousel.mjs +99 -185
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +7 -2
- package/lib/components/VCarousel/VCarouselItem.mjs +22 -42
- package/lib/components/VCarousel/VCarouselItem.mjs.map +1 -1
- package/lib/components/VCarousel/_variables.scss +1 -3
- package/lib/components/VCarousel/index.mjs +2 -9
- package/lib/components/VCarousel/index.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.css +3 -0
- package/lib/components/VCheckbox/VCheckbox.mjs +56 -83
- package/lib/components/VCheckbox/VCheckbox.mjs.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.sass +8 -8
- package/lib/components/VCheckbox/_variables.scss +2 -4
- package/lib/components/VCheckbox/index.mjs +1 -9
- package/lib/components/VCheckbox/index.mjs.map +1 -1
- package/lib/components/VChip/VChip.css +276 -0
- package/lib/components/VChip/VChip.mjs +153 -143
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +41 -177
- package/lib/components/VChip/_mixins.scss +65 -0
- package/lib/components/VChip/_variables.scss +48 -49
- package/lib/components/VChip/index.mjs +1 -3
- package/lib/components/VChip/index.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.css +18 -0
- package/lib/components/VChipGroup/VChipGroup.mjs +66 -38
- package/lib/components/VChipGroup/VChipGroup.mjs.map +1 -1
- package/lib/components/VChipGroup/VChipGroup.sass +11 -17
- package/lib/components/VChipGroup/_variables.scss +3 -5
- package/lib/components/VChipGroup/index.mjs +1 -3
- package/lib/components/VChipGroup/index.mjs.map +1 -1
- package/lib/components/VCode/VCode.css +7 -0
- package/lib/components/VCode/VCode.sass +9 -0
- package/lib/components/VCode/_variables.scss +5 -0
- package/lib/components/VCode/index.mjs +4 -0
- package/lib/components/VCode/index.mjs.map +1 -0
- package/lib/components/VColorPicker/VColorPicker.css +21 -0
- package/lib/components/VColorPicker/VColorPicker.mjs +103 -133
- package/lib/components/VColorPicker/VColorPicker.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.sass +10 -17
- package/lib/components/VColorPicker/VColorPickerCanvas.css +21 -0
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs +139 -121
- package/lib/components/VColorPicker/VColorPickerCanvas.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerCanvas.sass +5 -3
- package/lib/components/VColorPicker/VColorPickerEdit.css +31 -0
- package/lib/components/VColorPicker/VColorPickerEdit.mjs +74 -134
- package/lib/components/VColorPicker/VColorPickerEdit.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerEdit.sass +9 -6
- package/lib/components/VColorPicker/VColorPickerPreview.css +67 -0
- package/lib/components/VColorPicker/VColorPickerPreview.mjs +65 -83
- package/lib/components/VColorPicker/VColorPickerPreview.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerPreview.sass +42 -39
- package/lib/components/VColorPicker/VColorPickerSwatches.css +35 -0
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs +34 -54
- package/lib/components/VColorPicker/VColorPickerSwatches.mjs.map +1 -1
- package/lib/components/VColorPicker/VColorPickerSwatches.sass +6 -4
- package/lib/components/VColorPicker/_variables.scss +5 -9
- package/lib/components/VColorPicker/index.mjs +1 -5
- package/lib/components/VColorPicker/index.mjs.map +1 -1
- package/lib/components/VColorPicker/util/index.mjs +141 -97
- package/lib/components/VColorPicker/util/index.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.css +66 -0
- package/lib/components/VCombobox/VCombobox.mjs +336 -200
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/VCombobox.sass +91 -0
- package/lib/components/VCombobox/_variables.scss +8 -0
- package/lib/components/VCombobox/index.mjs +1 -3
- package/lib/components/VCombobox/index.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.css +6 -0
- package/lib/components/VCounter/VCounter.mjs +36 -27
- package/lib/components/VCounter/VCounter.mjs.map +1 -1
- package/lib/components/VCounter/VCounter.sass +5 -7
- package/lib/components/VCounter/_variables.scss +3 -2
- package/lib/components/VCounter/index.mjs +1 -3
- package/lib/components/VCounter/index.mjs.map +1 -1
- package/lib/components/VData/VData.mjs +8 -3
- package/lib/components/VData/VData.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataFooter.mjs +1 -1
- package/lib/components/VDataIterator/VDataFooter.mjs.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.mjs +20 -8
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/_variables.scss +2 -2
- package/lib/components/VDataTable/MobileRow.mjs +6 -5
- package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
- package/lib/components/VDataTable/Row.mjs +20 -12
- package/lib/components/VDataTable/Row.mjs.map +1 -1
- package/lib/components/VDataTable/RowGroup.mjs +5 -4
- package/lib/components/VDataTable/RowGroup.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.mjs +11 -6
- package/lib/components/VDataTable/VDataTable.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTable.sass +5 -0
- package/lib/components/VDataTable/VDataTableHeader.mjs +7 -6
- package/lib/components/VDataTable/VDataTableHeader.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs +3 -3
- package/lib/components/VDataTable/VDataTableHeaderDesktop.mjs.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs +2 -2
- package/lib/components/VDataTable/VDataTableHeaderMobile.mjs.map +1 -1
- package/lib/components/VDataTable/VEditDialog.mjs +7 -6
- package/lib/components/VDataTable/VEditDialog.mjs.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.mjs +2 -2
- package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
- package/lib/components/VDataTable/_variables.scss +2 -2
- package/lib/components/VDatePicker/VDatePicker.mjs +13 -13
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs +5 -5
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs +5 -5
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs +2 -2
- package/lib/components/VDatePicker/VDatePickerMonthTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.mjs +2 -2
- package/lib/components/VDatePicker/VDatePickerTitle.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.mjs +4 -4
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs +20 -9
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +7 -5
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs +1 -0
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
- package/lib/components/VDatePicker/util/monthChange.mjs +3 -3
- package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
- package/lib/components/VDatePicker/util/pad.mjs +4 -1
- package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +38 -0
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -0
- package/lib/components/VDefaultsProvider/index.mjs +2 -0
- package/lib/components/VDefaultsProvider/index.mjs.map +1 -0
- package/lib/components/VDialog/VDialog.css +77 -0
- package/lib/components/VDialog/VDialog.mjs +91 -279
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +53 -81
- package/lib/components/VDialog/_variables.scss +12 -10
- package/lib/components/VDialog/index.mjs +1 -3
- package/lib/components/VDialog/index.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.css +30 -0
- package/lib/components/VDivider/VDivider.mjs +25 -17
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +5 -9
- package/lib/components/VDivider/_variables.scss +9 -11
- package/lib/components/VDivider/index.mjs +1 -1
- package/lib/components/VDivider/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +190 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +87 -83
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.sass +91 -129
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs +42 -0
- package/lib/components/VExpansionPanel/VExpansionPanelText.mjs.map +1 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs +79 -0
- package/lib/components/VExpansionPanel/VExpansionPanelTitle.mjs.map +1 -0
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs +45 -59
- package/lib/components/VExpansionPanel/VExpansionPanels.mjs.map +1 -1
- package/lib/components/VExpansionPanel/_variables.scss +13 -7
- package/lib/components/VExpansionPanel/index.mjs +4 -13
- package/lib/components/VExpansionPanel/index.mjs.map +1 -1
- package/lib/components/VField/VField.css +410 -0
- package/lib/components/VField/VField.mjs +248 -0
- package/lib/components/VField/VField.mjs.map +1 -0
- package/lib/components/VField/VField.sass +392 -0
- package/lib/components/VField/VFieldLabel.mjs +27 -0
- package/lib/components/VField/VFieldLabel.mjs.map +1 -0
- package/lib/components/VField/_variables.scss +44 -0
- package/lib/components/VField/index.mjs +3 -0
- package/lib/components/VField/index.mjs.map +1 -0
- package/lib/components/VFileInput/VFileInput.css +8 -0
- package/lib/components/VFileInput/VFileInput.mjs +181 -224
- package/lib/components/VFileInput/VFileInput.mjs.map +1 -1
- package/lib/components/VFileInput/VFileInput.sass +3 -51
- package/lib/components/VFileInput/_variables.scss +2 -6
- package/lib/components/VFileInput/index.mjs +1 -3
- package/lib/components/VFileInput/index.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.css +20 -0
- package/lib/components/VFooter/VFooter.mjs +54 -31
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +10 -7
- package/lib/components/VFooter/_variables.scss +13 -3
- package/lib/components/VFooter/index.mjs +1 -1
- package/lib/components/VFooter/index.mjs.map +1 -1
- package/lib/components/VForm/VForm.mjs +55 -122
- package/lib/components/VForm/VForm.mjs.map +1 -1
- package/lib/components/VForm/index.mjs +1 -3
- package/lib/components/VForm/index.mjs.map +1 -1
- package/lib/components/VGrid/VCol.mjs +23 -18
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +10 -12
- package/lib/components/VGrid/VContainer.mjs.map +1 -1
- package/lib/components/VGrid/VGrid.css +1002 -0
- package/lib/components/VGrid/VGrid.sass +9 -8
- package/lib/components/VGrid/VRow.mjs +22 -17
- package/lib/components/VGrid/VRow.mjs.map +1 -1
- package/lib/components/VGrid/VSpacer.mjs +1 -1
- package/lib/components/VGrid/VSpacer.mjs.map +1 -1
- package/lib/components/VGrid/_mixins.sass +26 -21
- package/lib/components/VGrid/index.mjs +4 -4
- package/lib/components/VGrid/index.mjs.map +1 -1
- package/lib/components/VHover/VHover.mjs +31 -61
- package/lib/components/VHover/VHover.mjs.map +1 -1
- package/lib/components/VHover/index.mjs +1 -3
- package/lib/components/VHover/index.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.css +65 -0
- package/lib/components/VIcon/VIcon.mjs +36 -29
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +31 -49
- package/lib/components/VIcon/_variables.scss +17 -20
- package/lib/components/VIcon/index.mjs +1 -1
- package/lib/components/VIcon/index.mjs.map +1 -1
- package/lib/components/VImg/VImg.css +34 -0
- package/lib/components/VImg/VImg.mjs +121 -71
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +14 -8
- package/lib/components/VImg/_variables.scss +1 -0
- package/lib/components/VImg/index.mjs +1 -1
- package/lib/components/VImg/index.mjs.map +1 -1
- package/lib/components/VInput/VInput.css +112 -0
- package/lib/components/VInput/VInput.mjs +102 -278
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +77 -117
- package/lib/components/VInput/_variables.scss +21 -13
- package/lib/components/VInput/index.mjs +1 -3
- package/lib/components/VInput/index.mjs.map +1 -1
- package/lib/components/VItemGroup/VItem.mjs +33 -62
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.css +6 -0
- package/lib/components/VItemGroup/VItemGroup.mjs +45 -215
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.sass +3 -2
- package/lib/components/VItemGroup/_variables.scss +3 -2
- package/lib/components/VItemGroup/index.mjs +2 -9
- package/lib/components/VItemGroup/index.mjs.map +1 -1
- package/lib/components/VKbd/VKbd.css +9 -0
- package/lib/components/VKbd/VKbd.sass +13 -0
- package/lib/components/VKbd/_variables.scss +6 -0
- package/lib/components/VKbd/index.mjs +4 -0
- package/lib/components/VKbd/index.mjs.map +1 -0
- package/lib/components/VLabel/VLabel.css +12 -0
- package/lib/components/VLabel/VLabel.mjs +18 -56
- package/lib/components/VLabel/VLabel.mjs.map +1 -1
- package/lib/components/VLabel/VLabel.sass +13 -11
- package/lib/components/VLabel/_variables.scss +7 -4
- package/lib/components/VLabel/index.mjs +1 -3
- package/lib/components/VLabel/index.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.css +11 -0
- package/lib/components/VLayout/VLayout.mjs +20 -15
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.sass +5 -3
- package/lib/components/VLayout/VLayoutItem.css +8 -0
- package/lib/components/VLayout/VLayoutItem.mjs +36 -17
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.sass +8 -0
- package/lib/components/VLayout/index.mjs +2 -2
- package/lib/components/VLayout/index.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs +41 -51
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.mjs +1 -3
- package/lib/components/VLazy/index.mjs.map +1 -1
- package/lib/components/VList/VList.css +107 -0
- package/lib/components/VList/VList.mjs +140 -73
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +88 -94
- package/lib/components/VList/VListChildren.mjs +53 -0
- package/lib/components/VList/VListChildren.mjs.map +1 -0
- package/lib/components/VList/VListGroup.mjs +84 -164
- package/lib/components/VList/VListGroup.mjs.map +1 -1
- package/lib/components/VList/VListImg.mjs +3 -0
- package/lib/components/VList/VListImg.mjs.map +1 -0
- package/lib/components/VList/VListItem.css +350 -0
- package/lib/components/VList/VListItem.mjs +184 -141
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +178 -228
- package/lib/components/VList/VListItemAction.mjs +23 -19
- package/lib/components/VList/VListItemAction.mjs.map +1 -1
- package/lib/components/VList/VListItemAvatar.mjs +16 -29
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemHeader.mjs +3 -0
- package/lib/components/VList/VListItemHeader.mjs.map +1 -0
- package/lib/components/VList/VListItemIcon.mjs +17 -15
- package/lib/components/VList/VListItemIcon.mjs.map +1 -1
- package/lib/components/VList/VListItemMedia.mjs +29 -0
- package/lib/components/VList/VListItemMedia.mjs.map +1 -0
- package/lib/components/VList/VListItemSubtitle.mjs +3 -0
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -0
- package/lib/components/VList/VListItemTitle.mjs +3 -0
- package/lib/components/VList/VListItemTitle.mjs.map +1 -0
- package/lib/components/VList/VListSubheader.mjs +47 -0
- package/lib/components/VList/VListSubheader.mjs.map +1 -0
- package/lib/components/VList/_variables.scss +154 -57
- package/lib/components/VList/index.mjs +12 -28
- package/lib/components/VList/index.mjs.map +1 -1
- package/lib/components/VList/list.mjs +31 -0
- package/lib/components/VList/list.mjs.map +1 -0
- package/lib/components/VLocaleProvider/VLocaleProvider.css +3 -0
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs +19 -10
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- package/lib/components/VLocaleProvider/VLocaleProvider.sass +2 -0
- package/lib/components/VLocaleProvider/index.mjs +1 -1
- package/lib/components/VLocaleProvider/index.mjs.map +1 -1
- package/lib/components/VMain/VMain.css +18 -0
- package/lib/components/VMain/VMain.mjs +23 -19
- package/lib/components/VMain/VMain.mjs.map +1 -1
- package/lib/components/VMain/VMain.sass +2 -1
- package/lib/components/VMain/_variables.scss +3 -1
- package/lib/components/VMain/index.mjs +1 -1
- package/lib/components/VMain/index.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.css +14 -0
- package/lib/components/VMenu/VMenu.mjs +78 -447
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +17 -71
- package/lib/components/VMenu/_variables.scss +3 -2
- package/lib/components/VMenu/index.mjs +1 -3
- 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.css +16 -0
- package/lib/components/VMessages/VMessages.mjs +42 -41
- package/lib/components/VMessages/VMessages.mjs.map +1 -1
- package/lib/components/VMessages/VMessages.sass +5 -10
- package/lib/components/VMessages/_variables.scss +3 -2
- package/lib/components/VMessages/index.mjs +1 -3
- package/lib/components/VMessages/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +93 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs +124 -55
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +36 -23
- package/lib/components/VNavigationDrawer/_variables.scss +16 -9
- package/lib/components/VNavigationDrawer/index.mjs +1 -1
- package/lib/components/VNavigationDrawer/index.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/touch.mjs +139 -0
- package/lib/components/VNavigationDrawer/touch.mjs.map +1 -0
- package/lib/components/VNoSsr/VNoSsr.mjs +23 -0
- package/lib/components/VNoSsr/VNoSsr.mjs.map +1 -0
- package/lib/components/VNoSsr/index.mjs +2 -0
- package/lib/components/VNoSsr/index.mjs.map +1 -0
- package/lib/components/VOtpInput/VOtpInput.mjs +345 -0
- package/lib/components/VOtpInput/VOtpInput.mjs.map +1 -0
- package/lib/components/VOtpInput/VOtpInput.sass +37 -0
- package/lib/components/VOtpInput/_variables.scss +4 -0
- package/lib/components/VOtpInput/index.mjs +4 -0
- package/lib/components/VOtpInput/index.mjs.map +1 -0
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +63 -0
- package/lib/components/VOverlay/VOverlay.mjs +229 -67
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +39 -19
- package/lib/components/VOverlay/_variables.scss +4 -3
- package/lib/components/VOverlay/index.mjs +1 -3
- package/lib/components/VOverlay/index.mjs.map +1 -1
- package/lib/components/VOverlay/positionStrategies.mjs +207 -0
- package/lib/components/VOverlay/positionStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/requestNewFrame.mjs +28 -0
- package/lib/components/VOverlay/requestNewFrame.mjs.map +1 -0
- package/lib/components/VOverlay/scrollStrategies.mjs +137 -0
- package/lib/components/VOverlay/scrollStrategies.mjs.map +1 -0
- package/lib/components/VOverlay/useActivator.mjs +241 -0
- package/lib/components/VOverlay/useActivator.mjs.map +1 -0
- package/lib/components/VOverlay/util/anchor.mjs +52 -0
- package/lib/components/VOverlay/util/anchor.mjs.map +1 -0
- package/lib/components/VOverlay/util/point.mjs +56 -0
- package/lib/components/VOverlay/util/point.mjs.map +1 -0
- package/lib/components/VPagination/VPagination.css +9 -0
- package/lib/components/VPagination/VPagination.mjs +261 -176
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +11 -77
- package/lib/components/VPagination/_variables.scss +1 -15
- package/lib/components/VPagination/index.mjs +1 -3
- package/lib/components/VPagination/index.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.css +7 -0
- package/lib/components/VParallax/VParallax.mjs +71 -77
- package/lib/components/VParallax/VParallax.mjs.map +1 -1
- package/lib/components/VParallax/VParallax.sass +1 -32
- package/lib/components/VParallax/index.mjs +1 -3
- package/lib/components/VParallax/index.mjs.map +1 -1
- package/lib/components/VPicker/VPicker.mjs +5 -5
- package/lib/components/VPicker/VPicker.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.css +101 -0
- package/lib/components/VProgressCircular/VProgressCircular.mjs +110 -141
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +57 -36
- package/lib/components/VProgressCircular/_variables.scss +12 -5
- package/lib/components/VProgressCircular/index.mjs +1 -3
- package/lib/components/VProgressCircular/index.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.css +212 -0
- package/lib/components/VProgressLinear/VProgressLinear.mjs +138 -226
- package/lib/components/VProgressLinear/VProgressLinear.mjs.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.sass +83 -157
- package/lib/components/VProgressLinear/_variables.scss +11 -3
- package/lib/components/VProgressLinear/index.mjs +1 -3
- package/lib/components/VProgressLinear/index.mjs.map +1 -1
- package/lib/components/VRadio/VRadio.mjs +33 -0
- package/lib/components/VRadio/VRadio.mjs.map +1 -0
- package/lib/components/VRadio/index.mjs +2 -0
- package/lib/components/VRadio/index.mjs.map +1 -0
- package/lib/components/VRadioGroup/VRadioGroup.css +10 -0
- package/lib/components/VRadioGroup/VRadioGroup.mjs +66 -69
- package/lib/components/VRadioGroup/VRadioGroup.mjs.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.sass +7 -37
- package/lib/components/VRadioGroup/_variables.scss +3 -3
- package/lib/components/VRadioGroup/index.mjs +1 -9
- package/lib/components/VRadioGroup/index.mjs.map +1 -1
- package/lib/components/VRangeSlider/VRangeSlider.mjs +194 -206
- package/lib/components/VRangeSlider/VRangeSlider.mjs.map +1 -1
- package/lib/components/VRangeSlider/index.mjs +1 -3
- package/lib/components/VRangeSlider/index.mjs.map +1 -1
- package/lib/components/VRating/VRating.css +58 -0
- package/lib/components/VRating/VRating.mjs +202 -177
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +51 -18
- package/lib/components/VRating/_variables.scss +9 -4
- package/lib/components/VRating/index.mjs +1 -3
- package/lib/components/VRating/index.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.css +23 -0
- package/lib/components/VResponsive/VResponsive.mjs +24 -19
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.sass +5 -7
- package/lib/components/VResponsive/index.mjs +1 -1
- package/lib/components/VResponsive/index.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.css +34 -0
- package/lib/components/VSelect/VSelect.mjs +170 -781
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/VSelect.sass +44 -153
- package/lib/components/VSelect/_variables.scss +7 -21
- package/lib/components/VSelect/index.mjs +1 -3
- package/lib/components/VSelect/index.mjs.map +1 -1
- package/lib/components/VSelectionControl/VSelectionControl.css +97 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs +210 -0
- package/lib/components/VSelectionControl/VSelectionControl.mjs.map +1 -0
- package/lib/components/VSelectionControl/VSelectionControl.sass +96 -0
- package/lib/components/VSelectionControl/_variables.scss +9 -0
- package/lib/components/VSelectionControl/index.mjs +2 -0
- package/lib/components/VSelectionControl/index.mjs.map +1 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.css +3 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs +64 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.mjs.map +1 -0
- package/lib/components/VSelectionControlGroup/VSelectionControlGroup.sass +9 -0
- package/lib/components/VSelectionControlGroup/_variables.scss +4 -0
- package/lib/components/VSelectionControlGroup/index.mjs +2 -0
- package/lib/components/VSelectionControlGroup/index.mjs.map +1 -0
- package/lib/components/VSheet/VSheet.css +23 -0
- package/lib/components/VSheet/VSheet.mjs +18 -18
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +11 -7
- package/lib/components/VSheet/_variables.scss +15 -4
- package/lib/components/VSheet/index.mjs +1 -1
- package/lib/components/VSheet/index.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +8 -8
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +42 -0
- package/lib/components/VSlideGroup/VSlideGroup.mjs +301 -361
- package/lib/components/VSlideGroup/VSlideGroup.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.sass +21 -25
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs +29 -0
- package/lib/components/VSlideGroup/VSlideGroupItem.mjs.map +1 -0
- package/lib/components/VSlideGroup/_variables.scss +4 -1
- package/lib/components/VSlideGroup/helpers.mjs +54 -0
- package/lib/components/VSlideGroup/helpers.mjs.map +1 -0
- package/lib/components/VSlideGroup/index.mjs +2 -9
- package/lib/components/VSlideGroup/index.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.css +53 -0
- package/lib/components/VSlider/VSlider.mjs +113 -538
- package/lib/components/VSlider/VSlider.mjs.map +1 -1
- package/lib/components/VSlider/VSlider.sass +38 -274
- package/lib/components/VSlider/VSliderThumb.css +142 -0
- package/lib/components/VSlider/VSliderThumb.mjs +165 -0
- package/lib/components/VSlider/VSliderThumb.mjs.map +1 -0
- package/lib/components/VSlider/VSliderThumb.sass +147 -0
- package/lib/components/VSlider/VSliderTrack.css +150 -0
- package/lib/components/VSlider/VSliderTrack.mjs +121 -0
- package/lib/components/VSlider/VSliderTrack.mjs.map +1 -0
- package/lib/components/VSlider/VSliderTrack.sass +159 -0
- package/lib/components/VSlider/_variables.scss +23 -14
- package/lib/components/VSlider/index.mjs +1 -3
- package/lib/components/VSlider/index.mjs.map +1 -1
- package/lib/components/VSlider/slider.mjs +300 -0
- package/lib/components/VSlider/slider.mjs.map +1 -0
- package/lib/components/VSnackbar/VSnackbar.css +137 -0
- package/lib/components/VSnackbar/VSnackbar.mjs +101 -168
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +43 -79
- package/lib/components/VSnackbar/_variables.scss +20 -25
- package/lib/components/VSnackbar/index.mjs +1 -3
- package/lib/components/VSnackbar/index.mjs.map +1 -1
- package/lib/components/VSparkline/VSparkline.mjs +13 -13
- package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/path.mjs +7 -5
- package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs +4 -4
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.mjs +2 -2
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.sass +5 -1
- package/lib/components/VStepper/VStepperStep.mjs +1 -1
- package/lib/components/VStepper/_variables.scss +6 -5
- package/lib/components/VSwitch/VSwitch.css +69 -0
- package/lib/components/VSwitch/VSwitch.mjs +99 -107
- package/lib/components/VSwitch/VSwitch.mjs.map +1 -1
- package/lib/components/VSwitch/VSwitch.sass +71 -129
- package/lib/components/VSwitch/_variables.scss +10 -23
- package/lib/components/VSwitch/index.mjs +1 -3
- package/lib/components/VSwitch/index.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.css +35 -0
- package/lib/components/VSystemBar/VSystemBar.mjs +52 -37
- package/lib/components/VSystemBar/VSystemBar.mjs.map +1 -1
- package/lib/components/VSystemBar/VSystemBar.sass +14 -26
- package/lib/components/VSystemBar/_variables.scss +27 -17
- package/lib/components/VSystemBar/index.mjs +1 -1
- package/lib/components/VSystemBar/index.mjs.map +1 -1
- package/lib/components/VTable/VTable.css +143 -0
- package/lib/components/VTable/VTable.mjs +54 -0
- package/lib/components/VTable/VTable.mjs.map +1 -0
- package/lib/components/VTable/VTable.sass +156 -0
- package/lib/components/VTable/_mixins.scss +25 -0
- package/lib/components/VTable/_variables.scss +21 -0
- package/lib/components/VTable/index.mjs +2 -0
- package/lib/components/VTable/index.mjs.map +1 -0
- package/lib/components/VTabs/VTab.css +29 -0
- package/lib/components/VTabs/VTab.mjs +109 -69
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +30 -0
- package/lib/components/VTabs/VTabs.css +71 -0
- package/lib/components/VTabs/VTabs.mjs +86 -283
- package/lib/components/VTabs/VTabs.mjs.map +1 -1
- package/lib/components/VTabs/VTabs.sass +40 -202
- package/lib/components/VTabs/_variables.scss +10 -18
- package/lib/components/VTabs/index.mjs +2 -15
- 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 +70 -0
- package/lib/components/VTextField/VTextField.mjs +162 -483
- package/lib/components/VTextField/VTextField.mjs.map +1 -1
- package/lib/components/VTextField/VTextField.sass +56 -493
- package/lib/components/VTextField/_variables.scss +10 -50
- package/lib/components/VTextField/index.mjs +1 -3
- package/lib/components/VTextField/index.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.css +37 -0
- package/lib/components/VTextarea/VTextarea.mjs +210 -74
- package/lib/components/VTextarea/VTextarea.mjs.map +1 -1
- package/lib/components/VTextarea/VTextarea.sass +35 -75
- package/lib/components/VTextarea/_variables.scss +2 -4
- package/lib/components/VTextarea/index.mjs +1 -3
- package/lib/components/VTextarea/index.mjs.map +1 -1
- package/lib/components/VThemeProvider/VThemeProvider.css +4 -0
- package/lib/components/VThemeProvider/VThemeProvider.mjs +23 -18
- package/lib/components/VThemeProvider/VThemeProvider.mjs.map +1 -1
- package/lib/components/VThemeProvider/index.mjs +1 -1
- package/lib/components/VThemeProvider/index.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePicker.mjs +4 -4
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerClock.mjs +9 -9
- package/lib/components/VTimePicker/VTimePickerClock.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerTitle.mjs +2 -2
- package/lib/components/VTimePicker/VTimePickerTitle.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +399 -0
- package/lib/components/VTimeline/VTimeline.mjs +89 -34
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +347 -115
- package/lib/components/VTimeline/VTimelineDivider.mjs +76 -0
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -0
- package/lib/components/VTimeline/VTimelineItem.mjs +68 -90
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_mixins.sass +21 -32
- package/lib/components/VTimeline/_variables.scss +28 -15
- package/lib/components/VTimeline/index.mjs +2 -9
- package/lib/components/VTimeline/index.mjs.map +1 -1
- package/lib/components/VTimeline/shared.mjs +2 -0
- package/lib/components/VTimeline/shared.mjs.map +1 -0
- package/lib/components/VToolbar/VToolbar.css +145 -0
- package/lib/components/VToolbar/VToolbar.mjs +135 -141
- package/lib/components/VToolbar/VToolbar.mjs.map +1 -1
- package/lib/components/VToolbar/VToolbar.sass +75 -123
- package/lib/components/VToolbar/VToolbarItems.mjs +32 -0
- package/lib/components/VToolbar/VToolbarItems.mjs.map +1 -0
- package/lib/components/VToolbar/VToolbarTitle.mjs +34 -0
- package/lib/components/VToolbar/VToolbarTitle.mjs.map +1 -0
- package/lib/components/VToolbar/_variables.scss +65 -15
- package/lib/components/VToolbar/index.mjs +3 -14
- package/lib/components/VToolbar/index.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.css +22 -0
- package/lib/components/VTooltip/VTooltip.mjs +73 -199
- package/lib/components/VTooltip/VTooltip.mjs.map +1 -1
- package/lib/components/VTooltip/VTooltip.sass +8 -15
- package/lib/components/VTooltip/_variables.scss +6 -6
- package/lib/components/VTooltip/index.mjs +1 -3
- package/lib/components/VTooltip/index.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeview.mjs +18 -9
- package/lib/components/VTreeview/VTreeview.mjs.map +1 -1
- package/lib/components/VTreeview/VTreeviewNode.mjs +4 -2
- package/lib/components/VTreeview/VTreeviewNode.mjs.map +1 -1
- package/lib/components/VTreeview/_mixins.sass +3 -3
- package/lib/components/VValidation/VValidation.mjs +26 -0
- package/lib/components/VValidation/VValidation.mjs.map +1 -0
- package/lib/components/VValidation/index.mjs +2 -0
- package/lib/components/VValidation/index.mjs.map +1 -0
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs +1 -1
- package/lib/components/VVirtualScroll/VVirtualScroll.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.css +70 -0
- package/lib/components/VWindow/VWindow.mjs +158 -233
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +29 -51
- package/lib/components/VWindow/VWindowItem.mjs +72 -98
- package/lib/components/VWindow/VWindowItem.mjs.map +1 -1
- package/lib/components/VWindow/_variables.scss +2 -3
- package/lib/components/VWindow/index.mjs +2 -9
- package/lib/components/VWindow/index.mjs.map +1 -1
- package/lib/components/index.d.ts +15391 -0
- package/lib/components/index.mjs +75 -65
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs +61 -16
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +107 -0
- package/lib/components/transitions/dialog-transition.mjs.map +1 -0
- package/lib/components/transitions/expand-transition.mjs +6 -4
- package/lib/components/transitions/expand-transition.mjs.map +1 -1
- package/lib/components/transitions/index.mjs +1 -1
- package/lib/components/transitions/index.mjs.map +1 -1
- package/lib/composables/border.mjs +9 -7
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/color.mjs +2 -2
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +42 -0
- package/lib/composables/defaults.mjs.map +1 -0
- package/lib/composables/density.mjs +5 -4
- package/lib/composables/density.mjs.map +1 -1
- package/lib/composables/display.mjs +4 -3
- package/lib/composables/display.mjs.map +1 -1
- package/lib/composables/elevation.mjs +4 -3
- package/lib/composables/elevation.mjs.map +1 -1
- package/lib/composables/filter.mjs +87 -0
- package/lib/composables/filter.mjs.map +1 -0
- package/lib/composables/focus.mjs +35 -0
- package/lib/composables/focus.mjs.map +1 -0
- package/lib/composables/form.mjs +116 -0
- package/lib/composables/form.mjs.map +1 -0
- package/lib/composables/forwardRef.mjs +46 -0
- package/lib/composables/forwardRef.mjs.map +1 -0
- package/lib/composables/group.mjs +135 -45
- package/lib/composables/group.mjs.map +1 -1
- package/lib/composables/hydration.mjs +12 -0
- package/lib/composables/hydration.mjs.map +1 -0
- package/lib/composables/icons.mjs +24 -30
- package/lib/composables/icons.mjs.map +1 -1
- package/lib/composables/index.mjs +9 -0
- package/lib/composables/index.mjs.map +1 -0
- package/lib/composables/intersectionObserver.mjs +33 -0
- package/lib/composables/intersectionObserver.mjs.map +1 -0
- package/lib/composables/items.mjs +56 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +157 -66
- package/lib/composables/layout.mjs.map +1 -1
- package/lib/composables/lazy.mjs +23 -0
- package/lib/composables/lazy.mjs.map +1 -0
- package/lib/composables/loader.mjs +39 -0
- package/lib/composables/loader.mjs.map +1 -0
- package/lib/composables/locale.mjs +25 -13
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/mutationObserver.mjs +43 -0
- package/lib/composables/mutationObserver.mjs.map +1 -0
- package/lib/composables/nested/nested.mjs +207 -0
- package/lib/composables/nested/nested.mjs.map +1 -0
- package/lib/composables/nested/openStrategies.mjs +76 -0
- package/lib/composables/nested/openStrategies.mjs.map +1 -0
- package/lib/composables/nested/selectStrategies.mjs +198 -0
- package/lib/composables/nested/selectStrategies.mjs.map +1 -0
- package/lib/composables/overlay.mjs +34 -0
- package/lib/composables/overlay.mjs.map +1 -0
- package/lib/composables/position.mjs +6 -5
- package/lib/composables/position.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +13 -8
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs +16 -0
- package/lib/composables/refs.mjs.map +1 -0
- package/lib/composables/resizeObserver.mjs +35 -0
- package/lib/composables/resizeObserver.mjs.map +1 -0
- package/lib/composables/rounded.mjs +10 -8
- package/lib/composables/rounded.mjs.map +1 -1
- package/lib/composables/router.mjs +82 -0
- package/lib/composables/router.mjs.map +1 -0
- package/lib/composables/rtl.mjs +5 -5
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/scroll.mjs +3 -2
- 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 +4 -3
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/stack.mjs +36 -0
- package/lib/composables/stack.mjs.map +1 -0
- package/lib/composables/teleport.mjs +30 -0
- package/lib/composables/teleport.mjs.map +1 -0
- package/lib/composables/theme.mjs +147 -96
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/touch.mjs +129 -0
- package/lib/composables/touch.mjs.map +1 -0
- package/lib/composables/transition.mjs +20 -0
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +119 -0
- package/lib/composables/validation.mjs.map +1 -0
- package/lib/composables/variant.mjs +50 -0
- package/lib/composables/variant.mjs.map +1 -0
- package/lib/directives/click-outside/index.mjs +23 -11
- package/lib/directives/click-outside/index.mjs.map +1 -1
- package/lib/directives/color/index.mjs +1 -1
- package/lib/directives/color/index.mjs.map +1 -1
- package/lib/directives/index.d.ts +58 -0
- package/lib/directives/index.mjs +2 -2
- package/lib/directives/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs +26 -19
- package/lib/directives/intersect/index.mjs.map +1 -1
- package/lib/directives/mutate/index.mjs +33 -34
- package/lib/directives/mutate/index.mjs.map +1 -1
- package/lib/directives/resize/index.mjs +10 -7
- package/lib/directives/resize/index.mjs.map +1 -1
- package/lib/directives/ripple/VRipple.css +34 -0
- package/lib/directives/ripple/VRipple.sass +2 -1
- package/lib/directives/ripple/_variables.scss +4 -4
- package/lib/directives/ripple/index.mjs +35 -20
- package/lib/directives/ripple/index.mjs.map +1 -1
- package/lib/directives/scroll/index.mjs +9 -6
- package/lib/directives/scroll/index.mjs.map +1 -1
- package/lib/directives/touch/index.mjs +17 -7
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +8 -6
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +55 -36
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +54 -0
- package/lib/iconsets/fa.d.ts +54 -0
- package/lib/iconsets/fa.mjs +1 -0
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +54 -0
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +54 -0
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +54 -0
- package/lib/iconsets/mdi-svg.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +54 -0
- package/lib/iconsets/mdi.mjs +4 -3
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +450 -0
- package/lib/locale/adapters/vue-i18n.mjs +64 -0
- package/lib/locale/adapters/vue-i18n.mjs.map +1 -0
- package/lib/locale/adapters/vue-intl.mjs +67 -0
- package/lib/locale/adapters/vue-intl.mjs.map +1 -0
- package/lib/locale/af.mjs +5 -3
- package/lib/locale/af.mjs.map +1 -1
- package/lib/locale/ar.mjs +5 -3
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs +5 -3
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs +5 -3
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +12 -10
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs +5 -3
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +6 -4
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs +72 -0
- package/lib/locale/da.mjs.map +1 -0
- package/lib/locale/de.mjs +5 -3
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs +5 -3
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs +5 -3
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +6 -4
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs +5 -3
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs +5 -3
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs +5 -3
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +7 -5
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs +5 -3
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs +5 -3
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs +5 -3
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs +5 -3
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.ts +3111 -0
- package/lib/locale/index.mjs +1 -0
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/it.mjs +8 -6
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs +5 -3
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs +5 -3
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs +5 -3
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs +5 -3
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs +5 -3
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs +5 -3
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs +5 -3
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs +5 -3
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs +5 -3
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs +5 -3
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs +5 -3
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs +5 -3
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs +5 -3
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs +5 -3
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs +5 -3
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs +5 -3
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs +5 -3
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs +5 -3
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs +5 -3
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs +5 -3
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs +5 -3
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/presets/default/index.mjs +1 -1
- package/lib/presets/default/index.mjs.map +1 -1
- package/lib/services/goto/easing-patterns.mjs +0 -3
- package/lib/services/goto/easing-patterns.mjs.map +1 -1
- package/lib/services/goto/index.mjs +17 -17
- package/lib/services/goto/index.mjs.map +1 -1
- package/lib/services/goto/util.mjs +2 -2
- package/lib/services/goto/util.mjs.map +1 -1
- package/lib/styles/elements/_blockquote.sass +6 -4
- package/lib/styles/elements/_global.sass +12 -8
- package/lib/styles/elements/_index.sass +2 -6
- package/lib/styles/generic/_colors.scss +31 -11
- package/lib/styles/generic/_elevation.scss +3 -3
- package/lib/styles/generic/_index.scss +6 -6
- package/lib/styles/generic/_reset.scss +236 -226
- package/lib/styles/generic/_transitions.scss +20 -4
- package/lib/styles/main.css +18620 -0
- package/lib/styles/main.sass +4 -5
- package/lib/styles/settings/_colors.scss +431 -7
- package/lib/styles/settings/_elevations.scss +1 -1
- package/lib/styles/settings/_index.sass +4 -10
- package/lib/styles/settings/_utilities.scss +514 -463
- package/lib/styles/settings/_variables.scss +59 -64
- package/lib/styles/tools/_absolute.sass +8 -0
- package/lib/styles/tools/_border.sass +6 -1
- package/lib/styles/tools/_density.sass +5 -9
- package/lib/styles/tools/_display.sass +11 -0
- package/lib/styles/tools/_elevation.sass +4 -2
- package/lib/styles/tools/_functions.sass +32 -24
- package/lib/styles/tools/_index.sass +17 -22
- package/lib/styles/tools/_radius.sass +5 -2
- package/lib/styles/tools/_rtl.sass +2 -0
- package/lib/styles/tools/_sheet.sass +7 -4
- package/lib/styles/tools/_states.sass +18 -8
- package/lib/styles/tools/_theme.sass +3 -5
- package/lib/styles/tools/_typography.sass +6 -0
- package/lib/styles/tools/_utilities.sass +27 -24
- package/lib/styles/tools/_variant.sass +53 -0
- package/lib/styles/utilities/_display.sass +7 -6
- package/lib/styles/utilities/_index.sass +25 -22
- package/lib/styles/utilities/_text.sass +8 -7
- package/lib/styles.scss +4 -0
- package/lib/util/animation.mjs +43 -0
- package/lib/util/animation.mjs.map +1 -0
- package/lib/util/box.mjs +32 -0
- package/lib/util/box.mjs.map +1 -0
- package/lib/util/color/APCA.mjs +85 -0
- package/lib/util/color/APCA.mjs.map +1 -0
- package/lib/util/colorUtils.mjs +10 -7
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/console.mjs +8 -7
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs +18 -11
- package/lib/util/createSimpleFunctional.mjs.map +1 -1
- package/lib/util/dateTimeUtils.mjs +3 -1
- package/lib/util/dateTimeUtils.mjs.map +1 -1
- package/lib/util/defineComponent.mjs +92 -0
- package/lib/util/defineComponent.mjs.map +1 -0
- package/lib/util/easing.mjs +5 -0
- package/lib/util/easing.mjs.map +1 -0
- package/lib/util/getCurrentInstance.mjs +19 -0
- package/lib/util/getCurrentInstance.mjs.map +1 -0
- package/lib/util/getScrollParent.mjs +24 -0
- package/lib/util/getScrollParent.mjs.map +1 -0
- package/lib/util/globals.mjs +1 -0
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +194 -41
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +6 -2
- package/lib/util/isFixedPosition.mjs +12 -0
- package/lib/util/isFixedPosition.mjs.map +1 -0
- package/lib/util/propsFactory.mjs.map +1 -1
- package/lib/util/useRender.mjs +4 -2
- package/lib/util/useRender.mjs.map +1 -1
- package/package.json +109 -42
- package/dist/vuetify.css.map +0 -1
- package/lib/components/VApp/_index.scss +0 -1
- package/lib/components/VAvatar/_index.scss +0 -2
- package/lib/components/VBadge/_index.scss +0 -2
- package/lib/components/VBanner/_index.scss +0 -2
- package/lib/components/VBtn/_index.scss +0 -3
- package/lib/components/VCheckbox/VSimpleCheckbox.mjs +0 -92
- package/lib/components/VCheckbox/VSimpleCheckbox.mjs.map +0 -1
- package/lib/components/VCheckbox/VSimpleCheckbox.sass +0 -16
- package/lib/components/VDataTable/VSimpleTable.mjs +0 -48
- package/lib/components/VDataTable/VSimpleTable.mjs.map +0 -1
- package/lib/components/VDataTable/VSimpleTable.sass +0 -179
- package/lib/components/VDivider/_index.scss +0 -2
- package/lib/components/VExpansionPanel/VExpansionPanelContent.mjs +0 -47
- package/lib/components/VExpansionPanel/VExpansionPanelContent.mjs.map +0 -1
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.mjs +0 -112
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.mjs.map +0 -1
- package/lib/components/VFooter/_index.scss +0 -2
- package/lib/components/VGrid/_index.scss +0 -2
- package/lib/components/VIcon/_index.scss +0 -2
- package/lib/components/VImg/_index.scss +0 -2
- package/lib/components/VLayout/_index.scss +0 -1
- package/lib/components/VList/VListGroup.sass +0 -111
- package/lib/components/VList/VListItemGroup.mjs +0 -41
- package/lib/components/VList/VListItemGroup.mjs.map +0 -1
- package/lib/components/VList/VListItemGroup.sass +0 -5
- package/lib/components/VList/_mixins.sass +0 -18
- package/lib/components/VMain/_index.scss +0 -2
- package/lib/components/VNavigationDrawer/_index.scss +0 -2
- package/lib/components/VParallax/_variables.scss +0 -4
- package/lib/components/VRadioGroup/VRadio.mjs +0 -179
- package/lib/components/VRadioGroup/VRadio.mjs.map +0 -1
- package/lib/components/VRadioGroup/VRadio.sass +0 -25
- package/lib/components/VRangeSlider/VRangeSlider.sass +0 -19
- package/lib/components/VResponsive/_index.scss +0 -1
- package/lib/components/VSelect/VSelectList.mjs +0 -251
- package/lib/components/VSelect/VSelectList.mjs.map +0 -1
- package/lib/components/VSheet/_index.scss +0 -2
- package/lib/components/VSlideGroup/VSlideItem.mjs +0 -14
- package/lib/components/VSlideGroup/VSlideItem.mjs.map +0 -1
- package/lib/components/VSubheader/VSubheader.mjs +0 -31
- package/lib/components/VSubheader/VSubheader.mjs.map +0 -1
- package/lib/components/VSubheader/VSubheader.sass +0 -15
- package/lib/components/VSubheader/_variables.scss +0 -6
- package/lib/components/VSubheader/index.mjs +0 -4
- package/lib/components/VSubheader/index.mjs.map +0 -1
- package/lib/components/VSystemBar/_index.scss +0 -2
- package/lib/components/VTabs/VTabItem.mjs +0 -23
- package/lib/components/VTabs/VTabItem.mjs.map +0 -1
- package/lib/components/VTabs/VTabsBar.mjs +0 -86
- package/lib/components/VTabs/VTabsBar.mjs.map +0 -1
- package/lib/components/VTabs/VTabsItems.mjs +0 -37
- package/lib/components/VTabs/VTabsItems.mjs.map +0 -1
- package/lib/components/VTabs/VTabsSlider.mjs +0 -20
- package/lib/components/VTabs/VTabsSlider.mjs.map +0 -1
- package/lib/components/VTextField/_mixins.sass +0 -18
- package/lib/components/VToolbar/_index.scss +0 -2
- package/lib/entry.mjs +0 -4
- package/lib/entry.mjs.map +0 -1
- package/lib/globals.d.mjs +0 -2
- package/lib/globals.d.mjs.map +0 -1
- package/lib/mixins/activatable/index.mjs +0 -196
- package/lib/mixins/activatable/index.mjs.map +0 -1
- package/lib/mixins/applicationable/index.mjs +0 -72
- package/lib/mixins/applicationable/index.mjs.map +0 -1
- package/lib/mixins/binds-attrs/index.mjs +0 -42
- package/lib/mixins/binds-attrs/index.mjs.map +0 -1
- package/lib/mixins/bootable/index.mjs +0 -54
- package/lib/mixins/bootable/index.mjs.map +0 -1
- package/lib/mixins/button-group/index.mjs +0 -28
- package/lib/mixins/button-group/index.mjs.map +0 -1
- package/lib/mixins/colorable/index.mjs +0 -78
- package/lib/mixins/colorable/index.mjs.map +0 -1
- package/lib/mixins/comparable/index.mjs +0 -15
- package/lib/mixins/comparable/index.mjs.map +0 -1
- package/lib/mixins/dependent/index.mjs +0 -73
- package/lib/mixins/dependent/index.mjs.map +0 -1
- package/lib/mixins/detachable/index.mjs +0 -128
- package/lib/mixins/detachable/index.mjs.map +0 -1
- package/lib/mixins/elevatable/index.mjs +0 -26
- package/lib/mixins/elevatable/index.mjs.map +0 -1
- package/lib/mixins/filterable/index.mjs +0 -16
- package/lib/mixins/filterable/index.mjs.map +0 -1
- package/lib/mixins/intersectable/index.mjs +0 -53
- package/lib/mixins/intersectable/index.mjs.map +0 -1
- package/lib/mixins/loadable/index.mjs +0 -45
- package/lib/mixins/loadable/index.mjs.map +0 -1
- package/lib/mixins/localable/index.mjs +0 -17
- package/lib/mixins/localable/index.mjs.map +0 -1
- package/lib/mixins/menuable/index.mjs +0 -361
- package/lib/mixins/menuable/index.mjs.map +0 -1
- package/lib/mixins/mobile/index.mjs +0 -50
- package/lib/mixins/mobile/index.mjs.map +0 -1
- package/lib/mixins/overlayable/index.mjs +0 -201
- package/lib/mixins/overlayable/index.mjs.map +0 -1
- package/lib/mixins/picker/index.mjs +0 -75
- package/lib/mixins/picker/index.mjs.map +0 -1
- package/lib/mixins/picker-button/index.mjs +0 -35
- package/lib/mixins/picker-button/index.mjs.map +0 -1
- package/lib/mixins/proxyable/index.mjs +0 -50
- package/lib/mixins/proxyable/index.mjs.map +0 -1
- package/lib/mixins/returnable/index.mjs +0 -36
- package/lib/mixins/returnable/index.mjs.map +0 -1
- package/lib/mixins/rippleable/index.mjs +0 -35
- package/lib/mixins/rippleable/index.mjs.map +0 -1
- package/lib/mixins/roundable/index.mjs +0 -37
- package/lib/mixins/roundable/index.mjs.map +0 -1
- package/lib/mixins/routable/index.mjs +0 -146
- package/lib/mixins/routable/index.mjs.map +0 -1
- package/lib/mixins/selectable/index.mjs +0 -167
- package/lib/mixins/selectable/index.mjs.map +0 -1
- package/lib/mixins/stackable/index.mjs +0 -55
- package/lib/mixins/stackable/index.mjs.map +0 -1
- package/lib/mixins/themeable/index.mjs +0 -111
- package/lib/mixins/themeable/index.mjs.map +0 -1
- package/lib/mixins/toggleable/index.mjs +0 -40
- package/lib/mixins/toggleable/index.mjs.map +0 -1
- package/lib/mixins/transitionable/index.mjs +0 -13
- package/lib/mixins/transitionable/index.mjs.map +0 -1
- package/lib/mixins/translatable/index.mjs +0 -59
- package/lib/mixins/translatable/index.mjs.map +0 -1
- package/lib/mixins/validatable/index.mjs +0 -263
- package/lib/mixins/validatable/index.mjs.map +0 -1
- package/lib/services/application/index.mjs +0 -44
- package/lib/services/application/index.mjs.map +0 -1
- package/lib/services/breakpoint/index.mjs +0 -151
- package/lib/services/breakpoint/index.mjs.map +0 -1
- package/lib/services/index.mjs +0 -10
- package/lib/services/index.mjs.map +0 -1
- package/lib/services/lang/index.mjs +0 -69
- package/lib/services/lang/index.mjs.map +0 -1
- package/lib/services/service/index.mjs +0 -8
- package/lib/services/service/index.mjs.map +0 -1
- package/lib/styles/components/_index.sass +0 -1
- package/lib/styles/components/_selection-controls.sass +0 -119
- package/lib/styles/elements/_code.sass +0 -23
- package/lib/styles/elements/_headings.sass +0 -8
- package/lib/styles/elements/_lists.sass +0 -3
- package/lib/styles/elements/_typography.sass +0 -88
- package/lib/styles/settings/_dark.scss +0 -145
- package/lib/styles/settings/_light.scss +0 -126
- package/lib/styles/settings/_theme.scss +0 -1
- package/lib/styles/styles.sass +0 -2
- package/lib/util/makeProps.mjs +0 -52
- package/lib/util/makeProps.mjs.map +0 -1
- package/lib/util/useDirective.mjs +0 -7
- package/lib/util/useDirective.mjs.map +0 -1
- package/types/.npmignore +0 -2
- package/types/alacarte.d.ts +0 -49
- package/types/colors.d.ts +0 -107
- package/types/index.d.ts +0 -300
- package/types/lib.d.ts +0 -380
- package/types/services/application.d.ts +0 -27
- package/types/services/breakpoint.d.ts +0 -45
- package/types/services/goto.d.ts +0 -31
- package/types/services/icons.d.ts +0 -71
- package/types/services/index.d.ts +0 -16
- package/types/services/lang.d.ts +0 -19
- package/types/services/theme.d.ts +0 -83
package/dist/vuetify.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://Vuetify/webpack/universalModuleDefinition","webpack://Vuetify/./src/styles/main.sass","webpack://Vuetify/./src/components/VApp/VApp.sass","webpack://Vuetify/./src/util/console.ts","webpack://Vuetify/./src/util/helpers.ts","webpack://Vuetify/./src/util/color/transformSRGB.ts","webpack://Vuetify/./src/util/color/transformCIELAB.ts","webpack://Vuetify/./src/util/colorUtils.ts","webpack://Vuetify/./src/composables/theme.ts","webpack://Vuetify/./src/util/propsFactory.ts","webpack://Vuetify/./src/composables/layout.ts","webpack://Vuetify/./src/util/globals.ts","webpack://Vuetify/./src/composables/display.ts","webpack://Vuetify/./src/composables/icons.tsx","webpack://Vuetify/./src/locale/en.ts","webpack://Vuetify/./src/composables/locale.ts","webpack://Vuetify/./src/locale/index.ts","webpack://Vuetify/./src/composables/rtl.ts","webpack://Vuetify/./src/iconsets/mdi.ts","webpack://Vuetify/./src/framework.ts","webpack://Vuetify/./src/util/makeProps.ts","webpack://Vuetify/./src/components/VApp/VApp.tsx","webpack://Vuetify/./src/components/VAvatar/VAvatar.sass","webpack://Vuetify/./src/composables/rounded.ts","webpack://Vuetify/./src/composables/size.ts","webpack://Vuetify/./src/composables/tag.ts","webpack://Vuetify/./src/composables/color.ts","webpack://Vuetify/./src/components/VAvatar/VAvatar.tsx","webpack://Vuetify/./src/components/VBadge/VBadge.sass","webpack://Vuetify/./src/components/VIcon/VIcon.sass","webpack://Vuetify/./src/components/VIcon/VIcon.tsx","webpack://Vuetify/./src/composables/transition.ts","webpack://Vuetify/./src/components/VBadge/VBadge.tsx","webpack://Vuetify/./src/components/VBanner/VBanner.sass","webpack://Vuetify/./src/composables/border.ts","webpack://Vuetify/./src/composables/dimensions.ts","webpack://Vuetify/./src/composables/elevation.ts","webpack://Vuetify/./src/composables/position.ts","webpack://Vuetify/./src/components/VBanner/VBanner.tsx","webpack://Vuetify/./src/components/VBtn/VBtn.sass","webpack://Vuetify/./src/composables/density.ts","webpack://Vuetify/./src/directives/ripple/VRipple.sass","webpack://Vuetify/./src/directives/ripple/index.ts","webpack://Vuetify/./src/util/useDirective.ts","webpack://Vuetify/./src/components/VBtn/VBtn.tsx","webpack://Vuetify/./src/components/VDivider/VDivider.sass","webpack://Vuetify/./src/components/VDivider/VDivider.tsx","webpack://Vuetify/./src/components/VFooter/VFooter.sass","webpack://Vuetify/./src/components/VFooter/VFooter.tsx","webpack://Vuetify/./src/components/VGrid/VGrid.sass","webpack://Vuetify/./src/components/VGrid/VContainer.tsx","webpack://Vuetify/./src/components/VGrid/VCol.ts","webpack://Vuetify/./src/components/VGrid/VRow.ts","webpack://Vuetify/./src/util/createSimpleFunctional.ts","webpack://Vuetify/./src/components/VGrid/VSpacer.ts","webpack://Vuetify/./src/components/VGrid/index.ts","webpack://Vuetify/./src/components/VIcon/index.ts","webpack://Vuetify/./src/components/VImg/VImg.sass","webpack://Vuetify/./src/components/VResponsive/VResponsive.sass","webpack://Vuetify/./src/components/VResponsive/VResponsive.tsx","webpack://Vuetify/./src/directives/intersect/index.ts","webpack://Vuetify/./src/util/useRender.ts","webpack://Vuetify/./src/components/VImg/VImg.tsx","webpack://Vuetify/./src/components/VLayout/VLayout.sass","webpack://Vuetify/./src/components/VLayout/VLayout.tsx","webpack://Vuetify/./src/components/VLayout/VLayoutItem.tsx","webpack://Vuetify/./src/components/VLayout/index.ts","webpack://Vuetify/./src/components/VLocaleProvider/VLocaleProvider.tsx","webpack://Vuetify/./src/components/VMain/VMain.sass","webpack://Vuetify/./src/composables/ssrBoot.ts","webpack://Vuetify/./src/components/VMain/VMain.tsx","webpack://Vuetify/./src/components/VNavigationDrawer/VNavigationDrawer.sass","webpack://Vuetify/./src/composables/proxiedModel.ts","webpack://Vuetify/./src/components/VNavigationDrawer/VNavigationDrawer.tsx","webpack://Vuetify/./src/components/VSheet/VSheet.sass","webpack://Vuetify/./src/components/VSheet/VSheet.tsx","webpack://Vuetify/./src/components/VSystemBar/VSystemBar.sass","webpack://Vuetify/./src/components/VSystemBar/VSystemBar.tsx","webpack://Vuetify/./src/components/VThemeProvider/VThemeProvider.sass","webpack://Vuetify/./src/components/VThemeProvider/VThemeProvider.tsx","webpack://Vuetify/./src/components/transitions/createTransition.ts","webpack://Vuetify/./src/components/transitions/expand-transition.ts","webpack://Vuetify/./src/components/transitions/index.ts","webpack://Vuetify/./src/components/index.ts","webpack://Vuetify/./src/util/dom.ts","webpack://Vuetify/./src/directives/click-outside/index.ts","webpack://Vuetify/./src/directives/resize/index.ts","webpack://Vuetify/./src/directives/scroll/index.ts","webpack://Vuetify/./src/directives/touch/index.ts","webpack://Vuetify/./src/directives/index.ts","webpack://Vuetify/./src/entry-bundler.ts","webpack://Vuetify/external {\"commonjs\":\"vue\",\"commonjs2\":\"vue\",\"amd\":\"vue\",\"root\":\"Vue\"}","webpack://Vuetify/webpack/bootstrap","webpack://Vuetify/webpack/runtime/define property getters","webpack://Vuetify/webpack/runtime/hasOwnProperty shorthand","webpack://Vuetify/webpack/runtime/make namespace object","webpack://Vuetify/webpack/startup"],"names":["createMessage","message","vm","parent","_isVue","$parent","$options","$_alreadyWarned","includes","push","generateComponentTrace","consoleInfo","newMessage","console","info","consoleWarn","warn","consoleError","error","deprecate","original","replacement","breaking","removed","classifyRE","classify","str","replace","c","toUpperCase","formatComponentName","includeFile","$root","options","cid","constructor","name","_componentTag","file","__file","match","tree","currentRecursiveSequence","length","last","map","i","repeat","Array","isArray","join","getNestedValue","obj","path","fallback","undefined","deepEqual","a","b","Date","getTime","Object","props","keys","every","p","getObjectValueByPath","split","getPropertyFromItem","item","property","value","createRange","start","from","v","k","getZIndex","el","nodeType","Node","ELEMENT_NODE","index","window","getComputedStyle","getPropertyValue","parentNode","tagsToReplace","escapeHTML","tag","filterObjectOnKeys","filtered","key","convertToUnit","unit","isNaN","String","Number","isObject","keyCodes","freeze","enter","tab","delete","esc","space","up","down","left","right","end","home","del","backspace","insert","pageup","pagedown","shift","o","extract","properties","extracted","rest","entries","forEach","arrayDiff","diff","groupItems","items","groupBy","groupDesc","groups","current","val","wrapInArray","sortItems","sortBy","sortDesc","locale","customSorters","stringCollator","Intl","Collator","sensitivity","usage","sort","sortKey","sortA","sortB","customResult","s","toString","toLocaleLowerCase","compare","defaultFilter","search","indexOf","searchItems","toLowerCase","trim","filter","some","debounce","fn","delay","timeoutId","args","clearTimeout","setTimeout","throttle","limit","throttling","getPrefixedSlots","prefix","slots","startsWith","reduce","clamp","min","max","Math","padEnd","char","chunk","size","chunked","substr","humanReadableFileSize","bytes","binary","base","abs","toFixed","camelizeObjectKeys","camelize","mergeDeep","source","target","sourceProperty","targetProperty","fillArray","fill","getUid","_uid","flattenFragments","nodes","node","type","Fragment","children","flat","maybeTransition","data","vNodes","transition","h","Transition","mergeProps","randomHexColor","n","random","slice","toKebabCase","wrapInRef","x","isRef","ref","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","rgb","transform","matrix","round","toXYZ","r","g","delta","cielabForwardTransform","t","cbrt","cielabReverseTransform","transformedY","lab","Ln","isCssColor","color","test","colorToInt","substring","parseInt","TypeError","classToHex","colors","currentTheme","colorName","colorModifier","hexColor","intToHex","colorToHex","HSVAtoRGBA","hsva","f","RGBAtoHSVA","rgba","hsv","HSVAtoHSLA","l","sprime","HSLAtoHSVA","hsl","RGBAtoCSS","RGBtoCSS","RGBAtoHex","toHex","HexToRGBA","hex","HexToHSVA","HSVAtoHex","parseHex","parseGradient","gradient","values","RGBtoInt","colorToRGB","int","lighten","amount","CIELAB","sRGB","darken","getLuma","getContrast","first","second","l1","l2","light","dark","VuetifyThemeSymbol","Symbol","for","defaultThemeOptions","defaultTheme","variations","themes","background","surface","primary","secondary","success","warning","variables","parseThemeOptions","isDisabled","createTheme","parsedOptions","styleEl","computedThemes","computed","theme","genColorVariations","onColor","variation","genCssVariables","Error","lightOverlay","darkOverlay","genStyleElement","document","createElement","id","head","appendChild","createCssClass","selector","content","line","updateStyles","lines","themeName","firstTheme","innerHTML","watch","deep","immediate","setTheme","getTheme","themeClasses","hasColor","provideTheme","context","inject","internal","get","set","newContext","emit","newTheme","provide","useTheme","propsFactory","defaults","prop","isObjectDefinition","definition","default","VuetifyLayoutKey","makeLayoutProps","overlaps","fullHeight","Boolean","makeLayoutItemProps","priority","useMain","layout","useLayoutItem","position","styles","register","onBeforeUnmount","unregister","generateLayers","registered","positions","amounts","previousLayer","top","bottom","layers","layer","ids","createLayout","Map","priorities","computedOverlaps","overlap","topPosition","bottomPosition","topAmount","bottomAmount","sortedEntries","mainStyles","getLayoutItem","find","findIndex","isHorizontal","isOpposite","height","marginLeft","marginRight","marginTop","marginBottom","width","zIndex","layoutClasses","IS_NODE","process","IN_BROWSER","IS_DEBUG","env","DEBUG","IS_PROD","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","navigator","maxTouchPoints","VuetifyDisplaySymbol","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","getClientWidth","documentElement","clientWidth","innerWidth","getClientHeight","clientHeight","innerHeight","getPlatform","userAgent","regexp","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","ssr","touch","createDisplay","platform","state","reactive","onResize","watchEffect","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","addEventListener","passive","toRefs","useDisplay","display","VuetifyIconSymbol","makeIconProps","icon","required","VComponentIcon","defineComponent","makeProps","setup","VSvgIcon","inheritAttrs","attrs","VLigatureIcon","VClassIcon","defaultSets","svg","component","class","useIcon","icons","iconData","iconAlias","aliases","hasSet","setName","defaultSet","iconName","sets","badge","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","noDataText","carousel","prev","next","delimiter","calendar","moreEvents","fileInput","counter","counterSize","timePicker","am","pm","pagination","wrapper","previous","page","currentPage","rating","VuetifyLocaleAdapterSymbol","VuetifyLocaleSymbol","provideLocale","adapter","createScope","useLocale","getScope","isLocaleAdapter","hasOwnProperty","createLocaleAdapter","app","createDefaultLocaleAdapter","rootInstance","createRoot","LANG_PREFIX","params","createTranslateFunction","messages","shortKey","currentLocale","fallbackLocale","rootScope","defaultLocale","en","currentScope","newScope","rtl","af","ar","bg","ca","ckb","cs","de","es","et","fa","fi","fr","hr","hu","he","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","VuetifyRtlSymbol","createRtl","localeScope","createRtlScope","isRtl","defaultRtl","rtlClasses","provideRtl","useRtl","complete","cancel","clear","checkboxOn","checkboxOff","checkboxIndeterminate","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","unfold","plus","minus","mdi","VuetifySymbol","useVuetify","vuetify","createVuetify","install","components","directives","directive","global","config","globalProperties","$vuetify","originalProp","isOptions","propDefinition","originalDefault","wrappedDefault","generateDefault","propName","localDefault","getCurrentInstance","globalDefault","componentDefault","actualDefault","isFactory","Function","makeRoundedProps","rounded","useRounded","roundedClasses","classes","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","makeTagProps","useColor","backgroundIsCssColor","textIsCssColor","text","colorClasses","colorStyles","backgroundColor","caretColor","useTextColor","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","toRef","disabled","slotIcon","slot","fontSize","makeTransitionProps","validator","bordered","dot","floating","inline","label","location","vertical","horizontal","modelValue","offsetX","offsetY","textColor","ctx","calculatePosition","offset","locationStyles","badgeAttrs","makeBorderProps","outlined","border","useBorder","borderClasses","makeDimensionProps","maxHeight","maxWidth","minHeight","minWidth","useDimension","dimensionStyles","makeElevationProps","elevation","useElevation","elevationClasses","positionValues","makePositionProps","absolute","fixed","usePosition","targets","positionClasses","positionStyles","avatar","singleLine","sticky","hasThumbnail","thumbnail","actions","allowedDensities","makeDensityProps","density","useDensity","densityClasses","rippleStop","DELAY_RIPPLE","style","webkitTransform","opacity","isTouchEvent","e","isKeyboardEvent","calculate","localX","localY","getBoundingClientRect","touches","clientX","clientY","radius","scale","_ripple","circle","center","sqrt","centerX","centerY","y","ripples","show","enabled","container","animation","className","dataset","previousPosition","classList","add","activated","performance","now","remove","hide","getElementsByClassName","isHiding","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","rippleHide","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","keyboardRippleHide","focusRippleHide","updateRipple","binding","wasEnabled","modifiers","removeListeners","removeEventListener","mounted","unmounted","updated","oldValue","Ripple","useDirective","arg","plain","block","isContained","isElevated","withDirectives","inset","thickness","dividerStyles","role","fluid","breakpoints","breakpointProps","offsetProps","capitalize","orderProps","propMap","col","order","breakpointClass","breakpoint","cols","alignSelf","hasColClasses","ALIGNMENT","makeRowProps","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","dense","noGutters","createSimpleFunctional","klass","useAspectStyles","aspectStyles","ratio","aspectRatio","paddingBottom","contentClass","additional","handler","observer","IntersectionObserver","_observe","quiet","init","isIntersecting","entry","once","observe","unobserve","Intersect","useRender","render","alt","cover","eager","lazySrc","root","rootMargin","threshold","sizes","src","srcset","emits","currentSrc","image","naturalWidth","naturalHeight","normalisedSrc","aspect","onBeforeMount","nextTick","pollForSize","getSrc","lazyImg","Image","onLoad","onError","img","timeout","poll","imgHeight","imgWidth","endsWith","containClasses","__image","sources","appear","vShow","__preloadImage","__placeholder","placeholder","__error","intersect","localeInstance","useSsrBoot","isBooted","onMounted","requestAnimationFrame","ssrBootStyles","useProxiedModel","defaultValue","transformIn","transformOut","propIsDefined","vnode","newValue","disableResizeWatcher","expandOnHover","permanent","rail","railWidth","temporary","isActive","isHovering","isTemporary","layoutStyles","hasImg","translate","prepend","append","lightsOut","createCssTransition","origin","mode","group","hideOnLeave","leaveAbsolute","TransitionGroup","onBeforeEnter","transformOrigin","onLeave","createJavascriptTransition","functions","expandedParentClass","sizeProperty","offsetProperty","_parent","_initialStyle","overflow","onEnter","initialStyle","setProperty","offsetHeight","onAfterEnter","resetStyles","onEnterCancelled","onAfterLeave","onLeaveCancelled","VCarouselTransition","VCarouselReverseTransition","VTabTransition","VTabReverseTransition","VMenuTransition","VFabTransition","VDialogTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","ExpandTransitionGenerator","VExpandXTransition","attachedRoot","getRootNode","composed","defaultConditional","checkEvent","checkIsActive","ShadowRoot","host","elements","include","contains","closeConditional","_clickOutside","lastMousedownWasOutside","handleShadow","callback","body","ClickOutside","onClick","onMousedown","active","_onResize","Resize","self","querySelector","_onScroll","Scroll","handleGesture","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","touchstart","event","changedTouches","touchend","touchmove","touchmoveX","touchmoveY","move","createHandlers","parentElement","uid","instance","$","handlers","_touchHandlers","create","eventName","Touch","framework"],"mappings":"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","file":"vuetify.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"vue\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"vue\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Vuetify\"] = factory(require(\"vue\"));\n\telse\n\t\troot[\"Vuetify\"] = factory(root[\"Vue\"]);\n})(typeof self !== 'undefined' ? self : this, function(__WEBPACK_EXTERNAL_MODULE__982__) {\nreturn ","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","/* eslint-disable no-console */\n// import Vuetify from '../framework'\n\nfunction createMessage (message: string, vm?: any, parent?: any): string | void {\n // if (Vuetify.config.silent) return\n\n if (parent) {\n vm = {\n _isVue: true,\n $parent: parent,\n $options: vm,\n }\n }\n\n if (vm) {\n // Only show each message once per instance\n vm.$_alreadyWarned = vm.$_alreadyWarned || []\n if (vm.$_alreadyWarned.includes(message)) return\n vm.$_alreadyWarned.push(message)\n }\n\n return `[Vuetify] ${message}` + (\n vm ? generateComponentTrace(vm) : ''\n )\n}\n\nexport function consoleInfo (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.info(newMessage)\n}\n\nexport function consoleWarn (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.warn(newMessage)\n}\n\nexport function consoleError (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.error(newMessage)\n}\n\nexport function deprecate (original: string, replacement: string, vm?: any, parent?: any) {\n consoleWarn(`[UPGRADE] '${original}' is deprecated, use '${replacement}' instead.`, vm, parent)\n}\nexport function breaking (original: string, replacement: string, vm?: any, parent?: any) {\n consoleError(`[BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`, vm, parent)\n}\nexport function removed (original: string, vm?: any, parent?: any) {\n consoleWarn(`[REMOVED] '${original}' has been removed. You can safely omit it.`, vm, parent)\n}\n\n/**\n * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = (str: string) => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nfunction formatComponentName (vm: any, includeFile?: boolean): string {\n if (vm.$root === vm) {\n return '<Root>'\n }\n const options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {}\n let name = options.name || options._componentTag\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match?.[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : `<Anonymous>`) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nfunction generateComponentTrace (vm: any): string {\n if (vm._isVue && vm.$parent) {\n const tree: any[] = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (tree.length > 0) {\n const last: any = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : ' '.repeat(5 + i * 2)\n }${\n Array.isArray(vm)\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm)})`\n }\n}\n","import type { DataTableCompareFunction, ItemGroup, SelectItemKey } from 'vuetify/types'\nimport type { Ref, Slots, TransitionProps, VNode } from 'vue'\nimport { camelize, Fragment, h, isRef, mergeProps, ref, Transition } from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport function getPropertyFromItem (\n item: object,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nconst tagsToReplace: Dictionary<string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n}\n\nexport function escapeHTML (str: string): string {\n return str.replace(/[&<>]/g, tag => tagsToReplace[tag] || tag)\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object'\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\nexport function extract (obj: Dictionary<unknown>, properties: string[]) {\n const extracted: Dictionary<unknown> = {}\n const rest: Dictionary<unknown> = {}\n\n Object.entries(obj).forEach(([key, value]) => {\n if (properties.includes(key)) {\n extracted[key] = value\n } else {\n rest[key] = value\n }\n })\n\n return [extracted, rest]\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (var i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v : [v]\n}\n\nexport function sortItems<T extends any = any> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<string, DataTableCompareFunction<T>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey]) {\n const customResult = customSorters[sortKey](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\n/**\n * Filters slots to only those starting with `prefix`, removing the prefix\n */\nexport function getPrefixedSlots (prefix: string, slots: Slots): Slots {\n return Object.keys(slots)\n .filter(k => k.startsWith(prefix))\n .reduce<Writable<Slots>>((obj, k) => {\n obj[k.replace(prefix, '')] = slots[k]\n return obj\n }, {})\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, binary = false): string {\n const base = binary ? 1024 : 1000\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = binary ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Dictionary<any> = {},\n target: Dictionary<any> = {}\n) {\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n source[key] = mergeDeep(sourceProperty, targetProperty)\n\n continue\n }\n\n source[key] = targetProperty\n }\n\n return source\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\nexport function getUid () {\n return getUid._uid++\n}\ngetUid._uid = 0\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport function maybeTransition <T extends VNode | VNode[] | undefined> (\n props: { transition?: string | boolean | TransitionProps },\n data: TransitionProps,\n vNodes: T\n): VNode | T {\n if (!props.transition || typeof props.transition === 'boolean') return vNodes\n\n return h(\n Transition,\n mergeProps(typeof props.transition === 'string' ? { name: props.transition } : props.transition as any, data as any),\n () => vNodes\n )\n}\n\nexport const randomHexColor = () => {\n const n = (Math.random() * 0xfffff * 1000000).toString(16)\n return '#' + n.slice(0, 6)\n}\n\nexport const toKebabCase = (str: string) => str.replace(/([A-Z])/g, match => `-${match.toLowerCase()}`)\n\nexport type MaybeRef<T> = T | Ref<T>\n\nexport type ExtractMaybeRef<P> = P extends MaybeRef<infer T> ? T : P;\n\nexport function wrapInRef <T> (x: T) {\n return (isRef(x) ? x : ref(x)) as Ref<ExtractMaybeRef<T>>\n}\n","import type { ColorInt, XYZ } from '../colorUtils'\nimport { clamp } from '../../util/helpers'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): ColorInt {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n // Rescale back to [0, 255]\n return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0)\n}\n\nexport function toXYZ (rgb: ColorInt): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n const r = transform((rgb >> 16 & 0xff) / 255)\n const g = transform((rgb >> 8 & 0xff) / 255)\n const b = transform((rgb >> 0 & 0xff) / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","import type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport * as sRGB from '@/util/color/transformSRGB'\nimport * as CIELAB from '@/util/color/transformCIELAB'\n\n// Types\nimport type { VuetifyThemeVariant } from 'types/services/theme'\n\nexport type ColorInt = number\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number }\nexport type HSVA = HSV & { a: number }\nexport type RGB = { r: number, g: number, b: number }\nexport type RGBA = RGB & { a: number }\nexport type HSL = { h: number, s: number, l: number }\nexport type HSLA = HSL & { a: number }\nexport type Hex = string\nexport type Hexa = string\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function colorToInt (color: Color): ColorInt {\n let rgb\n\n if (typeof color === 'number') {\n rgb = color\n } else if (typeof color === 'string') {\n let c = color.startsWith('#') ? color.substring(1) : color\n if (c.length === 3) {\n c = c.split('').map(char => char + char).join('')\n }\n if (c.length !== 6) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n }\n rgb = parseInt(c, 16)\n } else {\n throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n }\n\n if (rgb < 0) {\n consoleWarn(`Colors cannot be negative: '${color}'`)\n rgb = 0\n } else if (rgb > 0xffffff || isNaN(rgb)) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n rgb = 0xffffff\n }\n\n return rgb\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<VuetifyThemeVariant>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\nexport function intToHex (color: ColorInt): string {\n let hexColor: string = color.toString(16)\n\n if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor\n\n return '#' + hexColor\n}\n\nexport function colorToHex (color: Color): string {\n return intToHex(colorToInt(color))\n}\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nexport function HSVAtoRGBA (hsva: HSVA): RGBA {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/**\n * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]\n */\nexport function RGBAtoHSVA (rgba: RGBA): HSVA {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVAtoHSLA (hsva: HSVA): HSLA {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLAtoHSVA (hsl: HSLA): HSVA {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBAtoCSS (rgba: RGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nexport function RGBtoCSS (rgba: RGBA): string {\n return RGBAtoCSS({ ...rgba, a: 1 })\n}\n\nexport function RGBAtoHex (rgba: RGBA): Hex {\n const toHex = (v: number) => {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n }\n\n return `#${[\n toHex(rgba.r),\n toHex(rgba.g),\n toHex(rgba.b),\n toHex(Math.round(rgba.a * 255)),\n ].join('')}`\n}\n\nexport function HexToRGBA (hex: Hex): RGBA {\n const rgba = chunk(hex.slice(1), 2).map((c: string) => parseInt(c, 16))\n\n return {\n r: rgba[0],\n g: rgba[1],\n b: rgba[2],\n a: Math.round((rgba[3] / 255) * 100) / 100,\n }\n}\n\nexport function HexToHSVA (hex: Hex): HSVA {\n const rgb = HexToRGBA(hex)\n return RGBAtoHSVA(rgb)\n}\n\nexport function HSVAtoHex (hsva: HSVA): Hex {\n return RGBAtoHex(HSVAtoRGBA(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length === 6) {\n hex = padEnd(hex, 8, 'F')\n } else {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return `#${hex}`.toUpperCase().substr(0, 9)\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<VuetifyThemeVariant>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function RGBtoInt (rgba: RGBA): ColorInt {\n return (rgba.r << 16) + (rgba.g << 8) + rgba.b\n}\n\nexport function colorToRGB (color: string) {\n const int = colorToInt(color)\n\n return {\n r: (int & 0xFF0000) >> 16,\n g: (int & 0xFF00) >> 8,\n b: (int & 0xFF),\n }\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n // TODO: why this false positive?\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = colorToInt(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n","// Utilities\nimport { colorToInt, colorToRGB, createRange, darken, getLuma, intToHex, lighten } from '@/util'\nimport { computed, inject, provide, ref, watch } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref, SetupContext } from 'vue'\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\ninterface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record<string, string | number>\n}\n\ninterface ThemeDefinitionColors extends BaseColors, Partial<OnColors> {\n [key: string]: string | undefined\n}\n\nexport interface ThemeDefinition {\n dark: boolean\n colors: ThemeDefinitionColors\n variables: Record<string, string | number>\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeOptions {\n isDisabled: boolean\n defaultTheme: string\n variations: VariationsOptions\n themes: Record<string, ThemeDefinition>\n}\n\nexport type ThemeOptions = false | {\n defaultTheme?: string\n variations?: false | VariationsOptions\n themes?: Record<string, ThemeDefinition>\n}\n\nexport interface ThemeInstance {\n isDisabled: boolean\n themes: Ref<Record<string, InternalThemeDefinition>>\n current: Ref<string>\n themeClasses: Ref<string>\n setTheme: (key: string, theme: ThemeDefinition) => void\n getTheme: (key: string) => InternalThemeDefinition\n hasColor: (color: string) => boolean\n}\n\nexport const VuetifyThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('vuetify:theme')\n\nconst defaultThemeOptions: ThemeOptions = {\n defaultTheme: 'light',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n primary: '#6200EE',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '0, 0, 0',\n 'border-opacity': 0.12,\n 'disabled-opacity': 0.38,\n 'icon-opacity': 0.54,\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#121212',\n primary: '#BB86FC',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC5',\n 'secondary-darken-1': '#03DAC5',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '255, 255, 255',\n 'border-opacity': 0.12,\n 'disabled-opacity': 0.38,\n 'icon-opacity': 0.70,\n },\n },\n },\n}\n\nconst parseThemeOptions = (options: ThemeOptions = defaultThemeOptions): InternalThemeOptions => {\n if (!options) return { ...defaultThemeOptions, isDisabled: true } as InternalThemeOptions\n\n return {\n ...defaultThemeOptions,\n ...options,\n variations: options?.variations == null || options?.variations === false ? defaultThemeOptions.variations : options.variations,\n } as InternalThemeOptions\n}\n\n// Composables\nexport function createTheme (options?: ThemeOptions): ThemeInstance {\n const parsedOptions = parseThemeOptions(options)\n const styleEl = ref<HTMLStyleElement>()\n const current = ref(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n const variations = ref(parsedOptions.variations)\n\n const computedThemes = computed(() => {\n return Object.keys(themes.value).reduce((obj, key) => {\n const theme: ThemeDefinition = {\n ...themes.value[key],\n colors: {\n ...themes.value[key].colors,\n ...(parsedOptions.variations.colors ?? []).reduce((obj, color) => {\n return { ...obj, ...genColorVariations(color, themes.value[key].colors[color]!) }\n }, {}),\n },\n }\n\n for (const color of Object.keys(theme.colors)) {\n if (/on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n theme.colors[onColor] = intToHex(getLuma(theme.colors[color]!) > 0.18 ? 0x0 : 0xffffff)\n }\n\n obj[key] = theme as InternalThemeDefinition\n\n return obj\n }, {} as Record<string, InternalThemeDefinition>)\n })\n\n function genColorVariations (name: string, color: string) {\n const obj: Record<string, string> = {}\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(variations.value[variation], 1)) {\n obj[`${name}-${variation}-${amount}`] = intToHex(fn(colorToInt(color), amount))\n }\n }\n\n return obj\n }\n\n function genCssVariables (name: string) {\n const theme = computedThemes.value[name]\n\n if (!theme) throw new Error(`Could not find theme ${name}`)\n\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = colorToRGB(value!)\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n return variables\n }\n\n function genStyleElement () {\n if (typeof document === 'undefined' || styleEl.value) return\n\n const el = document.createElement('style')\n el.type = 'text/css'\n el.id = 'vuetify-theme-stylesheet'\n\n styleEl.value = el\n document.head.appendChild(styleEl.value)\n }\n\n function createCssClass (selector: string, content: string[]) {\n return [\n `${selector} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n ]\n }\n\n function updateStyles () {\n if (parsedOptions.isDisabled) return\n\n genStyleElement()\n\n const lines = []\n\n for (const themeName of Object.keys(computedThemes.value)) {\n const variables = computedThemes.value[themeName].variables\n\n lines.push(...createCssClass(`.v-theme--${themeName}`, [\n ...genCssVariables(themeName),\n ...Object.keys(variables).map(key => {\n return `--v-${key}: ${variables[key]}`\n }),\n ]))\n }\n\n // Assumption is that all theme objects have the same keys, so it doesn't matter which one\n // we use since the values are all css variables.\n const firstTheme = Object.keys(computedThemes.value)[0]\n for (const key of Object.keys(computedThemes.value[firstTheme].colors)) {\n if (/on-[a-z]/.test(key)) {\n lines.push(...createCssClass(`.${key}`, [`color: rgb(var(--v-theme-${key}))`]))\n } else {\n lines.push(\n ...createCssClass(`.bg-${key}`, [\n `--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`,\n `background: rgb(var(--v-theme-${key}))`,\n `color: rgb(var(--v-theme-on-${key}))`,\n ]),\n ...createCssClass(`.text-${key}`, [`color: rgb(var(--v-theme-${key}))`]),\n ...createCssClass(`.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]),\n )\n }\n }\n\n if (styleEl.value) styleEl.value.innerHTML = lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n }\n\n watch(themes, updateStyles, { deep: true, immediate: true })\n\n return {\n isDisabled: parsedOptions.isDisabled,\n themes: computedThemes,\n setTheme: (key: string, theme: ThemeDefinition) => themes.value[key] = theme,\n getTheme: (key: string) => computedThemes.value[key],\n current,\n themeClasses: computed(() => parsedOptions.isDisabled ? '' : `v-theme--${current.value}`),\n hasColor: (color: string) => !!computedThemes.value[current.value].colors[color],\n }\n}\n\n/**\n * Used to either set up and provide a new theme instance, or to pass\n * along the closest available already provided instance.\n *\n * A new theme instance will be created if either `theme` prop is provided,\n * or if `newContext` prop is true\n */\nexport function provideTheme (props: { theme?: string, newContext?: boolean } = {}, context: SetupContext) {\n const theme = inject(VuetifyThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const internal = ref<string | null>(null)\n const current = computed<string>({\n get: () => {\n return internal.value ?? props.theme ?? theme?.current.value\n },\n set (value: string) {\n if (theme && !props.theme && !props.newContext) {\n theme.current.value = value\n } else {\n internal.value = value\n context.emit('update:theme', value)\n }\n },\n })\n\n const themeClasses = computed(() => theme.isDisabled ? '' : `v-theme--${current.value}`)\n const newTheme: ThemeInstance = {\n ...theme,\n current,\n themeClasses,\n }\n\n provide(VuetifyThemeSymbol, newTheme)\n\n return newTheme\n}\n\n/**\n * Injects and returns closest available provided theme instance.\n */\nexport function useTheme () {\n const theme = inject(VuetifyThemeSymbol)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n","import type { ComponentObjectPropsOptions, Prop, PropType } from 'vue'\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record<keyof props, any>) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory<\n PropsOptions extends ComponentObjectPropsOptions\n> (props: PropsOptions, source?: string) {\n return <Defaults extends PartialKeys<PropsOptions> = {}>(\n defaults?: Defaults\n ): AppendDefault<PropsOptions, Defaults> => {\n return Object.keys(props).reduce<any>((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop])\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] }\n\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop],\n }\n } else {\n obj[prop] = definition\n }\n\n if (source) {\n obj[prop].source = source\n }\n\n return obj\n }, {})\n }\n}\n\ntype AppendDefault<T extends ComponentObjectPropsOptions, D extends PartialKeys<T>> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Dictionary<unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n : {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n}\n\ntype MergeDefault<T, D> = unknown extends D ? InferPropType<T> : (NonNullable<InferPropType<T>> | D)\n\n/**\n * Like `Partial<T>` but doesn't care what the value is\n */\ntype PartialKeys<T> = { [P in keyof T]?: unknown }\n\n// Copied from Vue\ntype InferPropType<T> = T extends null\n ? any // null & true would fail to infer\n : T extends { type: null | true }\n ? any // As TS issue https://github.com/Microsoft/TypeScript/issues/14829 // somehow `ObjectConstructor` when inferred from { (): T } becomes `any` // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n : T extends ObjectConstructor | { type: ObjectConstructor }\n ? Record<string, any>\n : T extends BooleanConstructor | { type: BooleanConstructor }\n ? boolean\n : T extends Prop<infer V, infer D> ? (unknown extends V ? D : V) : T\n","// Utilities\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { convertToUnit, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ntype LayoutItem = {\n id: string\n top: number\n bottom: number\n left: number\n right: number\n size: number\n}\n\ninterface LayoutProvide {\n register: (id: string, priority: Ref<number>, position: Ref<Position>, amount: Ref<number | string>) => Ref<Record<string, unknown>>\n unregister: (id: string) => void\n mainStyles: Ref<Record<string, unknown>>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n priority: {\n type: Number,\n default: 0,\n },\n size: {\n type: [Number, String],\n default: 300,\n },\n}, 'layout-item')\n\nexport function useMain () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n return layout\n}\n\nexport function useLayoutItem (\n name: string | undefined,\n priority: Ref<number>,\n position: Ref<Position>,\n amount: Ref<number | string>\n) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n const id = name ?? `layout-item-${getUid()}`\n\n const styles = layout.register(id, priority, position, amount)\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return styles\n}\n\nconst generateLayers = (\n layout: string[],\n registered: string[],\n positions: Map<string, Ref<Position>>,\n amounts: Map<string, Ref<number | string>>\n) => {\n let previousLayer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n const ids = !layout.length ? registered : layout.map(l => l.split(':')[0]).filter(l => registered.includes(l))\n for (const id of ids) {\n const position = positions.get(id)\n const amount = amounts.get(id)\n if (!position || !amount) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + parseInt(amount.value, 10),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\n// TODO: Remove undefined from layout and overlaps when vue typing for required: true prop is fixed\nexport function createLayout (props: { layout?: string[], overlaps?: string[] }) {\n const registered = ref<string[]>([])\n const positions = new Map<string, Ref<Position>>()\n const amounts = new Map<string, Ref<number | string>>()\n const priorities = new Map<string, Ref<number>>()\n\n const computedOverlaps = computed(() => {\n const map = new Map<string, { position: Position, amount: number }>()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = amounts.get(top)\n const bottomAmount = amounts.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const entries = [...priorities.entries()]\n const sortedEntries = entries.sort(([, a], [, b]) => a.value - b.value).map(([id]) => id)\n return generateLayers(sortedEntries, registered.value, positions, amounts)\n })\n\n const mainStyles = computed(() => {\n const layer = layers.value[layers.value.length - 1].layer\n\n return {\n position: 'absolute',\n left: convertToUnit(layer.left),\n right: convertToUnit(layer.right),\n top: convertToUnit(layer.top),\n bottom: convertToUnit(layer.bottom),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = amounts.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n provide(VuetifyLayoutKey, {\n register: (id: string, priority: Ref<number>, position: Ref<Position>, amount: Ref<number | string>) => {\n priorities.set(id, priority)\n positions.set(id, position)\n amounts.set(id, amount)\n registered.value.push(id)\n\n return computed(() => {\n const index = items.value.findIndex(i => i.id === id)\n\n if (index < 0) throw new Error(`Layout item \"${id}\" is missing from layout prop`)\n\n const item = items.value[index]\n\n if (!item) throw new Error(`Could not find layout item \"${id}`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOpposite = position.value === 'right'\n\n const amount = amounts.get(id)\n\n return {\n [position.value]: 0,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : `${amount?.value ?? 0}px`,\n marginLeft: isOpposite ? undefined : `${item.left}px`,\n marginRight: isOpposite ? `${item.right}px` : undefined,\n marginTop: position.value !== 'bottom' ? `${item.top}px` : undefined,\n marginBottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n position: 'absolute',\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : `${amount?.value ?? 0}px`,\n zIndex: layers.value.length - index,\n }\n })\n },\n unregister: (id: string) => {\n positions.delete(id)\n amounts.delete(id)\n priorities.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainStyles,\n getLayoutItem,\n items,\n })\n\n return { layoutClasses: ref('v-layout'), getLayoutItem, items }\n}\n","export const IS_NODE = typeof process !== 'undefined'\nexport const IN_BROWSER = typeof window !== 'undefined'\nexport const IS_DEBUG = IS_NODE && process.env.DEBUG === 'true'\nexport const IS_PROD = IS_NODE && process.env.NODE_ENV === 'production'\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0)\n","// Utilities\nimport { inject, reactive, ref, toRefs, watchEffect } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Globals\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, ToRefs } from 'vue'\n\nexport type DisplayBreakpoint = keyof DisplayThresholds\n\nexport interface DisplayThresholds {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n xxl: number\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: boolean\n sm: boolean\n md: boolean\n lg: boolean\n xl: boolean\n xxl: boolean\n smAndUp: boolean\n mdAndUp: boolean\n lgAndUp: boolean\n xlAndUp: boolean\n smAndDown: boolean\n mdAndDown: boolean\n lgAndDown: boolean\n xlAndDown: boolean\n name: DisplayBreakpoint\n height: number\n width: number\n mobile: boolean\n mobileBreakpoint: number | DisplayBreakpoint\n platform: DisplayPlatform\n thresholds: DisplayThresholds\n}\n\nexport const VuetifyDisplaySymbol: InjectionKey<ToRefs<DisplayInstance>> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\n// Cross-browser support as described in:\n// https://stackoverflow.com/questions/1248081\nfunction getClientWidth () {\n return IN_BROWSER ? Math.max(\n document.documentElement!.clientWidth,\n window.innerWidth\n ) : 0 // SSR\n}\n\nfunction getClientHeight () {\n return IN_BROWSER ? Math.max(\n document.documentElement!.clientHeight,\n window.innerHeight\n ) : 0 // SSR\n}\n\nfunction getPlatform (): DisplayPlatform {\n const userAgent = IN_BROWSER ? window.navigator.userAgent : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n const ssr = match(/ssr/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr,\n }\n}\n\nexport function createDisplay (options?: DisplayOptions): ToRefs<DisplayInstance> {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = ref(getClientHeight())\n const platform = getPlatform()\n const state = reactive({} as DisplayInstance)\n const width = ref(getClientWidth())\n\n function onResize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = !platform.ssr\n ? width.value < breakpointValue\n : platform.android || platform.ios || platform.opera\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', onResize, { passive: true })\n }\n\n return toRefs(state)\n}\n\nexport function useDisplay () {\n const display = inject(VuetifyDisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n return display\n}\n","// Utilities\nimport { computed, defineComponent, inject, isRef } from 'vue'\nimport { makeProps } from '@/util/makeProps'\nimport { propsFactory } from '@/util/propsFactory'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue = string | JSXComponent\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sort: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type IconOptions = {\n defaultSet: string\n aliases?: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\ntype IconInstance = {\n component: IconComponent\n icon: IconValue\n}\n\nexport const VuetifyIconSymbol: InjectionKey<IconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: [String, Object] as PropType<IconValue>,\n required: true,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = defineComponent({\n name: 'VComponentIcon',\n\n props: makeProps(makeIconProps()),\n\n setup (props) {\n return () => {\n return (\n <props.tag>\n <props.icon />\n </props.tag>\n )\n }\n },\n})\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeProps(makeIconProps()),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class='v-icon__svg'\n xmlns='http://www.w3.org/2000/svg'\n viewBox='0 0 24 24'\n role='img'\n aria-hidden=\"true\"\n >\n <path d={ props.icon as string }></path>\n </svg>\n </props.tag>\n )\n }\n },\n})\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeProps(makeIconProps()),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeProps(makeIconProps()),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\n\nexport const defaultSets: Record<string, IconSet> = {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n}\n\n// Composables\nexport const useIcon = (props: Ref<string | undefined> | { icon?: IconValue }) => {\n const icons = inject(VuetifyIconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData: Ref<IconInstance> = computed(() => {\n const iconAlias = isRef(props) ? props.value : props.icon\n\n if (!iconAlias) throw new Error('Icon value is undefined or null')\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof iconAlias === 'string' && iconAlias.includes('$')) {\n icon = icons.aliases?.[iconAlias.slice(iconAlias.indexOf('$') + 1)]\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const hasSet = icon.includes(':')\n const setName = hasSet ? icon.split(':')[0] : icons.defaultSet\n const iconName = hasSet ? icon.split(':')[1] : icon\n const set = icons.sets[setName ?? icons.defaultSet]\n\n if (!set) {\n throw new Error(`Could not find icon set \"${setName}\"`)\n }\n\n return {\n component: set.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n","export default {\n badge: 'Badge',\n close: 'Close',\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n nextMonthAriaLabel: 'Next month',\n nextYearAriaLabel: 'Next year',\n prevMonthAriaLabel: 'Previous month',\n prevYearAriaLabel: 'Previous year',\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n },\n pagination: {\n ariaLabel: {\n wrapper: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Goto Page {0}',\n currentPage: 'Current Page, Page {0}',\n },\n },\n rating: {\n ariaLabel: {\n icon: 'Rating {0} of {1}',\n },\n },\n}\n","import { computed, inject, provide } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath, wrapInRef } from '@/util'\n\nimport en from '@/locale/en'\n\n// Types\nimport type { App, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n defaultLocale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleProps {\n locale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleInstance {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n t: (key: string, ...params: unknown[]) => string\n}\n\nexport interface LocaleAdapter {\n createRoot: (app: App) => LocaleInstance\n getScope: () => LocaleInstance\n createScope: (options?: LocaleProps) => LocaleInstance\n}\n\nexport const VuetifyLocaleAdapterSymbol: InjectionKey<LocaleAdapter> = Symbol.for('vuetify:locale-adapter')\nexport const VuetifyLocaleSymbol: InjectionKey<LocaleInstance> = Symbol.for('vuetify:locale')\n\nexport function provideLocale (props?: LocaleProps) {\n const adapter = inject(VuetifyLocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.createScope(props)\n}\n\nexport function useLocale () {\n const adapter = inject(VuetifyLocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.getScope()\n}\n\nfunction isLocaleAdapter (x: any): x is LocaleAdapter {\n return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot')\n}\n\nexport function createLocaleAdapter (app: App, options?: LocaleOptions | LocaleAdapter) {\n const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options)\n\n const rootInstance = adapter.createRoot(app)\n\n return { adapter, rootInstance }\n}\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n /* istanbul ignore next */\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nexport function createDefaultLocaleAdapter (options?: LocaleOptions): LocaleAdapter {\n const createScope = (options: {\n current: MaybeRef<string>\n fallback: MaybeRef<string>\n messages: MaybeRef<LocaleMessages>\n }) => {\n const current = wrapInRef(options.current)\n const fallback = wrapInRef(options.fallback)\n const messages = wrapInRef(options.messages)\n\n return { current, fallback, messages, t: createTranslateFunction(current, fallback, messages) }\n }\n\n return {\n createRoot: app => {\n const rootScope = createScope({\n current: options?.defaultLocale ?? 'en',\n fallback: options?.fallbackLocale ?? 'en',\n messages: options?.messages ?? { en },\n })\n\n app.provide(VuetifyLocaleSymbol, rootScope)\n\n return rootScope\n },\n getScope: () => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return currentScope\n },\n createScope: options => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const newScope = createScope({\n current: computed(() => options?.locale ?? currentScope.current.value),\n fallback: computed(() => options?.locale ?? currentScope.fallback.value),\n messages: computed(() => options?.messages ?? currentScope.messages.value),\n })\n\n provide(VuetifyLocaleSymbol, newScope)\n\n return newScope\n },\n }\n}\n","export { default as af } from './af'\nexport { default as ar } from './ar'\nexport { default as bg } from './bg'\nexport { default as ca } from './ca'\nexport { default as ckb } from './ckb'\nexport { default as cs } from './cs'\nexport { default as de } from './de'\nexport { default as el } from './el'\nexport { default as en } from './en'\nexport { default as es } from './es'\nexport { default as et } from './et'\nexport { default as fa } from './fa'\nexport { default as fi } from './fi'\nexport { default as fr } from './fr'\nexport { default as hr } from './hr'\nexport { default as hu } from './hu'\nexport { default as he } from './he'\nexport { default as id } from './id'\nexport { default as it } from './it'\nexport { default as ja } from './ja'\nexport { default as ko } from './ko'\nexport { default as lv } from './lv'\nexport { default as lt } from './lt'\nexport { default as nl } from './nl'\nexport { default as no } from './no'\nexport { default as pl } from './pl'\nexport { default as pt } from './pt'\nexport { default as ro } from './ro'\nexport { default as ru } from './ru'\nexport { default as sk } from './sk'\nexport { default as sl } from './sl'\nexport { default as srCyrl } from './sr-Cyrl'\nexport { default as srLatn } from './sr-Latn'\nexport { default as sv } from './sv'\nexport { default as th } from './th'\nexport { default as tr } from './tr'\nexport { default as az } from './az'\nexport { default as uk } from './uk'\nexport { default as vi } from './vi'\nexport { default as zhHans } from './zh-Hans'\nexport { default as zhHant } from './zh-Hant'\n\nexport const rtl = {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: false,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n}\n","import { computed, inject, provide, ref } from 'vue'\nimport { rtl } from '@/locale'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance } from './locale'\n\nexport interface RtlOptions {\n defaultRtl?: boolean\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Record<string, boolean>\n rtlClasses: Ref<string>\n}\n\nexport const VuetifyRtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nexport function createRtl (localeScope: LocaleInstance, options?: RtlOptions) {\n return createRtlScope({\n rtl: {\n ...rtl,\n ...(options?.rtl ?? {}),\n },\n isRtl: ref(options?.defaultRtl ?? false),\n rtlClasses: ref(''),\n }, localeScope)\n}\n\nexport function createRtlScope (currentScope: RtlInstance, localeScope: LocaleInstance, options?: RtlProps): RtlInstance {\n const isRtl = computed(() => {\n if (typeof options?.rtl === 'boolean') return options.rtl\n if (localeScope.current.value && currentScope.rtl.hasOwnProperty(localeScope.current.value)) {\n return currentScope.rtl[localeScope.current.value]\n }\n\n return currentScope.isRtl.value\n })\n\n return {\n isRtl,\n rtl: currentScope.rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (props: RtlProps, localeScope: LocaleInstance) {\n const currentScope = inject(VuetifyRtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n const newScope = createRtlScope(currentScope, localeScope, props)\n\n provide(VuetifyRtlSymbol, newScope)\n\n return newScope\n}\n\nexport function useRtl () {\n const currentScope = inject(VuetifyRtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return currentScope\n}\n","// Utilities\nimport { h } from 'vue'\n\n// Components\nimport { VClassIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-exclamation',\n error: 'mdi-alert',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sort: 'mdi-arrow-up',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n","import { inject } from 'vue'\nimport { createDisplay, VuetifyDisplaySymbol } from './composables/display'\nimport { createTheme, VuetifyThemeSymbol } from './composables/theme'\nimport { defaultSets, VuetifyIconSymbol } from '@/composables/icons'\nimport { createLocaleAdapter, VuetifyLocaleAdapterSymbol } from '@/composables/locale'\nimport { createRtl, VuetifyRtlSymbol } from '@/composables/rtl'\nimport { mergeDeep } from '@/util'\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Types\nimport type { App, InjectionKey } from 'vue'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { ThemeOptions } from '@/composables/theme'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleAdapter, LocaleOptions } from '@/composables/locale'\nimport type { RtlOptions } from '@/composables/rtl'\n\nexport interface VuetifyComponentDefaults {\n [key: string]: undefined | Record<string, unknown>\n global: Record<string, unknown>\n}\n\nexport interface VuetifyInstance {\n defaults: VuetifyComponentDefaults\n}\n\nexport interface VuetifyOptions {\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: Partial<VuetifyComponentDefaults>\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions)\n}\n\nexport const VuetifySymbol: InjectionKey<VuetifyInstance> = Symbol.for('vuetify')\n\nexport const useVuetify = () => {\n const vuetify = inject(VuetifySymbol)\n\n if (!vuetify) {\n throw new Error('Vuetify has not been installed on this app')\n }\n\n return vuetify\n}\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n const install = (app: App) => {\n const {\n components = {},\n directives = {},\n defaults = {},\n icons = {},\n } = options\n\n for (const key in directives) {\n const directive = directives[key]\n\n app.directive(key, directive)\n }\n\n for (const key in components) {\n const component = components[key]\n\n app.component(key, component)\n }\n\n const vuetify: VuetifyInstance = {\n defaults: {\n global: {},\n ...defaults,\n },\n }\n\n app.provide(VuetifySymbol, vuetify)\n app.provide(VuetifyDisplaySymbol, createDisplay(options.display))\n app.provide(VuetifyThemeSymbol, createTheme(options.theme))\n app.provide(VuetifyIconSymbol, mergeDeep({\n defaultSet: 'mdi',\n sets: {\n ...defaultSets,\n mdi,\n },\n aliases,\n }, icons))\n const { adapter, rootInstance } = createLocaleAdapter(app, options?.locale)\n app.provide(VuetifyLocaleAdapterSymbol, adapter)\n app.provide(VuetifyRtlSymbol, createRtl(rootInstance, options?.locale))\n app.config.globalProperties.$vuetify = vuetify\n }\n\n return { install }\n}\n","// Utilities\nimport { getCurrentInstance } from 'vue'\nimport { wrapInArray } from './helpers'\nimport { consoleWarn } from './console'\nimport { useVuetify } from '@/framework'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport function makeProps<P extends Record<string, Prop<any> & { source?: string }>> (props: P) {\n for (const key in props) {\n const originalProp = props[key]\n const isOptions = !(originalProp == null || Array.isArray(originalProp) || typeof originalProp === 'function')\n\n const propDefinition = (isOptions ? originalProp : { type: originalProp }) as any\n const originalDefault = propDefinition.hasOwnProperty('default')\n ? propDefinition.default\n : propDefinition.type === Boolean || (Array.isArray(propDefinition.type) && propDefinition.type.includes(Boolean))\n ? false\n : undefined\n\n const wrappedDefault = generateDefault(key, originalDefault, propDefinition.type)\n\n props[key] = {\n ...propDefinition,\n default: wrappedDefault,\n }\n }\n\n return props\n}\n\nfunction generateDefault (propName: string, localDefault: any, type: any) {\n return (props: Record<string, unknown>) => {\n const vm = getCurrentInstance()\n\n if (!vm) {\n consoleWarn('Unable to get current component instance when generating default prop value')\n\n return localDefault\n }\n\n if (!vm.type.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return localDefault\n }\n\n const vuetify = useVuetify()\n const globalDefault = vuetify.defaults.global[propName]\n const componentDefault = vuetify.defaults[vm.type.name]?.[propName]\n const actualDefault = typeof componentDefault !== 'undefined'\n ? componentDefault\n : typeof globalDefault !== 'undefined'\n ? globalDefault\n : localDefault\n\n return isFactory(actualDefault, type) ? actualDefault(props) : actualDefault\n }\n}\n\n// Would be nice to have PropOptions here\nfunction isFactory (val: any, type: any) {\n return typeof val === 'function' && !wrapInArray(type).includes(Function)\n}\n","// Styles\nimport './VApp.sass'\n\n// Composables\nimport { useTheme } from '@/composables/theme'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\nimport { useRtl } from '@/composables/rtl'\n\nexport default defineComponent({\n name: 'VApp',\n\n props: makeProps({\n theme: String,\n ...makeLayoutProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { layoutClasses } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n return () => (\n <div\n class={[\n 'v-application',\n themeClasses.value,\n layoutClasses.value,\n rtlClasses.value,\n ]}\n data-app=\"true\"\n >\n <div class=\"v-application__wrap\">\n { slots.default?.() }\n </div>\n </div>\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface RoundedProps {\n rounded?: boolean | string | number | null\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n}, 'rounded')\n\nexport function useRounded (props: RoundedProps, name: string) {\n const roundedClasses = computed(() => {\n const classes: string[] = []\n\n if (props.rounded === true || props.rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof props.rounded === 'string' ||\n props.rounded === 0\n ) {\n for (const value of String(props.rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (props: SizeProps, name: string) {\n const sizeClasses = computed(() => {\n return predefinedSizes.includes(props.size as string)\n ? `${name}--size-${props.size}`\n : null\n })\n\n const sizeStyles = computed(() => {\n return !predefinedSizes.includes(props.size as string) && props.size\n ? ({\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }) : null\n })\n\n return { sizeClasses, sizeStyles }\n}\n","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { isCssColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | null | undefined\n\ntype TextColorData = {\n textColorClasses: Ref<string[]>\n textColorStyles: Ref<CSSProperties>\n}\n\ntype BackgroundColorData = {\n backgroundColorClasses: Ref<string[]>\n backgroundColorStyles: Ref<CSSProperties>\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n const backgroundIsCssColor = computed(() => isCssColor(colors.value.background))\n const textIsCssColor = computed(() => isCssColor(colors.value.text))\n\n const colorClasses = computed(() => {\n const classes: string[] = []\n\n if (colors.value.background && !backgroundIsCssColor.value) {\n classes.push(`bg-${colors.value.background}`)\n }\n\n if (colors.value.text && !textIsCssColor.value) {\n classes.push(`text-${colors.value.text}`)\n }\n\n return classes\n })\n\n const colorStyles = computed(() => {\n const styles: CSSProperties = {}\n\n if (colors.value.background && backgroundIsCssColor.value) {\n styles.backgroundColor = colors.value.background\n }\n\n if (colors.value.text && textIsCssColor.value) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n }\n\n return styles\n })\n\n return { colorClasses, colorStyles }\n}\n\nexport function useTextColor (color: Ref<ColorValue>): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref<ColorValue>): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n","// Styles\nimport './VAvatar.sass'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VAvatar',\n\n props: makeProps({\n color: String,\n left: Boolean,\n right: Boolean,\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props, 'v-avatar')\n const { sizeClasses, sizeStyles } = useSize(props, 'v-avatar')\n\n return () => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--left': props.left,\n 'v-avatar--right': props.right,\n },\n backgroundColorClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n sizeStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useIcon } from '@/composables/icons'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ComputedRef, defineComponent, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, makeProps } from '@/util'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'VIcon',\n\n props: makeProps({\n color: String,\n disabled: Boolean,\n left: Boolean,\n right: Boolean,\n icon: {\n type: [String, Object] as PropType<IconValue>,\n },\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n }),\n\n setup (props, { slots }) {\n let slotIcon: ComputedRef<string | undefined> | undefined\n if (slots.default) {\n slotIcon = computed(() => {\n const slot = slots.default?.()\n if (!slot) return\n\n return flattenFragments(slot).filter(node =>\n node.children && typeof node.children === 'string'\n )[0]?.children as string\n })\n }\n\n const { iconData } = useIcon(slotIcon || props)\n const { sizeClasses } = useSize(props, 'v-icon')\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n return () => {\n return (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n sizeClasses.value,\n textColorClasses.value,\n {\n 'v-icon--disabled': props.disabled,\n 'v-icon--left': props.left,\n 'v-icon--right': props.right,\n },\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n ]}\n aria-hidden=\"true\"\n />\n )\n }\n },\n})\n","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType<string | false | TransitionProps>,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent, toRef } from 'vue'\nimport { convertToUnit, extract, makeProps, maybeTransition } from '@/util'\n\nexport default defineComponent({\n name: 'VBadge',\n\n inheritAttrs: false,\n\n props: makeProps({\n bordered: Boolean,\n color: {\n type: String,\n default: 'primary',\n },\n content: String,\n dot: Boolean,\n floating: Boolean,\n icon: String,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n location: {\n type: String,\n default: 'top-right',\n validator: (value: string) => {\n const [vertical, horizontal] = (value ?? '').split('-')\n\n return (\n ['top', 'bottom'].includes(vertical) &&\n ['left', 'right'].includes(horizontal)\n )\n },\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true,\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeTransitionProps({ transition: 'scale-rotate-transition' }),\n }),\n\n setup (props, ctx) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { roundedClasses } = useRounded(props, 'v-badge')\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'textColor'))\n\n const position = computed(() => {\n return props.floating\n ? (props.dot ? 2 : 4)\n : (props.dot ? 8 : 12)\n })\n\n function calculatePosition (offset?: number | string) {\n return `calc(100% - ${convertToUnit(position.value + parseInt(offset ?? 0, 10))})`\n }\n\n const locationStyles = computed(() => {\n const [vertical, horizontal] = (props.location ?? '').split('-')\n\n // TODO: RTL support\n\n const styles = {\n bottom: 'auto',\n left: 'auto',\n right: 'auto',\n top: 'auto',\n }\n\n if (!props.inline) {\n styles[horizontal === 'left' ? 'right' : 'left'] = calculatePosition(props.offsetX)\n styles[vertical === 'top' ? 'bottom' : 'top'] = calculatePosition(props.offsetY)\n }\n\n return styles\n })\n\n return () => {\n const value = Number(props.content)\n const content = (!props.max || isNaN(value)) ? props.content\n : value <= props.max ? value\n : `${props.max}+`\n\n const [badgeAttrs, attrs] = extract(ctx.attrs, [\n 'aria-atomic',\n 'aria-label',\n 'aria-live',\n 'role',\n 'title',\n ])\n\n return (\n <props.tag\n class={[\n 'v-badge',\n {\n 'v-badge--bordered': props.bordered,\n 'v-badge--dot': props.dot,\n 'v-badge--floating': props.floating,\n 'v-badge--inline': props.inline,\n },\n ]}\n { ...attrs }\n >\n <div class=\"v-badge__wrapper\">\n { ctx.slots.default?.() }\n\n {\n maybeTransition(\n props,\n {},\n <span\n v-show={ props.modelValue }\n class={[\n 'v-badge__badge',\n backgroundColorClasses.value,\n roundedClasses.value,\n textColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n locationStyles.value,\n textColorStyles.value,\n ] as any} // TODO: Fix this :(\n aria-atomic=\"true\"\n aria-label=\"locale string here\" // TODO: locale string here\n aria-live=\"polite\"\n role=\"status\"\n { ...badgeAttrs }\n >\n {\n props.dot ? undefined\n : ctx.slots.badge ? ctx.slots.badge?.()\n : props.icon ? <VIcon icon={props.icon} />\n : <span class=\"v-badge__content\">{content}</span>\n }\n </span>,\n )\n }\n </div>\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n outlined?: boolean\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n outlined: Boolean,\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (props: BorderProps, name: string) {\n const borderClasses = computed(() => {\n const classes: string[] = []\n\n if (props.outlined || props.border === true || props.border === '') {\n classes.push(`${name}--border`)\n } else if (\n typeof props.border === 'string' ||\n props.border === 0\n ) {\n for (const value of String(props.border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => ({\n height: convertToUnit(props.height),\n maxHeight: convertToUnit(props.maxHeight),\n maxWidth: convertToUnit(props.maxWidth),\n minHeight: convertToUnit(props.minHeight),\n minWidth: convertToUnit(props.minWidth),\n width: convertToUnit(props.width),\n }))\n\n return { dimensionStyles }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\nexport function useElevation (props: ElevationProps) {\n const elevationClasses = computed(() => {\n const classes: string[] = []\n\n if (props.elevation == null) return classes\n\n classes.push(`elevation-${props.elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n absolute?: boolean\n bottom?: boolean | number | string\n fixed?: boolean\n left?: boolean | number | string\n position?: Position\n right?: boolean | number | string\n top?: boolean | number | string\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n absolute: Boolean,\n bottom: [Boolean, Number, String],\n fixed: Boolean,\n left: [Boolean, Number, String],\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n right: [Boolean, Number, String],\n top: [Boolean, Number, String],\n}, 'position')\n\nexport function usePosition (props: PositionProps, name: string) {\n const targets = ['top', 'right', 'bottom', 'left'] as const\n\n const positionClasses = computed(() => {\n if (props.fixed) return `${name}--fixed`\n if (props.absolute) return `${name}--absolute`\n\n return props.position ? `position-${props.position}` : undefined\n })\n\n const positionStyles = computed(() => {\n const styles: Partial<Record<typeof targets[number], string>> = {}\n\n for (const target of targets) {\n const prop = props[target]\n\n if (prop == null || prop === false) continue\n\n styles[target] = convertToUnit(prop === true ? '0' : String(prop))\n }\n\n return styles\n })\n\n return { positionClasses, positionStyles }\n}\n","// Styles\nimport './VBanner.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VBanner',\n\n props: makeProps({\n avatar: String,\n icon: String,\n mobile: Boolean,\n singleLine: Boolean,\n sticky: Boolean,\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-banner')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-banner')\n const { roundedClasses } = useRounded(props, 'v-banner')\n\n return () => {\n const hasThumbnail = (!!props.avatar || !!props.icon || !!slots.thumbnail)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--has-thumbnail': hasThumbnail,\n 'v-banner--is-mobile': props.mobile,\n 'v-banner--single-line': props.singleLine,\n 'v-banner--sticky': props.sticky,\n },\n themeClasses.value,\n borderClasses.value,\n roundedClasses.value,\n elevationClasses.value,\n positionClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n positionStyles.value,\n ]}\n role=\"banner\"\n >\n <div class=\"v-banner__sizer\">\n <div class=\"v-banner__content\">\n { hasThumbnail && (\n <div class=\"v-banner__thumbnail\">\n { slots.thumbnail?.() }\n { props.avatar && (\n <img class=\"v-banner__avatar\" src={ props.avatar } alt=\"\"></img>\n )}\n { props.icon && <i class=\"v-banner__icon\">{ props.icon }</i> }\n </div>\n )}\n <div class=\"v-banner__text\">{ slots.default?.() }</div>\n </div>\n { slots.actions && (\n <div class=\"v-banner__actions\">{ slots.actions?.() }</div>\n )}\n </div>\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = ['default', 'comfortable', 'compact'] as const\n\ntype Density = typeof allowedDensities[number]\n\nexport interface DensityProps {\n density: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (props: DensityProps, name: string) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\nconst rippleStop = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [rippleStop]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.08)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[rippleStop]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[rippleStop] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: DirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: DirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple: ObjectDirective = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n","import type { Directive, DirectiveArguments, DirectiveBinding } from 'vue'\n\ninterface Binding extends Omit<DirectiveBinding, 'value' | 'modifiers'> {\n value?: unknown\n modifiers: Dictionary<boolean | undefined>\n}\n\n/**\n * Transform DirectiveBinding to DirectiveArguments with strict typing\n */\nexport function useDirective <T extends Binding> (directive: Directive, binding: Partial<T>): DirectiveArguments[number] {\n return [\n directive,\n binding.value!,\n binding.arg!,\n binding.modifiers! as any,\n ]\n}\n","// Styles\nimport './VBtn.sass'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\nimport { useColor } from '@/composables/color'\n\n// Directives\nimport { Ripple, RippleDirectiveBinding } from '@/directives/ripple'\n\n// Components\nimport VIcon from '@/components/VIcon/VIcon'\n\n// Utilities\nimport { computed, defineComponent, withDirectives } from 'vue'\nimport { makeProps, useDirective } from '@/util'\n\nimport { makeSizeProps, useSize } from '@/composables/size'\n\nexport default defineComponent({\n name: 'VBtn',\n\n props: makeProps({\n text: Boolean,\n flat: Boolean,\n plain: Boolean,\n icon: [Boolean, String],\n\n block: Boolean,\n\n color: {\n type: String,\n default: 'primary',\n },\n disabled: Boolean,\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-btn')\n const { roundedClasses } = useRounded(props, 'v-btn')\n const { densityClasses } = useDensity(props, 'v-btn')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-btn')\n const { sizeClasses } = useSize(props, 'v-btn')\n\n const isContained = computed(() => {\n return !(props.text || props.plain || props.icon || props.outlined || props.border !== false)\n })\n\n const isElevated = computed(() => {\n return isContained.value && !(props.disabled || props.flat)\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => ({\n [isContained.value ? 'background' : 'text']: props.color,\n })))\n\n return () => withDirectives(\n <props.tag\n type=\"button\"\n class={[\n 'v-btn',\n {\n 'v-btn--contained': isContained.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--icon': !!props.icon,\n 'v-btn--plain': props.plain,\n 'v-btn--block': props.block,\n 'v-btn--disabled': props.disabled,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n disabled={ props.disabled }\n >\n <span class=\"v-btn__overlay\" />\n\n { typeof props.icon === 'boolean'\n ? slots.default?.()\n : <VIcon icon={ props.icon } size={ props.size } />\n }\n </props.tag>,\n [useDirective<RippleDirectiveBinding>(Ripple, {\n value: !props.disabled,\n modifiers: { center: !!props.icon },\n })]\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VDivider.sass'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { convertToUnit, makeProps } from '@/util'\n\n// Composables\nimport { useTheme } from '@/composables/theme'\n\n// Types\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'maxHeight' | 'maxWidth'\ntype DividerStyles = Partial<Record<DividerKey, string>>\n\nexport default defineComponent({\n name: 'VDivider',\n\n props: makeProps({\n inset: Boolean,\n length: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n }),\n\n setup (props, { attrs }) {\n const { themeClasses } = useTheme()\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n return () => {\n return (\n <hr\n class={[\n {\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical,\n },\n themeClasses.value,\n ]}\n style={ dividerStyles.value }\n aria-orientation={\n !attrs.role || attrs.role === 'separator'\n ? props.vertical ? 'vertical' : 'horizontal'\n : undefined\n }\n role={`${attrs.role || 'separator'}`}\n />\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VFooter',\n\n props: makeProps({\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeTagProps({ tag: 'footer' }),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-footer')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-footer')\n const { roundedClasses } = useRounded(props, 'v-footer')\n\n return () => (\n <props.tag\n class={[\n 'v-footer',\n themeClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n\n dimensionStyles.value,\n positionStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VContainer',\n\n props: makeProps({\n fluid: {\n type: Boolean,\n default: false,\n },\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n return () => (\n <props.tag\n class={[\n 'v-container',\n { 'v-container--fluid': props.fluid },\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, defineComponent, h } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Dictionary<Prop<boolean | string | number, false>>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary<Prop<string | number, null>>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Dictionary<Prop<string | number, null>>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport default defineComponent({\n name: 'VCol',\n\n props: makeProps({\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: classes.value,\n }, slots.default?.())\n },\n})\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, defineComponent, h } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\nfunction makeRowProps (prefix: string, def: () => Prop<string, null>) {\n return breakpoints.reduce((props, val) => {\n props[prefix + capitalize(val)] = def()\n return props\n }, {} as Dictionary<Prop<string, null>>)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport default defineComponent({\n name: 'VRow',\n\n props: makeProps({\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: ['v-row', classes.value],\n }, slots.default?.())\n },\n})\n","import { camelize, capitalize, defineComponent, h } from 'vue'\nimport { makeProps } from './makeProps'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return defineComponent({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: makeProps({\n tag: {\n type: String,\n default: tag,\n },\n }),\n\n setup (props, { slots }) {\n return () => h(props.tag, {\n class: klass,\n }, slots.default?.())\n },\n })\n}\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('flex-grow-1', 'div', 'VSpacer')\n","export { default as VContainer } from './VContainer'\nexport { default as VCol } from './VCol'\nexport { default as VRow } from './VRow'\nexport { default as VSpacer } from './VSpacer'\n","export { default as VIcon } from './VIcon'\nexport {\n VComponentIcon,\n VSvgIcon,\n VLigatureIcon,\n VClassIcon,\n} from '@/composables/icons'\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VResponsive.sass'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeProps } from '@/util'\n\n// Composables\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport default defineComponent({\n name: 'VResponsive',\n\n props: makeProps({\n aspectRatio: [String, Number],\n contentClass: String,\n ...makeDimensionProps(),\n }),\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { aspectStyles } = useAspectStyles(props)\n\n return () => (\n <div class=\"v-responsive\" style={ dimensionStyles.value }>\n <div class=\"v-responsive__sizer\" style={ aspectStyles.value } />\n { slots.additional?.() }\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default?.() }</div>\n </div>\n )\n },\n})\n","// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n /* istanbul ignore if */\n if (!el._observe) return // Just in case, should never fire\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n el._observe.init\n )\n ) {\n const isIntersecting = Boolean(entries.find(entry => entry.isIntersecting))\n\n handler(isIntersecting, entries, observer)\n }\n\n // If has already been initted and\n // has the once modifier, unbind\n if (el._observe.init && modifiers.once) unmounted(el)\n // Otherwise, mark the observer as initted\n else (el._observe.init = true)\n }, options)\n\n el._observe = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement) {\n /* istanbul ignore if */\n if (!el._observe) return\n\n el._observe.observer.unobserve(el)\n delete el._observe\n}\n\nexport const Intersect: ObjectDirective<HTMLElement> = {\n mounted,\n unmounted,\n}\n\nexport default Intersect\n","import { getCurrentInstance } from 'vue'\nimport type { VNode } from 'vue'\n\nexport function useRender (render: () => VNode): void {\n const vm = getCurrentInstance() as any\n vm.render = render\n}\n","import './VImg.sass'\n\n// Vue\nimport {\n computed,\n defineComponent,\n h,\n nextTick,\n onBeforeMount,\n ref,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\n\n// Components\nimport { VResponsive } from '../VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\nimport type { ObserveDirectiveBinding } from '@/directives/intersect'\n\n// Composables\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utils\nimport {\n makeProps,\n maybeTransition,\n SUPPORTS_INTERSECTION,\n useDirective,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport default defineComponent({\n name: 'VImg',\n\n props: makeProps({\n aspectRatio: [String, Number],\n alt: String,\n cover: Boolean,\n eager: Boolean,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n position: {\n type: String,\n default: 'center center',\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n ...makeTransitionProps(),\n }),\n\n emits: ['loadstart', 'load', 'error'],\n\n setup (props, { emit, slots }) {\n const currentSrc = ref('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = ref<'idle' | 'loading' | 'loaded' | 'error'>('idle')\n const naturalWidth = ref<number>()\n const naturalHeight = ref<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n // If the current browser supports the intersection\n // observer api, the image is not observable, and\n // the eager prop isn't being used, do not load\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n })\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = computed(() => {\n if (!normalisedSrc.value.src || state.value === 'idle') return\n\n const img = h('img', {\n class: ['v-img__img', containClasses.value],\n src: normalisedSrc.value.src,\n srcset: normalisedSrc.value.srcset,\n sizes: props.sizes,\n ref: image,\n onLoad,\n onError,\n })\n\n const sources = slots.sources?.()\n\n return maybeTransition(\n props,\n { appear: true },\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{sources}{img}</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n )\n })\n\n const __preloadImage = computed(() => {\n return maybeTransition(\n props,\n {},\n normalisedSrc.value.lazySrc && state.value !== 'loaded' ? (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt=\"\"\n />\n ) : undefined\n )\n })\n\n const __placeholder = computed(() => {\n if (!slots.placeholder) return\n\n const placeholder = state.value === 'loading' || (state.value === 'error' && !slots.error)\n ? <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n : undefined\n\n return maybeTransition(props, { appear: true }, placeholder)\n })\n\n const __error = computed(() => {\n if (!slots.error) return\n\n const error = state.value === 'error'\n ? <div class=\"v-img__error\">{ slots.error() }</div>\n : undefined\n\n return maybeTransition(props, { appear: true }, error)\n })\n\n useRender(() => withDirectives(\n <VResponsive\n class=\"v-img\"\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-slots={{\n additional: () => [__image.value, __preloadImage.value, __placeholder.value, __error.value],\n default: slots.default,\n }}\n />,\n [useDirective<ObserveDirectiveBinding>(intersect, {\n value: {\n handler: init,\n options: props.options,\n },\n modifiers: { once: true },\n })]\n ))\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VLayout.sass'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps, useRender } from '@/util'\n\n// Composables\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\nexport default defineComponent({\n name: 'VLayout',\n\n props: makeProps(makeLayoutProps()),\n\n setup (props, { slots }) {\n const { layoutClasses, getLayoutItem, items } = createLayout(props)\n\n useRender(() => (\n <div\n class={layoutClasses.value}\n style={{\n height: props.fullHeight ? '100vh' : undefined,\n }}\n >{ slots.default?.() }</div>\n ))\n\n return {\n getLayoutItem,\n items,\n }\n },\n})\n","// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\n\n// Utilities\nimport { computed, defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport default defineComponent({\n name: 'VLayoutItem',\n\n props: makeProps({\n position: {\n type: String,\n required: true,\n } as Prop<'top' | 'right' | 'bottom' | 'left'>,\n ...makeLayoutItemProps(),\n }),\n\n setup (props, { slots }) {\n const styles = useLayoutItem(\n props.name,\n toRef(props, 'priority'),\n computed(() => props.position ?? 'left'),\n toRef(props, 'size')\n )\n\n return () => (\n <div style={ styles.value } v-slots={ slots } />\n )\n },\n})\n","export { default as VLayout } from './VLayout'\nexport { default as VLayoutItem } from './VLayoutItem'\n","import { defineComponent } from 'vue'\nimport { provideLocale } from '@/composables/locale'\nimport { provideRtl } from '@/composables/rtl'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VLocaleProvider',\n\n props: makeProps({\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined,\n },\n }),\n\n setup (props, ctx) {\n const localeInstance = provideLocale(props)\n const { rtlClasses } = provideRtl(props, localeInstance)\n\n return () => <div class={rtlClasses.value}>{ctx.slots.default?.()}</div>\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed, onMounted, ref } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = ref(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles }\n}\n","// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useMain } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VMain',\n\n props: makeProps(makeTagProps({ tag: 'main' })),\n\n setup (props, { slots }) {\n const { mainStyles } = useMain()\n const { ssrBootStyles } = useSsrBoot()\n\n return () => (\n <props.tag\n class=\"v-main\"\n style={[\n mainStyles.value,\n ssrBootStyles.value,\n ]}\n >\n <div class=\"v-main__wrap\">\n { slots.default?.() }\n </div>\n </props.tag>\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed, getCurrentInstance, ref } from 'vue'\nimport { consoleError, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\n// Composables\nexport function useProxiedModel<\n Inner,\n Props extends object,\n Prop extends Extract<keyof Props, string>,\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance()\n\n if (!vm) consoleError('useProxiedModel must be called from inside a setup function')\n\n const propIsDefined = computed(() => {\n return !!(\n typeof props[prop] !== 'undefined' &&\n (vm?.vnode.props?.hasOwnProperty(prop) || vm?.vnode.props?.hasOwnProperty(toKebabCase(prop)))\n )\n })\n\n const internal = ref(transformIn(propIsDefined.value ? props[prop] : defaultValue)) as Ref<Inner>\n\n return computed<Inner>({\n get () {\n if (propIsDefined.value) return transformIn(props[prop])\n else return internal.value\n },\n set (newValue) {\n internal.value = newValue\n vm?.emit(`update:${prop}`, transformOut(newValue))\n },\n })\n}\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, defineComponent, onBeforeMount, ref, toRef, watch } from 'vue'\nimport { convertToUnit } from '@/util/helpers'\nimport { makeProps } from '@/util/makeProps'\n\nexport default defineComponent({\n name: 'VNavigationDrawer',\n\n props: makeProps({\n disableResizeWatcher: Boolean,\n expandOnHover: Boolean,\n modelValue: {\n type: Boolean,\n default: null,\n },\n permanent: Boolean,\n rail: Boolean,\n railWidth: {\n type: [Number, String],\n default: 72,\n },\n src: String,\n temporary: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-navigation-drawer')\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { positionClasses, positionStyles } = usePosition(props, 'v-navigation-drawer')\n const { roundedClasses } = useRounded(props, 'v-navigation-drawer')\n\n const isActive = useProxiedModel(props, 'modelValue')\n const isHovering = ref(false)\n const size = computed(() => Number(props.rail ? props.railWidth : props.width))\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? props.width\n : size.value\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const layoutStyles = useLayoutItem(\n props.name,\n toRef(props, 'priority'),\n computed(() => props.right ? 'right' : 'left'),\n computed(() => !isTemporary.value && isActive.value ? size.value : 0),\n )\n\n if (!props.disableResizeWatcher) {\n watch(mobile, val => !props.permanent && (isActive.value = !val))\n }\n\n watch(props, val => {\n if (val.permanent) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null) return\n\n isActive.value = !mobile.value\n })\n\n return () => {\n const hasImg = (slots.img || props.src)\n const translate = (\n (!props.permanent && !isActive.value ? 105 : 0) *\n (!props.right && !props.bottom ? -1 : 1)\n )\n\n return (\n <props.tag\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n {\n 'v-navigation-drawer--bottom': props.bottom,\n 'v-navigation-drawer--end': props.right,\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--start': props.left || !props.right,\n 'v-navigation-drawer--temporary': isTemporary.value,\n },\n themeClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n layoutStyles.value,\n positionStyles.value,\n {\n transform: `translate${props.bottom ? 'Y' : 'X'}(${convertToUnit(translate, '%')})`,\n width: convertToUnit(width.value),\n },\n ]}\n >\n { hasImg && (\n <div class=\"v-navigation-drawer__img\">\n { slots.img\n ? slots.img?.({ src: props.src })\n : (<img src={ props.src } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VSheet',\n\n props: makeProps({\n color: String,\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props, 'v-sheet')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-sheet')\n const { roundedClasses } = useRounded(props, 'v-sheet')\n\n return () => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VSystemBar',\n\n props: makeProps({\n lightsOut: Boolean,\n window: Boolean,\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props, 'v-system-bar')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-system-bar')\n const { roundedClasses } = useRounded(props, 'v-system-bar')\n\n return () => (\n <props.tag\n class={[\n {\n 'v-system-bar': true,\n 'v-system-bar--lights-out': props.lightsOut,\n 'v-system-bar--window': props.window,\n },\n themeClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n positionStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VThemeProvider.sass'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { provideTheme } from '@/composables/theme'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VThemeProvider',\n\n props: makeProps({\n theme: {\n type: String,\n },\n // TODO: Better name\n newContext: {\n type: Boolean,\n },\n }),\n\n setup (props, context) {\n const { themeClasses } = provideTheme(props, context)\n\n return () => {\n return (\n <div class={['v-theme-provider', themeClasses.value]}>\n <div>{ context.slots.default?.() }</div>\n </div>\n )\n }\n },\n})\n","// Utilities\nimport { defineComponent, h, Transition, TransitionGroup } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { FunctionalComponent, Prop } from 'vue'\n\nexport function createCssTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n) {\n return defineComponent({\n name,\n\n props: makeProps({\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n }),\n\n setup (props, { slots }) {\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name,\n mode: props.mode,\n onBeforeEnter (el: HTMLElement) {\n el.style.transformOrigin = props.origin\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) el.style.position = 'absolute'\n if (props.hideOnLeave) el.style.display = 'none'\n },\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record<string, any>,\n mode = 'in-out'\n) {\n return defineComponent({\n name,\n\n props: makeProps({\n mode: {\n type: String,\n default: mode,\n } as Prop<'in-out' | 'out-in' | 'default'>,\n }),\n\n setup (props, { slots }) {\n return () => {\n return h(Transition, {\n name,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...functions,\n }, slots.default)\n }\n },\n })\n}\n","// Utilities\nimport { camelize } from 'vue'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = camelize(`offset-${sizeProperty}`) as 'offsetHeight' | 'offsetWidth'\n\n return {\n onBeforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n onEnter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave,\n }\n\n function onAfterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createCssTransition('carousel-transition')\nexport const VCarouselReverseTransition = createCssTransition('carousel-reverse-transition')\nexport const VTabTransition = createCssTransition('tab-transition')\nexport const VTabReverseTransition = createCssTransition('tab-reverse-transition')\nexport const VMenuTransition = createCssTransition('menu-transition')\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogTransition = createCssTransition('dialog-transition')\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n","export * from './VApp'\n// export * from './VAppBar'\n// export * from './VAlert'\n// export * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\n// export * from './VBottomNavigation'\n// export * from './VBottomSheet'\n// export * from './VBreadcrumbs'\n// export * from './VBtn'\nexport * from './VBtn'\n// export * from './VBtnToggle'\n// export * from './VCalendar'\n// export * from './VCard'\n// export * from './VCarousel'\n// export * from './VCheckbox'\n// export * from './VChip'\n// export * from './VChipGroup'\n// export * from './VColorPicker'\n// export * from './VContent'\n// export * from './VCombobox'\n// export * from './VCounter'\n// export * from './VData'\n// export * from './VDataIterator'\n// export * from './VDataTable'\n// export * from './VDatePicker'\n// export * from './VDialog'\nexport * from './VDivider'\n// export * from './VExpansionPanel'\n// export * from './VFileInput'\nexport * from './VFooter'\n// export * from './VForm'\nexport * from './VGrid'\n// export * from './VHover'\nexport * from './VIcon'\nexport * from './VImg'\n// export * from './VInput'\n// export * from './VItemGroup'\n// export * from './VLabel'\nexport * from './VLayout'\nexport * from './VLocaleProvider'\n// export * from './VLazy'\n// export * from './VList'\nexport * from './VMain'\n// export * from './VMenu'\n// export * from './VMessages'\nexport * from './VNavigationDrawer'\n// export * from './VOverflowBtn'\n// export * from './VOverlay'\n// export * from './VPagination'\nexport * from './VSheet'\n// export * from './VParallax'\n// export * from './VPicker'\n// export * from './VProgressCircular'\n// export * from './VProgressLinear'\n// export * from './VRadioGroup'\n// export * from './VRangeSlider'\n// export * from './VRating'\nexport * from './VResponsive'\n// export * from './VSelect'\n// export * from './VSkeletonLoader'\n// export * from './VSlider'\n// export * from './VSlideGroup'\n// export * from './VSnackbar'\n// export * from './VSparkline'\n// export * from './VSpeedDial'\n// export * from './VStepper'\n// export * from './VSubheader'\n// export * from './VSwitch'\nexport * from './VSystemBar'\n// export * from './VTabs'\n// export * from './VTextarea'\n// export * from './VTextField'\nexport * from './VThemeProvider'\n// export * from './VTimeline'\n// export * from './VTimePicker'\n// export * from './VToolbar'\n// export * from './VTooltip'\n// export * from './VTreeview'\n// export * from './VVirtualScroll'\n// export * from './VWindow'\nexport * from './transitions'\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","import { attachedRoot } from '@/util'\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: Event) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: Event) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (root instanceof ShadowRoot && root.host === e.target) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: PointerEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: PointerEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document.body)\n\n if (root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as PointerEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as PointerEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n el._clickOutside = {\n lastMousedownWasOutside: true,\n onClick,\n onMousedown,\n }\n },\n\n unmounted (el: HTMLElement) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside) return\n app.removeEventListener('click', el._clickOutside.onClick, true)\n app.removeEventListener('mousedown', el._clickOutside.onMousedown, true)\n })\n\n delete el._clickOutside\n },\n}\n\nexport default ClickOutside\n","import type { DirectiveBinding, ObjectDirective } from 'vue'\n\ninterface ResizeDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: (() => void)\n modifiers?: {\n active?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n const options: AddEventListenerOptions = {\n passive: !binding.modifiers?.active,\n }\n\n window.addEventListener('resize', handler, options)\n el._onResize = {\n handler,\n options,\n }\n\n if (!binding.modifiers?.quiet) {\n handler()\n }\n}\n\nfunction unmounted (el: HTMLElement) {\n if (!el._onResize) return\n\n const { handler, options } = el._onResize\n window.removeEventListener('resize', handler, options)\n delete el._onResize\n}\n\nexport const Resize: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Resize\n","import type { DirectiveBinding } from 'vue'\n\ninterface ScrollDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: EventListener | {\n handler: EventListener\n options?: AddEventListenerOptions\n } | EventListenerObject & { options?: AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n const { self = false } = binding.modifiers ?? {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unmounted (el: HTMLElement) {\n if (!el._onScroll) return\n\n const { handler, options, target = el } = el._onScroll\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll\n}\n\nfunction updated (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (binding.value === binding.oldValue) return\n\n unmounted(el)\n mounted(el, binding)\n}\n\nexport const Scroll = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Scroll\n","// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\nimport type {\n TouchHandlers,\n TouchValue,\n TouchWrapper,\n} from 'vuetify/types'\n\n// Utilities\nimport { keys } from '@/util'\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\ninterface TouchDirectiveBinding extends Omit<DirectiveBinding, 'value'> {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start?.({ ...event, ...wrapper })\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end?.({ ...event, ...wrapper })\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move?.({ ...event, ...wrapper })\n}\n\nfunction createHandlers (value: TouchHandlers = {}): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const value = binding.value\n const target = value?.parent ? el.parentElement : el\n const options = value?.options ?? { passive: true }\n const uid = binding.instance?.$.uid // TODO: use custom uid generator\n\n if (!target || !uid) return\n\n const handlers = createHandlers(binding.value)\n\n target._touchHandlers = target._touchHandlers ?? Object.create(null)\n target._touchHandlers![uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options)\n })\n}\n\nfunction unmounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const target = binding.value?.parent ? el.parentElement : el\n const uid = binding.instance?.$.uid\n\n if (!target?._touchHandlers || !uid) return\n\n const handlers = target._touchHandlers[uid]\n\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n\n delete target._touchHandlers[uid]\n}\n\nexport const Touch: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Touch\n","export { ClickOutside } from './click-outside'\n// export { Color } from './color'\nexport { Intersect } from './intersect'\n// export { Mutate } from './mutate'\nexport { Resize } from './resize'\nexport { Ripple } from './ripple'\nexport { Scroll } from './scroll'\nexport { Touch } from './touch'\n","import './styles/main.sass'\nimport * as components from './components'\nimport * as directives from './directives'\nimport * as framework from './framework'\n\nexport * from './components'\nexport * from './framework'\n\nexport const createVuetify = (options: framework.VuetifyOptions = {}) => {\n return framework.createVuetify({ components, directives, ...options })\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__982__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tif(__webpack_module_cache__[moduleId]) {\n\t\treturn __webpack_module_cache__[moduleId].exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","// module exports must be returned from runtime so entry inlining is disabled\n// startup\n// Load entry module and return exports\nreturn __webpack_require__(86);\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"vuetify.min.js","sources":["../src/util/box.ts","../src/util/animation.ts","../src/util/console.ts","../src/util/helpers.ts","../src/util/color/transformSRGB.ts","../src/util/color/transformCIELAB.ts","../src/util/colorUtils.ts","../src/composables/defaults.ts","../src/util/defineComponent.tsx","../src/util/createSimpleFunctional.ts","../src/util/dom.ts","../src/util/easing.ts","../src/util/getCurrentInstance.ts","../src/util/getScrollParent.ts","../src/util/globals.ts","../src/util/propsFactory.ts","../src/util/useRender.ts","../src/util/color/APCA.ts","../src/composables/theme.ts","../src/composables/resizeObserver.ts","../src/composables/layout.ts","../src/locale/en.ts","../src/locale/index.ts","../src/composables/rtl.ts","../src/components/VApp/VApp.tsx","../src/components/VDefaultsProvider/VDefaultsProvider.tsx","../src/composables/dimensions.ts","../src/components/VResponsive/VResponsive.tsx","../src/directives/intersect/index.ts","../src/composables/transition.ts","../src/components/VImg/VImg.tsx","../src/composables/tag.ts","../src/components/VToolbar/VToolbarTitle.tsx","../src/composables/border.ts","../src/composables/elevation.ts","../src/composables/rounded.ts","../src/composables/color.ts","../src/composables/forwardRef.ts","../src/components/VToolbar/VToolbar.tsx","../src/composables/proxiedModel.ts","../src/components/VAppBar/VAppBar.tsx","../src/composables/density.ts","../src/composables/variant.tsx","../src/components/VBtnGroup/VBtnGroup.tsx","../src/composables/group.ts","../src/components/VBtnToggle/VBtnToggle.tsx","../src/composables/size.ts","../src/composables/icons.tsx","../src/components/VIcon/VIcon.tsx","../src/composables/position.ts","../src/composables/router.tsx","../src/directives/ripple/index.ts","../src/components/VBtn/VBtn.tsx","../src/composables/selectLink.ts","../src/components/VAppBar/VAppBarNavIcon.tsx","../src/components/VToolbar/VToolbarItems.tsx","../src/components/VAppBar/VAppBarTitle.tsx","../src/components/VAlert/VAlertTitle.ts","../src/components/VAlert/VAlert.tsx","../src/components/VAvatar/VAvatar.tsx","../src/components/VChipGroup/VChipGroup.tsx","../src/components/transitions/createTransition.ts","../src/components/transitions/expand-transition.ts","../src/components/transitions/dialog-transition.tsx","../src/components/transitions/index.ts","../src/components/VChip/VChip.tsx","../src/components/VDivider/VDivider.tsx","../src/components/VList/list.ts","../src/composables/nested/openStrategies.ts","../src/composables/nested/selectStrategies.ts","../src/composables/nested/nested.ts","../src/components/VList/VListGroup.tsx","../src/components/VList/VListItemAvatar.tsx","../src/components/VList/VListItemHeader.ts","../src/components/VList/VListItemIcon.tsx","../src/components/VList/VListItemSubtitle.ts","../src/components/VList/VListItemTitle.ts","../src/components/VList/VListItem.tsx","../src/components/VList/VListSubheader.tsx","../src/components/VList/VListChildren.tsx","../src/components/VList/VList.tsx","../src/components/VList/VListImg.ts","../src/components/VList/VListItemAction.tsx","../src/components/VList/VListItemMedia.tsx","../src/composables/delay.ts","../src/components/VMenu/shared.ts","../src/components/VOverlay/useActivator.tsx","../src/components/VOverlay/util/anchor.ts","../src/components/VOverlay/util/point.ts","../src/components/VOverlay/positionStrategies.ts","../src/util/isFixedPosition.ts","../src/components/VOverlay/requestNewFrame.ts","../src/components/VOverlay/scrollStrategies.ts","../src/composables/teleport.ts","../src/composables/lazy.ts","../src/composables/stack.ts","../src/directives/click-outside/index.ts","../src/components/VOverlay/VOverlay.tsx","../src/components/VMenu/VMenu.tsx","../src/components/VMessages/VMessages.tsx","../src/composables/form.ts","../src/composables/validation.ts","../src/components/VInput/VInput.tsx","../src/components/VLabel/VLabel.tsx","../src/components/VField/VFieldLabel.tsx","../src/composables/intersectionObserver.ts","../src/components/VProgressLinear/VProgressLinear.tsx","../src/composables/loader.tsx","../src/composables/focus.ts","../src/components/VField/VField.tsx","../src/components/VCounter/VCounter.tsx","../src/components/VTextField/VTextField.tsx","../src/composables/items.ts","../src/composables/locale.ts","../src/components/VSelect/VSelect.tsx","../src/composables/filter.ts","../src/components/VAutocomplete/VAutocomplete.tsx","../src/components/VBadge/VBadge.tsx","../src/components/VBanner/VBannerActions.tsx","../src/components/VBanner/VBannerAvatar.tsx","../src/components/VBanner/VBannerIcon.tsx","../src/components/VBanner/VBannerText.ts","../src/composables/display.ts","../src/components/VBanner/VBanner.tsx","../src/components/VBottomNavigation/VBottomNavigation.tsx","../src/components/VBreadcrumbs/VBreadcrumbsItem.tsx","../src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx","../src/components/VBreadcrumbs/VBreadcrumbs.tsx","../src/components/VCard/VCardActions.tsx","../src/components/VCard/VCardAvatar.ts","../src/components/VCard/VCardContent.ts","../src/components/VCard/VCardHeader.ts","../src/components/VCard/VCardHeaderText.ts","../src/components/VCard/VCardImg.ts","../src/components/VCard/VCardSubtitle.ts","../src/components/VCard/VCardText.ts","../src/components/VCard/VCardTitle.ts","../src/components/VCard/VCard.tsx","../src/directives/touch/index.ts","../src/components/VWindow/VWindow.tsx","../src/components/VWindow/VWindowItem.tsx","../src/components/VCarousel/VCarousel.tsx","../src/components/VCarousel/VCarouselItem.tsx","../src/components/VSelectionControlGroup/VSelectionControlGroup.tsx","../src/components/VSelectionControl/VSelectionControl.tsx","../src/components/VCheckbox/VCheckbox.tsx","../src/components/VCode/index.ts","../src/components/VSheet/VSheet.tsx","../src/components/VSlider/slider.ts","../src/components/VSlider/VSliderThumb.tsx","../src/components/VSlider/VSliderTrack.tsx","../src/components/VSlider/VSlider.tsx","../src/components/VColorPicker/util/index.ts","../src/components/VColorPicker/VColorPickerPreview.tsx","../src/components/VColorPicker/VColorPickerCanvas.tsx","../src/components/VColorPicker/VColorPickerEdit.tsx","../src/util/colors.ts","../src/components/VColorPicker/VColorPickerSwatches.tsx","../src/components/VColorPicker/VColorPicker.tsx","../src/components/VCombobox/VCombobox.tsx","../src/components/VDialog/VDialog.tsx","../src/components/VExpansionPanel/VExpansionPanels.tsx","../src/components/VExpansionPanel/VExpansionPanelTitle.tsx","../src/components/VExpansionPanel/VExpansionPanelText.tsx","../src/components/VExpansionPanel/VExpansionPanel.tsx","../src/components/VFileInput/VFileInput.tsx","../src/components/VFooter/VFooter.tsx","../src/components/VForm/VForm.tsx","../src/components/VGrid/VContainer.tsx","../src/components/VGrid/VCol.ts","../src/components/VGrid/VRow.ts","../src/components/VGrid/VSpacer.ts","../src/components/VHover/VHover.tsx","../src/components/VItemGroup/VItemGroup.tsx","../src/components/VItemGroup/VItem.tsx","../src/components/VKbd/index.ts","../src/components/VLayout/VLayout.tsx","../src/components/VLayout/VLayoutItem.tsx","../src/components/VLazy/VLazy.tsx","../src/components/VLocaleProvider/VLocaleProvider.tsx","../src/components/VMain/VMain.tsx","../src/composables/ssrBoot.ts","../src/composables/touch.ts","../src/components/VNavigationDrawer/touch.ts","../src/components/VNavigationDrawer/VNavigationDrawer.tsx","../src/components/VNoSsr/VNoSsr.tsx","../src/composables/hydration.ts","../src/components/VPagination/VPagination.tsx","../src/composables/refs.ts","../src/components/VParallax/VParallax.tsx","../src/components/VProgressCircular/VProgressCircular.tsx","../src/components/VRadio/VRadio.tsx","../src/components/VRadioGroup/VRadioGroup.tsx","../src/components/VRangeSlider/VRangeSlider.tsx","../src/components/VRating/VRating.tsx","../src/components/VSlideGroup/helpers.ts","../src/components/VSlideGroup/VSlideGroup.tsx","../src/components/VSlideGroup/VSlideGroupItem.tsx","../src/components/VSnackbar/VSnackbar.tsx","../src/components/VSwitch/VSwitch.tsx","../src/components/VSystemBar/VSystemBar.tsx","../src/components/VTabs/shared.ts","../src/components/VTabs/VTab.tsx","../src/components/VTabs/VTabs.tsx","../src/components/VTable/VTable.tsx","../src/components/VTextarea/VTextarea.tsx","../src/components/VThemeProvider/VThemeProvider.tsx","../src/components/VTimeline/shared.ts","../src/components/VTimeline/VTimeline.tsx","../src/components/VTimeline/VTimelineDivider.tsx","../src/components/VTimeline/VTimelineItem.tsx","../src/components/VTooltip/VTooltip.tsx","../src/components/VValidation/VValidation.tsx","../src/directives/mutate/index.ts","../src/directives/resize/index.ts","../src/directives/scroll/index.ts","../src/iconsets/mdi.ts","../src/framework.ts","../src/entry-bundler.ts"],"sourcesContent":["export class Box {\n x: number\n y: number\n width: number\n height: number\n\n constructor ({ x, y, width, height }: {\n x: number\n y: number\n width: number\n height: number\n }) {\n this.x = x\n this.y = y\n this.width = width\n this.height = height\n }\n\n get top () { return this.y }\n get bottom () { return this.y + this.height }\n get left () { return this.x }\n get right () { return this.x + this.width }\n}\n","import { Box } from '@/util/box'\n\n/** @see https://stackoverflow.com/a/57876601/2074736 */\nexport function nullifyTransforms (el: HTMLElement): Box {\n const rect = el.getBoundingClientRect()\n const style = getComputedStyle(el)\n const tx = style.transform\n\n if (tx) {\n let ta, sx, sy, dx, dy\n if (tx.startsWith('matrix3d(')) {\n ta = tx.slice(9, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[5]\n dx = +ta[12]\n dy = +ta[13]\n } else if (tx.startsWith('matrix(')) {\n ta = tx.slice(7, -1).split(/, /)\n sx = +ta[0]\n sy = +ta[3]\n dx = +ta[4]\n dy = +ta[5]\n } else {\n return new Box(rect)\n }\n\n const to = style.transformOrigin\n const x = rect.x - dx - (1 - sx) * parseFloat(to)\n const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(' ') + 1))\n const w = sx ? rect.width / sx : el.offsetWidth\n const h = sy ? rect.height / sy : el.offsetHeight\n\n return new Box({ x, y, width: w, height: h })\n } else {\n return new Box(rect)\n }\n}\n","/* eslint-disable no-console */\n// import Vuetify from '../framework'\n\nfunction createMessage (message: string, vm?: any, parent?: any): string | void {\n // if (Vuetify.config.silent) return\n\n if (parent) {\n vm = {\n _isVue: true,\n $parent: parent,\n $options: vm,\n }\n }\n\n if (vm) {\n // Only show each message once per instance\n vm.$_alreadyWarned = vm.$_alreadyWarned || []\n if (vm.$_alreadyWarned.includes(message)) return\n vm.$_alreadyWarned.push(message)\n }\n\n return `[Vuetify] ${message}` + (\n vm ? generateComponentTrace(vm) : ''\n )\n}\n\nexport function consoleInfo (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.info(newMessage)\n}\n\nexport function consoleWarn (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.warn(newMessage)\n}\n\nexport function consoleError (message: string, vm?: any, parent?: any): void {\n const newMessage = createMessage(message, vm, parent)\n newMessage != null && console.error(newMessage)\n}\n\nexport function deprecate (original: string, replacement: string, vm?: any, parent?: any) {\n consoleWarn(`[UPGRADE] '${original}' is deprecated, use '${replacement}' instead.`, vm, parent)\n}\nexport function breaking (original: string, replacement: string, vm?: any, parent?: any) {\n consoleError(`[BREAKING] '${original}' has been removed, use '${replacement}' instead. For more information, see the upgrade guide https://github.com/vuetifyjs/vuetify/releases/tag/v2.0.0#user-content-upgrade-guide`, vm, parent)\n}\nexport function removed (original: string, vm?: any, parent?: any) {\n consoleWarn(`[REMOVED] '${original}' has been removed. You can safely omit it.`, vm, parent)\n}\n\n/**\n * Shamelessly stolen from vuejs/vue/blob/dev/src/core/util/debug.js\n */\n\nconst classifyRE = /(?:^|[-_])(\\w)/g\nconst classify = (str: string) => str\n .replace(classifyRE, c => c.toUpperCase())\n .replace(/[-_]/g, '')\n\nfunction formatComponentName (vm: any, includeFile?: boolean): string {\n if (vm.$root === vm) {\n return '<Root>'\n }\n const options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm || {}\n let name = options.name || options._componentTag\n const file = options.__file\n if (!name && file) {\n const match = file.match(/([^/\\\\]+)\\.vue$/)\n name = match?.[1]\n }\n\n return (\n (name ? `<${classify(name)}>` : `<Anonymous>`) +\n (file && includeFile !== false ? ` at ${file}` : '')\n )\n}\n\nfunction generateComponentTrace (vm: any): string {\n if (vm._isVue && vm.$parent) {\n const tree: any[] = []\n let currentRecursiveSequence = 0\n while (vm) {\n if (tree.length > 0) {\n const last: any = tree[tree.length - 1]\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++\n vm = vm.$parent\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence]\n currentRecursiveSequence = 0\n }\n }\n tree.push(vm)\n vm = vm.$parent\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map((vm, i) => `${\n i === 0 ? '---> ' : ' '.repeat(5 + i * 2)\n }${\n Array.isArray(vm)\n // eslint-disable-next-line sonarjs/no-nested-template-literals\n ? `${formatComponentName(vm[0])}... (${vm[1]} recursive calls)`\n : formatComponentName(vm)\n }`)\n .join('\\n')\n } else {\n return `\\n\\n(found in ${formatComponentName(vm)})`\n }\n}\n","// Utilities\nimport { camelize, Fragment } from 'vue'\n\n// Types\nimport type { ComponentInternalInstance, ComponentPublicInstance, InjectionKey, Ref, Slots, VNode, VNodeChild } from 'vue'\n\nexport function getNestedValue (obj: any, path: (string | number)[], fallback?: any): any {\n const last = path.length - 1\n\n if (last < 0) return obj === undefined ? fallback : obj\n\n for (let i = 0; i < last; i++) {\n if (obj == null) {\n return fallback\n }\n obj = obj[path[i]]\n }\n\n if (obj == null) return fallback\n\n return obj[path[last]] === undefined ? fallback : obj[path[last]]\n}\n\nexport function deepEqual (a: any, b: any): boolean {\n if (a === b) return true\n\n if (\n a instanceof Date &&\n b instanceof Date &&\n a.getTime() !== b.getTime()\n ) {\n // If the values are Date, compare them as timestamps\n return false\n }\n\n if (a !== Object(a) || b !== Object(b)) {\n // If the values aren't objects, they were already checked for equality\n return false\n }\n\n const props = Object.keys(a)\n\n if (props.length !== Object.keys(b).length) {\n // Different number of props, don't bother to check\n return false\n }\n\n return props.every(p => deepEqual(a[p], b[p]))\n}\n\nexport function getObjectValueByPath (obj: any, path: string, fallback?: any): any {\n // credit: http://stackoverflow.com/questions/6491463/accessing-nested-javascript-objects-with-string-key#comment55278413_6491621\n if (obj == null || !path || typeof path !== 'string') return fallback\n if (obj[path] !== undefined) return obj[path]\n path = path.replace(/\\[(\\w+)\\]/g, '.$1') // convert indexes to properties\n path = path.replace(/^\\./, '') // strip a leading dot\n return getNestedValue(obj, path.split('.'), fallback)\n}\n\nexport type SelectItemKey = string | (string | number)[] | ((item: Record<string, any>, fallback?: any) => any)\n\nexport function getPropertyFromItem (\n item: any,\n property: SelectItemKey,\n fallback?: any\n): any {\n if (property == null) return item === undefined ? fallback : item\n\n if (item !== Object(item)) return fallback === undefined ? item : fallback\n\n if (typeof property === 'string') return getObjectValueByPath(item, property, fallback)\n\n if (Array.isArray(property)) return getNestedValue(item, property, fallback)\n\n if (typeof property !== 'function') return fallback\n\n const value = property(item, fallback)\n\n return typeof value === 'undefined' ? fallback : value\n}\n\nexport function createRange (length: number, start = 0): number[] {\n return Array.from({ length }, (v, k) => start + k)\n}\n\nexport function getZIndex (el?: Element | null): number {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return 0\n\n const index = +window.getComputedStyle(el).getPropertyValue('z-index')\n\n if (!index) return getZIndex(el.parentNode as Element)\n return index\n}\n\nconst tagsToReplace: Record<string, string> = {\n '&': '&',\n '<': '<',\n '>': '>',\n}\n\nexport function escapeHTML (str: string): string {\n return str.replace(/[&<>]/g, tag => tagsToReplace[tag] || tag)\n}\n\nexport function filterObjectOnKeys<T, K extends keyof T> (obj: T, keys: K[]): { [N in K]: T[N] } {\n const filtered = {} as { [N in K]: T[N] }\n\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i]\n if (typeof obj[key] !== 'undefined') {\n filtered[key] = obj[key]\n }\n }\n\n return filtered\n}\n\nexport function convertToUnit (str: number, unit?: string): string\nexport function convertToUnit (str: string | number | null | undefined, unit?: string): string | undefined\nexport function convertToUnit (str: string | number | null | undefined, unit = 'px'): string | undefined {\n if (str == null || str === '') {\n return undefined\n } else if (isNaN(+str!)) {\n return String(str)\n } else if (!isFinite(+str!)) {\n return undefined\n } else {\n return `${Number(str)}${unit}`\n }\n}\n\nexport function isObject (obj: any): obj is object {\n return obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n}\n\nexport function isComponentInstance (obj: any): obj is ComponentPublicInstance {\n return obj?.$el\n}\n\n// KeyboardEvent.keyCode aliases\nexport const keyCodes = Object.freeze({\n enter: 13,\n tab: 9,\n delete: 46,\n esc: 27,\n space: 32,\n up: 38,\n down: 40,\n left: 37,\n right: 39,\n end: 35,\n home: 36,\n del: 46,\n backspace: 8,\n insert: 45,\n pageup: 33,\n pagedown: 34,\n shift: 16,\n})\n\nexport const keyValues = Object.freeze({\n enter: 'Enter',\n tab: 'Tab',\n delete: 'Delete',\n esc: 'Escape',\n space: 'Space',\n up: 'ArrowUp',\n down: 'ArrowDown',\n left: 'ArrowLeft',\n right: 'ArrowRight',\n end: 'End',\n home: 'Home',\n del: 'Delete',\n backspace: 'Backspace',\n insert: 'Insert',\n pageup: 'PageUp',\n pagedown: 'PageDown',\n shift: 'Shift',\n})\n\nexport function keys<O> (o: O) {\n return Object.keys(o) as (keyof O)[]\n}\n\ntype MaybePick<\n T extends object,\n U extends Extract<keyof T, string>\n> = Record<string, unknown> extends T ? Partial<Pick<T, U>> : Pick<T, U>\n\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: U[]): [yes: MaybePick<T, U>, no: Omit<T, U>]\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>]\nexport function pick<\n T extends object,\n U extends Extract<keyof T, string>\n> (obj: T, paths: (U | RegExp)[]): [yes: Partial<T>, no: Partial<T>] {\n const found = Object.create(null)\n const rest = Object.create(null)\n\n for (const key in obj) {\n if (\n paths.some(path => path instanceof RegExp\n ? path.test(key)\n : path === key\n )\n ) {\n found[key] = obj[key]\n } else {\n rest[key] = obj[key]\n }\n }\n\n return [found, rest]\n}\n\n/**\n * Filter attributes that should be applied to\n * the root element of a an input component. Remaining\n * attributes should be passed to the <input> element inside.\n */\nexport function filterInputAttrs (attrs: Record<string, unknown>) {\n return pick(attrs, ['class', 'style', 'id', /^data-/])\n}\n\n/**\n * Returns the set difference of B and A, i.e. the set of elements in B but not in A\n */\nexport function arrayDiff (a: any[], b: any[]): any[] {\n const diff: any[] = []\n for (let i = 0; i < b.length; i++) {\n if (!a.includes(b[i])) diff.push(b[i])\n }\n return diff\n}\n\ninterface ItemGroup<T> {\n name: string\n items: T[]\n}\n\nexport function groupItems<T extends any = any> (\n items: T[],\n groupBy: string[],\n groupDesc: boolean[]\n): ItemGroup<T>[] {\n const key = groupBy[0]\n const groups: ItemGroup<T>[] = []\n let current\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n const val = getObjectValueByPath(item, key, null)\n if (current !== val) {\n current = val\n groups.push({\n name: val ?? '',\n items: [],\n })\n }\n groups[groups.length - 1].items.push(item)\n }\n return groups\n}\n\nexport function wrapInArray<T> (v: T | T[] | null | undefined): T[] {\n return v == null\n ? []\n : Array.isArray(v)\n ? v : [v]\n}\n\ntype DataTableCompareFunction<T = any> = (a: T, b: T) => number\nexport function sortItems<T extends any, K extends keyof T> (\n items: T[],\n sortBy: string[],\n sortDesc: boolean[],\n locale: string,\n customSorters?: Record<K, DataTableCompareFunction<T[K]>>\n): T[] {\n if (sortBy === null || !sortBy.length) return items\n const stringCollator = new Intl.Collator(locale, { sensitivity: 'accent', usage: 'sort' })\n\n return items.sort((a, b) => {\n for (let i = 0; i < sortBy.length; i++) {\n const sortKey = sortBy[i]\n\n let sortA = getObjectValueByPath(a, sortKey)\n let sortB = getObjectValueByPath(b, sortKey)\n\n if (sortDesc[i]) {\n [sortA, sortB] = [sortB, sortA]\n }\n\n if (customSorters?.[sortKey as K]) {\n const customResult = customSorters[sortKey as K](sortA, sortB)\n\n if (!customResult) continue\n\n return customResult\n }\n\n // Check if both cannot be evaluated\n if (sortA === null && sortB === null) {\n continue\n }\n\n // Dates should be compared numerically\n if (sortA instanceof Date && sortB instanceof Date) {\n return sortA.getTime() - sortB.getTime()\n }\n\n [sortA, sortB] = [sortA, sortB].map(s => (s || '').toString().toLocaleLowerCase())\n\n if (sortA !== sortB) {\n if (!isNaN(sortA) && !isNaN(sortB)) return Number(sortA) - Number(sortB)\n return stringCollator.compare(sortA, sortB)\n }\n }\n\n return 0\n })\n}\n\nexport function defaultFilter (value: any, search: string | null, item: any) {\n return value != null &&\n search != null &&\n typeof value !== 'boolean' &&\n value.toString().toLocaleLowerCase().indexOf(search.toLocaleLowerCase()) !== -1\n}\n\nexport function searchItems<T extends any = any> (items: T[], search: string): T[] {\n if (!search) return items\n search = search.toString().toLowerCase()\n if (search.trim() === '') return items\n\n return items.filter((item: any) => Object.keys(item).some(key => defaultFilter(getObjectValueByPath(item, key), search, item)))\n}\n\nexport function debounce (fn: Function, delay: number) {\n let timeoutId = 0 as any\n return (...args: any[]) => {\n clearTimeout(timeoutId)\n timeoutId = setTimeout(() => fn(...args), delay)\n }\n}\n\nexport function throttle<T extends (...args: any[]) => any> (fn: T, limit: number) {\n let throttling = false\n return (...args: Parameters<T>): void | ReturnType<T> => {\n if (!throttling) {\n throttling = true\n setTimeout(() => throttling = false, limit)\n return fn(...args)\n }\n }\n}\n\ntype Writable<T> = {\n -readonly [P in keyof T]: T[P]\n}\n\n/**\n * Filters slots to only those starting with `prefix`, removing the prefix\n */\nexport function getPrefixedSlots (prefix: string, slots: Slots): Slots {\n return Object.keys(slots)\n .filter(k => k.startsWith(prefix))\n .reduce<Writable<Slots>>((obj, k) => {\n obj[k.replace(prefix, '')] = slots[k]\n return obj\n }, {})\n}\n\nexport function clamp (value: number, min = 0, max = 1) {\n return Math.max(min, Math.min(max, value))\n}\n\nexport function padEnd (str: string, length: number, char = '0') {\n return str + char.repeat(Math.max(0, length - str.length))\n}\n\nexport function chunk (str: string, size = 1) {\n const chunked: string[] = []\n let index = 0\n while (index < str.length) {\n chunked.push(str.substr(index, size))\n index += size\n }\n return chunked\n}\n\nexport function humanReadableFileSize (bytes: number, base: 1000 | 1024 = 1000): string {\n if (bytes < base) {\n return `${bytes} B`\n }\n\n const prefix = base === 1024 ? ['Ki', 'Mi', 'Gi'] : ['k', 'M', 'G']\n let unit = -1\n while (Math.abs(bytes) >= base && unit < prefix.length - 1) {\n bytes /= base\n ++unit\n }\n return `${bytes.toFixed(1)} ${prefix[unit]}B`\n}\n\nexport function camelizeObjectKeys (obj: Record<string, any> | null | undefined) {\n if (!obj) return {}\n\n return Object.keys(obj).reduce((o: any, key: string) => {\n o[camelize(key)] = obj[key]\n return o\n }, {})\n}\n\nexport function mergeDeep (\n source: Record<string, any> = {},\n target: Record<string, any> = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[],\n) {\n const out: Record<string, any> = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (\n isObject(sourceProperty) &&\n isObject(targetProperty)\n ) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nexport function fillArray<T> (length: number, obj: T) {\n return Array(length).fill(obj)\n}\n\nexport function getUid () {\n return getUid._uid++\n}\ngetUid._uid = 0\n\nexport function flattenFragments (nodes: VNode[]): VNode[] {\n return nodes.map(node => {\n if (node.type === Fragment) {\n return flattenFragments(node.children as VNode[])\n } else {\n return node\n }\n }).flat()\n}\n\nexport const randomHexColor = () => {\n const n = (Math.random() * 0xfffff * 1000000).toString(16)\n return '#' + n.slice(0, 6)\n}\n\nexport function toKebabCase (str = '') {\n return str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\n}\n\nexport type MaybeRef<T> = T | Ref<T>\n\nexport function findChildren (vnode?: VNodeChild): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') {\n return []\n }\n\n if (Array.isArray(vnode)) {\n return vnode\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children\n .map(child => findChildren(child))\n .filter(v => v)\n .flat(1)\n } else if (vnode.component) {\n return [vnode.component, ...findChildren(vnode.component?.subTree)]\n .filter(v => v)\n .flat(1)\n }\n\n return []\n}\n\nexport function findChildrenWithProvide (\n key: InjectionKey<any> | symbol,\n vnode?: VNodeChild,\n): ComponentInternalInstance[] {\n if (!vnode || typeof vnode !== 'object') return []\n\n if (Array.isArray(vnode)) {\n return vnode.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (Array.isArray(vnode.children)) {\n return vnode.children.map(child => findChildrenWithProvide(key, child)).flat(1)\n } else if (vnode.component) {\n if (Object.getOwnPropertySymbols(vnode.component.provides).includes(key as symbol)) {\n return [vnode.component]\n } else if (vnode.component.subTree) {\n return findChildrenWithProvide(key, vnode.component.subTree).flat(1)\n }\n }\n\n return []\n}\n\nexport class CircularBuffer<T = never> {\n readonly #arr: Array<T> = []\n #pointer = 0\n\n constructor (public readonly size: number) {}\n\n push (val: T) {\n this.#arr[this.#pointer] = val\n this.#pointer = (this.#pointer + 1) % this.size\n }\n\n values (): T[] {\n return this.#arr.slice(this.#pointer).concat(this.#arr.slice(0, this.#pointer))\n }\n}\n\nexport type UnionToIntersection<U> =\n (U extends any ? (k: U) => void : never) extends ((k: infer I) => void) ? I : never\n\nexport function getEventCoordinates (e: MouseEvent | TouchEvent) {\n if ('touches' in e) {\n return { clientX: e.touches[0].clientX, clientY: e.touches[0].clientY }\n }\n\n return { clientX: e.clientX, clientY: e.clientY }\n}\n","import type { ColorInt, XYZ } from '../colorUtils'\nimport { clamp } from '../../util/helpers'\n\n// For converting XYZ to sRGB\nconst srgbForwardMatrix = [\n [3.2406, -1.5372, -0.4986],\n [-0.9689, 1.8758, 0.0415],\n [0.0557, -0.2040, 1.0570],\n]\n\n// Forward gamma adjust\nconst srgbForwardTransform = (C: number): number => (\n C <= 0.0031308\n ? C * 12.92\n : 1.055 * C ** (1 / 2.4) - 0.055\n)\n\n// For converting sRGB to XYZ\nconst srgbReverseMatrix = [\n [0.4124, 0.3576, 0.1805],\n [0.2126, 0.7152, 0.0722],\n [0.0193, 0.1192, 0.9505],\n]\n\n// Reverse gamma adjust\nconst srgbReverseTransform = (C: number): number => (\n C <= 0.04045\n ? C / 12.92\n : ((C + 0.055) / 1.055) ** 2.4\n)\n\nexport function fromXYZ (xyz: XYZ): ColorInt {\n const rgb = Array(3)\n const transform = srgbForwardTransform\n const matrix = srgbForwardMatrix\n\n // Matrix transform, then gamma adjustment\n for (let i = 0; i < 3; ++i) {\n rgb[i] = Math.round(clamp(transform(\n matrix[i][0] * xyz[0] +\n matrix[i][1] * xyz[1] +\n matrix[i][2] * xyz[2]\n )) * 255)\n }\n\n // Rescale back to [0, 255]\n return (rgb[0] << 16) + (rgb[1] << 8) + (rgb[2] << 0)\n}\n\nexport function toXYZ (rgb: ColorInt): XYZ {\n const xyz: XYZ = [0, 0, 0]\n const transform = srgbReverseTransform\n const matrix = srgbReverseMatrix\n\n // Rescale from [0, 255] to [0, 1] then adjust sRGB gamma to linear RGB\n const r = transform((rgb >> 16 & 0xff) / 255)\n const g = transform((rgb >> 8 & 0xff) / 255)\n const b = transform((rgb >> 0 & 0xff) / 255)\n\n // Matrix color space transform\n for (let i = 0; i < 3; ++i) {\n xyz[i] = matrix[i][0] * r + matrix[i][1] * g + matrix[i][2] * b\n }\n\n return xyz\n}\n","import type { LAB, XYZ } from '../colorUtils'\n\nconst delta = 0.20689655172413793 // 6÷29\n\nconst cielabForwardTransform = (t: number): number => (\n t > delta ** 3\n ? Math.cbrt(t)\n : (t / (3 * delta ** 2)) + 4 / 29\n)\n\nconst cielabReverseTransform = (t: number): number => (\n t > delta\n ? t ** 3\n : (3 * delta ** 2) * (t - 4 / 29)\n)\n\nexport function fromXYZ (xyz: XYZ): LAB {\n const transform = cielabForwardTransform\n const transformedY = transform(xyz[1])\n\n return [\n 116 * transformedY - 16,\n 500 * (transform(xyz[0] / 0.95047) - transformedY),\n 200 * (transformedY - transform(xyz[2] / 1.08883)),\n ]\n}\n\nexport function toXYZ (lab: LAB): XYZ {\n const transform = cielabReverseTransform\n const Ln = (lab[0] + 16) / 116\n return [\n transform(Ln + lab[1] / 500) * 0.95047,\n transform(Ln),\n transform(Ln - lab[2] / 200) * 1.08883,\n ]\n}\n","// Utilities\nimport { consoleWarn } from './console'\nimport { chunk, padEnd } from './helpers'\nimport * as sRGB from '@/util/color/transformSRGB'\nimport * as CIELAB from '@/util/color/transformCIELAB'\n\n// Types\nimport type { Colors } from '@/composables/theme'\n\nexport type ColorInt = number\nexport type XYZ = [number, number, number]\nexport type LAB = [number, number, number]\nexport type HSV = { h: number, s: number, v: number }\nexport type HSVA = HSV & { a: number }\nexport type RGB = { r: number, g: number, b: number }\nexport type RGBA = RGB & { a: number }\nexport type HSL = { h: number, s: number, l: number }\nexport type HSLA = HSL & { a: number }\nexport type Hex = string\nexport type Hexa = string\nexport type Color = string | number | {}\n\nexport function isCssColor (color?: string | null | false): boolean {\n return !!color && /^(#|var\\(--|(rgb|hsl)a?\\()/.test(color)\n}\n\nexport function colorToInt (color: Color): ColorInt {\n let rgb\n\n if (typeof color === 'number') {\n rgb = color\n } else if (typeof color === 'string') {\n let c = color.startsWith('#') ? color.substring(1) : color\n if (c.length === 3) {\n c = c.split('').map(char => char + char).join('')\n }\n if (c.length !== 6) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n }\n rgb = parseInt(c, 16)\n } else {\n throw new TypeError(`Colors can only be numbers or strings, recieved ${color == null ? color : color.constructor.name} instead`)\n }\n\n if (rgb < 0) {\n consoleWarn(`Colors cannot be negative: '${color}'`)\n rgb = 0\n } else if (rgb > 0xffffff || isNaN(rgb)) {\n consoleWarn(`'${color}' is not a valid rgb color`)\n rgb = 0xffffff\n }\n\n return rgb\n}\n\nexport function classToHex (\n color: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n): string {\n const [colorName, colorModifier] = color\n .toString().trim().replace('-', '').split(' ', 2) as (string | undefined)[]\n\n let hexColor = ''\n if (colorName && colorName in colors) {\n if (colorModifier && colorModifier in colors[colorName]) {\n hexColor = colors[colorName][colorModifier]\n } else if ('base' in colors[colorName]) {\n hexColor = colors[colorName].base\n }\n } else if (colorName && colorName in currentTheme) {\n hexColor = currentTheme[colorName] as string\n }\n\n return hexColor\n}\n\nexport function intToHex (color: ColorInt): string {\n let hexColor: string = color.toString(16)\n\n if (hexColor.length < 6) hexColor = '0'.repeat(6 - hexColor.length) + hexColor\n\n return '#' + hexColor\n}\n\nexport function colorToHex (color: Color): string {\n return intToHex(colorToInt(color))\n}\n\n/**\n * Converts HSVA to RGBA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color HSVA color as an array [0-360, 0-1, 0-1, 0-1]\n */\nexport function HSVAtoRGBA (hsva: HSVA): RGBA {\n const { h, s, v, a } = hsva\n const f = (n: number) => {\n const k = (n + (h / 60)) % 6\n return v - v * s * Math.max(Math.min(k, 4 - k, 1), 0)\n }\n\n const rgb = [f(5), f(3), f(1)].map(v => Math.round(v * 255))\n\n return { r: rgb[0], g: rgb[1], b: rgb[2], a }\n}\n\n/**\n * Converts RGBA to HSVA. Based on formula from https://en.wikipedia.org/wiki/HSL_and_HSV\n *\n * @param color RGBA color as an array [0-255, 0-255, 0-255, 0-1]\n */\nexport function RGBAtoHSVA (rgba: RGBA): HSVA {\n if (!rgba) return { h: 0, s: 1, v: 1, a: 1 }\n\n const r = rgba.r / 255\n const g = rgba.g / 255\n const b = rgba.b / 255\n const max = Math.max(r, g, b)\n const min = Math.min(r, g, b)\n\n let h = 0\n\n if (max !== min) {\n if (max === r) {\n h = 60 * (0 + ((g - b) / (max - min)))\n } else if (max === g) {\n h = 60 * (2 + ((b - r) / (max - min)))\n } else if (max === b) {\n h = 60 * (4 + ((r - g) / (max - min)))\n }\n }\n\n if (h < 0) h = h + 360\n\n const s = max === 0 ? 0 : (max - min) / max\n const hsv = [h, s, max]\n\n return { h: hsv[0], s: hsv[1], v: hsv[2], a: rgba.a }\n}\n\nexport function HSVAtoHSLA (hsva: HSVA): HSLA {\n const { h, s, v, a } = hsva\n\n const l = v - (v * s / 2)\n\n const sprime = l === 1 || l === 0 ? 0 : (v - l) / Math.min(l, 1 - l)\n\n return { h, s: sprime, l, a }\n}\n\nexport function HSLAtoHSVA (hsl: HSLA): HSVA {\n const { h, s, l, a } = hsl\n\n const v = l + s * Math.min(l, 1 - l)\n\n const sprime = v === 0 ? 0 : 2 - (2 * l / v)\n\n return { h, s: sprime, v, a }\n}\n\nexport function RGBAtoCSS (rgba: RGBA): string {\n return `rgba(${rgba.r}, ${rgba.g}, ${rgba.b}, ${rgba.a})`\n}\n\nexport function HSVAtoCSS (hsva: HSVA): string {\n return RGBAtoCSS(HSVAtoRGBA(hsva))\n}\n\nexport function RGBtoCSS (rgba: RGBA): string {\n return RGBAtoCSS({ ...rgba, a: 1 })\n}\n\nexport function RGBAtoHex (rgba: RGBA): Hex {\n const toHex = (v: number) => {\n const h = Math.round(v).toString(16)\n return ('00'.substr(0, 2 - h.length) + h).toUpperCase()\n }\n\n return `#${[\n toHex(rgba.r),\n toHex(rgba.g),\n toHex(rgba.b),\n toHex(Math.round(rgba.a * 255)),\n ].join('')}`\n}\n\nexport function HexToRGBA (hex: Hex): RGBA {\n const rgba = chunk(hex.slice(1), 2).map((c: string) => parseInt(c, 16))\n\n return {\n r: rgba[0],\n g: rgba[1],\n b: rgba[2],\n a: Math.round((rgba[3] / 255) * 100) / 100,\n }\n}\n\nexport function HexToHSVA (hex: Hex): HSVA {\n const rgb = HexToRGBA(hex)\n return RGBAtoHSVA(rgb)\n}\n\nexport function HSVAtoHex (hsva: HSVA): Hex {\n return RGBAtoHex(HSVAtoRGBA(hsva))\n}\n\nexport function parseHex (hex: string): Hex {\n if (hex.startsWith('#')) {\n hex = hex.slice(1)\n }\n\n hex = hex.replace(/([^0-9a-f])/gi, 'F')\n\n if (hex.length === 3 || hex.length === 4) {\n hex = hex.split('').map(x => x + x).join('')\n }\n\n if (hex.length === 6) {\n hex = padEnd(hex, 8, 'F')\n } else {\n hex = padEnd(padEnd(hex, 6), 8, 'F')\n }\n\n return `#${hex}`.toUpperCase().substr(0, 9)\n}\n\nexport function parseGradient (\n gradient: string,\n colors: Record<string, Record<string, string>>,\n currentTheme: Partial<Colors>,\n) {\n return gradient.replace(/([a-z]+(\\s[a-z]+-[1-5])?)(?=$|,)/gi, x => {\n return classToHex(x, colors, currentTheme) || x\n }).replace(/(rgba\\()#[0-9a-f]+(?=,)/gi, x => {\n return 'rgba(' + Object.values(HexToRGBA(parseHex(x.replace(/rgba\\(/, '')))).slice(0, 3).join(',')\n })\n}\n\nexport function RGBtoInt (rgba: RGBA): ColorInt {\n return (rgba.r << 16) + (rgba.g << 8) + rgba.b\n}\n\nexport function colorToRGB (color: string) {\n const int = colorToInt(color)\n\n return {\n r: (int & 0xFF0000) >> 16,\n g: (int & 0xFF00) >> 8,\n b: (int & 0xFF),\n }\n}\n\nexport function lighten (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n // TODO: why this false positive?\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n lab[0] = lab[0] + amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\nexport function darken (value: ColorInt, amount: number): ColorInt {\n const lab = CIELAB.fromXYZ(sRGB.toXYZ(value))\n lab[0] = lab[0] - amount * 10\n\n return sRGB.fromXYZ(CIELAB.toXYZ(lab))\n}\n\n/**\n * Calculate the relative luminance of a given color\n * @see https://www.w3.org/TR/WCAG20/#relativeluminancedef\n */\nexport function getLuma (color: Color) {\n const rgb = colorToInt(color)\n\n return sRGB.toXYZ(rgb)[1]\n}\n\n/**\n * Returns the contrast ratio (1-21) between two colors.\n * @see https://www.w3.org/TR/WCAG20/#contrast-ratiodef\n */\nexport function getContrast (first: Color, second: Color) {\n const l1 = getLuma(first)\n const l2 = getLuma(second)\n\n const light = Math.max(l1, l2)\n const dark = Math.min(l1, l2)\n\n return (light + 0.05) / (dark + 0.05)\n}\n","// Utilities\nimport { computed, inject, provide, ref, unref } from 'vue'\nimport { mergeDeep } from '@/util/helpers'\n\n// Types\nimport type { ComputedRef, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface DefaultsInstance {\n [key: string]: undefined | Record<string, unknown>\n global?: Record<string, unknown>\n}\n\nexport type DefaultsOptions = Partial<DefaultsInstance>\n\nexport const DefaultsSymbol: InjectionKey<Ref<DefaultsInstance>> = Symbol.for('vuetify:defaults')\n\nexport function createDefaults (options?: DefaultsInstance): Ref<DefaultsInstance> {\n return ref(options ?? {})\n}\n\nexport function useDefaults () {\n const defaults = inject(DefaultsSymbol)\n\n if (!defaults) throw new Error('[Vuetify] Could not find defaults instance')\n\n return defaults\n}\n\nexport function provideDefaults (\n defaults?: MaybeRef<DefaultsInstance | undefined>,\n options?: {\n reset?: MaybeRef<number | string | undefined>\n root?: MaybeRef<boolean | undefined>\n scoped?: MaybeRef<boolean | undefined>\n }\n) {\n const injectedDefaults = useDefaults()\n const providedDefaults = ref(defaults)\n\n const newDefaults = computed(() => {\n const scoped = unref(options?.scoped)\n const reset = unref(options?.reset)\n const root = unref(options?.root)\n\n let properties = mergeDeep(providedDefaults.value, { prev: injectedDefaults.value })\n\n if (scoped) return properties\n\n if (reset || root) {\n const len = Number(reset || Infinity)\n\n for (let i = 0; i <= len; i++) {\n if (!properties.prev) break\n\n properties = properties.prev\n }\n\n return properties\n }\n\n return mergeDeep(properties.prev, properties)\n }) as ComputedRef<DefaultsInstance>\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n","// Utils\nimport {\n defineComponent as _defineComponent,\n effectScope,\n getCurrentInstance,\n shallowReactive,\n shallowRef,\n toRaw,\n watch,\n watchEffect,\n} from 'vue'\nimport { consoleWarn } from '@/util/console'\nimport { toKebabCase } from '@/util/helpers'\nimport { provideDefaults, useDefaults } from '@/composables/defaults'\n\n// Types\nimport type {\n ComponentOptions,\n ComponentOptionsMixin,\n ComponentOptionsWithObjectProps,\n ComponentPropsOptions,\n ComputedOptions,\n DefineComponent,\n EffectScope,\n EmitsOptions,\n MethodOptions,\n VNode,\n VNodeChild,\n} from 'vue'\n\nfunction propIsDefined (vnode: VNode, prop: string) {\n return vnode.props?.hasOwnProperty(prop) ||\n vnode.props?.hasOwnProperty(toKebabCase(prop))\n}\n\nexport const defineComponent = (function defineComponent (options: ComponentOptions) {\n options._setup = options._setup ?? options.setup\n\n if (!options.name) {\n consoleWarn('The component is missing an explicit name, unable to generate default prop value')\n\n return options\n }\n\n if (options._setup) {\n options.props = options.props ?? {}\n options.props._as = String\n options.setup = function setup (props: Record<string, any>, ctx) {\n const vm = getCurrentInstance()!\n const defaults = useDefaults()\n\n const _subcomponentDefaults = shallowRef()\n const _props = shallowReactive({ ...toRaw(props) })\n watchEffect(() => {\n const globalDefaults = defaults.value.global\n const componentDefaults = defaults.value[props._as ?? options.name!]\n\n if (componentDefaults) {\n const subComponents = Object.entries(componentDefaults).filter(([key]) => key.startsWith('V'))\n if (subComponents.length) _subcomponentDefaults.value = Object.fromEntries(subComponents)\n }\n\n for (const prop of Object.keys(props)) {\n let newVal\n if (propIsDefined(vm.vnode, prop)) {\n newVal = props[prop]\n } else {\n newVal = componentDefaults?.[prop] ?? globalDefaults?.[prop] ?? props[prop]\n }\n if (_props[prop] !== newVal) {\n _props[prop] = newVal\n }\n }\n })\n\n const setupBindings = options._setup(_props, ctx)\n\n let scope: EffectScope\n watch(_subcomponentDefaults, (val, oldVal) => {\n if (!val && scope) scope.stop()\n else if (val && !oldVal) {\n scope = effectScope()\n scope.run(() => {\n provideDefaults(val)\n })\n }\n }, { immediate: true })\n\n return setupBindings\n }\n }\n\n return options\n}) as unknown as typeof _defineComponent\n\ntype ToListeners<T extends string | number | symbol> = { [K in T]: K extends `on${infer U}` ? Uncapitalize<U> : K }[T]\nexport type SlotsToProps<T extends Record<string, Slot>> = {\n $children: () => (T['default'] | VNodeChild | { [K in keyof T]?: T[K] })\n 'v-slots': new () => { [K in keyof T]?: T[K] | false }\n}/* & { // TODO: individual slots are never converted from the constructor type\n [K in keyof T as `v-slot:${K & string}`]?: new () => (T[K] | false)\n} */\n\ntype Slot<T extends any[] = any[]> = (...args: T) => VNodeChild\nexport type MakeSlots<T extends Record<string, any[]>> = {\n [K in keyof T]?: Slot<T[K]>\n}\n\nexport function genericComponent<T extends (new () => {\n $slots?: Record<string, Slot>\n})> (exposeDefaults = true): <\n PropsOptions extends Readonly<ComponentPropsOptions>,\n RawBindings,\n D,\n C extends ComputedOptions = {},\n M extends MethodOptions = {},\n Mixin extends ComponentOptionsMixin = ComponentOptionsMixin,\n Extends extends ComponentOptionsMixin = ComponentOptionsMixin,\n E extends EmitsOptions = Record<string, any>,\n EE extends string = string,\n I = InstanceType<T>,\n Base = DefineComponent<\n (I extends Record<'$props', any> ? Omit<PropsOptions, keyof I['$props']> : PropsOptions) & (\n I extends Record<'$slots', any>\n ? SlotsToProps<I['$slots']>\n : {}\n ),\n RawBindings,\n D,\n C,\n M,\n Mixin,\n Extends,\n E extends any[] ? E : I extends Record<'$props', any> ? Omit<E, ToListeners<keyof I['$props']>> : E,\n EE\n >\n>(options: ComponentOptionsWithObjectProps<PropsOptions, RawBindings, D, C, M, Mixin, Extends, E, EE>) => Base & T {\n return options => (exposeDefaults ? defineComponent : _defineComponent)(options) as any\n}\n","import { camelize, capitalize, h } from 'vue'\nimport { defineComponent } from './defineComponent'\n\nexport function createSimpleFunctional (\n klass: string,\n tag = 'div',\n name?: string\n) {\n return defineComponent({\n name: name ?? capitalize(camelize(klass.replace(/__/g, '-'))),\n\n props: {\n tag: {\n type: String,\n default: tag,\n },\n },\n\n setup (props, { slots }) {\n return () => h(props.tag, {\n class: klass,\n }, slots.default?.())\n },\n })\n}\n","/**\n * Returns:\n * - 'null' if the node is not attached to the DOM\n * - the root node (HTMLDocument | ShadowRoot) otherwise\n */\nexport function attachedRoot (node: Node): null | HTMLDocument | ShadowRoot {\n /* istanbul ignore next */\n if (typeof node.getRootNode !== 'function') {\n // Shadow DOM not supported (IE11), lets find the root of this node\n while (node.parentNode) node = node.parentNode\n\n // The root parent is the document if the node is attached to the DOM\n if (node !== document) return null\n\n return document\n }\n\n const root = node.getRootNode()\n\n // The composed root node is the document if the node is attached to the DOM\n if (root !== document && root.getRootNode({ composed: true }) !== document) return null\n\n return root as HTMLDocument | ShadowRoot\n}\n","export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)'\nexport const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)' // Entering\nexport const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)' // Leaving\n","// Utilities\nimport { getCurrentInstance as _getCurrentInstance } from 'vue'\nimport { toKebabCase } from '@/util/helpers'\n\nexport function getCurrentInstance (name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Vuetify] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nexport function getCurrentInstanceName (name = 'composables') {\n return toKebabCase(getCurrentInstance(name).type?.name)\n}\n","export function getScrollParent (el?: HTMLElement) {\n while (el) {\n if (hasScrollbar(el)) return el\n el = el.parentElement!\n }\n\n return document.scrollingElement as HTMLElement\n}\n\nexport function getScrollParents (el?: HTMLElement) {\n const elements: HTMLElement[] = []\n while (el) {\n if (hasScrollbar(el)) elements.push(el)\n el = el.parentElement!\n }\n\n return elements\n}\n\nexport function hasScrollbar (el?: Element | null) {\n if (!el || el.nodeType !== Node.ELEMENT_NODE) return false\n\n const style = window.getComputedStyle(el)\n return style.overflowY === 'scroll' || (style.overflowY === 'auto' && el.scrollHeight > el.clientHeight)\n}\n","export const IS_NODE = typeof process !== 'undefined'\nexport const IN_BROWSER = typeof window !== 'undefined'\nexport const IS_DEBUG = IS_NODE && process.env.DEBUG === 'true'\nexport const IS_PROD = IS_NODE && process.env.NODE_ENV === 'production'\nexport const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window\nexport const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0)\nexport const SUPPORTS_FOCUS_VISIBLE = IN_BROWSER && CSS.supports('selector(:focus-visible)')\n","import type { ComponentObjectPropsOptions, Prop, PropType } from 'vue'\n\n/**\n * Creates a factory function for props definitions.\n * This is used to define props in a composable then override\n * default values in an implementing component.\n *\n * @example Simplified signature\n * (props: Props) => (defaults?: Record<keyof props, any>) => Props\n *\n * @example Usage\n * const makeProps = propsFactory({\n * foo: String,\n * })\n *\n * defineComponent({\n * props: {\n * ...makeProps({\n * foo: 'a',\n * }),\n * },\n * setup (props) {\n * // would be \"string | undefined\", now \"string\" because a default has been provided\n * props.foo\n * },\n * }\n */\n\nexport function propsFactory<\n PropsOptions extends ComponentObjectPropsOptions\n> (props: PropsOptions, source?: string) {\n return <Defaults extends PartialKeys<PropsOptions> = {}>(\n defaults?: Defaults\n ): AppendDefault<PropsOptions, Defaults> => {\n return Object.keys(props).reduce<any>((obj, prop) => {\n const isObjectDefinition = typeof props[prop] === 'object' && props[prop] != null && !Array.isArray(props[prop])\n const definition = isObjectDefinition ? props[prop] : { type: props[prop] }\n\n if (defaults && prop in defaults) {\n obj[prop] = {\n ...definition,\n default: defaults[prop],\n }\n } else {\n obj[prop] = definition\n }\n\n if (source) {\n obj[prop].source = source\n }\n\n return obj\n }, {})\n }\n}\n\ntype AppendDefault<T extends ComponentObjectPropsOptions, D extends PartialKeys<T>> = {\n [P in keyof T]-?: unknown extends D[P]\n ? T[P]\n : T[P] extends Record<string, unknown>\n ? Omit<T[P], 'type' | 'default'> & {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n : {\n type: PropType<MergeDefault<T[P], D[P]>>\n default: MergeDefault<T[P], D[P]>\n }\n}\n\ntype MergeDefault<T, D> = unknown extends D ? InferPropType<T> : (NonNullable<InferPropType<T>> | D)\n\n/**\n * Like `Partial<T>` but doesn't care what the value is\n */\ntype PartialKeys<T> = { [P in keyof T]?: unknown }\n\n// Copied from Vue\ntype InferPropType<T> = T extends null\n ? any // null & true would fail to infer\n : T extends { type: null | true }\n ? any // As TS issue https://github.com/Microsoft/TypeScript/issues/14829 // somehow `ObjectConstructor` when inferred from { (): T } becomes `any` // `BooleanConstructor` when inferred from PropConstructor(with PropMethod) becomes `Boolean`\n : T extends ObjectConstructor | { type: ObjectConstructor }\n ? Record<string, any>\n : T extends BooleanConstructor | { type: BooleanConstructor }\n ? boolean\n : T extends Prop<infer V, infer D> ? (unknown extends V ? D : V) : T\n","// Utilities\nimport { getCurrentInstance } from './getCurrentInstance'\n\n// Types\nimport type { VNode } from 'vue'\n\nexport function useRender (render: () => VNode): void {\n const vm = getCurrentInstance('useRender') as any\n vm.render = render\n}\n","/**\n * WCAG 3.0 APCA perceptual contrast algorithm from https://github.com/Myndex/SAPC-APCA\n * @licence https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n * @see https://www.w3.org/WAI/GL/task-forces/silver/wiki/Visual_Contrast_of_Text_Subgroup\n */\n\n// MAGICAL NUMBERS\n\n// sRGB Conversion to Relative Luminance (Y)\n\n// Transfer Curve (aka \"Gamma\") for sRGB linearization\n// Simple power curve vs piecewise described in docs\n// Essentially, 2.4 best models actual display\n// characteristics in combination with the total method\nconst mainTRC = 2.4\n\nconst Rco = 0.2126729 // sRGB Red Coefficient (from matrix)\nconst Gco = 0.7151522 // sRGB Green Coefficient (from matrix)\nconst Bco = 0.0721750 // sRGB Blue Coefficient (from matrix)\n\n// For Finding Raw SAPC Contrast from Relative Luminance (Y)\n\n// Constants for SAPC Power Curve Exponents\n// One pair for normal text, and one for reverse\n// These are the \"beating heart\" of SAPC\nconst normBG = 0.55\nconst normTXT = 0.58\nconst revTXT = 0.57\nconst revBG = 0.62\n\n// For Clamping and Scaling Values\n\nconst blkThrs = 0.03 // Level that triggers the soft black clamp\nconst blkClmp = 1.45 // Exponent for the soft black clamp curve\nconst deltaYmin = 0.0005 // Lint trap\nconst scaleBoW = 1.25 // Scaling for dark text on light\nconst scaleWoB = 1.25 // Scaling for light text on dark\nconst loConThresh = 0.078 // Threshold for new simple offset scale\nconst loConFactor = 12.82051282051282 // = 1/0.078,\nconst loConOffset = 0.06 // The simple offset\nconst loClip = 0.001 // Output clip (lint trap #2)\n\nexport function APCAcontrast (text: number, background: number) {\n // Linearize sRGB\n const Rtxt = ((text >> 16 & 0xff) / 255) ** mainTRC\n const Gtxt = ((text >> 8 & 0xff) / 255) ** mainTRC\n const Btxt = ((text >> 0 & 0xff) / 255) ** mainTRC\n\n const Rbg = ((background >> 16 & 0xff) / 255) ** mainTRC\n const Gbg = ((background >> 8 & 0xff) / 255) ** mainTRC\n const Bbg = ((background >> 0 & 0xff) / 255) ** mainTRC\n\n // Apply the standard coefficients and sum to Y\n let Ytxt = (Rtxt * Rco) + (Gtxt * Gco) + (Btxt * Bco)\n let Ybg = (Rbg * Rco) + (Gbg * Gco) + (Bbg * Bco)\n\n // Soft clamp Y when near black.\n // Now clamping all colors to prevent crossover errors\n if (Ytxt <= blkThrs) Ytxt += (blkThrs - Ytxt) ** blkClmp\n if (Ybg <= blkThrs) Ybg += (blkThrs - Ybg) ** blkClmp\n\n // Return 0 Early for extremely low ∆Y (lint trap #1)\n if (Math.abs(Ybg - Ytxt) < deltaYmin) return 0.0\n\n // SAPC CONTRAST\n\n let outputContrast: number // For weighted final values\n if (Ybg > Ytxt) {\n // For normal polarity, black text on white\n // Calculate the SAPC contrast value and scale\n\n const SAPC = ((Ybg ** normBG) - (Ytxt ** normTXT)) * scaleBoW\n\n // NEW! SAPC SmoothScale™\n // Low Contrast Smooth Scale Rollout to prevent polarity reversal\n // and also a low clip for very low contrasts (lint trap #2)\n // much of this is for very low contrasts, less than 10\n // therefore for most reversing needs, only loConOffset is important\n outputContrast =\n (SAPC < loClip) ? 0.0\n : (SAPC < loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC - loConOffset\n } else {\n // For reverse polarity, light text on dark\n // WoB should always return negative value.\n\n const SAPC = ((Ybg ** revBG) - (Ytxt ** revTXT)) * scaleWoB\n\n outputContrast =\n (SAPC > -loClip) ? 0.0\n : (SAPC > -loConThresh) ? SAPC - SAPC * loConFactor * loConOffset\n : SAPC + loConOffset\n }\n\n return outputContrast * 100\n}\n","// Utilities\nimport { computed, inject, provide, ref, watch, watchEffect } from 'vue'\nimport {\n colorToInt,\n colorToRGB,\n createRange,\n darken,\n getCurrentInstance,\n getLuma,\n IN_BROWSER,\n intToHex,\n lighten,\n mergeDeep,\n propsFactory,\n} from '@/util'\nimport { APCAcontrast } from '@/util/color/APCA'\n\n// Types\nimport type { App, InjectionKey, Ref } from 'vue'\nimport type { HeadClient } from '@vueuse/head'\n\ntype DeepPartial<T> = T extends object ? { [P in keyof T]?: DeepPartial<T[P]> } : T\n\ninterface BaseColors {\n background: string\n surface: string\n primary: string\n secondary: string\n success: string\n warning: string\n error: string\n info: string\n}\n\ninterface OnColors {\n 'on-background': string\n 'on-surface': string\n 'on-primary': string\n 'on-secondary': string\n 'on-success': string\n 'on-warning': string\n 'on-error': string\n 'on-info': string\n}\n\nexport interface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record<string, string | number>\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeOptions {\n isDisabled: boolean\n defaultTheme: string\n variations: VariationsOptions\n themes: Record<string, InternalThemeDefinition>\n}\n\nexport type ThemeDefinition = DeepPartial<InternalThemeDefinition>\n\nexport type ThemeOptions = false | {\n defaultTheme?: string\n variations?: false | VariationsOptions\n themes?: Record<string, ThemeDefinition>\n}\n\nexport interface ThemeInstance {\n isDisabled: boolean\n themes: Ref<Record<string, InternalThemeDefinition>>\n current: Ref<string>\n themeClasses: Ref<string | undefined>\n setTheme: (key: string, theme: InternalThemeDefinition) => void\n getTheme: (key: string) => InternalThemeDefinition\n styles: Ref<string>\n}\n\nexport const ThemeSymbol: InjectionKey<ThemeInstance> = Symbol.for('vuetify:theme')\n\nexport const makeThemeProps = propsFactory({\n theme: String,\n}, 'theme')\n\nconst defaultThemeOptions: ThemeOptions = {\n defaultTheme: 'light',\n variations: { colors: [], lighten: 0, darken: 0 },\n themes: {\n light: {\n dark: false,\n colors: {\n background: '#FFFFFF',\n surface: '#FFFFFF',\n 'surface-variant': '#424242',\n 'on-surface-variant': '#EEEEEE',\n primary: '#6200EE',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC6',\n 'secondary-darken-1': '#018786',\n error: '#B00020',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#000000',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.04,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.12,\n 'dragged-opacity': 0.08,\n 'kbd-background-color': '#212529',\n 'kbd-color': '#FFFFFF',\n 'code-background-color': '#C2C2C2',\n },\n },\n dark: {\n dark: true,\n colors: {\n background: '#121212',\n surface: '#212121',\n 'surface-variant': '#BDBDBD',\n 'on-surface-variant': '#424242',\n primary: '#BB86FC',\n 'primary-darken-1': '#3700B3',\n secondary: '#03DAC5',\n 'secondary-darken-1': '#03DAC5',\n error: '#CF6679',\n info: '#2196F3',\n success: '#4CAF50',\n warning: '#FB8C00',\n },\n variables: {\n 'border-color': '#FFFFFF',\n 'border-opacity': 0.12,\n 'high-emphasis-opacity': 0.87,\n 'medium-emphasis-opacity': 0.60,\n 'disabled-opacity': 0.38,\n 'idle-opacity': 0.10,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'activated-opacity': 0.12,\n 'pressed-opacity': 0.16,\n 'dragged-opacity': 0.08,\n 'kbd-background-color': '#212529',\n 'kbd-color': '#FFFFFF',\n 'code-background-color': '#B7B7B7',\n },\n },\n },\n}\n\nconst parseThemeOptions = (options: ThemeOptions = defaultThemeOptions): InternalThemeOptions => {\n if (!options) return { ...defaultThemeOptions, isDisabled: true } as InternalThemeOptions\n\n const themes = Object.entries(options.themes ?? {}).reduce((obj, [key, theme]) => {\n const defaultTheme = theme.dark ? defaultThemeOptions.themes?.dark : defaultThemeOptions.themes?.light\n obj[key] = mergeDeep(defaultTheme, theme)\n return obj\n }, {} as Record<string, ThemeDefinition>)\n\n return mergeDeep(\n defaultThemeOptions,\n { ...options, themes },\n ) as InternalThemeOptions\n}\n\n// Composables\nexport function createTheme (app: App, options?: ThemeOptions): ThemeInstance {\n const head = app._context.provides.usehead as HeadClient | undefined\n const parsedOptions = parseThemeOptions(options)\n const styleEl = ref<HTMLStyleElement>()\n const current = ref(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n const variations = ref(parsedOptions.variations)\n\n const computedThemes = computed(() => {\n return Object.entries(themes.value).reduce((obj, [name, original]) => {\n const theme: InternalThemeDefinition = {\n ...original,\n colors: {\n ...original.colors,\n ...(parsedOptions.variations.colors ?? []).reduce((obj, color) => {\n return { ...obj, ...genColorVariations(color, original.colors[color]!) }\n }, {}),\n },\n }\n\n for (const color of Object.keys(theme.colors)) {\n if (/on-[a-z]/.test(color) || theme.colors[`on-${color}`]) continue\n\n const onColor = `on-${color}` as keyof OnColors\n const colorVal = colorToInt(theme.colors[color]!)\n\n const blackContrast = Math.abs(APCAcontrast(0, colorVal))\n const whiteContrast = Math.abs(APCAcontrast(0xffffff, colorVal))\n\n // TODO: warn about poor color selections\n // const contrastAsText = Math.abs(APCAcontrast(colorVal, colorToInt(theme.colors.background)))\n // const minContrast = Math.max(blackContrast, whiteContrast)\n // if (minContrast < 60) {\n // consoleInfo(`${key} theme color ${color} has poor contrast (${minContrast.toFixed()}%)`)\n // } else if (contrastAsText < 60 && !['background', 'surface'].includes(color)) {\n // consoleInfo(`${key} theme color ${color} has poor contrast as text (${contrastAsText.toFixed()}%)`)\n // }\n\n // Prefer white text if both have an acceptable contrast ratio\n theme.colors[onColor] = whiteContrast > Math.min(blackContrast, 50) ? '#fff' : '#000'\n }\n\n obj[name] = theme\n\n return obj\n }, {} as Record<string, InternalThemeDefinition>)\n })\n\n function genColorVariations (name: string, color: string) {\n const obj: Record<string, string> = {}\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(variations.value[variation], 1)) {\n obj[`${name}-${variation}-${amount}`] = intToHex(fn(colorToInt(color), amount))\n }\n }\n\n return obj\n }\n\n const styles = computed(() => {\n const lines = []\n\n for (const themeName of Object.keys(computedThemes.value)) {\n const variables = computedThemes.value[themeName].variables\n\n lines.push(...createCssClass(`.v-theme--${themeName}`, [\n ...genCssVariables(themeName),\n ...Object.keys(variables).map(key => {\n const value = variables[key]\n const color = typeof value === 'string' && value.startsWith('#') ? colorToRGB(value) : undefined\n const rgb = color ? `${color.r}, ${color.g}, ${color.b}` : undefined\n\n return `--v-${key}: ${rgb ?? value}`\n }),\n ]))\n }\n\n const colors = new Set(Object.values(computedThemes.value).flatMap(theme => Object.keys(theme.colors)))\n for (const key of colors) {\n if (/on-[a-z]/.test(key)) {\n lines.push(...createCssClass(`.${key}`, [`color: rgb(var(--v-theme-${key})) !important`]))\n } else {\n lines.push(\n ...createCssClass(`.bg-${key}`, [\n `--v-theme-overlay-multiplier: var(--v-theme-${key}-overlay-multiplier)`,\n `background: rgb(var(--v-theme-${key})) !important`,\n `color: rgb(var(--v-theme-on-${key})) !important`,\n ]),\n ...createCssClass(`.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`]),\n ...createCssClass(`.border-${key}`, [`--v-border-color: var(--v-theme-${key})`]),\n )\n }\n }\n\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\n })\n\n function genCssVariables (name: string) {\n const theme = computedThemes.value[name]\n\n if (!theme) throw new Error(`Could not find theme ${name}`)\n\n const lightOverlay = theme.dark ? 2 : 1\n const darkOverlay = theme.dark ? 1 : 2\n\n const variables: string[] = []\n for (const [key, value] of Object.entries(theme.colors)) {\n const rgb = colorToRGB(value!)\n variables.push(`--v-theme-${key}: ${rgb.r},${rgb.g},${rgb.b}`)\n if (!key.startsWith('on-')) {\n variables.push(`--v-theme-${key}-overlay-multiplier: ${getLuma(value) > 0.18 ? lightOverlay : darkOverlay}`)\n }\n }\n\n return variables\n }\n\n function createCssClass (selector: string, content: string[]) {\n return [\n `${selector} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n ]\n }\n\n if (head) {\n head.addHeadObjs(computed(() => ({\n style: [{\n children: styles.value,\n type: 'text/css',\n id: 'vuetify-theme-stylesheet',\n }],\n })))\n\n if (IN_BROWSER) {\n watchEffect(() => head.updateDOM())\n }\n } else {\n watch(themes, updateStyles, { deep: true, immediate: true })\n\n function updateStyles () {\n if (parsedOptions.isDisabled) return\n\n genStyleElement()\n\n if (styleEl.value) styleEl.value.innerHTML = styles.value\n }\n\n function genStyleElement () {\n if (typeof document === 'undefined' || styleEl.value) return\n\n const el = document.createElement('style')\n el.type = 'text/css'\n el.id = 'vuetify-theme-stylesheet'\n\n styleEl.value = el\n document.head.appendChild(styleEl.value)\n }\n }\n\n return {\n isDisabled: parsedOptions.isDisabled,\n themes: computedThemes,\n setTheme: (key: string, theme: InternalThemeDefinition) => themes.value[key] = theme,\n getTheme: (key: string) => computedThemes.value[key],\n current,\n themeClasses: computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${current.value}`),\n styles,\n }\n}\n\nexport function provideTheme (props: { theme?: string }) {\n getCurrentInstance('provideTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n const current = computed<string>(() => {\n return props.theme ?? theme?.current.value\n })\n\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${current.value}`)\n\n const newTheme: ThemeInstance = {\n ...theme,\n current,\n themeClasses,\n }\n\n provide(ThemeSymbol, newTheme)\n\n return newTheme\n}\n\nexport function useTheme () {\n getCurrentInstance('useTheme')\n\n const theme = inject(ThemeSymbol, null)\n\n if (!theme) throw new Error('Could not find Vuetify theme injection')\n\n return theme\n}\n","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport type { DeepReadonly, Ref } from 'vue'\n\n// Globals\nimport { IN_BROWSER } from '@/util/globals'\n\ninterface ResizeState {\n resizeRef: Ref<Element | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback): ResizeState {\n const resizeRef = ref<Element>()\n const contentRect = ref<DOMRectReadOnly>()\n\n if (IN_BROWSER) {\n const observer = new ResizeObserver((entries: ResizeObserverEntry[]) => {\n callback?.(entries, observer)\n\n if (!entries.length) return\n\n contentRect.value = entries[0].contentRect\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(resizeRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n contentRect.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n }\n}\n","// Composables\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, inject, onActivated, onBeforeUnmount, onDeactivated, onMounted, provide, reactive, ref } from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, InjectionKey, Prop, Ref } from 'vue'\n\ntype Position = 'top' | 'left' | 'right' | 'bottom'\n\ntype LayoutItem = {\n id: string\n top: number\n bottom: number\n left: number\n right: number\n size: number\n}\n\ninterface LayoutProvide {\n register: (\n vm: ComponentInternalInstance,\n options: {\n id: string\n priority: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n }\n ) => {\n layoutItemStyles: Ref<Record<string, unknown>>\n layoutItemScrimStyles: Ref<Record<string, unknown>>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainStyles: Ref<Record<string, unknown>>\n getLayoutItem: (id: string) => LayoutItem | undefined\n items: Ref<LayoutItem[]>\n layoutRect: Ref<DOMRectReadOnly | undefined>\n rootZIndex: Ref<number>\n}\n\nexport const VuetifyLayoutKey: InjectionKey<LayoutProvide> = Symbol.for('vuetify:layout')\nexport const VuetifyLayoutItemKey: InjectionKey<{ id: string }> = Symbol.for('vuetify:layout-item')\n\nconst ROOT_ZINDEX = 1000\n\nexport const makeLayoutProps = propsFactory({\n overlaps: {\n type: Array,\n default: () => ([]),\n } as Prop<string[]>,\n fullHeight: Boolean,\n}, 'layout')\n\n// Composables\nexport const makeLayoutItemProps = propsFactory({\n name: {\n type: String,\n },\n priority: {\n type: [Number, String],\n default: 0,\n },\n absolute: Boolean,\n}, 'layout-item')\n\nexport function useLayout () {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n return layout\n}\n\nexport function useLayoutItem (options: {\n id: string | undefined\n priority: Ref<number>\n position: Ref<Position>\n layoutSize: Ref<number | string>\n elementSize: Ref<number | string | undefined>\n active: Ref<boolean>\n disableTransitions?: Ref<boolean>\n absolute: Ref<boolean | undefined>\n}) {\n const layout = inject(VuetifyLayoutKey)\n\n if (!layout) throw new Error('Could not find injected Vuetify layout')\n\n const id = options.id ?? `layout-item-${getUid()}`\n\n const vm = getCurrentInstance('useLayoutItem')\n\n provide(VuetifyLayoutItemKey, { id })\n\n const isKeptAlive = ref(false)\n onDeactivated(() => isKeptAlive.value = true)\n onActivated(() => isKeptAlive.value = false)\n\n const {\n layoutItemStyles,\n layoutItemScrimStyles,\n } = layout.register(vm, {\n ...options,\n active: computed(() => isKeptAlive.value ? false : options.active.value),\n id,\n })\n\n onBeforeUnmount(() => layout.unregister(id))\n\n return { layoutItemStyles, layoutRect: layout.layoutRect, layoutItemScrimStyles }\n}\n\nconst generateLayers = (\n layout: string[],\n positions: Map<string, Ref<Position>>,\n layoutSizes: Map<string, Ref<number | string>>,\n activeItems: Map<string, Ref<boolean>>,\n) => {\n let previousLayer = { top: 0, left: 0, right: 0, bottom: 0 }\n const layers = [{ id: '', layer: { ...previousLayer } }]\n for (const id of layout) {\n const position = positions.get(id)\n const amount = layoutSizes.get(id)\n const active = activeItems.get(id)\n if (!position || !amount || !active) continue\n\n const layer = {\n ...previousLayer,\n [position.value]: parseInt(previousLayer[position.value], 10) + (active.value ? parseInt(amount.value, 10) : 0),\n }\n\n layers.push({\n id,\n layer,\n })\n\n previousLayer = layer\n }\n\n return layers\n}\n\nexport function createLayout (props: { overlaps?: string[], fullHeight?: boolean }) {\n const parentLayout = inject(VuetifyLayoutKey, null)\n const rootZIndex = computed(() => parentLayout ? parentLayout.rootZIndex.value - 100 : ROOT_ZINDEX)\n const registered = ref<string[]>([])\n const positions = reactive(new Map<string, Ref<Position>>())\n const layoutSizes = reactive(new Map<string, Ref<number | string>>())\n const priorities = reactive(new Map<string, Ref<number>>())\n const activeItems = reactive(new Map<string, Ref<boolean>>())\n const disabledTransitions = reactive(new Map<string, Ref<boolean>>())\n const { resizeRef, contentRect: layoutRect } = useResizeObserver()\n\n const computedOverlaps = computed(() => {\n const map = new Map<string, { position: Position, amount: number }>()\n const overlaps = props.overlaps ?? []\n for (const overlap of overlaps.filter(item => item.includes(':'))) {\n const [top, bottom] = overlap.split(':')\n if (!registered.value.includes(top) || !registered.value.includes(bottom)) continue\n\n const topPosition = positions.get(top)\n const bottomPosition = positions.get(bottom)\n const topAmount = layoutSizes.get(top)\n const bottomAmount = layoutSizes.get(bottom)\n\n if (!topPosition || !bottomPosition || !topAmount || !bottomAmount) continue\n\n map.set(bottom, { position: topPosition.value, amount: parseInt(topAmount.value, 10) })\n map.set(top, { position: bottomPosition.value, amount: -parseInt(bottomAmount.value, 10) })\n }\n\n return map\n })\n\n const layers = computed(() => {\n const uniquePriorities = [...new Set([...priorities.values()].map(p => p.value))].sort((a, b) => a - b)\n const layout = []\n for (const p of uniquePriorities) {\n const items = registered.value.filter(id => priorities.get(id)?.value === p)\n layout.push(...items)\n }\n return generateLayers(layout, positions, layoutSizes, activeItems)\n })\n\n const transitionsEnabled = computed(() => {\n return !Array.from(disabledTransitions.values()).some(ref => ref.value)\n })\n\n const mainStyles = computed(() => {\n const layer = layers.value[layers.value.length - 1].layer\n\n return {\n position: 'relative',\n paddingLeft: convertToUnit(layer.left),\n paddingRight: convertToUnit(layer.right),\n paddingTop: convertToUnit(layer.top),\n paddingBottom: convertToUnit(layer.bottom),\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n })\n\n const items = computed(() => {\n return layers.value.slice(1).map(({ id }, index) => {\n const { layer } = layers.value[index]\n const size = layoutSizes.get(id)\n\n return {\n id,\n ...layer,\n size: Number(size!.value),\n }\n })\n })\n\n const getLayoutItem = (id: string) => {\n return items.value.find(item => item.id === id)\n }\n\n const rootVm = getCurrentInstance('createLayout')\n\n const isMounted = ref(false)\n onMounted(() => {\n isMounted.value = true\n })\n\n provide(VuetifyLayoutKey, {\n register: (\n vm: ComponentInternalInstance,\n {\n id,\n priority,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, priority)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\n disableTransitions && disabledTransitions.set(id, disableTransitions)\n\n const instances = findChildrenWithProvide(VuetifyLayoutItemKey, rootVm?.vnode)\n const instanceIndex = instances.indexOf(vm)\n\n if (instanceIndex > -1) registered.value.splice(instanceIndex, 0, id)\n else registered.value.push(id)\n\n const index = computed(() => items.value.findIndex(i => i.id === id))\n const zIndex = computed(() => rootZIndex.value + (layers.value.length * 2) - (index.value * 2))\n\n const layoutItemStyles = computed(() => {\n const isHorizontal = position.value === 'left' || position.value === 'right'\n const isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n\n const styles = {\n [position.value]: 0,\n zIndex: zIndex.value,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,\n position: absolute.value || rootZIndex.value !== ROOT_ZINDEX ? 'absolute' : 'fixed',\n ...(transitionsEnabled.value ? undefined : { transition: 'none' }),\n }\n\n if (!isMounted.value) return styles\n\n if (index.value < 0) throw new Error(`Layout item \"${id}\" is missing`)\n\n const item = items.value[index.value]\n\n if (!item) throw new Error(`Could not find layout item \"${id}`)\n\n const overlap = computedOverlaps.value.get(id)\n if (overlap) {\n item[overlap.position] += overlap.amount\n }\n\n return {\n ...styles,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n marginLeft: isOppositeHorizontal ? undefined : `${item.left}px`,\n marginRight: isOppositeHorizontal ? `${item.right}px` : undefined,\n marginTop: position.value !== 'bottom' ? `${item.top}px` : undefined,\n marginBottom: position.value !== 'top' ? `${item.bottom}px` : undefined,\n width: !isHorizontal ? `calc(100% - ${item.left}px - ${item.right}px)` : elementSize.value ? `${elementSize.value}px` : undefined,\n }\n })\n\n const layoutItemScrimStyles = computed(() => ({\n zIndex: zIndex.value - 1,\n position: rootZIndex.value === ROOT_ZINDEX ? 'fixed' : 'absolute',\n }))\n\n return { layoutItemStyles, layoutItemScrimStyles, zIndex }\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n disabledTransitions.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainStyles,\n getLayoutItem,\n items,\n layoutRect,\n rootZIndex,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n const layoutStyles = computed(() => ({\n zIndex: rootZIndex.value,\n }))\n\n return {\n layoutClasses,\n layoutStyles,\n getLayoutItem,\n items,\n layoutRect,\n layoutRef: resizeRef,\n }\n}\n","export default {\n badge: 'Badge',\n close: 'Close',\n dataIterator: {\n noResultsText: 'No matching records found',\n loadingText: 'Loading items...',\n },\n dataTable: {\n itemsPerPageText: 'Rows per page:',\n ariaLabel: {\n sortDescending: 'Sorted descending.',\n sortAscending: 'Sorted ascending.',\n sortNone: 'Not sorted.',\n activateNone: 'Activate to remove sorting.',\n activateDescending: 'Activate to sort descending.',\n activateAscending: 'Activate to sort ascending.',\n },\n sortBy: 'Sort by',\n },\n dataFooter: {\n itemsPerPageText: 'Items per page:',\n itemsPerPageAll: 'All',\n nextPage: 'Next page',\n prevPage: 'Previous page',\n firstPage: 'First page',\n lastPage: 'Last page',\n pageText: '{0}-{1} of {2}',\n },\n datePicker: {\n itemsSelected: '{0} selected',\n nextMonthAriaLabel: 'Next month',\n nextYearAriaLabel: 'Next year',\n prevMonthAriaLabel: 'Previous month',\n prevYearAriaLabel: 'Previous year',\n },\n noDataText: 'No data available',\n carousel: {\n prev: 'Previous visual',\n next: 'Next visual',\n ariaLabel: {\n delimiter: 'Carousel slide {0} of {1}',\n },\n },\n calendar: {\n moreEvents: '{0} more',\n },\n fileInput: {\n counter: '{0} files',\n counterSize: '{0} files ({1} in total)',\n },\n timePicker: {\n am: 'AM',\n pm: 'PM',\n },\n pagination: {\n ariaLabel: {\n root: 'Pagination Navigation',\n next: 'Next page',\n previous: 'Previous page',\n page: 'Goto Page {0}',\n currentPage: 'Page {0}, Current Page',\n first: 'First page',\n last: 'Last page',\n },\n },\n rating: {\n ariaLabel: {\n item: 'Rating {0} of {1}',\n },\n },\n}\n","export { default as af } from './af'\nexport { default as ar } from './ar'\nexport { default as bg } from './bg'\nexport { default as ca } from './ca'\nexport { default as ckb } from './ckb'\nexport { default as cs } from './cs'\nexport { default as da } from './da'\nexport { default as de } from './de'\nexport { default as el } from './el'\nexport { default as en } from './en'\nexport { default as es } from './es'\nexport { default as et } from './et'\nexport { default as fa } from './fa'\nexport { default as fi } from './fi'\nexport { default as fr } from './fr'\nexport { default as hr } from './hr'\nexport { default as hu } from './hu'\nexport { default as he } from './he'\nexport { default as id } from './id'\nexport { default as it } from './it'\nexport { default as ja } from './ja'\nexport { default as ko } from './ko'\nexport { default as lv } from './lv'\nexport { default as lt } from './lt'\nexport { default as nl } from './nl'\nexport { default as no } from './no'\nexport { default as pl } from './pl'\nexport { default as pt } from './pt'\nexport { default as ro } from './ro'\nexport { default as ru } from './ru'\nexport { default as sk } from './sk'\nexport { default as sl } from './sl'\nexport { default as srCyrl } from './sr-Cyrl'\nexport { default as srLatn } from './sr-Latn'\nexport { default as sv } from './sv'\nexport { default as th } from './th'\nexport { default as tr } from './tr'\nexport { default as az } from './az'\nexport { default as uk } from './uk'\nexport { default as vi } from './vi'\nexport { default as zhHans } from './zh-Hans'\nexport { default as zhHant } from './zh-Hant'\n\nexport const rtl = {\n af: false,\n ar: true,\n bg: false,\n ca: false,\n ckb: false,\n cs: false,\n de: false,\n el: false,\n en: false,\n es: false,\n et: false,\n fa: false,\n fi: false,\n fr: false,\n hr: false,\n hu: false,\n he: true,\n id: false,\n it: false,\n ja: false,\n ko: false,\n lv: false,\n lt: false,\n nl: false,\n no: false,\n pl: false,\n pt: false,\n ro: false,\n ru: false,\n sk: false,\n sl: false,\n srCyrl: false,\n srLatn: false,\n sv: false,\n th: false,\n tr: false,\n az: false,\n uk: false,\n vi: false,\n zhHans: false,\n zhHant: false,\n}\n","import { computed, inject, provide, ref } from 'vue'\nimport { rtl } from '@/locale'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport type { LocaleInstance } from './locale'\n\nexport interface RtlOptions {\n defaultRtl?: boolean\n rtl?: Record<string, boolean>\n}\n\nexport interface RtlProps {\n rtl?: boolean\n}\n\nexport interface RtlInstance {\n isRtl: Ref<boolean>\n rtl: Record<string, boolean>\n rtlClasses: Ref<string>\n}\n\nexport const RtlSymbol: InjectionKey<RtlInstance> = Symbol.for('vuetify:rtl')\n\nexport function createRtl (localeScope: LocaleInstance, options?: RtlOptions) {\n return createRtlScope({\n rtl: {\n ...rtl,\n ...(options?.rtl ?? {}),\n },\n isRtl: ref(options?.defaultRtl ?? false),\n rtlClasses: ref(''),\n }, localeScope)\n}\n\nexport function createRtlScope (currentScope: RtlInstance, localeScope: LocaleInstance, options?: RtlProps): RtlInstance {\n const isRtl = computed(() => {\n if (typeof options?.rtl === 'boolean') return options.rtl\n if (localeScope.current.value && currentScope.rtl.hasOwnProperty(localeScope.current.value)) {\n return currentScope.rtl[localeScope.current.value]\n }\n\n return currentScope.isRtl.value\n })\n\n return {\n isRtl,\n rtl: currentScope.rtl,\n rtlClasses: computed(() => `v-locale--is-${isRtl.value ? 'rtl' : 'ltr'}`),\n }\n}\n\nexport function provideRtl (props: RtlProps, localeScope: LocaleInstance) {\n const currentScope = inject(RtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n const newScope = createRtlScope(currentScope, localeScope, props)\n\n provide(RtlSymbol, newScope)\n\n return newScope\n}\n\nexport function useRtl () {\n const currentScope = inject(RtlSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected rtl instance')\n\n return currentScope\n}\n","// Styles\nimport './VApp.sass'\n\n// Composables\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { useRtl } from '@/composables/rtl'\n\nexport const VApp = defineComponent({\n name: 'VApp',\n\n props: {\n ...makeLayoutProps({ fullHeight: true }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const theme = provideTheme(props)\n const { layoutClasses, layoutStyles, getLayoutItem, items, layoutRef } = createLayout(props)\n const { rtlClasses } = useRtl()\n\n useRender(() => (\n <div\n ref={ layoutRef }\n class={[\n 'v-application',\n theme.themeClasses.value,\n layoutClasses.value,\n rtlClasses.value,\n ]}\n style={ layoutStyles.value }\n data-app=\"true\"\n >\n <div class=\"v-application__wrap\">\n { slots.default?.() }\n </div>\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n theme,\n }\n },\n})\n\nexport type VApp = InstanceType<typeof VApp>\n","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent, toRefs } from 'vue'\n\n// Types\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { PropType } from 'vue'\n\nexport const VDefaultsProvider = defineComponent({\n name: 'VDefaultsProvider',\n\n props: {\n defaults: Object as PropType<DefaultsOptions>,\n reset: [Number, String],\n root: Boolean,\n scoped: Boolean,\n },\n\n setup (props, { slots }) {\n const { defaults, reset, root, scoped } = toRefs(props)\n\n provideDefaults(defaults, {\n reset,\n root,\n scoped,\n })\n\n return () => slots.default?.()\n },\n})\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, propsFactory } from '@/util'\n\n// Types\nexport interface DimensionProps {\n height?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n width?: number | string\n}\n\n// Composables\nexport const makeDimensionProps = propsFactory({\n height: [Number, String],\n maxHeight: [Number, String],\n maxWidth: [Number, String],\n minHeight: [Number, String],\n minWidth: [Number, String],\n width: [Number, String],\n}, 'dimension')\n\nexport function useDimension (props: DimensionProps) {\n const dimensionStyles = computed(() => ({\n height: convertToUnit(props.height),\n maxHeight: convertToUnit(props.maxHeight),\n maxWidth: convertToUnit(props.maxWidth),\n minHeight: convertToUnit(props.minHeight),\n minWidth: convertToUnit(props.minWidth),\n width: convertToUnit(props.width),\n }))\n\n return { dimensionStyles }\n}\n","// Styles\nimport './VResponsive.sass'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport function useAspectStyles (props: { aspectRatio?: string | number }) {\n return {\n aspectStyles: computed(() => {\n const ratio = Number(props.aspectRatio)\n\n return ratio\n ? { paddingBottom: String(1 / ratio * 100) + '%' }\n : undefined\n }),\n }\n}\n\nexport const VResponsive = defineComponent({\n name: 'VResponsive',\n\n props: {\n aspectRatio: [String, Number],\n contentClass: String,\n\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const { aspectStyles } = useAspectStyles(props)\n\n return () => (\n <div class=\"v-responsive\" style={ dimensionStyles.value }>\n <div class=\"v-responsive__sizer\" style={ aspectStyles.value } />\n { slots.additional?.() }\n { slots.default && (\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default() }</div>\n )}\n </div>\n )\n },\n})\n","// Utils\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\ntype ObserveHandler = (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[],\n observer: IntersectionObserver,\n) => void\n\nexport interface ObserveDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: ObserveHandler | { handler: ObserveHandler, options?: IntersectionObserverInit }\n modifiers: {\n once?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n if (!SUPPORTS_INTERSECTION) return\n\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { handler, options } = typeof value === 'object'\n ? value\n : { handler: value, options: {} }\n\n const observer = new IntersectionObserver((\n entries: IntersectionObserverEntry[] = [],\n observer: IntersectionObserver\n ) => {\n const _observe = el._observe?.[binding.instance!.$.uid]\n if (!_observe) return // Just in case, should never fire\n\n const isIntersecting = entries.some(entry => entry.isIntersecting)\n\n // If is not quiet or has already been\n // initted, invoke the user callback\n if (\n handler && (\n !modifiers.quiet ||\n _observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n _observe.init\n )\n ) {\n handler(isIntersecting, entries, observer)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el, binding)\n else _observe.init = true\n }, options)\n\n el._observe = Object(el._observe)\n el._observe![binding.instance!.$.uid] = { init: false, observer }\n\n observer.observe(el)\n}\n\nfunction unmounted (el: HTMLElement, binding: ObserveDirectiveBinding) {\n const observe = el._observe?.[binding.instance!.$.uid]\n if (!observe) return\n\n observe.observer.unobserve(el)\n delete el._observe![binding.instance!.$.uid]\n}\n\nexport const Intersect: ObjectDirective<HTMLElement> = {\n mounted,\n unmounted,\n}\n\nexport default Intersect\n","// Utilities\nimport { h, mergeProps, Transition } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Component, FunctionalComponent, PropType, TransitionProps } from 'vue'\n\nexport const makeTransitionProps = propsFactory({\n transition: {\n type: [Boolean, String, Object] as PropType<string | boolean | TransitionProps & { component?: Component }>,\n default: 'fade-transition',\n validator: val => val !== true,\n },\n}, 'transition')\n\ninterface MaybeTransitionProps extends TransitionProps {\n transition?: string | boolean | TransitionProps & { component?: any }\n}\n\nexport const MaybeTransition: FunctionalComponent<MaybeTransitionProps> = (props, { slots }) => {\n const { transition, ...rest } = props\n\n if (!transition || typeof transition === 'boolean') return slots.default?.()\n\n const { component = Transition, ...customProps } = typeof transition === 'object' ? transition : {}\n\n return h(\n component,\n mergeProps(typeof transition === 'string' ? { name: transition } : customProps as any, rest as any),\n slots\n )\n}\n","import './VImg.sass'\n\n// Components\nimport { VResponsive } from '@/components/VResponsive'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\n\n// Utilities\nimport {\n computed,\n h,\n nextTick,\n onBeforeMount,\n ref,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n convertToUnit,\n defineComponent,\n SUPPORTS_INTERSECTION,\n useRender,\n} from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\n// not intended for public use, this is passed in by vuetify-loader\nexport interface srcObject {\n src?: string\n srcset?: string\n lazySrc?: string\n aspect: number\n}\n\nexport const VImg = defineComponent({\n name: 'VImg',\n\n directives: { intersect },\n\n props: {\n aspectRatio: [String, Number],\n alt: String,\n cover: Boolean,\n eager: Boolean,\n gradient: String,\n lazySrc: String,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n sizes: String,\n src: {\n type: [String, Object] as PropType<string | srcObject>,\n default: '',\n },\n srcset: String,\n width: [String, Number],\n\n ...makeTransitionProps(),\n },\n\n emits: ['loadstart', 'load', 'error'],\n\n setup (props, { emit, slots }) {\n const currentSrc = ref('') // Set from srcset\n const image = ref<HTMLImageElement>()\n const state = ref<'idle' | 'loading' | 'loaded' | 'error'>(props.eager ? 'loading' : 'idle')\n const naturalWidth = ref<number>()\n const naturalHeight = ref<number>()\n\n const normalisedSrc = computed<srcObject>(() => {\n return props.src && typeof props.src === 'object'\n ? {\n src: props.src.src,\n srcset: props.srcset || props.src.srcset,\n lazySrc: props.lazySrc || props.src.lazySrc,\n aspect: Number(props.aspectRatio || props.src.aspect),\n } : {\n src: props.src,\n srcset: props.srcset,\n lazySrc: props.lazySrc,\n aspect: Number(props.aspectRatio || 0),\n }\n })\n const aspectRatio = computed(() => {\n return normalisedSrc.value.aspect || naturalWidth.value! / naturalHeight.value! || 0\n })\n\n watch(() => props.src, () => {\n init(state.value !== 'idle')\n })\n // TODO: getSrc when window width changes\n\n onBeforeMount(() => init())\n\n function init (isIntersecting?: boolean) {\n if (props.eager && isIntersecting) return\n if (\n SUPPORTS_INTERSECTION &&\n !isIntersecting &&\n !props.eager\n ) return\n\n state.value = 'loading'\n\n if (normalisedSrc.value.lazySrc) {\n const lazyImg = new Image()\n lazyImg.src = normalisedSrc.value.lazySrc\n pollForSize(lazyImg, null)\n }\n\n if (!normalisedSrc.value.src) return\n\n nextTick(() => {\n emit('loadstart', image.value?.currentSrc || normalisedSrc.value.src)\n\n if (image.value?.complete) {\n if (!image.value.naturalWidth) {\n onError()\n }\n\n if (state.value === 'error') return\n\n if (!aspectRatio.value) pollForSize(image.value, null)\n onLoad()\n } else {\n if (!aspectRatio.value) pollForSize(image.value!)\n getSrc()\n }\n })\n }\n\n function onLoad () {\n getSrc()\n state.value = 'loaded'\n emit('load', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function onError () {\n state.value = 'error'\n emit('error', image.value?.currentSrc || normalisedSrc.value.src)\n }\n\n function getSrc () {\n const img = image.value\n if (img) currentSrc.value = img.currentSrc || img.src\n }\n\n function pollForSize (img: HTMLImageElement, timeout: number | null = 100) {\n const poll = () => {\n const { naturalHeight: imgHeight, naturalWidth: imgWidth } = img\n\n if (imgHeight || imgWidth) {\n naturalWidth.value = imgWidth\n naturalHeight.value = imgHeight\n } else if (!img.complete && state.value === 'loading' && timeout != null) {\n setTimeout(poll, timeout)\n } else if (img.currentSrc.endsWith('.svg') || img.currentSrc.startsWith('data:image/svg+xml')) {\n naturalWidth.value = 1\n naturalHeight.value = 1\n }\n }\n\n poll()\n }\n\n const containClasses = computed(() => ({\n 'v-img__img--cover': props.cover,\n 'v-img__img--contain': !props.cover,\n }))\n\n const __image = computed(() => {\n if (!normalisedSrc.value.src || state.value === 'idle') return\n\n const img = h('img', {\n class: ['v-img__img', containClasses.value],\n src: normalisedSrc.value.src,\n srcset: normalisedSrc.value.srcset,\n sizes: props.sizes,\n ref: image,\n onLoad,\n onError,\n })\n\n const sources = slots.sources?.()\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n {\n withDirectives(\n sources\n ? <picture class=\"v-img__picture\">{ sources }{ img }</picture>\n : img,\n [[vShow, state.value === 'loaded']]\n )\n }\n </MaybeTransition>\n )\n })\n\n const __preloadImage = computed(() => (\n <MaybeTransition transition={ props.transition }>\n { normalisedSrc.value.lazySrc && state.value !== 'loaded' && (\n <img\n class={['v-img__img', 'v-img__img--preload', containClasses.value]}\n src={ normalisedSrc.value.lazySrc }\n alt=\"\"\n />\n )}\n </MaybeTransition>\n ))\n\n const __placeholder = computed(() => {\n if (!slots.placeholder) return\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { (state.value === 'loading' || (state.value === 'error' && !slots.error)) &&\n <div class=\"v-img__placeholder\">{ slots.placeholder() }</div>\n }\n </MaybeTransition>\n )\n })\n\n const __error = computed(() => {\n if (!slots.error) return\n\n return (\n <MaybeTransition transition={ props.transition } appear>\n { state.value === 'error' &&\n <div class=\"v-img__error\">{ slots.error() }</div>\n }\n </MaybeTransition>\n )\n })\n\n const __gradient = computed(() => {\n if (!props.gradient) return\n\n return <div class=\"v-img__gradient\" style={{ backgroundImage: `linear-gradient(${props.gradient})` }} />\n })\n\n const isBooted = ref(false)\n {\n const stop = watch(aspectRatio, val => {\n if (val) {\n // Doesn't work with nextTick, idk why\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n stop()\n }\n })\n }\n\n useRender(() => (\n <VResponsive\n class={[\n 'v-img',\n { 'v-img--booting': !isBooted.value },\n ]}\n style={{ width: convertToUnit(props.width === 'auto' ? naturalWidth.value : props.width) }}\n aspectRatio={ aspectRatio.value }\n aria-label={ props.alt }\n role={ props.alt ? 'img' : undefined }\n v-intersect={[{\n handler: init,\n options: props.options,\n }, null, ['once']]}\n v-slots={{\n additional: () => [__image.value, __preloadImage.value, __gradient.value, __placeholder.value, __error.value],\n default: slots.default,\n }}\n />\n ))\n\n return {\n currentSrc,\n image,\n state,\n naturalWidth,\n naturalHeight,\n }\n },\n})\n\nexport type VImg = InstanceType<typeof VImg>\n","// Utilities\nimport { propsFactory } from '@/util'\n\n// Types\nexport interface TagProps {\n tag: string\n}\n\n// Composables\nexport const makeTagProps = propsFactory({\n tag: {\n type: String,\n default: 'div',\n },\n}, 'tag')\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\n\nexport const VToolbarTitle = genericComponent<new () => {\n $slots: MakeSlots<{\n default: []\n text: []\n }>\n}>()({\n name: 'VToolbarTitle',\n\n props: {\n text: String,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n useRender(() => {\n const hasText = !!(slots.default || slots.text || props.text)\n\n return (\n <props.tag class=\"v-toolbar-title\">\n { hasText && (\n <div class=\"v-toolbar-title__placeholder\">\n { slots.text ? slots.text() : props.text }\n\n { slots.default?.() }\n </div>\n ) }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VToolbarTitle = InstanceType<typeof VToolbarTitle>\n","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface BorderProps {\n border?: boolean | number | string\n}\n\n// Composables\nexport const makeBorderProps = propsFactory({\n border: [Boolean, Number, String],\n}, 'border')\n\nexport function useBorder (\n props: BorderProps,\n name = getCurrentInstanceName(),\n) {\n const borderClasses = computed(() => {\n const classes: string[] = []\n\n if (props.border != null && props.border !== false) {\n classes.push(`${name}--border`)\n }\n\n if (\n (typeof props.border === 'string' && props.border !== '') ||\n props.border === 0\n ) {\n for (const value of String(props.border).split(' ')) {\n classes.push(`border-${value}`)\n }\n }\n\n return classes\n })\n\n return { borderClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nexport interface ElevationProps {\n elevation?: number | string | null\n}\n\n// Composables\nexport const makeElevationProps = propsFactory({\n elevation: {\n type: [Number, String],\n validator (v: any) {\n const value = parseInt(v)\n\n return (\n !isNaN(value) &&\n value >= 0 &&\n // Material Design has a maximum elevation of 24\n // https://material.io/design/environment/elevation.html#default-elevations\n value <= 24\n )\n },\n },\n}, 'elevation')\n\ntype ElevationData = {\n elevationClasses: Ref<string[]>\n}\n\nexport function useElevation (props: ElevationProps | Ref<number | string | undefined>): ElevationData {\n const elevationClasses = computed(() => {\n const elevation = isRef(props) ? props.value : props.elevation\n const classes: string[] = []\n\n if (elevation == null) return classes\n\n classes.push(`elevation-${elevation}`)\n\n return classes\n })\n\n return { elevationClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\ntype RoundedValue = boolean | string | number | null | undefined\n\nexport interface RoundedProps {\n rounded?: RoundedValue\n tile?: boolean\n}\n\ntype RoundedData = {\n roundedClasses: Ref<string[]>\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n}, 'rounded')\n\nexport function useRounded (\n props: RoundedProps | Ref<RoundedValue>,\n name = getCurrentInstanceName(),\n): RoundedData {\n const roundedClasses = computed(() => {\n const rounded = isRef(props) ? props.value : props.rounded\n const classes: string[] = []\n\n if (rounded === true || rounded === '') {\n classes.push(`${name}--rounded`)\n } else if (\n typeof rounded === 'string' ||\n rounded === 0\n ) {\n for (const value of String(rounded).split(' ')) {\n classes.push(`rounded-${value}`)\n }\n }\n\n return classes\n })\n\n return { roundedClasses }\n}\n","// Utilities\nimport { computed, isRef } from 'vue'\nimport { isCssColor } from '@/util'\n\n// Types\nimport type { CSSProperties, Ref } from 'vue'\n\ntype ColorValue = string | false | null | undefined\n\nexport interface TextColorData {\n textColorClasses: Ref<string[]>\n textColorStyles: Ref<CSSProperties>\n}\n\nexport interface BackgroundColorData {\n backgroundColorClasses: Ref<string[]>\n backgroundColorStyles: Ref<CSSProperties>\n}\n\n// Composables\nexport function useColor (colors: Ref<{ background?: ColorValue, text?: ColorValue }>) {\n const backgroundIsCssColor = computed(() => isCssColor(colors.value.background))\n const textIsCssColor = computed(() => isCssColor(colors.value.text))\n\n const colorClasses = computed(() => {\n const classes: string[] = []\n\n if (colors.value.background && !backgroundIsCssColor.value) {\n classes.push(`bg-${colors.value.background}`)\n }\n\n if (colors.value.text && !textIsCssColor.value) {\n classes.push(`text-${colors.value.text}`)\n }\n\n return classes\n })\n\n const colorStyles = computed(() => {\n const styles: CSSProperties = {}\n\n if (colors.value.background && backgroundIsCssColor.value) {\n styles.backgroundColor = colors.value.background\n }\n\n if (colors.value.text && textIsCssColor.value) {\n styles.color = colors.value.text\n styles.caretColor = colors.value.text\n }\n\n return styles\n })\n\n return { colorClasses, colorStyles }\n}\n\nexport function useTextColor (color: Ref<ColorValue>): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): TextColorData\nexport function useTextColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): TextColorData {\n const colors = computed(() => ({\n text: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: textColorClasses,\n colorStyles: textColorStyles,\n } = useColor(colors)\n\n return { textColorClasses, textColorStyles }\n}\n\nexport function useBackgroundColor (color: Ref<ColorValue>): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (props: T, name: K): BackgroundColorData\nexport function useBackgroundColor <T extends Record<K, ColorValue>, K extends string> (\n props: T | Ref<ColorValue>,\n name?: K\n): BackgroundColorData {\n const colors = computed(() => ({\n background: isRef(props) ? props.value : (name ? props[name] : null),\n }))\n\n const {\n colorClasses: backgroundColorClasses,\n colorStyles: backgroundColorStyles,\n } = useColor(colors)\n\n return { backgroundColorClasses, backgroundColorStyles }\n}\n","import type { Ref, UnwrapRef } from 'vue'\nimport type { UnionToIntersection } from '@/util'\n\nexport function useForwardRef<T extends {}, U extends Ref<{} | undefined>[]> (\n target: T,\n ...refs: U\n): T & UnwrapRef<UnionToIntersection<U[number]>> {\n return new Proxy(target, {\n get (target, key) {\n if (Reflect.has(target, key)) {\n return Reflect.get(target, key)\n }\n for (const ref of refs) {\n if (ref.value && Reflect.has(ref.value, key)) {\n const val = Reflect.get(ref.value, key)\n return typeof val === 'function'\n ? val.bind(ref.value)\n : val\n }\n }\n },\n getOwnPropertyDescriptor (target, key) {\n const descriptor = Reflect.getOwnPropertyDescriptor(target, key)\n if (descriptor) return descriptor\n\n // Check each ref's own properties\n for (const ref of refs) {\n if (!ref.value) continue\n const descriptor = Reflect.getOwnPropertyDescriptor(ref.value, key)\n if (descriptor) return descriptor\n }\n // Recursive search up each ref's prototype\n for (const ref of refs) {\n let obj = ref.value && Object.getPrototypeOf(ref.value)\n while (obj) {\n const descriptor = Reflect.getOwnPropertyDescriptor(obj, key)\n if (descriptor) return descriptor\n obj = Object.getPrototypeOf(obj)\n }\n }\n return undefined\n },\n }) as any\n}\n","// Styles\nimport './VToolbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VImg } from '@/components/VImg'\nimport { VToolbarTitle } from './VToolbarTitle'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useForwardRef } from '@/composables/forwardRef'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, genericComponent, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { ExtractPropTypes, PropType } from 'vue'\nimport { provideDefaults } from '@/composables/defaults'\n\nexport type Density = typeof allowedDensities[number]\n\nconst allowedDensities = [null, 'prominent', 'default', 'comfortable', 'compact'] as const\n\nexport const makeVToolbarProps = propsFactory({\n absolute: Boolean,\n collapse: Boolean,\n color: String,\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n extended: Boolean,\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n flat: Boolean,\n floating: Boolean,\n height: {\n type: [Number, String],\n default: 56,\n },\n image: String,\n title: String,\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n}, 'v-toolbar')\n\nexport const VToolbar = genericComponent<new () => {\n $slots: MakeSlots<{\n default: []\n image: [{ image: string }]\n prepend: []\n append: []\n title: []\n extension: []\n }>\n}>()({\n name: 'VToolbar',\n\n props: makeVToolbarProps(),\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const isExtended = computed(() => (!!(props.extended || slots.extension)))\n const contentHeight = computed(() => parseInt((\n Number(props.height) +\n (props.density === 'prominent' ? Number(props.height) : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ), 10))\n const extensionHeight = computed(() => isExtended.value\n ? parseInt((\n Number(props.extensionHeight) +\n (props.density === 'prominent' ? Number(props.extensionHeight) : 0) -\n (props.density === 'comfortable' ? 4 : 0) -\n (props.density === 'compact' ? 8 : 0)\n ), 10)\n : 0\n )\n\n provideDefaults({\n VBtn: {\n flat: true,\n variant: 'text',\n },\n })\n\n useRender(() => {\n const hasTitle = !!(props.title || slots.title)\n const hasImage = !!(slots.image || props.image)\n\n return (\n <props.tag\n class={[\n 'v-toolbar',\n {\n 'v-toolbar--absolute': props.absolute,\n 'v-toolbar--collapse': props.collapse,\n 'v-toolbar--flat': props.flat,\n 'v-toolbar--floating': props.floating,\n [`v-toolbar--density-${props.density}`]: true,\n },\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n ]}\n >\n { hasImage && (\n <div class=\"v-toolbar__image\">\n <VDefaultsProvider\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n scoped\n >\n { slots.image ? slots.image?.() : (<VImg />) }\n </VDefaultsProvider>\n </div>\n ) }\n\n <div\n class=\"v-toolbar__content\"\n style={{ height: convertToUnit(contentHeight.value) }}\n >\n { slots.prepend && (\n <div class=\"v-toolbar__prepend\">\n { slots.prepend?.() }\n </div>\n ) }\n\n { hasTitle && (\n <VToolbarTitle text={ props.title }>\n {{ text: slots.title }}\n </VToolbarTitle>\n ) }\n\n { slots.default?.() }\n\n { slots.append && (\n <div class=\"v-toolbar__append\">\n { slots.append?.() }\n </div>\n ) }\n </div>\n\n { isExtended.value && (\n <div\n class=\"v-toolbar__extension\"\n style={{ height: convertToUnit(extensionHeight.value) }}\n >\n { slots.extension?.() }\n </div>\n ) }\n </props.tag>\n )\n })\n\n return useForwardRef({\n contentHeight,\n extensionHeight,\n })\n },\n})\n\nexport type VToolbar = InstanceType<typeof VToolbar>\n\nexport function filterToolbarProps (props: ExtractPropTypes<ReturnType<typeof makeVToolbarProps>>) {\n return pick(props, Object.keys(VToolbar?.props ?? {}) as any)\n}\n","// Utilities\nimport { computed, ref } from 'vue'\nimport { getCurrentInstance, toKebabCase } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\n// Composables\nexport function useProxiedModel<\n Props extends object & { [key in Prop as `onUpdate:${Prop}`]: ((val: any) => void) | undefined },\n Prop extends Extract<keyof Props, string>,\n Inner = Props[Prop],\n> (\n props: Props,\n prop: Prop,\n defaultValue?: Props[Prop],\n transformIn: (value?: Props[Prop]) => Inner = (v: any) => v,\n transformOut: (value: Inner) => Props[Prop] = (v: any) => v,\n) {\n const vm = getCurrentInstance('useProxiedModel')\n\n const propIsDefined = computed(() => {\n return !!(\n typeof props[prop] !== 'undefined' &&\n (vm?.vnode.props?.hasOwnProperty(prop) || vm?.vnode.props?.hasOwnProperty(toKebabCase(prop)))\n )\n })\n\n const internal = ref(transformIn(props[prop])) as Ref<Inner>\n\n return computed<Inner extends any[] ? Readonly<Inner> : Inner>({\n get (): any {\n if (propIsDefined.value) return transformIn(props[prop])\n else return internal.value\n },\n set (newValue) {\n if ((propIsDefined.value ? transformIn(props[prop]) : internal.value) === newValue) {\n return\n }\n internal.value = newValue\n vm?.emit(`update:${prop}`, transformOut(newValue))\n },\n })\n}\n","// Styles\nimport './VAppBar.sass'\n\n// Components\nimport { filterToolbarProps, makeVToolbarProps, VToolbar } from '@/components/VToolbar/VToolbar'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VAppBar = defineComponent({\n name: 'VAppBar',\n\n props: {\n // TODO: Implement scrolling techniques\n // hideOnScroll: Boolean\n // invertedScroll: Boolean\n // collapseOnScroll: Boolean\n // elevateOnScroll: Boolean\n // shrinkOnScroll: Boolean\n // fadeImageOnScroll: Boolean\n modelValue: {\n type: Boolean,\n default: true,\n },\n position: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n\n ...makeVToolbarProps(),\n ...makeLayoutItemProps(),\n\n height: {\n type: [Number, String],\n default: 64,\n },\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const vToolbarRef = ref()\n const isActive = useProxiedModel(props, 'modelValue')\n const height = computed(() => {\n const height: number = vToolbarRef.value?.contentHeight ?? 0\n const extensionHeight: number = vToolbarRef.value?.extensionHeight ?? 0\n\n return (height + extensionHeight)\n })\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n priority: computed(() => parseInt(props.priority, 10)),\n position: toRef(props, 'position'),\n layoutSize: height,\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n return () => {\n const [toolbarProps] = filterToolbarProps(props)\n\n return (\n <VToolbar\n ref={ vToolbarRef }\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.position === 'bottom',\n },\n ]}\n style={{\n ...layoutItemStyles.value,\n height: undefined,\n }}\n { ...toolbarProps }\n v-slots={ slots }\n />\n )\n }\n },\n})\n\nexport type VAppBar = InstanceType<typeof VAppBar>\n","// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedDensities = [null, 'default', 'comfortable', 'compact'] as const\n\nexport type Density = typeof allowedDensities[number]\n\nexport interface DensityProps {\n density?: Density\n}\n\n// Composables\nexport const makeDensityProps = propsFactory({\n density: {\n type: String as PropType<Density>,\n default: 'default',\n validator: (v: any) => allowedDensities.includes(v),\n },\n}, 'density')\n\nexport function useDensity (\n props: DensityProps,\n name = getCurrentInstanceName(),\n) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\n}\n","// Composables\nimport { useColor } from '@/composables/color'\n\n// Utilities\nimport { computed, unref } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport const allowedVariants = [\n 'outlined',\n 'plain',\n 'text',\n 'contained',\n 'contained-flat',\n 'contained-text',\n] as const\n\nexport type Variant = typeof allowedVariants[number]\n\nexport interface VariantProps {\n color?: string\n variant: Variant\n}\n\nexport function genOverlays (isClickable: boolean, name: string) {\n return (\n <>\n { isClickable && <div class={`${name}__overlay`} /> }\n\n <div class={`${name}__underlay`} />\n </>\n )\n}\n\nexport const makeVariantProps = propsFactory({\n color: String,\n variant: {\n type: String as PropType<Variant>,\n default: 'contained',\n validator: (v: any) => allowedVariants.includes(v),\n },\n}, 'variant')\n\nexport function useVariant (\n props: MaybeRef<VariantProps>,\n name = getCurrentInstanceName(),\n) {\n const variantClasses = computed(() => {\n const { variant } = unref(props)\n return `${name}--variant-${variant}`\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => {\n const { variant, color } = unref(props)\n return {\n [['contained', 'contained-flat'].includes(variant) ? 'background' : 'text']: color,\n }\n }))\n\n return { colorClasses, colorStyles, variantClasses }\n}\n","// Styles\nimport './VBtnGroup.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VBtnGroup = defineComponent({\n name: 'VBtnGroup',\n\n props: {\n divided: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n provideDefaults({\n VBtn: {\n height: 'auto',\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n flat: true,\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-btn-group',\n {\n 'v-btn-group--divided': props.divided,\n },\n themeClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n v-slots={ slots }\n />\n )\n })\n },\n})\n","// Composables\nimport { useProxiedModel } from './proxiedModel'\n\n// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef, watch } from 'vue'\nimport { consoleWarn, deepEqual, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, ComputedRef, ExtractPropTypes, InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\n\nexport interface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n}\n\nexport interface GroupProps {\n disabled: boolean\n modelValue: unknown\n multiple?: boolean\n mandatory?: boolean | 'force' | undefined\n max?: number | undefined\n selectedClass: string | undefined\n 'onUpdate:modelValue': ((val: unknown) => void) | undefined\n}\n\nexport interface GroupProvide {\n register: (item: GroupItem, cmp: ComponentInternalInstance) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<Readonly<number[]>>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n items: ComputedRef<{\n id: number\n value: unknown\n disabled: boolean | undefined\n }[]>\n disabled: Ref<boolean | undefined>\n getItemIndex: (value: unknown) => number\n}\n\nexport interface GroupItemProvide {\n id: number\n isSelected: Ref<boolean>\n toggle: () => void\n select: (value: boolean) => void\n selectedClass: Ref<(string | undefined)[] | false>\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n group: GroupProvide\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: null,\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n disabled: Boolean,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: null,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\nexport type GroupItemProps = ExtractPropTypes<ReturnType<typeof makeGroupItemProps>>\n\n// Composables\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required?: true,\n): GroupItemProvide\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required: false,\n): GroupItemProvide | null\nexport function useGroupItem (\n props: GroupItemProps,\n injectKey: InjectionKey<GroupProvide>,\n required = true,\n): GroupItemProvide | null {\n const vm = getCurrentInstance('useGroupItem')\n\n if (!vm) {\n throw new Error(\n '[Vuetify] useGroupItem composable must be used inside a component setup function'\n )\n }\n\n const id = getUid()\n\n provide(Symbol.for(`${injectKey.description}:id`), id)\n\n const group = inject(injectKey, null)\n\n if (!group) {\n if (!required) return group\n\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const value = toRef(props, 'value')\n const disabled = computed(() => group.disabled.value || props.disabled)\n\n group.register({\n id,\n value,\n disabled,\n }, vm)\n\n onBeforeUnmount(() => {\n group.unregister(id)\n })\n\n const isSelected = computed(() => {\n return group.isSelected(id)\n })\n\n const selectedClass = computed(() => isSelected.value && [group.selectedClass.value, props.selectedClass])\n\n watch(isSelected, value => {\n vm.emit('group:selected', { value })\n })\n\n return {\n id,\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\n group,\n }\n}\n\nexport function useGroup (\n props: GroupProps,\n injectKey: InjectionKey<GroupProvide>\n) {\n let isUnmounted = false\n const items = reactive<GroupItem[]>([])\n const selected = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => {\n if (v == null) return []\n\n return getIds(items, wrapInArray(v))\n },\n v => {\n const arr = getValues(items, v)\n\n return props.multiple ? arr : arr[0]\n }\n )\n\n const groupVm = getCurrentInstance('useGroup')\n\n function register (item: GroupItem, vm: ComponentInternalInstance) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n\n const key = Symbol.for(`${injectKey.description}:id`)\n const children = findChildrenWithProvide(key, groupVm?.vnode)\n const index = children.indexOf(vm)\n\n if (index > -1) {\n items.splice(index, 0, unwrapped)\n } else {\n items.push(unwrapped)\n }\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\n // TODO: re-evaluate this line's importance in the future\n // should we only modify the model if mandatory is set.\n // selected.value = selected.value.filter(v => v !== id)\n\n forceMandatoryValue()\n\n const index = items.findIndex(item => item.id === id)\n items.splice(index, 1)\n }\n\n // If mandatory and nothing is selected, then select first non-disabled item\n function forceMandatoryValue () {\n const item = items.find(item => !item.disabled)\n if (item && props.mandatory === 'force' && !selected.value.length) {\n selected.value = [item.id]\n }\n }\n\n onMounted(() => {\n forceMandatoryValue()\n })\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function select (id: number, value?: boolean) {\n const item = items.find(item => item.id === id)\n if (value && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\n const isSelected = ~index\n value = value ?? !isSelected\n\n // We can't remove value if group is\n // mandatory, value already exists,\n // and it is the only value\n if (\n isSelected &&\n props.mandatory &&\n internalValue.length <= 1\n ) return\n\n // We can't add value if it would\n // cause max limit to be exceeded\n if (\n !isSelected &&\n props.max != null &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && value) internalValue.push(id)\n else if (index >= 0 && !value) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n const isSelected = selected.value.includes(id)\n if (props.mandatory && isSelected) return\n\n selected.value = (value ?? !isSelected) ? [id] : []\n }\n }\n\n function step (offset: number) {\n // getting an offset from selected value obviously won't work with multiple values\n if (props.multiple) consoleWarn('This method is not supported when using \"multiple\" prop')\n\n if (!selected.value.length) {\n const item = items.find(item => !item.disabled)\n item && (selected.value = [item.id])\n } else {\n const currentId = selected.value[0]\n const currentIndex = items.findIndex(i => i.id === currentId)\n\n let newIndex = (currentIndex + offset) % items.length\n let newItem = items[newIndex]\n\n while (newItem.disabled && newIndex !== currentIndex) {\n newIndex = (newIndex + offset) % items.length\n newItem = items[newIndex]\n }\n\n if (newItem.disabled) return\n\n selected.value = [items[newIndex].id]\n }\n }\n\n const state: GroupProvide = {\n register,\n unregister,\n selected,\n select,\n disabled: toRef(props, 'disabled'),\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n items: computed(() => items),\n getItemIndex: (value: unknown) => getItemIndex(items, value),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getItemIndex (items: UnwrapRef<GroupItem[]>, value: unknown) {\n const ids = getIds(items, [value])\n\n if (!ids.length) return -1\n\n return items.findIndex(item => item.id === ids[0])\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids = []\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (item.value != null) {\n if (modelValue.find(value => deepEqual(value, item.value)) != null) {\n ids.push(item.id)\n }\n } else if (modelValue.includes(i)) {\n ids.push(item.id)\n }\n }\n\n return ids\n}\n\nfunction getValues (items: UnwrapRef<GroupItem[]>, ids: any[]) {\n const values = []\n\n for (let i = 0; i < items.length; i++) {\n const item = items[i]\n\n if (ids.includes(item.id)) {\n values.push(item.value != null ? item.value : i)\n }\n }\n\n return values\n}\n","// Styles\nimport './VBtnToggle.sass'\n\n// Components\nimport { VBtnGroup } from '@/components/VBtnGroup'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utility\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type BtnToggleSlotProps = 'isSelected' | 'select' | 'selected' | 'next' | 'prev'\nexport interface DefaultBtnToggleSlot extends Pick<GroupProvide, BtnToggleSlotProps> {}\n\nexport const VBtnToggleSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-btn-toggle')\n\nexport const VBtnToggle = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n default: [DefaultBtnToggleSlot]\n }>\n}>()({\n name: 'VBtnToggle',\n\n props: makeGroupProps({ selectedClass: 'v-btn--selected' }),\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isSelected, next, prev, select, selected } = useGroup(props, VBtnToggleSymbol)\n\n useRender(() => (\n <VBtnGroup class=\"v-btn-toggle\">\n { slots.default?.({\n isSelected,\n next,\n prev,\n select,\n selected,\n } as DefaultBtnToggleSlot) }\n </VBtnGroup>\n ))\n\n return {\n next,\n prev,\n select,\n }\n },\n})\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nconst predefinedSizes = ['x-small', 'small', 'default', 'large', 'x-large']\n\nexport interface SizeProps {\n size?: string | number\n}\n\n// Composables\nexport const makeSizeProps = propsFactory({\n size: {\n type: [String, Number],\n default: 'default',\n },\n}, 'size')\n\nexport function useSize (\n props: SizeProps,\n name = getCurrentInstanceName(),\n) {\n const sizeClasses = computed(() => {\n return predefinedSizes.includes(props.size as string)\n ? `${name}--size-${props.size}`\n : null\n })\n\n const sizeStyles = computed(() => {\n return !predefinedSizes.includes(props.size as string) && props.size\n ? ({\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }) : null\n })\n\n return { sizeClasses, sizeStyles }\n}\n","// Utilities\nimport { computed, inject, isRef } from 'vue'\nimport { defineComponent, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue = string | JSXComponent\n\nexport interface IconAliases {\n [name: string]: IconValue\n complete: IconValue\n cancel: IconValue\n close: IconValue\n delete: IconValue\n clear: IconValue\n success: IconValue\n info: IconValue\n warning: IconValue\n error: IconValue\n prev: IconValue\n next: IconValue\n checkboxOn: IconValue\n checkboxOff: IconValue\n checkboxIndeterminate: IconValue\n delimiter: IconValue\n sort: IconValue\n expand: IconValue\n menu: IconValue\n subgroup: IconValue\n dropdown: IconValue\n radioOn: IconValue\n radioOff: IconValue\n edit: IconValue\n ratingEmpty: IconValue\n ratingFull: IconValue\n ratingHalf: IconValue\n loading: IconValue\n first: IconValue\n last: IconValue\n unfold: IconValue\n file: IconValue\n plus: IconValue\n minus: IconValue\n}\n\nexport interface IconProps {\n tag: string\n icon: IconValue\n disabled?: Boolean\n}\n\ntype IconComponent = JSXComponent<IconProps>\n\nexport interface IconSet {\n component: IconComponent\n}\n\nexport type IconOptions = {\n defaultSet: string\n aliases?: Partial<IconAliases>\n sets: Record<string, IconSet>\n}\n\ntype IconInstance = {\n component: IconComponent\n icon: IconValue\n}\n\nexport const IconSymbol: InjectionKey<IconOptions> = Symbol.for('vuetify:icons')\n\nexport const makeIconProps = propsFactory({\n icon: {\n type: [String, Object] as PropType<IconValue>,\n required: true,\n },\n // Could not remove this and use makeTagProps, types complained because it is not required\n tag: {\n type: String,\n required: true,\n },\n}, 'icon')\n\nexport const VComponentIcon = defineComponent({\n name: 'VComponentIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return (\n <props.tag>\n <props.icon />\n </props.tag>\n )\n }\n },\n})\n\nexport const VSvgIcon = defineComponent({\n name: 'VSvgIcon',\n\n inheritAttrs: false,\n\n props: makeIconProps(),\n\n setup (props, { attrs }) {\n return () => {\n return (\n <props.tag { ...attrs } style={ null }>\n <svg\n class=\"v-icon__svg\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 24 24\"\n role=\"img\"\n aria-hidden=\"true\"\n >\n <path d={ props.icon as string }></path>\n </svg>\n </props.tag>\n )\n }\n },\n})\n\nexport const VLigatureIcon = defineComponent({\n name: 'VLigatureIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag>{ props.icon }</props.tag>\n }\n },\n})\n\nexport const VClassIcon = defineComponent({\n name: 'VClassIcon',\n\n props: makeIconProps(),\n\n setup (props) {\n return () => {\n return <props.tag class={ props.icon }></props.tag>\n }\n },\n})\n\nexport const defaultSets: Record<string, IconSet> = {\n svg: {\n component: VSvgIcon,\n },\n class: {\n component: VClassIcon,\n },\n}\n\n// Composables\nexport const useIcon = (props: Ref<string | undefined> | { icon?: IconValue }) => {\n const icons = inject(IconSymbol)\n\n if (!icons) throw new Error('Missing Vuetify Icons provide!')\n\n const iconData: Ref<IconInstance> = computed(() => {\n const iconAlias = isRef(props) ? props.value : props.icon\n\n if (!iconAlias) throw new Error('Icon value is undefined or null')\n\n let icon: IconValue | undefined = iconAlias\n\n if (typeof iconAlias === 'string' && iconAlias.includes('$')) {\n icon = icons.aliases?.[iconAlias.slice(iconAlias.indexOf('$') + 1)]\n }\n\n if (!icon) throw new Error(`Could not find aliased icon \"${iconAlias}\"`)\n\n if (typeof icon !== 'string') {\n return {\n component: VComponentIcon,\n icon,\n }\n }\n\n const iconSetName = Object.keys(icons.sets).find(\n setName => typeof icon === 'string' && icon.startsWith(`${setName}:`)\n )\n\n const iconName = iconSetName ? icon.slice(iconSetName.length + 1) : icon\n const iconSet = icons.sets[iconSetName ?? icons.defaultSet]\n\n return {\n component: iconSet.component,\n icon: iconName,\n }\n })\n\n return { iconData }\n}\n","// Styles\nimport './VIcon.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useIcon } from '@/composables/icons'\nimport { useTextColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, flattenFragments, propsFactory } from '@/util'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\nimport type { ComputedRef, PropType } from 'vue'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: {\n type: [String, Object] as PropType<IconValue>,\n },\n\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'i' }),\n ...makeThemeProps(),\n}, 'v-icon')\n\nexport const VIcon = defineComponent({\n name: 'VIcon',\n\n props: makeVIconProps(),\n\n setup (props, { attrs, slots }) {\n let slotIcon: ComputedRef<string | undefined> | undefined\n if (slots.default) {\n slotIcon = computed(() => {\n const slot = slots.default?.()\n if (!slot) return\n\n return flattenFragments(slot).filter(node =>\n node.children && typeof node.children === 'string'\n )[0]?.children as string\n })\n }\n\n const { themeClasses } = provideTheme(props)\n const { iconData } = useIcon(slotIcon || props)\n const { sizeClasses } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n return () => {\n return (\n <iconData.value.component\n tag={ props.tag }\n icon={ iconData.value.icon }\n class={[\n 'v-icon',\n 'notranslate',\n sizeClasses.value,\n textColorClasses.value,\n themeClasses.value,\n {\n 'v-icon--clickable': !!attrs.onClick,\n 'v-icon--start': props.start,\n 'v-icon--end': props.end,\n },\n ]}\n style={[\n !sizeClasses.value ? ({\n fontSize: convertToUnit(props.size),\n width: convertToUnit(props.size),\n height: convertToUnit(props.size),\n }) : undefined,\n textColorStyles.value,\n ]}\n aria-hidden=\"true\"\n />\n )\n }\n },\n})\n","// Utilities\nimport { computed } from 'vue'\nimport { convertToUnit, getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst positionValues = ['static', 'relative', 'fixed', 'absolute', 'sticky'] as const\n\ntype Position = typeof positionValues[number]\n\nexport interface PositionProps {\n absolute?: boolean\n bottom?: boolean | number | string\n fixed?: boolean\n left?: boolean | number | string\n position?: Position\n right?: boolean | number | string\n top?: boolean | number | string\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n absolute: Boolean,\n bottom: [Boolean, Number, String],\n fixed: Boolean,\n left: [Boolean, Number, String],\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n right: [Boolean, Number, String],\n top: [Boolean, Number, String],\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const targets = ['top', 'right', 'bottom', 'left'] as const\n\n const positionClasses = computed(() => {\n if (props.fixed) return `${name}--fixed`\n if (props.absolute) return `${name}--absolute`\n\n return props.position ? `position-${props.position}` : undefined\n })\n\n const positionStyles = computed(() => {\n const styles: Partial<Record<typeof targets[number], string>> = {}\n\n for (const target of targets) {\n const prop = props[target]\n\n if (prop == null || prop === false) continue\n\n styles[target] = convertToUnit(prop === true ? '0' : String(prop))\n }\n\n return styles\n })\n\n return { positionClasses, positionStyles }\n}\n","// Utilities\nimport { getCurrentInstance, propsFactory } from '@/util'\nimport {\n computed,\n onBeforeUnmount,\n onMounted,\n resolveDynamicComponent,\n toRef,\n} from 'vue'\n\n// Types\nimport type { ComputedRef, PropType, Ref, SetupContext } from 'vue'\nimport type {\n RouterLink as _RouterLink,\n useLink as _useLink,\n NavigationGuardNext,\n RouteLocationNormalizedLoaded,\n RouteLocationRaw,\n Router,\n} from 'vue-router'\n\nexport function useRoute (): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance('useRoute')\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance('useRouter')?.proxy?.$router\n}\n\nexport interface LinkProps {\n href?: string\n replace?: boolean\n to?: RouteLocationRaw\n}\n\nexport interface UseLink extends Omit<Partial<ReturnType<typeof _useLink>>, 'href'> {\n isLink: ComputedRef<boolean>\n isClickable: ComputedRef<boolean>\n href: Ref<string | undefined>\n}\n\nexport function useLink (props: LinkProps, attrs: SetupContext['attrs']): UseLink {\n const RouterLink = resolveDynamicComponent('RouterLink') as typeof _RouterLink | string\n\n const isLink = computed(() => !!(props.href || props.to))\n const isClickable = computed(() => {\n return isLink?.value || !!(attrs.onClick || attrs.onClickOnce)\n })\n\n if (typeof RouterLink === 'string') {\n return {\n isLink,\n isClickable,\n href: toRef(props, 'href'),\n }\n }\n\n const link = props.to ? RouterLink.useLink(props as Required<LinkProps>) : undefined\n\n return {\n ...link,\n isLink,\n isClickable,\n href: computed(() => props.to ? link?.route.value.href : props.href),\n }\n}\n\nexport const makeRouterProps = propsFactory({\n href: String,\n replace: Boolean,\n to: [String, Object] as PropType<RouteLocationRaw>,\n}, 'router')\n\nlet inTransition = false\nexport function useBackButton (cb: (next: NavigationGuardNext) => void) {\n const router = useRouter()\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n onMounted(() => {\n window.addEventListener('popstate', onPopstate)\n removeBefore = router?.beforeEach((to, from, next) => {\n if (!inTransition) {\n setTimeout(() => popped ? cb(next) : next())\n } else {\n popped ? cb(next) : next()\n }\n inTransition = true\n })\n removeAfter = router?.afterEach(() => {\n inTransition = false\n })\n })\n onBeforeUnmount(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\n\n function onPopstate (e: PopStateEvent) {\n if (e.state?.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n","// Styles\nimport './VRipple.sass'\n\n// Utilities\nimport { isObject, keyCodes } from '@/util'\n\n// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\nconst stopSymbol = Symbol('rippleStop')\n\ntype VuetifyRippleEvent = (MouseEvent | TouchEvent | KeyboardEvent) & { [stopSymbol]?: boolean }\n\nconst DELAY_RIPPLE = 80\n\nfunction transform (el: HTMLElement, value: string) {\n el.style.transform = value\n el.style.webkitTransform = value\n}\n\nfunction opacity (el: HTMLElement, value: number) {\n el.style.opacity = `calc(${value} * var(--v-theme-overlay-multiplier))`\n}\n\ninterface RippleOptions {\n class?: string\n center?: boolean\n circle?: boolean\n}\n\nexport interface RippleDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value?: boolean | { class: string }\n modifiers: {\n center?: boolean\n circle?: boolean\n stop?: boolean\n }\n}\n\nfunction isTouchEvent (e: VuetifyRippleEvent): e is TouchEvent {\n return e.constructor.name === 'TouchEvent'\n}\n\nfunction isKeyboardEvent (e: VuetifyRippleEvent): e is KeyboardEvent {\n return e.constructor.name === 'KeyboardEvent'\n}\n\nconst calculate = (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n) => {\n let localX = 0\n let localY = 0\n\n if (!isKeyboardEvent(e)) {\n const offset = el.getBoundingClientRect()\n const target = isTouchEvent(e) ? e.touches[e.touches.length - 1] : e\n\n localX = target.clientX - offset.left\n localY = target.clientY - offset.top\n }\n\n let radius = 0\n let scale = 0.3\n if (el._ripple?.circle) {\n scale = 0.15\n radius = el.clientWidth / 2\n radius = value.center ? radius : radius + Math.sqrt((localX - radius) ** 2 + (localY - radius) ** 2) / 4\n } else {\n radius = Math.sqrt(el.clientWidth ** 2 + el.clientHeight ** 2) / 2\n }\n\n const centerX = `${(el.clientWidth - (radius * 2)) / 2}px`\n const centerY = `${(el.clientHeight - (radius * 2)) / 2}px`\n\n const x = value.center ? centerX : `${localX - radius}px`\n const y = value.center ? centerY : `${localY - radius}px`\n\n return { radius, scale, x, y, centerX, centerY }\n}\n\nconst ripples = {\n /* eslint-disable max-statements */\n show (\n e: VuetifyRippleEvent,\n el: HTMLElement,\n value: RippleOptions = {}\n ) {\n if (!el?._ripple?.enabled) {\n return\n }\n\n const container = document.createElement('span')\n const animation = document.createElement('span')\n\n container.appendChild(animation)\n container.className = 'v-ripple__container'\n\n if (value.class) {\n container.className += ` ${value.class}`\n }\n\n const { radius, scale, x, y, centerX, centerY } = calculate(e, el, value)\n\n const size = `${radius * 2}px`\n animation.className = 'v-ripple__animation'\n animation.style.width = size\n animation.style.height = size\n\n el.appendChild(container)\n\n const computed = window.getComputedStyle(el)\n if (computed && computed.position === 'static') {\n el.style.position = 'relative'\n el.dataset.previousPosition = 'static'\n }\n\n animation.classList.add('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--visible')\n transform(animation, `translate(${x}, ${y}) scale3d(${scale},${scale},${scale})`)\n opacity(animation, 0)\n animation.dataset.activated = String(performance.now())\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--enter')\n animation.classList.add('v-ripple__animation--in')\n transform(animation, `translate(${centerX}, ${centerY}) scale3d(1,1,1)`)\n opacity(animation, 0.08)\n }, 0)\n },\n\n hide (el: HTMLElement | null) {\n if (!el?._ripple?.enabled) return\n\n const ripples = el.getElementsByClassName('v-ripple__animation')\n\n if (ripples.length === 0) return\n const animation = ripples[ripples.length - 1]\n\n if (animation.dataset.isHiding) return\n else animation.dataset.isHiding = 'true'\n\n const diff = performance.now() - Number(animation.dataset.activated)\n const delay = Math.max(250 - diff, 0)\n\n setTimeout(() => {\n animation.classList.remove('v-ripple__animation--in')\n animation.classList.add('v-ripple__animation--out')\n opacity(animation, 0)\n\n setTimeout(() => {\n const ripples = el.getElementsByClassName('v-ripple__animation')\n if (ripples.length === 1 && el.dataset.previousPosition) {\n el.style.position = el.dataset.previousPosition\n delete el.dataset.previousPosition\n }\n\n animation.parentNode && el.removeChild(animation.parentNode)\n }, 300)\n }, delay)\n },\n}\n\nfunction isRippleEnabled (value: any): value is true {\n return typeof value === 'undefined' || !!value\n}\n\nfunction rippleShow (e: VuetifyRippleEvent) {\n const value: RippleOptions = {}\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element?._ripple || element._ripple.touched || e[stopSymbol]) return\n\n // Don't allow the event to trigger ripples on any other elements\n e[stopSymbol] = true\n\n if (isTouchEvent(e)) {\n element._ripple.touched = true\n element._ripple.isTouch = true\n } else {\n // It's possible for touch events to fire\n // as mouse events on Android/iOS, this\n // will skip the event call if it has\n // already been registered as touch\n if (element._ripple.isTouch) return\n }\n\n value.center = element._ripple.centered || isKeyboardEvent(e)\n if (element._ripple.class) {\n value.class = element._ripple.class\n }\n\n if (isTouchEvent(e)) {\n // already queued that shows or hides the ripple\n if (element._ripple.showTimerCommit) return\n\n element._ripple.showTimerCommit = () => {\n ripples.show(e, element, value)\n }\n element._ripple.showTimer = window.setTimeout(() => {\n if (element?._ripple?.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n }\n }, DELAY_RIPPLE)\n } else {\n ripples.show(e, element, value)\n }\n}\n\nfunction rippleStop (e: VuetifyRippleEvent) {\n e[stopSymbol] = true\n}\n\nfunction rippleHide (e: Event) {\n const element = e.currentTarget as HTMLElement | null\n if (!element || !element._ripple) return\n\n window.clearTimeout(element._ripple.showTimer)\n\n // The touch interaction occurs before the show timer is triggered.\n // We still want to show ripple effect.\n if (e.type === 'touchend' && element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit()\n element._ripple.showTimerCommit = null\n\n // re-queue ripple hiding\n element._ripple.showTimer = window.setTimeout(() => {\n rippleHide(e)\n })\n return\n }\n\n window.setTimeout(() => {\n if (element._ripple) {\n element._ripple.touched = false\n }\n })\n ripples.hide(element)\n}\n\nfunction rippleCancelShow (e: MouseEvent | TouchEvent) {\n const element = e.currentTarget as HTMLElement | undefined\n\n if (!element || !element._ripple) return\n\n if (element._ripple.showTimerCommit) {\n element._ripple.showTimerCommit = null\n }\n\n window.clearTimeout(element._ripple.showTimer)\n}\n\nlet keyboardRipple = false\n\nfunction keyboardRippleShow (e: KeyboardEvent) {\n if (!keyboardRipple && (e.keyCode === keyCodes.enter || e.keyCode === keyCodes.space)) {\n keyboardRipple = true\n rippleShow(e)\n }\n}\n\nfunction keyboardRippleHide (e: KeyboardEvent) {\n keyboardRipple = false\n rippleHide(e)\n}\n\nfunction focusRippleHide (e: FocusEvent) {\n if (keyboardRipple) {\n keyboardRipple = false\n rippleHide(e)\n }\n}\n\nfunction updateRipple (el: HTMLElement, binding: RippleDirectiveBinding, wasEnabled: boolean) {\n const { value, modifiers } = binding\n const enabled = isRippleEnabled(value)\n if (!enabled) {\n ripples.hide(el)\n }\n\n el._ripple = el._ripple ?? {}\n el._ripple.enabled = enabled\n el._ripple.centered = modifiers.center\n el._ripple.circle = modifiers.circle\n if (isObject(value) && value.class) {\n el._ripple.class = value.class\n }\n\n if (enabled && !wasEnabled) {\n if (modifiers.stop) {\n el.addEventListener('touchstart', rippleStop, { passive: true })\n el.addEventListener('mousedown', rippleStop)\n return\n }\n\n el.addEventListener('touchstart', rippleShow, { passive: true })\n el.addEventListener('touchend', rippleHide, { passive: true })\n el.addEventListener('touchmove', rippleCancelShow, { passive: true })\n el.addEventListener('touchcancel', rippleHide)\n\n el.addEventListener('mousedown', rippleShow)\n el.addEventListener('mouseup', rippleHide)\n el.addEventListener('mouseleave', rippleHide)\n\n el.addEventListener('keydown', keyboardRippleShow)\n el.addEventListener('keyup', keyboardRippleHide)\n\n el.addEventListener('blur', focusRippleHide)\n\n // Anchor tags can be dragged, causes other hides to fail - #1537\n el.addEventListener('dragstart', rippleHide, { passive: true })\n } else if (!enabled && wasEnabled) {\n removeListeners(el)\n }\n}\n\nfunction removeListeners (el: HTMLElement) {\n el.removeEventListener('mousedown', rippleShow)\n el.removeEventListener('touchstart', rippleShow)\n el.removeEventListener('touchend', rippleHide)\n el.removeEventListener('touchmove', rippleCancelShow)\n el.removeEventListener('touchcancel', rippleHide)\n el.removeEventListener('mouseup', rippleHide)\n el.removeEventListener('mouseleave', rippleHide)\n el.removeEventListener('keydown', keyboardRippleShow)\n el.removeEventListener('keyup', keyboardRippleHide)\n el.removeEventListener('dragstart', rippleHide)\n el.removeEventListener('blur', focusRippleHide)\n}\n\nfunction mounted (el: HTMLElement, binding: DirectiveBinding) {\n updateRipple(el, binding, false)\n}\n\nfunction unmounted (el: HTMLElement) {\n delete el._ripple\n removeListeners(el)\n}\n\nfunction updated (el: HTMLElement, binding: DirectiveBinding) {\n if (binding.value === binding.oldValue) {\n return\n }\n\n const wasEnabled = isRippleEnabled(binding.oldValue)\n updateRipple(el, binding, wasEnabled)\n}\n\nexport const Ripple: ObjectDirective = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Ripple\n","// Styles\nimport './VBtn.sass'\n\n// Components\nimport { VBtnToggleSymbol } from '@/components/VBtnToggle/VBtnToggle'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { useSelectLink } from '@/composables/selectLink'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VBtn = defineComponent({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: {\n active: Boolean,\n symbol: {\n type: null,\n default: VBtnToggleSymbol,\n },\n flat: Boolean,\n icon: [Boolean, String],\n prependIcon: String,\n appendIcon: String,\n\n block: Boolean,\n stacked: Boolean,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makePositionProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'button' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const group = useGroupItem(props, props.symbol, false)\n const link = useLink(props, attrs)\n const isDisabled = computed(() => group?.disabled.value || props.disabled)\n const isElevated = computed(() => {\n return props.variant === 'contained' && !(props.disabled || props.flat || props.border)\n })\n\n useSelectLink(link, group?.select)\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasColor = !group || group.isSelected.value\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n group?.selectedClass.value,\n {\n 'v-btn--active': props.active,\n 'v-btn--block': props.block,\n 'v-btn--disabled': isDisabled.value,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--flat': props.flat,\n 'v-btn--icon': !!props.icon,\n 'v-btn--stacked': props.stacked,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n disabled={ isDisabled.value || undefined }\n href={ link.href.value }\n v-ripple={[\n !isDisabled.value && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ (e: MouseEvent) => {\n if (isDisabled.value) return\n\n link.navigate?.(e)\n group?.toggle()\n } }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && props.prependIcon && (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.prependIcon }\n start\n />\n ) }\n\n { typeof props.icon === 'boolean'\n ? slots.default?.()\n : (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.icon }\n size={ props.size }\n />\n )\n }\n\n { !props.icon && props.appendIcon && (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.appendIcon }\n end\n />\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VBtn = InstanceType<typeof VBtn>\n","// Utilities\nimport { nextTick, watch } from 'vue'\n\n// Types\nimport type { UseLink } from './router'\n\nexport function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {\n watch(() => link.isExactActive?.value, isExactActive => {\n if (link.isLink.value && isExactActive && select) {\n nextTick(() => {\n select(true)\n })\n }\n }, {\n immediate: true,\n })\n}\n","// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VAppBarNavIcon = defineComponent({\n name: 'VAppBarNavIcon',\n\n props: {\n icon: {\n type: String,\n default: '$menu',\n },\n },\n\n setup (props, { slots }) {\n return () => (\n <VBtn class=\"v-app-bar-nav-icon\" icon={ props.icon }>\n { slots.default?.() }\n </VBtn>\n )\n },\n})\n","// Composables\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { toRef } from 'vue'\n\nexport const VToolbarItems = defineComponent({\n name: 'VToolbarItems',\n\n props: {\n ...makeVariantProps({ variant: 'contained-text' }),\n },\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n variant: toRef(props, 'variant'),\n },\n })\n\n return () => slots.default?.()\n },\n})\n\nexport type VToolbarItems = InstanceType<typeof VToolbarItems>\n","// Composables\nimport { VToolbarTitle } from '@/components/VToolbar'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VAppBarTitle = defineComponent({\n ...VToolbarTitle,\n\n name: 'VAppBarTitle',\n\n setup (_, { slots }) {\n return () => (\n <VToolbarTitle\n class=\"v-app-bar-title\"\n v-slots={ slots }\n />\n )\n },\n}) as typeof VToolbarTitle\n","// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VAlertTitle = createSimpleFunctional('v-alert-title')\n","// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAlertTitle } from './VAlertTitle'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nconst allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\ntype ContextualType = typeof allowedTypes[number]\n\nexport const VAlert = defineComponent({\n name: 'VAlert',\n\n props: {\n border: {\n type: [Boolean, String],\n validator: (val: boolean | string) => {\n return typeof val === 'boolean' || [\n 'top',\n 'end',\n 'bottom',\n 'start',\n ].includes(val)\n },\n },\n borderColor: String,\n closable: Boolean,\n closeIcon: {\n type: String,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String] as PropType<false | string>,\n default: null,\n },\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n title: String,\n text: String,\n type: {\n type: String as PropType<ContextualType>,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained-flat' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const icon = computed(() => {\n if (props.icon === false) return undefined\n if (!props.type) return props.icon\n\n return props.icon ?? `$${props.type}`\n })\n const variantProps = computed(() => ({\n color: props.color ?? props.type,\n variant: props.variant,\n }))\n\n const { themeClasses } = provideTheme(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'borderColor'))\n\n function onCloseClick (e: MouseEvent) {\n isActive.value = false\n }\n\n return () => {\n const hasPrepend = !!(slots.prepend || icon.value)\n const hasTitle = !!(slots.title || props.title)\n const hasText = !!(props.text || slots.text)\n const hasClose = !!(slots.close || props.closable)\n\n return isActive.value && (\n <props.tag\n class={[\n 'v-alert',\n props.border && {\n 'v-alert--border': !!props.border,\n [`v-alert--border-${props.border === true ? 'start' : props.border}`]: true,\n },\n {\n 'v-alert--prominent': props.prominent,\n },\n themeClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n role=\"alert\"\n >\n { genOverlays(false, 'v-alert') }\n\n { props.border && (\n <div\n class={[\n 'v-alert__border',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n ) }\n\n { hasPrepend && (\n <VDefaultsProvider\n defaults={{\n VIcon: {\n density: props.density,\n icon: icon.value,\n size: props.prominent ? 44 : 'default',\n },\n }}\n >\n <div class=\"v-alert__prepend\">\n { slots.prepend\n ? slots.prepend()\n : icon.value && (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n\n <div class=\"v-alert__content\">\n { hasTitle && (\n <VAlertTitle>\n { slots.title ? slots.title() : props.title }\n </VAlertTitle>\n ) }\n\n { hasText && (\n slots.text ? slots.text() : props.text\n ) }\n\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-alert__append\">\n { slots.append() }\n </div>\n ) }\n\n { hasClose && (\n <VDefaultsProvider\n defaults={{\n VIcon: {\n icon: props.closeIcon,\n size: 'small',\n },\n }}\n >\n <div\n class=\"v-alert__close\"\n onClick={ onCloseClick }\n >\n { slots.close\n ? slots.close()\n : (<VIcon />)\n }\n </div>\n </VDefaultsProvider>\n ) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VAlert = InstanceType<typeof VAlert>\n","// Styles\nimport './VAvatar.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, propsFactory, useRender } from '@/util'\nimport { toRef } from 'vue'\n\nexport const makeVAvatarProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: String,\n image: String,\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n})\n\nexport const VAvatar = defineComponent({\n name: 'VAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n\n useRender(() => (\n <props.tag\n class={[\n 'v-avatar',\n {\n 'v-avatar--start': props.start,\n 'v-avatar--end': props.end,\n },\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n sizeStyles.value,\n ]}\n >\n\n { props.image\n ? (<VImg src={ props.image } alt=\"\" />)\n : props.icon\n ? (<VIcon icon={ props.icon } />)\n : slots.default?.()\n }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VAvatar = InstanceType<typeof VAvatar>\n","// Styles\nimport './VChipGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { deepEqual, defineComponent } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VChipGroupSymbol = Symbol.for('vuetify:v-chip-group')\n\nexport const VChipGroup = defineComponent({\n name: 'VChipGroup',\n\n props: {\n column: Boolean,\n filter: Boolean,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeGroupProps({ selectedClass: 'v-chip--selected' }),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained-text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VChipGroupSymbol)\n\n provideDefaults({\n VChip: {\n color: toRef(props, 'color'),\n filter: toRef(props, 'filter'),\n variant: toRef(props, 'variant'),\n },\n })\n\n return () => (\n <props.tag\n class={[\n 'v-chip-group',\n {\n 'v-chip-group--column': props.column,\n },\n themeClasses.value,\n ]}\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n }) }\n </props.tag>\n )\n },\n})\n\nexport type VChipGroup = InstanceType<typeof VChipGroup>\n","// Utilities\nimport { h, Transition, TransitionGroup } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { FunctionalComponent, Prop } from 'vue'\n\nexport function createCssTransition (\n name: string,\n origin = 'top center 0',\n mode?: string\n) {\n return defineComponent({\n name,\n\n props: {\n group: Boolean,\n hideOnLeave: Boolean,\n leaveAbsolute: Boolean,\n mode: {\n type: String,\n default: mode,\n },\n origin: {\n type: String,\n default: origin,\n },\n },\n\n setup (props, { slots }) {\n return () => {\n const tag = props.group ? TransitionGroup : Transition\n\n return h(tag as FunctionalComponent, {\n name,\n mode: props.mode,\n onBeforeEnter (el: HTMLElement) {\n el.style.transformOrigin = props.origin\n },\n onLeave (el: HTMLElement) {\n if (props.leaveAbsolute) {\n const { offsetTop, offsetLeft, offsetWidth, offsetHeight } = el\n el._transitionInitialStyles = {\n position: el.style.position,\n top: el.style.top,\n left: el.style.left,\n width: el.style.width,\n height: el.style.height,\n }\n el.style.position = 'absolute'\n el.style.top = `${offsetTop}px`\n el.style.left = `${offsetLeft}px`\n el.style.width = `${offsetWidth}px`\n el.style.height = `${offsetHeight}px`\n }\n\n if (props.hideOnLeave) {\n el.style.setProperty('display', 'none', 'important')\n }\n },\n onAfterLeave (el: HTMLElement) {\n if (props.leaveAbsolute && el?._transitionInitialStyles) {\n const { position, top, left, width, height } = el._transitionInitialStyles\n delete el._transitionInitialStyles\n el.style.position = position || ''\n el.style.top = top || ''\n el.style.left = left || ''\n el.style.width = width || ''\n el.style.height = height || ''\n }\n },\n }, slots.default)\n }\n },\n })\n}\n\nexport function createJavascriptTransition (\n name: string,\n functions: Record<string, any>,\n mode = 'in-out'\n) {\n return defineComponent({\n name,\n\n props: {\n mode: {\n type: String,\n default: mode,\n } as Prop<'in-out' | 'out-in' | 'default'>,\n },\n\n setup (props, { slots }) {\n return () => {\n return h(Transition, {\n name,\n // mode: props.mode, // TODO: vuejs/vue-next#3104\n ...functions,\n }, slots.default)\n }\n },\n })\n}\n","// Utilities\nimport { camelize } from 'vue'\n\ninterface HTMLExpandElement extends HTMLElement {\n _parent?: (Node & ParentNode & HTMLElement) | null\n _initialStyle?: {\n transition: string\n overflow: string\n height?: string | null\n width?: string | null\n }\n}\n\nexport default function (expandedParentClass = '', x = false) {\n const sizeProperty = x ? 'width' : 'height' as 'width' | 'height'\n const offsetProperty = camelize(`offset-${sizeProperty}`) as 'offsetHeight' | 'offsetWidth'\n\n return {\n onBeforeEnter (el: HTMLExpandElement) {\n el._parent = el.parentNode as (Node & ParentNode & HTMLElement) | null\n el._initialStyle = {\n transition: el.style.transition,\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n },\n\n onEnter (el: HTMLExpandElement) {\n const initialStyle = el._initialStyle!\n\n el.style.setProperty('transition', 'none', 'important')\n // Hide overflow to account for collapsed margins in the calculated height\n el.style.overflow = 'hidden'\n const offset = `${el[offsetProperty]}px`\n\n el.style[sizeProperty] = '0'\n\n void el.offsetHeight // force reflow\n\n el.style.transition = initialStyle.transition\n\n if (expandedParentClass && el._parent) {\n el._parent.classList.add(expandedParentClass)\n }\n\n requestAnimationFrame(() => {\n el.style[sizeProperty] = offset\n })\n },\n\n onAfterEnter: resetStyles,\n onEnterCancelled: resetStyles,\n\n onLeave (el: HTMLExpandElement) {\n el._initialStyle = {\n transition: '',\n overflow: el.style.overflow,\n [sizeProperty]: el.style[sizeProperty],\n }\n\n el.style.overflow = 'hidden'\n el.style[sizeProperty] = `${el[offsetProperty]}px`\n void el.offsetHeight // force reflow\n\n requestAnimationFrame(() => (el.style[sizeProperty] = '0'))\n },\n\n onAfterLeave,\n onLeaveCancelled: onAfterLeave,\n }\n\n function onAfterLeave (el: HTMLExpandElement) {\n if (expandedParentClass && el._parent) {\n el._parent.classList.remove(expandedParentClass)\n }\n resetStyles(el)\n }\n\n function resetStyles (el: HTMLExpandElement) {\n const size = el._initialStyle![sizeProperty]\n el.style.overflow = el._initialStyle!.overflow\n if (size != null) el.style[sizeProperty] = size\n delete el._initialStyle\n }\n}\n","import type { PropType } from 'vue'\nimport { Transition } from 'vue'\nimport { acceleratedEasing, deceleratedEasing, defineComponent, nullifyTransforms } from '@/util'\n\nexport const VDialogTransition = defineComponent({\n name: 'VDialogTransition',\n\n props: {\n target: Object as PropType<HTMLElement>,\n },\n\n setup (props, { slots }) {\n const functions = {\n onBeforeEnter (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onEnter (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n const { x, y } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = el.animate([\n { transform: `translate(${x}px, ${y}px) scale(0.1)`, opacity: 0 },\n { transform: '' },\n ], {\n duration: 225,\n easing: deceleratedEasing,\n })\n animation.finished.then(() => done())\n },\n onAfterEnter (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n onBeforeLeave (el: Element) {\n (el as HTMLElement).style.pointerEvents = 'none'\n },\n async onLeave (el: Element, done: () => void) {\n await new Promise(resolve => requestAnimationFrame(resolve))\n\n const { x, y } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = el.animate([\n { transform: '' },\n { transform: `translate(${x}px, ${y}px) scale(0.1)`, opacity: 0 },\n ], {\n duration: 125,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n },\n onAfterLeave (el: Element) {\n (el as HTMLElement).style.removeProperty('pointer-events')\n },\n }\n\n return () => {\n return props.target\n ? (\n <Transition\n name=\"dialog-transition\"\n { ...functions }\n css={ false }\n v-slots={ slots }\n />\n )\n : <Transition name=\"dialog-transition\" v-slots={ slots } />\n }\n },\n})\n\nfunction getDimensions (target: HTMLElement, el: HTMLElement) {\n const targetBox = target.getBoundingClientRect()\n const elBox = nullifyTransforms(el)\n const [originX, originY] = getComputedStyle(el).transformOrigin.split(' ').map(v => parseFloat(v))\n\n const [anchorSide, anchorOffset] = getComputedStyle(el).getPropertyValue('--v-overlay-anchor-origin').split(' ')\n\n let offsetX = targetBox.left + targetBox.width / 2\n if (anchorSide === 'left' || anchorOffset === 'left') {\n offsetX -= targetBox.width / 2\n } else if (anchorSide === 'right' || anchorOffset === 'right') {\n offsetX += targetBox.width / 2\n }\n\n let offsetY = targetBox.top + targetBox.height / 2\n if (anchorSide === 'top' || anchorOffset === 'top') {\n offsetY -= targetBox.height / 2\n } else if (anchorSide === 'bottom' || anchorOffset === 'bottom') {\n offsetY += targetBox.height / 2\n }\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n }\n}\n","import {\n createCssTransition,\n createJavascriptTransition,\n} from './createTransition'\n\nimport ExpandTransitionGenerator from './expand-transition'\n\n// Component specific transitions\nexport const VCarouselTransition = createCssTransition('carousel-transition')\nexport const VCarouselReverseTransition = createCssTransition('carousel-reverse-transition')\nexport const VTabTransition = createCssTransition('tab-transition')\nexport const VTabReverseTransition = createCssTransition('tab-reverse-transition')\nexport const VMenuTransition = createCssTransition('menu-transition')\nexport const VFabTransition = createCssTransition('fab-transition', 'center center', 'out-in')\n\n// Generic transitions\nexport const VDialogBottomTransition = createCssTransition('dialog-bottom-transition')\nexport const VDialogTopTransition = createCssTransition('dialog-top-transition')\nexport const VFadeTransition = createCssTransition('fade-transition')\nexport const VScaleTransition = createCssTransition('scale-transition')\nexport const VScrollXTransition = createCssTransition('scroll-x-transition')\nexport const VScrollXReverseTransition = createCssTransition('scroll-x-reverse-transition')\nexport const VScrollYTransition = createCssTransition('scroll-y-transition')\nexport const VScrollYReverseTransition = createCssTransition('scroll-y-reverse-transition')\nexport const VSlideXTransition = createCssTransition('slide-x-transition')\nexport const VSlideXReverseTransition = createCssTransition('slide-x-reverse-transition')\nexport const VSlideYTransition = createCssTransition('slide-y-transition')\nexport const VSlideYReverseTransition = createCssTransition('slide-y-reverse-transition')\n\n// Javascript transitions\nexport const VExpandTransition = createJavascriptTransition('expand-transition', ExpandTransitionGenerator())\nexport const VExpandXTransition = createJavascriptTransition('expand-x-transition', ExpandTransitionGenerator('', true))\n\nexport { VDialogTransition } from './dialog-transition'\n","// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VChip = defineComponent({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: {\n activeClass: String,\n appendAvatar: String,\n appendIcon: String,\n closable: Boolean,\n closeIcon: {\n type: String,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n pill: Boolean,\n prependAvatar: String,\n prependIcon: String,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained-text' } as const),\n },\n\n emits: {\n 'click:close': (e: Event) => true,\n 'update:active': (value: Boolean) => true,\n 'update:modelValue': (value: Boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { elevationClasses } = useElevation(props)\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { densityClasses } = useDensity(props)\n const link = useLink(props, attrs)\n\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link)\n const onClickFunc = props.link ? props.link : group?.toggle\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable && props.ripple, null] }\n onClick={ isClickable && onClickFunc }\n >\n { genOverlays(isClickable, 'v-chip') }\n\n { hasFilter && (\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter\n ? slots.filter()\n : <VIcon icon={ props.filterIcon } />\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasPrepend && (\n <div class=\"v-chip__prepend\">\n { slots.prepend\n ? slots.prepend()\n : (\n <VAvatar\n icon={ props.prependIcon }\n image={ props.prependAvatar }\n size={ props.size }\n />\n )\n }\n </div>\n ) }\n\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n\n { hasAppend && (\n <div class=\"v-chip__append\">\n { slots.append\n ? slots.append()\n : (\n <VAvatar\n icon={ props.appendIcon }\n image={ props.appendAvatar }\n size={ props.size }\n />\n )\n }\n </div>\n ) }\n\n { hasClose && (\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close\n ? slots.close({ props: { onClick: onCloseClick } })\n : (\n <VIcon\n icon={ props.closeIcon }\n size=\"x-small\"\n />\n )\n }\n </div>\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n","// Styles\nimport './VDivider.sass'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\n\n// Composables\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Types\ntype DividerKey = 'borderRightWidth' | 'borderTopWidth' | 'maxHeight' | 'maxWidth'\ntype DividerStyles = Partial<Record<DividerKey, string>>\n\nexport const VDivider = defineComponent({\n name: 'VDivider',\n\n props: {\n color: String,\n inset: Boolean,\n length: [Number, String],\n thickness: [Number, String],\n vertical: Boolean,\n ...makeThemeProps(),\n },\n\n setup (props, { attrs }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const dividerStyles = computed(() => {\n const styles: DividerStyles = {}\n\n if (props.length) {\n styles[props.vertical ? 'maxHeight' : 'maxWidth'] = convertToUnit(props.length)\n }\n\n if (props.thickness) {\n styles[props.vertical ? 'borderRightWidth' : 'borderTopWidth'] = convertToUnit(props.thickness)\n }\n\n return styles\n })\n\n return () => {\n return (\n <hr\n class={[\n {\n 'v-divider': true,\n 'v-divider--inset': props.inset,\n 'v-divider--vertical': props.vertical,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n ]}\n style={[\n dividerStyles.value,\n backgroundColorStyles.value,\n ]}\n aria-orientation={\n !attrs.role || attrs.role === 'separator'\n ? props.vertical ? 'vertical' : 'horizontal'\n : undefined\n }\n role={`${attrs.role || 'separator'}`}\n />\n )\n }\n },\n})\n","// Utilities\nimport { computed, inject, provide, ref } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\n\n// Depth\nexport const DepthKey: InjectionKey<Ref<number>> = Symbol.for('vuetify:depth')\n\nexport function useDepth (hasPrepend?: Ref<boolean>) {\n const parent = inject(DepthKey, ref(-1))\n\n const depth = computed(() => parent.value + 1 + (hasPrepend?.value ? 1 : 0))\n\n provide(DepthKey, depth)\n\n return depth\n}\n\n// List\nexport const ListKey: InjectionKey<{\n hasPrepend: Ref<boolean>\n updateHasPrepend: (value: boolean) => void\n}> = Symbol.for('vuetify:list')\n\nexport function createList () {\n const parent = inject(ListKey, { hasPrepend: ref(false), updateHasPrepend: () => null })\n\n const data = {\n hasPrepend: ref(false),\n updateHasPrepend: (value: boolean) => {\n if (value) data.hasPrepend.value = value\n },\n }\n\n provide(ListKey, data)\n\n return parent\n}\n\nexport function useList () {\n return inject(ListKey, null)\n}\n","export type OpenStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string>\n\nexport type OpenSelectStrategyFn = (data: {\n id: string\n value: boolean\n opened: Set<string>\n selected: Map<string, 'on' | 'off' | 'indeterminate'>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Set<string> | null\n\nexport type OpenStrategy = {\n open: OpenStrategyFn\n select: OpenSelectStrategyFn\n}\n\nexport const singleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n const newOpened = new Set<string>()\n newOpened.add(id)\n\n let parent = parents.get(id)\n\n while (parent != null) {\n newOpened.add(parent)\n parent = parents.get(parent)\n }\n\n return newOpened\n } else {\n opened.delete(id)\n return opened\n }\n },\n select: () => null,\n}\n\nexport const multipleOpenStrategy: OpenStrategy = {\n open: ({ id, value, opened, parents }) => {\n if (value) {\n let parent = parents.get(id)\n opened.add(id)\n\n while (parent != null && parent !== id) {\n opened.add(parent)\n parent = parents.get(parent)\n }\n\n return opened\n } else {\n opened.delete(id)\n }\n return opened\n },\n select: () => null,\n}\n\nexport const listOpenStrategy: OpenStrategy = {\n open: multipleOpenStrategy.open,\n select: ({ id, value, opened, parents }) => {\n if (!value) return opened\n\n const path: string[] = []\n\n let parent = parents.get(id)\n\n while (parent != null) {\n path.push(parent)\n parent = parents.get(parent)\n }\n\n return new Set(path)\n },\n}\n","/* eslint-disable sonarjs/no-identical-functions */\nexport type SelectStrategyFn = (data: {\n id: string\n value: boolean\n selected: Map<string, 'on' | 'off' | 'indeterminate'>\n children: Map<string, string[]>\n parents: Map<string, string>\n event?: Event\n}) => Map<string, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformInFn = (\n v: string[] | undefined,\n children: Map<string, string[]>,\n parents: Map<string, string>,\n) => Map<string, 'on' | 'off' | 'indeterminate'>\n\nexport type SelectStrategyTransformOutFn = (\n v: Map<string, 'on' | 'off' | 'indeterminate'>,\n children: Map<string, string[]>,\n parents: Map<string, string>,\n) => any[]\n\nexport type SelectStrategy = {\n select: SelectStrategyFn\n in: SelectStrategyTransformInFn\n out: SelectStrategyTransformOutFn\n}\n\nexport const independentSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected }) => {\n // When mandatory and we're trying to deselect when id\n // is the only currently selected item then do nothing\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as string[])\n if (on.length === 1 && on[0] === id) return selected\n }\n\n selected.set(id, value ? 'on' : 'off')\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: v => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n\nexport const independentSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ selected, id, ...rest }) => {\n const singleSelected = selected.has(id) ? new Map([[id, selected.get(id)!]]) : new Map()\n return parentStrategy.select({ ...rest, id, selected: singleSelected })\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n if (v?.length) {\n map = parentStrategy.in(v.slice(0, 1), children, parents)\n }\n\n return map\n },\n out: (v, children, parents) => {\n return parentStrategy.out(v, children, parents)\n },\n }\n\n return strategy\n}\n\nexport const leafSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const leafSingleSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const parentStrategy = independentSingleSelectStrategy(mandatory)\n\n const strategy: SelectStrategy = {\n select: ({ id, selected, children, ...rest }) => {\n if (children.has(id)) return selected\n\n return parentStrategy.select({ id, selected, children, ...rest })\n },\n in: parentStrategy.in,\n out: parentStrategy.out,\n }\n\n return strategy\n}\n\nexport const classicSelectStrategy = (mandatory?: boolean): SelectStrategy => {\n const strategy: SelectStrategy = {\n select: ({ id, value, selected, children, parents }) => {\n const original = new Map(selected)\n\n const items = [id]\n\n while (items.length) {\n const item = items.shift()!\n\n selected.set(item, value ? 'on' : 'off')\n\n if (children.has(item)) {\n items.push(...children.get(item)!)\n }\n }\n\n let parent = parents.get(id)\n\n while (parent) {\n const childrenIds = children.get(parent)!\n const everySelected = childrenIds.every(cid => selected.get(cid) === 'on')\n const noneSelected = childrenIds.every(cid => !selected.has(cid) || selected.get(cid) === 'off')\n\n selected.set(parent, everySelected ? 'on' : noneSelected ? 'off' : 'indeterminate')\n\n parent = parents.get(parent)\n }\n\n // If mandatory and planned deselect results in no selected\n // items then we can't do it, so return original state\n if (mandatory && !value) {\n const on = Array.from(selected.entries()).reduce((arr, [key, value]) => value === 'on' ? [...arr, key] : arr, [] as string[])\n if (on.length === 0) return original\n }\n\n return selected\n },\n in: (v, children, parents) => {\n let map = new Map()\n\n for (const id of (v || [])) {\n map = strategy.select({\n id,\n value: true,\n selected: new Map(map),\n children,\n parents,\n })\n }\n\n return map\n },\n out: (v, children) => {\n const arr = []\n\n for (const [key, value] of v.entries()) {\n if (value === 'on' && !children.has(key)) arr.push(key)\n }\n\n return arr\n },\n }\n\n return strategy\n}\n","import { useProxiedModel } from '@/composables/proxiedModel'\nimport { getCurrentInstance, getUid, propsFactory } from '@/util'\nimport { computed, inject, onBeforeUnmount, provide, ref } from 'vue'\nimport { listOpenStrategy, multipleOpenStrategy, singleOpenStrategy } from './openStrategies'\nimport {\n classicSelectStrategy,\n independentSelectStrategy,\n independentSingleSelectStrategy,\n leafSelectStrategy,\n leafSingleSelectStrategy,\n} from './selectStrategies'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\nimport type { SelectStrategyFn } from './selectStrategies'\nimport type { OpenStrategy } from './openStrategies'\n\nexport type SelectStrategy = 'single-leaf' | 'leaf' | 'independent' | 'single-independent' | 'classic' | SelectStrategyFn\nexport type OpenStrategyProp = 'single' | 'multiple' | 'list' | OpenStrategy\n\nexport interface NestedProps {\n selectStrategy: SelectStrategy | undefined\n openStrategy: OpenStrategyProp | undefined\n selected: string[] | undefined\n opened: string[] | undefined\n mandatory: boolean\n 'onUpdate:selected': ((val: string[]) => void) | undefined\n 'onUpdate:opened': ((val: string[]) => void) | undefined\n}\n\ntype NestedProvide = {\n id: Ref<string | undefined>\n isGroupActivator?: boolean\n root: {\n children: Ref<Map<string, string[]>>\n parents: Ref<Map<string, string>>\n opened: Ref<Set<string>>\n selected: Ref<Map<string, 'on' | 'off' | 'indeterminate'>>\n selectedValues: Ref<string[]>\n register: (id: string, parentId: string | undefined, isGroup?: boolean) => void\n unregister: (id: string) => void\n open: (id: string, value: boolean, event?: Event) => void\n select: (id: string, value: boolean, event?: Event) => void\n }\n}\n\nexport const VNestedSymbol: InjectionKey<NestedProvide> = Symbol.for('vuetify:nested')\n\nexport const emptyNested: NestedProvide = {\n id: ref(),\n root: {\n register: () => null,\n unregister: () => null,\n parents: ref(new Map()),\n children: ref(new Map()),\n open: () => null,\n select: () => null,\n opened: ref(new Set()),\n selected: ref(new Map()),\n selectedValues: ref([]),\n },\n}\n\nexport const makeNestedProps = propsFactory({\n selectStrategy: [String, Function] as Prop<SelectStrategy>,\n openStrategy: [String, Function] as Prop<OpenStrategyProp>,\n opened: Array as Prop<string[]>,\n selected: Array as Prop<string[]>,\n mandatory: Boolean,\n}, 'nested')\n\nexport const useNested = (props: NestedProps) => {\n let isUnmounted = false\n const children = ref(new Map<string, string[]>())\n const parents = ref(new Map<string, string>())\n\n const opened = useProxiedModel(props, 'opened', props.opened, v => new Set(v), v => [...v.values()])\n\n const selectStrategy = computed(() => {\n if (typeof props.selectStrategy === 'object') return props.selectStrategy\n\n switch (props.selectStrategy) {\n case 'single-leaf': return leafSingleSelectStrategy(props.mandatory)\n case 'leaf': return leafSelectStrategy(props.mandatory)\n case 'independent': return independentSelectStrategy(props.mandatory)\n case 'single-independent': return independentSingleSelectStrategy(props.mandatory)\n case 'classic':\n default: return classicSelectStrategy(props.mandatory)\n }\n })\n\n const openStrategy = computed(() => {\n if (typeof props.openStrategy === 'function') return props.openStrategy\n\n switch (props.openStrategy) {\n case 'list': return listOpenStrategy\n case 'single': return singleOpenStrategy\n case 'multiple':\n default: return multipleOpenStrategy\n }\n })\n\n const selected = useProxiedModel(\n props,\n 'selected',\n props.selected,\n v => selectStrategy.value.in(v, children.value, parents.value),\n v => selectStrategy.value.out(v, children.value, parents.value),\n )\n\n onBeforeUnmount(() => {\n isUnmounted = true\n })\n\n function getPath (id: string) {\n const path: string[] = []\n let parent: string | undefined = id\n\n while (parent != null) {\n path.unshift(parent)\n parent = parents.value.get(parent)\n }\n\n return path\n }\n\n const vm = getCurrentInstance('nested')\n\n const nested: NestedProvide = {\n id: ref(),\n root: {\n opened,\n selected,\n selectedValues: computed(() => {\n const arr = []\n\n for (const [key, value] of selected.value.entries()) {\n if (value === 'on') arr.push(key)\n }\n\n return arr\n }),\n register: (id, parentId, isGroup) => {\n parentId && id !== parentId && parents.value.set(id, parentId)\n\n isGroup && children.value.set(id, [])\n\n if (parentId != null) {\n children.value.set(parentId, [...children.value.get(parentId) || [], id])\n }\n },\n unregister: id => {\n if (isUnmounted) return\n\n children.value.delete(id)\n const parent = parents.value.get(id)\n if (parent) {\n const list = children.value.get(parent) ?? []\n children.value.set(parent, list.filter(child => child !== id))\n }\n parents.value.delete(id)\n opened.value.delete(id)\n },\n open: (id, value, event) => {\n vm.emit('click:open', { id, value, path: getPath(id), event })\n\n const newOpened = openStrategy.value.open({\n id,\n value,\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n\n newOpened && (opened.value = newOpened)\n },\n select: (id, value, event) => {\n vm.emit('click:select', { id, value, path: getPath(id), event })\n\n const newSelected = selectStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newSelected && (selected.value = newSelected)\n\n const newOpened = openStrategy.value.select({\n id,\n value,\n selected: new Map(selected.value),\n opened: new Set(opened.value),\n children: children.value,\n parents: parents.value,\n event,\n })\n newOpened && (opened.value = newOpened)\n },\n children,\n parents,\n },\n }\n\n provide(VNestedSymbol, nested)\n\n return nested.root\n}\n\nexport const useNestedItem = (id: Ref<string | undefined>, isGroup: boolean) => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n const computedId = computed(() => id.value ?? getUid().toString())\n\n const item = {\n ...parent,\n id: computedId,\n open: (open: boolean, e: Event) => parent.root.open(computedId.value, open, e),\n isOpen: computed(() => parent.root.opened.value.has(computedId.value)),\n parent: computed(() => parent.root.parents.value.get(computedId.value)),\n select: (selected: boolean, e?: Event) => parent.root.select(computedId.value, selected, e),\n isSelected: computed(() => parent.root.selected.value.get(computedId.value) === 'on'),\n isIndeterminate: computed(() => parent.root.selected.value.get(computedId.value) === 'indeterminate'),\n isLeaf: computed(() => !parent.root.children.value.get(computedId.value)),\n isGroupActivator: parent.isGroupActivator,\n }\n\n !parent.isGroupActivator && parent.root.register(computedId.value, parent.id.value, isGroup)\n\n onBeforeUnmount(() => {\n !parent.isGroupActivator && parent.root.unregister(computedId.value)\n })\n\n isGroup && provide(VNestedSymbol, item)\n\n return item\n}\n\nexport const useNestedGroupActivator = () => {\n const parent = inject(VNestedSymbol, emptyNested)\n\n provide(VNestedSymbol, { ...parent, isGroupActivator: true })\n}\n","// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VExpandTransition } from '@/components/transitions'\n\n// Composables\nimport { useList } from './list'\nimport { makeTagProps } from '@/composables/tag'\nimport { useNestedGroupActivator, useNestedItem } from '@/composables/nested/nested'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, genericComponent } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { InternalListItem } from './VList'\n\nexport type ListGroupActivatorSlot = {\n props: {\n onClick: (e: Event) => void\n appendIcon: string\n class: string\n color?: string\n }\n}\n\nconst VListGroupActivator = defineComponent({\n name: 'VListGroupActivator',\n\n setup (_, { slots }) {\n useNestedGroupActivator()\n\n return () => slots.default?.()\n },\n})\n\nexport const VListGroup = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n activator: [ListGroupActivatorSlot]\n default: []\n }>\n}>()({\n name: 'VListGroup',\n\n props: {\n activeColor: String,\n color: String,\n collapseIcon: {\n type: String,\n default: '$collapse',\n },\n expandIcon: {\n type: String,\n default: '$expand',\n },\n value: null,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { isOpen, open } = useNestedItem(toRef(props, 'value'), true)\n const list = useList()\n\n const onClick = (e: Event) => {\n open(!isOpen.value, e)\n }\n\n const activatorProps: Ref<ListGroupActivatorSlot['props']> = computed(() => ({\n onClick,\n active: isOpen.value,\n appendIcon: isOpen.value ? props.collapseIcon : props.expandIcon,\n class: 'v-list-group__header',\n color: isOpen.value ? props.activeColor ?? props.color : undefined,\n }))\n\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-group',\n {\n 'v-list-group--prepend': list?.hasPrepend.value,\n },\n ]}\n >\n { slots.activator && (\n <VDefaultsProvider\n defaults={{\n VListItemIcon: { color: activatorProps.value.color },\n }}\n >\n <VListGroupActivator>\n { slots.activator({ props: activatorProps.value, isOpen }) }\n </VListGroupActivator>\n </VDefaultsProvider>\n ) }\n <VExpandTransition>\n <div class=\"v-list-group__items\" v-show={isOpen.value}>\n { slots.default?.() }\n </div>\n </VExpandTransition>\n </props.tag>\n )\n }\n },\n})\n","// Components\nimport { makeVAvatarProps, VAvatar } from '@/components/VAvatar/VAvatar'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemAvatar = defineComponent({\n name: 'VListItemAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n return () => (\n <VAvatar\n class={[\n 'v-list-item-avatar',\n {\n 'v-list-item-avatar--start': props.start,\n 'v-list-item-avatar--end': props.end,\n },\n ]}\n { ...props }\n v-slots={ slots }\n />\n )\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VListItemHeader = createSimpleFunctional('v-list-item-header')\n","// Components\nimport { makeVIconProps, VIcon } from '@/components/VIcon/VIcon'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemIcon = defineComponent({\n name: 'VListItemIcon',\n\n props: makeVIconProps(),\n\n setup (props, { slots }) {\n return () => (\n <VIcon\n class={[\n 'v-list-item-icon',\n {\n 'v-list-item-icon--start': props.start,\n 'v-list-item-icon--end': props.end,\n },\n ]}\n { ...props }\n v-slots={ slots }\n />\n )\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VListItemTitle = createSimpleFunctional('v-list-item-title')\n","// Styles\nimport './VListItem.sass'\n\n// Components\nimport { VListItemAvatar } from './VListItemAvatar'\nimport { VListItemHeader } from './VListItemHeader'\nimport { VListItemIcon } from './VListItemIcon'\nimport { VListItemSubtitle } from './VListItemSubtitle'\nimport { VListItemTitle } from './VListItemTitle'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useList } from './list'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, onMounted, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\nimport { useNestedItem } from '@/composables/nested/nested'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\ntype ListItemSlot = {\n isActive: boolean\n activate: (value: boolean) => void\n isSelected: boolean\n select: (value: boolean) => void\n}\n\nexport type ListItemTitleSlot = {\n title?: string\n}\n\nexport type ListItemSubtitleSlot = {\n subtitle?: string\n}\n\nexport const VListItem = genericComponent<new () => {\n $slots: MakeSlots<{\n prepend: [ListItemSlot]\n append: [ListItemSlot]\n default: [ListItemSlot]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n }>\n}>()({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: {\n active: Boolean,\n activeColor: String,\n activeClass: String,\n appendAvatar: String,\n appendIcon: String,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n nav: Boolean,\n prependAvatar: String,\n prependIcon: String,\n subtitle: String,\n title: String,\n value: null,\n link: Boolean,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const link = useLink(props, attrs)\n const id = computed(() => props.value ?? link.href.value)\n const { select, isSelected, isIndeterminate, isGroupActivator, root, parent } = useNestedItem(id, false)\n const list = useList()\n const isActive = computed(() => {\n return props.active || link.isExactActive?.value || isSelected.value\n })\n const roundedProps = computed(() => props.rounded || props.nav)\n const variantProps = computed(() => ({\n color: isActive.value ? props.activeColor ?? props.color : props.color,\n variant: props.variant,\n }))\n\n onMounted(() => {\n if (link.isExactActive?.value && parent.value != null) {\n root.open(parent.value, true)\n }\n })\n\n watch(() => link.isExactActive?.value, val => {\n if (val && parent.value != null) {\n root.open(parent.value, true)\n }\n })\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(roundedProps)\n const lineClasses = computed(() => props.lines ? `v-list-item--${props.lines}-line` : undefined)\n\n const slotProps = computed(() => ({\n isActive: isActive.value,\n select,\n isSelected: isSelected.value,\n isIndeterminate: isIndeterminate.value,\n }))\n\n useRender(() => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasColor = !list || isSelected.value || isActive.value\n const hasTitle = (slots.title || props.title)\n const hasSubtitle = (slots.subtitle || props.subtitle)\n const hasHeader = !!(hasTitle || hasSubtitle)\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const isClickable = !props.disabled && (props.link || link.isClickable.value || (props.value != null && !!list))\n\n list?.updateHasPrepend(hasPrepend)\n\n return (\n <Tag\n class={[\n 'v-list-item',\n {\n 'v-list-item--active': isActive.value,\n 'v-list-item--disabled': props.disabled,\n 'v-list-item--link': isClickable,\n 'v-list-item--nav': props.nav,\n 'v-list-item--prepend': !hasPrepend && list?.hasPrepend.value,\n [`${props.activeClass}`]: isActive.value,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n dimensionStyles.value,\n ]}\n href={ link.href.value }\n tabindex={ isClickable ? 0 : undefined }\n onClick={ isClickable && ((e: MouseEvent) => {\n if (isGroupActivator) return\n\n link.navigate?.(e)\n props.value != null && select(!isSelected.value, e)\n })}\n v-ripple={ isClickable }\n >\n { genOverlays(isClickable || isActive.value, 'v-list-item') }\n\n { hasPrepend && (\n <>\n { props.prependAvatar && (\n <VListItemAvatar\n image={ props.prependAvatar }\n start\n />\n ) }\n\n { props.prependIcon && (\n <VListItemIcon\n icon={ props.prependIcon }\n start\n />\n ) }\n\n { slots.prepend?.(slotProps.value) }\n </>\n ) }\n\n { hasHeader && (\n <VListItemHeader>\n { hasTitle && (\n <VListItemTitle>\n { slots.title\n ? slots.title({ title: props.title })\n : props.title\n }\n </VListItemTitle>\n ) }\n\n { hasSubtitle && (\n <VListItemSubtitle>\n { slots.subtitle\n ? slots.subtitle({ subtitle: props.subtitle })\n : props.subtitle\n }\n </VListItemSubtitle>\n ) }\n </VListItemHeader>\n ) }\n\n { slots.default?.(slotProps.value) }\n\n { hasAppend && (\n <>\n { slots.append?.(slotProps.value) }\n\n { props.appendAvatar && (\n <VListItemAvatar\n image={ props.appendAvatar }\n end\n />\n ) }\n\n { props.appendIcon && (\n <VListItemIcon\n icon={ props.appendIcon }\n end\n />\n ) }\n </>\n ) }\n </Tag>\n )\n })\n },\n})\n\nexport type VListItem = InstanceType<typeof VListItem>\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VListSubheader = defineComponent({\n name: 'VListSubheader',\n\n props: {\n color: String,\n inset: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n return () => {\n const hasText = !!(slots.default || props.text)\n\n return (\n <props.tag\n class={[\n 'v-list-subheader',\n {\n 'v-list-subheader--inset': props.inset,\n 'v-list-subheader--sticky': props.sticky,\n },\n textColorClasses.value,\n ]}\n style={{ textColorStyles }}\n >\n { hasText && (\n <div class=\"v-list-subheader__text\">\n { slots.default?.() ?? props.text }\n </div>\n ) }\n </props.tag>\n )\n }\n },\n})\n","// Components\nimport { VDivider } from '../VDivider'\nimport { VListGroup } from './VListGroup'\nimport { VListItem } from './VListItem'\nimport { VListSubheader } from './VListSubheader'\n\n// Utilities\nimport { genericComponent } from '@/util'\nimport { createList } from './list'\n\n// Types\nimport type { InternalListItem } from './VList'\nimport type { ListItemSubtitleSlot, ListItemTitleSlot } from './VListItem'\nimport type { ListGroupActivatorSlot } from './VListGroup'\nimport type { MakeSlots } from '@/util'\nimport type { Prop } from 'vue'\n\nexport const VListChildren = genericComponent<new <T extends InternalListItem>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n default: []\n header: [ListGroupActivatorSlot]\n item: [T]\n title: [ListItemTitleSlot]\n subtitle: [ListItemSubtitleSlot]\n }>\n}>()({\n name: 'VListChildren',\n\n props: {\n items: Array as Prop<InternalListItem[]>,\n },\n\n setup (props, { slots }) {\n createList()\n\n return () => slots.default?.() ?? props.items?.map(({ children, props: itemProps, type }) => {\n if (type === 'divider') return <VDivider {...itemProps} />\n\n if (type === 'subheader') return <VListSubheader {...itemProps} v-slots={ slots } />\n\n return children ? (\n <VListGroup\n value={ itemProps?.value }\n >\n {{\n activator: ({ props: activatorProps }) => slots.header\n ? slots.header({ ...itemProps, ...activatorProps })\n : <VListItem { ...itemProps } { ...activatorProps } v-slots={ slots } />,\n default: () => (\n <VListChildren items={ children } v-slots={ slots } />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(itemProps) : <VListItem { ...itemProps } v-slots={ slots } />\n )\n })\n },\n})\n","// Styles\nimport './VList.sass'\n\n// Components\nimport { VListChildren } from './VListChildren'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeNestedProps, useNested } from '@/composables/nested/nested'\nimport { makeVariantProps } from '@/composables/variant'\nimport { createList } from './list'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { Prop, PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupActivatorSlot } from './VListGroup'\n\nexport type ListItem = {\n [key: string]: any\n $type?: 'item' | 'subheader' | 'divider'\n $children?: (string | ListItem)[]\n}\n\nexport type InternalListItem = {\n type?: 'item' | 'subheader' | 'divider'\n props?: Record<string, any>\n children?: InternalListItem[]\n}\n\nconst parseItems = (items?: (string | ListItem)[]): InternalListItem[] | undefined => {\n if (!items) return undefined\n\n return items.map(item => {\n if (typeof item === 'string') return { type: 'item', value: item, title: item }\n\n const { $type, $children, ...props } = item\n\n if ($type === 'subheader') return { type: 'subheader', props }\n if ($type === 'divider') return { type: 'divider', props }\n\n return { type: 'item', props, children: parseItems($children) }\n })\n}\n\nexport const VList = genericComponent<new <T>() => {\n $props: {\n items?: T[]\n }\n $slots: MakeSlots<{\n subheader: []\n header: [ListGroupActivatorSlot]\n item: [T]\n }>\n}>()({\n name: 'VList',\n\n props: {\n activeColor: String,\n activeClass: String,\n bgColor: String,\n disabled: Boolean,\n lines: {\n type: [Boolean, String] as PropType<'one' | 'two' | 'three' | false>,\n default: 'one',\n },\n nav: Boolean,\n items: Array as Prop<ListItem[]>,\n\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:selected': (val: string[]) => true,\n 'update:opened': (val: string[]) => true,\n 'click:open': (value: { id: string, value: boolean, path: string[] }) => true,\n 'click:select': (value: { id: string, value: boolean, path: string[] }) => true,\n },\n\n setup (props, { slots }) {\n const items = computed(() => parseItems(props.items))\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const { open, select } = useNested(props)\n const lineClasses = computed(() => props.lines ? `v-list--${props.lines}-line` : undefined)\n const activeColor = toRef(props, 'activeColor')\n const color = toRef(props, 'color')\n\n createList()\n\n provideDefaults({\n VListGroup: {\n activeColor,\n color,\n },\n VListItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor,\n color,\n density: toRef(props, 'density'),\n disabled: toRef(props, 'disabled'),\n lines: toRef(props, 'lines'),\n nav: toRef(props, 'nav'),\n variant: toRef(props, 'variant'),\n },\n })\n\n useRender(() => {\n return (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n lineClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n ]}\n >\n <VListChildren items={ items.value } v-slots={ slots }></VListChildren>\n </props.tag>\n )\n })\n\n return {\n open,\n select,\n }\n },\n})\n\nexport type VList = InstanceType<typeof VList>\n","import { createSimpleFunctional } from '@/util'\n\nexport const VListImg = createSimpleFunctional('v-list-img')\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemAction = defineComponent({\n name: 'VListItemAction',\n\n props: {\n start: Boolean,\n end: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-item-action',\n {\n 'v-list-item-action--start': props.start,\n 'v-list-item-action--end': props.end,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VListItemMedia = defineComponent({\n name: 'VListItemMedia',\n\n props: {\n start: Boolean,\n end: Boolean,\n\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-item-media',\n {\n 'v-list-item-media--start': props.start,\n 'v-list-item-media--end': props.end,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n","// Utilities\nimport { IN_BROWSER, propsFactory } from '@/util'\n\n// Types\nexport interface DelayProps {\n closeDelay?: number | string\n openDelay?: number | string\n}\n\n// Composables\nexport const makeDelayProps = propsFactory({\n closeDelay: [Number, String],\n openDelay: [Number, String],\n}, 'delay')\n\nexport function useDelay (props: DelayProps, cb?: (value: boolean) => void) {\n const delays: Partial<Record<keyof DelayProps, number>> = {}\n const runDelayFactory = (prop: keyof DelayProps) => (): Promise<boolean> => {\n // istanbul ignore next\n if (!IN_BROWSER) return Promise.resolve(true)\n\n const active = prop === 'openDelay'\n\n delays.closeDelay && window.clearTimeout(delays.closeDelay)\n delete delays.closeDelay\n\n delays.openDelay && window.clearTimeout(delays.openDelay)\n delete delays.openDelay\n\n return new Promise(resolve => {\n const delay = parseInt(props[prop] ?? 0, 10)\n\n delays[prop] = window.setTimeout(() => {\n cb?.(active)\n resolve(active)\n }, delay)\n })\n }\n\n return {\n runCloseDelay: runDelayFactory('closeDelay'),\n runOpenDelay: runDelayFactory('openDelay'),\n }\n}\n","import type { InjectionKey } from 'vue'\n\ninterface MenuProvide {\n register (): void\n unregister (): void\n closeParents (): void\n}\n\nexport const VMenuSymbol: InjectionKey<MenuProvide> = Symbol.for('vuetify:v-menu')\n","// Utilities\nimport { getCurrentInstance, IN_BROWSER, isComponentInstance, propsFactory, SUPPORTS_FOCUS_VISIBLE } from '@/util'\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { VMenuSymbol } from '@/components/VMenu/shared'\nimport {\n computed,\n effectScope,\n inject,\n nextTick,\n onScopeDispose,\n ref,\n watch,\n watchEffect,\n} from 'vue'\n\n// Types\nimport type { DelayProps } from '@/composables/delay'\nimport type {\n ComponentInternalInstance,\n ComponentPublicInstance,\n EffectScope,\n PropType,\n Ref,\n} from 'vue'\n\ninterface ActivatorProps extends DelayProps {\n activator?: 'parent' | string | Element | ComponentPublicInstance\n activatorProps: Record<string, any>\n\n openOnClick: boolean | undefined\n openOnHover: boolean\n openOnFocus: boolean | undefined\n\n closeOnContentClick: boolean\n}\n\nexport const makeActivatorProps = propsFactory({\n activator: [String, Object] as PropType<ActivatorProps['activator']>,\n activatorProps: {\n type: Object as PropType<ActivatorProps['activatorProps']>,\n default: () => ({}),\n },\n\n openOnClick: {\n type: Boolean,\n default: undefined,\n },\n openOnHover: Boolean,\n openOnFocus: {\n type: Boolean,\n default: undefined,\n },\n\n closeOnContentClick: Boolean,\n\n ...makeDelayProps(),\n})\n\nexport function useActivator (\n props: ActivatorProps,\n { isActive, isTop }: { isActive: Ref<boolean>, isTop: Ref<boolean> }\n) {\n const activatorEl = ref<HTMLElement>()\n\n let isHovered = false\n let isFocused = false\n\n const openOnFocus = computed(() => props.openOnFocus || (props.openOnFocus == null && props.openOnHover))\n const openOnClick = computed(() => props.openOnClick || (props.openOnClick == null && !props.openOnHover && !openOnFocus.value))\n\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => {\n if (\n value === (\n (props.openOnHover && isHovered) ||\n (openOnFocus.value && isFocused)\n ) && !(props.openOnHover && isActive.value && !isTop.value)\n ) {\n isActive.value = value\n }\n })\n\n const availableEvents = {\n click: (e: MouseEvent) => {\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n isActive.value = !isActive.value\n },\n mouseenter: (e: MouseEvent) => {\n isHovered = true\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n runOpenDelay()\n },\n mouseleave: (e: MouseEvent) => {\n isHovered = false\n runCloseDelay()\n },\n focus: (e: FocusEvent) => {\n if (\n SUPPORTS_FOCUS_VISIBLE &&\n !(e.target as HTMLElement).matches(':focus-visible')\n ) return\n\n isFocused = true\n e.stopPropagation()\n activatorEl.value = (e.currentTarget || e.target) as HTMLElement\n\n runOpenDelay()\n },\n blur: (e: FocusEvent) => {\n isFocused = false\n e.stopPropagation()\n\n runCloseDelay()\n },\n }\n\n const activatorEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (openOnClick.value) {\n events.click = availableEvents.click\n }\n if (props.openOnHover) {\n events.mouseenter = availableEvents.mouseenter\n events.mouseleave = availableEvents.mouseleave\n }\n if (openOnFocus.value) {\n events.focus = availableEvents.focus\n events.blur = availableEvents.blur\n }\n\n return events\n })\n\n const contentEvents = computed(() => {\n const events: Partial<typeof availableEvents> = {}\n\n if (props.openOnHover) {\n events.mouseenter = () => {\n isHovered = true\n runOpenDelay()\n }\n events.mouseleave = () => {\n isHovered = false\n runCloseDelay()\n }\n }\n\n if (props.closeOnContentClick) {\n const menu = inject(VMenuSymbol, null)\n events.click = () => {\n isActive.value = false\n menu?.closeParents()\n }\n }\n\n return events\n })\n\n watch(isTop, val => {\n if (val && props.openOnHover && !isHovered) {\n isActive.value = false\n }\n })\n\n const activatorRef = ref()\n watchEffect(() => {\n if (!activatorRef.value) return\n\n nextTick(() => {\n const activator = activatorRef.value\n activatorEl.value = isComponentInstance(activator) ? activator.$el : activator\n })\n })\n\n const vm = getCurrentInstance('useActivator')\n let scope: EffectScope\n watch(() => !!props.activator, val => {\n if (val && IN_BROWSER) {\n scope = effectScope()\n scope.run(() => {\n _useActivator(props, vm, { activatorEl, activatorEvents })\n })\n } else if (scope) {\n scope.stop()\n }\n }, { flush: 'post', immediate: true })\n\n return { activatorEl, activatorRef, activatorEvents, contentEvents }\n}\n\nfunction _useActivator (\n props: ActivatorProps,\n vm: ComponentInternalInstance,\n { activatorEl, activatorEvents }: Pick<ReturnType<typeof useActivator>, 'activatorEl' | 'activatorEvents'>\n) {\n watch(() => props.activator, (val, oldVal) => {\n if (oldVal && val !== oldVal) {\n const activator = getActivator(oldVal)\n activator && unbindActivatorProps(activator)\n }\n if (val) {\n nextTick(() => bindActivatorProps())\n }\n }, { immediate: true })\n\n watch(() => props.activatorProps, () => {\n bindActivatorProps()\n })\n\n onScopeDispose(() => {\n unbindActivatorProps()\n })\n\n function bindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.addEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n if (_props[k] == null) {\n el.removeAttribute(k)\n } else {\n el.setAttribute(k, _props[k])\n }\n })\n }\n\n function unbindActivatorProps (el = getActivator(), _props = props.activatorProps) {\n if (!el) return\n\n Object.entries(activatorEvents.value).forEach(([name, cb]) => {\n el.removeEventListener(name, cb as (e: Event) => void)\n })\n\n Object.keys(_props).forEach(k => {\n el.removeAttribute(k)\n })\n }\n\n function getActivator (selector = props.activator): HTMLElement | undefined {\n let activator\n if (selector) {\n if (selector === 'parent') {\n activator = vm?.proxy?.$el?.parentNode\n } else if (typeof selector === 'string') {\n // Selector\n activator = document.querySelector(selector)\n } else if ('$el' in selector) {\n // Component (ref)\n activator = selector.$el\n } else {\n // HTMLElement | Element\n activator = selector\n }\n }\n\n // The activator should only be a valid element (Ignore comments and text nodes)\n activatorEl.value = activator?.nodeType === Node.ELEMENT_NODE ? activator : null\n\n return activatorEl.value\n }\n}\n","const block = ['top', 'bottom'] as const\nconst inline = ['start', 'end'] as const\ntype Tblock = typeof block[number]\ntype Tinline = typeof inline [number]\nexport type Anchor =\n | Tblock\n | Tinline\n | 'center'\n | 'center center'\n | `${Tblock} ${Tinline | 'center'}`\n | `${Tinline} ${Tblock | 'center'}`\nexport type ParsedAnchor =\n | { side: 'center', align: 'center' }\n | { side: Tblock, align: Tinline | 'center' }\n | { side: Tinline, align: Tblock | 'center' }\n\n/** Parse a raw anchor string into an object */\nexport function parseAnchor (anchor: Anchor) {\n let [side, align] = anchor.split(' ')\n if (!align) {\n align =\n side === 'top' || side === 'bottom' ? 'start'\n : side === 'start' || side === 'end' ? 'top'\n : 'center'\n }\n return {\n side,\n align,\n } as ParsedAnchor\n}\n\n/** Get an anchor directly opposite, with the same alignment */\nexport function oppositeAnchor (anchor: ParsedAnchor) {\n return {\n side: {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n start: 'end',\n end: 'start',\n }[anchor.side],\n align: anchor.align,\n } as ParsedAnchor\n}\n\n/** Convert start/end into left/right */\nexport function physicalAnchor (anchor: ParsedAnchor, el: HTMLElement) {\n const { side, align } = anchor\n const { direction } = window.getComputedStyle(el)\n\n const map: Record<string, string | undefined> = direction === 'ltr' ? {\n start: 'left',\n end: 'right',\n } : {\n start: 'right',\n end: 'left',\n }\n\n return (map[side] ?? side) + ' ' + (map[align] ?? align)\n}\n","import type { ParsedAnchor } from './anchor'\nimport type { Box } from '@/util/box'\n\ntype Point = { x: number, y: number }\ndeclare class As<T extends string> {\n private as: T\n}\ntype ElementPoint = Point & As<'element'>\ntype ViewportPoint = Point & As<'viewport'>\ntype Offset = Point & As<'offset'>\n\n/** Convert a point in local space to viewport space */\nexport function elementToViewport (point: ElementPoint, offset: Offset | Box) {\n return {\n x: point.x + offset.x,\n y: point.y + offset.y,\n } as ViewportPoint\n}\n\n/** Convert a point in viewport space to local space */\nexport function viewportToElement (point: ViewportPoint, offset: Offset | Box) {\n return {\n x: point.x - offset.x,\n y: point.y - offset.y,\n } as ElementPoint\n}\n\n/** Get the difference between two points */\nexport function getOffset<T extends Point> (a: T, b: T) {\n return {\n x: a.x - b.x,\n y: a.y - b.y,\n } as Offset\n}\n\n/** Convert an anchor object to a point in local space */\nexport function anchorToPoint (anchor: ParsedAnchor, box: Box): ViewportPoint {\n if (anchor.side === 'top' || anchor.side === 'bottom') {\n const { side, align } = anchor\n\n const x: number =\n align === 'start' ? 0\n : align === 'center' ? box.width / 2\n : align === 'end' ? box.width\n : align\n const y: number =\n side === 'top' ? 0\n : side === 'bottom' ? box.height\n : side\n\n return elementToViewport({ x, y } as ElementPoint, box)\n } else if (anchor.side === 'start' || anchor.side === 'end') {\n const { side, align } = anchor\n\n const x: number =\n side === 'start' ? 0\n : side === 'end' ? box.width\n : side\n const y: number =\n align === 'top' ? 0\n : align === 'center' ? box.height / 2\n : align === 'bottom' ? box.height\n : align\n\n return elementToViewport({ x, y } as ElementPoint, box)\n }\n\n return elementToViewport({\n x: box.width / 2,\n y: box.height / 2,\n } as ElementPoint, box)\n}\n","// Utilities\nimport { computed, effectScope, nextTick, onScopeDispose, ref, watch, watchEffect } from 'vue'\nimport { convertToUnit, getScrollParent, IN_BROWSER, isFixedPosition, nullifyTransforms, propsFactory } from '@/util'\nimport { oppositeAnchor, parseAnchor, physicalAnchor } from './util/anchor'\nimport { anchorToPoint, getOffset } from './util/point'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\nimport type { Anchor } from './util/anchor'\nimport { Box } from '@/util/box'\n\nexport interface PositionStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n}\n\nconst positionStrategies = {\n static: staticPositionStrategy, // specific viewport position, usually centered\n connected: connectedPositionStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n positionStrategy: keyof typeof positionStrategies | (\n (\n data: PositionStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n ) => undefined | { updatePosition: (e: Event) => void }\n )\n anchor: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makePositionStrategyProps = propsFactory({\n positionStrategy: {\n type: [String, Function] as PropType<StrategyProps['positionStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in positionStrategies,\n },\n anchor: {\n type: String as PropType<StrategyProps['anchor']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String],\n})\n\nexport function usePositionStrategies (\n props: StrategyProps,\n data: PositionStrategyData\n) {\n const contentStyles = ref({})\n const updatePosition = ref<(e: Event) => void>()\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n updatePosition.value = undefined\n\n if (!(IN_BROWSER && data.isActive.value && props.positionStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.positionStrategy === 'function') {\n updatePosition.value = props.positionStrategy(data, props, contentStyles)?.updatePosition\n } else {\n updatePosition.value = positionStrategies[props.positionStrategy](data, props, contentStyles)?.updatePosition\n }\n })\n })\n\n IN_BROWSER && window.addEventListener('resize', onResize, { passive: true })\n\n onScopeDispose(() => {\n IN_BROWSER && window.removeEventListener('resize', onResize)\n updatePosition.value = undefined\n scope?.stop()\n })\n\n function onResize (e: Event) {\n updatePosition.value?.(e)\n }\n\n return {\n contentStyles,\n updatePosition,\n }\n}\n\nfunction staticPositionStrategy () {\n // TODO\n}\n\nfunction connectedPositionStrategy (data: PositionStrategyData, 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 = computed(() => parseAnchor(props.anchor))\n const preferredOrigin = computed(() =>\n props.origin === 'overlap' ? preferredAnchor.value\n : props.origin === 'auto' ? oppositeAnchor(preferredAnchor.value)\n : parseAnchor(props.origin)\n )\n const doesOverlap = computed(() => {\n return preferredAnchor.value.side === preferredOrigin.value.side\n })\n\n const configuredMaxHeight = computed(() => {\n const val = parseFloat(props.maxHeight!)\n return isNaN(val) ? Infinity : val\n })\n\n const configuredMinWidth = computed(() => {\n const val = parseFloat(props.minWidth!)\n return isNaN(val) ? Infinity : val\n })\n\n let observe = false\n if (IN_BROWSER) {\n const observer = new ResizeObserver(() => {\n if (observe) updatePosition()\n })\n observer.observe(data.activatorEl.value!)\n observer.observe(data.contentEl.value!)\n\n onScopeDispose(() => {\n observer.disconnect()\n })\n }\n\n // eslint-disable-next-line max-statements\n function updatePosition () {\n observe = false\n requestAnimationFrame(() => {\n requestAnimationFrame(() => observe = true)\n })\n\n const targetBox = data.activatorEl.value!.getBoundingClientRect()\n // TODO: offset shouldn't affect width\n if (props.offset) {\n targetBox.x -= +props.offset\n targetBox.y -= +props.offset\n targetBox.width += +props.offset * 2\n targetBox.height += +props.offset * 2\n }\n\n const scrollParent = getScrollParent(data.contentEl.value)\n const viewportWidth = scrollParent.clientWidth\n const viewportHeight = Math.min(scrollParent.clientHeight, window.innerHeight)\n\n let contentBox\n {\n const scrollables = new Map<Element, [number, number]>()\n data.contentEl.value!.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 = data.contentEl.value!.style.maxWidth\n const initialMaxHeight = data.contentEl.value!.style.maxHeight\n data.contentEl.value!.style.removeProperty('max-width')\n data.contentEl.value!.style.removeProperty('max-height')\n\n contentBox = nullifyTransforms(data.contentEl.value!)\n contentBox.x -= parseFloat(data.contentEl.value!.style.left) || 0\n contentBox.y -= parseFloat(data.contentEl.value!.style.top) || 0\n\n data.contentEl.value!.style.maxWidth = initialMaxWidth\n data.contentEl.value!.style.maxHeight = initialMaxHeight\n scrollables.forEach((position, el) => {\n el.scrollTo(...position)\n })\n }\n\n const contentHeight = Math.min(configuredMaxHeight.value, contentBox.height)\n\n // Regard undefined maxWidth as maximally occupying whole remaining space by default\n const maxFreeSpaceWidth = props.maxWidth === undefined ? Number.MAX_VALUE : parseInt(props.maxWidth ?? 0, 10)\n\n const viewportMargin = 12\n const freeSpace = {\n top: targetBox.top - viewportMargin,\n bottom: viewportHeight - targetBox.bottom - viewportMargin,\n left: Math.min(targetBox.left - viewportMargin, maxFreeSpaceWidth),\n right: Math.min(viewportWidth - targetBox.right - viewportMargin, maxFreeSpaceWidth),\n }\n\n const fitsY = (preferredAnchor.value.side === 'bottom' && contentHeight <= freeSpace.bottom) ||\n (preferredAnchor.value.side === 'top' && contentHeight <= freeSpace.top)\n\n const anchor = fitsY ? preferredAnchor.value\n : (preferredAnchor.value.side === 'bottom' && freeSpace.top > freeSpace.bottom) ||\n (preferredAnchor.value.side === 'top' && freeSpace.bottom > freeSpace.top) ? oppositeAnchor(preferredAnchor.value)\n : preferredAnchor.value\n const origin = fitsY ? preferredOrigin.value : oppositeAnchor(anchor)\n\n const canFill = doesOverlap.value || ['center', 'top', 'bottom'].includes(anchor.side)\n\n const maxWidth = canFill ? Math.min(viewportWidth, Math.max(targetBox.width, viewportWidth - viewportMargin * 2))\n : anchor.side === 'end' ? freeSpace.right\n : anchor.side === 'start' ? freeSpace.left\n : null\n const minWidth = Math.min(configuredMinWidth.value, maxWidth!, targetBox.width)\n const maxHeight = fitsY ? configuredMaxHeight.value : Math.min(\n configuredMaxHeight.value,\n Math.floor(anchor.side === 'top' ? freeSpace.top : freeSpace.bottom)\n )\n\n const targetPoint = anchorToPoint(anchor, targetBox)\n const contentPoint = anchorToPoint(origin, new Box({\n ...contentBox,\n height: Math.min(contentHeight, maxHeight),\n }))\n\n const { x, y } = getOffset(targetPoint, contentPoint)\n\n Object.assign(contentStyles.value, {\n '--v-overlay-anchor-origin': physicalAnchor(anchor, data.activatorEl.value!),\n top: convertToUnit(Math.round(y)),\n left: convertToUnit(Math.round(x)), // TODO: right for origin=\"end\", rtl\n transformOrigin: physicalAnchor(origin, data.activatorEl.value!),\n minWidth: convertToUnit(minWidth),\n maxWidth: convertToUnit(maxWidth),\n maxHeight: convertToUnit(maxHeight),\n })\n }\n\n watch(\n () => [preferredAnchor.value, preferredOrigin.value, props.offset],\n () => updatePosition(),\n { immediate: !activatorFixed }\n )\n\n if (activatorFixed) nextTick(() => updatePosition())\n requestAnimationFrame(() => {\n if (contentStyles.value.maxHeight) updatePosition()\n })\n\n return { updatePosition }\n}\n","export function isFixedPosition (el?: HTMLElement) {\n while (el) {\n if (window.getComputedStyle(el).position === 'fixed') {\n return true\n }\n el = el.offsetParent as HTMLElement\n }\n return false\n}\n","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","// 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 none: null,\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-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.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","// Utilities\nimport { computed, warn } from 'vue'\nimport { IN_BROWSER } from '@/util'\n\n// Types\nimport type { Ref } from 'vue'\n\nexport function useTeleport (target: Ref<boolean | string | Element>) {\n const teleportTarget = computed(() => {\n const _target = target.value\n\n if (_target === true || !IN_BROWSER) return undefined\n\n const targetElement =\n _target === false ? document.body\n : typeof _target === 'string' ? document.querySelector(_target)\n : _target\n\n if (targetElement == null) {\n warn(`Unable to locate target ${_target}`)\n return undefined\n }\n\n if (!useTeleport.cache.has(targetElement)) {\n const el = document.createElement('div')\n el.className = 'v-overlay-container'\n targetElement.appendChild(el)\n useTeleport.cache.set(targetElement, el)\n }\n\n return useTeleport.cache.get(targetElement)\n })\n\n return { teleportTarget }\n}\nuseTeleport.cache = new WeakMap<Element, Element>()\n","// Utilities\nimport { computed, ref, watch } from 'vue'\n\n// Types\nimport type { Ref } from 'vue'\nimport { propsFactory } from '@/util'\n\nexport const makeLazyProps = propsFactory({\n eager: Boolean,\n}, 'lazy')\n\nexport function useLazy (props: { eager: boolean }, active: Ref<boolean>) {\n const isBooted = ref(false)\n const hasContent = computed(() => isBooted.value || props.eager || active.value)\n\n watch(active, () => isBooted.value = true)\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n return { isBooted, hasContent, onAfterLeave }\n}\n","import { effectScope, onScopeDispose, readonly, ref, toRaw, watch, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, EffectScope, Ref } from 'vue'\n\nconst stack = ref<ComponentInternalInstance[]>([])\n\nexport function useStack (isActive: Ref<boolean>) {\n const vm = getCurrentInstance('useStack')\n let scope: EffectScope | undefined\n watch(isActive, val => {\n if (val) {\n scope = effectScope()\n scope.run(() => {\n stack.value.push(vm)\n\n onScopeDispose(() => {\n const idx = stack.value.indexOf(vm)\n stack.value.splice(idx, 1)\n })\n })\n } else {\n scope?.stop()\n }\n }, { immediate: true })\n\n const isTop = ref(true)\n watchEffect(() => {\n const _isTop = toRaw(stack.value[stack.value.length - 1]) === vm\n setTimeout(() => isTop.value = _isTop)\n })\n\n return {\n isTop: readonly(isTop),\n }\n}\n","import { attachedRoot } from '@/util'\nimport type { DirectiveBinding } from 'vue'\n\ninterface ClickOutsideBindingArgs {\n handler: (e: MouseEvent) => void\n closeConditional?: (e: Event) => boolean\n include?: () => HTMLElement[]\n}\n\ninterface ClickOutsideDirectiveBinding extends DirectiveBinding {\n value: ((e: MouseEvent) => void) | ClickOutsideBindingArgs\n}\n\nfunction defaultConditional () {\n return true\n}\n\nfunction checkEvent (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding): boolean {\n // The include element callbacks below can be expensive\n // so we should avoid calling them when we're not active.\n // Explicitly check for false to allow fallback compatibility\n // with non-toggleable components\n if (!e || checkIsActive(e, binding) === false) return false\n\n // If we're clicking inside the shadowroot, then the app root doesn't get the same\n // level of introspection as to _what_ we're clicking. We want to check to see if\n // our target is the shadowroot parent container, and if it is, ignore.\n const root = attachedRoot(el)\n if (\n typeof ShadowRoot !== 'undefined' &&\n root instanceof ShadowRoot &&\n root.host === e.target\n ) return false\n\n // Check if additional elements were passed to be included in check\n // (click must be outside all included elements, if any)\n const elements = ((typeof binding.value === 'object' && binding.value.include) || (() => []))()\n // Add the root element for the component this directive was defined on\n elements.push(el)\n\n // Check if it's a click outside our elements, and then if our callback returns true.\n // Non-toggleable components should take action in their callback and return falsy.\n // Toggleable can return true if it wants to deactivate.\n // Note that, because we're in the capture phase, this callback will occur before\n // the bubbling click event on any outside elements.\n return !elements.some(el => el?.contains(e.target as Node))\n}\n\nfunction checkIsActive (e: MouseEvent, binding: ClickOutsideDirectiveBinding): boolean | void {\n const isActive = (typeof binding.value === 'object' && binding.value.closeConditional) || defaultConditional\n\n return isActive(e)\n}\n\nfunction directive (e: MouseEvent, el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const handler = typeof binding.value === 'function' ? binding.value : binding.value.handler\n\n el._clickOutside!.lastMousedownWasOutside && checkEvent(e, el, binding) && setTimeout(() => {\n checkIsActive(e, binding) && handler && handler(e)\n }, 0)\n}\n\nfunction handleShadow (el: HTMLElement, callback: Function): void {\n const root = attachedRoot(el)\n\n callback(document)\n\n if (typeof ShadowRoot !== 'undefined' && root instanceof ShadowRoot) {\n callback(root)\n }\n}\n\nexport const ClickOutside = {\n // [data-app] may not be found\n // if using bind, inserted makes\n // sure that the root element is\n // available, iOS does not support\n // clicks on body\n mounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n const onClick = (e: Event) => directive(e as MouseEvent, el, binding)\n const onMousedown = (e: Event) => {\n el._clickOutside!.lastMousedownWasOutside = checkEvent(e as MouseEvent, el, binding)\n }\n\n handleShadow(el, (app: HTMLElement) => {\n app.addEventListener('click', onClick, true)\n app.addEventListener('mousedown', onMousedown, true)\n })\n\n if (!el._clickOutside) {\n el._clickOutside = {\n lastMousedownWasOutside: true,\n }\n }\n\n el._clickOutside[binding.instance!.$.uid] = {\n onClick,\n onMousedown,\n }\n },\n\n unmounted (el: HTMLElement, binding: ClickOutsideDirectiveBinding) {\n if (!el._clickOutside) return\n\n handleShadow(el, (app: HTMLElement) => {\n if (!app || !el._clickOutside?.[binding.instance!.$.uid]) return\n\n const { onClick, onMousedown } = el._clickOutside[binding.instance!.$.uid]!\n\n app.removeEventListener('click', onClick, true)\n app.removeEventListener('mousedown', onMousedown, true)\n })\n\n delete el._clickOutside[binding.instance!.$.uid]\n },\n}\n\nexport default ClickOutside\n","// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeActivatorProps, useActivator } from './useActivator'\nimport { makePositionStrategyProps, usePositionStrategies } from './positionStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useBackButton } from '@/composables/router'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRtl } from '@/composables/rtl'\nimport { useTeleport } from '@/composables/teleport'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { useStack } from '@/composables/stack'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport {\n convertToUnit,\n genericComponent,\n getScrollParent,\n IN_BROWSER,\n standardEasing,\n useRender,\n} from '@/util'\nimport {\n computed,\n mergeProps,\n ref,\n Teleport,\n toHandlers,\n Transition,\n watch,\n} from 'vue'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { BackgroundColorData } from '@/composables/color'\n\ninterface ScrimProps {\n [key: string]: unknown\n modelValue: boolean\n color: BackgroundColorData\n}\nfunction Scrim (props: ScrimProps) {\n const { modelValue, color, ...rest } = props\n return (\n <Transition name=\"fade-transition\" appear>\n { props.modelValue && (\n <div\n class={[\n 'v-overlay__scrim',\n props.color.backgroundColorClasses.value,\n ]}\n style={ props.color.backgroundColorStyles.value }\n { ...rest }\n />\n )}\n </Transition>\n )\n}\n\nexport type OverlaySlots = MakeSlots<{\n default: [{ isActive: Ref<boolean> }]\n activator: [{ isActive: boolean, props: Record<string, any> }]\n}>\n\nexport const VOverlay = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: {\n absolute: Boolean,\n attach: [Boolean, String, Object] as PropType<boolean | string | Element>,\n contained: Boolean,\n contentClass: null,\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n\n ...makeActivatorProps(),\n ...makeDimensionProps(),\n ...makePositionStrategyProps(),\n ...makeScrollStrategyProps(),\n ...makeThemeProps(),\n ...makeTransitionProps(),\n ...makeLazyProps(),\n },\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n afterLeave: () => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { teleportTarget } = useTeleport(computed(() => props.attach || props.contained))\n const { themeClasses } = provideTheme(props)\n const { rtlClasses } = useRtl()\n const { hasContent, onAfterLeave } = useLazy(props, isActive)\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\n }))\n const { isTop } = useStack(isActive)\n const { activatorEl, activatorRef, activatorEvents, contentEvents } = useActivator(props, { isActive, isTop })\n const { dimensionStyles } = useDimension(props)\n\n const root = ref<HTMLElement>()\n const contentEl = ref<HTMLElement>()\n const { contentStyles, updatePosition } = usePositionStrategies(props, {\n contentEl,\n activatorEl,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n activatorEl,\n isActive,\n updatePosition,\n })\n\n function onClickOutside (e: MouseEvent) {\n emit('click:outside', e)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n }\n\n function closeConditional () {\n return isActive.value && isTop.value\n }\n\n IN_BROWSER && watch(isActive, val => {\n if (val) {\n window.addEventListener('keydown', onKeydown)\n } else {\n window.removeEventListener('keydown', onKeydown)\n }\n }, { immediate: true })\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape' && isTop.value) {\n if (!props.persistent) {\n isActive.value = false\n } else animateClick()\n }\n }\n\n useBackButton(next => {\n if (isTop.value && isActive.value) {\n next(false)\n if (!props.persistent) isActive.value = false\n else animateClick()\n } else {\n next()\n }\n })\n\n const top = ref<number>()\n watch(() => isActive.value && (props.absolute || props.contained) && teleportTarget.value == null, val => {\n if (val) {\n const scrollParent = getScrollParent(root.value)\n if (scrollParent && scrollParent !== document.scrollingElement) {\n top.value = scrollParent.scrollTop\n }\n }\n })\n\n // Add a quick \"bounce\" animation to the content\n function animateClick () {\n if (props.noClickAnimation) return\n\n contentEl.value?.animate([\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n props: mergeProps({\n ref: activatorRef,\n }, toHandlers(activatorEvents.value), props.activatorProps),\n }) }\n\n { IN_BROWSER && (\n <Teleport\n disabled={ !teleportTarget.value }\n to={ teleportTarget.value }\n >\n { hasContent.value && (\n <div\n class={[\n 'v-overlay',\n {\n 'v-overlay--absolute': props.absolute || props.contained,\n 'v-overlay--active': isActive.value,\n 'v-overlay--contained': props.contained,\n },\n themeClasses.value,\n rtlClasses.value,\n ]}\n style={{\n top: convertToUnit(top.value),\n }}\n ref={ root }\n {...attrs}\n >\n <Scrim\n color={ scrimColor }\n modelValue={ isActive.value && !!props.scrim }\n />\n <MaybeTransition\n appear\n persisted\n transition={ props.transition }\n target={ activatorEl.value }\n onAfterLeave={() => { onAfterLeave(); emit('afterLeave') }}\n >\n <div\n ref={ contentEl }\n v-show={ isActive.value }\n v-click-outside={{ handler: onClickOutside, closeConditional, include: () => [activatorEl.value] }}\n class={[\n 'v-overlay__content',\n props.contentClass,\n ]}\n style={[\n dimensionStyles.value,\n contentStyles.value,\n ]}\n { ...toHandlers(contentEvents.value) }\n >\n { slots.default?.({ isActive }) }\n </div>\n </MaybeTransition>\n </div>\n )}\n </Teleport>\n ) }\n </>\n ))\n\n return {\n animateClick,\n contentEl,\n activatorEl,\n isTop,\n updatePosition,\n }\n },\n})\n\nexport type VOverlay = InstanceType<typeof VOverlay>\n","// Styles\nimport './VMenu.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\nimport { VDialogTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject, provide, ref, watch } from 'vue'\nimport { genericComponent, getUid, useRender } from '@/util'\nimport { VMenuSymbol } from './shared'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport { useForwardRef } from '@/composables/forwardRef'\n\nexport const VMenu = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VMenu',\n\n inheritAttrs: false,\n\n props: {\n // TODO\n // disableKeys: Boolean,\n modelValue: Boolean,\n id: String,\n\n ...makeTransitionProps({\n transition: { component: VDialogTransition },\n } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const uid = getUid()\n const id = computed(() => props.id || `v-menu-${uid}`)\n\n const overlay = ref<VOverlay>()\n\n const parent = inject(VMenuSymbol, null)\n let openChildren = 0\n provide(VMenuSymbol, {\n register () {\n ++openChildren\n },\n unregister () {\n --openChildren\n },\n closeParents () {\n setTimeout(() => {\n if (!openChildren) {\n isActive.value = false\n parent?.closeParents()\n }\n }, 40)\n },\n })\n\n watch(isActive, val => {\n val ? parent?.register() : parent?.unregister()\n })\n\n function onClickOutside () {\n parent?.closeParents()\n }\n\n useRender(() => (\n <VOverlay\n ref={ overlay }\n v-model={ isActive.value }\n class={[\n 'v-menu',\n ]}\n transition={ props.transition }\n absolute\n closeOnContentClick\n positionStrategy=\"connected\"\n scrollStrategy=\"reposition\"\n scrim={ false }\n openDelay=\"300\"\n closeDelay=\"250\"\n activatorProps={{\n 'aria-haspopup': 'menu',\n 'aria-expanded': String(isActive.value),\n 'aria-owns': id.value,\n }}\n onClick:outside={ onClickOutside }\n { ...attrs }\n v-slots={{\n default: slots.default,\n activator: slots.activator,\n }}\n />\n ))\n\n return useForwardRef({ id }, overlay)\n },\n})\n\nexport type VMenu = InstanceType<typeof VMenu>\n","// Styles\nimport './VMessages.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Composables\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, wrapInArray } from '@/util'\nimport { computed } from 'vue'\nimport type { PropType } from 'vue'\n\nexport const VMessages = defineComponent({\n name: 'VMessages',\n\n props: {\n active: Boolean,\n color: String,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n\n ...makeTransitionProps({\n transition: {\n component: VSlideYTransition,\n leaveAbsolute: true,\n group: true,\n },\n }),\n },\n\n setup (props, { slots }) {\n const messages = computed(() => wrapInArray(props.messages))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n\n return () => (\n <MaybeTransition\n transition={ props.transition }\n tag=\"div\"\n class={[\n 'v-messages',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { props.active && (\n messages.value.map((message, i) => (\n <div\n class=\"v-messages__message\"\n key={ `${i}-${messages.value}` }\n >\n { slots.message ? slots.message({ message }) : message }\n </div>\n ))\n ) }\n </MaybeTransition>\n )\n },\n})\n","// Utilities\nimport { computed, inject, provide, ref, watch } from 'vue'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { consoleWarn, propsFactory } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\n\nexport interface FormProvide {\n register: (\n id: number | string,\n validate: () => Promise<string[]>,\n reset: () => void,\n resetValidation: () => void,\n isValid: Ref<boolean | null>,\n ) => void\n unregister: (id: number | string) => void\n items: Ref<FormField[]>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isValidating: Ref<boolean>\n}\n\ninterface FormField {\n id: number | string\n validate: () => Promise<string[]>\n reset: () => void\n resetValidation: () => void\n isValid: boolean | null\n}\n\ninterface FormValidationResult {\n id: number | string\n errorMessages: string[]\n}\n\nexport interface SubmitEventPromise extends SubmitEvent, Promise<{ valid: boolean, errorMessages: FormValidationResult[] }> {}\n\nexport const FormKey: InjectionKey<FormProvide> = Symbol.for('vuetify:form')\n\nexport interface FormProps {\n disabled: boolean\n fastFail: boolean\n lazyValidation: boolean\n readonly: boolean\n modelValue: boolean | null\n 'onUpdate:modelValue': ((val: boolean | null) => void) | undefined\n}\n\nexport const makeFormProps = propsFactory({\n disabled: Boolean,\n fastFail: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n})\n\nexport function createForm (props: FormProps) {\n const model = useProxiedModel(props, 'modelValue')\n\n const isDisabled = computed(() => props.disabled)\n const isReadonly = computed(() => props.readonly)\n const isValidating = ref(false)\n const items = ref<FormField[]>([])\n const errorMessages = ref<FormValidationResult[]>([])\n\n async function validate () {\n const results = []\n let valid = true\n\n errorMessages.value = []\n isValidating.value = true\n\n for (const item of items.value) {\n const itemErrorMessages = await item.validate()\n\n if (itemErrorMessages.length > 0) {\n valid = false\n\n results.push({\n id: item.id,\n errorMessages: itemErrorMessages,\n })\n }\n\n if (!valid && props.fastFail) break\n }\n\n errorMessages.value = results\n isValidating.value = false\n\n return { valid, errorMessages: errorMessages.value }\n }\n\n function reset () {\n items.value.forEach(item => item.reset())\n model.value = null\n }\n\n function resetValidation () {\n items.value.forEach(item => item.resetValidation())\n errorMessages.value = []\n model.value = null\n }\n\n watch(items, () => {\n let valid = null\n\n if (items.value.some(item => item.isValid === false)) {\n valid = false\n } else if (items.value.every(item => item.isValid === true)) {\n valid = true\n }\n\n model.value = valid\n }, {\n deep: true,\n })\n\n provide(FormKey, {\n register: (id, validate, reset, resetValidation, isValid) => {\n if (items.value.some(item => item.id === id)) {\n consoleWarn(`Duplicate input name \"${id}\"`)\n }\n\n items.value.push({\n id,\n validate,\n reset,\n resetValidation,\n isValid: isValid as unknown as boolean | null, // TODO: Better way to type this unwrapping?\n })\n },\n unregister: id => {\n items.value = items.value.filter(item => {\n return item.id !== id\n })\n },\n isDisabled,\n isReadonly,\n isValidating,\n items,\n })\n\n return {\n errorMessages,\n isDisabled,\n isReadonly,\n isValidating,\n items,\n validate,\n reset,\n resetValidation,\n }\n}\n\nexport function useForm () {\n return inject(FormKey, null)\n}\n","// Composables\nimport { useForm } from '@/composables/form'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, onBeforeMount, onBeforeUnmount, ref, watch } from 'vue'\nimport { getCurrentInstanceName, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type ValidationResult = string | true\nexport type ValidationRule =\n | ValidationResult\n | PromiseLike<ValidationResult>\n | ((value: any) => ValidationResult)\n | ((value: any) => PromiseLike<ValidationResult>)\n\nexport interface ValidationProps {\n disabled: boolean\n error: boolean\n errorMessages: string | string[]\n maxErrors: string | number\n name: string | undefined\n readonly: boolean\n rules: ValidationRule[]\n modelValue: any\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n}\n\nexport const makeValidationProps = propsFactory({\n disabled: Boolean,\n error: Boolean,\n errorMessages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n maxErrors: {\n type: [Number, String],\n default: 1,\n },\n name: String,\n readonly: Boolean,\n rules: {\n type: Array as PropType<ValidationRule[]>,\n default: () => ([]),\n },\n modelValue: null,\n})\n\nexport function useValidation (\n props: ValidationProps,\n name = getCurrentInstanceName(),\n) {\n const model = useProxiedModel(props, 'modelValue')\n const form = useForm()\n const internalErrorMessages = ref<string[]>([])\n const isPristine = ref(true)\n const isDirty = computed(() => wrapInArray(model.value === '' ? null : model.value).length > 0)\n const isDisabled = computed(() => !!(props.disabled || form?.isDisabled.value))\n const isReadonly = computed(() => !!(props.readonly || form?.isReadonly.value))\n const errorMessages = computed(() => {\n return props.errorMessages.length\n ? wrapInArray(props.errorMessages)\n : internalErrorMessages.value\n })\n const isValid = computed(() => {\n if (props.error || errorMessages.value.length) return false\n\n return isPristine.value ? null : true\n })\n const isValidating = ref(false)\n const validationClasses = computed(() => {\n return {\n [`${name}--error`]: isValid.value === false,\n [`${name}--dirty`]: isDirty.value,\n [`${name}--disabled`]: isDisabled.value,\n [`${name}--readonly`]: isReadonly.value,\n }\n })\n\n const uid = computed(() => props.name ?? getUid())\n\n onBeforeMount(() => {\n form?.register(uid.value, validate, reset, resetValidation, isValid)\n })\n\n onBeforeUnmount(() => {\n form?.unregister(uid.value)\n })\n\n watch(model, () => {\n if (model.value != null) validate()\n })\n\n function reset () {\n resetValidation()\n model.value = null\n }\n\n function resetValidation () {\n isPristine.value = true\n internalErrorMessages.value = []\n }\n\n async function validate () {\n const results = []\n\n isValidating.value = true\n\n for (const rule of props.rules) {\n if (results.length >= (props.maxErrors || 1)) {\n break\n }\n\n const handler = typeof rule === 'function' ? rule : () => rule\n const result = await handler(model.value)\n\n if (result === true) continue\n\n if (typeof result !== 'string') {\n // eslint-disable-next-line no-console\n console.warn(`${result} is not a valid value. Rule functions must return boolean true or a string.`)\n\n continue\n }\n\n results.push(result)\n }\n\n internalErrorMessages.value = results\n isValidating.value = false\n isPristine.value = false\n\n return internalErrorMessages.value\n }\n\n return {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n }\n}\n","// Styles\nimport './VInput.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VMessages } from '@/components/VMessages'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, getUid, pick, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport interface VInputSlot {\n id: ComputedRef<string>\n isDirty: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n isReadonly: ComputedRef<boolean>\n isPristine: Ref<boolean>\n isValid: ComputedRef<boolean | null>\n isValidating: Ref<boolean>\n reset: () => void\n resetValidation: () => void\n validate: () => void\n}\n\nexport const makeVInputProps = propsFactory({\n id: String,\n appendIcon: String,\n prependIcon: String,\n hideDetails: [Boolean, String] as PropType<boolean | 'auto'>,\n messages: {\n type: [Array, String] as PropType<string | string[]>,\n default: () => ([]),\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['horizontal', 'vertical'].includes(v),\n },\n\n ...makeDensityProps(),\n ...makeValidationProps(),\n})\n\nexport type VInputSlots = MakeSlots<{\n default: [VInputSlot]\n prepend: [VInputSlot]\n append: [VInputSlot]\n details: [VInputSlot]\n}>\n\nexport const VInput = genericComponent<new <T>() => {\n $slots: VInputSlots\n}>()({\n name: 'VInput',\n\n props: {\n ...makeVInputProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots, emit }) {\n const { densityClasses } = useDensity(props)\n const {\n errorMessages,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n validationClasses,\n } = useValidation(props)\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const slotProps = computed<VInputSlot>(() => ({\n id,\n isDirty,\n isDisabled,\n isReadonly,\n isPristine,\n isValid,\n isValidating,\n reset,\n resetValidation,\n validate,\n }))\n\n useRender(() => {\n const hasPrepend = !!(slots.prepend || props.prependIcon)\n const hasAppend = !!(slots.append || props.appendIcon)\n const hasMessages = !!(\n props.messages?.length ||\n errorMessages.value.length\n )\n const hasDetails = !props.hideDetails || (\n props.hideDetails === 'auto' &&\n hasMessages\n )\n\n return (\n <div class={[\n 'v-input',\n `v-input--${props.direction}`,\n densityClasses.value,\n validationClasses.value,\n ]}\n >\n { hasPrepend && (\n <div\n class=\"v-input__prepend\"\n >\n { slots?.prepend?.(slotProps.value) }\n\n { props.prependIcon && (\n <VIcon\n onClick={ attrs['onClick:prepend'] }\n icon={ props.prependIcon }\n />\n ) }\n </div>\n ) }\n\n { slots.default && (\n <div class=\"v-input__control\">\n { slots.default?.(slotProps.value) }\n </div>\n ) }\n\n { hasAppend && (\n <div\n class=\"v-input__append\"\n >\n { slots?.append?.(slotProps.value) }\n\n { props.appendIcon && (\n <VIcon\n onClick={ attrs['onClick:append'] }\n icon={ props.appendIcon }\n />\n ) }\n </div>\n ) }\n\n { hasDetails && (\n <div class=\"v-input__details\">\n <VMessages\n active={ hasMessages }\n messages={ errorMessages.value.length > 0\n ? errorMessages.value\n : props.messages\n }\n v-slots={{ message: slots.message }}\n />\n\n { slots.details?.(slotProps.value) }\n </div>\n ) }\n </div>\n )\n })\n\n return {\n reset,\n resetValidation,\n validate,\n }\n },\n})\n\nexport type VInput = InstanceType<typeof VInput>\n\nexport function filterInputProps (props: ExtractPropTypes<ReturnType<typeof makeVInputProps>>) {\n return pick(props, Object.keys(VInput.props) as any)\n}\n","// Styles\nimport './VLabel.sass'\n\n// Composables\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VLabel = defineComponent({\n name: 'VLabel',\n\n props: {\n text: String,\n\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n return () => (\n <label class=\"v-label\">\n { props.text }\n\n { slots.default?.() }\n </label>\n )\n },\n})\n\nexport type VLabel = InstanceType<typeof VLabel>\n","// Components\nimport { VLabel } from '@/components/VLabel'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VFieldLabel = defineComponent({\n name: 'VFieldLabel',\n\n props: {\n floating: Boolean,\n },\n\n setup (props, { slots }) {\n return () => {\n return (\n <VLabel\n class={[\n 'v-field-label',\n { 'v-field-label--floating': props.floating },\n ]}\n aria-hidden={ props.floating || undefined }\n v-slots={ slots }\n />\n )\n }\n },\n})\n\nexport type VFieldLabel = InstanceType<typeof VFieldLabel>\n","// Utilities\nimport { onBeforeUnmount, ref, watch } from 'vue'\nimport { SUPPORTS_INTERSECTION } from '@/util'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting = ref(false)\n\n if (SUPPORTS_INTERSECTION) {\n const observer = new IntersectionObserver((entries: IntersectionObserverEntry[]) => {\n callback?.(entries, observer)\n\n isIntersecting.value = !!entries.find(entry => entry.isIntersecting)\n })\n\n onBeforeUnmount(() => {\n observer.disconnect()\n })\n\n watch(intersectionRef, (newValue, oldValue) => {\n if (oldValue) {\n observer.unobserve(oldValue)\n isIntersecting.value = false\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n }\n\n return { intersectionRef, isIntersecting }\n}\n","// Styles\nimport './VProgressLinear.sass'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { convertToUnit, defineComponent } from '@/util'\nimport { computed, Transition } from 'vue'\n\nexport const VProgressLinear = defineComponent({\n name: 'VProgressLinear',\n\n props: {\n active: {\n type: Boolean,\n default: true,\n },\n bgColor: String,\n bgOpacity: [Number, String],\n bufferValue: {\n type: [Number, String],\n default: 0,\n },\n clickable: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 4,\n },\n indeterminate: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n reverse: Boolean,\n stream: Boolean,\n striped: Boolean,\n roundedBar: Boolean,\n\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const progress = useProxiedModel(props, 'modelValue')\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const { textColorClasses, textColorStyles } = useTextColor(props, 'color')\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => props.bgColor || props.color))\n const { backgroundColorClasses: barColorClasses, backgroundColorStyles: barColorStyles } = useBackgroundColor(props, 'color')\n const { roundedClasses } = useRounded(props)\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n const max = computed(() => parseInt(props.max, 10))\n const height = computed(() => parseInt(props.height, 10))\n const normalizedBuffer = computed(() => parseFloat(props.bufferValue) / max.value * 100)\n const normalizedValue = computed(() => parseFloat(progress.value) / max.value * 100)\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const transition = computed(() => props.indeterminate ? 'fade-transition' : 'slide-x-transition')\n const opacity = computed(() => {\n return props.bgOpacity == null\n ? props.bgOpacity\n : parseFloat(props.bgOpacity)\n })\n\n function handleClick (e: MouseEvent) {\n if (!intersectionRef.value) return\n\n const { left, right, width } = intersectionRef.value.getBoundingClientRect()\n const value = isReversed.value ? (width - e.clientX) + (right - width) : e.clientX - left\n\n progress.value = Math.round(value / width * max.value)\n }\n\n return () => (\n <props.tag\n ref={ intersectionRef }\n class={[\n 'v-progress-linear',\n {\n 'v-progress-linear--active': props.active && isIntersecting.value,\n 'v-progress-linear--reverse': isReversed.value,\n 'v-progress-linear--rounded': props.rounded,\n 'v-progress-linear--rounded-bar': props.roundedBar,\n 'v-progress-linear--striped': props.striped,\n },\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={{\n height: props.active ? convertToUnit(height.value) : 0,\n '--v-progress-linear-height': convertToUnit(height.value),\n }}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax={ props.max }\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n onClick={ props.clickable && handleClick }\n >\n { props.stream && (\n <div\n class={[\n 'v-progress-linear__stream',\n textColorClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n [isReversed.value ? 'left' : 'right']: convertToUnit(-height.value),\n borderTop: `${convertToUnit(height.value / 2)} dotted`,\n opacity: opacity.value,\n top: `calc(50% - ${convertToUnit(height.value / 4)})`,\n width: convertToUnit(100 - normalizedBuffer.value, '%'),\n '--v-progress-linear-stream-to': convertToUnit(height.value * (isReversed.value ? 1 : -1)),\n }}\n />\n ) }\n\n <div\n class={[\n 'v-progress-linear__background',\n backgroundColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n {\n opacity: opacity.value,\n width: convertToUnit((!props.stream ? 100 : normalizedBuffer.value), '%'),\n },\n ]}\n />\n\n <Transition name={ transition.value }>\n { !props.indeterminate ? (\n <div\n class={[\n 'v-progress-linear__determinate',\n barColorClasses.value,\n ]}\n style={[\n barColorStyles.value,\n { width: convertToUnit(normalizedValue.value, '%') },\n ]}\n />\n ) : (\n <div class=\"v-progress-linear__indeterminate\">\n { ['long', 'short'].map(bar => (\n <div\n key={ bar }\n class={[\n 'v-progress-linear__indeterminate',\n bar,\n barColorClasses.value,\n ]}\n style={ barColorStyles.value }\n />\n )) }\n </div>\n ) }\n </Transition>\n\n { slots.default && (\n <div class=\"v-progress-linear__content\">\n { slots.default({ value: normalizedValue.value, buffer: normalizedBuffer.value }) }\n </div>\n ) }\n </props.tag>\n )\n },\n})\n","// Components\nimport { VProgressLinear } from '@/components/VProgressLinear'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes } from 'vue'\nimport type { SetupContext } from '@vue/runtime-core'\nimport type { MakeSlots, SlotsToProps } from '@/util'\n\nexport interface LoaderSlotProps {\n color: string | undefined\n isActive: boolean\n}\n\nexport interface LoaderProps {\n loading: boolean | string\n}\n\n// Composables\nexport const makeLoaderProps = propsFactory({\n loading: Boolean,\n}, 'loader')\n\nexport function useLoader (\n props: LoaderProps,\n name = getCurrentInstanceName(),\n) {\n const loaderClasses = computed(() => ({\n [`${name}--loading`]: props.loading,\n }))\n\n return { loaderClasses }\n}\n\nexport function LoaderSlot (\n props: {\n active: boolean\n name: string\n color?: string\n } & ExtractPropTypes<SlotsToProps<MakeSlots<{\n default: [LoaderSlotProps]\n }>>>,\n { slots }: SetupContext,\n) {\n return (\n <div class={`${props.name}__loader`}>\n { slots.default?.({\n color: props.color,\n isActive: props.active,\n } as LoaderSlotProps) || (\n <VProgressLinear\n active={ props.active }\n color={ props.color }\n height=\"2\"\n indeterminate\n />\n )}\n </div>\n )\n}\n","// Components\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed } from 'vue'\nimport { getCurrentInstanceName, propsFactory } from '@/util'\n\n// Types\nexport interface FocusProps {\n focused: boolean\n 'onUpdate:focused': ((val: boolean) => void) | undefined\n}\n\n// Composables\nexport const makeFocusProps = propsFactory({\n focused: Boolean,\n}, 'focus')\n\nexport function useFocus (\n props: FocusProps,\n name = getCurrentInstanceName()\n) {\n const isFocused = useProxiedModel(props, 'focused')\n const focusClasses = computed(() => {\n return ({\n [`${name}--focused`]: isFocused.value,\n })\n })\n\n function focus () {\n isFocused.value = true\n }\n\n function blur () {\n isFocused.value = false\n }\n\n return { focusClasses, isFocused, focus, blur }\n}\n","// Styles\nimport './VField.sass'\n\n// Components\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\nimport { VFieldLabel } from './VFieldLabel'\n\n// Composables\nimport { LoaderSlot, makeLoaderProps, useLoader } from '@/composables/loader'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getUid,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { VInputSlot } from '@/components/VInput/VInput'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', 'contained', 'plain'] as const\ntype Variant = typeof allowedVariants[number]\n\nexport interface DefaultInputSlot {\n isActive: Ref<boolean>\n isFocused: Ref<boolean>\n controlRef: Ref<HTMLElement | undefined>\n focus: () => void\n blur: () => void\n}\n\nexport interface VFieldSlot extends DefaultInputSlot {\n props: Record<string, unknown>\n}\n\nexport const makeVFieldProps = propsFactory({\n appendInnerIcon: String,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: String,\n default: '$clear',\n },\n active: Boolean,\n color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: String,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n prependInner: [DefaultInputSlot & VInputSlot]\n appendInner: [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\n loader: [LoaderSlotProps]\n default: [VFieldSlot]\n}>\n\nexport const VField = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: VFieldSlots\n}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000\n const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'))\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n el.animate([\n { transform: 'translate(0)' },\n { transform: `translate(${x}px, ${y}px) scale(${scale})`, ...width },\n ], {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n\n emit('click:control', e)\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots.prependInner || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots.appendInner || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--has-label': !!label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ props.loading }\n color={ props.error ? 'error' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div\n class=\"v-field__prepend-inner\"\n >\n { props.prependInnerIcon && (\n <VIcon\n onClick={ attrs['onClick:prependInner'] }\n icon={ props.prependInnerIcon }\n />\n ) }\n\n { slots?.prependInner?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\">\n { ['contained', 'filled'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel\n ref={ floatingLabelRef }\n class={[textColorClasses.value]}\n floating\n >\n { label }\n </VFieldLabel>\n ) }\n\n <VFieldLabel ref={ labelRef } for={ id.value }>\n { label }\n </VFieldLabel>\n\n { slots.default?.({\n ...slotProps.value,\n props: {\n id: id.value,\n class: 'v-field__input',\n },\n focus,\n blur,\n } as VFieldSlot) }\n </div>\n\n { hasClear && (\n <VExpandXTransition>\n <div\n class=\"v-field__clearable\"\n v-show={ props.dirty }\n >\n { slots.clear\n ? slots.clear()\n : (\n <VIcon\n onClick={ (e: MouseEvent) => emit('click:clear', e) }\n icon={ props.clearIcon }\n />\n )\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasAppend && (\n <div\n class=\"v-field__append-inner\"\n >\n { slots?.appendInner?.(slotProps.value) }\n\n { props.appendInnerIcon && (\n <VIcon\n onClick={ attrs['onClick:appendInner'] }\n icon={ props.appendInnerIcon }\n />\n ) }\n </div>\n ) }\n\n <div\n class={[\n 'v-field__outline',\n textColorClasses.value,\n ]}\n >\n { isOutlined && (\n <>\n <div class=\"v-field__outline__start\" />\n\n { hasLabel.value && (\n <div class=\"v-field__outline__notch\">\n <VFieldLabel ref={ floatingLabelRef } floating>\n { label }\n </VFieldLabel>\n </div>\n ) }\n\n <div class=\"v-field__outline__end\" />\n </>\n ) }\n\n { ['plain', 'underlined'].includes(props.variant) && hasLabel.value && (\n <VFieldLabel ref={ floatingLabelRef } floating>\n { label }\n </VFieldLabel>\n ) }\n </div>\n </div>\n )\n })\n\n return {\n controlRef,\n }\n },\n})\n\nexport type VField = InstanceType<typeof VField>\n\n// TODO: this is kinda slow, might be better to implicitly inherit props instead\nexport function filterFieldProps (attrs: Record<string, unknown>) {\n return pick(attrs, Object.keys(VField.props))\n}\n","// Styles\nimport './VCounter.sass'\n\n// Components\nimport { VSlideYTransition } from '@/components/transitions'\n\n// Utilities\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VCounter = defineComponent({\n name: 'VCounter',\n\n functional: true,\n\n props: {\n active: Boolean,\n max: [Number, String],\n value: {\n type: [Number, String],\n default: 0,\n },\n\n ...makeTransitionProps({\n transition: { component: VSlideYTransition },\n }),\n },\n\n setup (props, { slots }) {\n const counter = computed(() => {\n return props.max ? `${props.value} / ${props.max}` : String(props.value)\n })\n\n return () => {\n return (\n <MaybeTransition transition={ props.transition }>\n <div\n v-show={ props.active }\n class=\"v-counter\"\n >\n { slots.default\n ? slots.default({\n counter: counter.value,\n max: props.max,\n value: props.value,\n })\n : counter.value\n }\n </div>\n </MaybeTransition>\n )\n }\n },\n})\n","// Styles\nimport './VTextField.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { filterFieldProps, makeVFieldProps, VField } from '@/components/VField/VField'\nimport { VCounter } from '@/components/VCounter'\n\n// Composables\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, ref } from 'vue'\nimport { filterInputAttrs, genericComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\n\nconst activeTypes = ['color', 'file', 'time', 'date', 'datetime-local', 'week', 'month']\n\nexport const VTextField = genericComponent<new <T>() => {\n $slots: VInputSlots & VFieldSlots\n}>()({\n name: 'VTextField',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n suffix: String,\n type: {\n type: String,\n default: 'text',\n },\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'click:input': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value ?? '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n activeTypes.includes(props.type) ||\n props.persistentPlaceholder ||\n isFocused.value\n ))\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isFocused.value || props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n emit('click:clear', e)\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class={[\n 'v-text-field',\n {\n 'v-text-field--prefixed': props.prefix,\n 'v-text-field--suffixed': props.suffix,\n 'v-text-field--flush-details': ['plain', 'underlined'].includes(props.variant),\n },\n ]}\n onClick:prepend={ attrs['onClick:prepend'] }\n onClick:append={ attrs['onClick:append'] }\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n onMousedown={ (e: MouseEvent) => {\n if (e.target === inputRef.value) return\n\n e.preventDefault()\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n onClick:prependInner={ attrs['onClick:prependInner'] }\n onClick:appendInner={ attrs['onClick:prependInner'] }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => {\n return (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <div\n class={ fieldClass }\n onClick={ e => emit('click:input', e) }\n >\n { slots.default?.() }\n\n <input\n ref={ inputRef }\n v-model={ model.value }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n name={ props.name }\n placeholder={ props.placeholder }\n size={ 1 }\n type={ props.type }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n </div>\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n )\n },\n }}\n </VField>\n ),\n details: hasCounter ? () => (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return useForwardRef({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VTextField = InstanceType<typeof VTextField>\n","// Utilities\nimport { computed } from 'vue'\nimport { getObjectValueByPath, getPropertyFromItem, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem {\n [key: string]: any\n title: string\n value: any\n children?: InternalItem[]\n}\n\nexport interface ItemProps {\n items: (string | Partial<InternalItem>)[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: string\n itemProps: (item: any) => Partial<InternalItem>\n}\n\n// Composables\nexport const makeItemsProps = propsFactory({\n items: {\n type: Array as PropType<ItemProps['items']>,\n default: () => ([]),\n },\n itemTitle: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'title',\n },\n itemValue: {\n type: [String, Array, Function] as PropType<SelectItemKey>,\n default: 'value',\n },\n itemChildren: {\n type: String,\n default: 'children',\n },\n itemProps: {\n type: Function as PropType<ItemProps['itemProps']>,\n default: (item: any) => ({}),\n },\n}, 'item')\n\nexport function transformItem (props: ItemProps, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getObjectValueByPath(item, props.itemChildren)\n\n return {\n title,\n value,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n ...props.itemProps?.(item),\n }\n}\n\nexport function transformItems (props: ItemProps, items: ItemProps['items']) {\n const array: InternalItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nexport function useItems (props: ItemProps) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\n}\n","import { computed, inject, provide, ref } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\nimport en from '@/locale/en'\n\n// Types\nimport type { App, InjectionKey, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport interface LocaleMessages {\n [key: string]: LocaleMessages | string\n}\n\nexport interface LocaleOptions {\n defaultLocale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleProps {\n locale?: string\n fallbackLocale?: string\n messages?: LocaleMessages\n}\n\nexport interface LocaleInstance {\n current: Ref<string>\n fallback: Ref<string>\n messages: Ref<LocaleMessages>\n t: (key: string, ...params: unknown[]) => string\n n: (value: number) => string\n}\n\nexport interface LocaleAdapter {\n createRoot: (app: App) => LocaleInstance\n getScope: () => LocaleInstance\n createScope: (options?: LocaleProps) => LocaleInstance\n}\n\nexport const LocaleAdapterSymbol: InjectionKey<LocaleAdapter> = Symbol.for('vuetify:locale-adapter')\nexport const VuetifyLocaleSymbol: InjectionKey<LocaleInstance> = Symbol.for('vuetify:locale')\n\nexport function provideLocale (props?: LocaleProps) {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.createScope(props)\n}\n\nexport function useLocale () {\n const adapter = inject(LocaleAdapterSymbol)\n\n if (!adapter) throw new Error('[Vuetify] Could not find injected locale adapter')\n\n return adapter.getScope()\n}\n\nfunction isLocaleAdapter (x: any): x is LocaleAdapter {\n return !!x && x.hasOwnProperty('getScope') && x.hasOwnProperty('createScope') && x.hasOwnProperty('createRoot')\n}\n\nexport function createLocaleAdapter (app: App, options?: LocaleOptions | LocaleAdapter) {\n const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options)\n\n const rootInstance = adapter.createRoot(app)\n\n return { adapter, rootInstance }\n}\n\nconst LANG_PREFIX = '$vuetify.'\n\nconst replace = (str: string, params: unknown[]) => {\n return str.replace(/\\{(\\d+)\\}/g, (match: string, index: string) => {\n /* istanbul ignore next */\n return String(params[+index])\n })\n}\n\nconst createTranslateFunction = (\n current: Ref<string>,\n fallback: Ref<string>,\n messages: Ref<LocaleMessages>,\n) => {\n return (key: string, ...params: unknown[]) => {\n if (!key.startsWith(LANG_PREFIX)) {\n return replace(key, params)\n }\n\n const shortKey = key.replace(LANG_PREFIX, '')\n const currentLocale = current.value && messages.value[current.value]\n const fallbackLocale = fallback.value && messages.value[fallback.value]\n\n let str: string = getObjectValueByPath(currentLocale, shortKey, null)\n\n if (!str) {\n consoleWarn(`Translation key \"${key}\" not found in \"${current.value}\", trying fallback locale`)\n str = getObjectValueByPath(fallbackLocale, shortKey, null)\n }\n\n if (!str) {\n consoleError(`Translation key \"${key}\" not found in fallback`)\n str = key\n }\n\n if (typeof str !== 'string') {\n consoleError(`Translation key \"${key}\" has a non-string value`)\n str = key\n }\n\n return replace(str, params)\n }\n}\n\nfunction createNumberFunction (current: Ref<string>, fallback: Ref<string>) {\n return (value: number, options?: Intl.NumberFormatOptions) => {\n const numberFormat = new Intl.NumberFormat([current.value, fallback.value], options)\n\n return numberFormat.format(value)\n }\n}\n\nexport function createDefaultLocaleAdapter (options?: LocaleOptions): LocaleAdapter {\n const createScope = (options: {\n current: MaybeRef<string>\n fallback: MaybeRef<string>\n messages: MaybeRef<LocaleMessages>\n }) => {\n const current = ref(options.current)\n const fallback = ref(options.fallback)\n const messages = ref(options.messages)\n\n return {\n current,\n fallback,\n messages,\n t: createTranslateFunction(current, fallback, messages),\n n: createNumberFunction(current, fallback),\n }\n }\n\n return {\n createRoot: app => {\n const rootScope = createScope({\n current: options?.defaultLocale ?? 'en',\n fallback: options?.fallbackLocale ?? 'en',\n messages: options?.messages ?? { en },\n })\n\n app.provide(VuetifyLocaleSymbol, rootScope)\n\n return rootScope\n },\n getScope: () => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n return currentScope\n },\n createScope: options => {\n const currentScope = inject(VuetifyLocaleSymbol)\n\n if (!currentScope) throw new Error('[Vuetify] Could not find injected locale instance')\n\n const newScope = createScope({\n current: computed(() => options?.locale ?? currentScope.current.value),\n fallback: computed(() => options?.locale ?? currentScope.fallback.value),\n messages: computed(() => options?.messages ?? currentScope.messages.value),\n })\n\n provide(VuetifyLocaleSymbol, newScope)\n\n return newScope\n },\n }\n}\n","// Styles\nimport './VSelect.sass'\n\n// Components\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeItemsProps, useItems } from '@/composables/items'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref, watch } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { LinkProps } from '@/composables/router'\nimport type { MakeSlots } from '@/util'\n\nexport interface InternalSelectItem {\n title: string\n value: any\n index: number\n}\n\nexport interface DefaultSelectionSlot {\n selection: InternalSelectItem\n}\n\nexport interface DefaultChipSlot extends DefaultSelectionSlot {\n props: {\n 'onClick:close': (e: Event) => void\n modelValue: any\n }\n}\n\nexport type SelectItem = string | (string | number)[] | ((item: Record<string, any>, fallback?: any) => any) | (LinkProps & {\n text: string\n})\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menuIcon: {\n type: String,\n default: '$dropdown',\n },\n modelValue: {\n type: [Number, String, Array],\n default: () => ([]),\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n\n ...makeItemsProps(),\n}, 'select')\n\nexport const VSelect = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n chip: [DefaultChipSlot]\n default: []\n selection: [DefaultSelectionSlot]\n }>\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: 'scale-transition' }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const activator = ref()\n const menu = ref(false)\n const { items } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v),\n (v: any) => props.multiple ? v : v[0]\n )\n const selections = computed(() => items.value.filter(item => model.value.includes(item.value)))\n const selected = computed(() => selections.value.map(selection => selection.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (props.hideNoData && !items.value.length) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (['Enter', 'ArrowDown', ' '].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape', 'Tab'].includes(e.key)) {\n menu.value = false\n }\n }\n function select (item: any) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item.value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item.value]\n menu.value = false\n }\n }\n\n watch(() => vTextFieldRef.value, val => {\n activator.value = val.$el.querySelector('.v-input__control')\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n class={[\n 'v-select',\n {\n 'v-select--active-menu': menu.value,\n 'v-select--chips': !!props.chips,\n [`v-select--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n readonly\n onClick:clear={ onClear }\n onClick:input={ onClickControl }\n onClick:control={ onClickControl }\n onBlur={ () => menu.value = false }\n modelValue={ model.value.join(', ') }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n { activator.value && (\n <VMenu\n v-model={ menu.value }\n activator={ activator.value }\n contentClass=\"v-select__content\"\n eager={ props.eager }\n openOnClick={ false }\n transition={ props.transition }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n >\n { !items.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { items.value.map(item => (\n <VListItem\n { ...item }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onClick={ () => select(item) }\n />\n )) }\n </VList>\n </VMenu>\n ) }\n\n { selections.value.map((selection, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(selection)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div class=\"v-select__selection\">\n { hasChips && (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: selection.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ props: slotProps, selection })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) }\n\n { !hasChips && (\n slots.selection\n ? slots.selection({ selection })\n : (\n <span class=\"v-select__selection-text\">\n { selection.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-select__selection-comma\">,</span>\n ) }\n </span>\n )\n ) }\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return useForwardRef({}, vTextFieldRef)\n },\n})\n\nexport type VSelect = InstanceType<typeof VSelect>\n","/* eslint-disable max-statements */\n/* eslint-disable no-labels */\n\n// Utilities\nimport { getPropertyFromItem, propsFactory, wrapInArray } from '@/util'\nimport { computed, unref } from 'vue'\n\n// Types\nimport type { PropType, Ref } from 'vue'\nimport type { MaybeRef } from '@/util'\n\nexport type FilterFunction = (value: string, query: string, item?: any) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\nexport type FilterMatch = number | [number, number] | [number, number][] | boolean\nexport type FilterMode = 'some' | 'every' | 'union' | 'intersection'\n\nexport interface FilterProps {\n customFilter?: FilterFunction\n customKeyFilter?: FilterKeyFunctions\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n}\n\n// Composables\nexport const defaultFilter: FilterFunction = (value, query, item) => {\n if (value == null || query == null) return -1\n\n return value.toString().toLocaleLowerCase().indexOf(query.toString().toLocaleLowerCase())\n}\n\nexport const makeFilterProps = propsFactory({\n customFilter: Function as PropType<FilterFunction>,\n customKeyFilter: Object as PropType<FilterKeyFunctions>,\n filterKeys: [Array, String] as PropType<FilterKeys>,\n filterMode: {\n type: String as PropType<FilterMode>,\n default: 'intersection',\n },\n noFilter: Boolean,\n}, 'filter')\n\nexport function filterItems<T = Record<string, any>> (\n items: T[],\n query: string,\n options?: {\n customKeyFilter?: FilterKeyFunctions\n default?: FilterFunction\n filterKeys?: FilterKeys\n filterMode?: FilterMode\n noFilter?: boolean\n },\n) {\n const array: { item: T, matches: Record<string, FilterMatch> }[] = []\n // always ensure we fall back to a functioning filter\n const filter = options?.default ?? defaultFilter\n const keys = options?.filterKeys ? wrapInArray(options.filterKeys) : false\n const customFiltersLength = Object.keys(options?.customKeyFilter ?? {}).length\n\n if (!items?.length) return array\n\n loop:\n for (const item of items) {\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if (query && typeof item === 'object' && !options?.noFilter) {\n const filterKeys = keys || Object.keys(item)\n\n for (const key of filterKeys) {\n const value = getPropertyFromItem(item as any, key, item)\n const keyFilter = options?.customKeyFilter?.[key]\n\n match = keyFilter\n ? keyFilter(value, query, item)\n : filter(value, query, item)\n\n if (match !== -1 && match !== false) {\n if (keyFilter) customMatches[key] = match\n else defaultMatches[key] = match\n } else if (options?.filterMode === 'every') {\n continue loop\n }\n }\n\n const defaultMatchesLength = Object.keys(defaultMatches).length\n const customMatchesLength = Object.keys(customMatches).length\n\n if (!defaultMatchesLength && !customMatchesLength) continue\n\n if (\n options?.filterMode === 'union' &&\n customMatchesLength !== customFiltersLength &&\n !defaultMatchesLength\n ) continue\n\n if (\n options?.filterMode === 'intersection' &&\n (\n customMatchesLength !== customFiltersLength ||\n !defaultMatchesLength\n )\n ) continue\n }\n\n array.push({ item, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter<T> (\n props: FilterProps,\n items: MaybeRef<T[]>,\n query?: Ref<string | undefined>,\n) {\n const strQuery = computed(() => (\n typeof query?.value !== 'string' &&\n typeof query?.value !== 'number'\n ) ? '' : String(query.value))\n\n const filteredItems = computed(() => {\n return filterItems(\n unref(items),\n strQuery.value,\n {\n customKeyFilter: props.customKeyFilter,\n default: props.customFilter,\n filterKeys: props.filterKeys,\n filterMode: props.filterMode,\n noFilter: props.noFilter,\n },\n )\n })\n\n return { filteredItems }\n}\n","// Styles\nimport './VAutocomplete.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { transformItem, useItems } from '@/composables/items'\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { genericComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { DefaultChipSlot, InternalSelectItem } from '@/components/VSelect/VSelect'\nimport type { MakeSlots } from '@/util'\n\nexport interface InternalAutocompleteItem extends InternalSelectItem {\n\n}\n\nexport interface DefaultAutocompleteSlot {\n selection: InternalAutocompleteItem\n}\n\nfunction highlightResult (text: string, matches: FilterMatch, length: number) {\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-autocomplete__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-autocomplete__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-autocomplete__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\nexport const VAutocomplete = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n chip: [DefaultChipSlot]\n default: []\n selection: [DefaultAutocompleteSlot]\n }>\n}>()({\n name: 'VAutocomplete',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n search: String,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'update:search': (val: any) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const activator = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = ref(false)\n const { items } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v || []),\n (v: any) => props.multiple ? v : v[0]\n )\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n const array: InternalSelectItem[] = []\n let index = 0\n for (const unwrapped of model.value) {\n const item = transformItem(props, unwrapped)\n\n const found = array.find(selection => selection.value === item.value)\n\n if (found == null) {\n array.push({\n ...item,\n index,\n })\n\n index++\n }\n }\n\n return array\n })\n const selected = computed(() => selections.value.map(selection => selection.value))\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n\n search.value = ''\n }\n function onClickControl () {\n if (props.hideNoData && !filteredItems.value.length) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n }\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n const isSelecting = ref(false)\n function select (item: any) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item.value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item.value]\n\n isSelecting.value = true\n\n search.value = item.title\n menu.value = false\n isPristine.value = true\n\n nextTick(() => (isSelecting.value = false))\n }\n }\n\n watch(() => vTextFieldRef.value, val => {\n activator.value = val.$el.querySelector('.v-input__control')\n })\n\n watch(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple ? '' : String(model.value ?? '')\n isPristine.value = true\n\n nextTick(() => isSelecting.value = false)\n } else {\n menu.value = false\n search.value = ''\n }\n })\n\n watch(search, val => {\n if (!isFocused.value || isSelecting.value) return\n\n if (val) menu.value = true\n\n isPristine.value = !val\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n modelValue={ search.value }\n onInput={ onInput }\n class={[\n 'v-autocomplete',\n {\n 'v-autocomplete--active-menu': menu.value,\n 'v-autocomplete--chips': !!props.chips,\n [`v-autocomplete--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.menuIcon }\n dirty={ selected.value.length > 0 }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n { activator.value && (\n <VMenu\n v-model={ menu.value }\n activator={ activator.value }\n contentClass=\"v-autocomplete__content\"\n eager={ props.eager }\n openOnClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { filteredItems.value.map(({ item, matches }) => (\n <VListItem\n value={ item.value }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onClick={ () => select(item) }\n >\n {{\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, matches.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n </VList>\n </VMenu>\n ) }\n { selections.value.map((selection, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(selection)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div class=\"v-autocomplete__selection\">\n { hasChips && (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: selection.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ props: slotProps, selection })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) }\n\n { !hasChips && (\n slots.selection\n ? slots.selection({ selection })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { selection.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-autocomplete__selection-comma\">,</span>\n ) }\n </span>\n )\n ) }\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return useForwardRef({\n filteredItems,\n }, vTextFieldRef)\n },\n})\n\nexport type VAutocomplete = InstanceType<typeof VAutocomplete>\n","// Styles\nimport './VBadge.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent, pick } from '@/util'\n\nexport const VBadge = defineComponent({\n name: 'VBadge',\n\n inheritAttrs: false,\n\n props: {\n bordered: Boolean,\n color: String,\n content: [Number, String],\n dot: Boolean,\n floating: Boolean,\n icon: String,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\n },\n location: {\n type: String,\n default: 'top-end',\n validator: (value: string) => {\n const [vertical, horizontal] = (value ?? '').split('-')\n\n return (\n ['top', 'bottom'].includes(vertical) &&\n ['start', 'end'].includes(horizontal)\n )\n },\n },\n max: [Number, String],\n modelValue: {\n type: Boolean,\n default: true,\n },\n offsetX: [Number, String],\n offsetY: [Number, String],\n textColor: String,\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeTransitionProps({ transition: 'scale-rotate-transition' }),\n },\n\n setup (props, ctx) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { isRtl } = useRtl()\n const { roundedClasses } = useRounded(props)\n const { t } = useLocale()\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'textColor'))\n const { themeClasses } = useTheme()\n\n const position = computed(() => {\n return props.floating\n ? (props.dot ? 2 : 4)\n : (props.dot ? 8 : 12)\n })\n\n function calculatePosition (offset?: number | string) {\n return `calc(100% - ${convertToUnit(position.value + parseInt(offset ?? 0, 10))})`\n }\n\n const locationStyles = computed(() => {\n const [vertical, horizontal] = (props.location ?? '').split('-')\n\n const styles = {\n bottom: 'auto',\n left: 'auto',\n right: 'auto',\n top: 'auto',\n }\n\n if (!props.inline) {\n const isRight = (isRtl.value && horizontal === 'end') || (!isRtl.value && horizontal === 'start')\n\n styles[isRight ? 'right' : 'left'] = calculatePosition(props.offsetX)\n styles[vertical === 'top' ? 'bottom' : 'top'] = calculatePosition(props.offsetY)\n }\n\n return styles\n })\n\n return () => {\n const value = Number(props.content)\n const content = (!props.max || isNaN(value)) ? props.content\n : value <= props.max ? value\n : `${props.max}+`\n\n const [badgeAttrs, attrs] = pick(ctx.attrs as Record<string, any>, [\n 'aria-atomic',\n 'aria-label',\n 'aria-live',\n 'role',\n 'title',\n ])\n\n return (\n <props.tag\n class={[\n 'v-badge',\n {\n 'v-badge--bordered': props.bordered,\n 'v-badge--dot': props.dot,\n 'v-badge--floating': props.floating,\n 'v-badge--inline': props.inline,\n },\n ]}\n { ...attrs }\n >\n <div class=\"v-badge__wrapper\">\n { ctx.slots.default?.() }\n\n <MaybeTransition transition={ props.transition }>\n <span\n v-show={ props.modelValue }\n class={[\n 'v-badge__badge',\n backgroundColorClasses.value,\n roundedClasses.value,\n textColorClasses.value,\n themeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n locationStyles.value,\n textColorStyles.value,\n ]}\n aria-atomic=\"true\"\n aria-label={ t(props.label, value) }\n aria-live=\"polite\"\n role=\"status\"\n { ...badgeAttrs }\n >\n {\n props.dot ? undefined\n : ctx.slots.badge ? ctx.slots.badge?.()\n : props.icon ? <VIcon icon={props.icon} />\n : <span class=\"v-badge__content\">{content}</span>\n }\n </span>\n </MaybeTransition>\n </div>\n </props.tag>\n )\n }\n },\n})\n\nexport type VBadge = InstanceType<typeof VBadge>\n","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VBannerActions = defineComponent({\n name: 'VBannerActions',\n\n props: {\n color: String,\n density: String,\n },\n\n setup (props, { slots }) {\n provideDefaults({\n VBtn: {\n color: props.color,\n density: props.density,\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div class=\"v-banner-actions\">\n { slots?.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n","// Components\nimport { makeVAvatarProps, VAvatar } from '@/components/VAvatar/VAvatar'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VBannerAvatar = defineComponent({\n name: 'VBannerAvatar',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n return () => (\n <VAvatar\n class=\"v-banner-avatar\"\n { ...props }\n v-slots={ slots }\n />\n )\n },\n})\n","// Components\nimport { makeVAvatarProps, VAvatar } from '@/components/VAvatar/VAvatar'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VBannerIcon = defineComponent({\n name: 'VBannerIcon',\n\n props: makeVAvatarProps(),\n\n setup (props, { slots }) {\n return () => (\n <VAvatar\n class=\"v-banner-icon\"\n { ...props }\n v-slots={ slots }\n />\n )\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VBannerText = createSimpleFunctional('v-banner-text')\n","// Utilities\nimport { inject, reactive, ref, toRefs, watchEffect } from 'vue'\nimport { mergeDeep } from '@/util'\n\n// Globals\nimport { IN_BROWSER, SUPPORTS_TOUCH } from '@/util/globals'\n\n// Types\nimport type { InjectionKey, ToRefs } from 'vue'\n\nexport type DisplayBreakpoint = keyof DisplayThresholds\n\nexport interface DisplayThresholds {\n xs: number\n sm: number\n md: number\n lg: number\n xl: number\n xxl: number\n}\n\nexport interface DisplayOptions {\n mobileBreakpoint?: number | DisplayBreakpoint\n thresholds?: Partial<DisplayThresholds>\n}\n\nexport interface InternalDisplayOptions {\n mobileBreakpoint: number | DisplayBreakpoint\n thresholds: DisplayThresholds\n}\n\nexport interface DisplayPlatform {\n android: boolean\n ios: boolean\n cordova: boolean\n electron: boolean\n chrome: boolean\n edge: boolean\n firefox: boolean\n opera: boolean\n win: boolean\n mac: boolean\n linux: boolean\n touch: boolean\n ssr: boolean\n}\n\nexport interface DisplayInstance {\n xs: boolean\n sm: boolean\n md: boolean\n lg: boolean\n xl: boolean\n xxl: boolean\n smAndUp: boolean\n mdAndUp: boolean\n lgAndUp: boolean\n xlAndUp: boolean\n smAndDown: boolean\n mdAndDown: boolean\n lgAndDown: boolean\n xlAndDown: boolean\n name: DisplayBreakpoint\n height: number\n width: number\n mobile: boolean\n mobileBreakpoint: number | DisplayBreakpoint\n platform: DisplayPlatform\n thresholds: DisplayThresholds\n}\n\nexport const DisplaySymbol: InjectionKey<ToRefs<DisplayInstance>> = Symbol.for('vuetify:display')\n\nconst defaultDisplayOptions: DisplayOptions = {\n mobileBreakpoint: 'lg',\n thresholds: {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920,\n xxl: 2560,\n },\n}\n\nconst parseDisplayOptions = (options: DisplayOptions = defaultDisplayOptions) => {\n return mergeDeep(defaultDisplayOptions, options) as InternalDisplayOptions\n}\n\n// Cross-browser support as described in:\n// https://stackoverflow.com/questions/1248081\nfunction getClientWidth () {\n return IN_BROWSER ? Math.max(\n document.documentElement!.clientWidth,\n window.innerWidth\n ) : 0 // SSR\n}\n\nfunction getClientHeight () {\n return IN_BROWSER ? Math.max(\n document.documentElement!.clientHeight,\n window.innerHeight\n ) : 0 // SSR\n}\n\nfunction getPlatform (): DisplayPlatform {\n const userAgent = IN_BROWSER ? window.navigator.userAgent : 'ssr'\n\n function match (regexp: RegExp) {\n return Boolean(userAgent.match(regexp))\n }\n\n const android = match(/android/i)\n const ios = match(/iphone|ipad|ipod/i)\n const cordova = match(/cordova/i)\n const electron = match(/electron/i)\n const chrome = match(/chrome/i)\n const edge = match(/edge/i)\n const firefox = match(/firefox/i)\n const opera = match(/opera/i)\n const win = match(/win/i)\n const mac = match(/mac/i)\n const linux = match(/linux/i)\n const ssr = match(/ssr/i)\n\n return {\n android,\n ios,\n cordova,\n electron,\n chrome,\n edge,\n firefox,\n opera,\n win,\n mac,\n linux,\n touch: SUPPORTS_TOUCH,\n ssr,\n }\n}\n\nexport function createDisplay (options?: DisplayOptions): ToRefs<DisplayInstance> {\n const { thresholds, mobileBreakpoint } = parseDisplayOptions(options)\n\n const height = ref(getClientHeight())\n const platform = getPlatform()\n const state = reactive({} as DisplayInstance)\n const width = ref(getClientWidth())\n\n function onResize () {\n height.value = getClientHeight()\n width.value = getClientWidth()\n }\n\n // eslint-disable-next-line max-statements\n watchEffect(() => {\n const xs = width.value < thresholds.sm\n const sm = width.value < thresholds.md && !xs\n const md = width.value < thresholds.lg && !(sm || xs)\n const lg = width.value < thresholds.xl && !(md || sm || xs)\n const xl = width.value < thresholds.xxl && !(lg || md || sm || xs)\n const xxl = width.value >= thresholds.xxl\n const name =\n xs ? 'xs'\n : sm ? 'sm'\n : md ? 'md'\n : lg ? 'lg'\n : xl ? 'xl'\n : 'xxl'\n const breakpointValue = typeof mobileBreakpoint === 'number' ? mobileBreakpoint : thresholds[mobileBreakpoint]\n const mobile = !platform.ssr\n ? width.value < breakpointValue\n : platform.android || platform.ios || platform.opera\n\n state.xs = xs\n state.sm = sm\n state.md = md\n state.lg = lg\n state.xl = xl\n state.xxl = xxl\n state.smAndUp = !xs\n state.mdAndUp = !(xs || sm)\n state.lgAndUp = !(xs || sm || md)\n state.xlAndUp = !(xs || sm || md || lg)\n state.smAndDown = !(md || lg || xl || xxl)\n state.mdAndDown = !(lg || xl || xxl)\n state.lgAndDown = !(xl || xxl)\n state.xlAndDown = !xxl\n state.name = name\n state.height = height.value\n state.width = width.value\n state.mobile = mobile\n state.mobileBreakpoint = mobileBreakpoint\n state.platform = platform\n state.thresholds = thresholds\n })\n\n if (IN_BROWSER) {\n window.addEventListener('resize', onResize, { passive: true })\n }\n\n return toRefs(state)\n}\n\nexport function useDisplay () {\n const display = inject(DisplaySymbol)\n\n if (!display) throw new Error('Could not find Vuetify display injection')\n\n return display\n}\n","// Styles\nimport './VBanner.sass'\n\n// Components\nimport { VBannerActions } from './VBannerActions'\nimport { VBannerAvatar } from './VBannerAvatar'\nimport { VBannerIcon } from './VBannerIcon'\nimport { VBannerText } from './VBannerText'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useDisplay } from '@/composables/display'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { toRef } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VBanner = defineComponent({\n name: 'VBanner',\n\n props: {\n avatar: String,\n color: String,\n icon: String,\n lines: String as PropType<'one' | 'two' | 'three'>,\n stacked: Boolean,\n sticky: Boolean,\n text: String,\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props)\n const { densityClasses } = useDensity(props)\n const { mobile } = useDisplay()\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n const { themeClasses } = provideTheme(props)\n\n const color = toRef(props, 'color')\n const density = toRef(props, 'density')\n\n provideDefaults({\n VBannerActions: { color, density },\n VBannerAvatar: { density, image: toRef(props, 'avatar') },\n VBannerIcon: { color, density, icon: toRef(props, 'icon') },\n })\n\n useRender(() => {\n const hasText = !!(props.text || slots.text)\n const hasPrepend = !!(slots.prepend || props.avatar || props.icon)\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--stacked': props.stacked || mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: !!props.lines,\n },\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n themeClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n positionStyles.value,\n ]}\n role=\"banner\"\n >\n { hasPrepend && (\n <>\n { slots.prepend\n ? (\n <div class=\"v-banner__prepend\">\n { slots.prepend() }\n </div>\n )\n : props.avatar ? (<VBannerAvatar />)\n : props.icon ? (<VBannerIcon />)\n : undefined\n }\n </>\n ) }\n\n { hasText && (\n <VBannerText>\n { slots.text ? slots.text() : props.text }\n </VBannerText>\n ) }\n\n { slots.default?.() }\n\n { slots.actions && (\n <VBannerActions>\n { slots.actions() }\n </VBannerActions>\n ) }\n </props.tag>\n )\n })\n },\n})\n\nexport type VBanner = InstanceType<typeof VBanner>\n","// Styles\nimport './VBottomNavigation.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\n\n// Types\nimport { VBtnToggleSymbol } from '../VBtnToggle/VBtnToggle'\n\nexport const VBottomNavigation = defineComponent({\n name: 'VBottomNavigation',\n\n props: {\n bgColor: String,\n color: String,\n grow: Boolean,\n mode: {\n type: String,\n validator: (v: any) => !v || ['horizontal', 'shift'].includes(v),\n },\n height: {\n type: [Number, String],\n default: 56,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'bottom-navigation' }),\n ...makeTagProps({ tag: 'header' }),\n ...makeGroupProps({\n modelValue: true,\n selectedClass: 'v-btn--selected',\n }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme()\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { densityClasses } = useDensity(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const height = computed(() => (\n Number(props.height) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = useProxiedModel(props, 'modelValue', props.modelValue)\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n priority: computed(() => parseInt(props.priority, 10)),\n position: computed(() => 'bottom'),\n layoutSize: computed(() => isActive.value ? height.value : 0),\n elementSize: height,\n active: isActive,\n absolute: toRef(props, 'absolute'),\n })\n\n useGroup(props, VBtnToggleSymbol)\n\n provideDefaults({\n VBtn: {\n color: toRef(props, 'color'),\n density: toRef(props, 'density'),\n stacked: computed(() => props.mode !== 'horizontal'),\n variant: 'text',\n },\n }, { scoped: true })\n\n return () => {\n return (\n <props.tag\n class={[\n 'v-bottom-navigation',\n {\n 'v-bottom-navigation--active': isActive.value,\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--shift': props.mode === 'shift',\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n {\n height: convertToUnit(height.value),\n transform: `translateY(${convertToUnit(!isActive.value ? 100 : 0, '%')})`,\n },\n ]}\n >\n { slots.default && (\n <div class=\"v-bottom-navigation__content\">\n { slots.default() }\n </div>\n ) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VBottomNavigation = InstanceType<typeof VBottomNavigation>\n","// Composables\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VBreadcrumbsItem = defineComponent({\n name: 'VBreadcrumbsItem',\n\n props: {\n active: Boolean,\n activeClass: String,\n activeColor: String,\n color: String,\n disabled: Boolean,\n text: String,\n\n ...makeRouterProps(),\n ...makeTagProps({ tag: 'li' }),\n },\n\n setup (props, { slots, attrs }) {\n const link = useLink(props, attrs)\n const isActive = computed(() => props.active || link.isExactActive?.value)\n const color = computed(() => isActive.value ? props.activeColor : props.color)\n\n const { textColorClasses, textColorStyles } = useTextColor(color)\n\n useRender(() => {\n const Tag = link.isLink.value ? 'a' : props.tag\n const hasText = !!(slots.default || props.text)\n\n return (\n <Tag\n class={[\n 'v-breadcrumbs-item',\n {\n 'v-breadcrumbs-item--active': isActive.value,\n 'v-breadcrumbs-item--disabled': props.disabled,\n 'v-breadcrumbs-item--link': link.isLink.value,\n [`${props.activeClass}`]: isActive.value && props.activeClass,\n },\n textColorClasses.value,\n ]}\n style={[\n textColorStyles.value,\n ]}\n href={ link.href.value }\n aria-current={ isActive.value ? 'page' : undefined }\n onClick={ link.navigate }\n v-slots={{\n default: hasText ? () => slots.default?.() ?? props.text : undefined,\n }}\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VBreadcrumbsItem = InstanceType<typeof VBreadcrumbsItem>\n","import { createSimpleFunctional } from '@/util'\n\nexport const VBreadcrumbsDivider = createSimpleFunctional('v-breadcrumbs-divider', 'li')\n","// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VBreadcrumbsItem } from './VBreadcrumbsItem'\nimport { VBreadcrumbsDivider } from './VBreadcrumbsDivider'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { LinkProps } from '@/composables/router'\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n disabled?: boolean\n})\n\nexport const VBreadcrumbs = defineComponent({\n name: 'VBreadcrumbs',\n\n props: {\n activeClass: String,\n activeColor: String,\n bgColor: String,\n color: String,\n disabled: Boolean,\n divider: {\n type: String,\n default: '/',\n },\n icon: String,\n items: {\n type: Array as PropType<BreadcrumbItem[]>,\n default: () => ([]),\n },\n\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'ul' }),\n },\n\n setup (props, { slots }) {\n const { densityClasses } = useDensity(props)\n const { roundedClasses } = useRounded(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n\n provideDefaults({\n VBreadcrumbsItem: {\n activeClass: toRef(props, 'activeClass'),\n activeColor: toRef(props, 'activeColor'),\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-breadcrumbs',\n backgroundColorClasses.value,\n densityClasses.value,\n roundedClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n { props.icon && (\n <VIcon icon={ props.icon } left />\n ) }\n\n { props.items.map((item, index, array) => (\n <>\n <VBreadcrumbsItem\n key={ index }\n disabled={ index >= array.length - 1 }\n { ...(typeof item === 'string' ? { text: item } : item) }\n v-slots={{\n default: slots.text ? () => slots.text?.({ item, index }) : undefined,\n }}\n />\n\n { index < array.length - 1 && (\n <VBreadcrumbsDivider>\n { slots.divider?.({ item, index }) ?? props.divider }\n </VBreadcrumbsDivider>\n ) }\n </>\n )) }\n\n { slots.default?.() }\n </props.tag>\n ))\n\n return {}\n },\n})\n\nexport type VBreadcrumbs = InstanceType<typeof VBreadcrumbs>\n","// Composables\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VCardActions = defineComponent({\n name: 'VCardActions',\n\n setup (_, { slots }) {\n provideDefaults({\n VBtn: {\n variant: 'text',\n },\n })\n\n useRender(() => (\n <div class=\"v-card-actions\">\n { slots?.default?.() }\n </div>\n ))\n\n return {}\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardAvatar = createSimpleFunctional('v-card-avatar')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardContent = createSimpleFunctional('v-card-content')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardHeader = createSimpleFunctional('v-card-header')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardHeaderText = createSimpleFunctional('v-card-header-text')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardImg = createSimpleFunctional('v-card-img')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardSubtitle = createSimpleFunctional('v-card-subtitle')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardText = createSimpleFunctional('v-card-text')\n","import { createSimpleFunctional } from '@/util'\n\nexport const VCardTitle = createSimpleFunctional('v-card-title')\n","/* eslint-disable complexity */\n\n// Styles\nimport './VCard.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VImg } from '@/components/VImg'\nimport { VCardActions } from './VCardActions'\nimport { VCardAvatar } from './VCardAvatar'\nimport { VCardContent } from './VCardContent'\nimport { VCardHeader } from './VCardHeader'\nimport { VCardHeaderText } from './VCardHeaderText'\nimport { VCardImg } from './VCardImg'\nimport { VCardSubtitle } from './VCardSubtitle'\nimport { VCardText } from './VCardText'\nimport { VCardTitle } from './VCardTitle'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { VDefaultsProvider } from '../VDefaultsProvider'\n\nexport const VCard = defineComponent({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: {\n appendAvatar: String,\n appendIcon: String,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: Boolean,\n prependAvatar: String,\n prependIcon: String,\n ripple: Boolean,\n subtitle: String,\n text: String,\n title: String,\n\n ...makeThemeProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeTagProps(),\n ...makeVariantProps({ variant: 'contained' } as const),\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { densityClasses } = useDensity(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n const link = useLink(props, attrs)\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasTitle = !!(slots.title || props.title)\n const hasSubtitle = !!(slots.subtitle || props.subtitle)\n const hasHeaderText = hasTitle || hasSubtitle\n const hasAppend = !!(slots.append || props.appendAvatar || props.appendIcon)\n const hasPrepend = !!(slots.prepend || props.prependAvatar || props.prependIcon)\n const hasImage = !!(slots.image || props.image)\n const hasHeader = hasHeaderText || hasPrepend || hasAppend\n const hasText = !!(slots.text || props.text)\n const isClickable = !props.disabled && (link.isClickable.value || props.link)\n\n return (\n <Tag\n class={[\n 'v-card',\n {\n 'v-card--disabled': props.disabled,\n 'v-card--flat': props.flat,\n 'v-card--hover': props.hover && !(props.disabled || props.flat),\n 'v-card--link': isClickable,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n href={ link.href.value }\n onClick={ isClickable && link.navigate }\n v-ripple={ isClickable }\n >\n { genOverlays(isClickable, 'v-card') }\n\n { hasImage && (\n <VDefaultsProvider\n defaults={{\n VImg: {\n cover: true,\n src: props.image,\n },\n }}\n >\n <VCardImg>\n { slots.image ? slots.image?.() : (<VImg alt=\"\" />) }\n </VCardImg>\n </VDefaultsProvider>\n ) }\n\n { slots.media?.() }\n\n { hasHeader && (\n <VCardHeader>\n { hasPrepend && (\n <VDefaultsProvider\n defaults={{\n VAvatar: {\n density: props.density,\n icon: props.prependIcon,\n image: props.prependAvatar,\n },\n }}\n >\n <VCardAvatar>\n { slots.prepend ? slots.prepend() : (<VAvatar />) }\n </VCardAvatar>\n </VDefaultsProvider>\n ) }\n\n { hasHeaderText && (\n <VCardHeaderText>\n { hasTitle && (\n <VCardTitle>\n { slots.title ? slots.title() : props.title}\n </VCardTitle>\n ) }\n\n { hasSubtitle && (\n <VCardSubtitle>\n { slots.subtitle ? slots.subtitle() : props.subtitle }\n </VCardSubtitle>\n ) }\n\n { slots.headerText?.() }\n </VCardHeaderText>\n ) }\n\n { hasAppend && (\n <VDefaultsProvider\n defaults={{\n VAvatar: {\n density: props.density,\n icon: props.appendIcon,\n image: props.appendAvatar,\n },\n }}\n >\n <VCardAvatar>\n { slots.append ? slots.append() : (<VAvatar />) }\n </VCardAvatar>\n </VDefaultsProvider>\n ) }\n </VCardHeader>\n ) }\n\n { hasText && (\n <VCardText>\n { slots.text ? slots.text() : props.text }\n </VCardText>\n ) }\n\n { slots.content && (\n <VCardContent v-slots={{ default: slots.content }} />\n ) }\n\n { slots.default?.() }\n\n { slots.actions && (\n <VCardActions v-slots={{ default: slots.actions }} />\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VCard = InstanceType<typeof VCard>\n","// Types\nimport type {\n DirectiveBinding,\n ObjectDirective,\n} from 'vue'\n\n// Utilities\nimport { keys } from '@/util'\n\nexport interface TouchHandlers {\n start?: (wrapperEvent: { originalEvent: TouchEvent } & TouchWrapper) => void\n end?: (wrapperEvent: { originalEvent: TouchEvent } & TouchWrapper) => void\n move?: (wrapperEvent: { originalEvent: TouchEvent } & TouchWrapper) => void\n left?: (wrapper: TouchWrapper) => void\n right?: (wrapper: TouchWrapper) => void\n up?: (wrapper: TouchWrapper) => void\n down?: (wrapper: TouchWrapper) => void\n}\n\nexport interface TouchWrapper extends TouchHandlers {\n touchstartX: number\n touchstartY: number\n touchmoveX: number\n touchmoveY: number\n touchendX: number\n touchendY: number\n offsetX: number\n offsetY: number\n}\n\nexport interface TouchValue extends TouchHandlers {\n parent?: boolean\n options?: AddEventListenerOptions\n}\n\nexport interface TouchStoredHandlers {\n touchstart: (e: TouchEvent) => void\n touchend: (e: TouchEvent) => void\n touchmove: (e: TouchEvent) => void\n}\n\nexport interface TouchDirectiveBinding extends Omit<DirectiveBinding, 'value'> {\n value?: TouchValue\n}\n\nconst handleGesture = (wrapper: TouchWrapper) => {\n const { touchstartX, touchendX, touchstartY, touchendY } = wrapper\n const dirRatio = 0.5\n const minDistance = 16\n wrapper.offsetX = touchendX - touchstartX\n wrapper.offsetY = touchendY - touchstartY\n\n if (Math.abs(wrapper.offsetY) < dirRatio * Math.abs(wrapper.offsetX)) {\n wrapper.left && (touchendX < touchstartX - minDistance) && wrapper.left(wrapper)\n wrapper.right && (touchendX > touchstartX + minDistance) && wrapper.right(wrapper)\n }\n\n if (Math.abs(wrapper.offsetX) < dirRatio * Math.abs(wrapper.offsetY)) {\n wrapper.up && (touchendY < touchstartY - minDistance) && wrapper.up(wrapper)\n wrapper.down && (touchendY > touchstartY + minDistance) && wrapper.down(wrapper)\n }\n}\n\nfunction touchstart (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchstartX = touch.clientX\n wrapper.touchstartY = touch.clientY\n\n wrapper.start?.({ originalEvent: event, ...wrapper })\n}\n\nfunction touchend (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchendX = touch.clientX\n wrapper.touchendY = touch.clientY\n\n wrapper.end?.({ originalEvent: event, ...wrapper })\n\n handleGesture(wrapper)\n}\n\nfunction touchmove (event: TouchEvent, wrapper: TouchWrapper) {\n const touch = event.changedTouches[0]\n wrapper.touchmoveX = touch.clientX\n wrapper.touchmoveY = touch.clientY\n\n wrapper.move?.({ originalEvent: event, ...wrapper })\n}\n\nfunction createHandlers (value: TouchHandlers = {}): TouchStoredHandlers {\n const wrapper = {\n touchstartX: 0,\n touchstartY: 0,\n touchendX: 0,\n touchendY: 0,\n touchmoveX: 0,\n touchmoveY: 0,\n offsetX: 0,\n offsetY: 0,\n left: value.left,\n right: value.right,\n up: value.up,\n down: value.down,\n start: value.start,\n move: value.move,\n end: value.end,\n }\n\n return {\n touchstart: (e: TouchEvent) => touchstart(e, wrapper),\n touchend: (e: TouchEvent) => touchend(e, wrapper),\n touchmove: (e: TouchEvent) => touchmove(e, wrapper),\n }\n}\n\nfunction mounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const value = binding.value\n const target = value?.parent ? el.parentElement : el\n const options = value?.options ?? { passive: true }\n const uid = binding.instance?.$.uid // TODO: use custom uid generator\n\n if (!target || !uid) return\n\n const handlers = createHandlers(binding.value)\n\n target._touchHandlers = target._touchHandlers ?? Object.create(null)\n target._touchHandlers![uid] = handlers\n\n keys(handlers).forEach(eventName => {\n target.addEventListener(eventName, handlers[eventName], options)\n })\n}\n\nfunction unmounted (el: HTMLElement, binding: TouchDirectiveBinding) {\n const target = binding.value?.parent ? el.parentElement : el\n const uid = binding.instance?.$.uid\n\n if (!target?._touchHandlers || !uid) return\n\n const handlers = target._touchHandlers[uid]\n\n keys(handlers).forEach(eventName => {\n target.removeEventListener(eventName, handlers[eventName])\n })\n\n delete target._touchHandlers[uid]\n}\n\nexport const Touch: ObjectDirective = {\n mounted,\n unmounted,\n}\n\nexport default Touch\n","// Styles\nimport './VWindow.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useGroup } from '@/composables/group'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\n\n// Directives\nimport { Touch } from '@/directives/touch'\n\n// Utilities\nimport { computed, provide, ref, watch } from 'vue'\nimport { genericComponent, useRender } from '@/util'\n\n// Types\nimport type { ComputedRef, InjectionKey, PropType, Ref } from 'vue'\nimport type { GroupItemProvide, GroupProvide } from '@/composables/group'\nimport type { TouchHandlers } from '@/directives/touch'\nimport type { MakeSlots } from '@/util'\n\ntype WindowProvide = {\n transition: ComputedRef<undefined | string>\n transitionCount: Ref<number>\n transitionHeight: Ref<undefined | string>\n isReversed: Ref<boolean>\n rootRef: Ref<HTMLElement | undefined>\n}\n\ntype ControlProps = {\n icon: string\n class: string\n onClick: () => void\n ariaLabel: string\n}\n\nexport const VWindowSymbol: InjectionKey<WindowProvide> = Symbol.for('vuetify:v-window')\nexport const VWindowGroupSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-window-group')\n\nexport const VWindow = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [{ group: GroupProvide }]\n additional: [{ group: GroupProvide }]\n prev: [{ props: ControlProps }]\n next: [{ props: ControlProps }]\n }>\n}>()({\n name: 'VWindow',\n\n directives: {\n Touch,\n },\n\n props: {\n continuous: Boolean,\n nextIcon: {\n type: [Boolean, String],\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String],\n default: '$prev',\n },\n reverse: Boolean,\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n touch: {\n type: [Object, Boolean] as PropType<boolean | TouchHandlers>,\n default: undefined,\n },\n direction: {\n type: String,\n default: 'horizontal',\n },\n\n modelValue: null,\n disabled: Boolean,\n selectedClass: {\n type: String,\n default: 'v-window-item--active',\n },\n // TODO: mandatory should probably not be exposed but do this for now\n mandatory: {\n default: 'force' as const,\n },\n\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (v: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isRtl } = useRtl()\n const { t } = useLocale()\n\n const group = useGroup(props, VWindowGroupSymbol)\n\n const rootRef = ref()\n const isRtlReverse = computed(() => isRtl.value ? !props.reverse : props.reverse)\n const isReversed = ref(false)\n const transition = computed(() => {\n const axis = props.direction === 'vertical' ? 'y' : 'x'\n const reverse = isRtlReverse.value ? !isReversed.value : isReversed.value\n const direction = reverse ? '-reverse' : ''\n\n return `v-window-${axis}${direction}-transition`\n })\n const transitionCount = ref(0)\n const transitionHeight = ref<undefined | string>(undefined)\n\n const activeIndex = computed(() => {\n return group.items.value.findIndex(item => group.selected.value.includes(item.id))\n })\n\n watch(activeIndex, (newVal, oldVal) => {\n const itemsLength = group.items.value.length\n const lastIndex = itemsLength - 1\n\n if (itemsLength <= 2) {\n isReversed.value = newVal < oldVal\n } else if (newVal === lastIndex && oldVal === 0) {\n isReversed.value = true\n } else if (newVal === 0 && oldVal === lastIndex) {\n isReversed.value = false\n } else {\n isReversed.value = newVal < oldVal\n }\n })\n\n provide(VWindowSymbol, {\n transition,\n isReversed,\n transitionCount,\n transitionHeight,\n rootRef,\n })\n\n const canMoveBack = computed(() => props.continuous || activeIndex.value !== 0)\n const canMoveForward = computed(() => props.continuous || activeIndex.value !== group.items.value.length - 1)\n\n function prev () {\n canMoveBack.value && group.prev()\n }\n\n function next () {\n canMoveForward.value && group.next()\n }\n\n const arrows = computed(() => {\n const arrows = []\n\n const prevProps = {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n class: `v-window__${isRtlReverse.value ? 'right' : 'left'}`,\n onClick: group.prev,\n ariaLabel: t('$vuetify.carousel.prev'),\n }\n\n arrows.push(canMoveBack.value\n ? slots.prev\n ? slots.prev({ props: prevProps })\n : <VBtn { ...prevProps } />\n : <div />\n )\n\n const nextProps = {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n class: `v-window__${isRtlReverse.value ? 'left' : 'right'}`,\n onClick: group.next,\n ariaLabel: t('$vuetify.carousel.next'),\n }\n\n arrows.push(canMoveForward.value\n ? slots.next\n ? slots.next({ props: nextProps })\n : <VBtn { ...nextProps } />\n : <div />\n )\n\n return arrows\n })\n\n const touchOptions = computed(() => {\n if (props.touch === false) return props.touch\n\n const options: TouchHandlers = {\n left: () => {\n isRtlReverse.value ? prev() : next()\n },\n right: () => {\n isRtlReverse.value ? next() : prev()\n },\n end: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n start: ({ originalEvent }) => {\n originalEvent.stopPropagation()\n },\n }\n\n return {\n ...options,\n ...(props.touch === true ? {} : props.touch),\n }\n })\n\n useRender(() => (\n <props.tag\n ref={ rootRef }\n class={[\n 'v-window',\n {\n 'v-window--show-arrows-on-hover': props.showArrows === 'hover',\n },\n themeClasses.value,\n ]}\n v-touch={ touchOptions.value }\n >\n <div\n class=\"v-window__container\"\n style={{\n height: transitionHeight.value,\n }}\n >\n { slots.default?.({ group }) }\n\n { props.showArrows !== false && (\n <div class=\"v-window__controls\">\n { arrows.value }\n </div>\n )}\n </div>\n\n { slots.additional?.({ group }) }\n </props.tag>\n ))\n\n return {\n group,\n }\n },\n})\n\nexport type VWindow = InstanceType<typeof VWindow>\n","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\nimport { MaybeTransition } from '@/composables/transition'\n\n// Directives\nimport Touch from '@/directives/touch'\n\n// Utilities\nimport { computed, inject, nextTick, ref } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\nimport { VWindowGroupSymbol, VWindowSymbol } from './VWindow'\n\nexport const VWindowItem = defineComponent({\n name: 'VWindowItem',\n\n directives: {\n Touch,\n },\n\n props: {\n reverseTransition: {\n type: [Boolean, String],\n default: undefined,\n },\n transition: {\n type: [Boolean, String],\n default: undefined,\n },\n ...makeLazyProps(),\n ...makeGroupItemProps(),\n },\n\n setup (props, { slots }) {\n const window = inject(VWindowSymbol)\n const groupItem = useGroupItem(props, VWindowGroupSymbol)\n\n if (!window || !groupItem) throw new Error('[Vuetify] VWindowItem must be used inside VWindow')\n\n const isTransitioning = ref(false)\n const hasTransition = computed(() => window.isReversed.value ? props.reverseTransition !== false : props.transition !== false)\n\n function onAfterTransition () {\n if (!isTransitioning.value || !window) {\n return\n }\n\n // Finalize transition state.\n isTransitioning.value = false\n if (window.transitionCount.value > 0) {\n window.transitionCount.value -= 1\n\n // Remove container height if we are out of transition.\n if (window.transitionCount.value === 0) {\n window.transitionHeight.value = undefined\n }\n }\n }\n\n function onBeforeTransition () {\n if (isTransitioning.value || !window) {\n return\n }\n\n // Initialize transition state here.\n isTransitioning.value = true\n\n if (window.transitionCount.value === 0) {\n // Set initial height for height transition.\n window.transitionHeight.value = convertToUnit(window.rootRef.value?.clientHeight)\n }\n\n window.transitionCount.value += 1\n }\n\n function onTransitionCancelled () {\n onAfterTransition() // This should have the same path as normal transition end.\n }\n\n function onEnterTransition (el: Element) {\n if (!isTransitioning.value) {\n return\n }\n\n nextTick(() => {\n // Do not set height if no transition or cancelled.\n if (!hasTransition.value || !isTransitioning.value || !window) {\n return\n }\n\n // Set transition target height.\n window.transitionHeight.value = convertToUnit(el.clientHeight)\n })\n }\n\n const transition = computed(() => {\n const name = window.isReversed.value\n ? props.reverseTransition\n : props.transition\n\n return !hasTransition.value ? false : {\n name: typeof name !== 'string' ? window.transition.value : name,\n onBeforeEnter: onBeforeTransition,\n onAfterEnter: onAfterTransition,\n onEnterCancelled: onTransitionCancelled,\n onBeforeLeave: onBeforeTransition,\n onAfterLeave: onAfterTransition,\n onLeaveCancelled: onTransitionCancelled,\n onEnter: onEnterTransition,\n }\n })\n\n const { hasContent } = useLazy(props, groupItem.isSelected)\n\n return () => {\n return (\n <MaybeTransition transition={ transition.value } >\n <div\n class={[\n 'v-window-item',\n groupItem.selectedClass.value,\n ]}\n v-show={ groupItem.isSelected.value }\n >\n { slots.default && hasContent.value && slots.default() }\n </div>\n </MaybeTransition>\n )\n }\n },\n})\n\nexport type VWindowItem = InstanceType<typeof VWindowItem>\n","// Styles\nimport './VCarousel.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VProgressLinear } from '@/components/VProgressLinear'\nimport { VWindow } from '@/components/VWindow'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { convertToUnit, defineComponent, useRender } from '@/util'\nimport { onMounted, ref, watch } from 'vue'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VCarousel = defineComponent({\n name: 'VCarousel',\n\n props: {\n color: String,\n cycle: Boolean,\n delimiterIcon: {\n type: String,\n default: '$delimiter',\n },\n height: {\n type: [Number, String],\n default: 500,\n },\n hideDelimiters: Boolean,\n hideDelimiterBackground: Boolean,\n interval: {\n type: [Number, String],\n default: 6000,\n validator: (value: string | number) => value > 0,\n },\n modelValue: null,\n progress: [Boolean, String],\n showArrows: {\n type: [Boolean, String],\n default: true,\n validator: (v: any) => typeof v === 'boolean' || v === 'hover',\n },\n verticalDelimiters: [Boolean, String] as PropType<boolean | 'left' | 'right'>,\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const { t } = useLocale()\n const windowRef = ref<typeof VWindow>()\n\n let slideTimeout = -1\n watch(model, restartTimeout)\n watch(() => props.interval, restartTimeout)\n watch(() => props.cycle, val => {\n if (val) restartTimeout()\n else window.clearTimeout(slideTimeout)\n })\n\n onMounted(startTimeout)\n\n function startTimeout () {\n if (!props.cycle || !windowRef.value) return\n\n slideTimeout = window.setTimeout(windowRef.value.group.next, +props.interval > 0 ? +props.interval : 6000)\n }\n\n function restartTimeout () {\n window.clearTimeout(slideTimeout)\n window.requestAnimationFrame(startTimeout)\n }\n\n useRender(() => (\n <VWindow\n ref={ windowRef }\n v-model={ model.value }\n class={[\n 'v-carousel',\n {\n 'v-carousel--hide-delimiter-background': props.hideDelimiterBackground,\n 'v-carousel--vertical-delimiters': props.verticalDelimiters,\n },\n ]}\n style={{ height: convertToUnit(props.height) }}\n continuous\n showArrows={ props.showArrows }\n mandatory=\"force\"\n >\n {{\n default: slots.default,\n additional: ({ group }: { group: GroupProvide }) => (\n <>\n { !props.hideDelimiters && (\n <div\n class=\"v-carousel__controls\"\n style={{\n left: props.verticalDelimiters === 'left' && props.verticalDelimiters ? 0 : 'auto',\n right: props.verticalDelimiters === 'right' ? 0 : 'auto',\n }}\n >\n { group.items.value.length > 0 && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n color: props.color,\n icon: props.delimiterIcon,\n size: 'x-small',\n variant: 'text',\n },\n }}\n scoped\n >\n { group.items.value.map((item: any) => {\n const props = {\n 'aria-label': t('$vuetify.carousel.ariaLabel.delimiter'),\n class: [group.isSelected(item.id) && 'v-btn--selected'],\n onClick: () => group.select(item.id, true),\n }\n\n return slots.item\n ? slots.item({ props, item })\n : (<VBtn { ...item } { ...props } />)\n }) }\n </VDefaultsProvider>\n ) }\n </div>\n )}\n\n { props.progress && (\n <VProgressLinear\n class=\"v-carousel__progress\"\n color={ typeof props.progress === 'string' ? props.progress : undefined }\n modelValue={ (group.getItemIndex(model.value) + 1) / group.items.value.length * 100 }\n />\n )}\n </>\n ),\n prev: slots.prev,\n next: slots.next,\n }}\n </VWindow>\n ))\n },\n})\n","// Components\nimport { VImg } from '@/components/VImg'\nimport { VWindowItem } from '@/components/VWindow'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VCarouselItem = defineComponent({\n name: 'VCarouselItem',\n\n inheritAttrs: false,\n\n props: {\n value: null,\n },\n\n setup (props, { slots, attrs }) {\n useRender(() => (\n <VWindowItem class=\"v-carousel-item\" value={ props.value }>\n <VImg\n { ...attrs }\n v-slots={ slots }\n />\n </VWindowItem>\n ))\n },\n})\n\nexport type VCarouselItem = InstanceType<typeof VCarouselItem>\n","// Styles\nimport './VSelectionControlGroup.sass'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, provide, toRef } from 'vue'\nimport { defineComponent, getUid, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\n\nexport interface VSelectionGroupContext {\n disabled: Ref<boolean>\n inline: Ref<boolean>\n name: Ref<string | undefined>\n modelValue: Ref<any>\n multiple: Ref<boolean>\n trueIcon: Ref<string | undefined>\n falseIcon: Ref<string | undefined>\n readonly: Ref<boolean>\n type: Ref<string | undefined>\n}\n\nexport const VSelectionControlGroupSymbol: InjectionKey<VSelectionGroupContext> = Symbol.for('vuetify:selection-control-group')\n\nexport const VSelectionControlGroup = defineComponent({\n name: 'VSelectionControlGroup',\n\n props: {\n disabled: Boolean,\n id: String,\n inline: Boolean,\n name: String,\n falseIcon: String,\n trueIcon: String,\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n readonly: Boolean,\n type: String,\n modelValue: null,\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const modelValue = useProxiedModel(props, 'modelValue')\n const uid = getUid()\n const id = computed(() => props.id || `v-selection-control-group-${uid}`)\n const name = computed(() => props.name || id.value)\n\n provide(VSelectionControlGroupSymbol, {\n disabled: toRef(props, 'disabled'),\n inline: toRef(props, 'inline'),\n modelValue,\n multiple: computed(() => !!props.multiple || (props.multiple == null && Array.isArray(modelValue.value))),\n name,\n falseIcon: toRef(props, 'falseIcon'),\n trueIcon: toRef(props, 'trueIcon'),\n readonly: toRef(props, 'readonly'),\n type: toRef(props, 'type'),\n })\n\n useRender(() => {\n return (\n <div\n class=\"v-selection-control-group\"\n aria-labelled-by={ props.type === 'radio' ? id.value : undefined }\n role={ props.type === 'radio' ? 'radiogroup' : undefined }\n >\n { slots?.default?.() }\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VSelectionControlGroup = InstanceType<typeof VSelectionControlGroup>\n","// Styles\nimport './VSelectionControl.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroupSymbol } from '@/components/VSelectionControlGroup/VSelectionControlGroup'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject, ref } from 'vue'\nimport {\n deepEqual,\n genericComponent,\n getUid,\n pick,\n propsFactory,\n SUPPORTS_FOCUS_VISIBLE,\n useRender,\n wrapInArray,\n} from '@/util'\n\n// Types\nimport type { ComputedRef, ExtractPropTypes, PropType, Ref, WritableComputedRef } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nexport type SelectionControlSlot = {\n model: WritableComputedRef<any>\n isReadonly: ComputedRef<boolean>\n isDisabled: ComputedRef<boolean>\n textColorClasses: Ref<string[]>\n props: {\n onBlur: (e: Event) => void\n onFocus: (e: FocusEvent) => void\n id: string\n }\n}\n\nexport const makeSelectionControlProps = propsFactory({\n color: String,\n disabled: Boolean,\n error: Boolean,\n id: String,\n inline: Boolean,\n label: String,\n falseIcon: String,\n trueIcon: String,\n ripple: {\n type: Boolean,\n default: true,\n },\n multiple: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n name: String,\n readonly: Boolean,\n trueValue: null,\n falseValue: null,\n modelValue: null,\n type: String,\n value: null,\n valueComparator: {\n type: Function as PropType<typeof deepEqual>,\n default: deepEqual,\n },\n\n ...makeThemeProps(),\n ...makeDensityProps(),\n})\n\nexport function useSelectionControl (\n props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>> & {\n 'onUpdate:modelValue': ((val: any) => void) | undefined\n }\n) {\n const group = inject(VSelectionControlGroupSymbol, undefined)\n const { densityClasses } = useDensity(props)\n const modelValue = useProxiedModel(props, 'modelValue')\n const trueValue = computed(() => (\n props.trueValue !== undefined ? props.trueValue\n : props.value !== undefined ? props.value\n : true\n ))\n const falseValue = computed(() => props.falseValue !== undefined ? props.falseValue : false)\n const isMultiple = computed(() => (\n group?.multiple.value ||\n !!props.multiple ||\n (props.multiple == null && Array.isArray(modelValue.value))\n ))\n const model = computed({\n get () {\n const val = group ? group.modelValue.value : modelValue.value\n\n return isMultiple.value\n ? val.some((v: any) => props.valueComparator(v, trueValue.value))\n : props.valueComparator(val, trueValue.value)\n },\n set (val: boolean) {\n if (props.readonly) return\n\n const currentValue = val ? trueValue.value : falseValue.value\n\n let newVal = currentValue\n\n if (isMultiple.value) {\n newVal = val\n ? [...wrapInArray(modelValue.value), currentValue]\n : wrapInArray(modelValue.value).filter((item: any) => !props.valueComparator(item, trueValue.value))\n }\n\n if (group) {\n group.modelValue.value = newVal\n } else {\n modelValue.value = newVal\n }\n },\n })\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n model.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n const icon = computed(() => {\n return model.value\n ? group?.trueIcon.value ?? props.trueIcon\n : group?.falseIcon.value ?? props.falseIcon\n })\n\n return {\n group,\n densityClasses,\n trueValue,\n falseValue,\n model,\n textColorClasses,\n textColorStyles,\n icon,\n }\n}\n\nexport const VSelectionControl = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: MakeSlots<{\n default: []\n input: [SelectionControlSlot]\n }>\n}>()({\n name: 'VSelectionControl',\n\n directives: { Ripple },\n\n inheritAttrs: false,\n\n props: makeSelectionControlProps(),\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, slots }) {\n const {\n densityClasses,\n group,\n icon,\n model,\n textColorClasses,\n textColorStyles,\n trueValue,\n } = useSelectionControl(props)\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n const isFocused = ref(false)\n const isFocusVisible = ref(false)\n const input = ref<HTMLInputElement>()\n\n function onFocus (e: FocusEvent) {\n isFocused.value = true\n if (\n !SUPPORTS_FOCUS_VISIBLE ||\n (SUPPORTS_FOCUS_VISIBLE && (e.target as HTMLElement).matches(':focus-visible'))\n ) {\n isFocusVisible.value = true\n }\n }\n\n function onBlur () {\n isFocused.value = false\n isFocusVisible.value = false\n }\n\n useRender(() => {\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n const type = group?.type.value ?? props.type\n\n return (\n <div\n class={[\n 'v-selection-control',\n {\n 'v-selection-control--dirty': model.value,\n 'v-selection-control--disabled': props.disabled,\n 'v-selection-control--error': props.error,\n 'v-selection-control--focused': isFocused.value,\n 'v-selection-control--focus-visible': isFocusVisible.value,\n 'v-selection-control--inline': group?.inline.value || props.inline,\n },\n densityClasses.value,\n ]}\n >\n <div class={[\n 'v-selection-control__wrapper',\n textColorClasses.value,\n ]}\n >\n { slots.default?.() }\n\n <div\n class={[\n 'v-selection-control__input',\n ]}\n style={ textColorStyles.value }\n v-ripple={ props.ripple && [\n !props.disabled && !props.readonly,\n null,\n ['center', 'circle'],\n ]}\n >\n { icon.value && <VIcon icon={ icon.value } /> }\n\n <input\n v-model={ model.value }\n ref={ input }\n disabled={ props.disabled }\n id={ id.value }\n onBlur={ onBlur }\n onFocus={ onFocus }\n aria-readonly={ props.readonly }\n type={ type }\n value={ trueValue.value }\n name={ group?.name.value ?? props.name }\n aria-checked={ type === 'checkbox' ? model.value : undefined }\n { ...attrs }\n />\n\n { slots.input?.({\n model,\n textColorClasses,\n props: {\n onFocus,\n onBlur,\n id: id.value,\n },\n }) }\n </div>\n </div>\n\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n </div>\n )\n })\n\n return {\n isFocused,\n input,\n }\n },\n})\n\nexport type VSelectionControl = InstanceType<typeof VSelectionControl>\n\nexport function filterControlProps (props: ExtractPropTypes<ReturnType<typeof makeSelectionControlProps>>) {\n return pick(props, Object.keys(VSelectionControl.props) as any)\n}\n","// Styles\nimport './VCheckbox.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed } from 'vue'\nimport { defineComponent, filterInputAttrs, useRender } from '@/util'\n\nexport const VCheckbox = defineComponent({\n name: 'VCheckbox',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n indeterminateIcon: {\n type: String,\n default: '$checkboxIndeterminate',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n falseIcon: {\n type: String,\n default: '$checkboxOff',\n },\n trueIcon: {\n type: String,\n default: '$checkboxOn',\n },\n },\n\n emits: {\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const falseIcon = computed(() => {\n return indeterminate.value\n ? props.indeterminateIcon\n : props.falseIcon\n })\n const trueIcon = computed(() => {\n return indeterminate.value\n ? props.indeterminateIcon\n : props.trueIcon\n })\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n\n return (\n <VInput\n class=\"v-checkbox\"\n { ...inputAttrs }\n { ...inputProps }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isReadonly,\n }) => (\n <VSelectionControl\n { ...controlProps }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n falseIcon={ falseIcon.value }\n trueIcon={ trueIcon.value }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-slots={ slots }\n />\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VCheckbox = InstanceType<typeof VCheckbox>\n","import './VCode.sass'\n\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCode = createSimpleFunctional('v-code')\n","// Styles\nimport './VSheet.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VSheet = defineComponent({\n name: 'VSheet',\n\n props: {\n color: String,\n\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props)\n const { roundedClasses } = useRounded(props)\n\n return () => (\n <props.tag\n class={[\n 'v-sheet',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","/* eslint-disable max-statements */\n// Composables\nimport { useRtl } from '@/composables/rtl'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeElevationProps } from '@/composables/elevation'\n\n// Utilities\nimport { computed, provide, ref, toRef } from 'vue'\nimport { clamp, createRange, propsFactory } from '@/util'\n\n// Types\nimport type { ExtractPropTypes, InjectionKey, PropType, Ref } from 'vue'\nimport type { VSliderTrack } from './VSliderTrack'\n\ntype Tick = {\n value: number\n position: number\n label?: string\n}\n\ntype SliderProvide = {\n activeThumbRef: Ref<HTMLElement | undefined>\n color: Ref<string | undefined>\n decimals: Ref<number>\n direction: Ref<'vertical' | 'horizontal'>\n disabled: Ref<boolean | undefined>\n elevation: Ref<number | string | undefined>\n min: Ref<number>\n max: Ref<number>\n mousePressed: Ref<boolean>\n numTicks: Ref<number>\n onSliderMousedown: (e: MouseEvent) => void\n onSliderTouchstart: (e: TouchEvent) => void\n parseMouseMove: (e: MouseEvent | TouchEvent) => number\n position: (val: number) => number\n readonly: Ref<boolean | undefined>\n rounded: Ref<boolean | number | string | undefined>\n roundValue: (value: number) => number\n thumbLabel: Ref<boolean | string | undefined>\n showTicks: Ref<boolean | 'always'>\n startOffset: Ref<number>\n step: Ref<number>\n thumbSize: Ref<number>\n thumbColor: Ref<string | undefined>\n trackColor: Ref<string | undefined>\n trackFillColor: Ref<string | undefined>\n trackSize: Ref<number>\n ticks: Ref<number[] | Record<string, string> | undefined>\n tickSize: Ref<number>\n trackContainerRef: Ref<VSliderTrack | undefined>\n vertical: Ref<boolean>\n parsedTicks: Ref<Tick[]>\n hasLabels: Ref<boolean>\n isReversed: Ref<boolean>\n horizontalDirection: Ref<'ltr' | 'rtl'>\n}\n\nexport const VSliderSymbol: InjectionKey<SliderProvide> = Symbol.for('vuetify:v-slider')\n\nexport function getOffset (e: MouseEvent | TouchEvent, el: HTMLElement, direction: string) {\n const vertical = direction === 'vertical'\n const rect = el.getBoundingClientRect()\n const touch = 'touches' in e ? e.touches[0] : e\n return vertical\n ? touch.clientY - (rect.top + rect.height / 2)\n : touch.clientX - (rect.left + rect.width / 2)\n}\n\nfunction getPosition (e: MouseEvent | TouchEvent, position: 'clientX' | 'clientY'): number {\n if ('touches' in e && e.touches.length) return e.touches[0][position]\n else if ('changedTouches' in e && e.changedTouches.length) return e.changedTouches[0][position]\n else return (e as MouseEvent)[position]\n}\n\nexport const makeSliderProps = propsFactory({\n disabled: Boolean,\n error: Boolean,\n readonly: Boolean,\n max: {\n type: [Number, String],\n default: 100,\n },\n min: {\n type: [Number, String],\n default: 0,\n },\n step: {\n type: [Number, String],\n default: 0,\n },\n thumbColor: String,\n thumbLabel: {\n type: [Boolean, String] as PropType<boolean | 'always' | undefined>,\n default: undefined,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n thumbSize: {\n type: [Number, String],\n default: 20,\n },\n showTicks: {\n type: [Boolean, String] as PropType<boolean | 'always'>,\n default: false,\n validator: (v: any) => typeof v === 'boolean' || v === 'always',\n },\n ticks: {\n type: [Array, Object] as PropType<number[] | Record<number, string>>,\n },\n tickSize: {\n type: [Number, String],\n default: 2,\n },\n color: String,\n trackColor: String,\n trackFillColor: String,\n trackSize: {\n type: [Number, String],\n default: 4,\n },\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n },\n reverse: Boolean,\n\n ...makeRoundedProps(),\n ...makeElevationProps({\n elevation: 2,\n }),\n}, 'slider')\n\ntype SliderProps = ExtractPropTypes<ReturnType<typeof makeSliderProps>>\n\nexport const useSlider = ({\n props,\n handleSliderMouseUp,\n handleMouseMove,\n getActiveThumb,\n}: {\n props: SliderProps\n handleSliderMouseUp: (v: number) => void\n handleMouseMove: (v: number) => void\n getActiveThumb: (e: MouseEvent | TouchEvent) => HTMLElement\n}) => {\n const { isRtl } = useRtl()\n const isReversed = computed(() => isRtl.value !== props.reverse)\n const horizontalDirection = computed(() => {\n let hd: 'ltr' | 'rtl' = isRtl.value ? 'rtl' : 'ltr'\n\n if (props.reverse) {\n hd = hd === 'rtl' ? 'ltr' : 'rtl'\n }\n\n return hd\n })\n const min = computed(() => parseFloat(props.min))\n const max = computed(() => parseFloat(props.max))\n const step = computed(() => props.step > 0 ? parseFloat(props.step) : 0)\n const decimals = computed(() => {\n const trimmedStep = step.value.toString().trim()\n return trimmedStep.includes('.')\n ? (trimmedStep.length - trimmedStep.indexOf('.') - 1)\n : 0\n })\n\n const thumbSize = computed(() => parseInt(props.thumbSize, 10))\n const tickSize = computed(() => parseInt(props.tickSize, 10))\n const trackSize = computed(() => parseInt(props.trackSize, 10))\n const numTicks = computed(() => (max.value - min.value) / step.value)\n const disabled = toRef(props, 'disabled')\n const vertical = computed(() => props.direction === 'vertical')\n\n const thumbColor = computed(() => props.error || props.disabled ? undefined : props.thumbColor ?? props.color)\n const trackColor = computed(() => props.error || props.disabled ? undefined : props.trackColor ?? props.color)\n const trackFillColor = computed(() => props.error || props.disabled ? undefined : props.trackFillColor ?? props.color)\n\n const mousePressed = ref(false)\n\n const startOffset = ref(0)\n const trackContainerRef = ref<VSliderTrack | undefined>()\n const activeThumbRef = ref<HTMLElement | undefined>()\n\n function roundValue (value: number) {\n if (step.value <= 0) return value\n\n const clamped = clamp(value, min.value, max.value)\n const offset = min.value % step.value\n const newValue = Math.round((clamped - offset) / step.value) * step.value + offset\n\n return parseFloat(Math.min(newValue, max.value).toFixed(decimals.value))\n }\n\n function parseMouseMove (e: MouseEvent | TouchEvent): number {\n const vertical = props.direction === 'vertical'\n const start = vertical ? 'top' : 'left'\n const length = vertical ? 'height' : 'width'\n const position = vertical ? 'clientY' : 'clientX'\n\n const {\n [start]: trackStart,\n [length]: trackLength,\n } = trackContainerRef.value?.$el.getBoundingClientRect()\n const clickOffset = getPosition(e, position)\n\n // It is possible for left to be NaN, force to number\n let clickPos = Math.min(Math.max((clickOffset - trackStart - startOffset.value) / trackLength, 0), 1) || 0\n\n if (vertical || isReversed.value) clickPos = 1 - clickPos\n\n return roundValue(min.value + clickPos * (max.value - min.value))\n }\n\n let thumbMoved = false\n\n const handleStop = (e: MouseEvent | TouchEvent) => {\n if (!thumbMoved) {\n startOffset.value = 0\n handleSliderMouseUp(parseMouseMove(e))\n }\n\n mousePressed.value = false\n thumbMoved = false\n startOffset.value = 0\n }\n\n const handleStart = (e: MouseEvent | TouchEvent) => {\n activeThumbRef.value = getActiveThumb(e)\n\n if (!activeThumbRef.value) return\n\n activeThumbRef.value.focus()\n mousePressed.value = true\n\n if (activeThumbRef.value.contains(e.target as Node)) {\n thumbMoved = true\n startOffset.value = getOffset(e, activeThumbRef.value, props.direction)\n } else {\n startOffset.value = 0\n handleMouseMove(parseMouseMove(e))\n }\n }\n\n const moveListenerOptions = { passive: true, capture: true }\n\n function onMouseMove (e: MouseEvent | TouchEvent) {\n thumbMoved = true\n handleMouseMove(parseMouseMove(e))\n }\n\n function onSliderMouseUp (e: MouseEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.removeEventListener('mouseup', onSliderMouseUp)\n }\n\n function onSliderTouchend (e: TouchEvent) {\n e.stopPropagation()\n e.preventDefault()\n\n handleStop(e)\n\n window.removeEventListener('touchmove', onMouseMove, moveListenerOptions)\n window.removeEventListener('touchend', onSliderTouchend)\n }\n\n function onSliderTouchstart (e: TouchEvent) {\n handleStart(e)\n\n window.addEventListener('touchmove', onMouseMove, moveListenerOptions)\n window.addEventListener('touchend', onSliderTouchend, { passive: false })\n }\n\n function onSliderMousedown (e: MouseEvent) {\n e.preventDefault()\n\n handleStart(e)\n\n window.addEventListener('mousemove', onMouseMove, moveListenerOptions)\n window.addEventListener('mouseup', onSliderMouseUp, { passive: false })\n }\n\n const position = (val: number) => {\n const percentage = (val - min.value) / (max.value - min.value) * 100\n return clamp(isNaN(percentage) ? 0 : percentage, 0, 100)\n }\n\n const parsedTicks = computed<Tick[]>(() => {\n if (!props.ticks) {\n return numTicks.value !== Infinity ? createRange(numTicks.value + 1).map(t => {\n const value = min.value + (t * step.value)\n return {\n value,\n position: position(value),\n }\n }) : []\n }\n if (Array.isArray(props.ticks)) return props.ticks.map(t => ({ value: t, position: position(t), label: t.toString() }))\n return Object.keys(props.ticks).map(key => ({\n value: parseInt(key, 10),\n position: position(parseInt(key, 10)),\n label: (props.ticks as Record<string, string>)[key],\n }))\n })\n\n const hasLabels = computed(() => parsedTicks.value.some(({ label }) => !!label))\n\n const data: SliderProvide = {\n activeThumbRef,\n color: toRef(props, 'color'),\n decimals,\n disabled,\n direction: toRef(props, 'direction'),\n elevation: toRef(props, 'elevation'),\n hasLabels,\n horizontalDirection,\n isReversed,\n min,\n max,\n mousePressed,\n numTicks,\n onSliderMousedown,\n onSliderTouchstart,\n parsedTicks,\n parseMouseMove,\n position,\n readonly: toRef(props, 'readonly'),\n rounded: toRef(props, 'rounded'),\n roundValue,\n showTicks: toRef(props, 'showTicks'),\n startOffset,\n step,\n thumbSize,\n thumbColor,\n thumbLabel: toRef(props, 'thumbLabel'),\n ticks: toRef(props, 'ticks'),\n tickSize,\n trackColor,\n trackContainerRef,\n trackFillColor,\n trackSize,\n vertical,\n }\n\n provide(VSliderSymbol, data)\n\n return data\n}\n","// Styles\nimport './VSliderThumb.sass'\n\n// Components\nimport { VScaleTransition } from '../transitions'\nimport { VSliderSymbol } from './slider'\nimport { useElevation } from '@/composables/elevation'\n\n// Directives\nimport Ripple from '@/directives/ripple'\n\n// Composables\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent, keyValues } from '@/util'\n\nexport const VSliderThumb = defineComponent({\n name: 'VSliderThumb',\n\n directives: { Ripple },\n\n props: {\n focused: Boolean,\n max: {\n type: Number,\n required: true,\n },\n min: {\n type: Number,\n required: true,\n },\n modelValue: {\n type: Number,\n required: true,\n },\n position: {\n type: Number,\n required: true,\n },\n },\n\n emits: {\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-thumb must be used inside v-slider or v-range-slider')\n\n const {\n thumbColor,\n step,\n vertical,\n disabled,\n thumbSize,\n thumbLabel,\n direction,\n readonly,\n elevation,\n isReversed,\n horizontalDirection,\n mousePressed,\n decimals,\n } = slider\n\n const { textColorClasses, textColorStyles } = useTextColor(thumbColor)\n\n const { pageup, pagedown, end, home, left, right, down, up } = keyValues\n const relevantKeys = [pageup, pagedown, end, home, left, right, down, up]\n\n const multipliers = computed(() => {\n if (step.value) return [1, 2, 3]\n else return [1, 5, 10]\n })\n\n function parseKeydown (e: KeyboardEvent, value: number) {\n if (!relevantKeys.includes(e.key)) return\n\n e.preventDefault()\n\n const _step = step.value || 0.1\n const steps = (props.max - props.min) / _step\n if ([left, right, down, up].includes(e.key)) {\n const increase = isReversed.value ? [left, up] : [right, up]\n const direction = increase.includes(e.key) ? 1 : -1\n const multiplier = e.shiftKey ? 2 : (e.ctrlKey ? 1 : 0)\n\n value = value + (direction * _step * multipliers.value[multiplier])\n } else if (e.key === home) {\n value = props.min\n } else if (e.key === end) {\n value = props.max\n } else {\n const direction = e.key === pagedown ? 1 : -1\n value = value - (direction * _step * (steps > 100 ? steps / 10 : 10))\n }\n\n return Math.max(props.min, Math.min(props.max, value))\n }\n\n function onKeydown (e: KeyboardEvent) {\n const newValue = parseKeydown(e, props.modelValue)\n\n newValue != null && emit('update:modelValue', newValue)\n }\n\n return () => {\n const positionPercentage = convertToUnit(vertical.value ? 100 - props.position : props.position, '%')\n const inset = vertical.value ? 'block' : 'inline'\n const { elevationClasses } = useElevation(computed(() => !disabled.value ? elevation.value : undefined))\n\n return (\n <div\n class={[\n 'v-slider-thumb',\n {\n 'v-slider-thumb--focused': props.focused,\n 'v-slider-thumb--pressed': props.focused && mousePressed.value,\n },\n ]}\n style={{\n [`inset-${inset}-start`]: `calc(${positionPercentage} - var(--v-slider-thumb-size) / 2)`,\n '--v-slider-thumb-size': convertToUnit(thumbSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n role=\"slider\"\n tabindex={ disabled.value ? -1 : 0 }\n aria-valuemin={ props.min }\n aria-valuemax={ props.max }\n aria-valuenow={ props.modelValue }\n aria-readonly={ readonly.value }\n aria-orientation={ direction.value }\n onKeydown={ !readonly.value ? onKeydown : undefined }\n >\n <div\n class={[\n 'v-slider-thumb__surface',\n textColorClasses.value,\n elevationClasses.value,\n ]}\n style={{\n ...textColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-thumb__ripple',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n v-ripple={[true, null, ['circle', 'center']]}\n />\n <VScaleTransition origin=\"bottom center\">\n <div\n class=\"v-slider-thumb__label-container\"\n v-show={ (thumbLabel.value && props.focused) || thumbLabel.value === 'always' }\n >\n <div\n class={[\n 'v-slider-thumb__label',\n ]}\n >\n <div>\n { slots['thumb-label']?.({ modelValue: props.modelValue }) ?? props.modelValue.toFixed(step.value ? decimals.value : 1) }\n </div>\n </div>\n </div>\n </VScaleTransition>\n </div>\n )\n }\n },\n})\n\nexport type VSliderThumb = InstanceType<typeof VSliderThumb>\n","// Styles\nimport './VSliderTrack.sass'\n\n// Components\nimport { VSliderSymbol } from './slider'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\n\nexport const VSliderTrack = defineComponent({\n name: 'VSliderTrack',\n\n props: {\n start: {\n type: Number,\n required: true,\n },\n stop: {\n type: Number,\n required: true,\n },\n },\n\n emits: {},\n\n setup (props, { slots }) {\n const slider = inject(VSliderSymbol)\n\n if (!slider) throw new Error('[Vuetify] v-slider-track must be inside v-slider or v-range-slider')\n\n const {\n trackColor,\n trackFillColor,\n vertical,\n tickSize,\n showTicks,\n trackSize,\n color,\n rounded,\n parsedTicks,\n horizontalDirection,\n } = slider\n\n const { roundedClasses } = useRounded(rounded)\n\n const {\n backgroundColorClasses: trackFillColorClasses,\n backgroundColorStyles: trackFillColorStyles,\n } = useBackgroundColor(trackFillColor)\n\n const {\n backgroundColorClasses: trackColorClasses,\n backgroundColorStyles: trackColorStyles,\n } = useBackgroundColor(trackColor)\n\n const startDir = computed(() => `inset-${vertical.value ? 'block-end' : 'inline-start'}`)\n const endDir = computed(() => vertical.value ? 'height' : 'width')\n\n const backgroundStyles = computed(() => {\n return {\n [startDir.value]: '0%',\n [endDir.value]: '100%',\n }\n })\n\n const trackFillWidth = computed(() => props.stop - props.start)\n\n const trackFillStyles = computed(() => {\n return {\n [startDir.value]: convertToUnit(props.start, '%'),\n [endDir.value]: convertToUnit(trackFillWidth.value, '%'),\n }\n })\n\n const computedTicks = computed(() => {\n const ticks = vertical.value ? parsedTicks.value.slice().reverse() : parsedTicks.value\n\n return ticks.map((tick, index) => {\n const directionProperty = vertical.value ? 'bottom' : 'margin-inline-start'\n return (\n <div\n key={ tick.value }\n class={[\n 'v-slider-track__tick',\n {\n 'v-slider-track__tick--filled': tick.position >= props.start && tick.position <= props.stop,\n },\n ]}\n style={{\n [directionProperty]: (tick.position > 0 && tick.position < 100) && convertToUnit(tick.position, '%'),\n }}\n >\n {\n (tick.label || slots['tick-label']) && (\n <div class=\"v-slider-track__tick-label\">\n { slots['tick-label']?.({ tick, index }) ?? tick.label }\n </div>\n )\n }\n </div>\n )\n })\n })\n\n return () => {\n return (\n <div\n class={[\n 'v-slider-track',\n roundedClasses.value,\n ]}\n style={{\n '--v-slider-track-size': convertToUnit(trackSize.value),\n '--v-slider-tick-size': convertToUnit(tickSize.value),\n direction: !vertical.value ? horizontalDirection.value : undefined,\n }}\n >\n <div\n class={[\n 'v-slider-track__background',\n trackColorClasses.value,\n {\n 'v-slider-track__background--opacity': !!color.value || !trackFillColor.value,\n },\n ]}\n style={{\n ...backgroundStyles.value,\n ...trackColorStyles.value,\n }}\n />\n <div\n class={[\n 'v-slider-track__fill',\n trackFillColorClasses.value,\n ]}\n style={{\n ...trackFillStyles.value,\n ...trackFillColorStyles.value,\n }}\n />\n\n { showTicks.value && (\n <div\n class={[\n 'v-slider-track__ticks',\n {\n 'v-slider-track__ticks--always-show': showTicks.value === 'always',\n },\n ]}\n >\n { computedTicks.value }\n </div>\n ) }\n </div>\n )\n }\n },\n})\n\nexport type VSliderTrack = InstanceType<typeof VSliderTrack>\n","// Styles\nimport './VSlider.sass'\n\n// Components\nimport { VInput } from '../VInput'\nimport { VSliderThumb } from './VSliderThumb'\nimport { VSliderTrack } from './VSliderTrack'\n\n// Composables\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { makeSliderProps, useSlider } from './slider'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Helpers\nimport { defineComponent } from '@/util'\n\n// Types\nimport { computed, ref } from 'vue'\nimport { filterInputProps, makeVInputProps } from '../VInput/VInput'\n\nexport const VSlider = defineComponent({\n name: 'VSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeSliderProps(),\n ...makeVInputProps(),\n\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (v: number) => true,\n },\n\n setup (props, { attrs, slots }) {\n const thumbContainerRef = ref()\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n readonly,\n } = useSlider({\n props,\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleSliderMouseUp: newValue => model.value = roundValue(newValue),\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n handleMouseMove: newValue => model.value = roundValue(newValue),\n getActiveThumb: () => thumbContainerRef.value?.$el,\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n const value = typeof v === 'string' ? parseFloat(v) : v == null ? min.value : v\n\n return roundValue(value)\n },\n )\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStop = computed(() => position(model.value))\n\n return () => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ !readonly.value ? onSliderMousedown : undefined }\n onTouchstartPassive={ !readonly.value ? onSliderTouchstart : undefined }\n >\n <input\n id={ id.value }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ 0 }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ thumbContainerRef }\n focused={ isFocused.value }\n min={ min.value }\n max={ max.value }\n modelValue={ model.value }\n onUpdate:modelValue={ v => (model.value = v) }\n position={ trackStop.value }\n elevation={ props.elevation }\n onFocus={ focus }\n onBlur={ blur }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n }\n },\n})\n\nexport type VSlider = InstanceType<typeof VSlider>\n","// Utilities\nimport {\n HexToHSVA,\n HSLAtoHSVA,\n HSVAtoHex,\n HSVAtoHSLA,\n HSVAtoRGBA,\n parseHex,\n RGBAtoHSVA,\n} from '@/util/colorUtils'\n\n// Types\nimport type {\n HSLA,\n HSVA,\n RGBA,\n} from '@/util/colorUtils'\n\nfunction has (obj: object, key: string[]) {\n return key.every(k => obj.hasOwnProperty(k))\n}\n\nexport function parseColor (color: any): HSVA | null {\n if (!color) return null\n\n let hsva: HSVA | null = null\n\n if (typeof color === 'string') {\n const hex = parseHex(color)\n\n hsva = HexToHSVA(hex)\n }\n\n if (typeof color === 'object') {\n if (has(color, ['r', 'g', 'b'])) {\n hsva = RGBAtoHSVA(color)\n } else if (has(color, ['h', 's', 'l'])) {\n hsva = HSLAtoHSVA(color)\n } else if (has(color, ['h', 's', 'v'])) {\n hsva = color\n }\n }\n\n return hsva != null ? { ...hsva, a: hsva.a ?? 1 } : null\n}\n\nfunction stripAlpha (color: any, stripAlpha: boolean) {\n if (stripAlpha) {\n const { a, ...rest } = color\n\n return rest\n }\n\n return color\n}\n\nexport function extractColor (color: HSVA, input: any) {\n if (input == null || typeof input === 'string') {\n const hex = HSVAtoHex(color)\n\n if (color.a === 1) return hex.slice(0, 7)\n else return hex\n }\n\n if (typeof input === 'object') {\n let converted\n\n if (has(input, ['r', 'g', 'b'])) converted = HSVAtoRGBA(color)\n else if (has(input, ['h', 's', 'l'])) converted = HSVAtoHSLA(color)\n else if (has(input, ['h', 's', 'v'])) converted = color\n\n return stripAlpha(converted, !has(input, ['a']))\n }\n\n return color\n}\n\nexport function hasAlpha (color: any) {\n if (!color) return false\n\n if (typeof color === 'string') {\n return color.length > 7\n }\n\n if (typeof color === 'object') {\n return has(color, ['a']) || has(color, ['alpha'])\n }\n\n return false\n}\n\nexport const nullColor = { h: 0, s: 0, v: 1, a: 1 }\n\nexport type ColorPickerMode = {\n inputProps: Record<string, unknown>\n inputs: {\n [key: string]: any\n getValue: (color: any) => number | string\n getColor: (color: any, v: string) => any\n }[]\n from: (color: any) => HSVA\n to: (color: HSVA) => any\n}\n\nconst rgba: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'R',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.r),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, r: Number(v) }),\n },\n {\n label: 'G',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.g),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, g: Number(v) }),\n },\n {\n label: 'B',\n max: 255,\n step: 1,\n getValue: (c: RGBA) => Math.round(c.b),\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, b: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: (c: RGBA) => Math.round(c.a * 100) / 100,\n getColor: (c: RGBA, v: string): RGBA => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVAtoRGBA,\n from: RGBAtoHSVA,\n}\n\nconst rgb = {\n ...rgba,\n inputs: rgba.inputs?.slice(0, 3),\n}\n\nconst hsla: ColorPickerMode = {\n inputProps: {\n type: 'number',\n min: 0,\n },\n inputs: [\n {\n label: 'H',\n max: 360,\n step: 1,\n getValue: (c: HSLA) => Math.round(c.h),\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, h: Number(v) }),\n },\n {\n label: 'S',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.s * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, s: Number(v) }),\n },\n {\n label: 'L',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.l * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, l: Number(v) }),\n },\n {\n label: 'A',\n max: 1,\n step: 0.01,\n getValue: (c: HSLA) => Math.round(c.a * 100) / 100,\n getColor: (c: HSLA, v: string): HSLA => ({ ...c, a: Number(v) }),\n },\n ],\n to: HSVAtoHSLA,\n from: HSLAtoHSVA,\n}\n\nconst hsl = {\n ...hsla,\n inputs: hsla.inputs.slice(0, 3),\n}\n\nconst hexa: ColorPickerMode = {\n inputProps: {\n type: 'text',\n },\n inputs: [\n {\n label: 'HEXA',\n getValue: (c: string) => c,\n getColor: (c: string, v: string) => v,\n },\n ],\n to: HSVAtoHex,\n from: HexToHSVA,\n}\n\nconst hex = {\n ...hexa,\n inputs: [\n {\n label: 'HEX',\n getValue: (c: string) => c.slice(0, 7),\n getColor: (c: string, v: string) => v,\n },\n ],\n}\n\nexport const modes: Record<string, ColorPickerMode> = {\n rgb,\n rgba,\n hsl,\n hsla,\n hex,\n hexa,\n}\n","// Styles\nimport './VColorPickerPreview.sass'\n\n// Components\nimport { VSlider } from '@/components/VSlider'\n\n// Utilities\nimport { defineComponent, HSVAtoCSS } from '@/util'\nimport { nullColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nexport const VColorPickerPreview = defineComponent({\n name: 'VColorPickerPreview',\n\n props: {\n color: {\n type: Object as PropType<HSVA | null>,\n },\n disabled: Boolean,\n hideAlpha: Boolean,\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n },\n\n setup (props, { emit }) {\n return () => (\n <div\n class={[\n 'v-color-picker-preview',\n {\n 'v-color-picker-preview--hide-alpha': props.hideAlpha,\n },\n ]}\n >\n <div class=\"v-color-picker-preview__dot\">\n <div style={{ background: HSVAtoCSS(props.color ?? nullColor) }} />\n </div>\n <div class=\"v-color-picker-preview__sliders\">\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__hue\"\n modelValue={ props.color?.h }\n onUpdate:modelValue={ h => emit('update:color', { ...(props.color ?? nullColor), h }) }\n step={ 0 }\n min={ 0 }\n max={ 360 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n { !props.hideAlpha && (\n <VSlider\n class=\"v-color-picker-preview__track v-color-picker-preview__alpha\"\n modelValue={ props.color?.a }\n onUpdate:modelValue={ a => emit('update:color', { ...(props.color ?? nullColor), a }) }\n step={ 0 }\n min={ 0 }\n max={ 1 }\n disabled={ props.disabled }\n thumbSize={ 14 }\n trackSize={ 8 }\n trackFillColor=\"white\"\n hideDetails\n />\n ) }\n </div>\n </div>\n )\n },\n})\n","// Styles\nimport './VColorPickerCanvas.sass'\n\n// Utilities\nimport { computed, onMounted, ref, watch } from 'vue'\nimport { clamp, convertToUnit, defineComponent, getEventCoordinates } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nexport const VColorPickerCanvas = defineComponent({\n name: 'VColorPickerCanvas',\n\n props: {\n color: {\n type: Object as PropType<HSVA | null>,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n height: {\n type: [Number, String],\n default: 150,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:position': (hue: any) => true,\n },\n\n setup (props, { emit }) {\n const isInteracting = ref(false)\n const isOutsideUpdate = ref(false)\n const dotPosition = ref({ x: 0, y: 0 })\n\n const dotStyles = computed(() => {\n const { x, y } = dotPosition.value\n const radius = parseInt(props.dotSize, 10) / 2\n\n return {\n width: convertToUnit(props.dotSize),\n height: convertToUnit(props.dotSize),\n transform: `translate(${convertToUnit(x - radius)}, ${convertToUnit(y - radius)})`,\n }\n })\n\n const canvasRef = ref<HTMLCanvasElement | null>()\n\n function updateDotPosition (x: number, y: number, rect: DOMRect) {\n const { left, top, width, height } = rect\n dotPosition.value = {\n x: clamp(x - left, 0, width),\n y: clamp(y - top, 0, height),\n }\n }\n\n function handleClick (e: MouseEvent) {\n if (props.disabled || !canvasRef.value) return\n\n updateDotPosition(e.clientX, e.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseDown (e: MouseEvent | TouchEvent) {\n // To prevent selection while moving cursor\n e.preventDefault()\n\n if (props.disabled) return\n\n isInteracting.value = true\n\n window.addEventListener('mousemove', handleMouseMove)\n window.addEventListener('mouseup', handleMouseUp)\n window.addEventListener('touchmove', handleMouseMove)\n window.addEventListener('touchend', handleMouseUp)\n }\n\n function handleMouseMove (e: MouseEvent | TouchEvent) {\n if (props.disabled || !canvasRef.value) return\n\n isInteracting.value = true\n\n const coords = getEventCoordinates(e)\n\n updateDotPosition(coords.clientX, coords.clientY, canvasRef.value.getBoundingClientRect())\n }\n\n function handleMouseUp () {\n window.removeEventListener('mousemove', handleMouseMove)\n window.removeEventListener('mouseup', handleMouseUp)\n window.removeEventListener('touchmove', handleMouseMove)\n window.removeEventListener('touchend', handleMouseUp)\n }\n\n watch(dotPosition, () => {\n if (isOutsideUpdate.value) {\n isOutsideUpdate.value = false\n return\n }\n\n if (!canvasRef.value) return\n\n const { width, height } = canvasRef.value.getBoundingClientRect()\n const { x, y } = dotPosition.value\n\n emit('update:color', {\n h: props.color?.h ?? 0,\n s: clamp(x, 0, width) / width,\n v: 1 - clamp(y, 0, height) / height,\n a: props.color?.a ?? 1,\n })\n })\n\n function updateCanvas () {\n if (!canvasRef.value) return\n\n const canvas = canvasRef.value\n const ctx = canvas.getContext('2d')\n\n if (!ctx) return\n\n const saturationGradient = ctx.createLinearGradient(0, 0, canvas.width, 0)\n saturationGradient.addColorStop(0, 'hsla(0, 0%, 100%, 1)') // white\n saturationGradient.addColorStop(1, `hsla(${props.color?.h ?? 0}, 100%, 50%, 1)`)\n ctx.fillStyle = saturationGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n\n const valueGradient = ctx.createLinearGradient(0, 0, 0, canvas.height)\n valueGradient.addColorStop(0, 'hsla(0, 0%, 100%, 0)') // transparent\n valueGradient.addColorStop(1, 'hsla(0, 0%, 0%, 1)') // black\n ctx.fillStyle = valueGradient\n ctx.fillRect(0, 0, canvas.width, canvas.height)\n }\n\n watch(() => props.color?.h, updateCanvas, { immediate: true })\n\n watch(() => props.color, () => {\n if (isInteracting.value) {\n isInteracting.value = false\n return\n }\n\n if (!props.color) return\n\n isOutsideUpdate.value = true\n\n dotPosition.value = {\n x: props.color.s * parseInt(props.width, 10),\n y: (1 - props.color.v) * parseInt(props.height, 10),\n }\n }, { deep: true, immediate: true })\n\n onMounted(() => updateCanvas())\n\n return () => (\n <div\n class=\"v-color-picker-canvas\"\n style={{\n width: convertToUnit(props.width),\n height: convertToUnit(props.height),\n }}\n onClick={ handleClick }\n onMousedown={ handleMouseDown }\n onTouchstart={ handleMouseDown }\n >\n <canvas\n ref={ canvasRef }\n width={ props.width }\n height={ props.height }\n />\n <div\n class={[\n 'v-color-picker-canvas__dot',\n {\n 'v-color-picker-canvas__dot--disabled': props.disabled,\n },\n ]}\n style={ dotStyles.value }\n />\n </div>\n )\n },\n})\n","// Styles\nimport './VColorPickerEdit.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\nimport { modes } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util/colorUtils'\n\nconst VColorPickerInput = ({ label, ...rest }: any) => {\n return (\n <div\n class=\"v-color-picker-edit__input\"\n >\n <input {...rest} />\n <span>{ label }</span>\n </div>\n )\n}\n\nexport const VColorPickerEdit = defineComponent({\n name: 'VColorPickerEdit',\n\n props: {\n color: Object as PropType<HSVA | null>,\n disabled: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props, { emit }) {\n const enabledModes = computed(() => {\n return props.modes.map(key => ({ ...modes[key], name: key }))\n })\n\n const inputs = computed(() => {\n const mode = enabledModes.value.find(m => m.name === props.mode)\n\n if (!mode) return []\n\n const color = props.color ? mode.to(props.color) : {}\n\n return mode.inputs?.map(({ getValue, getColor, ...inputProps }) => {\n return {\n ...mode.inputProps,\n ...inputProps,\n disabled: props.disabled,\n value: getValue(color),\n onChange: (e: InputEvent) => {\n const target = e.target as HTMLInputElement | null\n\n if (!target) return\n\n emit('update:color', mode.from(getColor(color, target.value)))\n },\n }\n })\n })\n\n return () => (\n <div\n class=\"v-color-picker-edit\"\n >\n { inputs.value?.map(props => (\n <VColorPickerInput {...props} />\n )) }\n { enabledModes.value.length > 1 && (\n <VBtn\n icon=\"$unfold\"\n size=\"x-small\"\n variant=\"plain\"\n onClick={ () => {\n const mi = enabledModes.value.findIndex(m => m.name === props.mode)\n\n emit('update:mode', enabledModes.value[(mi + 1) % enabledModes.value.length].name)\n } }\n />\n ) }\n </div>\n )\n },\n})\n","const red = Object.freeze({\n base: '#f44336',\n lighten5: '#ffebee',\n lighten4: '#ffcdd2',\n lighten3: '#ef9a9a',\n lighten2: '#e57373',\n lighten1: '#ef5350',\n darken1: '#e53935',\n darken2: '#d32f2f',\n darken3: '#c62828',\n darken4: '#b71c1c',\n accent1: '#ff8a80',\n accent2: '#ff5252',\n accent3: '#ff1744',\n accent4: '#d50000',\n})\n\nconst pink = Object.freeze({\n base: '#e91e63',\n lighten5: '#fce4ec',\n lighten4: '#f8bbd0',\n lighten3: '#f48fb1',\n lighten2: '#f06292',\n lighten1: '#ec407a',\n darken1: '#d81b60',\n darken2: '#c2185b',\n darken3: '#ad1457',\n darken4: '#880e4f',\n accent1: '#ff80ab',\n accent2: '#ff4081',\n accent3: '#f50057',\n accent4: '#c51162',\n})\n\nconst purple = Object.freeze({\n base: '#9c27b0',\n lighten5: '#f3e5f5',\n lighten4: '#e1bee7',\n lighten3: '#ce93d8',\n lighten2: '#ba68c8',\n lighten1: '#ab47bc',\n darken1: '#8e24aa',\n darken2: '#7b1fa2',\n darken3: '#6a1b9a',\n darken4: '#4a148c',\n accent1: '#ea80fc',\n accent2: '#e040fb',\n accent3: '#d500f9',\n accent4: '#aa00ff',\n})\n\nconst deepPurple = Object.freeze({\n base: '#673ab7',\n lighten5: '#ede7f6',\n lighten4: '#d1c4e9',\n lighten3: '#b39ddb',\n lighten2: '#9575cd',\n lighten1: '#7e57c2',\n darken1: '#5e35b1',\n darken2: '#512da8',\n darken3: '#4527a0',\n darken4: '#311b92',\n accent1: '#b388ff',\n accent2: '#7c4dff',\n accent3: '#651fff',\n accent4: '#6200ea',\n})\n\nconst indigo = Object.freeze({\n base: '#3f51b5',\n lighten5: '#e8eaf6',\n lighten4: '#c5cae9',\n lighten3: '#9fa8da',\n lighten2: '#7986cb',\n lighten1: '#5c6bc0',\n darken1: '#3949ab',\n darken2: '#303f9f',\n darken3: '#283593',\n darken4: '#1a237e',\n accent1: '#8c9eff',\n accent2: '#536dfe',\n accent3: '#3d5afe',\n accent4: '#304ffe',\n})\n\nconst blue = Object.freeze({\n base: '#2196f3',\n lighten5: '#e3f2fd',\n lighten4: '#bbdefb',\n lighten3: '#90caf9',\n lighten2: '#64b5f6',\n lighten1: '#42a5f5',\n darken1: '#1e88e5',\n darken2: '#1976d2',\n darken3: '#1565c0',\n darken4: '#0d47a1',\n accent1: '#82b1ff',\n accent2: '#448aff',\n accent3: '#2979ff',\n accent4: '#2962ff',\n})\n\nconst lightBlue = Object.freeze({\n base: '#03a9f4',\n lighten5: '#e1f5fe',\n lighten4: '#b3e5fc',\n lighten3: '#81d4fa',\n lighten2: '#4fc3f7',\n lighten1: '#29b6f6',\n darken1: '#039be5',\n darken2: '#0288d1',\n darken3: '#0277bd',\n darken4: '#01579b',\n accent1: '#80d8ff',\n accent2: '#40c4ff',\n accent3: '#00b0ff',\n accent4: '#0091ea',\n})\n\nconst cyan = Object.freeze({\n base: '#00bcd4',\n lighten5: '#e0f7fa',\n lighten4: '#b2ebf2',\n lighten3: '#80deea',\n lighten2: '#4dd0e1',\n lighten1: '#26c6da',\n darken1: '#00acc1',\n darken2: '#0097a7',\n darken3: '#00838f',\n darken4: '#006064',\n accent1: '#84ffff',\n accent2: '#18ffff',\n accent3: '#00e5ff',\n accent4: '#00b8d4',\n})\n\nconst teal = Object.freeze({\n base: '#009688',\n lighten5: '#e0f2f1',\n lighten4: '#b2dfdb',\n lighten3: '#80cbc4',\n lighten2: '#4db6ac',\n lighten1: '#26a69a',\n darken1: '#00897b',\n darken2: '#00796b',\n darken3: '#00695c',\n darken4: '#004d40',\n accent1: '#a7ffeb',\n accent2: '#64ffda',\n accent3: '#1de9b6',\n accent4: '#00bfa5',\n})\n\nconst green = Object.freeze({\n base: '#4caf50',\n lighten5: '#e8f5e9',\n lighten4: '#c8e6c9',\n lighten3: '#a5d6a7',\n lighten2: '#81c784',\n lighten1: '#66bb6a',\n darken1: '#43a047',\n darken2: '#388e3c',\n darken3: '#2e7d32',\n darken4: '#1b5e20',\n accent1: '#b9f6ca',\n accent2: '#69f0ae',\n accent3: '#00e676',\n accent4: '#00c853',\n})\n\nconst lightGreen = Object.freeze({\n base: '#8bc34a',\n lighten5: '#f1f8e9',\n lighten4: '#dcedc8',\n lighten3: '#c5e1a5',\n lighten2: '#aed581',\n lighten1: '#9ccc65',\n darken1: '#7cb342',\n darken2: '#689f38',\n darken3: '#558b2f',\n darken4: '#33691e',\n accent1: '#ccff90',\n accent2: '#b2ff59',\n accent3: '#76ff03',\n accent4: '#64dd17',\n})\n\nconst lime = Object.freeze({\n base: '#cddc39',\n lighten5: '#f9fbe7',\n lighten4: '#f0f4c3',\n lighten3: '#e6ee9c',\n lighten2: '#dce775',\n lighten1: '#d4e157',\n darken1: '#c0ca33',\n darken2: '#afb42b',\n darken3: '#9e9d24',\n darken4: '#827717',\n accent1: '#f4ff81',\n accent2: '#eeff41',\n accent3: '#c6ff00',\n accent4: '#aeea00',\n})\n\nconst yellow = Object.freeze({\n base: '#ffeb3b',\n lighten5: '#fffde7',\n lighten4: '#fff9c4',\n lighten3: '#fff59d',\n lighten2: '#fff176',\n lighten1: '#ffee58',\n darken1: '#fdd835',\n darken2: '#fbc02d',\n darken3: '#f9a825',\n darken4: '#f57f17',\n accent1: '#ffff8d',\n accent2: '#ffff00',\n accent3: '#ffea00',\n accent4: '#ffd600',\n})\n\nconst amber = Object.freeze({\n base: '#ffc107',\n lighten5: '#fff8e1',\n lighten4: '#ffecb3',\n lighten3: '#ffe082',\n lighten2: '#ffd54f',\n lighten1: '#ffca28',\n darken1: '#ffb300',\n darken2: '#ffa000',\n darken3: '#ff8f00',\n darken4: '#ff6f00',\n accent1: '#ffe57f',\n accent2: '#ffd740',\n accent3: '#ffc400',\n accent4: '#ffab00',\n})\n\nconst orange = Object.freeze({\n base: '#ff9800',\n lighten5: '#fff3e0',\n lighten4: '#ffe0b2',\n lighten3: '#ffcc80',\n lighten2: '#ffb74d',\n lighten1: '#ffa726',\n darken1: '#fb8c00',\n darken2: '#f57c00',\n darken3: '#ef6c00',\n darken4: '#e65100',\n accent1: '#ffd180',\n accent2: '#ffab40',\n accent3: '#ff9100',\n accent4: '#ff6d00',\n})\n\nconst deepOrange = Object.freeze({\n base: '#ff5722',\n lighten5: '#fbe9e7',\n lighten4: '#ffccbc',\n lighten3: '#ffab91',\n lighten2: '#ff8a65',\n lighten1: '#ff7043',\n darken1: '#f4511e',\n darken2: '#e64a19',\n darken3: '#d84315',\n darken4: '#bf360c',\n accent1: '#ff9e80',\n accent2: '#ff6e40',\n accent3: '#ff3d00',\n accent4: '#dd2c00',\n})\n\nconst brown = Object.freeze({\n base: '#795548',\n lighten5: '#efebe9',\n lighten4: '#d7ccc8',\n lighten3: '#bcaaa4',\n lighten2: '#a1887f',\n lighten1: '#8d6e63',\n darken1: '#6d4c41',\n darken2: '#5d4037',\n darken3: '#4e342e',\n darken4: '#3e2723',\n})\n\nconst blueGrey = Object.freeze({\n base: '#607d8b',\n lighten5: '#eceff1',\n lighten4: '#cfd8dc',\n lighten3: '#b0bec5',\n lighten2: '#90a4ae',\n lighten1: '#78909c',\n darken1: '#546e7a',\n darken2: '#455a64',\n darken3: '#37474f',\n darken4: '#263238',\n})\n\nconst grey = Object.freeze({\n base: '#9e9e9e',\n lighten5: '#fafafa',\n lighten4: '#f5f5f5',\n lighten3: '#eeeeee',\n lighten2: '#e0e0e0',\n lighten1: '#bdbdbd',\n darken1: '#757575',\n darken2: '#616161',\n darken3: '#424242',\n darken4: '#212121',\n})\n\nconst shades = Object.freeze({\n black: '#000000',\n white: '#ffffff',\n transparent: 'transparent',\n})\n\nexport default Object.freeze({\n red,\n pink,\n purple,\n deepPurple,\n indigo,\n blue,\n lightBlue,\n cyan,\n teal,\n green,\n lightGreen,\n lime,\n yellow,\n amber,\n orange,\n deepOrange,\n brown,\n blueGrey,\n grey,\n shades,\n})\n","// Styles\nimport './VColorPickerSwatches.sass'\n\n// Components\nimport { VIcon } from '@/components/VIcon'\n\n// Utilities\nimport { convertToUnit, deepEqual, defineComponent, getContrast } from '@/util'\nimport colors from '@/util/colors'\nimport { parseColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nfunction parseDefaultColors (colors: Record<string, Record<string, string>>) {\n return Object.keys(colors).map(key => {\n const color = colors[key]\n return color.base ? [\n color.base,\n color.darken4,\n color.darken3,\n color.darken2,\n color.darken1,\n color.lighten1,\n color.lighten2,\n color.lighten3,\n color.lighten4,\n color.lighten5,\n ] : [\n color.black,\n color.white,\n color.transparent,\n ]\n })\n}\n\nexport const VColorPickerSwatches = defineComponent({\n name: 'VColorPickerSwatches',\n\n props: {\n swatches: {\n type: Array as PropType<string[][]>,\n default: () => parseDefaultColors(colors),\n },\n disabled: Boolean,\n color: Object as PropType<HSVA | null>,\n maxHeight: [Number, String],\n },\n\n emits: {\n 'update:color': (color: HSVA) => true,\n },\n\n setup (props, { emit }) {\n return () => (\n <div\n class=\"v-color-picker-swatches\"\n style={{\n maxHeight: convertToUnit(props.maxHeight),\n }}\n >\n <div>\n { props.swatches.map(swatch => (\n <div class=\"v-color-picker-swatches__swatch\">\n { swatch.map(color => {\n const hsva = parseColor(color)\n\n return (\n <div\n class=\"v-color-picker-swatches__color\"\n onClick={() => hsva && emit('update:color', hsva)}\n >\n <div style={{ background: color }}>\n { props.color && deepEqual(props.color, hsva)\n ? <VIcon size=\"x-small\" icon=\"$success\" color={getContrast(color, '#FFFFFF') > 2 ? 'white' : 'black' } />\n : undefined\n }\n </div>\n </div>\n )\n }) }\n </div>\n ))}\n </div>\n </div>\n )\n },\n})\n","// Styles\nimport './VColorPicker.sass'\n\n// Components\nimport { VSheet } from '@/components/VSheet'\nimport { VColorPickerPreview } from './VColorPickerPreview'\nimport { VColorPickerCanvas } from './VColorPickerCanvas'\nimport { VColorPickerEdit } from './VColorPickerEdit'\nimport { VColorPickerSwatches } from './VColorPickerSwatches'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\nimport { makeThemeProps } from '@/composables/theme'\n\n// Utilities\nimport { onMounted, ref } from 'vue'\nimport { defineComponent, HSVAtoCSS } from '@/util'\nimport { extractColor, modes, nullColor, parseColor } from './util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { HSVA } from '@/util'\n\nexport const VColorPicker = defineComponent({\n name: 'VColorPicker',\n\n inheritAttrs: false,\n\n props: {\n canvasHeight: {\n type: [String, Number],\n default: 150,\n },\n disabled: Boolean,\n dotSize: {\n type: [Number, String],\n default: 10,\n },\n hideCanvas: Boolean,\n hideSliders: Boolean,\n hideInputs: Boolean,\n mode: {\n type: String,\n default: 'rgba',\n validator: (v: string) => Object.keys(modes).includes(v),\n },\n modes: {\n type: Array as PropType<string[]>,\n default: () => Object.keys(modes),\n validator: (v: any) => Array.isArray(v) && v.every(m => Object.keys(modes).includes(m)),\n },\n showSwatches: Boolean,\n swatches: Array as PropType<string[][]>,\n swatchesMaxHeight: {\n type: [Number, String],\n default: 150,\n },\n modelValue: {\n type: [Object, String] as PropType<Record<string, unknown> | string | undefined | null>,\n },\n width: {\n type: [Number, String],\n default: 300,\n },\n\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (color: any) => true,\n 'update:mode': (mode: string) => true,\n },\n\n setup (props) {\n const mode = useProxiedModel(props, 'mode')\n const lastPickedColor = ref<HSVA | null>(null)\n const currentColor = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n v => {\n let c = parseColor(v)\n\n if (!c) return null\n\n if (lastPickedColor.value) {\n c = { ...c, h: lastPickedColor.value.h }\n lastPickedColor.value = null\n }\n\n return c\n },\n v => {\n if (!v) return null\n\n return extractColor(v, props.modelValue)\n }\n )\n\n const updateColor = (hsva: HSVA) => {\n currentColor.value = hsva\n lastPickedColor.value = hsva\n }\n\n onMounted(() => {\n if (!props.modes.includes(mode.value)) mode.value = props.modes[0]\n })\n\n return () => (\n <VSheet\n rounded={ props.rounded }\n elevation={ props.elevation }\n theme={ props.theme }\n class={[\n 'v-color-picker',\n ]}\n style={{\n '--v-color-picker-color-hsv': HSVAtoCSS({ ...(currentColor.value ?? nullColor), a: 1 }),\n }}\n maxWidth={ props.width }\n >\n { !props.hideCanvas && (\n <VColorPickerCanvas\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n dotSize={ props.dotSize }\n width={ props.width }\n height={ props.canvasHeight }\n />\n ) }\n { (!props.hideSliders || !props.hideInputs) && (\n <div class=\"v-color-picker__controls\">\n { !props.hideSliders && (\n <VColorPickerPreview\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n hideAlpha={ !mode.value.endsWith('a') }\n disabled={ props.disabled }\n />\n ) }\n { !props.hideInputs && (\n <VColorPickerEdit\n modes={ props.modes }\n mode={ mode.value }\n onUpdate:mode={ m => mode.value = m }\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n disabled={ props.disabled }\n />\n ) }\n </div>\n ) }\n { props.showSwatches && (\n <VColorPickerSwatches\n color={ currentColor.value }\n onUpdate:color={ updateColor }\n maxHeight={ props.swatchesMaxHeight }\n swatches={ props.swatches }\n disabled={ props.disabled }\n />\n ) }\n </VSheet>\n )\n },\n})\n\nexport type VColorPicker = InstanceType<typeof VColorPicker>\n","// Styles\nimport './VCombobox.sass'\n\n// Components\nimport { makeSelectProps } from '@/components/VSelect/VSelect'\nimport { VChip } from '@/components/VChip'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VList, VListItem } from '@/components/VList'\nimport { VMenu } from '@/components/VMenu'\nimport { VTextField } from '@/components/VTextField'\n\n// Composables\nimport { makeFilterProps, useFilter } from '@/composables/filter'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { transformItem, useItems } from '@/composables/items'\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utility\nimport { computed, nextTick, ref, watch } from 'vue'\nimport { genericComponent, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { FilterMatch } from '@/composables/filter'\nimport type { DefaultChipSlot, InternalSelectItem } from '@/components/VSelect/VSelect'\nimport type { MakeSlots } from '@/util'\nimport type { PropType } from 'vue'\n\nexport interface InternalComboboxItem extends InternalSelectItem {\n selected: boolean\n}\n\nexport interface DefaultComboboxSlot {\n selection: InternalComboboxItem\n}\n\nfunction highlightResult (text: string, matches: FilterMatch, length: number) {\n if (Array.isArray(matches)) throw new Error('Multiple matches is not implemented')\n\n return typeof matches === 'number' && ~matches\n ? (\n <>\n <span class=\"v-combobox__unmask\">{ text.substr(0, matches) }</span>\n <span class=\"v-combobox__mask\">{ text.substr(matches, length) }</span>\n <span class=\"v-combobox__unmask\">{ text.substr(matches + length) }</span>\n </>\n )\n : text\n}\n\nexport const VCombobox = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n chip: [DefaultChipSlot]\n default: []\n selection: [DefaultComboboxSlot]\n }>\n}>()({\n name: 'VCombobox',\n\n props: {\n // TODO: implement post keyboard support\n // autoSelectFirst: Boolean,\n delimiters: Array as PropType<string[]>,\n\n ...makeFilterProps({ filterKeys: ['title'] }),\n ...makeSelectProps({ hideNoData: true }),\n ...makeTransitionProps({ transition: false }),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n 'update:searchInput': (val: string) => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n const vTextFieldRef = ref()\n const activator = ref()\n const isFocused = ref(false)\n const isPristine = ref(true)\n const menu = ref(false)\n const selectionIndex = ref(-1)\n const color = computed(() => vTextFieldRef.value?.color)\n const { items } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => wrapInArray(v || []),\n (v: any) => props.multiple ? v : v[0]\n )\n const _search = ref('')\n const search = computed<string>({\n get: () => props.multiple ? _search.value : transformItem(props, model.value[0]).value,\n set: val => {\n if (props.multiple) {\n _search.value = val\n } else {\n model.value = [val]\n }\n\n if (val && props.multiple && props.delimiters?.length) {\n const values = val.split(new RegExp(`(?:${props.delimiters.join('|')})+`))\n if (values.length > 1) {\n values.forEach(v => {\n v = v.trim()\n if (v) select({ value: v })\n })\n _search.value = ''\n }\n }\n\n if (!val) selectionIndex.value = -1\n if (isFocused.value) menu.value = true\n\n isPristine.value = !val\n },\n })\n watch(_search, value => {\n emit('update:searchInput', value)\n })\n\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n\n const selections = computed(() => {\n const array: InternalComboboxItem[] = []\n let index = 0\n for (const unwrapped of model.value) {\n const item = transformItem(props, unwrapped)\n\n const found = array.find(selection => selection.value === item.value)\n\n if (found == null) {\n array.push({\n ...item,\n index,\n selected: index === selectionIndex.value,\n })\n\n index++\n }\n }\n\n return array\n })\n const selected = computed(() => selections.value.map(selection => selection.value))\n const selection = computed(() => selections.value[selectionIndex.value])\n\n function onClear (e: MouseEvent) {\n model.value = []\n\n if (props.openOnClear) {\n menu.value = true\n }\n }\n function onClickControl () {\n if (props.hideNoData && !filteredItems.value.length) return\n\n menu.value = true\n }\n function onKeydown (e: KeyboardEvent) {\n const selectionStart = vTextFieldRef.value.selectionStart\n const length = selected.value.length\n\n if (selectionIndex.value > -1) e.preventDefault()\n\n if (['Enter', 'ArrowDown'].includes(e.key)) {\n menu.value = true\n }\n\n if (['Escape'].includes(e.key)) {\n menu.value = false\n }\n\n if (['Enter', 'Escape', 'Tab'].includes(e.key)) {\n isPristine.value = true\n }\n\n if (!props.multiple) return\n\n if (['Backspace', 'Delete'].includes(e.key)) {\n if (selectionIndex.value < 0) {\n if (e.key === 'Backspace' && !search.value) {\n selectionIndex.value = length - 1\n }\n\n return\n }\n\n select(selection.value)\n\n nextTick(() => !selection.value && (selectionIndex.value = length - 2))\n }\n\n if (e.key === 'ArrowLeft') {\n if (selectionIndex.value < 0 && selectionStart > 0) return\n\n const prev = selectionIndex.value > -1\n ? selectionIndex.value - 1\n : length - 1\n\n if (selections.value[prev]) {\n selectionIndex.value = prev\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(search.value.length, search.value.length)\n }\n }\n\n if (e.key === 'ArrowRight') {\n if (selectionIndex.value < 0) return\n\n const next = selectionIndex.value + 1\n\n if (selections.value[next]) {\n selectionIndex.value = next\n } else {\n selectionIndex.value = -1\n vTextFieldRef.value.setSelectionRange(0, 0)\n }\n }\n\n if (e.key === 'Enter') {\n select({ value: search.value })\n search.value = ''\n }\n }\n function onInput (e: InputEvent) {\n search.value = (e.target as HTMLInputElement).value\n }\n function onAfterLeave () {\n if (isFocused.value) isPristine.value = true\n }\n function select (item: any) {\n if (props.multiple) {\n const index = selected.value.findIndex(selection => selection === item.value)\n\n if (index === -1) {\n model.value = [...model.value, item.value]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n\n search.value = ''\n } else {\n search.value = item.title\n\n // watch for search watcher to trigger\n nextTick(() => {\n menu.value = false\n isPristine.value = true\n })\n }\n }\n\n watch(() => vTextFieldRef.value, val => {\n activator.value = val.$el.querySelector('.v-input__control')\n })\n\n watch(filteredItems, val => {\n if (!val.length && props.hideNoData) menu.value = false\n })\n\n watch(isFocused, val => {\n if (val) {\n selectionIndex.value = -1\n } else {\n menu.value = false\n\n if (!props.multiple || !search.value) return\n\n model.value = [...model.value, search.value]\n search.value = ''\n }\n })\n\n useRender(() => {\n const hasChips = !!(props.chips || slots.chip)\n\n return (\n <VTextField\n ref={ vTextFieldRef }\n modelValue={ search.value }\n onInput={ onInput }\n class={[\n 'v-combobox',\n {\n 'v-combobox--active-menu': menu.value,\n 'v-combobox--chips': !!props.chips,\n 'v-combobox--selecting-index': selectionIndex.value > -1,\n [`v-combobox--${props.multiple ? 'multiple' : 'single'}`]: true,\n },\n ]}\n appendInnerIcon={ props.items.length ? props.menuIcon : undefined }\n dirty={ selected.value.length > 0 }\n onClick:clear={ onClear }\n onClick:control={ onClickControl }\n onClick:input={ onClickControl }\n onFocus={ () => isFocused.value = true }\n onBlur={ () => isFocused.value = false }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n { activator.value && (\n <VMenu\n v-model={ menu.value }\n activator={ activator.value }\n contentClass=\"v-combobox__content\"\n eager={ props.eager }\n openOnClick={ false }\n transition={ props.transition }\n onAfterLeave={ onAfterLeave }\n >\n <VList\n selected={ selected.value }\n selectStrategy={ props.multiple ? 'independent' : 'single-independent' }\n >\n { !filteredItems.value.length && !props.hideNoData && (slots['no-data']?.() ?? (\n <VListItem title={ t(props.noDataText) } />\n )) }\n\n { filteredItems.value.map(({ item, matches }) => (\n <VListItem\n value={ item.value }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onClick={ () => select(item) }\n >\n {{\n title: () => {\n return isPristine.value\n ? item.title\n : highlightResult(item.title, matches.title, search.value?.length ?? 0)\n },\n }}\n </VListItem>\n )) }\n </VList>\n </VMenu>\n ) }\n\n { selections.value.map((selection, index) => {\n function onChipClose (e: Event) {\n e.stopPropagation()\n e.preventDefault()\n\n select(selection)\n }\n\n const slotProps = {\n 'onClick:close': onChipClose,\n modelValue: true,\n }\n\n return (\n <div\n class={[\n 'v-combobox__selection',\n selection.selected && [\n 'v-combobox__selection--selected',\n textColorClasses.value,\n ],\n ]}\n style={ selection.selected ? textColorStyles.value : {} }\n >\n { hasChips && (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: selection.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ props: slotProps, selection })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) }\n\n { !hasChips && (\n slots.selection\n ? slots.selection({ selection })\n : (\n <span class=\"v-combobox__selection-text\">\n { selection.title }\n { props.multiple && (index < selections.value.length - 1) && (\n <span class=\"v-combobox__selection-comma\">,</span>\n ) }\n </span>\n )\n ) }\n </div>\n )\n }) }\n </>\n ),\n }}\n </VTextField>\n )\n })\n\n return useForwardRef({\n isFocused,\n isPristine,\n menu,\n search,\n selectionIndex,\n filteredItems,\n select,\n }, vTextFieldRef)\n },\n})\n\nexport type VCombobox = InstanceType<typeof VCombobox>\n","// Styles\nimport './VDialog.sass'\n\n// Components\nimport { VDialogTransition } from '@/components/transitions'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { nextTick, ref, watch } from 'vue'\nimport { genericComponent, IN_BROWSER } from '@/util'\n\n// Types\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\n\nexport const VDialog = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VDialog',\n\n inheritAttrs: false,\n\n props: {\n fullscreen: Boolean,\n origin: {\n type: String,\n default: 'center center',\n },\n retainFocus: {\n type: Boolean,\n default: true,\n },\n scrollable: Boolean,\n modelValue: Boolean,\n\n ...makeDimensionProps({ width: 'auto' }),\n ...makeTransitionProps({\n transition: { component: VDialogTransition },\n }),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { dimensionStyles } = useDimension(props)\n\n const overlay = ref<VOverlay>()\n function onFocusin (e: FocusEvent) {\n const before = e.relatedTarget as HTMLElement | null\n const after = e.target as HTMLElement | null\n\n if (\n before !== after &&\n overlay.value?.contentEl &&\n // We're the topmost dialog\n overlay.value?.isTop &&\n // It isn't the document or the dialog body\n ![document, overlay.value.contentEl].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.contentEl.contains(after)\n ) {\n const focusable = [...overlay.value.contentEl.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n\n if (!focusable.length) return\n\n const firstElement = focusable[0]\n const lastElement = focusable[focusable.length - 1]\n\n if (before === firstElement) {\n lastElement.focus()\n } else {\n firstElement.focus()\n }\n }\n }\n\n if (IN_BROWSER) {\n watch(() => isActive.value && props.retainFocus, val => {\n val\n ? document.addEventListener('focusin', onFocusin)\n : document.removeEventListener('focusin', onFocusin)\n }, { immediate: true })\n }\n\n watch(isActive, async val => {\n await nextTick()\n if (val) {\n overlay.value!.contentEl?.focus({ preventScroll: true })\n } else {\n overlay.value!.activatorEl?.focus({ preventScroll: true })\n }\n })\n\n return () => {\n return (\n <VOverlay\n v-model={ isActive.value }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n 'v-dialog--scrollable': props.scrollable,\n },\n ]}\n style={ dimensionStyles.value }\n transition={ props.transition }\n ref={ overlay }\n aria-role=\"dialog\"\n aria-modal=\"true\"\n activatorProps={{\n 'aria-haspopup': 'dialog',\n 'aria-expanded': String(isActive.value),\n }}\n { ...attrs }\n v-slots={{\n default: slots.default,\n activator: slots.activator,\n }}\n />\n )\n }\n },\n})\n\nexport type VDialog = InstanceType<typeof VDialog>\n","// Styles\nimport './VExpansionPanel.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VExpansionPanelSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-expansion-panel')\n\nconst allowedVariants = ['default', 'accordion', 'inset', 'popout'] as const\n\ntype Variant = typeof allowedVariants[number]\n\nexport const VExpansionPanels = defineComponent({\n name: 'VExpansionPanels',\n\n props: {\n color: String,\n variant: {\n type: String as PropType<Variant>,\n default: 'default',\n validator: (v: any) => allowedVariants.includes(v),\n },\n readonly: Boolean,\n\n ...makeGroupProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: unknown) => true,\n },\n\n setup (props, { slots }) {\n useGroup(props, VExpansionPanelSymbol)\n\n const { themeClasses } = provideTheme(props)\n\n const variantClass = computed(() => props.variant && `v-expansion-panels--variant-${props.variant}`)\n\n provideDefaults({\n VExpansionPanel: {\n color: toRef(props, 'color'),\n },\n VExpansionPanelTitle: {\n readonly: toRef(props, 'readonly'),\n },\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-expansion-panels',\n themeClasses.value,\n variantClass.value,\n ]}\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanels = InstanceType<typeof VExpansionPanels>\n","// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { defineComponent, propsFactory, useRender } from '@/util'\n\nexport const makeVExpansionPanelTitleProps = propsFactory({\n color: String,\n expandIcon: {\n type: String,\n default: '$expand',\n },\n collapseIcon: {\n type: String,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n})\n\nexport const VExpansionPanelTitle = defineComponent({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <div class=\"v-expansion-panel-title__overlay\" />\n\n { slots.default?.(slotProps.value) }\n\n { !props.hideActions && (\n <div class=\"v-expansion-panel-title__icon\">\n {\n slots.actions ? slots.actions(slotProps.value)\n : <VIcon icon={ expansionPanel.isSelected.value ? props.collapseIcon : props.expandIcon } />\n }\n </div>\n ) }\n </button>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelTitle = InstanceType<typeof VExpansionPanelTitle>\n","// Components\nimport { VExpandTransition } from '@/components/transitions'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { makeLazyProps, useLazy } from '@/composables/lazy'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\nimport { inject } from 'vue'\n\nexport const VExpansionPanelText = defineComponent({\n name: 'VExpansionPanelText',\n\n props: {\n ...makeLazyProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-text needs to be placed inside v-expansion-panel')\n\n const { hasContent, onAfterLeave } = useLazy(props, expansionPanel.isSelected)\n\n useRender(() => (\n <VExpandTransition onAfterLeave={ onAfterLeave }>\n <div\n class=\"v-expansion-panel-text\"\n v-show={ expansionPanel.isSelected.value }\n >\n { slots.default && hasContent.value && (\n <div class=\"v-expansion-panel-text__wrapper\">\n { slots.default?.() }\n </div>\n ) }\n </div>\n </VExpandTransition>\n ))\n\n return {}\n },\n})\n\nexport type VExpansionPanelText = InstanceType<typeof VExpansionPanelText>\n","// Components\nimport { makeVExpansionPanelTitleProps, VExpansionPanelTitle } from './VExpansionPanelTitle'\nimport { VExpansionPanelText } from './VExpansionPanelText'\nimport { VExpansionPanelSymbol } from './VExpansionPanels'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeLazyProps } from '@/composables/lazy'\n\n// Utilities\nimport { computed, provide } from 'vue'\nimport { defineComponent, useRender } from '@/util'\n\nexport const VExpansionPanel = defineComponent({\n name: 'VExpansionPanel',\n\n props: {\n title: String,\n text: String,\n bgColor: String,\n\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeLazyProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const groupItem = useGroupItem(props, VExpansionPanelSymbol)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'bgColor')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const isDisabled = computed(() => groupItem?.disabled.value || props.disabled)\n\n const selectedIndices = computed(() => groupItem.group.items.value.reduce<number[]>((arr, item, index) => {\n if (groupItem.group.selected.value.includes(item.id)) arr.push(index)\n return arr\n }, []))\n\n const isBeforeSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === 1)\n })\n\n const isAfterSelected = computed(() => {\n const index = groupItem.group.items.value.findIndex(item => item.id === groupItem.id)\n return !groupItem.isSelected.value &&\n selectedIndices.value.some(selectedIndex => selectedIndex - index === -1)\n })\n\n provide(VExpansionPanelSymbol, groupItem)\n\n useRender(() => {\n const hasText = !!(slots.text || props.text)\n const hasTitle = !!(slots.title || props.title)\n\n return (\n <props.tag\n class={[\n 'v-expansion-panel',\n {\n 'v-expansion-panel--active': groupItem.isSelected.value,\n 'v-expansion-panel--before-active': isBeforeSelected.value,\n 'v-expansion-panel--after-active': isAfterSelected.value,\n 'v-expansion-panel--disabled': isDisabled.value,\n },\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n aria-expanded={ groupItem.isSelected.value }\n >\n <div\n class={[\n 'v-expansion-panel__shadow',\n ...elevationClasses.value,\n ]}\n />\n\n { hasTitle && (\n <VExpansionPanelTitle\n collapseIcon={ props.collapseIcon }\n color={ props.color }\n expandIcon={ props.expandIcon }\n hideActions={ props.hideActions }\n ripple={ props.ripple }\n >\n { slots.title ? slots.title() : props.title }\n </VExpansionPanelTitle>\n ) }\n\n { hasText && (\n <VExpansionPanelText eager={ props.eager }>\n { slots.text ? slots.text() : props.text }\n </VExpansionPanelText>\n ) }\n\n { slots.default?.() }\n </props.tag>\n )\n })\n\n return {}\n },\n})\n\nexport type VExpansionPanel = InstanceType<typeof VExpansionPanel>\n","// Styles\nimport './VFileInput.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { VChip } from '@/components/VChip'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Composables\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useLocale } from '@/composables/locale'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, nextTick, ref } from 'vue'\nimport { defineComponent, filterInputAttrs, humanReadableFileSize, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\n\nexport const VFileInput = defineComponent({\n name: 'VFileInput',\n\n inheritAttrs: false,\n\n props: {\n chips: Boolean,\n counter: Boolean,\n counterSizeString: {\n type: String,\n default: '$vuetify.fileInput.counterSize',\n },\n counterString: {\n type: String,\n default: '$vuetify.fileInput.counter',\n },\n multiple: Boolean,\n hint: String,\n persistentHint: Boolean,\n placeholder: String,\n showSize: {\n type: [Boolean, Number] as PropType<boolean | 1000 | 1024>,\n default: false,\n validator: (v: boolean | number) => {\n return (\n typeof v === 'boolean' ||\n [1000, 1024].includes(v)\n )\n },\n },\n\n ...makeVInputProps(),\n\n prependIcon: {\n type: String,\n default: '$file',\n },\n modelValue: {\n type: Array as PropType<File[]>,\n default: () => ([]),\n validator: (val: any) => {\n return wrapInArray(val).every(v => v != null && typeof v === 'object')\n },\n },\n\n ...makeVFieldProps({ clearable: true }),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'update:modelValue': (files: File[]) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { t } = useLocale()\n const model = useProxiedModel(props, 'modelValue')\n const base = computed(() => typeof props.showSize !== 'boolean' ? props.showSize : undefined)\n const totalBytes = computed(() => (model.value ?? []).reduce((bytes, { size = 0 }) => bytes + size, 0))\n const totalBytesReadable = computed(() => humanReadableFileSize(totalBytes.value, base.value))\n\n const fileNames = computed(() => (model.value ?? []).map(file => {\n const { name = '', size = 0 } = file\n\n return !props.showSize\n ? name\n : `${name} (${humanReadableFileSize(size, base.value)})`\n }))\n\n const counterValue = computed(() => {\n const fileCount = model.value?.length ?? 0\n if (props.showSize) return t(props.counterSizeString, fileCount, totalBytesReadable.value)\n else return t(props.counterString, fileCount)\n })\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const inputRef = ref<HTMLInputElement>()\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (props.persistentHint) ? props.hint : ''\n })\n function onFocus () {\n if (inputRef.value !== document.activeElement) {\n inputRef.value?.focus()\n }\n\n if (!isFocused.value) {\n isFocused.value = true\n }\n }\n function onControlClick (e: MouseEvent) {\n inputRef.value?.click()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = []\n\n if (inputRef?.value) {\n inputRef.value.value = ''\n }\n\n emit('click:clear', e)\n })\n }\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n ref={ vInputRef }\n v-model={ model.value }\n class=\"v-file-input\"\n { ...rootAttrs }\n { ...inputProps }\n onClick:prepend={ onControlClick }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n ref={ vFieldRef }\n prepend-icon={ props.prependIcon }\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n { ...fieldProps }\n active={ isDirty.value || isFocused.value }\n dirty={ isDirty.value }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n <input\n ref={ inputRef }\n type=\"file\"\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n multiple={ props.multiple }\n name={ props.name }\n onClick={ e => {\n e.stopPropagation()\n\n onFocus()\n } }\n onChange={ e => {\n if (!e.target) return\n\n const target = e.target as HTMLInputElement\n model.value = [...target.files ?? []]\n } }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { model.value.length > 0 && (\n <div class={ fieldClass }>\n { slots.selection ? slots.selection({\n fileNames: fileNames.value,\n totalBytes: totalBytes.value,\n totalBytesReadable: totalBytesReadable.value,\n })\n : props.chips ? fileNames.value.map(text => (\n <VChip\n key={ text }\n size=\"small\"\n color={ props.color }\n >{ text }</VChip>\n ))\n : fileNames.value.join(', ') }\n </div>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasCounter ? () => (\n <>\n <span />\n\n <VCounter\n active={ !!model.value.length }\n value={ counterValue.value }\n v-slots={ slots.counter }\n />\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return useForwardRef({}, vInputRef, vFieldRef, inputRef)\n },\n})\n\nexport type VFileInput = InstanceType<typeof VFileInput>\n","// Styles\nimport './VFooter.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VFooter = defineComponent({\n name: 'VFooter',\n\n props: {\n app: Boolean,\n color: String,\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'footer' }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n\n const autoHeight = ref(32)\n const { resizeRef } = useResizeObserver(entries => {\n if (!entries.length) return\n autoHeight.value = entries[0].target.clientHeight\n })\n const height = computed(() => props.height === 'auto' ? autoHeight.value : parseInt(props.height, 10))\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n priority: computed(() => parseInt(props.priority, 10)),\n position: computed(() => 'bottom'),\n layoutSize: height,\n elementSize: computed(() => props.height === 'auto' ? undefined : height.value),\n active: computed(() => props.app),\n absolute: toRef(props, 'absolute'),\n })\n\n return () => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-footer',\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles,\n props.app ? layoutItemStyles.value : undefined,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// Composables\nimport { createForm, makeFormProps } from '@/composables/form'\n\n// Utilities\nimport { ref } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { useForwardRef } from '@/composables/forwardRef'\n\n// Types\nimport type { SubmitEventPromise } from '@/composables/form'\n\nexport const VForm = defineComponent({\n name: 'VForm',\n\n props: {\n ...makeFormProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean | null) => true,\n submit: (e: SubmitEventPromise) => true,\n },\n\n setup (props, { slots, emit }) {\n const form = createForm(props)\n const formRef = ref<HTMLFormElement>()\n\n function onReset (e: Event) {\n e.preventDefault()\n form.reset()\n }\n\n function onSubmit (_e: Event) {\n const e = _e as SubmitEventPromise\n\n const ready = form.validate()\n e.then = ready.then.bind(ready)\n e.catch = ready.catch.bind(ready)\n e.finally = ready.finally.bind(ready)\n\n emit('submit', e)\n\n if (!e.defaultPrevented) {\n ready.then(({ valid }) => {\n if (valid) {\n formRef.value?.submit()\n }\n })\n }\n\n e.preventDefault()\n }\n\n useRender(() => ((\n <form\n ref={ formRef }\n class=\"v-form\"\n novalidate\n onReset={ onReset }\n onSubmit={ onSubmit }\n >\n { slots.default?.(form) }\n </form>\n )))\n\n return useForwardRef(form, formRef)\n },\n})\n\nexport type VForm = InstanceType<typeof VForm>\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VContainer = defineComponent({\n name: 'VContainer',\n\n props: {\n fluid: {\n type: Boolean,\n default: false,\n },\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n return () => (\n <props.tag\n class={[\n 'v-container',\n { 'v-container--fluid': props.fluid },\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst breakpointProps = (() => {\n return breakpoints.reduce((props, val) => {\n props[val] = {\n type: [Boolean, String, Number],\n default: false,\n }\n return props\n }, {} as Record<string, Prop<boolean | string | number, false>>)\n})()\n\nconst offsetProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['offset' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<string, Prop<string | number, null>>)\n})()\n\nconst orderProps = (() => {\n return breakpoints.reduce((props, val) => {\n props['order' + capitalize(val)] = {\n type: [String, Number],\n default: null,\n }\n return props\n }, {} as Record<string, Prop<string | number, null>>)\n})()\n\nconst propMap = {\n col: Object.keys(breakpointProps),\n offset: Object.keys(offsetProps),\n order: Object.keys(orderProps),\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: boolean | string | number) {\n let className: string = type\n if (val == null || val === false) {\n return undefined\n }\n if (prop) {\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n if (type === 'col') {\n className = 'v-' + className\n }\n // Handling the boolean style prop when accepting [Boolean, String, Number]\n // means Vue will not convert <v-col sm></v-col> to sm: true for us.\n // Since the default is false, an empty string indicates the prop's presence.\n if (type === 'col' && (val === '' || val === true)) {\n // .v-col-md\n return className.toLowerCase()\n }\n // .order-md-6\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const VCol = defineComponent({\n name: 'VCol',\n\n props: {\n cols: {\n type: [Boolean, String, Number],\n default: false,\n },\n ...breakpointProps,\n offset: {\n type: [String, Number],\n default: null,\n },\n ...offsetProps,\n order: {\n type: [String, Number],\n default: null,\n },\n ...orderProps,\n alignSelf: {\n type: String,\n default: null,\n validator: (str: any) => ['auto', 'start', 'end', 'center', 'baseline', 'stretch'].includes(str),\n },\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `col`, `offset`, `order` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string | number | boolean = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n const hasColClasses = classList.some(className => className.startsWith('v-col-'))\n\n classList.push({\n // Default to .v-col if no other col-{bp}-* classes generated nor `cols` specified.\n 'v-col': !hasColClasses || !props.cols,\n [`v-col-${props.cols}`]: props.cols,\n [`offset-${props.offset}`]: props.offset,\n [`order-${props.order}`]: props.order,\n [`align-self-${props.alignSelf}`]: props.alignSelf,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: classes.value,\n }, slots.default?.())\n },\n})\n","// Styles\nimport './VGrid.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { capitalize, computed, h } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\n\nconst breakpoints = ['sm', 'md', 'lg', 'xl', 'xxl'] as const // no xs\n\nconst ALIGNMENT = ['start', 'end', 'center'] as const\n\nfunction makeRowProps (prefix: string, def: () => Prop<string, null>) {\n return breakpoints.reduce((props, val) => {\n props[prefix + capitalize(val)] = def()\n return props\n }, {} as Record<string, Prop<string, null>>)\n}\n\nconst alignValidator = (str: any) => [...ALIGNMENT, 'baseline', 'stretch'].includes(str)\nconst alignProps = makeRowProps('align', () => ({\n type: String,\n default: null,\n validator: alignValidator,\n}))\n\nconst justifyValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around'].includes(str)\nconst justifyProps = makeRowProps('justify', () => ({\n type: String,\n default: null,\n validator: justifyValidator,\n}))\n\nconst alignContentValidator = (str: any) => [...ALIGNMENT, 'space-between', 'space-around', 'stretch'].includes(str)\nconst alignContentProps = makeRowProps('alignContent', () => ({\n type: String,\n default: null,\n validator: alignContentValidator,\n}))\n\nconst propMap = {\n align: Object.keys(alignProps),\n justify: Object.keys(justifyProps),\n alignContent: Object.keys(alignContentProps),\n}\n\nconst classMap = {\n align: 'align',\n justify: 'justify',\n alignContent: 'align-content',\n}\n\nfunction breakpointClass (type: keyof typeof propMap, prop: string, val: string) {\n let className = classMap[type]\n if (val == null) {\n return undefined\n }\n if (prop) {\n // alignSm -> Sm\n const breakpoint = prop.replace(type, '')\n className += `-${breakpoint}`\n }\n // .align-items-sm-center\n className += `-${val}`\n return className.toLowerCase()\n}\n\nexport const VRow = defineComponent({\n name: 'VRow',\n\n props: {\n dense: Boolean,\n noGutters: Boolean,\n align: {\n type: String,\n default: null,\n validator: alignValidator,\n },\n ...alignProps,\n justify: {\n type: String,\n default: null,\n validator: justifyValidator,\n },\n ...justifyProps,\n alignContent: {\n type: String,\n default: null,\n validator: alignContentValidator,\n },\n ...alignContentProps,\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const classes = computed(() => {\n const classList: any[] = []\n\n // Loop through `align`, `justify`, `alignContent` breakpoint props\n let type: keyof typeof propMap\n for (type in propMap) {\n propMap[type].forEach(prop => {\n const value: string = (props as any)[prop]\n const className = breakpointClass(type, prop, value)\n if (className) classList!.push(className)\n })\n }\n\n classList.push({\n 'v-row--no-gutters': props.noGutters,\n 'v-row--dense': props.dense,\n [`align-${props.align}`]: props.align,\n [`justify-${props.justify}`]: props.justify,\n [`align-content-${props.alignContent}`]: props.alignContent,\n })\n\n return classList\n })\n\n return () => h(props.tag, {\n class: ['v-row', classes.value],\n }, slots.default?.())\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport const VSpacer = createSimpleFunctional('flex-grow-1', 'div', 'VSpacer')\n","// Composables\nimport { makeDelayProps, useDelay } from '@/composables/delay'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VHover = defineComponent({\n name: 'VHover',\n\n props: {\n disabled: Boolean,\n modelValue: {\n type: Boolean,\n default: undefined,\n },\n\n ...makeDelayProps(),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isHovering = useProxiedModel(props, 'modelValue')\n const { runOpenDelay, runCloseDelay } = useDelay(props, value => !props.disabled && (isHovering.value = value))\n\n return () => slots.default?.({\n isHovering: isHovering.value,\n props: {\n onMouseenter: runOpenDelay,\n onMouseleave: runCloseDelay,\n },\n })\n },\n})\n","// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport const VItemGroup = defineComponent({\n name: 'VItemGroup',\n\n props: {\n ...makeGroupProps({\n selectedClass: 'v-item--selected',\n }),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { isSelected, select, next, prev, selected } = useGroup(props, VItemGroupSymbol)\n\n return () => (\n <props.tag\n class={[\n 'v-item-group',\n themeClasses.value,\n ]}\n >\n { slots.default?.({\n isSelected,\n select,\n next,\n prev,\n selected: selected.value,\n }) }\n </props.tag>\n )\n },\n})\n\nexport type VItemGroup = InstanceType<typeof VItemGroup>\n","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VItemGroupSymbol } from './VItemGroup'\n\n// Utilities\nimport { genericComponent } from '@/util'\n\n// Types\nimport type { MakeSlots } from '@/util'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VItem = genericComponent<new () => {\n $slots: MakeSlots<{\n default: [GroupItemProvide]\n }>\n}>()({\n name: 'VItem',\n\n props: makeGroupItemProps(),\n\n setup (props, { slots }) {\n const { isSelected, select, toggle, selectedClass, value, disabled } = useGroupItem(props, VItemGroupSymbol)\n return () => slots.default?.({\n isSelected: isSelected.value,\n selectedClass: selectedClass.value,\n select,\n toggle,\n value: value.value,\n disabled: disabled.value,\n })\n },\n})\n\nexport type VItem = InstanceType<typeof VItem>\n","import './VKbd.sass'\n\nimport { createSimpleFunctional } from '@/util'\n\nexport const VKbd = createSimpleFunctional('v-kbd')\n","// Styles\nimport './VLayout.sass'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\n// Composables\nimport { createLayout, makeLayoutProps } from '@/composables/layout'\n\nexport const VLayout = defineComponent({\n name: 'VLayout',\n\n props: makeLayoutProps(),\n\n setup (props, { slots }) {\n const { layoutClasses, layoutStyles, getLayoutItem, items, layoutRef } = createLayout(props)\n\n useRender(() => (\n <div ref={ layoutRef } class={ layoutClasses.value } style={ layoutStyles.value }>\n { slots.default?.() }\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n }\n },\n})\n\nexport type VLayout = InstanceType<typeof VLayout>\n","// Styles\nimport './VLayoutItem.sass'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VLayoutItem = defineComponent({\n name: 'VLayoutItem',\n\n props: {\n position: {\n type: String as PropType<'top' | 'right' | 'bottom' | 'left'>,\n required: true,\n },\n size: {\n type: [Number, String],\n default: 300,\n },\n modelValue: Boolean,\n ...makeLayoutItemProps(),\n },\n\n setup (props, { slots }) {\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n priority: computed(() => parseInt(props.priority, 10)),\n position: toRef(props, 'position'),\n elementSize: toRef(props, 'size'),\n layoutSize: toRef(props, 'size'),\n active: toRef(props, 'modelValue'),\n absolute: toRef(props, 'absolute'),\n })\n\n return () => (\n <div\n class={[\n 'v-layout-item',\n ]}\n style={ layoutItemStyles.value }\n >\n { slots.default?.() }\n </div>\n )\n },\n})\n","// Composables\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport intersect from '@/directives/intersect'\n\n// Utilities\nimport type { PropType } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VLazy = defineComponent({\n name: 'VLazy',\n\n directives: { intersect },\n\n props: {\n modelValue: Boolean,\n options: {\n type: Object as PropType<IntersectionObserverInit>,\n // For more information on types, navigate to:\n // https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API\n default: () => ({\n root: undefined,\n rootMargin: undefined,\n threshold: undefined,\n }),\n },\n\n ...makeDimensionProps(),\n ...makeTagProps(),\n ...makeTransitionProps({ transition: 'fade-transition' }),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { dimensionStyles } = useDimension(props)\n const isActive = useProxiedModel(props, 'modelValue')\n\n function onIntersect (isIntersecting: boolean) {\n if (isActive.value) return\n\n isActive.value = isIntersecting\n }\n\n return () => (\n <props.tag\n class=\"v-lazy\"\n v-intersect={[\n onIntersect,\n props.options,\n isActive.value ? [] : ['once'],\n ]}\n style={ dimensionStyles.value }\n >\n { isActive.value && (\n <MaybeTransition transition={ props.transition }>\n { slots.default?.() }\n </MaybeTransition>\n )}\n </props.tag>\n )\n },\n})\n","import './VLocaleProvider.sass'\n\n// Composables\nimport { provideLocale } from '@/composables/locale'\nimport { provideRtl } from '@/composables/rtl'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VLocaleProvider = defineComponent({\n name: 'VLocaleProvider',\n\n props: {\n locale: String,\n fallbackLocale: String,\n messages: Object,\n rtl: {\n type: Boolean,\n default: undefined,\n },\n },\n\n setup (props, { slots }) {\n const localeInstance = provideLocale(props)\n const { rtlClasses } = provideRtl(props, localeInstance)\n\n return () => (\n <div\n class={[\n 'v-locale-provider',\n rtlClasses.value,\n ]}\n >\n { slots.default?.() }\n </div>\n )\n },\n})\n","// Styles\nimport './VMain.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useLayout } from '@/composables/layout'\nimport { useSsrBoot } from '@/composables/ssrBoot'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VMain = defineComponent({\n name: 'VMain',\n\n props: makeTagProps({ tag: 'main' }),\n\n setup (props, { slots }) {\n const { mainStyles } = useLayout()\n const { ssrBootStyles } = useSsrBoot()\n\n return () => (\n <props.tag\n class=\"v-main\"\n style={[\n mainStyles.value,\n ssrBootStyles.value,\n ]}\n >\n <div class=\"v-main__wrap\">\n { slots.default?.() }\n </div>\n </props.tag>\n )\n },\n})\n","// Utilities\nimport { computed, onMounted, ref } from 'vue'\n\n// Composables\nexport function useSsrBoot () {\n const isBooted = ref(false)\n\n onMounted(() => {\n window.requestAnimationFrame(() => {\n isBooted.value = true\n })\n })\n\n const ssrBootStyles = computed(() => !isBooted.value ? ({\n transition: 'none !important',\n }) : undefined)\n\n return { ssrBootStyles }\n}\n","import { CircularBuffer } from '@/util'\n\nconst HORIZON = 100 // ms\nconst HISTORY = 20 // number of samples to keep\n\nexport interface Sample {\n t: number\n d: number\n}\n\n/** @see https://android.googlesource.com/platform/frameworks/native/+/master/libs/input/VelocityTracker.cpp */\nfunction kineticEnergyToVelocity (work: number) {\n const sqrt2 = 1.41421356237\n return (work < 0 ? -1.0 : 1.0) * Math.sqrt(Math.abs(work)) * sqrt2\n}\n\n/**\n * Returns pointer velocity in px/s\n */\nexport function calculateImpulseVelocity (samples: Sample[]) {\n // The input should be in reversed time order (most recent sample at index i=0)\n if (samples.length < 2) {\n // if 0 or 1 points, velocity is zero\n return 0\n }\n // if (samples[1].t > samples[0].t) {\n // // Algorithm will still work, but not perfectly\n // consoleWarn('Samples provided to calculateImpulseVelocity in the wrong order')\n // }\n if (samples.length === 2) {\n // if 2 points, basic linear calculation\n if (samples[1].t === samples[0].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[0].t}, setting velocity = 0`)\n return 0\n }\n return (samples[1].d - samples[0].d) / (samples[1].t - samples[0].t)\n }\n // Guaranteed to have at least 3 points here\n // start with the oldest sample and go forward in time\n let work = 0\n for (let i = samples.length - 1; i > 0; i--) {\n if (samples[i].t === samples[i - 1].t) {\n // consoleWarn(`Events have identical time stamps t=${samples[i].t}, skipping sample`)\n continue\n }\n const vprev = kineticEnergyToVelocity(work) // v[i-1]\n const vcurr = (samples[i].d - samples[i - 1].d) / (samples[i].t - samples[i - 1].t) // v[i]\n work += (vcurr - vprev) * Math.abs(vcurr)\n if (i === samples.length - 1) {\n work *= 0.5\n }\n }\n return kineticEnergyToVelocity(work) * 1000\n}\n\nexport function useVelocity () {\n const touches: Record<number, CircularBuffer<[number, Touch]> | undefined> = {}\n\n function addMovement (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n const samples = touches[touch.identifier] ?? (touches[touch.identifier] = new CircularBuffer(HISTORY))\n samples.push([e.timeStamp, touch])\n })\n }\n\n function endTouch (e: TouchEvent) {\n Array.from(e.changedTouches).forEach(touch => {\n delete touches[touch.identifier]\n })\n }\n\n function getVelocity (id: number) {\n const samples = touches[id]?.values().reverse()\n\n if (!samples) {\n throw new Error(`No samples for touch id ${id}`)\n }\n\n const newest = samples[0]\n const x: Sample[] = []\n const y: Sample[] = []\n for (const val of samples) {\n if (newest[0] - val[0] > HORIZON) break\n\n x.push({ t: val[0], d: val[1].clientX })\n y.push({ t: val[0], d: val[1].clientY })\n }\n\n return {\n x: calculateImpulseVelocity(x),\n y: calculateImpulseVelocity(y),\n get direction () {\n const { x, y } = this\n const [absX, absY] = [Math.abs(x), Math.abs(y)]\n\n return absX > absY && x >= 0 ? 'right'\n : absX > absY && x <= 0 ? 'left'\n : absY > absX && y >= 0 ? 'down'\n : absY > absX && y <= 0 ? 'up'\n : oops()\n },\n }\n }\n\n return { addMovement, endTouch, getVelocity }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","import { useVelocity } from '@/composables/touch'\nimport { computed, onBeforeUnmount, onMounted, ref } from 'vue'\nimport type { Ref } from 'vue'\n\nexport function useTouch ({ isActive, isTemporary, width, touchless, position }: {\n isActive: Ref<boolean>\n isTemporary: Ref<boolean>\n width: Ref<number>\n touchless: Ref<boolean>\n position: Ref<'left' | 'right' | 'bottom'>\n}) {\n onMounted(() => {\n window.addEventListener('touchstart', onTouchstart, { passive: true })\n window.addEventListener('touchmove', onTouchmove, { passive: false })\n window.addEventListener('touchend', onTouchend, { passive: true })\n })\n\n onBeforeUnmount(() => {\n window.removeEventListener('touchstart', onTouchstart)\n window.removeEventListener('touchmove', onTouchmove)\n window.removeEventListener('touchend', onTouchend)\n })\n\n const isHorizontal = computed(() => position.value !== 'bottom')\n\n const { addMovement, endTouch, getVelocity } = useVelocity()\n let maybeDragging = false\n const isDragging = ref(false)\n const dragProgress = ref(0)\n const offset = ref(0)\n let start: [number, number] | undefined\n\n function getOffset (pos: number, active: boolean): number {\n return (\n position.value === 'left' ? pos\n : position.value === 'right' ? document.documentElement.clientWidth - pos\n : position.value === 'bottom' ? document.documentElement.clientHeight - pos\n : oops()\n ) - (active ? width.value : 0)\n }\n\n function getProgress (pos: number, limit = true): number {\n const progress = (\n position.value === 'left' ? (pos - offset.value) / width.value\n : position.value === 'right' ? (document.documentElement.clientWidth - pos - offset.value) / width.value\n : position.value === 'bottom' ? (document.documentElement.clientHeight - pos - offset.value) / width.value\n : oops()\n )\n return limit ? Math.max(0, Math.min(1, progress)) : progress\n }\n\n function onTouchstart (e: TouchEvent) {\n if (touchless.value) return\n\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n const touchZone = 25\n const inTouchZone: boolean =\n position.value === 'left' ? touchX < touchZone\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - touchZone\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - touchZone\n : oops()\n\n const inElement: boolean = isActive.value && (\n position.value === 'left' ? touchX < width.value\n : position.value === 'right' ? touchX > document.documentElement.clientWidth - width.value\n : position.value === 'bottom' ? touchY > document.documentElement.clientHeight - width.value\n : oops()\n )\n\n if (\n inTouchZone ||\n inElement ||\n (isActive.value && isTemporary.value)\n ) {\n maybeDragging = true\n start = [touchX, touchY]\n\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, isActive.value)\n dragProgress.value = getProgress(isHorizontal.value ? touchX : touchY)\n\n endTouch(e)\n addMovement(e)\n }\n }\n\n function onTouchmove (e: TouchEvent) {\n const touchX = e.changedTouches[0].clientX\n const touchY = e.changedTouches[0].clientY\n\n if (maybeDragging) {\n if (!e.cancelable) {\n maybeDragging = false\n return\n }\n\n const dx = Math.abs(touchX - start![0])\n const dy = Math.abs(touchY - start![1])\n\n const thresholdMet = isHorizontal.value\n ? dx > dy && dx > 3\n : dy > dx && dy > 3\n\n if (thresholdMet) {\n isDragging.value = true\n maybeDragging = false\n } else if ((isHorizontal.value ? dy : dx) > 3) {\n maybeDragging = false\n }\n }\n\n if (!isDragging.value) return\n\n e.preventDefault()\n addMovement(e)\n\n const progress = getProgress(isHorizontal.value ? touchX : touchY, false)\n dragProgress.value = Math.max(0, Math.min(1, progress))\n\n if (progress > 1) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, true)\n } else if (progress < 0) {\n offset.value = getOffset(isHorizontal.value ? touchX : touchY, false)\n }\n }\n\n function onTouchend (e: TouchEvent) {\n maybeDragging = false\n\n if (!isDragging.value) return\n\n addMovement(e)\n\n isDragging.value = false\n\n const velocity = getVelocity(e.changedTouches[0].identifier)\n const vx = Math.abs(velocity.x)\n const vy = Math.abs(velocity.y)\n const thresholdMet = isHorizontal.value\n ? vx > vy && vx > 400\n : vy > vx && vy > 3\n\n if (thresholdMet) {\n isActive.value = velocity.direction === ({\n left: 'right',\n right: 'left',\n bottom: 'up',\n }[position.value] || oops())\n } else {\n isActive.value = dragProgress.value > 0.5\n }\n }\n\n const dragStyles = computed(() => {\n return isDragging.value ? {\n transform:\n position.value === 'left' ? `translateX(calc(-100% + ${dragProgress.value * width.value}px))`\n : position.value === 'right' ? `translateX(calc(100% - ${dragProgress.value * width.value}px))`\n : position.value === 'bottom' ? `translateY(calc(100% - ${dragProgress.value * width.value}px))`\n : oops(),\n transition: 'none',\n } : undefined\n })\n\n return {\n isDragging,\n dragProgress,\n dragStyles,\n }\n}\n\nfunction oops (): never {\n throw new Error()\n}\n","// Styles\nimport './VNavigationDrawer.sass'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useRouter } from '@/composables/router'\nimport { useTouch } from './touch'\n\n// Utilities\nimport { computed, onBeforeMount, ref, toRef, Transition, watch } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VNavigationDrawer = defineComponent({\n name: 'VNavigationDrawer',\n\n props: {\n color: String,\n disableResizeWatcher: Boolean,\n disableRouteWatcher: Boolean,\n expandOnHover: Boolean,\n floating: Boolean,\n modelValue: {\n type: Boolean as PropType<boolean | null>,\n default: null,\n },\n permanent: Boolean,\n rail: Boolean,\n railWidth: {\n type: [Number, String],\n default: 72,\n },\n image: String,\n temporary: Boolean,\n touchless: Boolean,\n width: {\n type: [Number, String],\n default: 256,\n },\n position: {\n type: String as PropType<'left' | 'right' | 'bottom'>,\n default: 'left',\n validator: (value: any) => ['left', 'right', 'bottom'].includes(value),\n },\n\n ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props)\n const router = useRouter()\n const isActive = useProxiedModel(props, 'modelValue', null, v => !!v)\n const isHovering = ref(false)\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? Number(props.width)\n : Number(props.rail ? props.railWidth : props.width)\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n\n if (!props.disableResizeWatcher) {\n watch(isTemporary, val => !props.permanent && (isActive.value = !val))\n }\n\n if (!props.disableRouteWatcher && router) {\n watch(router.currentRoute, () => isTemporary.value && (isActive.value = false))\n }\n\n watch(() => props.permanent, val => {\n if (val) isActive.value = true\n })\n\n onBeforeMount(() => {\n if (props.modelValue != null || isTemporary.value) return\n\n isActive.value = props.permanent || !mobile.value\n })\n\n const rootEl = ref<HTMLElement>()\n\n const { isDragging, dragProgress, dragStyles } = useTouch({\n isActive,\n isTemporary,\n width,\n touchless: toRef(props, 'touchless'),\n position: toRef(props, 'position'),\n })\n\n const layoutSize = computed(() => {\n const size = isTemporary.value ? 0\n : props.rail && props.expandOnHover ? Number(props.railWidth)\n : width.value\n\n return isDragging.value ? size * dragProgress.value : size\n })\n const { layoutItemStyles, layoutRect, layoutItemScrimStyles } = useLayoutItem({\n id: props.name,\n priority: computed(() => parseInt(props.priority, 10)),\n position: toRef(props, 'position'),\n layoutSize,\n elementSize: width,\n active: computed(() => isActive.value || isDragging.value),\n disableTransitions: computed(() => isDragging.value),\n absolute: toRef(props, 'absolute'),\n })\n\n const scrimStyles = computed(() => ({\n ...isDragging.value ? {\n opacity: dragProgress.value * 0.2,\n transition: 'none',\n } : undefined,\n ...layoutRect.value ? {\n left: convertToUnit(layoutRect.value.left),\n right: convertToUnit(layoutRect.value.right),\n top: convertToUnit(layoutRect.value.top),\n bottom: convertToUnit(layoutRect.value.bottom),\n } : undefined,\n ...layoutItemScrimStyles.value,\n }))\n\n return () => {\n const hasImage = (slots.image || props.image)\n\n return (\n <>\n <props.tag\n ref={ rootEl }\n onMouseenter={ () => (isHovering.value = true) }\n onMouseleave={ () => (isHovering.value = false) }\n class={[\n 'v-navigation-drawer',\n {\n 'v-navigation-drawer--bottom': props.position === 'bottom',\n 'v-navigation-drawer--end': props.position === 'right',\n 'v-navigation-drawer--expand-on-hover': props.expandOnHover,\n 'v-navigation-drawer--floating': props.floating,\n 'v-navigation-drawer--is-hovering': isHovering.value,\n 'v-navigation-drawer--rail': props.rail,\n 'v-navigation-drawer--start': props.position === 'left',\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--active': isActive.value,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n dragStyles.value,\n ]}\n { ...attrs }\n >\n { hasImage && (\n <div class=\"v-navigation-drawer__img\">\n { slots.image\n ? slots.image?.({ image: props.image })\n : (<img src={ props.image } alt=\"\" />)\n }\n </div>\n )}\n\n { slots.prepend && (\n <div class=\"v-navigation-drawer__prepend\">\n { slots.prepend?.() }\n </div>\n )}\n\n <div class=\"v-navigation-drawer__content\">\n { slots.default?.() }\n </div>\n\n { slots.append && (\n <div class=\"v-navigation-drawer__append\">\n { slots.append?.() }\n </div>\n )}\n </props.tag>\n\n <Transition name=\"fade-transition\">\n { isTemporary.value && (isDragging.value || isActive.value) && (\n <div\n class=\"v-navigation-drawer__scrim\"\n style={ scrimStyles.value }\n onClick={ () => isActive.value = false }\n />\n )}\n </Transition>\n </>\n )\n }\n },\n})\n\nexport type VNavigationDrawer = InstanceType<typeof VNavigationDrawer>\n","// Composables\nimport { useHydration } from '@/composables/hydration'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { ref } from 'vue'\n\nexport const VNoSsr = defineComponent({\n name: 'VNoSsr',\n\n setup (_, { slots }) {\n const show = ref(false)\n\n useHydration(() => (show.value = true))\n\n return () => show.value && slots.default?.()\n },\n\n})\n","// Utilities\nimport { getCurrentInstance, IN_BROWSER } from '@/util'\nimport { onMounted } from 'vue'\n\nexport function useHydration (callback: () => void) {\n if (!IN_BROWSER) return\n\n const vm = getCurrentInstance('useHydration')\n const rootEl = vm?.root?.appContext?.app?._container\n\n return rootEl?.__vue_app__ ? callback() : onMounted(callback)\n}\n","import './VPagination.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useLocale } from '@/composables/locale'\nimport { useRtl } from '@/composables/rtl'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeVariantProps } from '@/composables/variant'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { makeBorderProps } from '@/composables/border'\nimport { useRefs } from '@/composables/refs'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { provideDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { computed, nextTick, ref, toRef } from 'vue'\nimport { createRange, defineComponent, keyValues } from '@/util'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\nimport { makeRoundedProps } from '@/composables/rounded'\n\nexport const VPagination = defineComponent({\n name: 'VPagination',\n\n props: {\n start: {\n type: [Number, String],\n default: 1,\n },\n modelValue: {\n type: Number,\n default: (props: any) => props.start,\n },\n disabled: Boolean,\n length: {\n type: [Number, String],\n default: 1,\n validator: (val: number) => val % 1 === 0,\n },\n totalVisible: [Number, String],\n firstIcon: {\n type: String,\n default: '$first',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n lastIcon: {\n type: String,\n default: '$last',\n },\n ariaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.root',\n },\n pageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.page',\n },\n currentPageAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.currentPage',\n },\n firstAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.first',\n },\n previousAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.previous',\n },\n nextAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.next',\n },\n lastAriaLabel: {\n type: String,\n default: '$vuetify.pagination.ariaLabel.last',\n },\n ellipsis: {\n type: String,\n default: '...',\n },\n showFirstLastPage: Boolean,\n\n ...makeRoundedProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'text' } as const),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n first: (value: number) => true,\n prev: (value: number) => true,\n next: (value: number) => true,\n last: (value: number) => true,\n },\n\n setup (props, { slots, emit }) {\n const page = useProxiedModel(props, 'modelValue')\n const { t, n } = useLocale()\n const { isRtl } = useRtl()\n const { themeClasses } = provideTheme(props)\n const maxButtons = ref(-1)\n\n provideDefaults(undefined, { scoped: true })\n\n const { resizeRef } = useResizeObserver((entries: ResizeObserverEntry[]) => {\n if (!entries.length) return\n\n const { target, contentRect } = entries[0]\n\n const firstItem = target.querySelector('.v-pagination__list > *')\n\n if (!firstItem) return\n\n const totalWidth = contentRect.width\n const itemWidth = firstItem.getBoundingClientRect().width + 10\n\n maxButtons.value = Math.max(0, Math.floor((totalWidth - 96) / itemWidth))\n })\n\n const length = computed(() => parseInt(props.length, 10))\n const start = computed(() => parseInt(props.start, 10))\n\n const totalVisible = computed(() => {\n if (props.totalVisible) return Math.min(parseInt(props.totalVisible ?? '', 10), length.value)\n else if (maxButtons.value >= 0) return maxButtons.value\n return length.value\n })\n\n const range = computed(() => {\n if (length.value <= 0) return []\n\n if (totalVisible.value <= 2) return [page.value]\n\n if (length.value <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const even = totalVisible.value % 2 === 0\n const middle = even ? totalVisible.value / 2 : Math.floor(totalVisible.value / 2)\n const left = even ? middle : middle + 1\n const right = length.value - middle\n\n if (left - page.value >= 0) {\n return [...createRange(Math.max(1, totalVisible.value - 1), start.value), props.ellipsis, length.value]\n } else if (page.value - right >= 0) {\n const rangeLength = totalVisible.value - 1\n const rangeStart = length.value - rangeLength + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart)]\n } else {\n const rangeLength = Math.max(1, totalVisible.value - 3)\n const rangeStart = rangeLength === 1 ? page.value : page.value - Math.ceil(rangeLength / 2) + start.value\n return [start.value, props.ellipsis, ...createRange(rangeLength, rangeStart), props.ellipsis, length.value]\n }\n })\n\n // TODO: 'first' | 'prev' | 'next' | 'last' does not work here?\n function setValue (e: Event, value: number, event?: any) {\n e.preventDefault()\n page.value = value\n event && emit(event, value)\n }\n\n const { refs, updateRef } = useRefs<ComponentPublicInstance>()\n\n provideDefaults({\n VBtn: {\n border: toRef(props, 'border'),\n density: toRef(props, 'density'),\n size: toRef(props, 'size'),\n variant: toRef(props, 'variant'),\n },\n })\n\n const items = computed(() => {\n return range.value.map((item, index) => {\n const ref = (e: any) => updateRef(e, index)\n\n if (typeof item === 'string') {\n return {\n isActive: false,\n page: item,\n props: {\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n rounded: props.rounded,\n color: isActive ? props.color : undefined,\n ariaCurrent: isActive,\n ariaLabel: t(isActive ? props.currentPageAriaLabel : props.pageAriaLabel, index + 1),\n onClick: (e: Event) => setValue(e, item),\n },\n }\n }\n })\n })\n\n const controls = computed(() => {\n const prevDisabled = !!props.disabled || page.value <= start.value\n const nextDisabled = !!props.disabled || page.value >= start.value + length.value - 1\n\n return {\n first: props.showFirstLastPage ? {\n icon: isRtl.value ? props.lastIcon : props.firstIcon,\n onClick: (e: Event) => setValue(e, start.value, 'first'),\n disabled: prevDisabled,\n ariaLabel: t(props.firstAriaLabel),\n ariaDisabled: prevDisabled,\n } : undefined,\n prev: {\n icon: isRtl.value ? props.nextIcon : props.prevIcon,\n onClick: (e: Event) => setValue(e, page.value - 1, 'prev'),\n disabled: prevDisabled,\n ariaLabel: t(props.previousAriaLabel),\n ariaDisabled: prevDisabled,\n },\n next: {\n icon: isRtl.value ? props.prevIcon : props.nextIcon,\n onClick: (e: Event) => setValue(e, page.value + 1, 'next'),\n disabled: nextDisabled,\n ariaLabel: t(props.nextAriaLabel),\n ariaDisabled: nextDisabled,\n },\n last: props.showFirstLastPage ? {\n icon: isRtl.value ? props.firstIcon : props.lastIcon,\n onClick: (e: Event) => setValue(e, start.value + length.value - 1, 'last'),\n disabled: nextDisabled,\n ariaLabel: t(props.lastAriaLabel),\n ariaDisabled: nextDisabled,\n } : undefined,\n }\n })\n\n function updateFocus () {\n const currentIndex = page.value - start.value\n refs.value[currentIndex]?.$el.focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === keyValues.left && !props.disabled && page.value > props.start) {\n page.value = page.value - 1\n nextTick(updateFocus)\n } else if (e.key === keyValues.right && !props.disabled && page.value < start.value + length.value - 1) {\n page.value = page.value + 1\n nextTick(updateFocus)\n }\n }\n\n return () => (\n <props.tag\n ref={ resizeRef }\n class={[\n 'v-pagination',\n themeClasses.value,\n ]}\n role=\"navigation\"\n aria-label={ t(props.ariaLabel) }\n onKeydown={ onKeydown }\n data-test=\"v-pagination-root\"\n >\n <ul class=\"v-pagination__list\">\n { props.showFirstLastPage && (\n <li class=\"v-pagination__first\" data-test=\"v-pagination-first\">\n { slots.first ? slots.first(controls.value.first) : (\n <VBtn {...controls.value.first} />\n ) }\n </li>\n ) }\n\n <li class=\"v-pagination__prev\" data-test=\"v-pagination-prev\">\n { slots.prev ? slots.prev(controls.value.prev) : (\n <VBtn {...controls.value.prev} />\n ) }\n </li>\n\n { items.value.map((item, index) => (\n <li\n key={ `${index}_${item.page}` }\n class={[\n 'v-pagination__item',\n {\n 'v-pagination__item--is-active': item.isActive,\n },\n ]}\n data-test=\"v-pagination-item\"\n >\n { slots.item ? slots.item(item) : (\n <VBtn {...item.props}>{ item.page }</VBtn>\n ) }\n </li>\n )) }\n\n <li class=\"v-pagination__next\" data-test=\"v-pagination-next\">\n { slots.next ? slots.next(controls.value.next) : (\n <VBtn {...controls.value.next} />\n ) }\n </li>\n\n { props.showFirstLastPage && (\n <li class=\"v-pagination__last\" data-test=\"v-pagination-last\">\n { slots.last ? slots.last(controls.value.last) : (\n <VBtn {...controls.value.last} />\n ) }\n </li>\n ) }\n </ul>\n </props.tag>\n )\n },\n})\n\nexport type VPagination = InstanceType<typeof VPagination>\n","// Imports\nimport { onBeforeUpdate, ref } from 'vue'\nimport type { Ref } from 'vue'\n\nexport function useRefs <T extends {}> () {\n const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]>\n\n onBeforeUpdate(() => (refs.value = []))\n\n function updateRef (e: any, i: number) {\n refs.value[i] = e\n }\n\n return { refs, updateRef }\n}\n","// Styles\nimport './VParallax.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\n\n// Utilities\nimport { onBeforeUnmount, ref, watch, watchEffect } from 'vue'\nimport { defineComponent, getScrollParent } from '@/util'\n\nfunction floor (val: number) {\n return Math.floor(Math.abs(val)) * Math.sign(val)\n}\n\nexport const VParallax = defineComponent({\n name: 'VParallax',\n\n props: {\n scale: {\n type: [Number, String],\n default: 1.3,\n },\n },\n\n setup (props, { attrs, slots }) {\n const root = ref<VImg>()\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n\n watchEffect(() => {\n intersectionRef.value = root.value?.$el\n })\n\n let scrollParent: Element\n watch(isIntersecting, val => {\n if (val) {\n scrollParent = getScrollParent(intersectionRef.value)\n scrollParent = scrollParent === document.scrollingElement ? document as any : scrollParent\n scrollParent.addEventListener('scroll', onScroll, { passive: true })\n onScroll()\n } else {\n scrollParent.removeEventListener('scroll', onScroll)\n }\n })\n\n onBeforeUnmount(() => {\n scrollParent?.removeEventListener('scroll', onScroll)\n })\n\n let frame = -1\n function onScroll () {\n if (!isIntersecting.value) return\n\n cancelAnimationFrame(frame)\n frame = requestAnimationFrame(() => {\n const el: HTMLElement | null = (root.value?.$el as Element).querySelector('.v-img__img')\n if (!el) return\n\n const rect = intersectionRef.value!.getBoundingClientRect()\n const scrollHeight = scrollParent.clientHeight ?? window.innerHeight\n const scrollPos = scrollParent.scrollTop ?? window.scrollY\n const top = rect.top + scrollPos\n const progress = (scrollPos + scrollHeight - top) / (rect.height + scrollHeight)\n const translate = floor((rect.height * +props.scale - rect.height) * (-progress + 0.5))\n\n el.style.setProperty('transform', `translateY(${translate}px) scale(${props.scale})`)\n })\n }\n\n return () => (\n <VImg\n class={[\n 'v-parallax',\n { 'v-parallax--active': isIntersecting.value },\n ]}\n ref={ root }\n cover\n onLoadstart={ onScroll }\n onLoad={ onScroll }\n v-slots={ slots }\n />\n )\n },\n})\n\nexport type VParallax = InstanceType<typeof VParallax>\n","// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useTextColor } from '@/composables/color'\nimport { useResizeObserver } from '@/composables/resizeObserver'\n\n// Utilities\nimport { computed, ref, toRef, watchEffect } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VProgressCircular = defineComponent({\n name: 'VProgressCircular',\n\n props: {\n bgColor: String,\n color: String,\n indeterminate: [Boolean, String] as PropType<boolean | 'disable-shrink'>,\n modelValue: {\n type: [Number, String],\n default: 0,\n },\n rotate: {\n type: [Number, String],\n default: 0,\n },\n width: {\n type: [Number, String],\n default: 4,\n },\n\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'div' }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const MAGIC_RADIUS_CONSTANT = 20\n const CIRCUMFERENCE = 2 * Math.PI * MAGIC_RADIUS_CONSTANT\n\n const root = ref<HTMLElement>()\n\n const { themeClasses } = provideTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props)\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\n const { resizeRef, contentRect } = useResizeObserver()\n\n const normalizedValue = computed(() => Math.max(0, Math.min(100, parseFloat(props.modelValue))))\n const width = computed(() => Number(props.width))\n const size = computed(() => {\n // Get size from element if size prop value is small, large etc\n return sizeStyles.value\n ? Number(props.size)\n : contentRect.value\n ? contentRect.value.width\n : Math.max(width.value, 32)\n })\n const diameter = computed(() => (MAGIC_RADIUS_CONSTANT / (1 - width.value / size.value)) * 2)\n const strokeWidth = computed(() => width.value / size.value * diameter.value)\n const strokeDashOffset = computed(() => convertToUnit(((100 - normalizedValue.value) / 100) * CIRCUMFERENCE))\n\n watchEffect(() => {\n intersectionRef.value = root.value\n resizeRef.value = root.value\n })\n\n return () => (\n <props.tag\n ref={ root }\n class={[\n 'v-progress-circular',\n {\n 'v-progress-circular--indeterminate': !!props.indeterminate,\n 'v-progress-circular--visible': isIntersecting.value,\n 'v-progress-circular--disable-shrink': props.indeterminate === 'disable-shrink',\n },\n themeClasses.value,\n sizeClasses.value,\n textColorClasses.value,\n ]}\n style={[\n sizeStyles.value,\n textColorStyles.value,\n ]}\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n aria-valuenow={ props.indeterminate ? undefined : normalizedValue.value }\n >\n <svg\n style={{\n transform: `rotate(calc(-90deg + ${Number(props.rotate)}deg))`,\n }}\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox={ `0 0 ${diameter.value} ${diameter.value}` }\n >\n <circle\n class={[\n 'v-progress-circular__underlay',\n underlayColorClasses.value,\n ]}\n style={ underlayColorStyles.value }\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ 0 }\n />\n\n <circle\n class=\"v-progress-circular__overlay\"\n fill=\"transparent\"\n cx=\"50%\"\n cy=\"50%\"\n r={ MAGIC_RADIUS_CONSTANT }\n stroke-width={ strokeWidth.value }\n stroke-dasharray={ CIRCUMFERENCE }\n stroke-dashoffset={ strokeDashOffset.value }\n />\n </svg>\n { slots.default && (\n <div class=\"v-progress-circular__content\">\n { slots.default({ value: normalizedValue.value }) }\n </div>\n ) }\n </props.tag>\n )\n },\n})\n","// Components\nimport { VSelectionControl } from '@/components/VSelectionControl'\n\n// Utility\nimport { defineComponent, useRender } from '@/util'\n\nexport const VRadio = defineComponent({\n name: 'VRadio',\n\n props: {\n falseIcon: {\n type: String,\n default: '$radioOff',\n },\n trueIcon: {\n type: String,\n default: '$radioOn',\n },\n },\n\n setup (props, { slots }) {\n useRender(() => (\n <VSelectionControl\n class=\"v-radio\"\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type=\"radio\"\n v-slots={ slots }\n />\n ))\n\n return {}\n },\n})\n\nexport type VRadio = InstanceType<typeof VRadio>\n","// Styles\nimport './VRadioGroup.sass'\n\n// Components\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VLabel } from '@/components/VLabel'\nimport { VSelectionControlGroup } from '@/components/VSelectionControlGroup'\nimport { filterControlProps, makeSelectionControlProps } from '@/components/VSelectionControl/VSelectionControl'\n\n// Utility\nimport { computed } from 'vue'\nimport { defineComponent, filterInputAttrs, getUid, useRender } from '@/util'\n\nexport const VRadioGroup = defineComponent({\n name: 'VRadioGroup',\n\n inheritAttrs: false,\n\n props: {\n height: {\n type: [Number, String],\n default: 'auto',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n trueIcon: {\n type: String,\n default: '$radioOn',\n },\n falseIcon: {\n type: String,\n default: '$radioOff',\n },\n type: {\n type: String,\n default: 'radio',\n },\n },\n\n setup (props, { attrs, slots }) {\n const uid = getUid()\n const id = computed(() => props.id || `radio-group-${uid}`)\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <VInput\n class=\"v-radio-group\"\n { ...inputAttrs }\n { ...inputProps }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isReadonly,\n }) => (\n <>\n { label && (\n <VLabel for={ id.value }>\n { label }\n </VLabel>\n ) }\n\n <VSelectionControlGroup\n { ...controlProps }\n id={ id.value }\n trueIcon={ props.trueIcon }\n falseIcon={ props.falseIcon }\n type={ props.type }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n v-slots={ slots }\n />\n </>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n","// Styles\nimport '../VSlider/VSlider.sass'\n\n// Components\nimport { VInput } from '../VInput'\nimport { VSliderThumb } from '../VSlider/VSliderThumb'\nimport { VSliderTrack } from '../VSlider/VSliderTrack'\n\n// Composables\nimport { getOffset, makeSliderProps, useSlider } from '../VSlider/slider'\nimport { makeFocusProps, useFocus } from '@/composables/focus'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType, WritableComputedRef } from 'vue'\nimport { filterInputProps, makeVInputProps } from '../VInput/VInput'\n\nexport const VRangeSlider = defineComponent({\n name: 'VRangeSlider',\n\n props: {\n ...makeFocusProps(),\n ...makeVInputProps(),\n ...makeSliderProps(),\n\n strict: Boolean,\n modelValue: {\n type: Array as PropType<number[]>,\n default: () => ([0, 0]),\n },\n },\n\n emits: {\n 'update:focused': (value: boolean) => true,\n 'update:modelValue': (value: [number, number]) => true,\n },\n\n setup (props, { slots, attrs }) {\n const startThumbRef = ref<VSliderThumb>()\n const stopThumbRef = ref<VSliderThumb>()\n const inputRef = ref<VInput>()\n\n function getActiveThumb (e: MouseEvent | TouchEvent) {\n if (!startThumbRef.value || !stopThumbRef.value) return\n\n const startOffset = getOffset(e, startThumbRef.value.$el, props.direction)\n const stopOffset = getOffset(e, stopThumbRef.value.$el, props.direction)\n\n const a = Math.abs(startOffset)\n const b = Math.abs(stopOffset)\n\n return (a < b || (a === b && startOffset < 0)) ? startThumbRef.value.$el : stopThumbRef.value.$el\n }\n\n const {\n min,\n max,\n mousePressed,\n roundValue,\n onSliderMousedown,\n onSliderTouchstart,\n trackContainerRef,\n position,\n hasLabels,\n activeThumbRef,\n } = useSlider({\n /* eslint-disable @typescript-eslint/no-use-before-define */\n props,\n handleSliderMouseUp: newValue => {\n model.value = activeThumbRef.value === startThumbRef.value?.$el ? [newValue, model.value[1]] : [model.value[0], newValue]\n },\n handleMouseMove: newValue => {\n const [start, stop] = model.value\n\n if (!props.strict && start === stop && start !== min.value) {\n activeThumbRef.value = newValue > start ? stopThumbRef.value?.$el : startThumbRef.value?.$el\n activeThumbRef.value?.focus()\n }\n\n if (activeThumbRef.value === startThumbRef.value?.$el) {\n model.value = [Math.min(newValue, stop), stop]\n } else {\n model.value = [start, Math.max(start, newValue)]\n }\n },\n getActiveThumb,\n /* eslint-enable @typescript-eslint/no-use-before-define */\n })\n\n const model = useProxiedModel(\n props,\n 'modelValue',\n undefined,\n arr => {\n if (!arr || !arr.length) return [0, 0]\n\n return arr.map(value => roundValue(value))\n },\n ) as WritableComputedRef<[number, number]>\n\n const { isFocused, focus, blur } = useFocus(props)\n const trackStart = computed(() => position(model.value[0]))\n const trackStop = computed(() => position(model.value[1]))\n\n return () => {\n const [inputProps, _] = filterInputProps(props)\n\n return (\n <VInput\n class={[\n 'v-slider',\n 'v-range-slider',\n {\n 'v-slider--has-labels': !!slots['tick-label'] || hasLabels.value,\n 'v-slider--focused': isFocused.value,\n 'v-slider--pressed': mousePressed.value,\n 'v-slider--disabled': props.disabled,\n },\n ]}\n ref={ inputRef }\n { ...inputProps }\n focused={ isFocused.value }\n >\n {{\n ...slots,\n default: ({ id }) => (\n <div\n class=\"v-slider__container\"\n onMousedown={ onSliderMousedown }\n onTouchstartPassive={ onSliderTouchstart }\n >\n <input\n id={ `${id.value}_start` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[0] }\n />\n\n <input\n id={ `${id.value}_stop` }\n name={ props.name || id.value }\n disabled={ props.disabled }\n readonly={ props.readonly }\n tabindex=\"-1\"\n value={ model.value[1] }\n />\n\n <VSliderTrack\n ref={ trackContainerRef }\n start={ trackStart.value }\n stop={ trackStop.value }\n >\n {{ 'tick-label': slots['tick-label'] }}\n </VSliderTrack>\n\n <VSliderThumb\n ref={ startThumbRef }\n focused={ isFocused && activeThumbRef.value === startThumbRef.value?.$el }\n modelValue={ model.value[0] }\n onUpdate:modelValue={ v => (model.value = [v, model.value[1]]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = startThumbRef.value?.$el\n\n // Make sure second thumb is focused if\n // the thumbs are on top of each other\n // and they are both at minimum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[1] === min.value &&\n e.relatedTarget !== stopThumbRef.value?.$el\n ) {\n startThumbRef.value?.$el.blur()\n stopThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ min.value }\n max={ model.value[1] }\n position={ trackStart.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n\n <VSliderThumb\n ref={ stopThumbRef }\n focused={ isFocused && activeThumbRef.value === stopThumbRef.value?.$el }\n modelValue={ model.value[1] }\n onUpdate:modelValue={ v => (model.value = [model.value[0], v]) }\n onFocus={ (e: FocusEvent) => {\n focus()\n activeThumbRef.value = stopThumbRef.value?.$el\n\n // Make sure first thumb is focused if\n // the thumbs are on top of each other\n // and they are both at maximum value\n // but only if focused from outside.\n if (\n model.value[0] === model.value[1] &&\n model.value[0] === max.value &&\n e.relatedTarget !== startThumbRef.value?.$el\n ) {\n stopThumbRef.value?.$el.blur()\n startThumbRef.value?.$el.focus()\n }\n } }\n onBlur={ () => {\n blur()\n activeThumbRef.value = undefined\n } }\n min={ model.value[0] }\n max={ max.value }\n position={ trackStop.value }\n >\n {{ 'thumb-label': slots['thumb-label'] }}\n </VSliderThumb>\n </div>\n ),\n }}\n </VInput>\n )\n }\n },\n})\n\nexport type VRangeSlider = InstanceType<typeof VRangeSlider>\n","// Styles\nimport './VRating.sass'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Composables\nimport { makeDensityProps } from '@/composables/density'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { createRange, genericComponent, getUid } from '@/util'\n\n// Types\nimport type { Prop } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { Variant } from '@/composables/variant'\n\ntype VRatingItemSlot = {\n value: number\n index: number\n isFilled: boolean\n isHovered: boolean\n icon: string\n color?: string\n props: Record<string, unknown>\n}\n\ntype VRatingItemLabelSlot = {\n value: number\n index: number\n label?: string\n}\n\nexport const VRating = genericComponent<new <T>() => {\n $slots: MakeSlots<{\n item: [VRatingItemSlot]\n 'item-label': [VRatingItemLabelSlot]\n }>\n}>()({\n name: 'VRating',\n\n props: {\n name: String,\n itemAriaLabel: {\n type: String,\n default: '$vuetify.rating.ariaLabel.item',\n },\n activeColor: String,\n color: String,\n clearable: Boolean,\n disabled: Boolean,\n emptyIcon: {\n type: String,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: String,\n default: '$ratingFull',\n },\n halfIncrements: Boolean,\n hover: Boolean,\n length: {\n type: [Number, String],\n default: 5,\n },\n readonly: Boolean,\n modelValue: {\n type: Number,\n default: 0,\n },\n itemLabels: Array as Prop<string[]>,\n itemLabelPosition: {\n type: String,\n default: 'top',\n validator: (v: any) => ['top', 'bottom'].includes(v),\n },\n ripple: Boolean,\n\n ...makeDensityProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n emits: {\n 'update:modelValue': (value: number) => true,\n },\n\n setup (props, { slots }) {\n const { t } = useLocale()\n const { themeClasses } = provideTheme(props)\n const rating = useProxiedModel(props, 'modelValue')\n\n const range = computed(() => createRange(Number(props.length), 1))\n const increments = computed(() => range.value.flatMap(v => props.halfIncrements ? [v - 0.5, v] : [v]))\n const hoverIndex = ref(-1)\n const focusIndex = ref(-1)\n const firstRef = ref<HTMLElement>()\n let isClicking = false\n\n const itemState = computed(() => increments.value.map(value => {\n const isHovering = props.hover && hoverIndex.value > -1\n const isFilled = rating.value >= value\n const isHovered = hoverIndex.value >= value\n const isFullIcon = isHovering ? isHovered : isFilled\n const icon = isFullIcon ? props.fullIcon : props.emptyIcon\n const activeColor = props.activeColor ?? props.color\n const color = (isFilled || isHovered) ? activeColor : props.color\n\n return { isFilled, isHovered, icon, color }\n }))\n\n const eventState = computed(() => [0, ...increments.value].map(value => {\n function onMouseenter () {\n hoverIndex.value = value\n }\n\n function onMouseleave () {\n hoverIndex.value = -1\n }\n\n function onFocus () {\n if (value === 0 && rating.value === 0) {\n firstRef.value?.focus()\n } else {\n focusIndex.value = value\n }\n }\n\n function onBlur () {\n if (!isClicking) focusIndex.value = -1\n }\n\n function onClick () {\n if (props.disabled || props.readonly) return\n rating.value = rating.value === value && props.clearable ? 0 : value\n }\n\n return {\n onMouseenter: props.hover ? onMouseenter : undefined,\n onMouseleave: props.hover ? onMouseleave : undefined,\n onFocus,\n onBlur,\n onClick,\n }\n }))\n\n function onMousedown () {\n isClicking = true\n }\n\n function onMouseup () {\n isClicking = false\n }\n\n const name = computed(() => props.name ?? `v-rating-${getUid()}`)\n\n function VRatingItem ({ value, index, showStar = true }: { value: number, index: number, showStar?: boolean }) {\n const { onMouseenter, onMouseleave, onFocus, onBlur, onClick } = eventState.value[index + 1]\n const id = `${name.value}-${String(value).replace('.', '-')}`\n const btnProps = {\n color: itemState.value[index]?.color,\n density: props.density,\n disabled: props.disabled,\n icon: itemState.value[index]?.icon,\n ripple: props.ripple,\n size: props.size,\n tag: 'span',\n variant: 'plain' as Variant,\n }\n\n return (\n <>\n <label\n for={ id }\n class={{\n 'v-rating__item--half': props.halfIncrements && value % 1 > 0,\n 'v-rating__item--full': props.halfIncrements && value % 1 === 0,\n }}\n onMousedown={ onMousedown }\n onMouseup={ onMouseup }\n onMouseenter={ onMouseenter }\n onMouseleave={ onMouseleave }\n >\n <span class=\"v-rating__hidden\">{ t(props.itemAriaLabel, value, props.length) }</span>\n {\n !showStar ? undefined\n : slots.item ? slots.item({\n ...itemState.value[index],\n props: btnProps,\n value,\n index,\n })\n : (\n <VBtn { ...btnProps } />\n )\n }\n </label>\n <input\n class=\"v-rating__hidden\"\n name={ name.value }\n id={ id }\n type=\"radio\"\n value={ value }\n checked={ rating.value === value }\n onClick={ onClick }\n onFocus={ onFocus }\n onBlur={ onBlur }\n ref={ index === 0 ? firstRef : undefined }\n readonly={ props.readonly }\n disabled={ props.disabled }\n />\n </>\n )\n }\n\n function createLabel (labelProps: { value: number, index: number, label?: string }) {\n if (slots['item-label']) return slots['item-label'](labelProps)\n\n if (labelProps.label) return <span>{ labelProps.label }</span>\n\n return <span> </span>\n }\n\n return () => {\n const hasLabels = !!props.itemLabels?.length || slots['item-label']\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\n 'v-rating--hover': props.hover,\n 'v-rating--readonly': props.readonly,\n },\n themeClasses.value,\n ]}\n >\n <VRatingItem value={ 0 } index={ -1 } showStar={ false } />\n\n { range.value.map((value, i) => (\n <div class=\"v-rating__wrapper\">\n {\n hasLabels && props.itemLabelPosition === 'top'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n <div\n class={[\n 'v-rating__item',\n {\n 'v-rating__item--focused': Math.ceil(focusIndex.value) === value,\n },\n ]}\n >\n { props.halfIncrements ? (\n <>\n <VRatingItem value={ value - 0.5 } index={ i * 2 } />\n <VRatingItem value={ value } index={ (i * 2) + 1 } />\n </>\n ) : (\n <VRatingItem value={ value } index={ i } />\n ) }\n </div>\n {\n hasLabels && props.itemLabelPosition === 'bottom'\n ? createLabel({ value, index: i, label: props.itemLabels?.[i] })\n : undefined\n }\n </div>\n )) }\n </props.tag>\n )\n }\n },\n})\n\nexport type VRating = InstanceType<typeof VRating>\n","export function bias (val: number) {\n const c = 0.501\n const x = Math.abs(val)\n return Math.sign(val) * (x / ((1 / c - 2) * (1 - x) + 1))\n}\n\nexport function calculateUpdatedOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n currentScrollOffset,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n currentScrollOffset: number\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n const adjustedOffsetStart = isRtl ? (contentSize - offsetStart - clientSize) : offsetStart\n\n if (isRtl) {\n currentScrollOffset = -currentScrollOffset\n }\n\n const totalSize = containerSize + currentScrollOffset\n const itemOffset = clientSize + adjustedOffsetStart\n const additionalOffset = clientSize * 0.4\n\n if (adjustedOffsetStart <= currentScrollOffset) {\n currentScrollOffset = Math.max(adjustedOffsetStart - additionalOffset, 0)\n } else if (totalSize <= itemOffset) {\n currentScrollOffset = Math.min(currentScrollOffset - (totalSize - itemOffset - additionalOffset), contentSize - containerSize)\n }\n\n return isRtl ? -currentScrollOffset : currentScrollOffset\n}\n\nexport function calculateCenteredOffset ({\n selectedElement,\n containerSize,\n contentSize,\n isRtl,\n isHorizontal,\n}: {\n selectedElement: HTMLElement\n containerSize: number\n contentSize: number\n isRtl: boolean\n isHorizontal: boolean\n}): number {\n const clientSize = isHorizontal ? selectedElement.clientWidth : selectedElement.clientHeight\n const offsetStart = isHorizontal ? selectedElement.offsetLeft : selectedElement.offsetTop\n\n if (isRtl) {\n const offsetCentered = contentSize - offsetStart - clientSize / 2 - containerSize / 2\n return -Math.min(contentSize - containerSize, Math.max(0, offsetCentered))\n } else {\n const offsetCentered = offsetStart + clientSize / 2 - containerSize / 2\n return Math.min(contentSize - containerSize, Math.max(0, offsetCentered))\n }\n}\n","// Styles\nimport './VSlideGroup.sass'\n\n// Components\nimport { VFadeTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { useDisplay } from '@/composables'\nimport { useResizeObserver } from '@/composables/resizeObserver'\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, defineComponent, useRender } from '@/util'\nimport { computed, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\nexport const VSlideGroup = defineComponent({\n name: 'VSlideGroup',\n\n props: {\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: String,\n default: '$next',\n },\n prevIcon: {\n type: String,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = ref(false)\n const scrollOffset = ref(0)\n const containerSize = ref(0)\n const contentSize = ref(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n watchEffect(() => {\n if (!containerRect.value || !contentRect.value) return\n\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n watch(group.selected, () => {\n if (firstSelectedIndex.value < 0 || !contentRef.value) return\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n })\n\n let firstOverflow = true\n watch(isOverflowing, () => {\n if (!firstOverflow || !contentRef.value || firstSelectedIndex.value < 0) return\n\n firstOverflow = false\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[firstSelectedIndex.value] as HTMLElement\n\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n })\n\n const disableTransition = ref(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n startOffset = scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n scrollOffset.value = startOffset + startTouch - e.touches[0][sizeProperty]\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (isRtl.value) {\n if (scrollOffset.value > 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value <= -maxScrollOffset) {\n scrollOffset.value = -maxScrollOffset\n }\n } else {\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n containerRef.value && (containerRef.value.scrollLeft = 0)\n }\n\n const isFocused = ref(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n if (e.key === (isHorizontal.value ? 'ArrowRight' : 'ArrowDown')) {\n focus('next')\n } else if (e.key === (isHorizontal.value ? 'ArrowLeft' : 'ArrowUp')) {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n contentRef.value.querySelector('[tabindex]')\n const focusable = [...contentRef.value.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const sign = isRtl.value ? -1 : 1\n const newAbosluteOffset = sign * scrollOffset.value +\n (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = sign * clamp(newAbosluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n const scrollAmount = scrollOffset.value <= 0\n ? bias(-scrollOffset.value)\n : scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return hasAffixes.value && scrollOffset.value > 0\n })\n\n const hasNext = computed(() => {\n if (!hasAffixes.value) return false\n\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n ]}\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.prevIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n\n <div\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.nextIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VSlideGroupSymbol } from './VSlideGroup'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VSlideGroupItem = defineComponent({\n name: 'VSlideGroupItem',\n\n props: {\n ...makeGroupItemProps(),\n },\n\n setup (props, { slots }) {\n const slideGroupItem = useGroupItem(props, VSlideGroupSymbol)\n\n return () => slots.default?.({\n isSelected: slideGroupItem.isSelected.value,\n select: slideGroupItem.select,\n toggle: slideGroupItem.toggle,\n selectedClass: slideGroupItem.selectedClass.value,\n })\n },\n})\n","// Styles\nimport './VSnackbar.sass'\n\n// Components\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider'\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { makePositionProps, usePosition } from '@/composables/position'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Utilities\nimport { onMounted, watch } from 'vue'\nimport { defineComponent, useRender } from '@/util'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\n\nexport const VSnackbar = defineComponent({\n name: 'VSnackbar',\n\n props: {\n app: Boolean,\n centered: Boolean,\n contentClass: {\n type: String,\n default: '',\n },\n multiLine: Boolean,\n timeout: {\n type: [Number, String],\n default: 5000,\n },\n vertical: Boolean,\n\n modelValue: Boolean,\n\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeVariantProps(),\n ...makeTransitionProps({ transition: 'v-snackbar-transition' }),\n },\n\n emits: {\n 'update:modelValue': (v: boolean) => true,\n },\n\n setup (props, { slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n const { positionClasses, positionStyles } = usePosition(props)\n\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { roundedClasses } = useRounded(props)\n\n watch(isActive, startTimeout)\n watch(() => props.timeout, startTimeout)\n\n onMounted(() => {\n if (isActive.value) startTimeout()\n })\n\n let activeTimeout = -1\n function startTimeout () {\n window.clearTimeout(activeTimeout)\n const timeout = Number(props.timeout)\n\n if (!isActive.value || timeout === -1) return\n\n activeTimeout = window.setTimeout(() => {\n isActive.value = false\n }, timeout)\n }\n\n function onPointerenter () {\n window.clearTimeout(activeTimeout)\n }\n\n useRender(() => (\n <VOverlay\n v-model={ isActive.value }\n class={[\n 'v-snackbar',\n {\n 'v-snackbar--active': isActive.value,\n 'v-snackbar--bottom': props.bottom || !props.top,\n 'v-snackbar--centered': props.centered,\n 'v-snackbar--end': props.right,\n 'v-snackbar--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--start': props.left,\n 'v-snackbar--top': props.top,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n style={[\n colorStyles.value,\n positionStyles.value,\n ]}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n transition={ props.transition }\n v-slots={{ activator: slots.activator }}\n >\n <div\n class={[\n 'v-snackbar__wrapper',\n colorClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n onPointerenter={ onPointerenter }\n onPointerleave={ startTimeout }\n >\n { genOverlays(false, 'v-snackbar') }\n\n { slots.default && (\n <div\n class={[\n 'v-snackbar__content',\n props.contentClass,\n ]}\n role=\"status\"\n aria-live=\"polite\"\n >\n { slots.default?.() }\n </div>\n ) }\n\n { slots.actions && (\n <VDefaultsProvider\n defaults={{\n VBtn: {\n variant: 'text',\n ripple: false,\n },\n }}\n >\n <div class=\"v-snackbar__actions\">\n { slots.actions?.() }\n </div>\n </VDefaultsProvider>\n ) }\n </div>\n </VOverlay>\n ))\n },\n})\n\nexport type VSnackbar = InstanceType<typeof VSnackbar>\n","// Styles\nimport './VSwitch.sass'\n\n// Components\nimport { filterControlProps, makeSelectionControlProps, VSelectionControl } from '@/components/VSelectionControl/VSelectionControl'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VProgressCircular } from '@/components/VProgressCircular'\n\n// Composables\nimport { LoaderSlot, useLoader } from '@/composables/loader'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { defineComponent, filterInputAttrs, useRender } from '@/util'\n\nexport const VSwitch = defineComponent({\n name: 'VSwitch',\n\n inheritAttrs: false,\n\n props: {\n indeterminate: Boolean,\n inset: Boolean,\n flat: Boolean,\n loading: {\n type: [Boolean, String],\n default: false,\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n },\n\n emits: {\n 'update:indeterminate': (val: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const indeterminate = useProxiedModel(props, 'indeterminate')\n const { loaderClasses } = useLoader(props)\n\n const loaderColor = computed(() => {\n return typeof props.loading === 'string' && props.loading !== ''\n ? props.loading\n : props.color\n })\n\n function onChange () {\n if (indeterminate.value) {\n indeterminate.value = false\n }\n }\n\n useRender(() => {\n const [inputAttrs, controlAttrs] = filterInputAttrs(attrs)\n const [inputProps, _1] = filterInputProps(props)\n const [controlProps, _2] = filterControlProps(props)\n const control = ref<VSelectionControl>()\n\n function onClick () {\n control.value?.input?.click()\n }\n\n return (\n <VInput\n class={[\n 'v-switch',\n { 'v-switch--inset': props.inset },\n { 'v-switch--indeterminate': indeterminate.value },\n loaderClasses.value,\n ]}\n { ...inputAttrs }\n { ...inputProps }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isReadonly,\n isValid,\n }) => (\n <VSelectionControl\n ref={ control }\n { ...controlProps }\n type=\"checkbox\"\n onUpdate:modelValue={ onChange }\n aria-checked={ indeterminate.value ? 'mixed' : undefined }\n disabled={ isDisabled.value }\n readonly={ isReadonly.value }\n { ...controlAttrs }\n >\n {{\n ...slots,\n default: () => (<div class=\"v-switch__track\" onClick={ onClick }></div>),\n input: ({ textColorClasses }) => (\n <div\n class={[\n 'v-switch__thumb',\n textColorClasses.value,\n ]}\n >\n { props.loading && (\n <LoaderSlot\n name=\"v-switch\"\n active\n color={ isValid.value === false ? undefined : loaderColor.value }\n >\n { slotProps => (\n slots.loader\n ? slots.loader(slotProps)\n : (\n <VProgressCircular\n active={ slotProps.isActive }\n color={ slotProps.color }\n indeterminate\n size=\"16\"\n width=\"2\"\n />\n )\n )}\n </LoaderSlot>\n ) }\n </div>\n ),\n }}\n </VSelectionControl>\n ),\n }}\n </VInput>\n )\n })\n\n return {}\n },\n})\n\nexport type VSwitch = InstanceType<typeof VSwitch>\n","// Styles\nimport './VSystemBar.sass'\n\n// Composables\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { provideDefaults } from '@/composables/defaults'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VSystemBar = defineComponent({\n name: 'VSystemBar',\n\n props: {\n color: String,\n height: [Number, String],\n window: Boolean,\n\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props)\n const height = computed(() => props.height ?? props.window ? 32 : 24)\n const { layoutItemStyles } = useLayoutItem({\n id: props.name,\n priority: computed(() => parseInt(props.priority, 10)),\n position: ref('top'),\n layoutSize: height,\n elementSize: height,\n active: computed(() => true),\n absolute: toRef(props, 'absolute'),\n })\n\n provideDefaults({\n VBtn: {\n variant: 'text',\n density: 'compact',\n },\n }, { scoped: true })\n\n return () => (\n <props.tag\n class={[\n 'v-system-bar',\n { 'v-system-bar--window': props.window },\n themeClasses.value,\n backgroundColorClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutItemStyles.value,\n ]}\n v-slots={ slots }\n />\n )\n },\n})\n","import type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VTabsSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-tabs')\n","// Styles\nimport './VTab.sass'\n\n// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeGroupItemProps } from '@/composables/group'\nimport { makeRouterProps } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps } from '@/composables/theme'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, ref } from 'vue'\nimport { defineComponent, pick, standardEasing, useRender } from '@/util'\nimport { VTabsSymbol } from './shared'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTab = defineComponent({\n name: 'VTab',\n\n props: {\n fixed: Boolean,\n icon: [Boolean, String],\n prependIcon: String,\n appendIcon: String,\n\n stacked: Boolean,\n title: String,\n\n ripple: {\n type: Boolean,\n default: true,\n },\n color: String,\n sliderColor: String,\n hideSlider: Boolean,\n\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n\n ...makeTagProps(),\n ...makeRouterProps(),\n ...makeGroupItemProps({\n selectedClass: 'v-tab--selected',\n }),\n ...makeThemeProps(),\n },\n\n setup (props, { slots, attrs }) {\n const { textColorClasses: sliderColorClasses, textColorStyles: sliderColorStyles } = useTextColor(props, 'sliderColor')\n const isHorizontal = computed(() => props.direction === 'horizontal')\n const isSelected = ref(false)\n\n const rootEl = ref<VBtn>()\n const sliderEl = ref<HTMLElement>()\n\n function updateSlider ({ value }: { value: boolean }) {\n isSelected.value = value\n\n if (value) {\n const prevEl: HTMLElement | undefined = rootEl.value?.$el.parentElement?.querySelector('.v-tab--selected .v-tab__slider')\n const nextEl = sliderEl.value\n\n if (!prevEl || !nextEl) return\n\n const color = getComputedStyle(prevEl).color\n\n const prevBox = prevEl.getBoundingClientRect()\n const nextBox = nextEl.getBoundingClientRect()\n\n const xy = isHorizontal.value ? 'x' : 'y'\n const XY = isHorizontal.value ? 'X' : 'Y'\n const rightBottom = isHorizontal.value ? 'right' : 'bottom'\n const widthHeight = isHorizontal.value ? 'width' : 'height'\n\n const prevPos = prevBox[xy]\n const nextPos = nextBox[xy]\n const delta = prevPos > nextPos\n ? prevBox[rightBottom] - nextBox[rightBottom]\n : prevBox[xy] - nextBox[xy]\n const origin =\n Math.sign(delta) > 0 ? (isHorizontal.value ? 'right' : 'bottom')\n : Math.sign(delta) < 0 ? (isHorizontal.value ? 'left' : 'top')\n : 'center'\n const size = Math.abs(delta) + (Math.sign(delta) < 0 ? prevBox[widthHeight] : nextBox[widthHeight])\n const scale = size / Math.max(prevBox[widthHeight], nextBox[widthHeight])\n const initialScale = prevBox[widthHeight] / nextBox[widthHeight]\n\n const sigma = 1.5\n nextEl.animate({\n backgroundColor: [color, ''],\n transform: [\n `translate${XY}(${delta}px) scale${XY}(${initialScale})`,\n `translate${XY}(${delta / sigma}px) scale${XY}(${(scale - 1) / sigma + 1})`,\n '',\n ],\n transformOrigin: Array(3).fill(origin),\n }, {\n duration: 225,\n easing: standardEasing,\n })\n }\n }\n\n useRender(() => {\n const [btnProps] = pick(props, [\n 'href',\n 'to',\n 'replace',\n 'icon',\n 'stacked',\n 'prependIcon',\n 'appendIcon',\n 'ripple',\n 'theme',\n 'disabled',\n 'selectedClass',\n 'value',\n 'color',\n ])\n\n return (\n <VBtn\n _as=\"VTab\"\n symbol={ VTabsSymbol }\n ref={ rootEl }\n class={[\n 'v-tab',\n ]}\n tabindex={ isSelected.value ? 0 : -1 }\n role=\"tab\"\n aria-selected={ String(isSelected.value) }\n block={ props.fixed }\n maxWidth={ props.fixed ? 300 : undefined }\n variant=\"text\"\n rounded={ 0 }\n { ...btnProps }\n { ...attrs }\n onGroup:selected={ updateSlider }\n >\n { slots.default ? slots.default() : props.title }\n { !props.hideSlider && (\n <div\n ref={ sliderEl }\n class={[\n 'v-tab__slider',\n sliderColorClasses.value,\n ]}\n style={ sliderColorStyles.value }\n />\n ) }\n </VBtn>\n )\n })\n\n return {}\n },\n})\n\nexport type VTab = InstanceType<typeof VTab>\n","// Styles\nimport './VTabs.sass'\n\n// Components\nimport { VSlideGroup } from '@/components/VSlideGroup'\nimport { VTab } from './VTab'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { computed, toRef } from 'vue'\nimport { defineComponent } from '@/util'\nimport { VTabsSymbol } from './shared'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type TabItem = string | Record<string, any>\n\nfunction parseItems (items: TabItem[] | undefined) {\n if (!items) return []\n\n return items.map(item => {\n if (typeof item === 'string') return { title: item, value: item }\n\n return item\n })\n}\n\nexport const VTabs = defineComponent({\n name: 'VTabs',\n\n props: {\n alignWithTitle: Boolean,\n color: String,\n direction: {\n type: String as PropType<'horizontal' | 'vertical'>,\n default: 'horizontal',\n },\n fixedTabs: Boolean,\n items: {\n type: Array as PropType<TabItem[]>,\n default: () => ([]),\n },\n stacked: Boolean,\n backgroundColor: String,\n centered: Boolean,\n grow: Boolean,\n height: {\n type: [Number, String],\n default: undefined,\n },\n hideSlider: Boolean,\n optional: Boolean,\n end: Boolean,\n sliderColor: String,\n modelValue: null,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n },\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots, emit }) {\n const parsedItems = computed(() => parseItems(props.items))\n const { densityClasses } = useDensity(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'backgroundColor'))\n\n provideDefaults({\n VTab: {\n color: toRef(props, 'color'),\n direction: toRef(props, 'direction'),\n stacked: toRef(props, 'stacked'),\n fixed: toRef(props, 'fixedTabs'),\n sliderColor: toRef(props, 'sliderColor'),\n hideSlider: toRef(props, 'hideSlider'),\n },\n })\n\n return () => (\n <VSlideGroup\n class={[\n 'v-tabs',\n `v-tabs--${props.direction}`,\n {\n 'v-tabs--align-with-title': props.alignWithTitle,\n 'v-tabs--centered': props.centered,\n 'v-tabs--fixed-tabs': props.fixedTabs,\n 'v-tabs--grow': props.grow,\n 'v-tabs--end': props.end,\n 'v-tabs--stacked': props.stacked,\n },\n densityClasses.value,\n backgroundColorClasses.value,\n ]}\n style={backgroundColorStyles.value}\n role=\"tablist\"\n symbol={ VTabsSymbol }\n mandatory=\"force\"\n direction={ props.direction }\n modelValue={ props.modelValue }\n onUpdate:modelValue={ v => emit('update:modelValue', v) }\n >\n { slots.default ? slots.default() : parsedItems.value.map(item => (\n <VTab { ...item } key={ item.title } />\n )) }\n </VSlideGroup>\n )\n },\n})\n\nexport type VTabs = InstanceType<typeof VTabs>\n","// Styles\nimport './VTable.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Utilities\nimport { convertToUnit, defineComponent } from '@/util'\nimport { makeDensityProps, useDensity } from '@/composables/density'\n\nexport const VTable = defineComponent({\n name: 'VTable',\n\n props: {\n fixedHeader: Boolean,\n fixedFooter: Boolean,\n height: [Number, String],\n\n ...makeDensityProps(),\n ...makeThemeProps(),\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n return () => (\n <props.tag\n class={[\n 'v-table',\n {\n 'v-table--fixed-height': !!props.height,\n 'v-table--fixed-header': props.fixedHeader,\n 'v-table--fixed-footer': props.fixedFooter,\n 'v-table--has-top': !!slots.top,\n 'v-table--has-bottom': !!slots.bottom,\n },\n themeClasses.value,\n densityClasses.value,\n ]}\n >\n { slots.top?.() }\n\n { slots.default && (\n <div\n class=\"v-table__wrapper\"\n style={{ height: convertToUnit(props.height) }}\n >\n <table>\n { slots.default?.() }\n </table>\n </div>\n ) }\n\n { slots.bottom?.() }\n </props.tag>\n )\n },\n})\n","// Styles\nimport './VTextarea.sass'\n\n// Components\nimport { filterFieldProps, makeVFieldProps } from '@/components/VField/VField'\nimport { filterInputProps, makeVInputProps, VInput } from '@/components/VInput/VInput'\nimport { VCounter } from '@/components/VCounter'\nimport { VField } from '@/components/VField'\n\n// Composables\nimport { useForwardRef } from '@/composables/forwardRef'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport Intersect from '@/directives/intersect'\n\n// Utilities\nimport { computed, nextTick, onBeforeUnmount, onMounted, ref, watch } from 'vue'\nimport { convertToUnit, defineComponent, filterInputAttrs, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const VTextarea = defineComponent({\n name: 'VTextarea',\n\n directives: { Intersect },\n\n inheritAttrs: false,\n\n props: {\n autoGrow: Boolean,\n autofocus: Boolean,\n counter: [Boolean, Number, String] as PropType<true | number | string>,\n counterValue: Function as PropType<(value: any) => number>,\n hint: String,\n persistentHint: Boolean,\n prefix: String,\n placeholder: String,\n persistentPlaceholder: Boolean,\n persistentCounter: Boolean,\n noResize: Boolean,\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n maxRows: {\n type: [Number, String],\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n suffix: String,\n\n ...makeVInputProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'update:modelValue': (val: string) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const model = useProxiedModel(props, 'modelValue')\n const counterValue = computed(() => {\n return typeof props.counterValue === 'function'\n ? props.counterValue(model.value)\n : (model.value || '').toString().length\n })\n const max = computed(() => {\n if (attrs.maxlength) return attrs.maxlength as undefined\n\n if (\n !props.counter ||\n (typeof props.counter !== 'number' &&\n typeof props.counter !== 'string')\n ) return undefined\n\n return props.counter\n })\n\n function onIntersect (\n isIntersecting: boolean,\n entries: IntersectionObserverEntry[]\n ) {\n if (!props.autofocus || !isIntersecting) return\n\n (entries[0].target as HTMLInputElement)?.focus?.()\n }\n\n const vInputRef = ref<VInput>()\n const vFieldRef = ref<VInput>()\n const isFocused = ref(false)\n const controlHeight = ref('auto')\n const textareaRef = ref<HTMLInputElement>()\n const isActive = computed(() => (\n isFocused.value ||\n props.persistentPlaceholder\n ))\n\n const messages = computed(() => {\n return props.messages.length\n ? props.messages\n : (isActive.value || props.persistentHint) ? props.hint : ''\n })\n\n function onFocus () {\n if (textareaRef.value !== document.activeElement) {\n textareaRef.value?.focus()\n }\n\n if (!isFocused.value) isFocused.value = true\n }\n function onControlClick (e: MouseEvent) {\n onFocus()\n\n emit('click:control', e)\n }\n function onClear (e: MouseEvent) {\n e.stopPropagation()\n\n onFocus()\n\n nextTick(() => {\n model.value = ''\n\n emit('click:clear', e)\n })\n }\n\n const sizerRef = ref<HTMLTextAreaElement>()\n function calculateInputHeight () {\n if (!props.autoGrow) return\n\n nextTick(() => {\n if (!sizerRef.value) return\n\n const style = getComputedStyle(sizerRef.value)\n\n const padding = parseFloat(style.getPropertyValue('--v-field-padding-top')) +\n parseFloat(style.getPropertyValue('--v-field-padding-bottom'))\n\n const height = sizerRef.value.scrollHeight\n const lineHeight = parseFloat(style.lineHeight)\n const minHeight = parseFloat(props.rows) * lineHeight + padding\n const maxHeight = parseFloat(props.maxRows!) * lineHeight + padding || Infinity\n\n controlHeight.value = convertToUnit(Math.min(maxHeight, Math.max(minHeight, height ?? 0)))\n })\n }\n\n onMounted(calculateInputHeight)\n watch(model, calculateInputHeight)\n watch(() => props.rows, calculateInputHeight)\n watch(() => props.maxRows, calculateInputHeight)\n\n let observer: ResizeObserver | undefined\n watch(sizerRef, val => {\n if (val) {\n observer = new ResizeObserver(calculateInputHeight)\n observer.observe(sizerRef.value!)\n } else {\n observer?.disconnect()\n }\n })\n onBeforeUnmount(() => {\n observer?.disconnect()\n })\n\n useRender(() => {\n const hasCounter = !!(slots.counter || props.counter || props.counterValue)\n const [rootAttrs, inputAttrs] = filterInputAttrs(attrs)\n const [{ modelValue: _, ...inputProps }] = filterInputProps(props)\n const [fieldProps] = filterFieldProps(props)\n\n return (\n <VInput\n v-model={ model.value }\n class={[\n 'v-textarea',\n {\n 'v-textarea--prefixed': props.prefix,\n 'v-textarea--suffixed': props.suffix,\n 'v-textarea--auto-grow': props.autoGrow,\n 'v-textarea--no-resize': props.noResize || props.autoGrow,\n },\n ]}\n { ...rootAttrs }\n { ...inputProps }\n messages={ messages.value }\n >\n {{\n ...slots,\n default: ({\n isDisabled,\n isDirty,\n isReadonly,\n isValid,\n }) => (\n <VField\n style={{\n '--v-input-control-height': controlHeight.value,\n }}\n onClick:control={ onControlClick }\n onClick:clear={ onClear }\n role=\"textbox\"\n { ...fieldProps }\n active={ isActive.value || isDirty.value }\n dirty={ isDirty.value || props.dirty }\n focused={ isFocused.value }\n error={ isValid.value === false }\n >\n {{\n ...slots,\n default: ({\n props: { class: fieldClass, ...slotProps },\n }) => (\n <>\n { props.prefix && (\n <span class=\"v-text-field__prefix\">\n { props.prefix }\n </span>\n ) }\n\n <textarea\n ref={ textareaRef }\n class={ fieldClass }\n v-model={ model.value }\n v-intersect={[{\n handler: onIntersect,\n }, null, ['once']]}\n autofocus={ props.autofocus }\n readonly={ isReadonly.value }\n disabled={ isDisabled.value }\n placeholder={ props.placeholder }\n rows={ props.rows }\n name={ props.name }\n onFocus={ onFocus }\n onBlur={ () => (isFocused.value = false) }\n { ...slotProps }\n { ...inputAttrs }\n />\n\n { props.autoGrow && (\n <textarea\n class={[\n fieldClass,\n 'v-textarea__sizer',\n ]}\n v-model={ model.value }\n ref={ sizerRef }\n readonly\n aria-hidden=\"true\"\n />\n )}\n\n { props.suffix && (\n <span class=\"v-text-field__suffix\">\n { props.suffix }\n </span>\n ) }\n </>\n ),\n }}\n </VField>\n ),\n details: hasCounter ? () => (\n <>\n <span />\n\n <VCounter\n active={ props.persistentCounter || isFocused.value }\n value={ counterValue.value }\n max={ max.value }\n v-slots={ slots.counter }\n />\n </>\n ) : undefined,\n }}\n </VInput>\n )\n })\n\n return useForwardRef({}, vInputRef, vFieldRef, textareaRef)\n },\n})\n\nexport type VTextarea = InstanceType<typeof VTextarea>\n","// Styles\nimport './VThemeProvider.sass'\n\n// Composables\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VThemeProvider = defineComponent({\n name: 'VThemeProvider',\n\n props: {\n withBackground: Boolean,\n\n ...makeThemeProps(),\n ...makeTagProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n\n return () => {\n if (!props.withBackground) return slots.default?.()\n\n return (\n <props.tag class={['v-theme-provider', themeClasses.value]}>\n { slots.default?.() }\n </props.tag>\n )\n }\n },\n})\n","import type { InjectionKey, Ref } from 'vue'\nimport type { Density } from '@/composables/density'\n\nexport interface TimelineInstance {\n density: Ref<Density>\n lineColor: Ref<string>\n}\n\nexport const VTimelineSymbol: InjectionKey<TimelineInstance> = Symbol.for('vuetify:timeline')\n","// Styles\nimport './VTimeline.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\n\n// Helpers\nimport { computed, provide, toRef } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\nimport { VTimelineSymbol } from './shared'\n\n// Types\nimport type { Prop } from 'vue'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'start' | 'end' | undefined\nexport type TimelineAlign = 'center' | 'start'\nexport type TimelineTruncateLine = 'start' | 'end' | 'both' | undefined\n\nexport const VTimeline = defineComponent({\n name: 'VTimeline',\n\n props: {\n align: {\n type: String,\n default: 'center',\n validator: (v: any) => ['center', 'start'].includes(v),\n } as Prop<TimelineAlign>,\n direction: {\n type: String,\n default: 'vertical',\n validator: (v: any) => ['vertical', 'horizontal'].includes(v),\n } as Prop<TimelineDirection>,\n side: {\n type: String,\n validator: (v: any) => v == null || ['start', 'end'].includes(v),\n } as Prop<TimelineSide>,\n lineInset: {\n type: [String, Number],\n default: 0,\n },\n lineThickness: {\n type: [String, Number],\n default: 2,\n },\n lineColor: String,\n truncateLine: {\n type: String,\n validator: (v: any) => ['start', 'end', 'both'].includes(v),\n } as Prop<TimelineTruncateLine>,\n\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n },\n\n setup (props, { slots }) {\n const { themeClasses } = provideTheme(props)\n const { densityClasses } = useDensity(props)\n\n provide(VTimelineSymbol, {\n density: toRef(props, 'density'),\n lineColor: toRef(props, 'lineColor'),\n })\n\n const sideClass = computed(() => {\n const side = props.side ? props.side : props.density !== 'default' ? 'end' : null\n\n return side && `v-timeline--side-${side}`\n })\n\n const truncateClasses = computed(() => {\n const classes = [\n 'v-timeline--truncate-line-start',\n 'v-timeline--truncate-line-end',\n ]\n\n switch (props.truncateLine) {\n case 'both': return classes\n case 'start': return classes[0]\n case 'end': return classes[1]\n default: return null\n }\n })\n\n return () => (\n <props.tag\n class={[\n 'v-timeline',\n `v-timeline--${props.direction}`,\n `v-timeline--align-${props.align}`,\n !props.lineInset && truncateClasses.value,\n {\n 'v-timeline--inset-line': !!props.lineInset,\n },\n themeClasses.value,\n densityClasses.value,\n sideClass.value,\n ]}\n style={{\n '--v-timeline-line-thickness': convertToUnit(props.lineThickness),\n '--v-timeline-line-inset': convertToUnit(props.lineInset),\n }}\n >\n { slots.default?.() }\n </props.tag>\n )\n },\n})\n","// Components\nimport { VIcon } from '@/components/VIcon'\nimport { VTimelineSymbol } from './shared'\n\n// Composables\nimport { useBackgroundColor } from '@/composables/color'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\n\n// Utilities\nimport { inject, toRef } from 'vue'\nimport { defineComponent } from '@/util'\n\nexport const VTimelineDivider = defineComponent({\n name: 'VTimelineDivider',\n\n props: {\n hideDot: Boolean,\n lineColor: String,\n icon: String,\n iconColor: String,\n fillDot: Boolean,\n dotColor: String,\n\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeElevationProps(),\n },\n\n setup (props, { slots }) {\n const timeline = inject(VTimelineSymbol)\n\n if (!timeline) throw new Error('[Vuetify] Could not find v-timeline provider')\n\n const { sizeClasses, sizeStyles } = useSize(props, 'v-timeline-divider__dot')\n const { backgroundColorStyles, backgroundColorClasses } = useBackgroundColor(toRef(props, 'dotColor'))\n const { backgroundColorStyles: lineColorStyles, backgroundColorClasses: lineColorClasses } = useBackgroundColor(timeline.lineColor)\n const { roundedClasses } = useRounded(props, 'v-timeline-divider__dot')\n const { elevationClasses } = useElevation(props)\n\n return () => (\n <div\n class={[\n 'v-timeline-divider',\n {\n 'v-timeline-divider--fill-dot': props.fillDot,\n },\n ]}\n >\n { !props.hideDot && (\n <div\n class={[\n 'v-timeline-divider__dot',\n roundedClasses.value,\n sizeClasses.value,\n elevationClasses.value,\n ]}\n // @ts-expect-error: null\n style={ sizeStyles.value }\n >\n <div\n class={[\n 'v-timeline-divider__inner-dot',\n roundedClasses.value,\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n >\n {\n slots.default ? slots.default({ icon: props.icon, iconColor: props.iconColor, size: props.size })\n : props.icon ? <VIcon icon={ props.icon } color={ props.iconColor } size={ props.size } />\n : undefined\n }\n </div>\n </div>\n ) }\n <div\n class={[\n 'v-timeline-divider__line',\n lineColorClasses.value,\n ]}\n style={ lineColorStyles.value }\n />\n </div>\n )\n },\n})\n\nexport type VTimelineDivider = InstanceType<typeof VTimelineDivider>\n","// Components\nimport { VTimelineSymbol } from './shared'\nimport { VTimelineDivider } from './VTimelineDivider'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeElevationProps } from '@/composables/elevation'\nimport { makeRoundedProps } from '@/composables/rounded'\n\n// Utilities\nimport { inject, ref, watch } from 'vue'\nimport { convertToUnit, defineComponent } from '@/util'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\nexport const VTimelineItem = defineComponent({\n name: 'VTimelineItem',\n\n props: {\n dotColor: String,\n fillDot: Boolean,\n hideDot: Boolean,\n hideOpposite: {\n type: Boolean,\n default: undefined,\n },\n icon: String,\n iconColor: String,\n\n ...makeRoundedProps(),\n ...makeElevationProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n ...makeDimensionProps(),\n },\n\n setup (props, { slots }) {\n const timeline = inject(VTimelineSymbol)\n\n if (!timeline) throw new Error('[Vuetify] Could not find v-timeline provider')\n\n const { dimensionStyles } = useDimension(props)\n\n const dotSize = ref(0)\n const dotRef = ref<VTimelineDivider>()\n watch(dotRef, newValue => {\n if (!newValue) return\n dotSize.value = newValue.$el.querySelector('.v-timeline-divider__dot')?.getBoundingClientRect().width ?? 0\n }, {\n flush: 'post',\n })\n\n return () => (\n <div\n class={[\n 'v-timeline-item',\n {\n 'v-timeline-item--fill-dot': props.fillDot,\n },\n ]}\n style={{\n '--v-timeline-dot-size': convertToUnit(dotSize.value),\n }}\n >\n <div\n class=\"v-timeline-item__body\"\n style={ dimensionStyles.value }\n >\n { slots.default?.() }\n </div>\n\n <VTimelineDivider\n ref={ dotRef }\n hideDot={ props.hideDot }\n icon={ props.icon }\n iconColor={ props.iconColor }\n size={ props.size }\n elevation={ props.elevation }\n dotColor={ props.dotColor }\n fillDot={ props.fillDot }\n rounded={ props.rounded }\n v-slots={{ default: slots.icon }}\n />\n\n { timeline.density.value !== 'compact' && (\n <div class=\"v-timeline-item__opposite\">\n { !props.hideOpposite && slots.opposite?.() }\n </div>\n ) }\n </div>\n )\n },\n})\n","// Styles\nimport './VTooltip.sass'\n\n// Components\nimport { VOverlay } from '@/components/VOverlay'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeTransitionProps } from '@/composables/transition'\n\n// Utilities\nimport { computed } from 'vue'\nimport { genericComponent, getUid } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { OverlaySlots } from '@/components/VOverlay/VOverlay'\nimport type { StrategyProps } from '@/components/VOverlay/positionStrategies'\n\nexport const VTooltip = genericComponent<new () => {\n $slots: OverlaySlots\n}>()({\n name: 'VTooltip',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n modelValue: Boolean,\n text: String,\n\n anchor: {\n type: String as PropType<StrategyProps['anchor']>,\n default: 'end',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n\n ...makeTransitionProps({\n transition: false,\n } as const),\n },\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { attrs, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const uid = getUid()\n const id = computed(() => props.id || `v-tooltip-${uid}`)\n\n const anchor = computed(() => {\n return props.anchor.split(' ').length > 1\n ? props.anchor\n : props.anchor + ' center' as StrategyProps['anchor']\n })\n\n const origin = computed(() => {\n return (\n props.origin === 'auto' ||\n props.origin === 'overlap' ||\n props.origin.split(' ').length > 1 ||\n props.anchor.split(' ').length > 1\n ) ? props.origin\n : props.origin + ' center' as StrategyProps['origin']\n })\n\n const transition = computed(() => {\n if (props.transition) return props.transition\n return isActive.value ? 'scale-transition' : 'fade-transition'\n })\n\n return () => {\n return (\n <VOverlay\n v-model={ isActive.value }\n class={[\n 'v-tooltip',\n ]}\n id={ id.value }\n transition={ transition.value }\n absolute\n positionStrategy=\"connected\"\n scrollStrategy=\"reposition\"\n anchor={ anchor.value }\n origin={ origin.value }\n min-width={ 0 }\n offset={ 10 }\n scrim={ false }\n persistent\n open-on-click={ false }\n open-on-hover\n role=\"tooltip\"\n eager\n activatorProps={{\n 'aria-describedby': id.value,\n }}\n { ...attrs }\n >\n {{\n activator: slots.activator,\n default: (...args) => slots.default?.(...args) ?? props.text,\n }}\n </VOverlay>\n )\n }\n },\n})\n\nexport type VTooltip = InstanceType<typeof VTooltip>\n","// Composables\nimport { makeValidationProps, useValidation } from '@/composables/validation'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VValidation = defineComponent({\n name: 'VValidation',\n\n props: {\n ...makeValidationProps(),\n },\n\n emits: {\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { slots }) {\n const validation = useValidation(props, 'validation')\n\n return () => slots.default?.(validation)\n },\n})\n","// Types\nimport type { DirectiveBinding, ObjectDirective } from 'vue'\nimport type { MutationOptions } from '@/composables/mutationObserver'\n\nexport interface MutationDirectiveBinding extends Omit<DirectiveBinding, 'modifiers' | 'value'> {\n value: MutationCallback | { handler: MutationCallback, options?: MutationObserverInit }\n modifiers: MutationOptions\n}\n\nfunction mounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n const modifiers = binding.modifiers || {}\n const value = binding.value\n const { once, immediate, ...modifierKeys } = modifiers\n const defaultValue = !Object.keys(modifierKeys).length\n\n const { handler, options } = typeof value === 'object'\n ? value\n : {\n handler: value,\n options: {\n attributes: modifierKeys?.attr ?? defaultValue,\n characterData: modifierKeys?.char ?? defaultValue,\n childList: modifierKeys?.child ?? defaultValue,\n subtree: modifierKeys?.sub ?? defaultValue,\n },\n }\n\n const observer = new MutationObserver((\n mutations: MutationRecord[] = [],\n observer: MutationObserver\n ) => {\n handler?.(mutations, observer)\n\n if (once) unmounted(el, binding)\n })\n\n if (immediate) handler?.([], observer)\n\n el._mutate = Object(el._mutate)\n el._mutate![binding.instance!.$.uid] = { observer }\n\n observer.observe(el, options)\n}\n\nfunction unmounted (el: HTMLElement, binding: MutationDirectiveBinding) {\n if (!el._mutate?.[binding.instance!.$.uid]) return\n\n el._mutate[binding.instance!.$.uid]!.observer.disconnect()\n delete el._mutate[binding.instance!.$.uid]\n}\n\nexport const Mutate: ObjectDirective<HTMLElement> = {\n mounted,\n unmounted,\n}\n\nexport default Mutate\n","import type { DirectiveBinding } from 'vue'\n\ninterface ResizeDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: () => void\n modifiers?: {\n active?: boolean\n quiet?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n const handler = binding.value\n const options: AddEventListenerOptions = {\n passive: !binding.modifiers?.active,\n }\n\n window.addEventListener('resize', handler, options)\n\n el._onResize = Object(el._onResize)\n el._onResize![binding.instance!.$.uid] = {\n handler,\n options,\n }\n\n if (!binding.modifiers?.quiet) {\n handler()\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ResizeDirectiveBinding) {\n if (!el._onResize?.[binding.instance!.$.uid]) return\n\n const { handler, options } = el._onResize[binding.instance!.$.uid]!\n\n window.removeEventListener('resize', handler, options)\n\n delete el._onResize[binding.instance!.$.uid]\n}\n\nexport const Resize = {\n mounted,\n unmounted,\n}\n\nexport default Resize\n","import type { DirectiveBinding } from 'vue'\n\ninterface ScrollDirectiveBinding extends Omit<DirectiveBinding, 'modifiers'> {\n value: EventListener | {\n handler: EventListener\n options?: AddEventListenerOptions\n } | EventListenerObject & { options?: AddEventListenerOptions }\n modifiers?: {\n self?: boolean\n }\n}\n\nfunction mounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n const { self = false } = binding.modifiers ?? {}\n const value = binding.value\n const options = (typeof value === 'object' && value.options) || { passive: true }\n const handler = typeof value === 'function' || 'handleEvent' in value ? value : value.handler\n\n const target = self\n ? el\n : binding.arg\n ? document.querySelector(binding.arg)\n : window\n\n if (!target) return\n\n target.addEventListener('scroll', handler, options)\n\n el._onScroll = Object(el._onScroll)\n el._onScroll![binding.instance!.$.uid] = {\n handler,\n options,\n // Don't reference self\n target: self ? undefined : target,\n }\n}\n\nfunction unmounted (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (!el._onScroll?.[binding.instance!.$.uid]) return\n\n const { handler, options, target = el } = el._onScroll[binding.instance!.$.uid]!\n\n target.removeEventListener('scroll', handler, options)\n delete el._onScroll[binding.instance!.$.uid]\n}\n\nfunction updated (el: HTMLElement, binding: ScrollDirectiveBinding) {\n if (binding.value === binding.oldValue) return\n\n unmounted(el, binding)\n mounted(el, binding)\n}\n\nexport const Scroll = {\n mounted,\n unmounted,\n updated,\n}\n\nexport default Scroll\n","// Utilities\nimport { h } from 'vue'\n\n// Components\nimport { VClassIcon } from '@/composables/icons'\n\n// Types\nimport type { IconAliases, IconSet } from '@/composables/icons'\n\nconst aliases: IconAliases = {\n collapse: 'mdi-chevron-up',\n complete: 'mdi-check',\n cancel: 'mdi-close-circle',\n close: 'mdi-close',\n delete: 'mdi-close-circle', // delete (e.g. v-chip close)\n clear: 'mdi-close-circle',\n success: 'mdi-check-circle',\n info: 'mdi-information',\n warning: 'mdi-alert-circle',\n error: 'mdi-close-circle',\n prev: 'mdi-chevron-left',\n next: 'mdi-chevron-right',\n checkboxOn: 'mdi-checkbox-marked',\n checkboxOff: 'mdi-checkbox-blank-outline',\n checkboxIndeterminate: 'mdi-minus-box',\n delimiter: 'mdi-circle', // for carousel\n sort: 'mdi-arrow-up',\n expand: 'mdi-chevron-down',\n menu: 'mdi-menu',\n subgroup: 'mdi-menu-down',\n dropdown: 'mdi-menu-down',\n radioOn: 'mdi-radiobox-marked',\n radioOff: 'mdi-radiobox-blank',\n edit: 'mdi-pencil',\n ratingEmpty: 'mdi-star-outline',\n ratingFull: 'mdi-star',\n ratingHalf: 'mdi-star-half-full',\n loading: 'mdi-cached',\n first: 'mdi-page-first',\n last: 'mdi-page-last',\n unfold: 'mdi-unfold-more-horizontal',\n file: 'mdi-paperclip',\n plus: 'mdi-plus',\n minus: 'mdi-minus',\n}\n\nconst mdi: IconSet = {\n // Not using mergeProps here, functional components merge props by default (?)\n component: (props: any) => h(VClassIcon, { ...props, class: 'mdi' }),\n}\n\nexport { aliases, mdi }\n","import { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\nimport { defaultSets, IconSymbol } from '@/composables/icons'\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createLocaleAdapter, LocaleAdapterSymbol } from '@/composables/locale'\nimport { createRtl, RtlSymbol } from '@/composables/rtl'\nimport { aliases as iconAliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { reactive } from 'vue'\nimport { defineComponent, mergeDeep } from '@/util'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { ThemeOptions } from '@/composables/theme'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleAdapter, LocaleOptions } from '@/composables/locale'\nimport type { RtlOptions } from '@/composables/rtl'\nimport type { DefaultsOptions } from '@/composables/defaults'\n\nexport * from './composables'\n\nexport interface VuetifyOptions {\n aliases?: Record<string, any>\n components?: Record<string, any>\n directives?: Record<string, any>\n defaults?: DefaultsOptions\n display?: DisplayOptions\n theme?: ThemeOptions\n icons?: IconOptions\n locale?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions)\n}\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n const install = (app: App) => {\n const {\n aliases = {},\n components = {},\n directives = {},\n icons = {},\n } = options\n\n for (const key in directives) {\n app.directive(key, directives[key])\n }\n\n for (const key in components) {\n app.component(key, components[key])\n }\n\n for (const key in aliases) {\n app.component(key, defineComponent({\n ...aliases[key],\n name: key,\n }))\n }\n\n app.provide(DefaultsSymbol, createDefaults(options.defaults))\n app.provide(DisplaySymbol, createDisplay(options.display))\n app.provide(ThemeSymbol, createTheme(app, options.theme))\n app.provide(IconSymbol, mergeDeep({\n defaultSet: 'mdi',\n sets: {\n ...defaultSets,\n mdi,\n },\n aliases: iconAliases,\n }, icons))\n const { adapter, rootInstance } = createLocaleAdapter(app, options?.locale)\n app.provide(LocaleAdapterSymbol, adapter)\n app.provide(RtlSymbol, createRtl(rootInstance, options?.locale))\n\n // Vue's inject() can only be used in setup\n function inject (this: ComponentPublicInstance, key: InjectionKey<any> | string) {\n const vm = this.$\n\n const provides = vm.parent?.provides ?? vm.vnode.appContext?.provides\n\n if (provides && (key as any) in provides) {\n return provides[(key as string)]\n }\n }\n\n app.mixin({\n computed: {\n $vuetify () {\n return reactive({\n defaults: inject.call(this, DefaultsSymbol),\n display: inject.call(this, DisplaySymbol),\n theme: inject.call(this, ThemeSymbol),\n icons: inject.call(this, IconSymbol),\n locale: inject.call(this, LocaleAdapterSymbol),\n rtl: inject.call(this, RtlSymbol),\n })\n },\n },\n })\n }\n\n return { install }\n}\n","import './styles/main.sass'\nimport * as components from './components'\nimport * as directives from './directives'\nimport { createVuetify as _createVuetify } from './framework'\nimport type { VuetifyOptions } from './framework'\n\nexport const createVuetify = (options: VuetifyOptions = {}) => {\n return _createVuetify({ components, directives, ...options })\n}\n\nexport const version = __VUETIFY_VERSION__\n\nexport {\n components,\n directives,\n}\nexport * from './composables'\n"],"names":["Box","constructor","_ref","x","y","width","height","top","this","bottom","left","right","nullifyTransforms","el","rect","getBoundingClientRect","style","getComputedStyle","tx","transform","ta","sx","sy","dx","dy","startsWith","slice","split","to","transformOrigin","parseFloat","indexOf","w","offsetWidth","h","offsetHeight","createMessage","message","vm","parent","_isVue","$parent","$options","$_alreadyWarned","includes","push","tree","currentRecursiveSequence","length","last","map","i","repeat","Array","isArray","formatComponentName","join","generateComponentTrace","consoleWarn","newMessage","console","warn","consoleError","error","classifyRE","includeFile","$root","options","cid","name","_componentTag","file","__file","match","str","replace","c","toUpperCase","getNestedValue","obj","path","fallback","undefined","deepEqual","a","b","Date","getTime","Object","props","keys","every","p","getObjectValueByPath","getPropertyFromItem","item","property","value","createRange","start","from","v","k","convertToUnit","unit","isNaN","String","isFinite","Number","isObject","keyCodes","freeze","enter","tab","delete","esc","space","up","down","end","home","del","backspace","insert","pageup","pagedown","shift","keyValues","o","pick","paths","found","create","rest","key","some","RegExp","test","filterInputAttrs","attrs","wrapInArray","clamp","min","max","Math","padEnd","char","humanReadableFileSize","bytes","base","prefix","abs","toFixed","mergeDeep","source","target","arrayFn","arguments","out","sourceProperty","targetProperty","getUid","_uid","flattenFragments","nodes","node","type","Fragment","children","flat","toKebabCase","toLowerCase","findChildrenWithProvide","vnode","child","component","getOwnPropertySymbols","provides","subTree","CircularBuffer","size","_classPrivateFieldInitSpec","_arr","writable","_pointer","val","_classPrivateFieldGet","_classPrivateFieldSet","values","concat","srgbForwardMatrix","srgbForwardTransform","C","srgbReverseMatrix","srgbReverseTransform","fromXYZ","xyz","rgb","matrix","round","toXYZ","r","g","delta","cielabForwardTransform","t","cbrt","cielabReverseTransform","transformedY","lab","Ln","isCssColor","color","colorToInt","TypeError","substring","parseInt","intToHex","hexColor","toString","HSVAtoRGBA","hsva","s","f","n","RGBAtoHSVA","rgba","hsv","HSVAtoHSLA","l","HSLAtoHSVA","hsl","HSVAtoCSS","RGBAtoCSS","HexToHSVA","hex","chunked","index","substr","chunk","HexToRGBA","HSVAtoHex","toHex","RGBAtoHex","colorToRGB","int","lighten","amount","CIELAB","sRGB","darken","getLuma","getContrast","first","second","l1","l2","DefaultsSymbol","Symbol","for","createDefaults","ref","useDefaults","defaults","inject","Error","provideDefaults","injectedDefaults","providedDefaults","newDefaults","computed","scoped","unref","reset","root","properties","prev","len","Infinity","provide","propIsDefined","prop","_vnode$props","_vnode$props2","hasOwnProperty","defineComponent","_options$_setup","_options$props","_setup","setup","_as","ctx","getCurrentInstance","_subcomponentDefaults","shallowRef","_props","shallowReactive","toRaw","watchEffect","_props$_as","globalDefaults","global","componentDefaults","subComponents","entries","filter","fromEntries","newVal","_ref2","_componentDefaults$pr","setupBindings","scope","watch","oldVal","stop","effectScope","run","immediate","genericComponent","exposeDefaults","_defineComponent","createSimpleFunctional","klass","tag","capitalize","camelize","default","slots","_slots$default","class","attachedRoot","getRootNode","parentNode","document","composed","standardEasing","_getCurrentInstance","getCurrentInstanceName","_getCurrentInstance$t","getScrollParent","hasScrollbar","parentElement","scrollingElement","getScrollParents","elements","nodeType","Node","ELEMENT_NODE","window","overflowY","scrollHeight","clientHeight","IS_NODE","process","IN_BROWSER","env","DEBUG","NODE_ENV","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","navigator","maxTouchPoints","SUPPORTS_FOCUS_VISIBLE","CSS","supports","propsFactory","reduce","isObjectDefinition","definition","useRender","render","mainTRC","Rco","Gco","Bco","blkThrs","loConFactor","loConOffset","APCAcontrast","text","background","outputContrast","Ytxt","Ybg","SAPC","ThemeSymbol","makeThemeProps","theme","defaultThemeOptions","defaultTheme","variations","colors","themes","light","dark","surface","primary","secondary","info","success","warning","variables","createTheme","app","head","_context","usehead","parsedOptions","_options$themes","isDisabled","_defaultThemeOptions$","_defaultThemeOptions$2","parseThemeOptions","styleEl","current","computedThemes","_parsedOptions$variat","original","genColorVariations","onColor","colorVal","blackContrast","whiteContrast","variation","fn","styles","lines","themeName","createCssClass","genCssVariables","Set","flatMap","lightOverlay","darkOverlay","selector","content","line","addHeadObjs","id","updateDOM","updateStyles","genStyleElement","innerHTML","createElement","appendChild","deep","setTheme","getTheme","themeClasses","provideTheme","_props$theme","newTheme","useTheme","useResizeObserver","callback","resizeRef","contentRect","observer","ResizeObserver","onBeforeUnmount","disconnect","newValue","oldValue","unobserve","observe","flush","readonly","VuetifyLayoutKey","VuetifyLayoutItemKey","ROOT_ZINDEX","makeLayoutProps","overlaps","fullHeight","Boolean","makeLayoutItemProps","priority","absolute","useLayout","layout","useLayoutItem","_options$id","isKeptAlive","onDeactivated","onActivated","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","createLayout","parentLayout","rootZIndex","registered","positions","reactive","Map","layoutSizes","priorities","activeItems","disabledTransitions","computedOverlaps","_props$overlaps","overlap","topPosition","get","bottomPosition","topAmount","bottomAmount","set","position","layers","uniquePriorities","sort","items","_priorities$get","generateLayers","previousLayer","layer","transitionsEnabled","mainStyles","paddingLeft","paddingRight","paddingTop","paddingBottom","transition","getLayoutItem","find","rootVm","isMounted","onMounted","layoutSize","elementSize","disableTransitions","instances","instanceIndex","splice","findIndex","zIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","marginLeft","marginRight","marginTop","marginBottom","layoutClasses","layoutStyles","layoutRef","en","badge","close","dataIterator","noResultsText","loadingText","dataTable","itemsPerPageText","ariaLabel","sortDescending","sortAscending","sortNone","activateNone","activateDescending","activateAscending","sortBy","dataFooter","itemsPerPageAll","nextPage","prevPage","firstPage","lastPage","pageText","datePicker","itemsSelected","nextMonthAriaLabel","nextYearAriaLabel","prevMonthAriaLabel","prevYearAriaLabel","noDataText","carousel","next","delimiter","calendar","moreEvents","fileInput","counter","counterSize","timePicker","am","pm","pagination","previous","page","currentPage","rating","rtl","af","ar","bg","ca","ckb","cs","de","es","et","fa","fi","fr","hr","hu","he","it","ja","ko","lv","lt","nl","no","pl","pt","ro","ru","sk","sl","srCyrl","srLatn","sv","th","tr","az","uk","vi","zhHans","zhHant","RtlSymbol","createRtl","localeScope","_options$rtl","_options$defaultRtl","createRtlScope","isRtl","defaultRtl","rtlClasses","currentScope","provideRtl","newScope","useRtl","VApp","_createVNode","createVNode","call","VDefaultsProvider","toRefs","makeDimensionProps","maxHeight","maxWidth","minHeight","minWidth","useDimension","dimensionStyles","VResponsive","aspectRatio","contentClass","aspectStyles","ratio","useAspectStyles","_slots$additional","additional","unmounted","binding","_el$_observe2","_observe","instance","$","uid","Intersect","mounted","modifiers","handler","IntersectionObserver","_el$_observe","isIntersecting","entry","quiet","init","once","makeTransitionProps","validator","MaybeTransition","Transition","customProps","mergeProps","VImg","directives","intersect","alt","cover","eager","gradient","lazySrc","rootMargin","threshold","sizes","src","srcset","emits","emit","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","lazyImg","Image","pollForSize","nextTick","_image$value","_image$value2","complete","onError","onLoad","getSrc","_image$value3","_image$value4","img","timeout","poll","imgHeight","imgWidth","endsWith","setTimeout","onBeforeMount","containClasses","__image","_slots$sources","sources","appear","withDirectives","vShow","__preloadImage","__placeholder","placeholder","__error","__gradient","backgroundImage","isBooted","requestAnimationFrame","_withDirectives","role","_resolveDirective","makeTagProps","VToolbarTitle","hasText","makeBorderProps","border","useBorder","borderClasses","classes","makeElevationProps","elevation","useElevation","elevationClasses","isRef","makeRoundedProps","rounded","useRounded","roundedClasses","useColor","backgroundIsCssColor","textIsCssColor","colorClasses","colorStyles","backgroundColor","caretColor","useTextColor","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","useForwardRef","_len","refs","_key","Proxy","Reflect","has","bind","getOwnPropertyDescriptor","descriptor","getPrototypeOf","allowedDensities","makeVToolbarProps","collapse","density","extended","extensionHeight","floating","title","VToolbar","toRef","isExtended","extension","contentHeight","VBtn","variant","_slots$image","_slots$prepend","_slots$append","_slots$extension","hasTitle","hasImage","prepend","append","useProxiedModel","defaultValue","transformIn","transformOut","_vm$vnode$props","_vm$vnode$props2","internal","VAppBar","modelValue","vToolbarRef","isActive","_vToolbarRef$value$co","_vToolbarRef$value","_vToolbarRef$value$ex","_vToolbarRef$value2","toolbarProps","_VToolbar$props","filterToolbarProps","_mergeProps","makeDensityProps","useDensity","densityClasses","allowedVariants","genOverlays","isClickable","_Fragment","makeVariantProps","useVariant","variantClasses","VBtnGroup","divided","makeGroupProps","multiple","mandatory","selectedClass","disabled","makeGroupItemProps","useGroupItem","injectKey","required","description","group","isSelected","toggle","select","useGroup","isUnmounted","selected","getIds","arr","ids","getValues","groupVm","forceMandatoryValue","step","offset","currentId","currentIndex","newIndex","newItem","unwrapped","_value","internalValue","_value2","getItemIndex","VBtnToggleSymbol","VBtnToggle","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","IconSymbol","makeIconProps","icon","VComponentIcon","VSvgIcon","inheritAttrs","xmlns","viewBox","d","VLigatureIcon","VClassIcon","defaultSets","svg","makeVIconProps","VIcon","slotIcon","_flattenFragments$fil","slot","iconData","icons","iconAlias","_icons$aliases","aliases","iconSetName","sets","setName","iconName","defaultSet","useIcon","onClick","fontSize","positionValues","makePositionProps","fixed","usePosition","targets","positionClasses","positionStyles","useRouter","_getCurrentInstance$p","proxy","$router","useLink","RouterLink","resolveDynamicComponent","isLink","href","onClickOnce","link","route","makeRouterProps","inTransition","stopSymbol","webkitTransform","opacity","isTouchEvent","e","isKeyboardEvent","ripples","show","_el$_ripple2","_ripple","enabled","container","animation","className","radius","scale","centerX","centerY","_el$_ripple","localX","localY","touches","clientX","clientY","circle","clientWidth","center","sqrt","calculate","dataset","previousPosition","classList","add","activated","performance","now","remove","hide","_el$_ripple3","getElementsByClassName","isHiding","diff","delay","removeChild","isRippleEnabled","rippleShow","element","currentTarget","touched","isTouch","centered","showTimerCommit","showTimer","_element$_ripple","rippleStop","rippleHide","clearTimeout","rippleCancelShow","keyboardRipple","keyboardRippleShow","keyCode","keyboardRippleHide","focusRippleHide","updateRipple","wasEnabled","_el$_ripple4","addEventListener","passive","removeListeners","removeEventListener","Ripple","updated","symbol","prependIcon","appendIcon","block","stacked","ripple","isElevated","_link$isExactActive","isExactActive","useSelectLink","Tag","hasColor","_link$navigate","navigate","VAppBarNavIcon","VToolbarItems","VAppBarTitle","_","VAlertTitle","allowedTypes","VAlert","borderColor","closable","closeIcon","closeLabel","prominent","_props$icon","variantProps","_props$color","onCloseClick","hasPrepend","hasClose","makeVAvatarProps","VAvatar","VChipGroupSymbol","VChipGroup","column","valueComparator","Function","VChip","createCssTransition","origin","mode","hideOnLeave","leaveAbsolute","TransitionGroup","onBeforeEnter","onLeave","offsetTop","offsetLeft","_transitionInitialStyles","setProperty","onAfterLeave","createJavascriptTransition","functions","ExpandTransitionGenerator","expandedParentClass","sizeProperty","offsetProperty","_parent","_initialStyle","overflow","onEnter","initialStyle","onAfterEnter","resetStyles","onEnterCancelled","onLeaveCancelled","VDialogTransition","pointerEvents","done","Promise","resolve","getDimensions","animate","duration","easing","finished","then","removeProperty","onBeforeLeave","css","targetBox","elBox","originX","originY","anchorSide","anchorOffset","getPropertyValue","offsetX","offsetY","VCarouselTransition","VCarouselReverseTransition","VTabTransition","VTabReverseTransition","VMenuTransition","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","VExpandXTransition","activeClass","appendAvatar","draggable","filterIcon","label","pill","prependAvatar","_slots$default2","hasAppend","hasFilter","onClickFunc","resolveDirective","VDivider","inset","thickness","vertical","dividerStyles","ListKey","createList","updateHasPrepend","data","useList","singleOpenStrategy","open","opened","parents","newOpened","multipleOpenStrategy","listOpenStrategy","_ref3","independentSelectStrategy","strategy","on","in","independentSingleSelectStrategy","parentStrategy","singleSelected","VNestedSymbol","emptyNested","selectedValues","makeNestedProps","selectStrategy","openStrategy","useNested","_ref5","leafSingleSelectStrategy","_ref4","leafSelectStrategy","_ref6","childrenIds","everySelected","noneSelected","_ref7","classicSelectStrategy","getPath","unshift","nested","parentId","isGroup","_children$value$get","list","event","newSelected","useNestedItem","computedId","_id$value","isOpen","isIndeterminate","isLeaf","isGroupActivator","VListGroupActivator","useNestedGroupActivator","VListGroup","activeColor","collapseIcon","expandIcon","activatorProps","_props$activeColor","activator","VListItemIcon","_vShow","VListItemAvatar","VListItemHeader","VListItemSubtitle","VListItemTitle","VListItem","nav","subtitle","_props$value","roundedProps","_link$isExactActive2","_link$isExactActive3","lineClasses","slotProps","hasSubtitle","hasHeader","tabindex","VListSubheader","sticky","VListChildren","_props$items","itemProps","header","parseItems","$type","$children","VList","bgColor","VListImg","VListItemAction","VListItemMedia","makeDelayProps","closeDelay","openDelay","useDelay","cb","delays","runDelayFactory","_props$prop","runCloseDelay","runOpenDelay","VMenuSymbol","makeActivatorProps","openOnClick","openOnHover","openOnFocus","closeOnContentClick","useActivator","isTop","activatorEl","isHovered","isFocused","availableEvents","stopPropagation","matches","activatorEvents","events","click","mouseenter","mouseleave","focus","blur","contentEvents","menu","closeParents","activatorRef","$el","bindActivatorProps","getActivator","forEach","removeAttribute","setAttribute","unbindActivatorProps","_activator","_vm$proxy","_vm$proxy$$el","querySelector","onScopeDispose","_useActivator","parseAnchor","anchor","side","align","oppositeAnchor","physicalAnchor","_map$side","_map$align","direction","elementToViewport","point","anchorToPoint","box","positionStrategies","static","connected","contentStyles","activatorFixed","offsetParent","isFixedPosition","assign","preferredAnchor","preferredOrigin","doesOverlap","configuredMaxHeight","configuredMinWidth","updatePosition","contentEl","_props$maxWidth","scrollParent","viewportWidth","viewportHeight","innerHeight","contentBox","scrollables","querySelectorAll","scrollLeft","scrollTop","initialMaxWidth","initialMaxHeight","scrollTo","maxFreeSpaceWidth","MAX_VALUE","freeSpace","fitsY","viewportMargin","floor","targetPoint","contentPoint","makePositionStrategyProps","positionStrategy","clean","frames","raf","cancelAnimationFrame","frame","scrollStrategies","none","_data$activatorEl$val","bindScroll","onScroll","_data$root$value","scrollElements","contains","scrollbarWidth","innerWidth","documentElement","scrollableParent","reposition","_data$activatorEl$val2","slow","update","_data$updatePosition$","_data$updatePosition","time","makeScrollStrategyProps","scrollStrategy","useTeleport","teleportTarget","_target","targetElement","body","cache","WeakMap","makeLazyProps","useLazy","hasContent","stack","defaultConditional","checkEvent","checkIsActive","ShadowRoot","host","include","closeConditional","handleShadow","ClickOutside","_clickOutside","lastMousedownWasOutside","directive","onMousedown","_el$_clickOutside","Scrim","VOverlay","attach","contained","noClickAnimation","persistent","scrim","afterLeave","scrimColor","_scope","idx","_isTop","useStack","onResize","_updatePosition$value","async","_props$positionStrate","_positionStrategies$p","_scope2","usePositionStrategies","onClickOutside","animateClick","onKeydown","_scrollStrategies$pro","useScrollStrategies","router","popped","removeBefore","removeAfter","onPopstate","_e$state","replaced","beforeEach","afterEach","_removeBefore","_removeAfter","useBackButton","_contentEl$value","_slots$activator","toHandlers","Teleport","persisted","VMenu","overlay","openChildren","$event","VMessages","messages","FormKey","makeFormProps","fastFail","lazyValidation","useForm","makeValidationProps","errorMessages","maxErrors","rules","useValidation","model","form","internalErrorMessages","isPristine","isDirty","isReadonly","isValid","isValidating","validationClasses","_props$name","resetValidation","validate","results","rule","result","makeVInputProps","hideDetails","VInput","_props$messages","_slots$details","hasMessages","hasDetails","details","filterInputProps","VLabel","VFieldLabel","useIntersectionObserver","intersectionRef","VProgressLinear","bgOpacity","bufferValue","clickable","indeterminate","reverse","stream","striped","roundedBar","progress","barColorClasses","barColorStyles","normalizedBuffer","normalizedValue","isReversed","handleClick","borderTop","bar","buffer","makeLoaderProps","loading","useLoader","loaderClasses","LoaderSlot","makeFocusProps","focused","useFocus","focusClasses","makeVFieldProps","appendInnerIcon","clearable","clearIcon","dirty","persistentClear","prependInnerIcon","singleLine","VField","hasLabel","labelRef","floatingLabelRef","controlRef","targetEl","targetRect","targetWidth","transitionDuration","visibility","activeElement","preventDefault","_slots$prependInner","_slots$appendInner","isOutlined","prependInner","hasClear","clear","appendInner","loader","filterFieldProps","VCounter","functional","activeTypes","VTextField","autofocus","counterValue","hint","persistentHint","persistentPlaceholder","persistentCounter","suffix","_model$value","maxlength","onIntersect","_entries$0$target","_entries$0$target$foc","vInputRef","vFieldRef","inputRef","onFocus","_inputRef$value","onControlClick","onClear","hasCounter","rootAttrs","inputAttrs","inputProps","fieldProps","fieldClass","onBlur","makeItemsProps","itemTitle","itemValue","itemChildren","transformItem","_props$itemProps","transformItems","array","useItems","LocaleAdapterSymbol","VuetifyLocaleSymbol","useLocale","adapter","getScope","createLocaleAdapter","createScope","createTranslateFunction","createNumberFunction","createRoot","_options$defaultLocal","_options$fallbackLoca","_options$messages","rootScope","defaultLocale","fallbackLocale","_options$locale","locale","_options$locale2","_options$messages2","createDefaultLocaleAdapter","rootInstance","LANG_PREFIX","params","shortKey","currentLocale","Intl","NumberFormat","format","makeSelectProps","chips","closableChips","hideNoData","hideSelected","menuIcon","openOnClear","VSelect","vTextFieldRef","selections","selection","onClickControl","hasChips","chip","_slots$noData","_slots$noData2","onChipClose","_createTextVNode","createTextVNode","defaultFilter","query","toLocaleLowerCase","makeFilterProps","customFilter","customKeyFilter","filterKeys","filterMode","noFilter","useFilter","strQuery","filteredItems","_options$default","_options$customKeyFil","customFiltersLength","loop","customMatches","defaultMatches","_options$customKeyFil2","keyFilter","defaultMatchesLength","customMatchesLength","filterItems","VAutocomplete","search","onInput","isSelecting","_search$value$length","_search$value","highlightResult","VBadge","bordered","dot","inline","location","horizontal","textColor","calculatePosition","locationStyles","_props$location","_ctx$slots$default","_ctx$slots","_ctx$slots$badge","_ctx$slots2","badgeAttrs","VBannerActions","VBannerAvatar","VBannerIcon","VBannerText","DisplaySymbol","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","getClientWidth","getClientHeight","createDisplay","parseDisplayOptions","platform","userAgent","regexp","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","ssr","touch","getPlatform","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","useDisplay","display","VBanner","avatar","actions","VBottomNavigation","grow","VBreadcrumbsItem","VBreadcrumbsDivider","VBreadcrumbs","divider","_slots$divider","_slots$divider2","_slots$text","VCardActions","VCardAvatar","VCardContent","VCardHeader","VCardHeaderText","VCardImg","VCardSubtitle","VCardText","VCardTitle","VCard","hover","_slots$media","_slots$headerText","hasHeaderText","media","headerText","touchstart","wrapper","_wrapper$start","changedTouches","touchstartX","touchstartY","originalEvent","touchend","_wrapper$end","touchendX","touchendY","handleGesture","touchmove","_wrapper$move","touchmoveX","touchmoveY","move","Touch","_value$options","_binding$instance","_target$_touchHandler","handlers","createHandlers","_touchHandlers","eventName","_binding$value","_binding$instance2","VWindowSymbol","VWindowGroupSymbol","VWindow","continuous","nextIcon","prevIcon","showArrows","rootRef","isRtlReverse","transitionCount","transitionHeight","activeIndex","itemsLength","lastIndex","canMoveBack","canMoveForward","arrows","prevProps","nextProps","touchOptions","VWindowItem","reverseTransition","groupItem","isTransitioning","hasTransition","onAfterTransition","onBeforeTransition","_window$rootRef$value","onTransitionCancelled","onEnterTransition","VCarousel","cycle","delimiterIcon","hideDelimiters","hideDelimiterBackground","interval","verticalDelimiters","windowRef","slideTimeout","startTimeout","restartTimeout","VCarouselItem","VSelectionControlGroupSymbol","VSelectionControlGroup","falseIcon","trueIcon","makeSelectionControlProps","trueValue","falseValue","VSelectionControl","isMultiple","currentValue","_group$trueIcon$value","_group$falseIcon$valu","useSelectionControl","isFocusVisible","input","_group$type$value","_group$name$value","_slots$input","_vModelDynamic","filterControlProps","VCheckbox","indeterminateIcon","onChange","controlAttrs","_1","controlProps","_2","VCode","VSheet","VSliderSymbol","getOffset","makeSliderProps","thumbColor","thumbLabel","thumbSize","showTicks","ticks","tickSize","trackColor","trackFillColor","trackSize","useSlider","handleSliderMouseUp","handleMouseMove","getActiveThumb","horizontalDirection","hd","decimals","trimmedStep","trim","numTicks","_props$thumbColor","_props$trackColor","_props$trackFillColor","mousePressed","startOffset","trackContainerRef","activeThumbRef","roundValue","clamped","parseMouseMove","_trackContainerRef$va","trackStart","trackLength","clickOffset","getPosition","clickPos","thumbMoved","handleStop","handleStart","moveListenerOptions","capture","onMouseMove","onSliderMouseUp","onSliderTouchend","percentage","parsedTicks","hasLabels","onSliderMousedown","onSliderTouchstart","VSliderThumb","slider","relevantKeys","multipliers","_step","steps","multiplier","shiftKey","ctrlKey","parseKeydown","_slots$thumbLabel","_slots$thumbLabel2","positionPercentage","VSliderTrack","trackFillColorClasses","trackFillColorStyles","trackColorClasses","trackColorStyles","startDir","endDir","backgroundStyles","trackFillWidth","trackFillStyles","computedTicks","tick","_slots$tickLabel","_slots$tickLabel2","directionProperty","VSlider","thumbContainerRef","_thumbContainerRef$va","trackStop","onTouchstartPassive","parseColor","_hsva$a","parseHex","nullColor","inputs","getValue","getColor","hsla","hexa","modes","_rgba$inputs","VColorPickerPreview","hideAlpha","_props$color2","_props$color4","_props$color3","_props$color5","VColorPickerCanvas","dotSize","hue","isInteracting","isOutsideUpdate","dotPosition","dotStyles","canvasRef","updateDotPosition","handleMouseDown","handleMouseUp","coords","getEventCoordinates","updateCanvas","_props$color$h2","canvas","getContext","saturationGradient","createLinearGradient","addColorStop","fillStyle","fillRect","valueGradient","_props$color$h","_props$color$a","VColorPickerInput","VColorPickerEdit","m","enabledModes","_mode$inputs","_inputs$value","mi","red","lighten5","lighten4","lighten3","lighten2","lighten1","darken1","darken2","darken3","darken4","accent1","accent2","accent3","accent4","pink","purple","deepPurple","indigo","blue","lightBlue","cyan","teal","green","lightGreen","lime","yellow","amber","orange","deepOrange","brown","blueGrey","grey","shades","black","white","transparent","VColorPickerSwatches","swatches","parseDefaultColors","swatch","VColorPicker","canvasHeight","hideCanvas","hideSliders","hideInputs","showSwatches","swatchesMaxHeight","lastPickedColor","currentColor","converted","stripAlpha","extractColor","updateColor","_currentColor$value","VCombobox","delimiters","selectionIndex","_vTextFieldRef$value","_search","_props$delimiters","selectionStart","setSelectionRange","VDialog","fullscreen","retainFocus","scrollable","onFocusin","_overlay$value","_overlay$value2","before","relatedTarget","after","focusable","hasAttribute","firstElement","lastElement","_contentEl","_activatorEl","preventScroll","VExpansionPanelSymbol","VExpansionPanels","variantClass","VExpansionPanel","VExpansionPanelTitle","makeVExpansionPanelTitleProps","hideActions","expansionPanel","expanded","VExpansionPanelText","selectedIndices","isBeforeSelected","selectedIndex","isAfterSelected","VFileInput","counterSizeString","counterString","showSize","files","totalBytes","totalBytesReadable","fileNames","_model$value2","_model$value$length","_model$value3","fileCount","_inputRef$value2","_target$files","VFooter","autoHeight","VForm","submit","valid","itemErrorMessages","createForm","formRef","onReset","onSubmit","_e","ready","catch","finally","defaultPrevented","_formRef$value","novalidate","VContainer","fluid","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","VCol","cols","alignSelf","hasColClasses","ALIGNMENT","makeRowProps","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","justify","alignContent","classMap","VRow","dense","noGutters","VSpacer","VHover","isHovering","onMouseenter","onMouseleave","VItemGroupSymbol","VItemGroup","VItem","VKbd","VLayout","VLayoutItem","VLazy","VLocaleProvider","localeInstance","provideLocale","VMain","ssrBootStyles","useSsrBoot","kineticEnergyToVelocity","work","calculateImpulseVelocity","samples","vprev","vcurr","useVelocity","addMovement","_touches$touch$identi","identifier","timeStamp","endTouch","getVelocity","_touches$id","newest","absX","absY","oops","VNavigationDrawer","disableResizeWatcher","disableRouteWatcher","expandOnHover","permanent","rail","railWidth","temporary","touchless","isTemporary","currentRoute","rootEl","isDragging","dragProgress","dragStyles","onTouchstart","onTouchmove","onTouchend","maybeDragging","pos","getProgress","limit","touchX","touchY","inTouchZone","inElement","cancelable","velocity","vx","vy","thresholdMet","useTouch","scrimStyles","VNoSsr","_vm$root","_vm$root$appContext","_vm$root$appContext$a","appContext","_container","__vue_app__","useHydration","VPagination","totalVisible","firstIcon","lastIcon","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","maxButtons","firstItem","totalWidth","itemWidth","_props$totalVisible","range","even","middle","rangeLength","rangeStart","ceil","setValue","updateRef","onBeforeUpdate","useRefs","ariaCurrent","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","_refs$value$currentIn","VParallax","_root$value","_scrollParent","_root$value2","_scrollParent$clientH","_scrollParent$scrollT","scrollPos","scrollY","translate","sign","onLoadstart","VProgressCircular","rotate","MAGIC_RADIUS_CONSTANT","CIRCUMFERENCE","PI","underlayColorClasses","underlayColorStyles","diameter","strokeWidth","strokeDashOffset","fill","cx","cy","VRadio","VRadioGroup","VRangeSlider","strict","startThumbRef","stopThumbRef","_startThumbRef$value","_startThumbRef$value3","_stopThumbRef$value","_startThumbRef$value2","_activeThumbRef$value","stopOffset","_startThumbRef$value4","_stopThumbRef$value4","_startThumbRef$value5","_stopThumbRef$value2","_startThumbRef$value6","_stopThumbRef$value3","_stopThumbRef$value5","_startThumbRef$value7","_stopThumbRef$value6","_startThumbRef$value8","VRating","itemAriaLabel","emptyIcon","fullIcon","halfIncrements","itemLabels","itemLabelPosition","increments","hoverIndex","focusIndex","firstRef","isClicking","itemState","isFilled","eventState","_firstRef$value","onMouseup","VRatingItem","_itemState$value$inde","_itemState$value$inde2","showStar","btnProps","checked","createLabel","labelProps","_props$itemLabels","_props$itemLabels2","_props$itemLabels3","bias","calculateUpdatedOffset","selectedElement","containerSize","contentSize","currentScrollOffset","clientSize","offsetStart","adjustedOffsetStart","totalSize","itemOffset","additionalOffset","calculateCenteredOffset","offsetCentered","VSlideGroupSymbol","VSlideGroup","centerActive","isOverflowing","scrollOffset","containerRef","containerRect","contentRef","firstSelectedIndex","lastSelectedIndex","firstOverflow","disableTransition","startTouch","maxScrollOffset","composedPath","onFocusout","_contentRef$value","_contentRef$value$que","nextElementSibling","_contentRef$value$que2","previousElementSibling","_contentRef$value$fir","firstElementChild","_contentRef$value$las","lastElementChild","_focusable$","newAbosluteOffset","scrollAmount","willChange","hasAffixes","hasPrev","hasNext","_slots$prev","_slots$prev2","_slots$next","_slots$next2","onTouchmovePassive","onTouchendPassive","VSlideGroupItem","slideGroupItem","VSnackbar","multiLine","activeTimeout","onPointerenter","_slots$actions","VSwitch","loaderColor","control","_control$value","_control$value$input","VSystemBar","_props$height","VTabsSymbol","VTab","sliderColor","hideSlider","sliderColorClasses","sliderColorStyles","sliderEl","updateSlider","_rootEl$value","_rootEl$value$$el$par","prevEl","nextEl","prevBox","nextBox","xy","XY","rightBottom","widthHeight","initialScale","sigma","VTabs","alignWithTitle","fixedTabs","optional","parsedItems","VTable","fixedHeader","fixedFooter","_slots$top","_slots$bottom","VTextarea","autoGrow","noResize","rows","maxRows","controlHeight","textareaRef","_textareaRef$value","sizerRef","calculateInputHeight","padding","lineHeight","_observer","_observer2","_vModelText","VThemeProvider","withBackground","VTimelineSymbol","VTimeline","lineInset","lineThickness","lineColor","truncateLine","sideClass","truncateClasses","VTimelineDivider","hideDot","iconColor","fillDot","dotColor","timeline","lineColorStyles","lineColorClasses","VTimelineItem","hideOpposite","dotRef","_newValue$$el$querySe","_newValue$$el$querySe2","_slots$opposite","opposite","VTooltip","args","VValidation","validation","_el$_mutate","_mutate","Mutate","_modifierKeys$attr","_modifierKeys$char","_modifierKeys$child","_modifierKeys$sub","modifierKeys","attributes","attr","characterData","childList","subtree","sub","MutationObserver","mutations","Resize","_binding$modifiers","_binding$modifiers2","_onResize","_el$_onResize","self","arg","_onScroll","_el$_onScroll","Scroll","cancel","checkboxOn","checkboxOff","checkboxIndeterminate","expand","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","unfold","plus","minus","mdi","createVuetify","install","components","iconAliases","_vm$parent$provides","_vm$parent","_vm$vnode$appContext","mixin","$vuetify","_createVuetify"],"mappings":"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"}
|