@vuetify/nightly 3.0.0-alpha.8 → 3.0.0-beta.3
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 +2 -19
- package/dist/json/attributes.json +5306 -0
- package/dist/json/importMap.json +585 -0
- package/dist/json/tags.json +1915 -0
- package/dist/json/web-types.json +18340 -0
- package/dist/vuetify.css +8356 -6759
- package/dist/vuetify.d.ts +16339 -41
- package/dist/vuetify.esm.js +17920 -0
- package/dist/vuetify.esm.js.map +1 -0
- package/dist/vuetify.js +16431 -14286
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +6 -4
- package/dist/vuetify.min.js +1492 -9104
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/VAlert.css +214 -0
- package/lib/components/VAlert/VAlert.mjs +85 -77
- package/lib/components/VAlert/VAlert.mjs.map +1 -1
- package/lib/components/VAlert/VAlert.sass +82 -86
- package/lib/components/VAlert/VAlertTitle.mjs +4 -0
- package/lib/components/VAlert/VAlertTitle.mjs.map +1 -0
- package/lib/components/VAlert/_variables.scss +33 -37
- package/lib/components/VAlert/index.mjs +2 -1
- package/lib/components/VAlert/index.mjs.map +1 -1
- package/lib/components/VApp/VApp.css +29 -0
- package/lib/components/VApp/VApp.mjs +26 -17
- package/lib/components/VApp/VApp.mjs.map +1 -1
- package/lib/components/VApp/VApp.sass +1 -3
- 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 +47 -102
- package/lib/components/VAppBar/VAppBar.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBar.sass +7 -93
- package/lib/components/VAppBar/VAppBarNavIcon.mjs +13 -11
- package/lib/components/VAppBar/VAppBarNavIcon.mjs.map +1 -1
- package/lib/components/VAppBar/VAppBarTitle.mjs +13 -21
- package/lib/components/VAppBar/VAppBarTitle.mjs.map +1 -1
- package/lib/components/VAppBar/_variables.scss +12 -8
- package/lib/components/VAppBar/index.mjs +3 -3
- package/lib/components/VAppBar/index.mjs.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.css +57 -0
- package/lib/components/VAutocomplete/VAutocomplete.mjs +231 -358
- 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 +34 -31
- package/lib/components/VAvatar/VAvatar.mjs.map +1 -1
- package/lib/components/VAvatar/VAvatar.sass +7 -22
- package/lib/components/VAvatar/_mixins.scss +10 -4
- package/lib/components/VAvatar/_variables.scss +16 -5
- package/lib/components/VAvatar/index.mjs +1 -1
- package/lib/components/VAvatar/index.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.css +71 -0
- package/lib/components/VBadge/VBadge.mjs +38 -56
- package/lib/components/VBadge/VBadge.mjs.map +1 -1
- package/lib/components/VBadge/VBadge.sass +6 -10
- package/lib/components/VBadge/_variables.scss +7 -7
- 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 +69 -61
- package/lib/components/VBanner/VBanner.mjs.map +1 -1
- package/lib/components/VBanner/VBanner.sass +69 -73
- package/lib/components/VBanner/VBannerActions.mjs +34 -2
- package/lib/components/VBanner/VBannerActions.mjs.map +1 -1
- package/lib/components/VBanner/VBannerAvatar.mjs +13 -22
- package/lib/components/VBanner/VBannerAvatar.mjs.map +1 -1
- package/lib/components/VBanner/VBannerIcon.mjs +20 -0
- package/lib/components/VBanner/VBannerIcon.mjs.map +1 -0
- package/lib/components/VBanner/VBannerText.mjs +1 -1
- package/lib/components/VBanner/VBannerText.mjs.map +1 -1
- package/lib/components/VBanner/_variables.scss +20 -24
- package/lib/components/VBanner/index.mjs +5 -5
- package/lib/components/VBanner/index.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.css +61 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs +53 -34
- package/lib/components/VBottomNavigation/VBottomNavigation.mjs.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.sass +50 -12
- package/lib/components/VBottomNavigation/_variables.scss +25 -5
- package/lib/components/VBottomNavigation/index.mjs +1 -1
- 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/VBottomSheet/index.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.css +48 -0
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs +59 -51
- package/lib/components/VBreadcrumbs/VBreadcrumbs.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbs.sass +5 -3
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsDivider.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs +25 -29
- package/lib/components/VBreadcrumbs/VBreadcrumbsItem.mjs.map +1 -1
- package/lib/components/VBreadcrumbs/_variables.scss +7 -4
- package/lib/components/VBreadcrumbs/index.mjs +3 -3
- 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 +328 -0
- package/lib/components/VBtn/VBtn.mjs +68 -40
- package/lib/components/VBtn/VBtn.mjs.map +1 -1
- package/lib/components/VBtn/VBtn.sass +69 -92
- package/lib/components/VBtn/_mixins.scss +14 -7
- package/lib/components/VBtn/_variables.scss +27 -45
- 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 +8 -4
- package/lib/components/VCalendar/VCalendar.mjs.map +1 -1
- package/lib/components/VCalendar/VCalendarCategory.mjs +1 -1
- 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/index.mjs.map +1 -1
- 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 +18 -12
- 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 +19 -0
- package/lib/components/VCalendar/mixins/mouse.mjs.map +1 -1
- package/lib/components/VCalendar/mixins/times.mjs.map +1 -1
- package/lib/components/VCalendar/modes/column.mjs.map +1 -1
- package/lib/components/VCalendar/modes/common.mjs +7 -3
- package/lib/components/VCalendar/modes/common.mjs.map +1 -1
- package/lib/components/VCalendar/modes/index.mjs.map +1 -1
- package/lib/components/VCalendar/modes/stack.mjs +2 -1
- package/lib/components/VCalendar/modes/stack.mjs.map +1 -1
- package/lib/components/VCalendar/util/events.mjs +3 -1
- package/lib/components/VCalendar/util/events.mjs.map +1 -1
- package/lib/components/VCalendar/util/parser.mjs.map +1 -1
- package/lib/components/VCalendar/util/props.mjs.map +1 -1
- package/lib/components/VCalendar/util/timestamp.mjs +19 -7
- package/lib/components/VCalendar/util/timestamp.mjs.map +1 -1
- package/lib/components/VCard/VCard.css +271 -0
- package/lib/components/VCard/VCard.mjs +87 -64
- package/lib/components/VCard/VCard.mjs.map +1 -1
- package/lib/components/VCard/VCard.sass +32 -46
- package/lib/components/VCard/VCardActions.mjs +28 -2
- package/lib/components/VCard/VCardActions.mjs.map +1 -1
- package/lib/components/VCard/VCardAvatar.mjs +1 -1
- package/lib/components/VCard/VCardAvatar.mjs.map +1 -1
- package/lib/components/VCard/VCardContent.mjs +3 -0
- package/lib/components/VCard/VCardContent.mjs.map +1 -0
- package/lib/components/VCard/VCardHeader.mjs +1 -1
- package/lib/components/VCard/VCardHeader.mjs.map +1 -1
- package/lib/components/VCard/VCardHeaderText.mjs +1 -1
- package/lib/components/VCard/VCardHeaderText.mjs.map +1 -1
- package/lib/components/VCard/VCardImg.mjs +1 -1
- package/lib/components/VCard/VCardImg.mjs.map +1 -1
- package/lib/components/VCard/VCardSubtitle.mjs +1 -1
- package/lib/components/VCard/VCardSubtitle.mjs.map +1 -1
- package/lib/components/VCard/VCardText.mjs +1 -1
- package/lib/components/VCard/VCardText.mjs.map +1 -1
- package/lib/components/VCard/VCardTitle.mjs +1 -1
- package/lib/components/VCard/VCardTitle.mjs.map +1 -1
- package/lib/components/VCard/_variables.scss +34 -28
- package/lib/components/VCard/index.mjs +10 -11
- package/lib/components/VCard/index.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.css +63 -0
- package/lib/components/VCarousel/VCarousel.mjs +102 -180
- package/lib/components/VCarousel/VCarousel.mjs.map +1 -1
- package/lib/components/VCarousel/VCarousel.sass +7 -2
- package/lib/components/VCarousel/VCarouselItem.mjs +23 -58
- 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 +60 -86
- 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 +60 -38
- package/lib/components/VChip/VChip.mjs.map +1 -1
- package/lib/components/VChip/VChip.sass +27 -21
- package/lib/components/VChip/_mixins.scss +24 -15
- package/lib/components/VChip/_variables.scss +20 -21
- package/lib/components/VChip/index.mjs +1 -1
- 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 +2 -2
- package/lib/components/VCode/index.mjs +1 -1
- package/lib/components/VCode/index.mjs.map +1 -1
- 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 +331 -204
- 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.map +1 -1
- package/lib/components/VData/index.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 +19 -7
- package/lib/components/VDataIterator/VDataIterator.mjs.map +1 -1
- package/lib/components/VDataIterator/index.mjs.map +1 -1
- package/lib/components/VDataTable/MobileRow.mjs +6 -5
- package/lib/components/VDataTable/MobileRow.mjs.map +1 -1
- package/lib/components/VDataTable/Row.mjs +19 -11
- 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 +10 -5
- 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.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 +1 -1
- package/lib/components/VDataTable/VVirtualTable.mjs.map +1 -1
- package/lib/components/VDataTable/index.mjs.map +1 -1
- package/lib/components/VDataTable/mixins/header.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.mjs +2 -2
- package/lib/components/VDatePicker/VDatePicker.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerDateTable.mjs.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.mjs +4 -4
- package/lib/components/VDatePicker/VDatePickerHeader.mjs.map +1 -1
- 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 +3 -3
- package/lib/components/VDatePicker/VDatePickerYears.mjs.map +1 -1
- package/lib/components/VDatePicker/index.mjs.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs +6 -5
- package/lib/components/VDatePicker/mixins/date-picker-table.mjs.map +1 -1
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs +6 -4
- package/lib/components/VDatePicker/util/createNativeLocaleFormatter.mjs.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.mjs.map +1 -1
- package/lib/components/VDatePicker/util/index.mjs.map +1 -1
- package/lib/components/VDatePicker/util/isDateAllowed.mjs.map +1 -1
- package/lib/components/VDatePicker/util/monthChange.mjs.map +1 -1
- package/lib/components/VDatePicker/util/pad.mjs +4 -1
- package/lib/components/VDatePicker/util/pad.mjs.map +1 -1
- package/lib/components/VDatePicker/util/sanitizeDateString.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs +26 -8
- package/lib/components/VDefaultsProvider/VDefaultsProvider.mjs.map +1 -1
- package/lib/components/VDefaultsProvider/index.mjs +1 -1
- package/lib/components/VDefaultsProvider/index.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.css +76 -0
- package/lib/components/VDialog/VDialog.mjs +57 -56
- package/lib/components/VDialog/VDialog.mjs.map +1 -1
- package/lib/components/VDialog/VDialog.sass +42 -8
- package/lib/components/VDialog/_variables.scss +9 -8
- package/lib/components/VDialog/index.mjs +1 -2
- package/lib/components/VDialog/index.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.css +30 -0
- package/lib/components/VDivider/VDivider.mjs +21 -14
- package/lib/components/VDivider/VDivider.mjs.map +1 -1
- package/lib/components/VDivider/VDivider.sass +5 -9
- package/lib/components/VDivider/_variables.scss +4 -2
- package/lib/components/VDivider/index.mjs +1 -1
- package/lib/components/VDivider/index.mjs.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanel.css +191 -0
- package/lib/components/VExpansionPanel/VExpansionPanel.mjs +87 -81
- 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 +80 -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 +250 -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 +183 -225
- 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 +52 -28
- package/lib/components/VFooter/VFooter.mjs.map +1 -1
- package/lib/components/VFooter/VFooter.sass +10 -8
- package/lib/components/VFooter/_variables.scss +7 -4
- 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 +10 -9
- package/lib/components/VGrid/VCol.mjs.map +1 -1
- package/lib/components/VGrid/VContainer.mjs +10 -10
- 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 +10 -9
- 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 +33 -26
- package/lib/components/VIcon/VIcon.mjs.map +1 -1
- package/lib/components/VIcon/VIcon.sass +31 -46
- package/lib/components/VIcon/_variables.scss +15 -14
- 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 +62 -31
- package/lib/components/VImg/VImg.mjs.map +1 -1
- package/lib/components/VImg/VImg.sass +11 -16
- 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 +107 -284
- package/lib/components/VInput/VInput.mjs.map +1 -1
- package/lib/components/VInput/VInput.sass +79 -127
- 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 +8 -7
- package/lib/components/VItemGroup/VItem.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.css +6 -0
- package/lib/components/VItemGroup/VItemGroup.mjs +12 -12
- package/lib/components/VItemGroup/VItemGroup.mjs.map +1 -1
- package/lib/components/VItemGroup/VItemGroup.sass +2 -2
- package/lib/components/VItemGroup/_variables.scss +3 -1
- package/lib/components/VItemGroup/index.mjs +2 -2
- package/lib/components/VItemGroup/index.mjs.map +1 -1
- package/lib/components/VKbd/VKbd.css +9 -0
- package/lib/components/VKbd/VKbd.sass +4 -3
- package/lib/components/VKbd/index.mjs +1 -1
- package/lib/components/VKbd/index.mjs.map +1 -1
- 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 +15 -11
- package/lib/components/VLayout/VLayout.mjs.map +1 -1
- package/lib/components/VLayout/VLayout.sass +1 -4
- package/lib/components/VLayout/VLayoutItem.css +8 -0
- package/lib/components/VLayout/VLayoutItem.mjs +24 -15
- package/lib/components/VLayout/VLayoutItem.mjs.map +1 -1
- package/lib/components/VLayout/VLayoutItem.sass +3 -3
- package/lib/components/VLayout/index.mjs +2 -2
- package/lib/components/VLayout/index.mjs.map +1 -1
- package/lib/components/VLazy/VLazy.mjs +10 -10
- package/lib/components/VLazy/VLazy.mjs.map +1 -1
- package/lib/components/VLazy/index.mjs +1 -1
- package/lib/components/VLazy/index.mjs.map +1 -1
- package/lib/components/VList/VList.css +101 -0
- package/lib/components/VList/VList.mjs +123 -39
- package/lib/components/VList/VList.mjs.map +1 -1
- package/lib/components/VList/VList.sass +19 -18
- package/lib/components/VList/VListChildren.mjs +91 -0
- package/lib/components/VList/VListChildren.mjs.map +1 -0
- package/lib/components/VList/VListGroup.mjs +103 -0
- package/lib/components/VList/VListGroup.mjs.map +1 -0
- package/lib/components/VList/VListImg.mjs +1 -1
- package/lib/components/VList/VListImg.mjs.map +1 -1
- package/lib/components/VList/VListItem.css +351 -0
- package/lib/components/VList/VListItem.mjs +125 -63
- package/lib/components/VList/VListItem.mjs.map +1 -1
- package/lib/components/VList/VListItem.sass +114 -37
- package/lib/components/VList/VListItemAction.mjs +29 -0
- package/lib/components/VList/VListItemAction.mjs.map +1 -0
- package/lib/components/VList/VListItemAvatar.mjs +16 -22
- package/lib/components/VList/VListItemAvatar.mjs.map +1 -1
- package/lib/components/VList/VListItemHeader.mjs +1 -1
- package/lib/components/VList/VListItemHeader.mjs.map +1 -1
- package/lib/components/VList/VListItemIcon.mjs +23 -0
- package/lib/components/VList/VListItemIcon.mjs.map +1 -0
- package/lib/components/VList/VListItemMedia.mjs +13 -13
- package/lib/components/VList/VListItemMedia.mjs.map +1 -1
- package/lib/components/VList/VListItemSubtitle.mjs +1 -1
- package/lib/components/VList/VListItemSubtitle.mjs.map +1 -1
- package/lib/components/VList/VListItemTitle.mjs +1 -1
- package/lib/components/VList/VListItemTitle.mjs.map +1 -1
- package/lib/components/VList/VListSubheader.mjs +29 -20
- package/lib/components/VList/VListSubheader.mjs.map +1 -1
- package/lib/components/VList/_variables.scss +37 -23
- package/lib/components/VList/index.mjs +12 -9
- 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 +10 -10
- package/lib/components/VLocaleProvider/VLocaleProvider.mjs.map +1 -1
- 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 +12 -12
- 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 +82 -446
- package/lib/components/VMenu/VMenu.mjs.map +1 -1
- package/lib/components/VMenu/VMenu.sass +17 -71
- package/lib/components/VMenu/_variables.scss +3 -3
- 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 +100 -35
- package/lib/components/VNavigationDrawer/VNavigationDrawer.mjs.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +36 -21
- package/lib/components/VNavigationDrawer/_variables.scss +9 -6
- 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/VOverflowBtn/index.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.css +62 -0
- package/lib/components/VOverlay/VOverlay.mjs +145 -193
- package/lib/components/VOverlay/VOverlay.mjs.map +1 -1
- package/lib/components/VOverlay/VOverlay.sass +29 -22
- package/lib/components/VOverlay/_variables.scss +0 -2
- package/lib/components/VOverlay/index.mjs +1 -2
- package/lib/components/VOverlay/index.mjs.map +1 -1
- package/lib/components/VOverlay/locationStrategies.mjs +206 -0
- package/lib/components/VOverlay/locationStrategies.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 +247 -0
- package/lib/components/VOverlay/useActivator.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 +63 -67
- package/lib/components/VPagination/VPagination.mjs.map +1 -1
- package/lib/components/VPagination/VPagination.sass +14 -8
- package/lib/components/VPagination/index.mjs +1 -1
- 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/VPicker/index.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.css +101 -0
- package/lib/components/VProgressCircular/VProgressCircular.mjs +30 -20
- package/lib/components/VProgressCircular/VProgressCircular.mjs.map +1 -1
- package/lib/components/VProgressCircular/VProgressCircular.sass +6 -4
- package/lib/components/VProgressCircular/_variables.scss +1 -1
- package/lib/components/VProgressCircular/index.mjs +1 -1
- 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 +35 -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 +67 -68
- 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 +48 -31
- package/lib/components/VRating/VRating.mjs.map +1 -1
- package/lib/components/VRating/VRating.sass +6 -4
- package/lib/components/VRating/_variables.scss +3 -1
- package/lib/components/VRating/index.mjs +1 -1
- package/lib/components/VRating/index.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.css +23 -0
- package/lib/components/VResponsive/VResponsive.mjs +12 -11
- package/lib/components/VResponsive/VResponsive.mjs.map +1 -1
- package/lib/components/VResponsive/VResponsive.sass +4 -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 +181 -780
- 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 +211 -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 +65 -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 +24 -22
- package/lib/components/VSheet/VSheet.mjs.map +1 -1
- package/lib/components/VSheet/VSheet.sass +11 -16
- package/lib/components/VSheet/_variables.scss +6 -7
- package/lib/components/VSheet/index.mjs +1 -1
- package/lib/components/VSheet/index.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs +7 -7
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -1
- package/lib/components/VSkeletonLoader/index.mjs.map +1 -1
- package/lib/components/VSlideGroup/VSlideGroup.css +42 -0
- package/lib/components/VSlideGroup/VSlideGroup.mjs +304 -363
- 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 +122 -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 +119 -0
- package/lib/components/VSnackbar/VSnackbar.mjs +111 -171
- package/lib/components/VSnackbar/VSnackbar.mjs.map +1 -1
- package/lib/components/VSnackbar/VSnackbar.sass +38 -92
- 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 +1 -1
- package/lib/components/VSparkline/VSparkline.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/core.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/math.mjs.map +1 -1
- package/lib/components/VSparkline/helpers/path.mjs +3 -1
- package/lib/components/VSparkline/helpers/path.mjs.map +1 -1
- package/lib/components/VSparkline/index.mjs.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.mjs +2 -2
- package/lib/components/VSpeedDial/VSpeedDial.mjs.map +1 -1
- package/lib/components/VSpeedDial/index.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/VStepperContent.mjs.map +1 -1
- package/lib/components/VStepper/VStepperStep.mjs +1 -1
- package/lib/components/VStepper/VStepperStep.mjs.map +1 -1
- package/lib/components/VStepper/_variables.scss +2 -1
- package/lib/components/VStepper/index.mjs.map +1 -1
- 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 +50 -34
- 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 +110 -69
- package/lib/components/VTabs/VTab.mjs.map +1 -1
- package/lib/components/VTabs/VTab.sass +30 -0
- package/lib/components/VTabs/VTabs.css +70 -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 -206
- 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 +163 -484
- 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 +12 -12
- 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/SelectingTimes.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePicker.mjs +2 -2
- package/lib/components/VTimePicker/VTimePicker.mjs.map +1 -1
- package/lib/components/VTimePicker/VTimePickerClock.mjs +3 -3
- 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/VTimePicker/index.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.css +399 -0
- package/lib/components/VTimeline/VTimeline.mjs +42 -26
- package/lib/components/VTimeline/VTimeline.mjs.map +1 -1
- package/lib/components/VTimeline/VTimeline.sass +206 -57
- package/lib/components/VTimeline/VTimelineDivider.mjs +14 -11
- package/lib/components/VTimeline/VTimelineDivider.mjs.map +1 -1
- package/lib/components/VTimeline/VTimelineItem.mjs +17 -17
- package/lib/components/VTimeline/VTimelineItem.mjs.map +1 -1
- package/lib/components/VTimeline/_mixins.sass +8 -5
- package/lib/components/VTimeline/_variables.scss +5 -2
- package/lib/components/VTimeline/index.mjs +2 -2
- 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 +142 -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 +78 -198
- 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/VTreeview/index.mjs.map +1 -1
- package/lib/components/VTreeview/util/filterTreeItems.mjs.map +1 -1
- 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/VVirtualScroll/index.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.css +70 -0
- package/lib/components/VWindow/VWindow.mjs +160 -235
- package/lib/components/VWindow/VWindow.mjs.map +1 -1
- package/lib/components/VWindow/VWindow.sass +26 -50
- 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 +14631 -2202
- package/lib/components/index.mjs +64 -57
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/createTransition.mjs +20 -20
- package/lib/components/transitions/createTransition.mjs.map +1 -1
- package/lib/components/transitions/dialog-transition.mjs +110 -29
- package/lib/components/transitions/dialog-transition.mjs.map +1 -1
- package/lib/components/transitions/expand-transition.mjs +3 -1
- 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 +3 -2
- package/lib/composables/border.mjs.map +1 -1
- package/lib/composables/color.mjs.map +1 -1
- package/lib/composables/defaults.mjs +29 -5
- package/lib/composables/defaults.mjs.map +1 -1
- package/lib/composables/delay.mjs.map +1 -1
- package/lib/composables/density.mjs +3 -2
- package/lib/composables/density.mjs.map +1 -1
- package/lib/composables/dimensions.mjs.map +1 -1
- package/lib/composables/display.mjs +2 -1
- 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 +107 -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 +79 -39
- 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 +31 -25
- 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 +21 -16
- package/lib/composables/intersectionObserver.mjs.map +1 -1
- package/lib/composables/items.mjs +84 -0
- package/lib/composables/items.mjs.map +1 -0
- package/lib/composables/layout.mjs +133 -44
- 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 +20 -13
- package/lib/composables/locale.mjs.map +1 -1
- package/lib/composables/location.mjs +70 -0
- package/lib/composables/location.mjs.map +1 -0
- package/lib/composables/mutationObserver.mjs +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/position.mjs +6 -26
- package/lib/composables/position.mjs.map +1 -1
- package/lib/composables/proxiedModel.mjs +10 -5
- package/lib/composables/proxiedModel.mjs.map +1 -1
- package/lib/composables/refs.mjs.map +1 -1
- package/lib/composables/resizeObserver.mjs +24 -26
- package/lib/composables/resizeObserver.mjs.map +1 -1
- package/lib/composables/rounded.mjs +9 -10
- package/lib/composables/rounded.mjs.map +1 -1
- package/lib/composables/router.mjs +34 -18
- package/lib/composables/router.mjs.map +1 -1
- package/lib/composables/rtl.mjs.map +1 -1
- package/lib/composables/scopeId.mjs +11 -0
- package/lib/composables/scopeId.mjs.map +1 -0
- package/lib/composables/scroll.mjs +2 -1
- 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 +3 -2
- package/lib/composables/size.mjs.map +1 -1
- package/lib/composables/ssrBoot.mjs.map +1 -1
- package/lib/composables/stack.mjs +37 -0
- package/lib/composables/stack.mjs.map +1 -0
- package/lib/composables/tag.mjs.map +1 -1
- package/lib/composables/teleport.mjs +4 -1
- package/lib/composables/teleport.mjs.map +1 -1
- package/lib/composables/theme.mjs +158 -110
- package/lib/composables/theme.mjs.map +1 -1
- package/lib/composables/toggleScope.mjs +18 -0
- package/lib/composables/toggleScope.mjs.map +1 -0
- package/lib/composables/touch.mjs +129 -0
- package/lib/composables/touch.mjs.map +1 -0
- package/lib/composables/transition.mjs +4 -3
- package/lib/composables/transition.mjs.map +1 -1
- package/lib/composables/validation.mjs +120 -0
- package/lib/composables/validation.mjs.map +1 -0
- package/lib/composables/variant.mjs +18 -10
- package/lib/composables/variant.mjs.map +1 -1
- 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.map +1 -1
- package/lib/directives/index.d.ts +6 -4
- package/lib/directives/index.mjs +2 -2
- package/lib/directives/index.mjs.map +1 -1
- package/lib/directives/intersect/index.mjs +19 -12
- 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 +8 -5
- 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 +22 -7
- 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 +8 -4
- package/lib/directives/touch/index.mjs.map +1 -1
- package/lib/entry-bundler.mjs +8 -4
- package/lib/entry-bundler.mjs.map +1 -1
- package/lib/framework.mjs +24 -28
- package/lib/framework.mjs.map +1 -1
- package/lib/iconsets/fa-svg.d.ts +55 -0
- package/lib/iconsets/fa-svg.mjs.map +1 -1
- package/lib/iconsets/fa.d.ts +55 -0
- package/lib/iconsets/fa.mjs +1 -0
- package/lib/iconsets/fa.mjs.map +1 -1
- package/lib/iconsets/fa4.d.ts +55 -0
- package/lib/iconsets/fa4.mjs +2 -1
- package/lib/iconsets/fa4.mjs.map +1 -1
- package/lib/iconsets/md.d.ts +55 -0
- package/lib/iconsets/md.mjs +2 -1
- package/lib/iconsets/md.mjs.map +1 -1
- package/lib/iconsets/mdi-svg.d.ts +55 -0
- package/lib/iconsets/mdi-svg.mjs +1 -1
- package/lib/iconsets/mdi-svg.mjs.map +1 -1
- package/lib/iconsets/mdi.d.ts +55 -0
- package/lib/iconsets/mdi.mjs +2 -1
- package/lib/iconsets/mdi.mjs.map +1 -1
- package/lib/index.d.ts +451 -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.map +1 -1
- package/lib/locale/ar.mjs.map +1 -1
- package/lib/locale/az.mjs.map +1 -1
- package/lib/locale/bg.mjs.map +1 -1
- package/lib/locale/ca.mjs +9 -9
- package/lib/locale/ca.mjs.map +1 -1
- package/lib/locale/ckb.mjs.map +1 -1
- package/lib/locale/cs.mjs +3 -3
- package/lib/locale/cs.mjs.map +1 -1
- package/lib/locale/da.mjs.map +1 -1
- package/lib/locale/de.mjs.map +1 -1
- package/lib/locale/el.mjs.map +1 -1
- package/lib/locale/en.mjs.map +1 -1
- package/lib/locale/es.mjs +2 -2
- package/lib/locale/es.mjs.map +1 -1
- package/lib/locale/et.mjs.map +1 -1
- package/lib/locale/fa.mjs.map +1 -1
- package/lib/locale/fi.mjs.map +1 -1
- package/lib/locale/fr.mjs +1 -1
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/locale/he.mjs.map +1 -1
- package/lib/locale/hr.mjs.map +1 -1
- package/lib/locale/hu.mjs.map +1 -1
- package/lib/locale/id.mjs.map +1 -1
- package/lib/locale/index.d.ts +3111 -0
- package/lib/locale/index.mjs.map +1 -1
- package/lib/locale/it.mjs.map +1 -1
- package/lib/locale/ja.mjs.map +1 -1
- package/lib/locale/ko.mjs.map +1 -1
- package/lib/locale/lt.mjs.map +1 -1
- package/lib/locale/lv.mjs.map +1 -1
- package/lib/locale/nl.mjs.map +1 -1
- package/lib/locale/no.mjs.map +1 -1
- package/lib/locale/pl.mjs.map +1 -1
- package/lib/locale/pt.mjs.map +1 -1
- package/lib/locale/ro.mjs.map +1 -1
- package/lib/locale/ru.mjs.map +1 -1
- package/lib/locale/sk.mjs.map +1 -1
- package/lib/locale/sl.mjs.map +1 -1
- package/lib/locale/sr-Cyrl.mjs.map +1 -1
- package/lib/locale/sr-Latn.mjs.map +1 -1
- package/lib/locale/sv.mjs.map +1 -1
- package/lib/locale/th.mjs.map +1 -1
- package/lib/locale/tr.mjs.map +1 -1
- package/lib/locale/uk.mjs.map +1 -1
- package/lib/locale/vi.mjs.map +1 -1
- package/lib/locale/zh-Hans.mjs.map +1 -1
- package/lib/locale/zh-Hant.mjs.map +1 -1
- package/lib/presets/default/index.mjs +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 +16 -18
- package/lib/services/goto/index.mjs.map +1 -1
- package/lib/services/goto/util.mjs.map +1 -1
- package/lib/styles/elements/_blockquote.sass +5 -3
- package/lib/styles/elements/_global.sass +5 -4
- package/lib/styles/elements/_index.sass +2 -2
- package/lib/styles/generic/_colors.scss +31 -11
- package/lib/styles/generic/_elevation.scss +2 -2
- package/lib/styles/generic/_index.scss +6 -6
- package/lib/styles/generic/_reset.scss +236 -232
- package/lib/styles/generic/_transitions.scss +8 -5
- 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 -472
- package/lib/styles/settings/_variables.scss +51 -52
- package/lib/styles/tools/_absolute.sass +8 -0
- package/lib/styles/tools/_density.sass +3 -1
- package/lib/styles/tools/_display.sass +11 -0
- package/lib/styles/tools/_elevation.sass +4 -2
- package/lib/styles/tools/_functions.sass +30 -25
- package/lib/styles/tools/_index.sass +17 -24
- package/lib/styles/tools/_radius.sass +5 -2
- package/lib/styles/tools/_sheet.sass +7 -4
- package/lib/styles/tools/_states.sass +24 -8
- package/lib/styles/tools/_utilities.sass +24 -20
- package/lib/styles/tools/_variant.sass +10 -2
- package/lib/styles/utilities/_display.sass +3 -1
- package/lib/styles/utilities/_index.sass +25 -22
- package/lib/styles/utilities/_text.sass +3 -1
- package/lib/styles.scss +4 -0
- package/lib/util/anchor.mjs +52 -0
- package/lib/util/anchor.mjs.map +1 -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/color/transformCIELAB.mjs.map +1 -1
- package/lib/util/color/transformSRGB.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +3 -0
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/colors.mjs.map +1 -1
- package/lib/util/console.mjs +2 -1
- package/lib/util/console.mjs.map +1 -1
- package/lib/util/createSimpleFunctional.mjs +11 -8
- 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/dom.mjs.map +1 -1
- package/lib/util/easing.mjs.map +1 -1
- package/lib/util/getCurrentInstance.mjs +19 -0
- package/lib/util/getCurrentInstance.mjs.map +1 -0
- package/lib/util/getScrollParent.mjs +1 -2
- package/lib/util/getScrollParent.mjs.map +1 -1
- package/lib/util/globals.mjs +1 -3
- package/lib/util/globals.mjs.map +1 -1
- package/lib/util/helpers.mjs +172 -32
- package/lib/util/helpers.mjs.map +1 -1
- package/lib/util/index.mjs +5 -1
- package/lib/util/index.mjs.map +1 -1
- 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 +106 -54
- package/dist/vuetify.css.map +0 -1
- package/dist/vuetify.min.css.map +0 -1
- package/lib/components/VAlert/_index.scss +0 -2
- package/lib/components/VApp/_index.scss +0 -1
- package/lib/components/VAppBar/VAppBarTitle.sass +0 -10
- package/lib/components/VAppBar/_index.scss +0 -2
- package/lib/components/VAvatar/_index.scss +0 -3
- package/lib/components/VBadge/_index.scss +0 -2
- package/lib/components/VBanner/VBannerContent.mjs +0 -3
- package/lib/components/VBanner/VBannerContent.mjs.map +0 -1
- package/lib/components/VBanner/_index.scss +0 -2
- package/lib/components/VBottomNavigation/_index.scss +0 -2
- package/lib/components/VBreadcrumbs/_index.scss +0 -2
- package/lib/components/VBtn/_index.scss +0 -3
- package/lib/components/VCard/VCardMedia.mjs +0 -3
- package/lib/components/VCard/VCardMedia.mjs.map +0 -1
- package/lib/components/VCard/_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/VChip/_index.scss +0 -3
- package/lib/components/VCode/_index.scss +0 -2
- 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/VDialog/_index.scss +0 -2
- package/lib/components/VDivider/_index.scss +0 -2
- package/lib/components/VExpansionPanel/VExpansionPanelContent.mjs +0 -61
- 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/VItemGroup/_index.scss +0 -2
- package/lib/components/VKbd/_index.scss +0 -2
- package/lib/components/VLayout/_index.scss +0 -1
- package/lib/components/VList/_index.scss +0 -3
- package/lib/components/VList/_mixins.scss +0 -0
- package/lib/components/VMain/_index.scss +0 -2
- package/lib/components/VNavigationDrawer/_index.scss +0 -2
- package/lib/components/VOverlay/_index.scss +0 -2
- package/lib/components/VPagination/_index.scss +0 -2
- package/lib/components/VParallax/_variables.scss +0 -4
- package/lib/components/VProgressCircular/_index.scss +0 -2
- 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/VRating/_index.scss +0 -2
- 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/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/VTimeline/_index.scss +0 -3
- package/lib/components/VToolbar/_index.scss +0 -2
- package/lib/entry.d.ts +0 -3647
- package/lib/entry.mjs +0 -4
- package/lib/entry.mjs.map +0 -1
- package/lib/framework.d.ts +0 -158
- package/lib/globals.d.mjs +0 -2
- package/lib/globals.d.mjs.map +0 -1
- package/lib/mixins/activatable/index.mjs +0 -199
- 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/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/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 -388
- 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/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 -58
- package/lib/services/application/index.mjs.map +0 -1
- package/lib/services/breakpoint/index.mjs +0 -175
- 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 -73
- package/lib/services/lang/index.mjs.map +0 -1
- package/lib/services/service/index.mjs +0 -13
- 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/settings/_dark.scss +0 -137
- package/lib/styles/settings/_light.scss +0 -118
- package/lib/styles/settings/_theme.scss +0 -1
- package/lib/styles/styles.sass +0 -2
- package/lib/util/makeProps.mjs +0 -53
- package/lib/util/makeProps.mjs.map +0 -1
package/dist/vuetify.min.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["webpack://Vuetify/webpack/universalModuleDefinition","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/./src/styles/main.sass","webpack://Vuetify/./src/components/VApp/VApp.sass","webpack://Vuetify/./src/util/propsFactory.ts","webpack://Vuetify/./src/util/helpers.ts","webpack://Vuetify/./src/util/console.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/composables/layout.ts","webpack://Vuetify/./src/composables/defaults.ts","webpack://Vuetify/./src/util/makeProps.ts","webpack://Vuetify/./src/locale/index.ts","webpack://Vuetify/./src/composables/rtl.ts","webpack://Vuetify/./src/components/VApp/VApp.tsx","webpack://Vuetify/./src/components/VAppBar/VAppBar.sass","webpack://Vuetify/./src/components/VImg/VImg.sass","webpack://Vuetify/./src/components/VResponsive/VResponsive.sass","webpack://Vuetify/./src/composables/dimensions.ts","webpack://Vuetify/./src/components/VResponsive/VResponsive.tsx","webpack://Vuetify/./src/util/globals.ts","webpack://Vuetify/./src/directives/intersect/index.ts","webpack://Vuetify/./src/composables/transition.ts","webpack://Vuetify/./src/util/useRender.ts","webpack://Vuetify/./src/components/VImg/VImg.tsx","webpack://Vuetify/./src/composables/border.ts","webpack://Vuetify/./src/composables/density.ts","webpack://Vuetify/./src/composables/elevation.ts","webpack://Vuetify/./src/composables/rounded.ts","webpack://Vuetify/./src/composables/tag.ts","webpack://Vuetify/./src/composables/color.ts","webpack://Vuetify/./src/composables/proxiedModel.ts","webpack://Vuetify/./src/components/VAppBar/VAppBar.tsx","webpack://Vuetify/./src/components/VBtn/VBtn.sass","webpack://Vuetify/./src/components/VIcon/VIcon.sass","webpack://Vuetify/./src/composables/size.ts","webpack://Vuetify/./src/composables/icons.tsx","webpack://Vuetify/./src/components/VIcon/VIcon.tsx","webpack://Vuetify/./src/composables/position.ts","webpack://Vuetify/./src/composables/router.tsx","webpack://Vuetify/./src/composables/variant.tsx","webpack://Vuetify/./src/directives/ripple/VRipple.sass","webpack://Vuetify/./src/directives/ripple/index.ts","webpack://Vuetify/./src/components/VBtn/VBtn.tsx","webpack://Vuetify/./src/components/VAppBar/VAppBarNavIcon.tsx","webpack://Vuetify/./src/components/VAppBar/VAppBarTitle.sass","webpack://Vuetify/./src/components/VAppBar/VAppBarTitle.tsx","webpack://Vuetify/./src/components/VAppBar/index.ts","webpack://Vuetify/./src/components/VAlert/VAlert.sass","webpack://Vuetify/./src/components/VAvatar/VAvatar.sass","webpack://Vuetify/./src/components/VAvatar/VAvatar.tsx","webpack://Vuetify/./src/components/VAlert/VAlert.tsx","webpack://Vuetify/./src/components/VBadge/VBadge.sass","webpack://Vuetify/./src/components/VBadge/VBadge.tsx","webpack://Vuetify/./src/components/VBanner/VBanner.sass","webpack://Vuetify/./src/util/createSimpleFunctional.ts","webpack://Vuetify/./src/components/VBanner/VBannerActions.ts","webpack://Vuetify/./src/components/VBanner/VBannerAvatar.tsx","webpack://Vuetify/./src/components/VBanner/VBannerContent.ts","webpack://Vuetify/./src/components/VBanner/VBannerText.ts","webpack://Vuetify/./src/composables/display.ts","webpack://Vuetify/./src/components/VBanner/VBanner.tsx","webpack://Vuetify/./src/components/VBanner/index.ts","webpack://Vuetify/./src/components/VBottomNavigation/VBottomNavigation.sass","webpack://Vuetify/./src/components/VBottomNavigation/VBottomNavigation.tsx","webpack://Vuetify/./src/components/VBreadcrumbs/VBreadcrumbs.sass","webpack://Vuetify/./src/components/VBreadcrumbs/VBreadcrumbsItem.tsx","webpack://Vuetify/./src/components/VBreadcrumbs/VBreadcrumbsDivider.tsx","webpack://Vuetify/./src/components/VBreadcrumbs/VBreadcrumbs.tsx","webpack://Vuetify/./src/components/VBreadcrumbs/index.ts","webpack://Vuetify/./src/components/VCard/VCard.sass","webpack://Vuetify/./src/components/VCard/VCardActions.ts","webpack://Vuetify/./src/components/VCard/VCardAvatar.ts","webpack://Vuetify/./src/components/VCard/VCardHeader.ts","webpack://Vuetify/./src/components/VCard/VCardHeaderText.ts","webpack://Vuetify/./src/components/VCard/VCardImg.ts","webpack://Vuetify/./src/components/VCard/VCardMedia.ts","webpack://Vuetify/./src/components/VCard/VCardSubtitle.ts","webpack://Vuetify/./src/components/VCard/VCardText.ts","webpack://Vuetify/./src/components/VCard/VCardTitle.ts","webpack://Vuetify/./src/components/VCard/VCard.tsx","webpack://Vuetify/./src/components/VCard/index.ts","webpack://Vuetify/./src/components/VChip/VChip.sass","webpack://Vuetify/./src/components/VChip/VChip.tsx","webpack://Vuetify/./src/components/VCode/VCode.sass","webpack://Vuetify/./src/components/VCode/index.ts","webpack://Vuetify/./src/components/VDefaultsProvider/VDefaultsProvider.tsx","webpack://Vuetify/./src/components/VDialog/VDialog.sass","webpack://Vuetify/./src/util/easing.ts","webpack://Vuetify/./src/components/transitions/dialog-transition.tsx","webpack://Vuetify/./src/components/VOverlay/VOverlay.sass","webpack://Vuetify/./src/composables/teleport.ts","webpack://Vuetify/./src/util/dom.ts","webpack://Vuetify/./src/directives/click-outside/index.ts","webpack://Vuetify/./src/util/getScrollParent.ts","webpack://Vuetify/./src/components/VOverlay/VOverlay.tsx","webpack://Vuetify/./src/components/VDialog/VDialog.tsx","webpack://Vuetify/./src/components/VDialog/index.ts","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/components/VGrid/VSpacer.ts","webpack://Vuetify/./src/components/VGrid/index.ts","webpack://Vuetify/./src/components/VIcon/index.ts","webpack://Vuetify/./src/components/VKbd/VKbd.sass","webpack://Vuetify/./src/components/VKbd/index.ts","webpack://Vuetify/./src/components/VItemGroup/VItemGroup.sass","webpack://Vuetify/./src/composables/group.ts","webpack://Vuetify/./src/components/VItemGroup/VItemGroup.tsx","webpack://Vuetify/./src/components/VItemGroup/VItem.tsx","webpack://Vuetify/./src/components/VItemGroup/index.ts","webpack://Vuetify/./src/components/VLayout/VLayout.sass","webpack://Vuetify/./src/components/VLayout/VLayout.tsx","webpack://Vuetify/./src/components/VLayout/VLayoutItem.sass","webpack://Vuetify/./src/components/VLayout/VLayoutItem.tsx","webpack://Vuetify/./src/components/VLayout/index.ts","webpack://Vuetify/./src/components/VLocaleProvider/VLocaleProvider.sass","webpack://Vuetify/./src/locale/en.ts","webpack://Vuetify/./src/composables/locale.ts","webpack://Vuetify/./src/components/VLocaleProvider/VLocaleProvider.tsx","webpack://Vuetify/./src/components/VList/VList.sass","webpack://Vuetify/./src/components/VList/VListSubheader.tsx","webpack://Vuetify/./src/components/VList/VList.tsx","webpack://Vuetify/./src/components/VList/VListImg.ts","webpack://Vuetify/./src/components/VList/VListItem.sass","webpack://Vuetify/./src/components/VList/VListItemAvatar.tsx","webpack://Vuetify/./src/components/VList/VListItemHeader.ts","webpack://Vuetify/./src/components/VList/VListItemSubtitle.ts","webpack://Vuetify/./src/components/VList/VListItemTitle.ts","webpack://Vuetify/./src/components/VList/VListItem.tsx","webpack://Vuetify/./src/components/VList/VListItemMedia.tsx","webpack://Vuetify/./src/components/VList/index.ts","webpack://Vuetify/./src/components/VLazy/VLazy.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/components/VNavigationDrawer/VNavigationDrawer.tsx","webpack://Vuetify/./src/components/VOverlay/index.ts","webpack://Vuetify/./src/components/VPagination/VPagination.sass","webpack://Vuetify/./src/composables/resizeObserver.ts","webpack://Vuetify/./src/composables/refs.ts","webpack://Vuetify/./src/components/VPagination/VPagination.tsx","webpack://Vuetify/./src/components/VSheet/VSheet.sass","webpack://Vuetify/./src/components/VSheet/VSheet.tsx","webpack://Vuetify/./src/components/VProgressCircular/VProgressCircular.sass","webpack://Vuetify/./src/composables/intersectionObserver.ts","webpack://Vuetify/./src/components/VProgressCircular/VProgressCircular.tsx","webpack://Vuetify/./src/components/VRating/VRating.sass","webpack://Vuetify/./src/components/VRating/VRating.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/VTimeline/VTimeline.sass","webpack://Vuetify/./src/components/VTimeline/VTimelineDivider.tsx","webpack://Vuetify/./src/components/VTimeline/VTimelineItem.tsx","webpack://Vuetify/./src/components/VTimeline/VTimeline.tsx","webpack://Vuetify/./src/components/VTimeline/index.ts","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/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/iconsets/mdi.ts","webpack://Vuetify/./src/framework.ts","webpack://Vuetify/./src/entry-bundler.ts"],"names":["propsFactory","props","source","defaults","Object","keys","reduce","obj","prop","isObjectDefinition","Array","isArray","definition","type","default","getNestedValue","path","fallback","last","length","undefined","i","deepEqual","a","b","Date","getTime","every","p","getObjectValueByPath","replace","split","getPropertyFromItem","item","property","value","createRange","start","from","v","k","getZIndex","el","nodeType","Node","ELEMENT_NODE","index","window","getComputedStyle","getPropertyValue","parentNode","tagsToReplace","escapeHTML","str","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","keyValues","o","extract","properties","extracted","rest","entries","forEach","includes","arrayDiff","diff","push","groupItems","items","groupBy","groupDesc","groups","current","val","name","wrapInArray","sortItems","sortBy","sortDesc","locale","customSorters","stringCollator","Intl","Collator","sensitivity","usage","sort","sortKey","sortA","sortB","customResult","map","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","clamp","min","max","Math","padEnd","char","repeat","chunk","size","chunked","substr","humanReadableFileSize","bytes","binary","base","abs","toFixed","camelizeObjectKeys","camelize","mergeDeep","target","sourceProperty","targetProperty","fillArray","fill","getUid","_uid","flattenFragments","nodes","node","Fragment","children","flat","randomHexColor","n","random","slice","toKebabCase","match","wrapInRef","x","isRef","ref","createMessage","message","vm","parent","_isVue","$parent","$options","$_alreadyWarned","generateComponentTrace","consoleInfo","newMessage","console","info","consoleWarn","warn","consoleError","error","deprecate","original","replacement","breaking","removed","classifyRE","classify","c","toUpperCase","formatComponentName","includeFile","$root","options","cid","constructor","_componentTag","file","__file","tree","currentRecursiveSequence","join","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","h","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","ThemeSymbol","Symbol","for","makeThemeProps","theme","defaultThemeOptions","defaultTheme","variations","themes","background","surface","primary","secondary","success","warning","variables","parseThemeOptions","isDisabled","createTheme","parsedOptions","styleEl","computedThemes","computed","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","useTheme","getCurrentInstance","inject","newTheme","provide","VuetifyLayoutKey","makeLayoutProps","overlaps","fullHeight","Boolean","makeLayoutItemProps","priority","absolute","useMain","layout","useLayoutItem","position","layoutSize","elementSize","active","styles","register","onBeforeUnmount","unregister","generateLayers","registered","positions","layoutSizes","activeItems","previousLayer","top","bottom","layers","layer","ids","get","createLayout","Map","priorities","computedOverlaps","overlap","topPosition","bottomPosition","topAmount","bottomAmount","set","sortedEntries","mainStyles","paddingLeft","paddingRight","paddingTop","paddingBottom","getLayoutItem","find","findIndex","isHorizontal","isOppositeHorizontal","isOppositeVertical","height","marginLeft","marginRight","marginTop","marginBottom","width","zIndex","layoutClasses","DefaultsSymbol","createDefaults","useDefaults","provideDefaults","newDefaults","makeProps","originalProp","isOptions","propDefinition","originalDefault","hasOwnProperty","wrappedDefault","generateDefault","propName","localDefault","globalDefault","global","componentDefault","actualDefault","isFactory","Function","rtl","af","ar","bg","ca","ckb","cs","de","en","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","createRtlScope","isRtl","defaultRtl","rtlClasses","currentScope","provideRtl","newScope","useRtl","defineComponent","setup","makeDimensionProps","maxHeight","maxWidth","minHeight","minWidth","useDimension","dimensionStyles","useAspectStyles","aspectStyles","ratio","aspectRatio","contentClass","additional","IS_NODE","process","IN_BROWSER","IS_DEBUG","env","DEBUG","IS_PROD","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","navigator","maxTouchPoints","mounted","binding","modifiers","handler","observer","IntersectionObserver","_observe","isIntersecting","entry","quiet","init","once","unmounted","observe","unobserve","Intersect","makeTransitionProps","transition","validator","MaybeTransition","component","Transition","customProps","mergeProps","useRender","render","directives","intersect","alt","cover","eager","lazySrc","root","rootMargin","threshold","sizes","src","srcset","emits","emit","currentSrc","image","state","naturalWidth","naturalHeight","normalisedSrc","aspect","onBeforeMount","nextTick","complete","onError","pollForSize","onLoad","getSrc","lazyImg","Image","img","timeout","poll","imgHeight","imgWidth","endsWith","containClasses","__image","class","sources","withDirectives","vShow","__preloadImage","__placeholder","placeholder","__error","makeBorderProps","border","useBorder","borderClasses","classes","allowedDensities","makeDensityProps","density","useDensity","densityClasses","makeElevationProps","elevation","useElevation","elevationClasses","makeRoundedProps","rounded","tile","useRounded","roundedClasses","makeTagProps","useColor","backgroundIsCssColor","textIsCssColor","text","colorClasses","colorStyles","backgroundColor","caretColor","useTextColor","textColorClasses","textColorStyles","useBackgroundColor","backgroundColorClasses","backgroundColorStyles","useProxiedModel","defaultValue","transformIn","transformOut","propIsDefined","vnode","internal","newValue","collapse","extensionHeight","floating","modelValue","prominent","prominentHeight","toRef","extension","isActive","layoutStyles","hasImage","prepend","append","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","IconSymbol","makeIconProps","icon","required","VComponentIcon","VSvgIcon","inheritAttrs","attrs","VLigatureIcon","VClassIcon","defaultSets","svg","useIcon","icons","iconData","iconAlias","aliases","hasSet","setName","defaultSet","iconName","sets","slotIcon","slot","fontSize","positionValues","makePositionProps","fixed","usePosition","targets","positionClasses","positionStyles","useRoute","proxy","$route","useRouter","$router","useLink","RouterLink","resolveDynamicComponent","isLink","href","to","isClickable","onClick","onClickOnce","link","route","makeRouterProps","useBackButton","cb","router","popped","removeGuard","onMounted","addEventListener","onPopstate","beforeEach","next","removeEventListener","e","replaced","allowedVariants","genOverlays","makeVariantProps","textColor","variant","useVariant","variantClasses","rippleStop","DELAY_RIPPLE","style","webkitTransform","opacity","isTouchEvent","isKeyboardEvent","calculate","localX","localY","offset","getBoundingClientRect","touches","clientX","clientY","radius","scale","_ripple","circle","clientWidth","center","sqrt","clientHeight","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","wasEnabled","passive","removeListeners","updated","oldValue","Ripple","prependIcon","appendIcon","block","stacked","disabled","ripple","isElevated","Tag","isExactActive","navigate","allowedTypes","borderColor","closable","closeIcon","closeLabel","sticky","tip","borderProps","variantProps","onCloseClick","hasBorder","hasClose","close","hasPrepend","hasText","bordered","dot","inline","label","location","vertical","horizontal","offsetX","offsetY","ctx","calculatePosition","locationStyles","badgeAttrs","badge","createSimpleFunctional","klass","capitalize","DisplaySymbol","defaultDisplayOptions","mobileBreakpoint","thresholds","xs","sm","md","lg","xl","xxl","parseDisplayOptions","getClientWidth","documentElement","innerWidth","getClientHeight","innerHeight","getPlatform","userAgent","regexp","android","ios","cordova","electron","chrome","edge","firefox","opera","win","mac","linux","ssr","touch","createDisplay","platform","reactive","onResize","watchEffect","breakpointValue","mobile","smAndUp","mdAndUp","lgAndUp","xlAndUp","smAndDown","mdAndDown","lgAndDown","xlAndDown","toRefs","useDisplay","display","avatar","hasAvatar","hasContent","actions","bgColor","grow","mode","activeClass","activeColor","breadcrumbs","VBreadcrumbsSymbol","divider","array","appendAvatar","hover","prependAvatar","subtitle","title","hasTitle","hasSubtitle","hasHeaderText","hasAppend","hasHeader","media","draggable","filterIcon","pill","VCode","standardEasing","deceleratedEasing","acceleratedEasing","functions","onEnter","done","getDimensions","animate","duration","easing","finished","then","onLeave","initialDisplay","initialTransform","targetBox","elBox","useTeleport","teleportTarget","_target","targetElement","body","querySelector","cache","has","WeakMap","attachedRoot","getRootNode","composed","defaultConditional","checkEvent","checkIsActive","ShadowRoot","host","elements","include","contains","closeConditional","directive","_clickOutside","lastMousedownWasOutside","handleShadow","callback","ClickOutside","onMousedown","app","getScrollParent","hasScrollbar","parentElement","scrollingElement","getScrollParents","overflowY","scrollHeight","useBooted","isBooted","positionStrategies","scrollStrategies","Scrim","CloseScrollStrategy","enable","scrollElements","onScroll","bind","disable","BlockScrollStrategy","scrollbarWidth","offsetWidth","setProperty","initialOverflow","removeProperty","attach","noClickAnimation","origin","persistent","positionStrategy","scrim","scrollStrategy","scrimColor","onClickOutside","animateClick","activatorElement","onActivatorClick","onKeydown","focus","scrollParent","scrollTop","transformOrigin","onAfterLeave","activator","fullscreen","retainFocus","scrollable","VDialogTransition","overlay","onFocusin","before","relatedTarget","after","focusable","querySelectorAll","hasAttribute","firstElement","lastElement","data","inset","thickness","dividerStyles","role","fluid","breakpoints","breakpointProps","offsetProps","orderProps","propMap","col","order","breakpointClass","breakpoint","cols","alignSelf","hasColClasses","ALIGNMENT","makeRowProps","def","alignValidator","alignProps","justifyValidator","justifyProps","alignContentValidator","alignContentProps","align","justify","alignContent","classMap","dense","noGutters","VKbd","makeGroupProps","multiple","mandatory","selectedClass","makeGroupItemProps","useGroupItem","injectKey","group","description","isSelected","toggle","select","useGroup","isUnmounted","selected","getIds","arr","getValues","unwrapped","splice","forceMandatoryValue","internalValue","step","currentId","currentIndex","newIndex","newItem","prev","VItemGroupSymbol","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","delimiter","calendar","moreEvents","fileInput","counter","counterSize","timePicker","am","pm","pagination","previous","page","currentPage","rating","LocaleAdapterSymbol","VuetifyLocaleSymbol","provideLocale","adapter","createScope","useLocale","getScope","isLocaleAdapter","createLocaleAdapter","createDefaultLocaleAdapter","rootInstance","createRoot","LANG_PREFIX","params","createTranslateFunction","messages","shortKey","currentLocale","fallbackLocale","createNumberFunction","numberFormat","NumberFormat","format","rootScope","defaultLocale","localeInstance","nav","subheader","onIntersect","useSsrBoot","requestAnimationFrame","ssrBootStyles","disableResizeWatcher","expandOnHover","permanent","rail","railWidth","temporary","isHovering","isTemporary","useResizeObserver","resizeRef","contentRect","contentBoxSize","borderBoxSize","ResizeObserver","disconnect","flush","readonly","useRefs","refs","onBeforeUpdate","updateRef","totalVisible","firstIcon","prevIcon","nextIcon","lastIcon","pageAriaLabel","currentPageAriaLabel","firstAriaLabel","previousAriaLabel","nextAriaLabel","lastAriaLabel","ellipsis","showFirstLastPage","maxButtons","firstItem","totalWidth","itemWidth","floor","range","middle","ceil","rangeLength","rangeStart","setValue","event","preventDefault","sharedProps","ariaCurrent","controls","prevDisabled","nextDisabled","ariaDisabled","updateFocus","$el","useIntersectionObserver","intersectionRef","indeterminate","rotate","MAGIC_RADIUS_CONSTANT","CIRCUMFERENCE","PI","underlayColorClasses","underlayColorStyles","normalizedValue","parseFloat","diameter","strokeWidth","strokeDashOffset","itemAriaLabel","clearable","emptyIcon","fullIcon","halfIncrements","itemLabels","itemLabelPosition","increments","flatMap","hoverIndex","focusIndex","firstRef","isClicking","itemState","isFilled","isHovered","isFullIcon","eventState","onMouseenter","onMouseleave","onFocus","onBlur","onMouseup","VRatingItem","showStar","btnProps","hasLabels","lightsOut","withBackground","hideDot","lineColor","iconColor","fillDot","dotColor","timeline","VTimelineSymbol","lineColorStyles","lineColorClasses","hideOpposite","dotSize","dotRef","opposite","direction","side","lineInset","lineThickness","truncateLine","sideClass","createCssTransition","hideOnLeave","leaveAbsolute","TransitionGroup","onBeforeEnter","offsetTop","offsetLeft","offsetHeight","_transitionInitialStyles","_initialDisplay","createJavascriptTransition","expandedParentClass","sizeProperty","offsetProperty","_parent","_initialStyle","overflow","initialStyle","onAfterEnter","resetStyles","onEnterCancelled","onLeaveCancelled","VCarouselTransition","VCarouselReverseTransition","VTabTransition","VTabReverseTransition","VMenuTransition","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","ExpandTransitionGenerator","VExpandXTransition","_onResize","Resize","self","arg","_onScroll","Scroll","handleGesture","wrapper","touchstartX","touchendX","touchstartY","touchendY","dirRatio","minDistance","touchstart","changedTouches","touchend","touchmove","touchmoveX","touchmoveY","move","createHandlers","uid","instance","$","handlers","_touchHandlers","create","eventName","Touch","cancel","clear","checkboxOn","checkboxOff","checkboxIndeterminate","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","unfold","plus","minus","mdi","createVuetify","install","components","provides","appContext","mixin","$vuetify","call","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 ","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\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.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};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","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","import type { Ref, Slots, VNode } from 'vue'\nimport { camelize, Fragment, isRef, ref } 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\ntype SelectItemKey = string | (string | number)[] | ((item: Dictionary<any>, fallback?: any) => any)\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: 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 {\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 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\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\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 (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\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 [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 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","/* 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 { 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 { ThemeDefinition } 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<ThemeDefinition['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 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<ThemeDefinition['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","import { colorToInt, colorToRGB, createRange, darken, getLuma, intToHex, lighten, mergeDeep, propsFactory } from '@/util'\n// Utilities\nimport { computed, getCurrentInstance, inject, provide, ref, watch } from 'vue'\n\n// Types\nimport type { InjectionKey, Ref } from 'vue'\nimport { consoleError } from '@/util/console'\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 | undefined>\n setTheme: (key: string, theme: ThemeDefinition) => void\n getTheme: (key: string) => InternalThemeDefinition\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 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 'activated-opacity': 0.12,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'dragged-opacity': 0.08,\n 'pressed-opacity': 0.16,\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 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 'activated-opacity': 0.12,\n 'hover-opacity': 0.04,\n 'focus-opacity': 0.12,\n 'selected-opacity': 0.08,\n 'dragged-opacity': 0.08,\n 'pressed-opacity': 0.16,\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 return mergeDeep(\n defaultThemeOptions,\n options,\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 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 // 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 ? undefined : `v-theme--${current.value}`),\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 */\nexport function useTheme (props: { theme?: string }) {\n const vm = getCurrentInstance()\n const theme = inject(ThemeSymbol, null)\n\n if (!vm) consoleError('provideTheme must be called from inside a setup function')\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","// 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: (\n id: string,\n priority: Ref<number>,\n position: Ref<Position>,\n layoutSize: Ref<number | string>,\n elementSize: Ref<number | string>,\n active: Ref<boolean>\n ) => 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 absolute: Boolean,\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 layoutSize: Ref<number | string>,\n elementSize: Ref<number | string>,\n active: Ref<boolean>,\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, layoutSize, elementSize, active)\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 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 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 = 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\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[], fullHeight?: boolean }) {\n const registered = ref<string[]>([])\n const positions = new Map<string, Ref<Position>>()\n const layoutSizes = new Map<string, Ref<number | string>>()\n const priorities = new Map<string, Ref<number>>()\n const activeItems = new Map<string, Ref<boolean>>()\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 entries = [...priorities.entries()]\n const sortedEntries = entries.sort(([, a], [, b]) => a.value - b.value).map(([id]) => id)\n return generateLayers(sortedEntries, registered.value, positions, layoutSizes, activeItems)\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 }\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 provide(VuetifyLayoutKey, {\n register: (\n id: string,\n priority: Ref<number>,\n position: Ref<Position>,\n layoutSize: Ref<number | string>,\n elementSize: Ref<number | string>,\n active: Ref<boolean>\n ) => {\n priorities.set(id, priority)\n positions.set(id, position)\n layoutSizes.set(id, layoutSize)\n activeItems.set(id, active)\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 isOppositeHorizontal = position.value === 'right'\n const isOppositeVertical = position.value === 'bottom'\n\n return {\n [position.value]: 0,\n height: isHorizontal ? `calc(100% - ${item.top}px - ${item.bottom}px)` : `${elementSize.value}px`,\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}px`,\n zIndex: layers.value.length - index,\n transform: `translate${isHorizontal ? 'X' : 'Y'}(${(active.value ? 0 : -110) * (isOppositeHorizontal || isOppositeVertical ? -1 : 1)}%)`,\n }\n })\n },\n unregister: (id: string) => {\n priorities.delete(id)\n positions.delete(id)\n layoutSizes.delete(id)\n activeItems.delete(id)\n registered.value = registered.value.filter(v => v !== id)\n },\n mainStyles,\n getLayoutItem,\n items,\n })\n\n const layoutClasses = computed(() => [\n 'v-layout',\n { 'v-layout--full-height': props.fullHeight },\n ])\n\n return {\n layoutClasses,\n getLayoutItem,\n items,\n }\n}\n","import { computed, inject, provide, ref } from 'vue'\nimport { mergeDeep } from '@/util/helpers'\n\nimport type { InjectionKey, Ref } from 'vue'\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 (props?: { defaults?: DefaultsInstance }) {\n const defaults = useDefaults()\n\n const newDefaults = computed(() => mergeDeep(defaults.value, props?.defaults) as any as DefaultsInstance)\n\n provide(DefaultsSymbol, newDefaults)\n\n return newDefaults\n}\n","// Composables\nimport { useDefaults } from '@/composables/defaults'\n\n// Utilities\nimport { getCurrentInstance } from 'vue'\nimport { wrapInArray } from './helpers'\nimport { consoleWarn } from './console'\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 defaults = useDefaults()\n const globalDefault = defaults.value.global?.[propName]\n const componentDefault = defaults.value[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","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, 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 ...makeLayoutProps({ fullHeight: true }),\n ...makeThemeProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\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 {};","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// 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, defineComponent } from 'vue'\nimport { makeProps } 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 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 { slots.default && (\n <div class={['v-responsive__content', props.contentClass]}>{ slots.default() }</div>\n )}\n </div>\n )\n },\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","// 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 /* istanbul ignore if */\n if (!el._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 el._observe.init\n ) && (\n !modifiers.once ||\n isIntersecting ||\n !el._observe.init\n )\n ) {\n handler(isIntersecting, entries, observer)\n }\n\n if (isIntersecting && modifiers.once) unmounted(el)\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","// Utilities\nimport { h, mergeProps, Transition } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { FunctionalComponent, 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\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 { 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// 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 defineComponent,\n h,\n nextTick,\n onBeforeMount,\n ref,\n vShow,\n watch,\n withDirectives,\n} from 'vue'\nimport {\n makeProps,\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 default defineComponent({\n name: 'VImg',\n\n directives: { intersect },\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'>(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 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 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 (\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 useRender(() => (\n <VResponsive\n class=\"v-img\"\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, __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","// Utilities\nimport { computed } from 'vue'\nimport { 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 (props: BorderProps, name: string) {\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 } from 'vue'\nimport { 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 (props: DensityProps, name: string) {\n const densityClasses = computed(() => {\n return `${name}--density-${props.density}`\n })\n\n return { densityClasses }\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 { propsFactory } from '@/util'\n\n// Types\nexport interface RoundedProps {\n rounded?: boolean | string | number | null\n tile?: boolean\n}\n\n// Composables\nexport const makeRoundedProps = propsFactory({\n rounded: {\n type: [Boolean, Number, String],\n default: undefined,\n },\n tile: Boolean,\n}, 'rounded')\n\nexport function useRounded (props: RoundedProps, name: string) {\n const roundedClasses = computed(() => {\n const classes: string[] = []\n\n if (props.tile) {\n classes.push(`${name}--tile`)\n } else 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 { 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 | 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","// 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 Props extends object,\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()\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(props[prop])) 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 './VAppBar.sass'\n\n// Components\nimport { VImg } from '@/components/VImg'\n\n// Composables\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, defineComponent, ref, toRef } from 'vue'\nimport { convertToUnit } from '@/util'\nimport { makeProps } from '@/util/makeProps'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'VAppBar',\n\n props: makeProps({\n // TODO: Implement scrolling techniques\n // hideOnScroll: Boolean\n // invertedScroll: Boolean\n // collapseOnScroll: Boolean\n // elevateOnScroll: Boolean\n // shrinkOnScroll: Boolean\n // fadeImageOnScroll: Boolean\n collapse: Boolean,\n color: String,\n flat: Boolean,\n height: {\n type: [Number, String],\n default: 64,\n },\n extensionHeight: {\n type: [Number, String],\n default: 48,\n },\n floating: Boolean,\n image: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n prominent: Boolean,\n prominentHeight: {\n type: [Number, String],\n default: 128,\n },\n position: {\n type: String as PropType<'top' | 'bottom'>,\n default: 'top',\n validator: (value: any) => ['top', 'bottom'].includes(value),\n },\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({ name: 'app-bar' }),\n ...makeTagProps({ tag: 'header' }),\n }),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { borderClasses } = useBorder(props, 'v-app-bar')\n const { densityClasses } = useDensity(props, 'v-app-bar')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props, 'v-app-bar')\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const extension = ref<HTMLElement | boolean>(!!slots.extension)\n const height = computed(() => (\n Number(props.prominent ? props.prominentHeight : props.height) +\n Number(extension.value ? props.extensionHeight : 0) -\n (props.density === 'comfortable' ? 8 : 0) -\n (props.density === 'compact' ? 16 : 0)\n ))\n const isActive = useProxiedModel(props, 'modelValue', props.modelValue)\n const layoutStyles = useLayoutItem(\n props.name,\n toRef(props, 'priority'),\n toRef(props, 'position'),\n height,\n height,\n isActive,\n )\n\n return () => {\n const hasImage = !!(slots.image || props.image)\n\n return (\n <props.tag\n class={[\n 'v-app-bar',\n {\n 'v-app-bar--bottom': props.position === 'bottom',\n 'v-app-bar--collapsed': props.collapse,\n 'v-app-bar--flat': props.flat,\n 'v-app-bar--floating': props.floating,\n 'v-app-bar--is-active': isActive.value,\n 'v-app-bar--prominent': props.prominent,\n 'v-app-bar--absolute': props.absolute,\n },\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutStyles.value,\n ]}\n >\n { hasImage && (\n <div class=\"v-app-bar__image\">\n { slots.image\n ? slots.img?.({ src: props.image })\n : (<VImg src={ props.image } cover />)\n }\n </div>\n ) }\n\n <div class=\"v-app-bar__content\">\n { slots.prepend && (\n <div class=\"v-app-bar__prepend\">\n { slots.prepend() }\n </div>\n ) }\n\n { slots.default?.() }\n\n { slots.append && (\n <div class=\"v-app-bar__append\">\n { slots.append() }\n </div>\n ) }\n </div>\n\n { slots.extension && (\n <div\n class=\"v-app-bar__extension\"\n style={{ height: convertToUnit(props.extensionHeight) }}\n ref={ extension }\n >\n { slots.extension?.() }\n </div>\n ) }\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// 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 { 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 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: 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(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 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","// 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, defineComponent, toRef } from 'vue'\nimport { convertToUnit, flattenFragments, makeProps } from '@/util'\n\n// Types\nimport type { IconValue } from '@/composables/icons'\nimport type { ComputedRef, PropType } from 'vue'\n\nexport default defineComponent({\n name: 'VIcon',\n\n props: makeProps({\n color: String,\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--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 { 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","// Utilities\nimport { propsFactory } from '@/util'\nimport {\n computed,\n getCurrentInstance,\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 RouterLinkOptions,\n} from 'vue-router'\n\nexport function useRoute (): Ref<RouteLocationNormalizedLoaded | undefined> {\n const vm = getCurrentInstance()\n\n return computed(() => vm?.proxy?.$route)\n}\n\nexport function useRouter (): Router | undefined {\n return getCurrentInstance()?.proxy?.$router\n}\n\nexport interface LinkProps extends Partial<RouterLinkOptions> {\n href?: string\n}\n\ninterface 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 RouterLinkOptions) : 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\nexport function useBackButton (cb: (next: NavigationGuardNext) => void) {\n const router = useRouter()\n let popped = false\n let removeGuard: (() => void) | undefined\n\n onMounted(() => {\n window.addEventListener('popstate', onPopstate)\n removeGuard = router?.beforeEach((to, from, next) => {\n setTimeout(() => popped ? cb(next) : next())\n })\n })\n onBeforeUnmount(() => {\n window.removeEventListener('popstate', onPopstate)\n removeGuard?.()\n })\n\n function onPopstate (e: PopStateEvent) {\n if (e.state.replaced) return\n\n popped = true\n setTimeout(() => (popped = false))\n }\n}\n","// Composables\nimport { useColor } from '@/composables/color'\n\n// Utilities\nimport { computed } from 'vue'\nimport { propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const allowedVariants = ['contained', 'outlined', 'plain', 'text', 'contained-text'] as const\n\nexport type Variant = typeof allowedVariants[number]\n\nexport interface VariantProps {\n color?: string\n textColor?: 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 textColor: 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 (props: VariantProps, name: string) {\n const variantClasses = computed(() => {\n return `${name}--variant-${props.variant}`\n })\n\n const { colorClasses, colorStyles } = useColor(computed(() => ({\n text: props.textColor,\n [props.variant === 'contained' ? 'background' : 'text']: props.color,\n })))\n\n return { colorClasses, colorStyles, variantClasses }\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","// Styles\nimport './VBtn.sass'\n\n// Components\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 { 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, useTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VBtn',\n\n directives: { Ripple },\n\n props: makeProps({\n flat: Boolean,\n icon: [Boolean, String],\n prependIcon: String,\n appendIcon: String,\n\n block: Boolean,\n stacked: Boolean,\n\n disabled: Boolean,\n ripple: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeRoundedProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\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 } = useTheme(props)\n const { borderClasses } = useBorder(props, 'v-btn')\n const { colorClasses, colorStyles, variantClasses } = useVariant(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 { roundedClasses } = useRounded(props, 'v-btn')\n const { sizeClasses } = useSize(props, 'v-btn')\n const link = useLink(props, attrs)\n\n const isElevated = computed(() => {\n return props.variant === 'contained' && !(props.disabled || props.flat || props.border)\n })\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n\n return (\n <Tag\n type={ Tag === 'a' ? undefined : 'button' }\n class={[\n 'v-btn',\n {\n 'v-btn--active': link.isExactActive?.value,\n 'v-btn--block': props.block,\n 'v-btn--disabled': props.disabled,\n 'v-btn--elevated': isElevated.value,\n 'v-btn--icon': !!props.icon,\n 'v-btn--stacked': props.stacked,\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 variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n positionStyles.value,\n ]}\n disabled={ props.disabled || undefined }\n href={ link.href.value }\n v-ripple={[\n !props.disabled && props.ripple,\n null,\n props.icon ? ['center'] : null,\n ]}\n onClick={ props.disabled || link.navigate }\n >\n { genOverlays(true, 'v-btn') }\n\n { !props.icon && props.prependIcon && (\n <VIcon\n class=\"v-btn__icon\"\n icon={ props.prependIcon }\n left={ !props.stacked }\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 right={ !props.stacked }\n />\n ) }\n </Tag>\n )\n }\n },\n})\n","// Components\nimport { VBtn } from '@/components/VBtn'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VAppBarNavIcon',\n\n props: makeProps({\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","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VAppBarTitle.sass'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util/makeProps'\n\nexport default defineComponent({\n name: 'VAppBarTitle',\n\n props: makeProps({\n ...makeTagProps({ tag: 'header' }),\n }),\n\n setup (props, { slots }) {\n return () => (\n <props.tag class=\"v-app-bar-title\">\n { slots.default && (\n <div class=\"v-app-bar-title__placeholder\">\n { slots.default() }\n </div>\n ) }\n </props.tag>\n )\n },\n})\n","export { default as VAppBar } from './VAppBar'\nexport { default as VAppBarNavIcon } from './VAppBarNavIcon'\nexport { default as VAppBarTitle } from './VAppBarTitle'\n","// extracted by mini-css-extract-plugin\nexport {};","// extracted by mini-css-extract-plugin\nexport {};","// 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, 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 icon: String,\n image: String,\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { densityClasses } = useDensity(props, 'v-avatar')\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 densityClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n sizeStyles.value,\n ]}\n >\n { props.image && <VImg src={ props.image } alt=\"\" /> }\n\n { props.icon && !props.image && <VIcon icon={ props.icon } /> }\n\n { slots.default?.() }\n </props.tag>\n )\n },\n})\n","// Styles\nimport './VAlert.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VBtn } from '@/components/VBtn'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\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, useTheme } from '@/composables/theme'\nimport { makeVariantProps, useVariant } from '@/composables/variant'\nimport { useBorder } from '@/composables/border'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport const allowedTypes = ['success', 'info', 'warning', 'error'] as const\n\nexport type ContextualType = typeof allowedTypes[number]\n\nexport default defineComponent({\n name: 'VAlert',\n\n props: makeProps({\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 sticky: Boolean,\n text: String,\n tip: Boolean,\n type: {\n type: String as PropType<ContextualType>,\n validator: (val: ContextualType) => allowedTypes.includes(val),\n },\n\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n ...makeVariantProps(),\n }),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const borderProps = computed(() => ({\n border: props.border === true || props.tip ? 'start' : props.border,\n }))\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 } = useTheme(props)\n const { borderClasses } = useBorder(borderProps.value, 'v-alert')\n const { colorClasses, colorStyles, variantClasses } = useVariant(variantProps.value, 'v-alert')\n const { densityClasses } = useDensity(props, 'v-alert')\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-alert')\n const { roundedClasses } = useRounded(props, 'v-alert')\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return props.borderColor ?? (props.tip ? variantProps.value.color : undefined)\n }))\n\n function onCloseClick (e: MouseEvent) {\n isActive.value = false\n }\n\n return () => {\n const hasBorder = !!borderProps.value.border\n const hasClose = !!(slots.close || props.closable)\n const hasPrepend = !!(slots.prepend || props.icon || props.type)\n const hasText = !!(slots.default || props.text || hasClose)\n\n return isActive.value && (\n <props.tag\n class={[\n 'v-alert',\n {\n [`v-alert--border-${borderProps.value.border}`]: hasBorder,\n 'v-alert--prominent': props.prominent,\n 'v-alert--tip': props.tip,\n },\n themeClasses.value,\n borderClasses.value,\n !props.tip && colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n !props.tip && colorStyles.value,\n positionStyles.value,\n ]}\n role=\"alert\"\n >\n { hasBorder && (\n <div\n class={[\n 'v-alert__border',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n />\n ) }\n\n <div class=\"v-alert__underlay\" />\n\n <div class=\"v-alert__content\">\n { hasPrepend && (\n <div class=\"v-alert__avatar\">\n { slots.prepend\n ? slots.prepend()\n : (\n <VAvatar\n class={ props.tip && textColorClasses.value }\n style={ props.tip && textColorStyles.value }\n density={ props.density }\n icon={ icon.value }\n />\n )\n }\n </div>\n ) }\n\n { hasText && (\n <div class=\"v-alert__text\">\n { slots.default\n ? slots.default()\n : props.text\n }\n\n { hasClose && (\n <div class=\"v-alert__close\">\n { slots.close\n ? slots.close({ props: { onClick: onCloseClick } })\n : (\n <VBtn\n density={ props.density }\n icon={ props.closeIcon }\n variant=\"text\"\n onClick={ onCloseClick }\n />\n )\n }\n </div>\n ) }\n </div>\n ) }\n </div>\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// 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, MaybeTransition } from '@/composables/transition'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent, toRef } from 'vue'\nimport { convertToUnit, extract, makeProps } 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 <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 ]}\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 </MaybeTransition>\n </div>\n </props.tag>\n )\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","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('v-banner-actions')\n","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VBannerAvatar',\n\n props: makeProps({\n left: Boolean,\n right: Boolean,\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-banner-avatar',\n {\n 'v-banner-avatar--start': props.left,\n 'v-banner-avatar--end': props.right,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-banner-content')\n","import { createSimpleFunctional } from '@/util'\n\nexport default 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 { VAvatar } from '@/components/VAvatar'\nimport VBannerActions from './VBannerActions'\nimport VBannerAvatar from './VBannerAvatar'\nimport VBannerContent from './VBannerContent'\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, useTheme } from '@/composables/theme'\nimport { useDisplay } from '@/composables/display'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VBanner',\n\n props: makeProps({\n avatar: String,\n color: String,\n icon: String,\n lines: {\n type: String,\n default: 'one',\n },\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 { themeClasses } = useTheme(props)\n const { borderClasses } = useBorder(props, 'v-banner')\n const { densityClasses } = useDensity(props, 'v-banner')\n const { dimensionStyles } = useDimension(props)\n const { mobile } = useDisplay()\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-banner')\n const { roundedClasses } = useRounded(props, 'v-banner')\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n return () => {\n const hasAvatar = !!(props.avatar || props.icon || slots.avatar || slots.icon)\n const hasText = !!(props.text || slots.text)\n const hasContent = hasAvatar || hasText || slots.default\n\n return (\n <props.tag\n class={[\n 'v-banner',\n {\n 'v-banner--mobile': mobile.value,\n 'v-banner--sticky': props.sticky,\n [`v-banner--${props.lines}-line`]: true,\n },\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n positionClasses.value,\n roundedClasses.value,\n textColorClasses.value,\n themeClasses.value,\n ]}\n style={[\n dimensionStyles.value,\n positionStyles.value,\n textColorStyles.value,\n ]}\n role=\"banner\"\n >\n { hasContent && (\n <VBannerContent>\n { hasAvatar && (\n <VBannerAvatar>\n { slots.avatar\n ? slots.avatar()\n : (\n <VAvatar\n density={ props.density }\n icon={ props.icon }\n image={ props.avatar }\n />\n )\n }\n </VBannerAvatar>\n ) }\n\n { hasText && (\n <VBannerText>\n { slots.text ? slots.text() : props.text }\n </VBannerText>\n ) }\n\n { slots.default?.() }\n </VBannerContent>\n ) }\n\n { slots.actions && (\n <VBannerActions v-slots={{ default: slots.actions }} />\n ) }\n </props.tag>\n )\n }\n },\n})\n","export { default as VBanner } from './VBanner'\nexport { default as VBannerActions } from './VBannerActions'\nexport { default as VBannerAvatar } from './VBannerAvatar'\nexport { default as VBannerContent } from './VBannerContent'\nexport { default as VBannerText } from './VBannerText'\n","// extracted by mini-css-extract-plugin\nexport {};","// 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 { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useBackgroundColor, useTextColor } from '@/composables/color'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { convertToUnit } from '@/util'\nimport { makeProps } from '@/util/makeProps'\n\nexport default defineComponent({\n name: 'VBottomNavigation',\n\n props: makeProps({\n bgColor: String,\n color: String,\n grow: Boolean,\n modelValue: {\n type: Boolean,\n default: true,\n },\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 ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeLayoutItemProps({\n name: 'bottom-navigation',\n }),\n ...makeTagProps({ tag: 'header' }),\n ...makeThemeProps(),\n }),\n\n emits: {\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\n const { borderClasses } = useBorder(props, 'v-bottom-navigation')\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(computed(() => props.bgColor))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => props.color))\n const { densityClasses } = useDensity(props, 'v-bottom-navigation')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props, 'v-bottom-navigation')\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 layoutStyles = useLayoutItem(\n props.name,\n computed(() => props.priority),\n computed(() => 'bottom'),\n computed(() => isActive.value ? height.value : 0),\n height,\n isActive\n )\n\n return () => {\n return (\n <props.tag\n class={[\n 'v-bottom-navigation',\n {\n 'v-bottom-navigation--grow': props.grow,\n 'v-bottom-navigation--horizontal': props.mode === 'horizontal',\n 'v-bottom-navigation--is-active': isActive.value,\n 'v-bottom-navigation--shift': props.mode === 'shift',\n 'v-bottom-navigation--absolute': props.absolute,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n textColorClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutStyles.value,\n textColorStyles.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","// extracted by mini-css-extract-plugin\nexport {};","// Composables\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent, inject } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport { VBreadcrumbsSymbol } from './VBreadcrumbs'\n\nexport default defineComponent({\n name: 'VBreadcrumbsItem',\n\n props: makeProps({\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 breadcrumbs = inject(VBreadcrumbsSymbol)\n\n if (!breadcrumbs) throw new Error('[Vuetify] Could not find v-breadcrumbs provider')\n\n const link = useLink(props, attrs)\n const isActive = computed(() => {\n return props.active || link.isExactActive?.value\n })\n const color = computed(() => {\n if (isActive.value) return props.activeColor ?? breadcrumbs.color.value\n\n return props.color\n })\n const { textColorClasses, textColorStyles } = useTextColor(color)\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\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 || breadcrumbs.disabled.value,\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 aria-current={ isActive.value ? 'page' : undefined }\n onClick={ isActive.value && link.navigate }\n >\n { props.text }\n\n { slots.default?.() }\n </Tag>\n )\n }\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-breadcrumbs-divider', 'li')\n","// Styles\nimport './VBreadcrumbs.sass'\n\n// Components\nimport VBreadcrumbsItem from './VBreadcrumbsItem'\nimport VBreadcrumbsDivider from './VBreadcrumbsDivider'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent, provide, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref } from 'vue'\nimport type { LinkProps } from '@/composables/router'\n\ninterface BreadcrumbsContext {\n color: Ref<string | undefined>\n disabled: Ref<boolean>\n}\n\nexport const VBreadcrumbsSymbol: InjectionKey<BreadcrumbsContext> = Symbol.for('vuetify:breadcrumbs')\n\nexport type BreadcrumbItem = string | (LinkProps & {\n text: string\n})\n\nexport default defineComponent({\n name: 'VBreadcrumbs',\n\n props: makeProps({\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, 'v-breadcrumbs')\n const { roundedClasses } = useRounded(props, 'v-breadcrumbs')\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const items = computed(() => {\n return props.items.map((item, index, array) => ({\n props: {\n disabled: index >= array.length - 1,\n ...(typeof item === 'string' ? { text: item } : item),\n },\n }))\n })\n\n provide(VBreadcrumbsSymbol, {\n color: toRef(props, 'color'),\n disabled: toRef(props, 'disabled'),\n })\n\n return () => (\n <props.tag\n class={[\n 'v-breadcrumbs',\n densityClasses.value,\n roundedClasses.value,\n textColorClasses.value,\n ]}\n style={[\n textColorStyles.value,\n ]}\n >\n { props.icon && (\n <VIcon icon={ props.icon } left />\n ) }\n\n { items.value.map((item, index) => (\n <>\n <VBreadcrumbsItem\n key={ index }\n { ...item.props }\n >\n { slots.item?.({ ...item, index }) }\n </VBreadcrumbsItem>\n\n { index < props.items.length - 1 && (\n <VBreadcrumbsDivider>\n { slots.divider ? slots.divider({ ...item, index }) : props.divider }\n </VBreadcrumbsDivider>\n ) }\n </>\n )) }\n\n { slots.default?.() }\n </props.tag>\n )\n },\n})\n","export { default as VBreadcrumbs } from './VBreadcrumbs'\nexport { default as VBreadcrumbsItem } from './VBreadcrumbsItem'\nexport { default as VBreadcrumbsDivider } from './VBreadcrumbsDivider'\n","// extracted by mini-css-extract-plugin\nexport {};","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-actions')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-avatar')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-header')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-header-text')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-img')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-media')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-subtitle')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-text')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-card-title')\n","// Styles\nimport './VCard.sass'\n\n// Components\nimport VCardActions from './VCardActions'\nimport VCardAvatar from './VCardAvatar'\nimport VCardHeader from './VCardHeader'\nimport VCardHeaderText from './VCardHeaderText'\nimport VCardImg from './VCardImg'\nimport VCardMedia from './VCardMedia'\nimport VCardSubtitle from './VCardSubtitle'\nimport VCardText from './VCardText'\nimport VCardTitle from './VCardTitle'\nimport { VAvatar } from '@/components/VAvatar'\nimport { VImg } from '@/components/VImg'\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, useTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VCard',\n\n directives: { Ripple },\n\n props: makeProps({\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 } = useTheme(props)\n const { borderClasses } = useBorder(props, 'v-card')\n const { colorClasses, colorStyles, variantClasses } = useVariant(props, 'v-card')\n const { densityClasses } = useDensity(props, 'v-card')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { positionClasses, positionStyles } = usePosition(props, 'v-card')\n const { roundedClasses } = useRounded(props, 'v-card')\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 <VCardImg>\n { slots.image\n ? slots.image?.({ src: props.image })\n : (<VImg src={ props.image } alt=\"\" />)\n }\n </VCardImg>\n ) }\n\n { slots.media && (\n <VCardMedia v-slots={{ default: slots.media }} />\n ) }\n\n { hasHeader && (\n <VCardHeader>\n { hasPrepend && (\n <VCardAvatar>\n { slots.prepend\n ? slots.prepend()\n : (\n <VAvatar\n density={ props.density }\n icon={ props.prependIcon }\n image={ props.prependAvatar }\n />\n )\n }\n </VCardAvatar>\n ) }\n\n { hasHeaderText && (\n <VCardHeaderText>\n { hasTitle && (\n <VCardTitle>\n { slots.title\n ? slots.title()\n : props.title\n }\n </VCardTitle>\n ) }\n\n <VCardSubtitle>\n { slots.subtitle\n ? slots.subtitle()\n : props.subtitle\n }\n </VCardSubtitle>\n </VCardHeaderText>\n ) }\n\n { hasAppend && (\n <VCardAvatar>\n { slots.append\n ? slots.append()\n : (\n <VAvatar\n density={ props.density }\n icon={ props.appendIcon }\n image={ props.appendAvatar }\n />\n )\n }\n </VCardAvatar>\n ) }\n </VCardHeader>\n ) }\n\n { hasText && (\n <VCardText>\n { slots.text ? slots.text() : props.text }\n </VCardText>\n ) }\n\n { slots.default?.() }\n\n { slots.actions && (\n <VCardActions v-slots={{ default: slots.actions }} />\n ) }\n </Tag>\n )\n }\n },\n})\n","export { default as VCard } from './VCard'\nexport { default as VCardActions } from './VCardActions'\nexport { default as VCardAvatar } from './VCardAvatar'\nexport { default as VCardHeader } from './VCardHeader'\nexport { default as VCardHeaderText } from './VCardHeaderText'\nexport { default as VCardImg } from './VCardImg'\nexport { default as VCardItem } from './VCardHeaderText'\nexport { default as VCardMedia } from './VCardMedia'\nexport { default as VCardSubtitle } from './VCardSubtitle'\nexport { default as VCardText } from './VCardText'\nexport { default as VCardTitle } from './VCardTitle'\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\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 { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util/makeProps'\n\nexport default defineComponent({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: makeProps({\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 disabled: Boolean,\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 modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained' } as const),\n }),\n\n emits: {\n 'click:close': (e: Event) => e,\n 'update:active': (value: Boolean) => value,\n },\n\n setup (props, { attrs, emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const { themeClasses } = useTheme(props)\n const { borderClasses } = useBorder(props, 'v-chip')\n const { colorClasses, colorStyles, variantClasses } = useVariant(props, 'v-chip')\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props, 'v-chip')\n const { sizeClasses } = useSize(props, 'v-chip')\n const { densityClasses } = useDensity(props, 'v-chip')\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 hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const isClickable = !props.disabled && (link.isClickable.value || props.link)\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 colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n ]}\n style={ [colorStyles.value] }\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable && props.ripple, null] }\n onClick={ isClickable && link.navigate }\n >\n { genOverlays(isClickable, 'v-chip') }\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\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","// extracted by mini-css-extract-plugin\nexport {};","import './VCode.sass'\n\nimport { createSimpleFunctional } from '@/util'\n\nexport const VCode = createSimpleFunctional('v-code')\n","import { provideDefaults } from '@/composables/defaults'\nimport { defineComponent } from 'vue'\n\nimport type { PropType } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\n\nexport default defineComponent({\n props: {\n defaults: Object as PropType<DefaultsOptions>,\n },\n\n setup (props, { slots }) {\n provideDefaults(props)\n\n return () => slots.default?.()\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","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","import type { PropType } from 'vue'\nimport { defineComponent, Transition } from 'vue'\nimport { acceleratedEasing, deceleratedEasing, makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VDialogTransition',\n\n props: makeProps({\n target: Object as PropType<HTMLElement>,\n }),\n\n setup (props, { slots }) {\n const functions = {\n onEnter (el: Element, done: () => void) {\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 onLeave (el: Element, done: () => void) {\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 }\n\n return () => {\n return props.target\n ? <Transition name=\"dialog-transition\" { ...functions } css={ false } v-slots={ slots } />\n : <Transition name=\"dialog-transition\" v-slots={ slots } />\n }\n },\n})\n\nfunction getDimensions (target: HTMLElement, el: HTMLElement) {\n const initialDisplay = el.style.display\n const initialTransform = el.style.transform\n\n el.style.transition = 'none'\n el.style.display = ''\n el.style.transform = 'none'\n\n const targetBox = target.getBoundingClientRect()\n const elBox = el.getBoundingClientRect()\n const x = (targetBox.width / 2 + targetBox.left) - (elBox.width / 2 + elBox.left)\n const y = (targetBox.height / 2 + targetBox.top) - (elBox.height / 2 + elBox.top)\n el.style.display = initialDisplay\n el.style.transform = initialTransform\n\n return { x, y }\n}\n","// extracted by mini-css-extract-plugin\nexport {};","import { computed, warn } from 'vue'\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) 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","/**\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: 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 (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: 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.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 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 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","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\nfunction hasScrollbar (el?: HTMLElement) {\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","// Styles\nimport './VOverlay.sass'\n\n// Composables\nimport { makeThemeProps, useTheme } 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'\n\n// Directives\nimport { ClickOutside } from '@/directives/click-outside'\n\n// Utilities\nimport { convertToUnit, getScrollParent, getScrollParents, standardEasing, useRender } from '@/util'\nimport { makeProps } from '@/util/makeProps'\nimport {\n computed,\n defineComponent,\n nextTick,\n ref,\n Teleport,\n toRef,\n Transition,\n watch,\n watchEffect,\n} from 'vue'\n\n// Types\nimport type { BackgroundColorData } from '@/composables/color'\nimport type { Prop, PropType, Ref } from 'vue'\n\nfunction useBooted (isActive: Ref<boolean>, eager: Ref<boolean>) {\n const isBooted = ref(eager.value)\n\n watchEffect(() => {\n if (eager.value || isActive.value) {\n isBooted.value = true\n }\n })\n\n return { isBooted }\n}\n\nconst positionStrategies = [\n 'global', // specific viewport position, usually centered\n 'connected', // connected to a certain element\n 'flexible', // connected to an element with the ability to overflow or shift if it doesn't fit in the screen\n] as const\n\nconst scrollStrategies = [\n 'close',\n 'block',\n 'reposition',\n] as const\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\ninterface ScrollStrategy {\n enable (): void\n disable (): void\n}\n\nclass CloseScrollStrategy implements ScrollStrategy {\n private content: Ref<HTMLElement | undefined>\n private scrollElements: EventTarget[] = []\n private isActive: Ref<boolean>\n\n constructor ({ content, isActive }: { content: Ref<HTMLElement | undefined>, isActive: Ref<boolean> }) {\n this.content = content\n this.isActive = isActive\n }\n\n enable () {\n this.scrollElements = [document, ...getScrollParents(this.content.value)]\n\n this.scrollElements.forEach(el => {\n el.addEventListener('scroll', this.onScroll.bind(this), { passive: true })\n })\n }\n\n disable () {\n this.scrollElements.forEach(el => {\n el.removeEventListener('scroll', this.onScroll.bind(this))\n })\n }\n\n private onScroll () {\n this.isActive.value = false\n }\n}\n\nclass BlockScrollStrategy implements ScrollStrategy {\n private initialOverflow: string[] = []\n private scrollElements: HTMLElement[] = []\n private content: Ref<HTMLElement | undefined>\n\n constructor ({ content }: { content: Ref<HTMLElement | undefined> }) {\n this.content = content\n }\n\n enable () {\n this.scrollElements = getScrollParents(this.content.value)\n const scrollbarWidth = window.innerWidth - document.documentElement.offsetWidth\n\n document.documentElement.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n\n this.scrollElements.forEach((el, i) => {\n this.initialOverflow[i] = el.style.overflowY\n el.style.overflowY = 'hidden'\n el.style.setProperty('--v-scrollbar-offset', convertToUnit(scrollbarWidth))\n })\n }\n\n disable () {\n this.scrollElements.forEach((el, i) => {\n el.style.overflowY = this.initialOverflow[i]\n el.style.removeProperty('--v-scrollbar-offset')\n })\n document.documentElement.style.removeProperty('--v-scrollbar-offset')\n }\n}\n\nexport default defineComponent({\n name: 'VOverlay',\n\n directives: { ClickOutside },\n\n inheritAttrs: false,\n\n props: makeProps({\n absolute: Boolean,\n attach: {\n type: [Boolean, String, Object] as PropType<boolean | string | Element>,\n default: 'body',\n },\n eager: Boolean,\n noClickAnimation: Boolean,\n modelValue: Boolean,\n origin: [String, Object] as Prop<string | Element>,\n persistent: Boolean,\n positionStrategy: {\n type: String as PropType<typeof positionStrategies[number]>,\n default: 'global',\n validator: (val: any) => positionStrategies.includes(val),\n },\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n scrollStrategy: {\n type: String as PropType<typeof scrollStrategies[number]>,\n default: 'block',\n validator: (val: any) => scrollStrategies.includes(val),\n },\n ...makeThemeProps(),\n ...makeTransitionProps(),\n }),\n\n emits: {\n 'click:outside': (e: MouseEvent) => true,\n 'update:modelValue': (value: boolean) => true,\n },\n\n setup (props, { slots, attrs, emit }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const { teleportTarget } = useTeleport(toRef(props, 'attach'))\n const { themeClasses } = useTheme(props)\n const { rtlClasses } = useRtl()\n const { isBooted } = useBooted(isActive, toRef(props, 'eager'))\n const scrimColor = useBackgroundColor(computed(() => {\n return typeof props.scrim === 'string' ? props.scrim : null\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\n }\n\n const activatorElement = ref<HTMLElement>()\n function onActivatorClick (e: MouseEvent) {\n activatorElement.value = (e.currentTarget || e.target) as HTMLElement\n isActive.value = !isActive.value\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (e.key === 'Escape') {\n if (!props.persistent) {\n isActive.value = false\n } else animateClick()\n }\n }\n\n useBackButton(next => {\n next(!isActive.value)\n\n if (!props.persistent) isActive.value = false\n else animateClick()\n })\n\n const content = ref<HTMLElement>()\n watch(isActive, val => {\n nextTick(() => {\n if (val) {\n content.value?.focus()\n } else {\n activatorElement.value?.focus()\n }\n })\n })\n\n const root = ref()\n const top = ref<number>()\n watch(() => isActive.value && props.absolute && 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 content.value?.animate([\n { transformOrigin: 'center' },\n { transform: 'scale(1.03)' },\n { transformOrigin: 'center' },\n ], {\n duration: 150,\n easing: standardEasing,\n })\n }\n\n function onAfterLeave () {\n if (!props.eager) isBooted.value = false\n }\n\n const scrollStrategy =\n props.scrollStrategy === 'close' ? new CloseScrollStrategy({ content, isActive })\n : props.scrollStrategy === 'block' ? new BlockScrollStrategy({ content })\n : null\n\n // TODO: reactive\n if (scrollStrategy) {\n watch(isActive, val => {\n nextTick(() => {\n val ? scrollStrategy.enable() : scrollStrategy.disable()\n })\n })\n }\n\n useRender(() => (\n <>\n { slots.activator?.({\n isActive: isActive.value,\n props: {\n modelValue: isActive.value,\n 'onUpdate:modelValue': (val: boolean) => isActive.value = val,\n onClick: onActivatorClick,\n },\n }) }\n <Teleport\n disabled={ !teleportTarget.value }\n ref={ root }\n to={ teleportTarget.value }\n >\n { isBooted.value && (\n <div\n class={[\n 'v-overlay',\n {\n 'v-overlay--absolute': props.absolute,\n 'v-overlay--active': isActive.value,\n },\n themeClasses.value,\n rtlClasses.value,\n ]}\n style={ top.value != null ? `top: ${convertToUnit(top.value)}` : undefined }\n {...attrs}\n >\n <Scrim\n color={ scrimColor }\n modelValue={ isActive.value && !!props.scrim }\n />\n <MaybeTransition\n appear\n onAfterLeave={ onAfterLeave }\n persisted\n transition={ props.transition }\n >\n <div\n ref={ content }\n v-show={ isActive.value }\n v-click-outside={{ handler: onClickOutside, closeConditional }}\n class=\"v-overlay__content\"\n tabindex={ -1 }\n onKeydown={ onKeydown }\n >\n { slots.default?.({ isActive }) }\n </div>\n </MaybeTransition>\n </div>\n )}\n </Teleport>\n </>\n ))\n\n return {\n animateClick,\n content,\n }\n },\n})\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 { defineComponent, mergeProps, ref, watch } from 'vue'\nimport { makeProps } from '@/util/makeProps'\n\n// Globals\nimport { IN_BROWSER } from '@/util'\n\nexport default defineComponent({\n name: 'VDialog',\n\n props: makeProps({\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 ...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<InstanceType<typeof 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?.content &&\n // It isn't the document or the dialog body\n ![document, overlay.value.content].includes(after!) &&\n // It isn't inside the dialog body\n !overlay.value.content.contains(after)\n // We're the topmost dialog\n // TODO: this.activeZIndex >= this.getMaxZIndex() &&\n // It isn't inside a dependent element (like a menu)\n // TODO: !this.getOpenDependentElements().some(el => el.contains(target))\n // So we must have focused something outside the dialog and its children\n ) {\n const focusable = [...overlay.value.content.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 const activatorElement = ref()\n const activator = ({ props, ...data }: any) => {\n return slots.activator?.({\n ...data,\n props: mergeProps(props, {\n 'aria-haspopup': 'dialog',\n onClick: (e: MouseEvent) => {\n activatorElement.value = e.currentTarget\n },\n }),\n })\n }\n\n return () => {\n const transition = mergeProps(\n { target: activatorElement.value },\n typeof props.transition === 'string'\n ? { name: props.transition }\n : props.transition as any\n ) as any\n\n return (\n <VOverlay\n v-model={ isActive.value }\n class={[\n 'v-dialog',\n {\n 'v-dialog--fullscreen': props.fullscreen,\n },\n ]}\n style={ dimensionStyles.value }\n transition={ transition }\n ref={ overlay }\n aria-role=\"dialog\"\n aria-modal=\"true\"\n { ...attrs }\n v-slots={{\n default: slots.default,\n activator,\n }}\n />\n )\n }\n },\n})\n","import VDialog from './VDialog'\n\nexport { VDialog }\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 { makeThemeProps, 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 ...makeThemeProps(),\n }),\n\n setup (props, { attrs }) {\n const { themeClasses } = useTheme(props)\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 { makeThemeProps, 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 ...makeThemeProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\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 { 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 {};","import './VKbd.sass'\n\nimport { createSimpleFunctional } from '@/util'\n\nexport const VKbd = createSimpleFunctional('v-kbd')\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { computed, inject, onBeforeUnmount, onMounted, provide, reactive, toRef } from 'vue'\nimport { useProxiedModel } from './proxiedModel'\nimport { consoleWarn, deepEqual, getUid, propsFactory, wrapInArray } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType, Ref, UnwrapRef } from 'vue'\n\ninterface GroupItem {\n id: number\n value: Ref<unknown>\n disabled: Ref<boolean | undefined>\n}\n\ninterface GroupProps {\n modelValue?: unknown\n multiple?: boolean\n mandatory?: boolean | 'force'\n max?: number\n selectedClass?: string\n}\n\ninterface GroupProvide {\n register: (item: GroupItem, index?: number) => void\n unregister: (id: number) => void\n select: (id: number, value: boolean) => void\n selected: Ref<any[]>\n isSelected: (id: number) => boolean\n prev: () => void\n next: () => void\n selectedClass: Ref<string | undefined>\n}\n\nexport const makeGroupProps = propsFactory({\n modelValue: {\n type: [Number, Boolean, String, Array, Object],\n default: undefined,\n },\n multiple: Boolean,\n mandatory: [Boolean, String] as PropType<boolean | 'force'>,\n max: Number,\n selectedClass: String,\n}, 'group')\n\nexport const makeGroupItemProps = propsFactory({\n value: {\n type: [Number, Boolean, String, Object],\n default: undefined,\n },\n index: Number,\n disabled: Boolean,\n selectedClass: String,\n}, 'group-item')\n\n// Composables\nexport function useGroupItem (\n props: { value?: unknown, index?: number, disabled?: boolean, selectedClass?: string },\n injectKey: InjectionKey<GroupProvide>,\n) {\n const group = inject(injectKey, null)\n\n if (!group) {\n throw new Error(`[Vuetify] Could not find useGroup injection with symbol ${injectKey.description}`)\n }\n\n const id = getUid()\n const value = toRef(props, 'value')\n const disabled = toRef(props, 'disabled')\n\n group.register({\n id,\n value,\n disabled,\n }, props.index)\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 return {\n isSelected,\n toggle: () => group.select(id, !isSelected.value),\n select: (value: boolean) => group.select(id, value),\n selectedClass,\n value,\n disabled,\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 function register (item: GroupItem, index?: number) {\n // Is there a better way to fix this typing?\n const unwrapped = item as unknown as UnwrapRef<GroupItem>\n if (index != null) items.splice(index, 0, unwrapped)\n else items.push(unwrapped)\n }\n\n function unregister (id: number) {\n if (isUnmounted) return\n\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, isSelected: boolean) {\n const item = items.find(item => item.id === id)\n if (isSelected && item?.disabled) return\n\n if (props.multiple) {\n const internalValue = selected.value.slice()\n const index = internalValue.findIndex(v => v === id)\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 props.mandatory &&\n index > -1 &&\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 props.max != null &&\n index < 0 &&\n internalValue.length + 1 > props.max\n ) return\n\n if (index < 0 && isSelected) internalValue.push(id)\n else if (index >= 0 && !isSelected) internalValue.splice(index, 1)\n\n selected.value = internalValue\n } else {\n if (props.mandatory && selected.value.includes(id)) return\n\n selected.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 = {\n register,\n unregister,\n selected,\n select,\n prev: () => step(items.length - 1),\n next: () => step(1),\n isSelected: (id: number) => selected.value.includes(id),\n selectedClass: computed(() => props.selectedClass),\n }\n\n provide(injectKey, state)\n\n return state\n}\n\nfunction getIds (items: UnwrapRef<GroupItem[]>, modelValue: any[]) {\n const ids = []\n for (const item of items) {\n if (item.value != null) {\n if (modelValue.find(value => deepEqual(value, item.value))) {\n ids.push(item.id)\n }\n } else if (modelValue.includes(item.id)) {\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 (const item of items) {\n if (ids.includes(item.id)) {\n values.push(item.value != null ? item.value : item.id)\n }\n }\n\n return values\n}\n","// Styles\nimport './VItemGroup.sass'\n\n// Composables\nimport { makeGroupProps, useGroup } from '@/composables/group'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport const VItemGroupSymbol = Symbol.for('vuetify:v-item-group')\n\nexport default defineComponent({\n name: 'VItemGroup',\n\n props: makeProps({\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 } = useTheme(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","// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { VItemGroupSymbol } from './VItemGroup'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VItem',\n\n props: makeProps(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","export { default as VItemGroup } from './VItemGroup'\nexport { default as VItem } from './VItem'\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 class={ layoutClasses.value }>\n { slots.default?.() }\n </div>\n ))\n\n return {\n getLayoutItem,\n items,\n }\n },\n})\n","// extracted by mini-css-extract-plugin\nexport {};","// Styles\nimport './VLayoutItem.sass'\n\n// Composables\nimport { makeLayoutItemProps, useLayoutItem } from '@/composables/layout'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'VLayoutItem',\n\n props: makeProps({\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 styles = useLayoutItem(\n props.name,\n toRef(props, 'priority'),\n toRef(props, 'position'),\n toRef(props, 'size'),\n toRef(props, 'size'),\n toRef(props, 'modelValue')\n )\n\n return () => (\n <div\n class={[\n 'v-layout-item',\n {\n 'v-layout-item--absolute': props.absolute,\n },\n ]}\n style={ styles.value }\n >\n { slots.default?.() }\n </div>\n )\n },\n})\n","export { default as VLayout } from './VLayout'\nexport { default as VLayoutItem } from './VLayoutItem'\n","// extracted by mini-css-extract-plugin\nexport {};","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","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: (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 = wrapInRef(options.current)\n const fallback = wrapInRef(options.fallback)\n const messages = wrapInRef(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","import './VLocaleProvider.sass'\n\n// Composables\nimport { provideLocale } from '@/composables/locale'\nimport { provideRtl } from '@/composables/rtl'\n\n// Utilities\nimport { defineComponent } from 'vue'\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, { 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","// extracted by mini-css-extract-plugin\nexport {};","// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VListSubheader',\n\n props: makeProps({\n color: String,\n inset: Boolean,\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n\n return () => (\n <props.tag\n class={[\n 'v-list-subheader',\n {\n 'v-list-subheader--inset': props.inset,\n },\n textColorClasses.value,\n ]}\n style={{ textColorStyles }}\n >\n { slots.default && (\n <div class=\"v-list-subheader__text\">\n { slots.default() }\n </div>\n ) }\n </props.tag>\n )\n },\n})\n","// Styles\nimport './VList.sass'\n\n// Components\n// import { VListItem } from '.'\nimport VListSubheader from './VListSubheader'\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, useTheme } from '@/composables/theme'\n\n// Utilities\nimport { defineComponent, toRef } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VList',\n\n props: makeProps({\n color: String,\n disabled: Boolean,\n lines: {\n type: String,\n default: 'one',\n },\n nav: Boolean,\n subheader: {\n type: [Boolean, String],\n default: false,\n },\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { borderClasses } = useBorder(props, 'v-list')\n const { densityClasses } = useDensity(props, 'v-list')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props, 'v-list')\n\n return () => {\n const hasHeader = typeof props.subheader === 'string' || slots.subheader\n\n return (\n <props.tag\n class={[\n 'v-list',\n {\n 'v-list--disabled': props.disabled,\n 'v-list--nav': props.nav,\n 'v-list--subheader': props.subheader,\n 'v-list--subheader-sticky': props.subheader === 'sticky',\n [`v-list--${props.lines}-line`]: true,\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 dimensionStyles.value,\n ]}\n >\n { hasHeader && (\n slots.subheader\n ? slots.subheader()\n : <VListSubheader>{ props.subheader }</VListSubheader>\n ) }\n\n { slots.default?.() }\n </props.tag>\n )\n }\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-list-img')\n","// extracted by mini-css-extract-plugin\nexport {};","// Composables\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VListItemAvatar',\n\n props: makeProps({\n left: Boolean,\n right: Boolean,\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n return () => {\n return (\n <props.tag\n class={[\n 'v-list-item-avatar',\n {\n 'v-list-item-avatar--start': props.left,\n 'v-list-item-avatar--end': props.right,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-list-item-header')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-list-item-subtitle')\n","import { createSimpleFunctional } from '@/util'\n\nexport default createSimpleFunctional('v-list-item-title')\n","// Styles\nimport './VListItem.sass'\n\n// Components\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemHeader from './VListItemHeader'\nimport VListItemSubtitle from './VListItemSubtitle'\nimport VListItemTitle from './VListItemTitle'\nimport { VAvatar } from '@/components/VAvatar'\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 { makeRouterProps, useLink } from '@/composables/router'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed, defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VListItem',\n\n directives: { Ripple },\n\n props: makeProps({\n active: Boolean,\n activeColor: String,\n activeClass: String,\n appendAvatar: String,\n appendIcon: String,\n disabled: Boolean,\n link: Boolean,\n prependAvatar: String,\n prependIcon: String,\n subtitle: String,\n title: String,\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 isActive = computed(() => {\n return props.active || link.isExactActive?.value\n })\n const { themeClasses } = useTheme(props)\n const { borderClasses } = useBorder(props, 'v-list-item')\n const { colorClasses, colorStyles, variantClasses } = useVariant(props, 'v-list-item')\n const { densityClasses } = useDensity(props, 'v-list-item')\n const { dimensionStyles } = useDimension(props)\n const { elevationClasses } = useElevation(props)\n const { roundedClasses } = useRounded(props, 'v-list-item')\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 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 && (link.isClickable.value || props.link)\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 [`${props.activeClass}`]: isActive.value && props.activeClass,\n },\n themeClasses.value,\n borderClasses.value,\n colorClasses.value,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n variantClasses.value,\n ]}\n style={[\n colorStyles.value,\n dimensionStyles.value,\n ]}\n href={ link.href.value }\n tabindex={ isClickable ? 0 : undefined }\n onClick={ isClickable && link.navigate }\n v-ripple={ isClickable }\n >\n { genOverlays(!!(isClickable || isActive.value), 'v-list-item') }\n\n { hasPrepend && (\n slots.prepend\n ? slots.prepend()\n : (\n <VListItemAvatar left>\n <VAvatar\n density={ props.density }\n icon={ props.prependIcon }\n image={ props.prependAvatar }\n />\n </VListItemAvatar>\n )\n ) }\n\n { hasHeader && (\n <VListItemHeader>\n { hasTitle && (\n <VListItemTitle>\n { slots.title\n ? slots.title()\n : props.title\n }\n </VListItemTitle>\n ) }\n\n { hasSubtitle && (\n <VListItemSubtitle>\n { slots.subtitle\n ? slots.subtitle()\n : props.subtitle\n }\n </VListItemSubtitle>\n ) }\n </VListItemHeader>\n ) }\n\n { slots.default?.() }\n\n { hasAppend && (\n slots.append\n ? slots.append()\n : (\n <VListItemAvatar right>\n <VAvatar\n density={ props.density }\n icon={ props.appendIcon }\n image={ props.appendAvatar }\n />\n </VListItemAvatar>\n )\n ) }\n </Tag>\n )\n }\n },\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: 'VListItemMedia',\n\n props: makeProps({\n left: Boolean,\n right: Boolean,\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.left,\n 'v-list-item-media--end': props.right,\n },\n ]}\n v-slots={ slots }\n />\n )\n }\n },\n})\n","export { default as VList } from './VList'\nexport { default as VListSubheader } from './VListSubheader'\nexport { default as VListImg } from './VListImg'\nexport { default as VListItem } from './VListItem'\nexport { default as VListItemAvatar } from './VListItemAvatar'\nexport { default as VListItemHeader } from './VListItemHeader'\nexport { default as VListItemMedia } from './VListItemMedia'\nexport { default as VListItemSubtitle } from './VListItemSubtitle'\nexport { default as VListItemTitle } from './VListItemTitle'\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 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VLazy',\n\n directives: { intersect },\n\n props: makeProps({\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 ...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","// 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 {};","// 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 { useDisplay } from '@/composables/display'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { useBackgroundColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent, onBeforeMount, ref, toRef, watch } from 'vue'\nimport { makeProps } from '@/util/makeProps'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'VNavigationDrawer',\n\n props: makeProps({\n color: String,\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 image: String,\n temporary: 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 ...makeBorderProps(),\n ...makeElevationProps(),\n ...makeLayoutItemProps(),\n ...makeRoundedProps(),\n ...makeTagProps({ tag: 'nav' }),\n ...makeThemeProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\n const { borderClasses } = useBorder(props, 'v-navigation-drawer')\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'color'))\n const { elevationClasses } = useElevation(props)\n const { mobile } = useDisplay()\n const { roundedClasses } = useRounded(props, 'v-navigation-drawer')\n\n const isActive = useProxiedModel(props, 'modelValue')\n const isHovering = ref(false)\n const width = computed(() => {\n return (props.rail && props.expandOnHover && isHovering.value)\n ? props.width\n : Number(props.rail ? props.railWidth : props.width)\n })\n const isTemporary = computed(() => !props.permanent && (mobile.value || props.temporary))\n const layoutStyles = useLayoutItem(\n props.name,\n toRef(props, 'priority'),\n toRef(props, 'position'),\n computed(() => isTemporary.value ? 0 : props.rail && props.expandOnHover ? Number(props.railWidth) : width.value),\n width,\n isActive,\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 hasImage = (slots.image || props.image)\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.position === 'bottom',\n 'v-navigation-drawer--end': props.position === '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.position === 'left',\n 'v-navigation-drawer--temporary': isTemporary.value,\n 'v-navigation-drawer--absolute': props.absolute,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n borderClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n layoutStyles.value,\n ]}\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 }\n },\n})\n","import VOverlay from './VOverlay'\n\nexport { VOverlay }\n","// extracted by mini-css-extract-plugin\nexport {};","// Utilities\nimport { onBeforeUnmount, readonly, ref, watch } from 'vue'\nimport type { DeepReadonly, Ref } from 'vue'\n\ninterface ResizeState {\n resizeRef: Ref<Element | undefined>\n contentRect: DeepReadonly<Ref<DOMRectReadOnly | undefined>>\n borderBoxSize: DeepReadonly<Ref<ResizeObserverSize | undefined>>\n contentBoxSize: DeepReadonly<Ref<ResizeObserverSize | undefined>>\n}\n\nexport function useResizeObserver (callback?: ResizeObserverCallback): ResizeState {\n const resizeRef = ref<Element>()\n const contentRect = ref<DOMRectReadOnly>()\n const contentBoxSize = ref<ResizeObserverSize>()\n const borderBoxSize = ref<ResizeObserverSize>()\n\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 contentBoxSize.value = entries[0].contentBoxSize[0]\n borderBoxSize.value = entries[0].borderBoxSize[0]\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 contentBoxSize.value = undefined\n borderBoxSize.value = undefined\n }\n\n if (newValue) observer.observe(newValue)\n }, {\n flush: 'post',\n })\n\n return {\n resizeRef,\n contentRect: readonly(contentRect),\n contentBoxSize: readonly(contentBoxSize),\n borderBoxSize: readonly(borderBoxSize),\n }\n}\n","// Imports\nimport { onBeforeUpdate, ref } from 'vue'\n\nexport function useRefs <T extends {}> () {\n const refs = 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","import './VPagination.sass'\n\n// Types\nimport type { ComponentPublicInstance } from 'vue'\n\n// Components\nimport { VBtn } from '../VBtn'\n\n// Utilities\nimport { computed, defineComponent, nextTick, ref } from 'vue'\nimport { createRange, keyValues, makeProps } from '@/util'\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 { makeRoundedProps } from '@/composables/rounded'\nimport { makeSizeProps } from '@/composables/size'\nimport { makeThemeProps, useTheme } 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'\n\nexport default defineComponent({\n name: 'VPagination',\n\n props: makeProps({\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 ...makeTagProps({ tag: 'nav' }),\n ...makeElevationProps(),\n ...makeDensityProps(),\n ...makeRoundedProps(),\n ...makeSizeProps(),\n ...makeBorderProps(),\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 } = useTheme(props)\n const maxButtons = ref(-1)\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 <= 3) {\n return [Math.min(Math.max(start.value, page.value), start.value + length.value)]\n }\n\n if (props.length <= totalVisible.value) {\n return createRange(length.value, start.value)\n }\n\n const middle = Math.ceil(totalVisible.value / 2)\n const left = middle\n const right = length.value - middle\n\n if (page.value < left) {\n return [...createRange(Math.max(1, totalVisible.value - 2), start.value), props.ellipsis, length.value]\n } else if (page.value > right) {\n const rangeLength = totalVisible.value - 2\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 - 4)\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 const items = computed(() => {\n const sharedProps = {\n density: props.density,\n rounded: props.rounded,\n size: props.size,\n }\n\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 ...sharedProps,\n ref,\n ellipsis: true,\n icon: true,\n disabled: true,\n variant: props.variant,\n border: props.border,\n },\n }\n } else {\n const isActive = item === page.value\n return {\n isActive,\n page: n(item),\n props: {\n ...sharedProps,\n ref,\n ellipsis: false,\n icon: true,\n disabled: !!props.disabled || props.length < 2,\n elevation: props.elevation,\n variant: props.variant,\n border: props.border,\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 sharedProps = {\n color: undefined,\n density: props.density,\n rounded: props.rounded,\n size: props.size,\n variant: props.variant,\n border: props.border,\n }\n\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 ...sharedProps,\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 ...sharedProps,\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 ...sharedProps,\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 ...sharedProps,\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","// 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 { makeThemeProps, 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: {\n type: String,\n default: 'surface',\n },\n ...makeBorderProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makePositionProps(),\n ...makeRoundedProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\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 {};","// Utilities\nimport { onBeforeUnmount, ref, watch } from 'vue'\n\nexport function useIntersectionObserver (callback?: IntersectionObserverCallback) {\n const intersectionRef = ref<HTMLElement>()\n const isIntersecting = ref(false)\n\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 return { intersectionRef, isIntersecting }\n}\n","// Styles\nimport './VProgressCircular.sass'\n\n// Composables\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { useIntersectionObserver } from '@/composables/intersectionObserver'\nimport { useTextColor } from '@/composables/color'\n\n// Utilities\nimport { computed, defineComponent, toRef } from 'vue'\nimport { convertToUnit, makeProps } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport default defineComponent({\n name: 'VProgressCircular',\n\n props: makeProps({\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 { themeClasses } = useTheme(props)\n const { sizeClasses, sizeStyles } = useSize(props, 'v-progress-circular')\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'color'))\n const { textColorClasses: underlayColorClasses, textColorStyles: underlayColorStyles } = useTextColor(toRef(props, 'bgColor'))\n const { intersectionRef, isIntersecting } = useIntersectionObserver()\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 ? Number(props.size) : intersectionRef.value\n ? intersectionRef.value.getBoundingClientRect().width : 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 return () => (\n <props.tag\n ref={ intersectionRef }\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","// extracted by mini-css-extract-plugin\nexport {};","// 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, useTheme } from '@/composables/theme'\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { computed, defineComponent, ref } from 'vue'\nimport { createRange, getUid, makeProps } from '@/util'\n\n// Types\nimport type { Variant } from '@/composables/variant'\nimport type { Prop } from 'vue'\n\nexport default defineComponent({\n name: 'VRating',\n\n props: makeProps({\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 } = useTheme(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,\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 return () => {\n const hasLabels = !!props.itemLabels?.length\n\n return (\n <props.tag\n class={[\n 'v-rating',\n {\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 ? undefined\n : slots['item-label'] ? slots['item-label']()\n : props.itemLabels?.[i] ? <span>{ props.itemLabels?.[i] }</span>\n : <span> </span>\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 </div>\n )) }\n </props.tag>\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 { makeThemeProps, 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 ...makeThemeProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\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// Composables\nimport { makeThemeProps, useTheme } from '@/composables/theme'\nimport { makeTagProps } from '@/composables/tag'\n\n// Utilities\nimport { defineComponent } from 'vue'\nimport { makeProps } from '@/util'\n\nexport default defineComponent({\n name: 'VThemeProvider',\n\n props: makeProps({\n withBackground: Boolean,\n ...makeThemeProps(),\n ...makeTagProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(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","// extracted by mini-css-extract-plugin\nexport {};","// Components\nimport { VIcon } from '@/components'\nimport { VTimelineSymbol } from './VTimeline'\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 { defineComponent, inject, toRef } from 'vue'\n\nexport default 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 ...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 style={ sizeStyles.value as any } // TODO: Fix this!\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","// Types\nimport type { ComponentPublicInstance } from 'vue'\n\n// Components\nimport { VTimelineSymbol } from './VTimeline'\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 { defineComponent, inject, ref, watch } from 'vue'\nimport { convertToUnit, makeProps } from '@/util'\nimport { makeDimensionProps, useDimension } from '@/composables/dimensions'\n\nexport default defineComponent({\n name: 'VTimelineItem',\n\n props: makeProps({\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 ...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<ComponentPublicInstance>()\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 // @ts-expect-error: broken vue types\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 './VTimeline.sass'\n\n// Components\nimport VTimelineItem from './VTimelineItem'\n\n// Composables\nimport { makeTagProps } from '@/composables/tag'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeThemeProps, useTheme } from '@/composables/theme'\n\n// Helpers\nimport { computed, defineComponent, provide, toRef } from 'vue'\nimport { convertToUnit, makeProps } from '@/util'\n\n// Types\nimport type { InjectionKey, Prop, Ref } from 'vue'\nimport type { Density } from '@/composables/density'\n\nexport type TimelineDirection = 'vertical' | 'horizontal'\nexport type TimelineSide = 'before' | 'after' | undefined\n\ninterface TimelineInstance {\n density: Ref<Density>\n lineColor: Ref<string>\n}\n\nexport const VTimelineSymbol: InjectionKey<TimelineInstance> = Symbol.for('vuetify:timeline')\n\nexport default defineComponent({\n name: 'VTimeline',\n\n props: makeProps({\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 default: 'start',\n validator: (v: any) => ['none', 'start', 'end', 'both'].includes(v),\n },\n ...makeDensityProps(),\n ...makeTagProps(),\n ...makeThemeProps(),\n }),\n\n setup (props, { slots }) {\n const { themeClasses } = useTheme(props)\n const { densityClasses } = useDensity(props, 'v-timeline')\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 return () => (\n <props.tag\n class={[\n 'v-timeline',\n `v-timeline--${props.direction}`,\n {\n 'v-timeline--inset-line': !!props.lineInset,\n 'v-timeline--truncate-line-end': props.truncateLine === 'end' || props.truncateLine === 'both',\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 || undefined),\n }}\n >\n { (props.truncateLine === 'none' || props.truncateLine === 'end') && (\n <VTimelineItem hideDot />\n ) }\n\n { slots.default?.() }\n </props.tag>\n )\n },\n})\n","export { default as VTimeline } from './VTimeline'\nexport { default as VTimelineItem } from './VTimelineItem'\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) {\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 as any)._initialDisplay = el.style.display\n el.style.display = 'none'\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 if (props.hideOnLeave && el) {\n el.style.display = (el as any)._initialDisplay || ''\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: 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 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 { default as VDialogTransition } from './dialog-transition'\n","export * from './VApp'\nexport * from './VAppBar'\nexport * from './VAlert'\n// export * from './VAutocomplete'\nexport * from './VAvatar'\nexport * from './VBadge'\nexport * from './VBanner'\nexport * from './VBottomNavigation'\n// export * from './VBottomSheet'\nexport * from './VBreadcrumbs'\n// export * from './VBtn'\nexport * from './VBtn'\n// export * from './VBtnToggle'\n// export * from './VCalendar'\nexport * from './VCard'\n// export * from './VCarousel'\n// export * from './VCheckbox'\nexport * from './VChip'\n// export * from './VChipGroup'\nexport * from './VCode'\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'\nexport * from './VDefaultsProvider'\nexport * 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'\nexport * from './VKbd'\nexport * from './VItemGroup'\n// export * from './VLabel'\nexport * from './VLayout'\nexport * from './VLocaleProvider'\nexport * from './VList'\nexport * from './VLazy'\nexport * from './VMain'\n// export * from './VMenu'\n// export * from './VMessages'\nexport * from './VNavigationDrawer'\n// export * from './VOverflowBtn'\nexport * from './VOverlay'\nexport * from './VPagination'\nexport * from './VSheet'\n// export * from './VParallax'\n// export * from './VPicker'\nexport * from './VProgressCircular'\n// export * from './VProgressLinear'\n// export * from './VRadioGroup'\n// export * from './VRangeSlider'\nexport * 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 './VSwitch'\nexport * from './VSystemBar'\n// export * from './VTabs'\n// export * from './VTextarea'\n// export * from './VTextField'\nexport * from './VThemeProvider'\nexport * 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","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 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 = {\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'\n\n// Utilities\nimport { keys } from '@/util'\n\nexport interface TouchHandlers {\n start?: (wrapperEvent: TouchEvent & TouchWrapper) => void\n end?: (wrapperEvent: TouchEvent & TouchWrapper) => void\n move?: (wrapperEvent: 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\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","// 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-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, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { reactive } from 'vue'\nimport { 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 interface VuetifyOptions {\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 components = {},\n directives = {},\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 app.provide(DefaultsSymbol, createDefaults(options.defaults))\n app.provide(DisplaySymbol, createDisplay(options.display))\n app.provide(ThemeSymbol, createTheme(options.theme))\n app.provide(IconSymbol, 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(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 * as framework from './framework'\n\nexport const createVuetify = (options: framework.VuetifyOptions = {}) => {\n return framework.createVuetify({ components, directives, ...options })\n}\n"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"vuetify.min.js","sources":["../src/util/anchor.ts","../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/components/transitions/createTransition.ts","../src/components/transitions/expand-transition.ts","../src/components/transitions/dialog-transition.tsx","../src/components/transitions/index.ts","../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/iconsets/mdi.ts","../src/composables/icons.tsx","../src/components/VIcon/VIcon.tsx","../src/composables/location.ts","../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/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/composables/items.ts","../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/point.ts","../src/components/VOverlay/locationStrategies.ts","../src/util/isFixedPosition.ts","../src/components/VOverlay/requestNewFrame.ts","../src/components/VOverlay/scrollStrategies.ts","../src/composables/toggleScope.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/composables/scopeId.ts","../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/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/framework.ts","../src/entry-bundler.ts"],"sourcesContent":["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","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 = boolean | 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\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 IN_BROWSER = typeof window !== 'undefined'\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 {\n computed,\n inject,\n provide,\n reactive,\n ref,\n watch,\n watchEffect,\n} 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, DeepReadonly, 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\nexport type ThemeOptions = false | {\n defaultTheme?: string\n variations?: false | VariationsOptions\n themes?: Record<string, ThemeDefinition>\n}\nexport type ThemeDefinition = DeepPartial<InternalThemeDefinition>\n\ninterface InternalThemeOptions {\n isDisabled: boolean\n defaultTheme: string\n variations: false | VariationsOptions\n themes: Record<string, InternalThemeDefinition>\n}\n\ninterface VariationsOptions {\n colors: string[]\n lighten: number\n darken: number\n}\n\ninterface InternalThemeDefinition {\n dark: boolean\n colors: Colors\n variables: Record<string, string | number>\n}\n\nexport interface Colors extends BaseColors, OnColors {\n [key: string]: string\n}\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 ThemeInstance {\n isDisabled: boolean\n name: Ref<string>\n themes: Ref<Record<string, InternalThemeDefinition>>\n\n readonly current: DeepReadonly<Ref<InternalThemeDefinition>>\n readonly computedThemes: DeepReadonly<Ref<Record<string, InternalThemeDefinition>>>\n\n themeClasses: Readonly<Ref<string | undefined>>\n styles: Readonly<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: Exclude<ThemeOptions, false> = {\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\nfunction parseThemeOptions (options: ThemeOptions = defaultThemeOptions): InternalThemeOptions {\n if (!options) return { ...defaultThemeOptions, isDisabled: true } as InternalThemeOptions\n\n const themes: Record<string, InternalThemeDefinition> = {}\n for (const [key, theme] of Object.entries(options.themes ?? {})) {\n const defaultTheme = theme.dark\n ? defaultThemeOptions.themes?.dark\n : defaultThemeOptions.themes?.light\n themes[key] = mergeDeep(defaultTheme, theme) as InternalThemeDefinition\n }\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 = reactive(parseThemeOptions(options))\n const name = ref(parsedOptions.defaultTheme)\n const themes = ref(parsedOptions.themes)\n\n const computedThemes = computed(() => {\n const acc: Record<string, InternalThemeDefinition> = {}\n for (const [name, original] of Object.entries(themes.value)) {\n const theme: InternalThemeDefinition = acc[name] = {\n ...original,\n colors: {\n ...original.colors,\n },\n }\n\n if (parsedOptions.variations) {\n for (const name of parsedOptions.variations.colors) {\n const color = theme.colors[name]\n for (const variation of (['lighten', 'darken'] as const)) {\n const fn = variation === 'lighten' ? lighten : darken\n for (const amount of createRange(parsedOptions.variations[variation], 1)) {\n theme.colors[`${name}-${variation}-${amount}`] = intToHex(fn(colorToInt(color), amount))\n }\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\n return acc\n })\n const current = computed(() => computedThemes.value[name.value])\n\n const styles = computed(() => {\n const lines: string[] = []\n\n if (current.value.dark) {\n createCssClass(lines, ':root', ['color-scheme: dark'])\n }\n\n for (const [themeName, theme] of Object.entries(computedThemes.value)) {\n const { variables, dark } = theme\n\n createCssClass(lines, `.v-theme--${themeName}`, [\n `color-scheme: ${dark ? 'dark' : 'normal'}`,\n ...genCssVariables(theme),\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 createCssClass(lines, `.${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n } else {\n createCssClass(lines, `.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(lines, `.text-${key}`, [`color: rgb(var(--v-theme-${key})) !important`])\n createCssClass(lines, `.border-${key}`, [`--v-border-color: var(--v-theme-${key})`])\n }\n }\n\n return lines.map((str, i) => i === 0 ? str : ` ${str}`).join('')\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 let styleEl: HTMLStyleElement\n\n watch(styles, updateStyles, { immediate: true })\n function updateStyles () {\n if (parsedOptions.isDisabled) return\n\n if (typeof document !== 'undefined' && !styleEl) {\n const el = document.createElement('style')\n el.type = 'text/css'\n el.id = 'vuetify-theme-stylesheet'\n\n styleEl = el\n document.head.appendChild(styleEl)\n }\n\n if (styleEl) styleEl.innerHTML = styles.value\n }\n }\n\n const themeClasses = computed(() => parsedOptions.isDisabled ? undefined : `v-theme--${name.value}`)\n\n return {\n isDisabled: parsedOptions.isDisabled,\n name,\n themes,\n current,\n computedThemes,\n themeClasses,\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 name = computed<string>(() => {\n return props.theme ?? theme?.name.value\n })\n\n const themeClasses = computed(() => theme.isDisabled ? undefined : `v-theme--${name.value}`)\n\n const newTheme: ThemeInstance = {\n ...theme,\n name,\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\nfunction createCssClass (lines: string[], selector: string, content: string[]) {\n lines.push(\n `${selector} {\\n`,\n ...content.map(line => ` ${line};\\n`),\n '}\\n',\n )\n}\n\nfunction genCssVariables (theme: InternalThemeDefinition) {\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","// 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 {\n computed,\n inject,\n onActivated,\n onBeforeUnmount,\n onDeactivated,\n onMounted,\n provide,\n reactive,\n ref,\n} from 'vue'\nimport { convertToUnit, findChildrenWithProvide, getCurrentInstance, getUid, propsFactory } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, CSSProperties, 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 order: 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<CSSProperties>\n layoutItemScrimStyles: Ref<CSSProperties>\n zIndex: Ref<number>\n }\n unregister: (id: string) => void\n mainStyles: Ref<CSSProperties>\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 order: {\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 order: 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<CSSProperties>(() => {\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 order,\n position,\n layoutSize,\n elementSize,\n active,\n disableTransitions,\n absolute,\n }\n ) => {\n priorities.set(id, order)\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<CSSProperties>(() => {\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 } as const\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<CSSProperties>(() => ({\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 { 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, standardEasing } 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, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = el.animate([\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n { transform: '' },\n ], {\n duration: 225 * speed,\n easing: deceleratedEasing,\n })\n getChildren(el)?.forEach(el => {\n el.animate([\n { opacity: 0 },\n { opacity: 0, offset: 0.33 },\n { opacity: 1 },\n ], {\n duration: 225 * 2 * speed,\n easing: standardEasing,\n })\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, sx, sy, speed } = getDimensions(props.target!, el as HTMLElement)\n\n const animation = el.animate([\n { transform: '' },\n { transform: `translate(${x}px, ${y}px) scale(${sx}, ${sy})`, opacity: 0 },\n ], {\n duration: 125 * speed,\n easing: acceleratedEasing,\n })\n animation.finished.then(() => done())\n getChildren(el)?.forEach(el => {\n el.animate([\n {},\n { opacity: 0, offset: 0.2 },\n { opacity: 0 },\n ], {\n duration: 125 * 2 * speed,\n easing: standardEasing,\n })\n })\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\n/** Animatable children (card, sheet, list) */\nfunction getChildren (el: Element) {\n const els = el.querySelector(':scope > .v-card, :scope > .v-sheet, :scope > .v-list')?.children\n return els && [...els]\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 const tsx = targetBox.width / elBox.width\n const tsy = targetBox.height / elBox.height\n const maxs = Math.max(1, tsx, tsy)\n const sx = tsx / maxs\n const sy = tsy / maxs\n\n // Animate elements larger than 12% of the screen area up to 1.5x slower\n const asa = (elBox.width * elBox.height) / (window.innerWidth * window.innerHeight)\n const speed = asa > 0.12\n ? Math.min(1.5, (asa - 0.12) * 10 + 1)\n : 1\n\n return {\n x: offsetX - (originX + elBox.left),\n y: offsetY - (originY + elBox.top),\n sx,\n sy,\n speed,\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","// 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 { VExpandTransition } from '@/components/transitions'\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, ref, 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\n const isExtended = ref(!!(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 const extension = slots.extension?.()\n isExtended.value = !!(props.extended || extension)\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 <VExpandTransition>\n { isExtended.value && (\n <div\n class=\"v-toolbar__extension\"\n style={{ height: convertToUnit(extensionHeight.value) }}\n >\n { extension }\n </div>\n ) }\n </VExpandTransition>\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 location: {\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 order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\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.location === '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 { 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","// Icons\nimport { aliases, mdi } from '@/iconsets/mdi'\n\n// Utilities\nimport { computed, inject, isRef } from 'vue'\nimport { defineComponent, mergeDeep, propsFactory } from '@/util'\n\n// Types\nimport type { InjectionKey, JSXComponent, PropType, Ref } from 'vue'\n\nexport type IconValue = string | JSXComponent\nexport const IconValue = [String, Function, Object] as PropType<IconValue>\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: 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 function createIcons (options?: IconOptions) {\n return mergeDeep({\n defaultSet: 'mdi',\n sets: {\n ...defaultSets,\n mdi,\n },\n aliases,\n }, options)\n}\n\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 { IconValue, 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 { ComputedRef } from 'vue'\n\nexport const makeVIconProps = propsFactory({\n color: String,\n start: Boolean,\n end: Boolean,\n icon: IconValue,\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","// Composables\nimport { useRtl } from '@/composables/rtl'\n\n// Utilities\nimport { computed } from 'vue'\nimport { parseAnchor, propsFactory } from '@/util'\n\n// Types\nimport type { CSSProperties, PropType } from 'vue'\nimport type { Anchor } from '@/util'\n\nconst oppositeMap = {\n center: 'center',\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n} as const\n\nexport interface LocationProps {\n location: Anchor | undefined\n}\n\nexport const makeLocationProps = propsFactory({\n location: String as PropType<Anchor>,\n}, 'location')\n\nexport function useLocation (props: LocationProps, opposite = false, offset?: (side: string) => number) {\n const { isRtl } = useRtl()\n\n function toPhysical (side: string) {\n return (\n side === 'start' ? (isRtl.value ? 'right' : 'left')\n : side === 'end' ? (isRtl.value ? 'left' : 'right')\n : side\n ) as 'right' | 'left' | 'top' | 'bottom' | 'center'\n }\n\n const locationStyles = computed(() => {\n if (!props.location) return {}\n\n const anchor = parseAnchor(\n props.location.split(' ').length > 1\n ? props.location\n : `${props.location} center` as Anchor\n )\n\n const side = toPhysical(anchor.side)\n const align = toPhysical(anchor.align)\n\n function getOffset (side: string) {\n return offset\n ? offset(side)\n : 0\n }\n\n const styles = {} as CSSProperties\n\n if (side !== 'center') {\n if (opposite) styles[oppositeMap[side]] = `calc(100% - ${getOffset(side)}px)`\n else styles[side] = 0\n }\n if (align !== 'center') {\n if (opposite) styles[oppositeMap[align]] = `calc(100% - ${getOffset(align)}px)`\n else styles[align] = 0\n } else {\n if (side === 'center') styles.top = styles.left = '50%'\n else {\n styles[({\n top: 'left',\n bottom: 'left',\n left: 'top',\n right: 'top',\n } as const)[side]] = '50%'\n }\n styles.transform = {\n top: 'translateX(-50%)',\n bottom: 'translateX(-50%)',\n left: 'translateY(-50%)',\n right: 'translateY(-50%)',\n center: 'translate(-50%, -50%)',\n }[side]\n }\n\n return styles\n })\n\n return { locationStyles }\n}\n","// Utilities\nimport { computed } from 'vue'\nimport { 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 position: Position | undefined\n}\n\n// Composables\nexport const makePositionProps = propsFactory({\n position: {\n type: String as PropType<Position>,\n validator: /* istanbul ignore next */ (v: any) => positionValues.includes(v),\n },\n}, 'position')\n\nexport function usePosition (\n props: PositionProps,\n name = getCurrentInstanceName(),\n) {\n const positionClasses = computed(() => {\n return props.position ? `${name}--${props.position}` : undefined\n })\n\n return { positionClasses }\n}\n","// Utilities\nimport { getCurrentInstance, IN_BROWSER, propsFactory } from '@/util'\nimport {\n computed,\n nextTick,\n onScopeDispose,\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 (router: Router | undefined, cb: (next: NavigationGuardNext) => void) {\n let popped = false\n let removeBefore: (() => void) | undefined\n let removeAfter: (() => void) | undefined\n\n if (IN_BROWSER) {\n nextTick(() => {\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 onScopeDispose(() => {\n window.removeEventListener('popstate', onPopstate)\n removeBefore?.()\n removeAfter?.()\n })\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 { makeLocationProps, useLocation } from '@/composables/location'\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'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { defineComponent } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\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, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\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 ...makeLocationProps(),\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 { locationStyles } = useLocation(props)\n const { positionClasses } = 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 locationStyles.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 <div class=\"v-btn__content\" data-no-activator=\"\">\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 </div>\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// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VAppBarNavIcon = defineComponent({\n name: 'VAppBarNavIcon',\n\n props: {\n icon: {\n type: IconValue,\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 name: 'VAppBarTitle',\n\n props: { ...VToolbarTitle.props },\n\n setup (_, { slots }) {\n return () => (\n <VToolbarTitle\n class=\"v-app-bar-title\"\n v-slots={ slots }\n />\n )\n },\n})\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 { makeLocationProps, useLocation } from '@/composables/location'\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n default: '$close',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n icon: {\n type: [Boolean, String, Function, Object] as PropType<false | IconValue>,\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 ...makeLocationProps(),\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 { locationStyles } = useLocation(props)\n const { positionClasses } = 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 locationStyles.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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\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","// Styles\nimport './VChip.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar'\nimport { VChipGroupSymbol } from '@/components/VChipGroup/VChipGroup'\nimport { VExpandXTransition } from '@/components/transitions'\nimport { VIcon } from '@/components/VIcon'\n\n// Composables\nimport { genOverlays, makeVariantProps, useVariant } from '@/composables/variant'\nimport { makeBorderProps, useBorder } from '@/composables/border'\nimport { makeDensityProps, useDensity } from '@/composables/density'\nimport { makeElevationProps, useElevation } from '@/composables/elevation'\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\nimport { makeRoundedProps, useRounded } from '@/composables/rounded'\nimport { makeRouterProps, useLink } from '@/composables/router'\nimport { makeSizeProps, useSize } from '@/composables/size'\nimport { makeTagProps } from '@/composables/tag'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { useProxiedModel } from '@/composables/proxiedModel'\nimport { IconValue } from '@/composables/icons'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { defineComponent } from '@/util'\n\nexport const VChip = defineComponent({\n name: 'VChip',\n\n directives: { Ripple },\n\n props: {\n activeClass: String,\n appendAvatar: String,\n appendIcon: IconValue,\n closable: Boolean,\n closeIcon: {\n type: IconValue,\n default: '$delete',\n },\n closeLabel: {\n type: String,\n default: '$vuetify.close',\n },\n draggable: Boolean,\n filter: Boolean,\n filterIcon: {\n type: String,\n default: '$complete',\n },\n label: Boolean,\n link: Boolean,\n pill: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: {\n type: Boolean,\n default: true,\n },\n text: String,\n modelValue: {\n type: Boolean,\n default: true,\n },\n\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeElevationProps(),\n ...makeGroupItemProps(),\n ...makeRoundedProps(),\n ...makeRouterProps(),\n ...makeSizeProps(),\n ...makeTagProps({ tag: 'span' }),\n ...makeThemeProps(),\n ...makeVariantProps({ variant: 'contained-text' } as const),\n },\n\n emits: {\n 'click:close': (e: Event) => true,\n 'update:active': (value: Boolean) => true,\n 'update:modelValue': (value: Boolean) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const isActive = useProxiedModel(props, 'modelValue')\n\n const { themeClasses } = provideTheme(props)\n const { borderClasses } = useBorder(props)\n const { colorClasses, colorStyles, variantClasses } = useVariant(props)\n const { elevationClasses } = useElevation(props)\n const group = useGroupItem(props, VChipGroupSymbol, false)\n const { roundedClasses } = useRounded(props)\n const { sizeClasses } = useSize(props)\n const { densityClasses } = useDensity(props)\n const link = useLink(props, attrs)\n\n function onCloseClick (e: Event) {\n isActive.value = false\n\n emit('click:close', e)\n }\n\n return () => {\n const Tag = (link.isLink.value) ? 'a' : props.tag\n const hasAppend = !!(slots.append || props.appendIcon || props.appendAvatar)\n const hasClose = !!(slots.close || props.closable)\n const hasFilter = !!(slots.filter || props.filter) && group\n const hasPrepend = !!(slots.prepend || props.prependIcon || props.prependAvatar)\n const hasColor = !group || group.isSelected.value\n const isClickable = !props.disabled && (!!group || link.isClickable.value || props.link)\n const onClickFunc = props.link ? props.link : group?.toggle\n\n return isActive.value && (\n <Tag\n class={[\n 'v-chip',\n {\n 'v-chip--disabled': props.disabled,\n 'v-chip--label': props.label,\n 'v-chip--link': isClickable,\n 'v-chip--pill': props.pill,\n },\n themeClasses.value,\n borderClasses.value,\n hasColor ? colorClasses.value : undefined,\n densityClasses.value,\n elevationClasses.value,\n roundedClasses.value,\n sizeClasses.value,\n variantClasses.value,\n group?.selectedClass.value,\n ]}\n style={[\n hasColor ? colorStyles.value : undefined,\n ]}\n disabled={ props.disabled || undefined }\n draggable={ props.draggable }\n href={ link.href.value }\n v-ripple={ [isClickable && props.ripple, null] }\n onClick={ isClickable && onClickFunc }\n >\n { genOverlays(isClickable, 'v-chip') }\n\n { hasFilter && (\n <VExpandXTransition>\n <div\n class=\"v-chip__filter\"\n v-show={ group.isSelected.value }\n >\n { slots.filter\n ? slots.filter()\n : <VIcon icon={ props.filterIcon } />\n }\n </div>\n </VExpandXTransition>\n ) }\n\n { hasPrepend && (\n <div class=\"v-chip__prepend\">\n { slots.prepend\n ? slots.prepend()\n : (\n <VAvatar\n icon={ props.prependIcon }\n image={ props.prependAvatar }\n size={ props.size }\n />\n )\n }\n </div>\n ) }\n\n { slots.default?.({\n isSelected: group?.isSelected.value,\n selectedClass: group?.selectedClass.value,\n select: group?.select,\n toggle: group?.toggle,\n value: group?.value.value,\n disabled: props.disabled,\n }) ?? props.text }\n\n { hasAppend && (\n <div class=\"v-chip__append\">\n { slots.append\n ? slots.append()\n : (\n <VAvatar\n icon={ props.appendIcon }\n image={ props.appendAvatar }\n size={ props.size }\n />\n )\n }\n </div>\n ) }\n\n { hasClose && (\n <div\n class=\"v-chip__close\"\n onClick={ onCloseClick }\n >\n { slots.close\n ? slots.close({ props: { onClick: onCloseClick } })\n : (\n <VIcon\n icon={ props.closeIcon }\n size=\"x-small\"\n />\n )\n }\n </div>\n ) }\n </Tag>\n )\n }\n },\n})\n\nexport type VChip = InstanceType<typeof VChip>\n","// 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'\nimport { IconValue } from '@/composables/icons'\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: IconValue\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: IconValue,\n default: '$collapse',\n },\n expandIcon: {\n type: IconValue,\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n disabled: Boolean,\n lines: String as PropType<'one' | 'two' | 'three'>,\n nav: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n subtitle: [String, Number, Boolean],\n title: [String, Number, Boolean],\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 title: 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.title)\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.title }\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, originalItem: item }) => {\n if (type === 'divider') return <VDivider {...itemProps} />\n\n if (type === 'subheader') return <VListSubheader {...itemProps} v-slots={ slots } />\n\n const slotsWithItem = {\n subtitle: slots.subtitle ? (slotProps: any) => slots.subtitle?.({ ...slotProps, item }) : undefined,\n prepend: slots.prepend ? (slotProps: any) => slots.prepend?.({ ...slotProps, item }) : undefined,\n append: slots.append ? (slotProps: any) => slots.append?.({ ...slotProps, item }) : undefined,\n default: slots.default ? (slotProps: any) => slots.default?.({ ...slotProps, item }) : undefined,\n title: slots.title ? (slotProps: any) => slots.title?.({ ...slotProps, item }) : undefined,\n }\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={ slotsWithItem } />,\n default: () => (\n <VListChildren items={ children } v-slots={ slots } />\n ),\n }}\n </VListGroup>\n ) : (\n slots.item ? slots.item(itemProps) : (\n <VListItem\n { ...itemProps }\n v-slots={ slotsWithItem }\n />\n )\n )\n })\n },\n})\n","// Utilities\nimport { computed } from 'vue'\nimport { getPropertyFromItem, pick, propsFactory } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { SelectItemKey } from '@/util'\n\nexport interface InternalItem {\n title: string\n value: any\n props: {\n [key: string]: any\n title: string\n value: any\n }\n children?: InternalItem[]\n originalItem: any\n}\n\nexport interface ItemProps {\n items: any[]\n itemTitle: SelectItemKey\n itemValue: SelectItemKey\n itemChildren: SelectItemKey\n itemProps: SelectItemKey\n returnObject: boolean\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: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'children',\n },\n itemProps: {\n type: [Boolean, String, Array, Function] as PropType<SelectItemKey>,\n default: 'props',\n },\n returnObject: Boolean,\n}, 'item')\n\nexport function transformItem (props: Omit<ItemProps, 'items'>, item: any) {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, title)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n title: _props.title,\n value: _props.value,\n props: _props,\n children: Array.isArray(children) ? transformItems(props, children) : undefined,\n originalItem: item,\n }\n}\n\nexport function transformItems (props: Omit<ItemProps, 'items'>, 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 function transformIn (value: any[]): InternalItem[] {\n return value.map(item => transformItem(props, item))\n }\n\n function transformOut (value: InternalItem[]) {\n if (props.returnObject) return value.map(({ originalItem: item }) => item)\n return value.map(({ props }) => props.value)\n }\n\n return { items, transformIn, transformOut }\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 { makeItemsProps } from '@/composables/items'\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, getPropertyFromItem, pick, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\nimport type { ListGroupActivatorSlot } from './VListGroup'\nimport type { InternalItem, ItemProps } from '@/composables/items'\n\nexport interface InternalListItem extends InternalItem {\n type?: 'item' | 'subheader' | 'divider'\n}\n\nfunction transformItem (props: ItemProps & { itemType: string }, item: any): InternalListItem {\n const type = getPropertyFromItem(item, props.itemType, 'item')\n const title = typeof item === 'string' ? item : getPropertyFromItem(item, props.itemTitle)\n const value = getPropertyFromItem(item, props.itemValue, undefined)\n const children = getPropertyFromItem(item, props.itemChildren)\n const itemProps = props.itemProps === true ? pick(item, ['children'])[1] : getPropertyFromItem(item, props.itemProps)\n\n const _props = {\n title,\n value,\n ...itemProps,\n }\n\n return {\n type,\n title: _props.title,\n value: _props.value,\n props: _props,\n children: type === 'item' && children ? transformItems(props, children) : undefined,\n originalItem: item,\n }\n}\n\nfunction transformItems (props: ItemProps & { itemType: string }, items: (string | object)[]) {\n const array: InternalListItem[] = []\n\n for (const item of items) {\n array.push(transformItem(props, item))\n }\n\n return array\n}\n\nfunction useListItems (props: ItemProps & { itemType: string }) {\n const items = computed(() => transformItems(props, props.items))\n\n return { items }\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\n ...makeNestedProps({\n selectStrategy: 'single-leaf' as const,\n openStrategy: 'list' as const,\n }),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n itemType: {\n type: String,\n default: 'type',\n },\n ...makeItemsProps(),\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 } = useListItems(props)\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 let el = vm?.proxy?.$el?.parentNode\n while (el.hasAttribute('data-no-activator')) {\n el = el.parentNode\n }\n activator = el\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","import type { ParsedAnchor } from '@/util'\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 {\n convertToUnit,\n getScrollParent,\n IN_BROWSER,\n isFixedPosition,\n nullifyTransforms,\n oppositeAnchor,\n parseAnchor,\n physicalAnchor,\n propsFactory,\n} from '@/util'\nimport { Box } from '@/util/box'\nimport { anchorToPoint, getOffset } from './util/point'\n\n// Types\nimport type { EffectScope, PropType, Ref } from 'vue'\nimport type { Anchor } from '@/util'\n\nexport interface LocationStrategyData {\n contentEl: Ref<HTMLElement | undefined>\n activatorEl: Ref<HTMLElement | undefined>\n isActive: Ref<boolean>\n}\n\nconst locationStrategies = {\n static: staticLocationStrategy, // specific viewport position, usually centered\n connected: connectedLocationStrategy, // connected to a certain element\n}\n\nexport interface StrategyProps {\n locationStrategy: keyof typeof locationStrategies | (\n (\n data: LocationStrategyData,\n props: StrategyProps,\n contentStyles: Ref<Record<string, string>>\n ) => undefined | { updateLocation: (e: Event) => void }\n )\n location: Anchor\n origin: Anchor | 'auto' | 'overlap'\n offset?: number | string\n maxHeight?: number | string\n maxWidth?: number | string\n minHeight?: number | string\n minWidth?: number | string\n}\n\nexport const makeLocationStrategyProps = propsFactory({\n locationStrategy: {\n type: [String, Function] as PropType<StrategyProps['locationStrategy']>,\n default: 'static',\n validator: (val: any) => typeof val === 'function' || val in locationStrategies,\n },\n location: {\n type: String as PropType<StrategyProps['location']>,\n default: 'bottom',\n },\n origin: {\n type: String as PropType<StrategyProps['origin']>,\n default: 'auto',\n },\n offset: [Number, String],\n})\n\nexport function useLocationStrategies (\n props: StrategyProps,\n data: LocationStrategyData\n) {\n const contentStyles = ref({})\n const updateLocation = ref<(e: Event) => void>()\n\n let scope: EffectScope | undefined\n watchEffect(async () => {\n scope?.stop()\n updateLocation.value = undefined\n\n if (!(IN_BROWSER && data.isActive.value && props.locationStrategy)) return\n\n scope = effectScope()\n await nextTick()\n scope.run(() => {\n if (typeof props.locationStrategy === 'function') {\n updateLocation.value = props.locationStrategy(data, props, contentStyles)?.updateLocation\n } else {\n updateLocation.value = locationStrategies[props.locationStrategy](data, props, contentStyles)?.updateLocation\n }\n })\n })\n\n IN_BROWSER && window.addEventListener('resize', onResize, { passive: true })\n\n onScopeDispose(() => {\n IN_BROWSER && window.removeEventListener('resize', onResize)\n updateLocation.value = undefined\n scope?.stop()\n })\n\n function onResize (e: Event) {\n updateLocation.value?.(e)\n }\n\n return {\n contentStyles,\n updateLocation,\n }\n}\n\nfunction staticLocationStrategy () {\n // TODO\n}\n\nfunction connectedLocationStrategy (data: LocationStrategyData, props: StrategyProps, contentStyles: Ref<Record<string, string>>) {\n const activatorFixed = isFixedPosition(data.activatorEl.value)\n if (activatorFixed) {\n Object.assign(contentStyles.value, {\n position: 'fixed',\n })\n }\n\n const preferredAnchor = computed(() => parseAnchor(props.location))\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) updateLocation()\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 updateLocation () {\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 () => updateLocation(),\n { immediate: !activatorFixed }\n )\n\n if (activatorFixed) nextTick(() => updateLocation())\n requestAnimationFrame(() => {\n if (contentStyles.value.maxHeight) updateLocation()\n })\n\n return { updateLocation }\n}\n","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 updateLocation: 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.updateLocation.value?.(e)\n const time = performance.now() - start\n slow = time / (1000 / 60) > 2\n })\n }\n\n bindScroll(data.activatorEl.value ?? data.contentEl.value, e => {\n if (slow) {\n // If the position calculation is slow,\n // defer updates until scrolling is finished.\n // Browsers usually fire one scroll event per frame so\n // we just wait until we've got two frames without an event\n cancelAnimationFrame(raf)\n raf = requestAnimationFrame(() => {\n raf = requestAnimationFrame(() => {\n update(e)\n })\n })\n } else {\n update(e)\n }\n })\n}\n\n/** @private */\nfunction bindScroll (el: HTMLElement | undefined, onScroll: (e: Event) => void) {\n const scrollElements = [document, ...getScrollParents(el)]\n scrollElements.forEach(el => {\n el.addEventListener('scroll', onScroll, { passive: true })\n })\n\n onScopeDispose(() => {\n scrollElements.forEach(el => {\n el.removeEventListener('scroll', onScroll)\n })\n })\n}\n","import { effectScope, watch } from 'vue'\nimport type { EffectScope, WatchSource } from 'vue'\n\nexport function useToggleScope (source: WatchSource<boolean>, cb: () => void) {\n let scope: EffectScope | undefined\n watch(source, active => {\n if (active && !scope) {\n scope = effectScope()\n scope.run(cb)\n } else {\n scope?.stop()\n scope = undefined\n }\n }, { immediate: true })\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 { useToggleScope } from '@/composables/toggleScope'\n\nimport { computed, onScopeDispose, reactive, readonly, ref, toRaw, watchEffect } from 'vue'\nimport { getCurrentInstance } from '@/util'\n\n// Types\nimport type { ComponentInternalInstance, Ref } from 'vue'\n\nconst stack = reactive<[vm: ComponentInternalInstance, zIndex: number][]>([])\n\nexport function useStack (isActive: Readonly<Ref<boolean>>, zIndex: Readonly<Ref<string | number>>) {\n const vm = getCurrentInstance('useStack')\n\n const _zIndex = ref(+zIndex.value)\n useToggleScope(isActive, () => {\n const lastZIndex = stack[stack.length - 1]?.[1]\n _zIndex.value = lastZIndex ? lastZIndex + 10 : +zIndex.value\n stack.push([vm, _zIndex.value])\n\n onScopeDispose(() => {\n const idx = stack.findIndex(v => v[0] === vm)\n stack.splice(idx, 1)\n })\n })\n\n const isTop = ref(true)\n watchEffect(() => {\n const _isTop = toRaw(stack[stack.length - 1]?.[0]) === vm\n setTimeout(() => isTop.value = _isTop)\n })\n\n return {\n isTop: readonly(isTop),\n stackStyles: computed(() => ({ zIndex: _zIndex.value })),\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 { makeLocationStrategyProps, useLocationStrategies } from './locationStrategies'\nimport { makeScrollStrategyProps, useScrollStrategies } from './scrollStrategies'\nimport { makeThemeProps, provideTheme } from '@/composables/theme'\nimport { makeTransitionProps, MaybeTransition } from '@/composables/transition'\nimport { useBackButton, useRouter } from '@/composables/router'\nimport { useToggleScope } from '@/composables/toggleScope'\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 toRef,\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 closeOnBack: {\n type: Boolean,\n default: true,\n },\n contained: Boolean,\n contentClass: null,\n contentProps: null,\n disabled: Boolean,\n noClickAnimation: Boolean,\n modelValue: Boolean,\n persistent: Boolean,\n scrim: {\n type: [String, Boolean],\n default: true,\n },\n zIndex: {\n type: [Number, String],\n default: 2000,\n },\n\n ...makeActivatorProps(),\n ...makeDimensionProps(),\n ...makeLocationStrategyProps(),\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 model = useProxiedModel(props, 'modelValue')\n const isActive = computed({\n get: () => model.value,\n set: v => {\n if (!(v && props.disabled)) model.value = v\n },\n })\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, stackStyles } = useStack(isActive, toRef(props, 'zIndex'))\n const { activatorEl, activatorRef, activatorEvents, contentEvents } = useActivator(props, { isActive, isTop })\n const { dimensionStyles } = useDimension(props)\n\n watch(() => props.disabled, v => {\n if (v) isActive.value = false\n })\n\n const root = ref<HTMLElement>()\n const contentEl = ref<HTMLElement>()\n const { contentStyles, updateLocation } = useLocationStrategies(props, {\n contentEl,\n activatorEl,\n isActive,\n })\n useScrollStrategies(props, {\n root,\n contentEl,\n activatorEl,\n isActive,\n updateLocation,\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 const router = useRouter()\n useToggleScope(() => props.closeOnBack, () => {\n useBackButton(router, 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\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={[stackStyles.value, { top: convertToUnit(top.value) }]}\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 { ...props.contentProps }\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 updateLocation,\n }\n },\n})\n\nexport type VOverlay = InstanceType<typeof VOverlay>\n","import { getCurrentInstance } from '@/util'\n\nexport function useScopeId () {\n const vm = getCurrentInstance('useScopeId')\n\n const scopeId = vm!.vnode.scopeId\n\n return { scopeId: scopeId ? { [scopeId]: '' } : undefined }\n}\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'\nimport { useScopeId } from '@/composables/scopeId'\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 const { scopeId } = useScopeId()\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 locationStrategy=\"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 { ...scopeId }\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.rules.length) return true\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n prependIcon: IconValue,\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, SetupContext } from 'vue'\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'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { computed, ref, toRef, watch } from 'vue'\nimport {\n convertToUnit,\n genericComponent,\n getUid,\n nullifyTransforms,\n pick,\n propsFactory,\n standardEasing,\n useRender,\n} from '@/util'\n\n// Types\nimport type { VInputSlot } from '@/components/VInput/VInput'\nimport type { LoaderSlotProps } from '@/composables/loader'\nimport type { PropType, Ref } from 'vue'\nimport type { MakeSlots } from '@/util'\n\nconst allowedVariants = ['underlined', 'outlined', 'filled', '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: IconValue,\n bgColor: String,\n clearable: Boolean,\n clearIcon: {\n type: IconValue,\n default: '$clear',\n },\n active: Boolean,\n color: String,\n dirty: Boolean,\n disabled: Boolean,\n error: Boolean,\n label: String,\n persistentClear: Boolean,\n prependInnerIcon: IconValue,\n reverse: Boolean,\n singleLine: Boolean,\n variant: {\n type: String as PropType<Variant>,\n default: 'filled',\n validator: (v: any) => allowedVariants.includes(v),\n },\n\n ...makeThemeProps(),\n ...makeLoaderProps(),\n}, 'v-field')\n\nexport type VFieldSlots = MakeSlots<{\n clear: []\n prependInner: [DefaultInputSlot & VInputSlot]\n appendInner: [DefaultInputSlot & VInputSlot]\n label: [DefaultInputSlot & VInputSlot]\n loader: [LoaderSlotProps]\n default: [VFieldSlot]\n}>\n\nexport const VField = genericComponent<new <T>() => {\n $props: {\n modelValue?: T\n 'onUpdate:modelValue'?: (val: T) => any\n }\n $slots: VFieldSlots\n}>()({\n name: 'VField',\n\n inheritAttrs: false,\n\n props: {\n id: String,\n\n ...makeFocusProps(),\n ...makeVFieldProps(),\n },\n\n emits: {\n 'click:clear': (e: MouseEvent) => true,\n 'click:control': (e: MouseEvent) => true,\n 'update:focused': (focused: boolean) => true,\n 'update:modelValue': (val: any) => true,\n },\n\n setup (props, { attrs, emit, slots }) {\n const { themeClasses } = provideTheme(props)\n const { loaderClasses } = useLoader(props)\n const { focusClasses, isFocused, focus, blur } = useFocus(props)\n\n const isActive = computed(() => props.dirty || props.active)\n const hasLabel = computed(() => !props.singleLine && !!(props.label || slots.label))\n\n const uid = getUid()\n const id = computed(() => props.id || `input-${uid}`)\n\n const labelRef = ref<VFieldLabel>()\n const floatingLabelRef = ref<VFieldLabel>()\n const controlRef = ref<HTMLElement>()\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(toRef(props, 'bgColor'))\n const { textColorClasses, textColorStyles } = useTextColor(computed(() => {\n return (\n isActive.value &&\n isFocused.value &&\n !props.error &&\n !props.disabled\n ) ? props.color : undefined\n }))\n\n watch(isActive, val => {\n if (hasLabel.value) {\n const el: HTMLElement = labelRef.value!.$el\n const targetEl: HTMLElement = floatingLabelRef.value!.$el\n const rect = nullifyTransforms(el)\n const targetRect = targetEl.getBoundingClientRect()\n\n const x = targetRect.x - rect.x\n const y = targetRect.y - rect.y - (rect.height / 2 - targetRect.height / 2)\n\n const targetWidth = targetRect.width / 0.75\n const width = Math.abs(targetWidth - rect.width) > 1\n ? { maxWidth: convertToUnit(targetWidth) }\n : undefined\n\n const duration = parseFloat(getComputedStyle(el).transitionDuration) * 1000\n const scale = parseFloat(getComputedStyle(targetEl).getPropertyValue('--v-field-label-scale'))\n\n el.style.visibility = 'visible'\n targetEl.style.visibility = 'hidden'\n\n el.animate([\n { transform: 'translate(0)' },\n { transform: `translate(${x}px, ${y}px) scale(${scale})`, ...width },\n ], {\n duration,\n easing: standardEasing,\n direction: val ? 'normal' : 'reverse',\n }).finished.then(() => {\n el.style.removeProperty('visibility')\n targetEl.style.removeProperty('visibility')\n })\n }\n }, { flush: 'post' })\n\n const slotProps = computed<DefaultInputSlot>(() => ({\n isActive,\n isFocused,\n controlRef,\n blur,\n focus,\n }))\n\n function onClick (e: MouseEvent) {\n if (e.target !== document.activeElement) {\n e.preventDefault()\n }\n\n emit('click:control', e)\n }\n\n useRender(() => {\n const isOutlined = props.variant === 'outlined'\n const hasPrepend = (slots.prependInner || props.prependInnerIcon)\n const hasClear = !!(props.clearable || slots.clear)\n const hasAppend = !!(slots.appendInner || props.appendInnerIcon || hasClear)\n const label = slots.label\n ? slots.label({\n label: props.label,\n props: { for: id.value },\n })\n : props.label\n\n return (\n <div\n class={[\n 'v-field',\n {\n 'v-field--active': isActive.value,\n 'v-field--appended': hasAppend,\n 'v-field--disabled': props.disabled,\n 'v-field--dirty': props.dirty,\n 'v-field--error': props.error,\n 'v-field--has-background': !!props.bgColor,\n 'v-field--persistent-clear': props.persistentClear,\n 'v-field--prepended': hasPrepend,\n 'v-field--reverse': props.reverse,\n 'v-field--single-line': props.singleLine,\n 'v-field--has-label': !!label,\n [`v-field--variant-${props.variant}`]: true,\n },\n themeClasses.value,\n backgroundColorClasses.value,\n focusClasses.value,\n loaderClasses.value,\n ]}\n style={[\n backgroundColorStyles.value,\n textColorStyles.value,\n ]}\n onClick={ onClick }\n { ...attrs }\n >\n <div class=\"v-field__overlay\" />\n\n <LoaderSlot\n name=\"v-field\"\n active={ props.loading }\n color={ props.error ? 'error' : props.color }\n v-slots={{ default: slots.loader }}\n />\n\n { hasPrepend && (\n <div\n class=\"v-field__prepend-inner\"\n >\n { props.prependInnerIcon && (\n <VIcon\n onClick={ attrs['onClick:prependInner'] }\n icon={ props.prependInnerIcon }\n />\n ) }\n\n { slots?.prependInner?.(slotProps.value) }\n </div>\n ) }\n\n <div class=\"v-field__field\" data-no-activator=\"\">\n { ['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:appendInner'] }\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 data-no-activator=\"\"\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","// Locales\nimport en from '@/locale/en'\n\n// Composables\nimport { createRtl, RtlSymbol } from '@/composables/rtl'\n\n// Utilities\nimport { computed, inject, provide, ref } from 'vue'\nimport { consoleError, consoleWarn, getObjectValueByPath } from '@/util'\n\n// Types\nimport type { RtlOptions } from '@/composables/rtl'\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 createLocale (\n app: App,\n options?: (LocaleOptions & RtlOptions) | (LocaleAdapter & RtlOptions),\n) {\n const adapter = isLocaleAdapter(options) ? options : createDefaultLocaleAdapter(options)\n const instance = adapter.createRoot(app)\n\n app?.provide(RtlSymbol, createRtl(instance, options))\n\n return adapter\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 if (!app) throw new Error('[Vuetify] Could not find default app instance')\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 { VDialogTransition } from '@/components/transitions'\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'\nimport { IconValue } from '@/composables/icons'\n\n// Utility\nimport { computed, ref } from 'vue'\nimport { genericComponent, propsFactory, useRender, wrapInArray } from '@/util'\n\n// Types\nimport type { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { InternalItem } from '@/composables/items'\nimport type { MakeSlots } from '@/util'\n\nexport const makeSelectProps = propsFactory({\n chips: Boolean,\n closableChips: Boolean,\n eager: Boolean,\n hideNoData: Boolean,\n hideSelected: Boolean,\n menuIcon: {\n type: IconValue,\n default: '$dropdown',\n },\n modelValue: {\n type: null,\n default: () => ([]),\n },\n multiple: Boolean,\n noDataText: {\n type: String,\n default: '$vuetify.noDataText',\n },\n openOnClear: Boolean,\n\n ...makeItemsProps({ itemChildren: false }),\n}, 'select')\n\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VSelect = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: VInputSlots & VFieldSlots & MakeSlots<{\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\n }>\n}>()({\n name: 'VSelect',\n\n props: {\n ...makeSelectProps(),\n ...makeTransitionProps({ transition: { component: VDialogTransition } }),\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 menu = ref(false)\n const { items, transformIn, transformOut } = useItems(props)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : transformed[0]\n }\n )\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.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: InternalItem) {\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]\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\n menu.value = false\n }\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.map(v => v.props.value).join(', ') }\n onKeydown={ onKeydown }\n >\n {{\n ...slots,\n default: () => (\n <>\n <VMenu\n v-model={ menu.value }\n activator=\"parent\"\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.props }\n onMousedown={ (e: MouseEvent) => e.preventDefault() }\n onClick={ () => select(item) }\n />\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-select__selection\">\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: selection.props.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ props: slotProps, selection, index })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item: selection.originalItem, index })\n : (\n <span class=\"v-select__selection-text\">\n { selection.props.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'\nimport type { InternalItem } from './items'\n\n/**\n * - match without highlight\n * - single match (index), length already known\n * - single match (start, end)\n * - multiple matches (start, end), probably shouldn't overlap\n */\nexport type FilterMatch = boolean | number | [number, number] | [number, number][]\nexport type FilterFunction = (value: string, query: string, item?: any) => FilterMatch\nexport type FilterKeyFunctions = Record<string, FilterFunction>\nexport type FilterKeys = string | string[]\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 (\n items: any[],\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: { index: number, 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 (let i = 0; i < items.length; i++) {\n const item = items[i]\n const customMatches: Record<string, FilterMatch> = {}\n const defaultMatches: Record<string, FilterMatch> = {}\n let match: FilterMatch = -1\n\n if (query && !options?.noFilter) {\n if (typeof item === 'object') {\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 } else {\n match = filter(item, query, item)\n if (match !== -1 && match !== false) {\n defaultMatches.title = match\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({ index: i, matches: { ...defaultMatches, ...customMatches } })\n }\n\n return array\n}\n\nexport function useFilter (\n props: FilterProps,\n items: MaybeRef<InternalItem[]>,\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 const transformedItems = unref(items)\n const matches = filterItems(\n transformedItems,\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 return matches.map(({ index, matches }) => ({\n item: transformedItems[index],\n matches,\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 { 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 { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { MakeSlots } from '@/util'\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\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VAutocomplete = genericComponent<new <\n T,\n ReturnObject extends boolean = false,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: VInputSlots & VFieldSlots & MakeSlots<{\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\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 isFocused = ref(false)\n const isPristine = ref(true)\n const menu = ref(false)\n const { items, transformIn, transformOut } = useItems(props)\n const search = useProxiedModel(props, 'search', '')\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v)),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : transformed[0]\n }\n )\n const { filteredItems } = useFilter(props, items, computed(() => isPristine.value ? undefined : search.value))\n const selections = computed(() => {\n return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.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]\n search.value = ''\n } else {\n const value = [...model.value]\n value.splice(index, 1)\n model.value = value\n }\n } else {\n model.value = [item]\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(isFocused, val => {\n if (val) {\n isSelecting.value = true\n search.value = props.multiple ? '' : String(selections.value.at(-1)?.props.title ?? '')\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 <VMenu\n v-model={ menu.value }\n activator=\"parent\"\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 { ...item.props }\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.props.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ props: slotProps, item: selection.originalItem, index })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item: selection.originalItem, index })\n : (\n <span class=\"v-autocomplete__selection-text\">\n { selection.props.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 { makeLocationProps, useLocation } from '@/composables/location'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { toRef } from 'vue'\nimport { 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: IconValue,\n inline: Boolean,\n label: {\n type: String,\n default: '$vuetify.badge',\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\n ...makeLocationProps({ location: 'top end' } as const),\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 { roundedClasses } = useRounded(props)\n const { t } = useLocale()\n const { textColorClasses, textColorStyles } = useTextColor(toRef(props, 'textColor'))\n const { themeClasses } = useTheme()\n\n const { locationStyles } = useLocation(props, true, side => {\n const base = props.floating\n ? (props.dot ? 2 : 4)\n : (props.dot ? 8 : 12)\n\n return base + (\n ['top', 'bottom'].includes(side) ? +(props.offsetY ?? 0)\n : ['left', 'right'].includes(side) ? +(props.offsetX ?? 0)\n : 0\n )\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 textColorStyles.value,\n props.inline ? {} : locationStyles.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 : content\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 { makeLocationProps, useLocation } from '@/composables/location'\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\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 ...makeLocationProps(),\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 { locationStyles } = useLocation(props)\n const { positionClasses } = 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 locationStyles.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 order: computed(() => parseInt(props.order, 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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\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 { makeLocationProps, useLocation } from '@/composables/location'\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n disabled: Boolean,\n flat: Boolean,\n hover: Boolean,\n image: String,\n link: Boolean,\n prependAvatar: String,\n prependIcon: IconValue,\n ripple: Boolean,\n subtitle: String,\n text: String,\n title: String,\n\n ...makeThemeProps(),\n ...makeBorderProps(),\n ...makeDensityProps(),\n ...makeDimensionProps(),\n ...makeElevationProps(),\n ...makeLocationProps(),\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 { locationStyles } = useLocation(props)\n const { positionClasses } = 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 locationStyles.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'\nimport type { IconValue } from '@/composables/icons'\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: IconValue\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, Function, Object] as PropType<IconValue>,\n default: '$next',\n },\n prevIcon: {\n type: [Boolean, String, Function, Object] as PropType<IconValue>,\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\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'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\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<IconValue | undefined>\n falseIcon: Ref<IconValue | 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: IconValue,\n trueIcon: IconValue,\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n trueIcon: IconValue,\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\n class={[\n 'v-selection-control__wrapper',\n textColorClasses.value,\n ]}\n style={ textColorStyles.value }\n >\n { slots.default?.() }\n\n <div\n class={[\n 'v-selection-control__input',\n ]}\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n default: '$checkboxIndeterminate',\n },\n\n ...makeVInputProps(),\n ...makeSelectionControlProps(),\n\n falseIcon: {\n type: IconValue,\n default: '$checkboxOff',\n },\n trueIcon: {\n type: IconValue,\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 { makeLocationProps, useLocation } from '@/composables/location'\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 ...makeLocationProps(),\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 { locationStyles } = useLocation(props)\n const { positionClasses } = 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 locationStyles.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 const directionValue = (tick.position > 0 && tick.position < 100) ? convertToUnit(tick.position, '%') : undefined\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={{ [directionProperty]: directionValue }}\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 { VInputSlots } from '@/components/VInput/VInput'\nimport type { VFieldSlots } from '@/components/VField/VField'\nimport type { FilterMatch } from '@/composables/filter'\nimport type { InternalItem } from '@/composables/items'\nimport type { PropType } from 'vue'\nimport type { MakeSlots } from '@/util'\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\ntype Primitive = string | number | boolean | symbol\n\ntype Val <T, ReturnObject extends boolean> = T extends Primitive\n ? T\n : (ReturnObject extends true ? T : any)\n\ntype Value <T, ReturnObject extends boolean, Multiple extends boolean> =\n Multiple extends true\n ? Val<T, ReturnObject>[]\n : Val<T, ReturnObject>\n\nexport const VCombobox = genericComponent<new <\n T,\n ReturnObject extends boolean = true,\n Multiple extends boolean = false,\n V extends Value<T, ReturnObject, Multiple> = Value<T, ReturnObject, Multiple>\n>() => {\n $props: {\n items?: readonly T[]\n returnObject?: ReturnObject\n multiple?: Multiple\n modelValue?: Readonly<V>\n 'onUpdate:modelValue'?: (val: V) => void\n }\n $slots: VInputSlots & VFieldSlots & MakeSlots<{\n chip: [{ item: T, index: number, props: Record<string, unknown> }]\n selection: [{ item: T, index: number }]\n 'no-data': []\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, returnObject: 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 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, transformIn, transformOut } = useItems(props)\n const { textColorClasses, textColorStyles } = useTextColor(color)\n const model = useProxiedModel(\n props,\n 'modelValue',\n [],\n v => transformIn(wrapInArray(v || [])),\n v => {\n const transformed = transformOut(v)\n return props.multiple ? transformed : transformed[0]\n }\n )\n const _search = ref('')\n const search = computed<string>({\n get: () => {\n if (props.multiple) return _search.value\n\n const item = items.value.find(({ props }) => props.value === model.value[0])\n\n return item?.props.value\n },\n set: val => {\n if (props.multiple) {\n _search.value = val\n } else {\n model.value = [transformItem(props, 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(transformItem(props, 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 return model.value.map(v => {\n return items.value.find(item => item.value === v.value) || v\n })\n })\n const selected = computed(() => selections.value.map(selection => selection.props.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(transformItem(props, 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: InternalItem) {\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]\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(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, transformItem(props, 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 <VMenu\n v-model={ menu.value }\n activator=\"parent\"\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 { ...item.props }\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\n class={[\n 'v-combobox__selection',\n index === selectionIndex.value && [\n 'v-combobox__selection--selected',\n textColorClasses.value,\n ],\n ]}\n style={ index === selectionIndex.value ? textColorStyles.value : {} }\n >\n { hasChips ? (\n <VDefaultsProvider\n defaults={{\n VChip: {\n closable: props.closableChips,\n size: 'small',\n text: selection.props.title,\n },\n }}\n >\n { slots.chip\n ? slots.chip({ props: slotProps, item: selection.originalItem, index })\n : (<VChip { ...slotProps } />)\n }\n </VDefaultsProvider>\n ) : (\n slots.selection\n ? slots.selection({ item: selection.originalItem, index })\n : (\n <span class=\"v-combobox__selection-text\">\n { selection.props.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'\nimport { useScopeId } from '@/composables/scopeId'\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 const { scopeId } = useScopeId()\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 z-index={ 2400 }\n { ...scopeId }\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n default: '$expand',\n },\n collapseIcon: {\n type: IconValue,\n default: '$collapse',\n },\n hideActions: Boolean,\n ripple: {\n type: [Boolean, Object],\n default: false,\n },\n readonly: Boolean,\n})\n\nexport const VExpansionPanelTitle = defineComponent({\n name: 'VExpansionPanelTitle',\n\n directives: { Ripple },\n\n props: {\n ...makeVExpansionPanelTitleProps(),\n },\n\n setup (props, { slots }) {\n const expansionPanel = inject(VExpansionPanelSymbol)\n\n if (!expansionPanel) throw new Error('[Vuetify] v-expansion-panel-title needs to be placed inside v-expansion-panel')\n\n const { backgroundColorClasses, backgroundColorStyles } = useBackgroundColor(props, 'color')\n\n const slotProps = computed(() => ({\n collapseIcon: props.collapseIcon,\n disabled: expansionPanel.disabled.value,\n expanded: expansionPanel.isSelected.value,\n expandIcon: props.expandIcon,\n readonly: props.readonly,\n }))\n\n useRender(() => (\n <button\n class={[\n 'v-expansion-panel-title',\n {\n 'v-expansion-panel-title--active': expansionPanel.isSelected.value,\n },\n backgroundColorClasses.value,\n ]}\n style={ backgroundColorStyles.value }\n type=\"button\"\n tabindex={ expansionPanel.disabled.value ? -1 : undefined }\n disabled={ expansionPanel.disabled.value }\n aria-expanded={ expansionPanel.isSelected.value }\n onClick={ !props.readonly ? expansionPanel.toggle : undefined }\n v-ripple={ props.ripple }\n >\n <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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\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 order: computed(() => parseInt(props.order, 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 order: computed(() => parseInt(props.order, 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 location: {\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, 'location'),\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 order: computed(() => parseInt(props.order, 10)),\n position: toRef(props, 'location'),\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.location === 'bottom',\n 'v-navigation-drawer--end': props.location === '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.location === '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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\n default: '$first',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n lastIcon: {\n type: IconValue,\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// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { defineComponent, useRender } from '@/util'\n\nexport const VRadio = defineComponent({\n name: 'VRadio',\n\n props: {\n falseIcon: {\n type: IconValue,\n default: '$radioOff',\n },\n trueIcon: {\n type: IconValue,\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// Composables\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\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: IconValue,\n default: '$radioOn',\n },\n falseIcon: {\n type: IconValue,\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue\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: IconValue,\n default: '$ratingEmpty',\n },\n fullIcon: {\n type: IconValue,\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'\nimport { IconValue } from '@/composables/icons'\n\n// Utilities\nimport { bias, calculateCenteredOffset, calculateUpdatedOffset } from './helpers'\nimport { clamp, defineComponent, useRender } from '@/util'\nimport { computed, ref, watch, watchEffect } from 'vue'\n\n// Types\nimport type { GroupProvide } from '@/composables/group'\nimport type { InjectionKey } from 'vue'\n\nexport const VSlideGroupSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-slide-group')\n\nexport const VSlideGroup = defineComponent({\n name: 'VSlideGroup',\n\n props: {\n centerActive: Boolean,\n direction: {\n type: String,\n default: 'horizontal',\n },\n symbol: {\n type: null,\n default: VSlideGroupSymbol,\n },\n nextIcon: {\n type: IconValue,\n default: '$next',\n },\n prevIcon: {\n type: IconValue,\n default: '$prev',\n },\n showArrows: {\n type: [Boolean, String],\n validator: (v: any) => (\n typeof v === 'boolean' || [\n 'always',\n 'desktop',\n 'mobile',\n ].includes(v)\n ),\n },\n ...makeTagProps(),\n ...makeGroupProps({\n selectedClass: 'v-slide-group-item--active',\n }),\n },\n\n emits: {\n 'update:modelValue': (value: any) => true,\n },\n\n setup (props, { slots }) {\n const { isRtl } = useRtl()\n const { mobile } = useDisplay()\n const group = useGroup(props, props.symbol)\n const isOverflowing = ref(false)\n const scrollOffset = ref(0)\n const containerSize = ref(0)\n const contentSize = ref(0)\n const isHorizontal = computed(() => props.direction === 'horizontal')\n\n const { resizeRef: containerRef, contentRect: containerRect } = useResizeObserver()\n const { resizeRef: contentRef, contentRect } = useResizeObserver()\n\n watchEffect(() => {\n if (!containerRect.value || !contentRect.value) return\n\n const sizeProperty = isHorizontal.value ? 'width' : 'height'\n\n containerSize.value = containerRect.value[sizeProperty]\n contentSize.value = contentRect.value[sizeProperty]\n\n isOverflowing.value = containerSize.value + 1 < contentSize.value\n })\n\n const firstSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[0])\n })\n\n const lastSelectedIndex = computed(() => {\n if (!group.selected.value.length) return -1\n\n return group.items.value.findIndex(item => item.id === group.selected.value[group.selected.value.length - 1])\n })\n\n watch(group.selected, () => {\n if (firstSelectedIndex.value < 0 || !contentRef.value) return\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[lastSelectedIndex.value] as HTMLElement\n\n if (firstSelectedIndex.value === 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (props.centerActive) {\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n } else if (isOverflowing.value) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n }\n })\n\n let firstOverflow = true\n watch(isOverflowing, () => {\n if (!firstOverflow || !contentRef.value || firstSelectedIndex.value < 0) return\n\n firstOverflow = false\n\n // TODO: Is this too naive? Should we store element references in group composable?\n const selectedElement = contentRef.value.children[firstSelectedIndex.value] as HTMLElement\n\n scrollOffset.value = calculateCenteredOffset({\n selectedElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n isHorizontal: isHorizontal.value,\n })\n })\n\n const disableTransition = ref(false)\n\n let startTouch = 0\n let startOffset = 0\n\n function onTouchstart (e: TouchEvent) {\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n startOffset = scrollOffset.value\n startTouch = e.touches[0][sizeProperty]\n disableTransition.value = true\n }\n\n function onTouchmove (e: TouchEvent) {\n if (!isOverflowing.value) return\n\n const sizeProperty = isHorizontal.value ? 'clientX' : 'clientY'\n scrollOffset.value = startOffset + startTouch - e.touches[0][sizeProperty]\n }\n\n function onTouchend (e: TouchEvent) {\n const maxScrollOffset = contentSize.value - containerSize.value\n\n if (isRtl.value) {\n if (scrollOffset.value > 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value <= -maxScrollOffset) {\n scrollOffset.value = -maxScrollOffset\n }\n } else {\n if (scrollOffset.value < 0 || !isOverflowing.value) {\n scrollOffset.value = 0\n } else if (scrollOffset.value >= maxScrollOffset) {\n scrollOffset.value = maxScrollOffset\n }\n }\n\n disableTransition.value = false\n }\n\n function onScroll () {\n containerRef.value && (containerRef.value.scrollLeft = 0)\n }\n\n const isFocused = ref(false)\n function onFocusin (e: FocusEvent) {\n isFocused.value = true\n\n if (!isOverflowing.value || !contentRef.value) return\n\n // Focused element is likely to be the root of an item, so a\n // breadth-first search will probably find it in the first iteration\n for (const el of e.composedPath()) {\n for (const item of contentRef.value.children) {\n if (item === el) {\n scrollOffset.value = calculateUpdatedOffset({\n selectedElement: item as HTMLElement,\n containerSize: containerSize.value,\n contentSize: contentSize.value,\n isRtl: isRtl.value,\n currentScrollOffset: scrollOffset.value,\n isHorizontal: isHorizontal.value,\n })\n return\n }\n }\n }\n }\n\n function onFocusout (e: FocusEvent) {\n isFocused.value = false\n }\n\n function onFocus (e: FocusEvent) {\n if (\n !isFocused.value &&\n !(e.relatedTarget && contentRef.value?.contains(e.relatedTarget as Node))\n ) focus()\n }\n\n function onKeydown (e: KeyboardEvent) {\n if (!contentRef.value) return\n\n if (e.key === (isHorizontal.value ? 'ArrowRight' : 'ArrowDown')) {\n focus('next')\n } else if (e.key === (isHorizontal.value ? 'ArrowLeft' : 'ArrowUp')) {\n focus('prev')\n } else if (e.key === 'Home') {\n focus('first')\n } else if (e.key === 'End') {\n focus('last')\n }\n }\n\n function focus (location?: 'next' | 'prev' | 'first' | 'last') {\n if (!contentRef.value) return\n\n if (!location) {\n contentRef.value.querySelector('[tabindex]')\n const focusable = [...contentRef.value.querySelectorAll(\n 'button, [href], input, select, textarea, [tabindex]:not([tabindex=\"-1\"])'\n )].filter(el => !el.hasAttribute('disabled')) as HTMLElement[]\n focusable[0]?.focus()\n } else if (location === 'next') {\n const el = contentRef.value.querySelector(':focus')?.nextElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('first')\n } else if (location === 'prev') {\n const el = contentRef.value.querySelector(':focus')?.previousElementSibling as HTMLElement | undefined\n if (el) el.focus()\n else focus('last')\n } else if (location === 'first') {\n (contentRef.value.firstElementChild as HTMLElement)?.focus()\n } else if (location === 'last') {\n (contentRef.value.lastElementChild as HTMLElement)?.focus()\n }\n }\n\n function scrollTo (location: 'prev' | 'next') {\n const sign = isRtl.value ? -1 : 1\n const newAbosluteOffset = sign * scrollOffset.value +\n (location === 'prev' ? -1 : 1) * containerSize.value\n\n scrollOffset.value = sign * clamp(newAbosluteOffset, 0, contentSize.value - containerSize.value)\n }\n\n const contentStyles = computed(() => {\n const scrollAmount = scrollOffset.value <= 0\n ? bias(-scrollOffset.value)\n : scrollOffset.value > contentSize.value - containerSize.value\n ? -(contentSize.value - containerSize.value) + bias(contentSize.value - containerSize.value - scrollOffset.value)\n : -scrollOffset.value\n\n return {\n transform: `translate${isHorizontal.value ? 'X' : 'Y'}(${scrollAmount}px)`,\n transition: disableTransition.value ? 'none' : '',\n willChange: disableTransition.value ? 'transform' : '',\n }\n })\n\n const slotProps = computed(() => ({\n next: group.next,\n prev: group.prev,\n select: group.select,\n isSelected: group.isSelected,\n }))\n\n const hasAffixes = computed(() => {\n switch (props.showArrows) {\n // Always show arrows on desktop & mobile\n case 'always': return true\n\n // Always show arrows on desktop\n case 'desktop': return !mobile.value\n\n // Show arrows on mobile when overflowing.\n // This matches the default 2.2 behavior\n case true: return isOverflowing.value || Math.abs(scrollOffset.value) > 0\n\n // Always show on mobile\n case 'mobile': return (\n mobile.value ||\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n\n // https://material.io/components/tabs#scrollable-tabs\n // Always show arrows when\n // overflowed on desktop\n default: return (\n !mobile.value &&\n (isOverflowing.value || Math.abs(scrollOffset.value) > 0)\n )\n }\n })\n\n const hasPrev = computed(() => {\n return hasAffixes.value && scrollOffset.value > 0\n })\n\n const hasNext = computed(() => {\n if (!hasAffixes.value) return false\n\n // Check one scroll ahead to know the width of right-most item\n return contentSize.value > Math.abs(scrollOffset.value) + containerSize.value\n })\n\n useRender(() => (\n <props.tag\n class={[\n 'v-slide-group',\n {\n 'v-slide-group--vertical': !isHorizontal.value,\n 'v-slide-group--has-affixes': hasAffixes.value,\n 'v-slide-group--is-overflowing': isOverflowing.value,\n },\n ]}\n tabindex={ (isFocused.value || group.selected.value.length) ? -1 : 0 }\n onFocus={ onFocus }\n >\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__prev',\n { 'v-slide-group__prev--disabled': !hasPrev.value },\n ]}\n onClick={ () => scrollTo('prev') }\n >\n { slots.prev?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.prevIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n\n <div\n ref={ containerRef }\n class=\"v-slide-group__container\"\n onScroll={ onScroll }\n >\n <div\n ref={ contentRef }\n class=\"v-slide-group__content\"\n style={ contentStyles.value }\n onTouchstartPassive={ onTouchstart }\n onTouchmovePassive={ onTouchmove }\n onTouchendPassive={ onTouchend }\n onFocusin={ onFocusin }\n onFocusout={ onFocusout }\n onKeydown={ onKeydown }\n >\n { slots.default?.(slotProps.value) }\n </div>\n </div>\n\n { hasAffixes.value && (\n <div\n class={[\n 'v-slide-group__next',\n { 'v-slide-group__next--disabled': !hasNext.value },\n ]}\n onClick={ () => scrollTo('next') }\n >\n { slots.next?.(slotProps.value) ?? (\n <VFadeTransition>\n <VIcon icon={ props.nextIcon }></VIcon>\n </VFadeTransition>\n ) }\n </div>\n ) }\n </props.tag>\n ))\n\n return {\n selected: group.selected,\n scrollTo,\n scrollOffset,\n focus,\n }\n },\n})\n\nexport type VSlideGroup = InstanceType<typeof VSlideGroup>\n","// 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'\nimport { makeLocationProps, useLocation } from '@/composables/location'\nimport { useScopeId } from '@/composables/scopeId'\n\nexport const VSnackbar = defineComponent({\n name: 'VSnackbar',\n\n props: {\n app: 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 ...makeLocationProps({ location: 'bottom' } as const),\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 { locationStyles } = useLocation(props)\n const { positionClasses } = usePosition(props)\n const { scopeId } = useScopeId()\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--multi-line': props.multiLine && !props.vertical,\n 'v-snackbar--vertical': props.vertical,\n },\n positionClasses.value,\n ]}\n style={[colorStyles.value]}\n contentProps={{\n style: locationStyles.value,\n }}\n persistent\n noClickAnimation\n scrim={ false }\n scrollStrategy=\"none\"\n transition={ props.transition }\n { ...scopeId }\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 order: computed(() => parseInt(props.order, 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'\nimport { IconValue } from '@/composables/icons'\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, Function, Object] as PropType<boolean | IconValue>,\n prependIcon: IconValue,\n appendIcon: IconValue,\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\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'\nimport { IconValue } from '@/composables/icons'\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: IconValue,\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/locationStrategies'\nimport { useScopeId } from '@/composables/scopeId'\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 location: {\n type: String as PropType<StrategyProps['location']>,\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 const { scopeId } = useScopeId()\n\n const uid = getUid()\n const id = computed(() => props.id || `v-tooltip-${uid}`)\n\n const location = computed(() => {\n return props.location.split(' ').length > 1\n ? props.location\n : props.location + ' center' as StrategyProps['location']\n })\n\n const origin = computed(() => {\n return (\n props.origin === 'auto' ||\n props.origin === 'overlap' ||\n props.origin.split(' ').length > 1 ||\n props.location.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 locationStrategy=\"connected\"\n scrollStrategy=\"reposition\"\n location={ location.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 close-on-back={ false }\n role=\"tooltip\"\n eager\n activatorProps={{\n 'aria-describedby': id.value,\n }}\n { ...scopeId }\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","// Composables\nimport { createDefaults, DefaultsSymbol } from '@/composables/defaults'\nimport { createDisplay, DisplaySymbol } from '@/composables/display'\nimport { createIcons, IconSymbol } from '@/composables/icons'\nimport { createLocale, LocaleAdapterSymbol } from '@/composables/locale'\nimport { createTheme, ThemeSymbol } from '@/composables/theme'\nimport { RtlSymbol } from '@/composables/rtl'\n\n// Utilities\nimport { defineComponent } from '@/util'\nimport { reactive } from 'vue'\n\n// Types\nimport type { App, ComponentPublicInstance, InjectionKey } from 'vue'\nimport type { DefaultsOptions } from '@/composables/defaults'\nimport type { DisplayOptions } from '@/composables/display'\nimport type { IconOptions } from '@/composables/icons'\nimport type { LocaleAdapter, LocaleOptions } from '@/composables/locale'\nimport type { RtlOptions } from '@/composables/rtl'\nimport type { ThemeOptions } from '@/composables/theme'\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 } = 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, createIcons(options.icons))\n app.provide(LocaleAdapterSymbol, createLocale(app, 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":["parseAnchor","anchor","side","align","split","oppositeAnchor","center","top","bottom","start","end","physicalAnchor","el","_map$side","_map$align","direction","window","getComputedStyle","map","Box","constructor","_ref","x","y","width","height","this","left","right","nullifyTransforms","rect","getBoundingClientRect","style","tx","transform","ta","sx","sy","dx","dy","startsWith","slice","to","transformOrigin","parseFloat","indexOf","w","offsetWidth","h","offsetHeight","createMessage","message","vm","parent","_isVue","$parent","$options","$_alreadyWarned","includes","push","tree","currentRecursiveSequence","length","last","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","from","v","k","convertToUnit","unit","isNaN","String","isFinite","Number","isObject","keyCodes","freeze","enter","tab","delete","esc","space","up","down","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","overflowY","scrollHeight","clientHeight","IN_BROWSER","SUPPORTS_INTERSECTION","SUPPORTS_TOUCH","navigator","maxTouchPoints","SUPPORTS_FOCUS_VISIBLE","CSS","supports","propsFactory","reduce","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","reactive","isDisabled","_options$themes","_defaultThemeOptions$","_defaultThemeOptions$2","parseThemeOptions","computedThemes","acc","original","variation","fn","onColor","colorVal","blackContrast","whiteContrast","current","styles","lines","createCssClass","themeName","genCssVariables","Set","flatMap","addHeadObjs","id","updateDOM","styleEl","updateStyles","createElement","appendChild","innerHTML","themeClasses","provideTheme","_props$theme","newTheme","useTheme","selector","content","line","lightOverlay","darkOverlay","useResizeObserver","callback","resizeRef","contentRect","observer","ResizeObserver","onBeforeUnmount","disconnect","newValue","oldValue","unobserve","observe","flush","readonly","VuetifyLayoutKey","VuetifyLayoutItemKey","ROOT_ZINDEX","makeLayoutProps","overlaps","fullHeight","Boolean","makeLayoutItemProps","order","absolute","useLayout","layout","useLayoutItem","_options$id","isKeptAlive","onDeactivated","onActivated","layoutItemStyles","layoutItemScrimStyles","register","active","unregister","layoutRect","createLayout","parentLayout","rootZIndex","registered","positions","Map","layoutSizes","priorities","activeItems","disabledTransitions","computedOverlaps","_props$overlaps","overlap","topPosition","get","bottomPosition","topAmount","bottomAmount","set","position","layers","uniquePriorities","sort","items","_priorities$get","previousLayer","layer","generateLayers","transitionsEnabled","mainStyles","paddingLeft","paddingRight","paddingTop","paddingBottom","transition","getLayoutItem","find","rootVm","isMounted","onMounted","layoutSize","elementSize","disableTransitions","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","createRtlScope","currentScope","localeScope","isRtl","rtlClasses","provideRtl","newScope","useRtl","VApp","_createVNode","createVNode","call","VDefaultsProvider","toRefs","createCssTransition","origin","mode","group","hideOnLeave","leaveAbsolute","TransitionGroup","Transition","onBeforeEnter","onLeave","offsetTop","offsetLeft","_transitionInitialStyles","setProperty","onAfterLeave","createJavascriptTransition","functions","ExpandTransitionGenerator","expandedParentClass","sizeProperty","offsetProperty","_parent","_initialStyle","overflow","onEnter","initialStyle","offset","classList","add","requestAnimationFrame","onAfterEnter","resetStyles","onEnterCancelled","onLeaveCancelled","remove","VDialogTransition","pointerEvents","done","_getChildren","Promise","resolve","speed","getDimensions","animation","animate","opacity","duration","easing","getChildren","forEach","finished","then","removeProperty","onBeforeLeave","_getChildren2","_mergeProps","css","_el$querySelector","els","querySelector","targetBox","elBox","originX","originY","anchorSide","anchorOffset","getPropertyValue","offsetX","offsetY","tsx","tsy","maxs","asa","innerWidth","innerHeight","VCarouselTransition","VCarouselReverseTransition","VTabTransition","VTabReverseTransition","VMenuTransition","VFabTransition","VDialogBottomTransition","VDialogTopTransition","VFadeTransition","VScaleTransition","VScrollXTransition","VScrollXReverseTransition","VScrollYTransition","VScrollYReverseTransition","VSlideXTransition","VSlideXReverseTransition","VSlideYTransition","VSlideYReverseTransition","VExpandTransition","VExpandXTransition","makeDimensionProps","maxHeight","maxWidth","minHeight","minWidth","useDimension","dimensionStyles","VResponsive","aspectRatio","contentClass","aspectStyles","ratio","useAspectStyles","_slots$additional","additional","unmounted","binding","_el$_observe2","_observe","instance","$","uid","Intersect","modifiers","handler","IntersectionObserver","_el$_observe","isIntersecting","entry","quiet","init","once","makeTransitionProps","validator","MaybeTransition","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","_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","_slots$extension","toRef","isExtended","extension","contentHeight","VBtn","variant","_slots$extension2","_slots$image","_slots$prepend","_slots$append","hasTitle","hasImage","prepend","append","useProxiedModel","defaultValue","transformIn","transformOut","_vm$vnode$props","_vm$vnode$props2","internal","VAppBar","modelValue","location","vToolbarRef","isActive","_vToolbarRef$value$co","_vToolbarRef$value","_vToolbarRef$value$ex","_vToolbarRef$value2","toolbarProps","_VToolbar$props","filterToolbarProps","makeDensityProps","useDensity","densityClasses","allowedVariants","genOverlays","isClickable","_Fragment","makeVariantProps","useVariant","variantClasses","VBtnGroup","divided","makeGroupProps","multiple","mandatory","selectedClass","disabled","makeGroupItemProps","useGroupItem","injectKey","required","description","isSelected","toggle","select","useGroup","isUnmounted","selected","getIds","arr","ids","getValues","groupVm","forceMandatoryValue","step","currentId","currentIndex","newIndex","newItem","unwrapped","_value","internalValue","_value2","getItemIndex","VBtnToggleSymbol","VBtnToggle","predefinedSizes","makeSizeProps","useSize","sizeClasses","sizeStyles","aliases","cancel","clear","checkboxOn","checkboxOff","checkboxIndeterminate","expand","menu","subgroup","dropdown","radioOn","radioOff","edit","ratingEmpty","ratingFull","ratingHalf","loading","unfold","plus","minus","mdi","VClassIcon","IconValue","Function","IconSymbol","makeIconProps","icon","VComponentIcon","VSvgIcon","inheritAttrs","xmlns","viewBox","d","VLigatureIcon","defaultSets","svg","createIcons","defaultSet","sets","makeVIconProps","VIcon","slotIcon","_flattenFragments$fil","slot","iconData","icons","iconAlias","_icons$aliases","iconSetName","setName","iconName","useIcon","onClick","fontSize","oppositeMap","makeLocationProps","useLocation","opposite","toPhysical","locationStyles","getOffset","positionValues","makePositionProps","usePosition","positionClasses","useRouter","_getCurrentInstance$p","proxy","$router","useLink","RouterLink","resolveDynamicComponent","isLink","href","onClickOnce","link","route","makeRouterProps","inTransition","stopSymbol","webkitTransform","isTouchEvent","e","isKeyboardEvent","ripples","show","_el$_ripple2","_ripple","enabled","container","className","radius","scale","centerX","centerY","_el$_ripple","localX","localY","touches","clientX","clientY","circle","clientWidth","sqrt","calculate","dataset","previousPosition","activated","performance","now","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","VChip","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","originalItem","slotsWithItem","_slots$subtitle","_slots$default3","_slots$title","header","makeItemsProps","itemTitle","itemValue","itemChildren","returnObject","transformItem","transformItems","array","useItems","itemType","VList","bgColor","useListItems","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","closeParents","activatorRef","$el","bindActivatorProps","getActivator","removeAttribute","setAttribute","unbindActivatorProps","_activator","_vm$proxy","_vm$proxy$$el","hasAttribute","onScopeDispose","_useActivator","elementToViewport","point","anchorToPoint","box","locationStrategies","static","connected","contentStyles","activatorFixed","offsetParent","isFixedPosition","assign","preferredAnchor","preferredOrigin","doesOverlap","configuredMaxHeight","configuredMinWidth","updateLocation","contentEl","_props$maxWidth","scrollParent","viewportWidth","viewportHeight","contentBox","scrollables","querySelectorAll","scrollLeft","scrollTop","initialMaxWidth","initialMaxHeight","scrollTo","maxFreeSpaceWidth","MAX_VALUE","freeSpace","fitsY","viewportMargin","floor","targetPoint","contentPoint","makeLocationStrategyProps","locationStrategy","clean","frames","raf","cancelAnimationFrame","frame","scrollStrategies","none","_data$activatorEl$val","bindScroll","_data$root$value","scrollElements","contains","scrollbarWidth","documentElement","scrollableParent","reposition","_data$activatorEl$val2","slow","update","_data$updateLocation$","_data$updateLocation","time","makeScrollStrategyProps","scrollStrategy","onScroll","useToggleScope","_scope","useTeleport","teleportTarget","_target","targetElement","body","cache","WeakMap","makeLazyProps","useLazy","hasContent","stack","defaultConditional","checkEvent","checkIsActive","ShadowRoot","host","include","closeConditional","handleShadow","ClickOutside","mounted","_clickOutside","lastMousedownWasOutside","directive","onMousedown","_el$_clickOutside","Scrim","VOverlay","attach","closeOnBack","contained","contentProps","noClickAnimation","persistent","scrim","afterLeave","model","scrimColor","stackStyles","_zIndex","_stack","lastZIndex","idx","_stack2","_isTop","useStack","onResize","_updateLocation$value","async","_props$locationStrate","_locationStrategies$p","_scope2","useLocationStrategies","onClickOutside","animateClick","onKeydown","_scrollStrategies$pro","useScrollStrategies","router","removeBefore","removeAfter","popped","onPopstate","_e$state","replaced","beforeEach","afterEach","_removeBefore","_removeAfter","useBackButton","_contentEl$value","_slots$activator","toHandlers","Teleport","persisted","useScopeId","scopeId","VMenu","overlay","openChildren","$event","VMessages","messages","FormKey","makeFormProps","fastFail","lazyValidation","useForm","makeValidationProps","errorMessages","maxErrors","rules","useValidation","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","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","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","LocaleAdapterSymbol","VuetifyLocaleSymbol","useLocale","adapter","getScope","createLocale","createScope","createTranslateFunction","createNumberFunction","createRoot","_options$defaultLocal","_options$fallbackLoca","_options$messages","rootScope","defaultLocale","fallbackLocale","_options$locale","locale","_options$locale2","_options$messages2","createDefaultLocaleAdapter","_options$rtl","_options$defaultRtl","defaultRtl","createRtl","LANG_PREFIX","params","shortKey","currentLocale","Intl","NumberFormat","format","makeSelectProps","chips","closableChips","hideNoData","hideSelected","menuIcon","openOnClear","VSelect","vTextFieldRef","transformed","selections","selection","onClickControl","hasChips","chip","_slots$noData","_slots$noData2","_createTextVNode","createTextVNode","defaultFilter","query","toLocaleLowerCase","makeFilterProps","customFilter","customKeyFilter","filterKeys","filterMode","noFilter","useFilter","strQuery","filteredItems","transformedItems","_options$default","_options$customKeyFil","customFiltersLength","loop","customMatches","defaultMatches","_options$customKeyFil2","keyFilter","defaultMatchesLength","customMatchesLength","filterItems","VAutocomplete","search","onInput","isSelecting","_selections$value$at$","_selections$value$at","at","_search$value$length","_search$value","highlightResult","VBadge","bordered","dot","inline","textColor","_props$offsetY","_props$offsetX","_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","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","directionValue","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","deep","onTouchstart","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","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","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","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","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","onPointerleave","VSwitch","loaderColor","control","_control$value","_control$value$input","VSystemBar","_props$height","VTabsSymbol","VTab","fixed","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","parseItems","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","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","createVuetify","install","components","_vm$parent$provides","_vm$parent","_vm$vnode$appContext","mixin","$vuetify","_createVuetify"],"mappings":"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"}
|