├── .dockerignore ├── .editorconfig ├── .eslintrc.cjs ├── .gitattributes ├── .github ├── .git_commit_msg.txt ├── CONTRIBUTING.md ├── FUNDING.yml ├── ISSUE_TEMPLATE │ └── config.yml ├── PULL_REQUEST_TEMPLATE.md ├── actions │ ├── download-locales │ │ └── action.yml │ └── nightly-release │ │ └── action.yml ├── issue-close-app.yml ├── lock.yml ├── semantic.yml ├── sponsors.yml └── workflows │ ├── ci.yml │ ├── close-issue.yml │ ├── crowdin-uploads.yml │ ├── nightly-pr.yml │ ├── nightly-schedule.yml │ ├── stale.yml │ └── triage.yml ├── .gitignore ├── .husky ├── commit-msg ├── pre-commit └── prepare-commit-msg ├── .npmrc ├── .nvmrc ├── .pnpmfile.cjs ├── CODE_OF_CONDUCT.md ├── Dockerfile ├── LICENSE.md ├── README.md ├── SECURITY.md ├── crowdin.yml ├── docker-compose.yml ├── eslint-local-rules.cjs ├── jest.config.cjs ├── lerna.json ├── package.json ├── packages ├── README.md ├── api-generator │ ├── .gitignore │ ├── package.json │ ├── src │ │ ├── helpers │ │ │ ├── sass.ts │ │ │ └── text.ts │ │ ├── index.ts │ │ ├── locale │ │ │ └── en │ │ │ │ ├── $vuetify.json │ │ │ │ ├── DataIterator-items.json │ │ │ │ ├── DataTable-expand.json │ │ │ │ ├── DataTable-group.json │ │ │ │ ├── DataTable-header.json │ │ │ │ ├── DataTable-items.json │ │ │ │ ├── DataTable-paginate.json │ │ │ │ ├── DataTable-select.json │ │ │ │ ├── DataTable-sort.json │ │ │ │ ├── DataTable.json │ │ │ │ ├── Select.json │ │ │ │ ├── SelectionControlGroup.json │ │ │ │ ├── Slider.json │ │ │ │ ├── Stepper.json │ │ │ │ ├── StepperItem.json │ │ │ │ ├── VAlert.json │ │ │ │ ├── VApp.json │ │ │ │ ├── VAppBar.json │ │ │ │ ├── VAutocomplete.json │ │ │ │ ├── VBadge.json │ │ │ │ ├── VBanner.json │ │ │ │ ├── VBottomNavigation.json │ │ │ │ ├── VBottomSheet.json │ │ │ │ ├── VBreadcrumbs.json │ │ │ │ ├── VBreadcrumbsDivider.json │ │ │ │ ├── VBtn.json │ │ │ │ ├── VBtnGroup.json │ │ │ │ ├── VBtnToggle.json │ │ │ │ ├── VCalendar.json │ │ │ │ ├── VCalendarDay.json │ │ │ │ ├── VCalendarHeader.json │ │ │ │ ├── VCalendarInterval.json │ │ │ │ ├── VCalendarIntervalEvent.json │ │ │ │ ├── VCalendarMonthDay.json │ │ │ │ ├── VCalendarMonthly.json │ │ │ │ ├── VCalendarWeekly.json │ │ │ │ ├── VCard.json │ │ │ │ ├── VCarousel.json │ │ │ │ ├── VCheckbox.json │ │ │ │ ├── VCheckboxBtn.json │ │ │ │ ├── VChip.json │ │ │ │ ├── VChipGroup.json │ │ │ │ ├── VCol.json │ │ │ │ ├── VColorPicker.json │ │ │ │ ├── VCombobox.json │ │ │ │ ├── VConfirmEdit.json │ │ │ │ ├── VContainer.json │ │ │ │ ├── VCounter.json │ │ │ │ ├── VDataFooter.json │ │ │ │ ├── VDataIterator.json │ │ │ │ ├── VDataTable.json │ │ │ │ ├── VDataTableFooter.json │ │ │ │ ├── VDataTableHeaders.json │ │ │ │ ├── VDataTableRow.json │ │ │ │ ├── VDataTableRows.json │ │ │ │ ├── VDataTableServer.json │ │ │ │ ├── VDataTableVirtual.json │ │ │ │ ├── VDateInput.json │ │ │ │ ├── VDatePicker.json │ │ │ │ ├── VDatePickerControls.json │ │ │ │ ├── VDatePickerHeader.json │ │ │ │ ├── VDatePickerMonth.json │ │ │ │ ├── VDatePickerMonths.json │ │ │ │ ├── VDatePickerYear.json │ │ │ │ ├── VDatePickerYears.json │ │ │ │ ├── VDefaultsProvider.json │ │ │ │ ├── VDialog.json │ │ │ │ ├── VDialogTransition.json │ │ │ │ ├── VDivider.json │ │ │ │ ├── VEmptyState.json │ │ │ │ ├── VExpansionPanel.json │ │ │ │ ├── VExpansionPanelTitle.json │ │ │ │ ├── VExpansionPanels.json │ │ │ │ ├── VFab.json │ │ │ │ ├── VField.json │ │ │ │ ├── VFieldLabel.json │ │ │ │ ├── VFileInput.json │ │ │ │ ├── VFileUpload.json │ │ │ │ ├── VFileUploadItem.json │ │ │ │ ├── VFooter.json │ │ │ │ ├── VForm.json │ │ │ │ ├── VHover.json │ │ │ │ ├── VIconBtn.json │ │ │ │ ├── VImg.json │ │ │ │ ├── VInfiniteScroll.json │ │ │ │ ├── VInput.json │ │ │ │ ├── VItemGroup.json │ │ │ │ ├── VLabel.json │ │ │ │ ├── VLayout.json │ │ │ │ ├── VLayoutItem.json │ │ │ │ ├── VLazy.json │ │ │ │ ├── VList.json │ │ │ │ ├── VListGroup.json │ │ │ │ ├── VListItem.json │ │ │ │ ├── VListItemAvatar.json │ │ │ │ ├── VListItemGroup.json │ │ │ │ ├── VListSubheader.json │ │ │ │ ├── VLocaleProvider.json │ │ │ │ ├── VMain.json │ │ │ │ ├── VMenu.json │ │ │ │ ├── VMessages.json │ │ │ │ ├── VNavigationDrawer.json │ │ │ │ ├── VNumberInput.json │ │ │ │ ├── VOtpInput.json │ │ │ │ ├── VOverflowBtn.json │ │ │ │ ├── VOverlay-activator.json │ │ │ │ ├── VOverlay-location-strategies.json │ │ │ │ ├── VOverlay-scroll-strategies.json │ │ │ │ ├── VOverlay.json │ │ │ │ ├── VPagination.json │ │ │ │ ├── VParallax.json │ │ │ │ ├── VPicker.json │ │ │ │ ├── VProgressCircular.json │ │ │ │ ├── VProgressLinear.json │ │ │ │ ├── VPullToRefresh.json │ │ │ │ ├── VRadio.json │ │ │ │ ├── VRadioGroup.json │ │ │ │ ├── VRangeSlider.json │ │ │ │ ├── VRating.json │ │ │ │ ├── VResponsive.json │ │ │ │ ├── VRow.json │ │ │ │ ├── VSelect.json │ │ │ │ ├── VSelectionControl.json │ │ │ │ ├── VSheet.json │ │ │ │ ├── VSimpleCheckbox.json │ │ │ │ ├── VSimpleTable.json │ │ │ │ ├── VSkeletonLoader.json │ │ │ │ ├── VSlideGroup.json │ │ │ │ ├── VSlider.json │ │ │ │ ├── VSnackbar.json │ │ │ │ ├── VSnackbarQueue.json │ │ │ │ ├── VSparkline.json │ │ │ │ ├── VSpeedDial.json │ │ │ │ ├── VStepper.json │ │ │ │ ├── VStepperActions.json │ │ │ │ ├── VStepperHeader.json │ │ │ │ ├── VStepperItem.json │ │ │ │ ├── VStepperVertical.json │ │ │ │ ├── VStepperVerticalActions.json │ │ │ │ ├── VStepperVerticalItem.json │ │ │ │ ├── VStepperWindow.json │ │ │ │ ├── VStepperWindowItem.json │ │ │ │ ├── VSwitch.json │ │ │ │ ├── VSystemBar.json │ │ │ │ ├── VTab.json │ │ │ │ ├── VTabItem.json │ │ │ │ ├── VTable.json │ │ │ │ ├── VTabs.json │ │ │ │ ├── VTabsItems.json │ │ │ │ ├── VTextField.json │ │ │ │ ├── VTextarea.json │ │ │ │ ├── VThemeProvider.json │ │ │ │ ├── VTimePicker.json │ │ │ │ ├── VTimePickerClock.json │ │ │ │ ├── VTimePickerControls.json │ │ │ │ ├── VTimeline.json │ │ │ │ ├── VTimelineItem.json │ │ │ │ ├── VToolbar.json │ │ │ │ ├── VTooltip.json │ │ │ │ ├── VTreeview.json │ │ │ │ ├── VTreeviewGroup.json │ │ │ │ ├── VTreeviewItem.json │ │ │ │ ├── VTreeviewNode.json │ │ │ │ ├── VVirtualScroll.json │ │ │ │ ├── VWindow.json │ │ │ │ ├── VWindowItem.json │ │ │ │ ├── border.json │ │ │ │ ├── calendar.json │ │ │ │ ├── delay.json │ │ │ │ ├── dimension.json │ │ │ │ ├── display.json │ │ │ │ ├── elevation.json │ │ │ │ ├── filter.json │ │ │ │ ├── focus.json │ │ │ │ ├── form.json │ │ │ │ ├── generic.json │ │ │ │ ├── group-item.json │ │ │ │ ├── group.json │ │ │ │ ├── layout-item.json │ │ │ │ ├── layout.json │ │ │ │ ├── list-items.json │ │ │ │ ├── loader.json │ │ │ │ ├── location.json │ │ │ │ ├── nested.json │ │ │ │ ├── position.json │ │ │ │ ├── rounded.json │ │ │ │ ├── router.json │ │ │ │ ├── size.json │ │ │ │ ├── tag.json │ │ │ │ ├── theme.json │ │ │ │ ├── transition.json │ │ │ │ ├── useDate.json │ │ │ │ ├── useDisplay.json │ │ │ │ ├── useGoTo.json │ │ │ │ ├── useLayout.json │ │ │ │ ├── useLocale.json │ │ │ │ ├── useRtl.json │ │ │ │ ├── useTheme.json │ │ │ │ ├── v-click-outside.json │ │ │ │ ├── v-intersect.json │ │ │ │ ├── v-mutate.json │ │ │ │ ├── v-resize.json │ │ │ │ ├── v-ripple.json │ │ │ │ ├── v-scroll.json │ │ │ │ ├── v-tooltip.json │ │ │ │ ├── v-touch.json │ │ │ │ ├── validation.json │ │ │ │ └── virtual.json │ │ ├── shims.d.ts │ │ ├── types.ts │ │ ├── utils.ts │ │ ├── vetur.ts │ │ ├── web-types.ts │ │ └── worker.ts │ ├── templates │ │ ├── component.d.ts │ │ ├── composables.d.ts │ │ └── directives.d.ts │ └── tsconfig.json ├── docs │ ├── .browserslistrc │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── .markdownlintrc │ ├── auto-imports.d.ts │ ├── build │ │ ├── Caddyfile │ │ ├── api-plugin.ts │ │ ├── examples-plugin.ts │ │ ├── markdown-it.ts │ │ ├── markdownBuilders.ts │ │ ├── mdi-js.ts │ │ └── sitemap.js │ ├── components.d.ts │ ├── index.html │ ├── jest-runner-eslint.config.cjs │ ├── jest.config.cjs │ ├── package.json │ ├── public │ │ ├── ads.txt │ │ ├── favicon.ico │ │ ├── img │ │ │ └── icons │ │ │ │ ├── android-chrome-192x192.png │ │ │ │ ├── android-chrome-512x512.png │ │ │ │ ├── apple-touch-icon.png │ │ │ │ ├── favicon-16x16.png │ │ │ │ └── favicon-32x32.png │ │ ├── robots.txt │ │ └── search.xml │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ └── logo.png │ │ ├── components │ │ │ ├── Alert.vue │ │ │ ├── Backmatter.vue │ │ │ ├── PageFeatures.vue │ │ │ ├── about │ │ │ │ ├── TeamMember.vue │ │ │ │ └── TeamMembers.vue │ │ │ ├── api │ │ │ │ ├── ApiTable.vue │ │ │ │ ├── Backlinks.vue │ │ │ │ ├── DirectiveTable.vue │ │ │ │ ├── EventsTable.vue │ │ │ │ ├── ExposedTable.vue │ │ │ │ ├── Inline.vue │ │ │ │ ├── Links.vue │ │ │ │ ├── NameCell.vue │ │ │ │ ├── PrismCell.vue │ │ │ │ ├── PropsTable.vue │ │ │ │ ├── SassTable.vue │ │ │ │ ├── Search.vue │ │ │ │ ├── Section.vue │ │ │ │ ├── SlotsTable.vue │ │ │ │ ├── View.vue │ │ │ │ └── utils.ts │ │ │ ├── app │ │ │ │ ├── BackToTop.vue │ │ │ │ ├── Btn.vue │ │ │ │ ├── Caption.vue │ │ │ │ ├── CommitBtn.vue │ │ │ │ ├── Divider.vue │ │ │ │ ├── Figure.vue │ │ │ │ ├── Heading.vue │ │ │ │ ├── Headline.vue │ │ │ │ ├── Link.vue │ │ │ │ ├── Markdown.vue │ │ │ │ ├── Markup.vue │ │ │ │ ├── Sheet.vue │ │ │ │ ├── Table.vue │ │ │ │ ├── TextField.vue │ │ │ │ ├── Title.vue │ │ │ │ ├── Toc.vue │ │ │ │ ├── TooltipBtn.vue │ │ │ │ ├── V2Banner.vue │ │ │ │ ├── VersionBtn.vue │ │ │ │ ├── VerticalDivider.vue │ │ │ │ ├── bar │ │ │ │ │ ├── Bar.vue │ │ │ │ │ ├── BlogLink.vue │ │ │ │ │ ├── EcosystemMenu.vue │ │ │ │ │ ├── EnterpriseLink.vue │ │ │ │ │ ├── GitHubLink.vue │ │ │ │ │ ├── JobsLink.vue │ │ │ │ │ ├── LanguageMenu.vue │ │ │ │ │ ├── LearnMenu.vue │ │ │ │ │ ├── Logo.vue │ │ │ │ │ ├── NotificationsMenu.vue │ │ │ │ │ ├── PlaygroundLink.vue │ │ │ │ │ ├── SettingsToggle.vue │ │ │ │ │ ├── SponsorLink.vue │ │ │ │ │ ├── StoreLink.vue │ │ │ │ │ ├── SupportLink.vue │ │ │ │ │ ├── SupportMenu.vue │ │ │ │ │ ├── TeamLink.vue │ │ │ │ │ └── ThemeToggle.vue │ │ │ │ ├── drawer │ │ │ │ │ ├── Append.vue │ │ │ │ │ ├── Drawer.vue │ │ │ │ │ ├── DrawerToggleRail.vue │ │ │ │ │ └── PinnedItems.vue │ │ │ │ ├── list │ │ │ │ │ ├── LinkListItem.vue │ │ │ │ │ └── List.vue │ │ │ │ ├── menu │ │ │ │ │ └── Menu.vue │ │ │ │ ├── search │ │ │ │ │ ├── Search.vue │ │ │ │ │ ├── SearchDialog.vue │ │ │ │ │ ├── SearchGroup.vue │ │ │ │ │ └── SearchResults.vue │ │ │ │ └── settings │ │ │ │ │ ├── Append.vue │ │ │ │ │ ├── DeveloperMode.vue │ │ │ │ │ ├── DocumentationBuild.vue │ │ │ │ │ ├── Drawer.vue │ │ │ │ │ ├── LatestCommit.vue │ │ │ │ │ ├── LatestRelease.vue │ │ │ │ │ ├── Options.vue │ │ │ │ │ ├── SettingsHeader.vue │ │ │ │ │ └── options │ │ │ │ │ ├── AdOption.vue │ │ │ │ │ ├── ApiOption.vue │ │ │ │ │ ├── CodeOption.vue │ │ │ │ │ ├── OfflineOption.vue │ │ │ │ │ ├── PinOption.vue │ │ │ │ │ ├── RailDrawerOption.vue │ │ │ │ │ ├── SlashSearchOption.vue │ │ │ │ │ └── ThemeOption.vue │ │ │ ├── components │ │ │ │ └── ListItem.vue │ │ │ ├── dashboard │ │ │ │ └── DashboardEmptyState.vue │ │ │ ├── doc │ │ │ │ ├── Explorer.vue │ │ │ │ ├── IconList.vue │ │ │ │ ├── IconTable.vue │ │ │ │ ├── Introduced.vue │ │ │ │ ├── MadeWithVueAttribution.vue │ │ │ │ ├── MadeWithVuetifyGallery.vue │ │ │ │ ├── MadeWithVuetifyLink.vue │ │ │ │ ├── PremiumThemesGallery.vue │ │ │ │ ├── ReadyForMore.vue │ │ │ │ ├── RelatedPage.vue │ │ │ │ ├── RelatedPages.vue │ │ │ │ ├── Releases.vue │ │ │ │ ├── Tabs.vue │ │ │ │ ├── ThemeCard.vue │ │ │ │ ├── ThemeVendor.vue │ │ │ │ ├── UpNext.vue │ │ │ │ └── VueJobs.vue │ │ │ ├── examples │ │ │ │ ├── Example.vue │ │ │ │ ├── ExampleMissing.vue │ │ │ │ ├── Usage.vue │ │ │ │ ├── UsageExample.vue │ │ │ │ └── VueFile.vue │ │ │ ├── features │ │ │ │ ├── BreakpointsTable.vue │ │ │ │ ├── ColorPalette.vue │ │ │ │ └── SassApi.vue │ │ │ ├── getting-started │ │ │ │ └── WireframeExamples.vue │ │ │ ├── home │ │ │ │ ├── ActionBtns.vue │ │ │ │ ├── Entry.vue │ │ │ │ ├── EpicmaxSupport.vue │ │ │ │ ├── Features.vue │ │ │ │ ├── Footer.vue │ │ │ │ ├── Logo.vue │ │ │ │ ├── SpecialSponsor.vue │ │ │ │ └── Sponsors.vue │ │ │ ├── icons │ │ │ │ └── ChevronDown.vue │ │ │ ├── introduction │ │ │ │ ├── Comparison.vue │ │ │ │ ├── ConsultingServices.vue │ │ │ │ ├── DirectSupport.vue │ │ │ │ ├── DiscordDeck.vue │ │ │ │ ├── EnterpriseDeck.vue │ │ │ │ ├── EnterpriseForm.vue │ │ │ │ └── SlaDeck.vue │ │ │ ├── promoted │ │ │ │ ├── Base.vue │ │ │ │ ├── Carbon.vue │ │ │ │ ├── Discovery.vue │ │ │ │ ├── Entry.vue │ │ │ │ ├── Inline.vue │ │ │ │ ├── Promoted.vue │ │ │ │ ├── Random.vue │ │ │ │ ├── Script.vue │ │ │ │ └── Vuetify.vue │ │ │ ├── promotions │ │ │ │ └── PromotionCard.vue │ │ │ ├── resources │ │ │ │ ├── ColorPalette.vue │ │ │ │ └── Logos.vue │ │ │ ├── sponsor │ │ │ │ ├── Card.vue │ │ │ │ ├── Link.vue │ │ │ │ └── Sponsors.vue │ │ │ └── user │ │ │ │ ├── OneSubCard.vue │ │ │ │ ├── UserTabs.vue │ │ │ │ └── badges │ │ │ │ ├── UserAdminBadge.vue │ │ │ │ ├── UserOneBadge.vue │ │ │ │ └── UserSponsorBadge.vue │ │ ├── composables │ │ │ ├── ad.ts │ │ │ ├── bin.ts │ │ │ ├── cosmic.ts │ │ │ ├── frontmatter.ts │ │ │ └── playground.ts │ │ ├── data │ │ │ ├── 301.json │ │ │ ├── metadata.json │ │ │ ├── nav.json │ │ │ ├── new-in.json │ │ │ ├── page-to-api.json │ │ │ └── team.json │ │ ├── examples │ │ │ ├── accessibility │ │ │ │ ├── list-item-group.vue │ │ │ │ ├── menu.vue │ │ │ │ └── select-list-item.vue │ │ │ ├── application-layout │ │ │ │ ├── app-bar-first.vue │ │ │ │ ├── discord.vue │ │ │ │ ├── dynamic.vue │ │ │ │ ├── layout-information-composable.vue │ │ │ │ ├── layout-information-ref.vue │ │ │ │ ├── location.vue │ │ │ │ └── nav-drawer-first.vue │ │ │ ├── application │ │ │ │ ├── app-bar-drawer.vue │ │ │ │ ├── drawer-app-bar.vue │ │ │ │ └── theme.vue │ │ │ ├── blueprints │ │ │ │ ├── md1.vue │ │ │ │ ├── md2.vue │ │ │ │ └── md3.vue │ │ │ ├── border-radius │ │ │ │ ├── misc-components.vue │ │ │ │ ├── misc-pill-and-circle.vue │ │ │ │ ├── misc-removing-border-radius.vue │ │ │ │ ├── misc-rounded-corners.vue │ │ │ │ ├── misc-rounding-by-corner.vue │ │ │ │ └── misc-rounding-by-side.vue │ │ │ ├── border │ │ │ │ ├── all.vue │ │ │ │ ├── card.vue │ │ │ │ ├── colors.vue │ │ │ │ ├── sides.vue │ │ │ │ └── styles.vue │ │ │ ├── color │ │ │ │ ├── classes.vue │ │ │ │ └── text-classes.vue │ │ │ ├── concepts │ │ │ │ ├── density-and-size.vue │ │ │ │ ├── density.vue │ │ │ │ └── size.vue │ │ │ ├── cursor │ │ │ │ └── usage.vue │ │ │ ├── display │ │ │ │ ├── display-block.vue │ │ │ │ ├── display-inline.vue │ │ │ │ ├── hidden-elements.vue │ │ │ │ ├── print.vue │ │ │ │ └── visibility.vue │ │ │ ├── elevation │ │ │ │ ├── prop-dynamic.vue │ │ │ │ └── usage.vue │ │ │ ├── flex │ │ │ │ ├── flex-align-content-around.vue │ │ │ │ ├── flex-align-content-between.vue │ │ │ │ ├── flex-align-content-center.vue │ │ │ │ ├── flex-align-content-end.vue │ │ │ │ ├── flex-align-content-start.vue │ │ │ │ ├── flex-align-self.vue │ │ │ │ ├── flex-align.vue │ │ │ │ ├── flex-column.vue │ │ │ │ ├── flex-direction.vue │ │ │ │ ├── flex-flex.vue │ │ │ │ ├── flex-justify.vue │ │ │ │ ├── flex-nowrap.vue │ │ │ │ ├── flex-order.vue │ │ │ │ ├── flex-wrap-reverse.vue │ │ │ │ ├── flex-wrap.vue │ │ │ │ ├── flexbox-inline.vue │ │ │ │ ├── flexbox.vue │ │ │ │ ├── grow-shrink.vue │ │ │ │ ├── margins-align-items.vue │ │ │ │ └── margins.vue │ │ │ ├── float │ │ │ │ ├── classes.vue │ │ │ │ └── responsive.vue │ │ │ ├── grid │ │ │ │ ├── misc-column-wrapping.vue │ │ │ │ ├── misc-equal-width-columns.vue │ │ │ │ ├── misc-grow-and-shrink.vue │ │ │ │ ├── misc-margin-helpers.vue │ │ │ │ ├── misc-nested-grid.vue │ │ │ │ ├── misc-one-column-width.vue │ │ │ │ ├── misc-row-and-column-breakpoints.vue │ │ │ │ ├── misc-spacer.vue │ │ │ │ ├── misc-unique-layouts.vue │ │ │ │ ├── misc-variable-content.vue │ │ │ │ ├── prop-align.vue │ │ │ │ ├── prop-breakpoint-sizing.vue │ │ │ │ ├── prop-justify.vue │ │ │ │ ├── prop-no-gutters.vue │ │ │ │ ├── prop-offset-breakpoint.vue │ │ │ │ ├── prop-offset.vue │ │ │ │ ├── prop-order-first-and-last.vue │ │ │ │ ├── prop-order.vue │ │ │ │ └── usage.vue │ │ │ ├── opacity │ │ │ │ ├── misc-hover.vue │ │ │ │ └── misc-opacity.vue │ │ │ ├── overflow │ │ │ │ ├── overflow-x.vue │ │ │ │ └── overflow.vue │ │ │ ├── position │ │ │ │ ├── absolute.vue │ │ │ │ ├── fixed.vue │ │ │ │ ├── relative.vue │ │ │ │ ├── static.vue │ │ │ │ └── sticky.vue │ │ │ ├── scroll │ │ │ │ └── usage.vue │ │ │ ├── sizing │ │ │ │ ├── height.vue │ │ │ │ └── width.vue │ │ │ ├── spacing │ │ │ │ ├── breakpoints.vue │ │ │ │ ├── gap.vue │ │ │ │ ├── horizontal.vue │ │ │ │ ├── negative-margin.vue │ │ │ │ └── usage.vue │ │ │ ├── text-and-typography │ │ │ │ ├── font-emphasis.vue │ │ │ │ ├── text-alignment-responsive.vue │ │ │ │ ├── text-alignment.vue │ │ │ │ ├── text-break.vue │ │ │ │ ├── text-decoration.vue │ │ │ │ ├── text-no-wrap.vue │ │ │ │ ├── text-opacity.vue │ │ │ │ ├── text-rtl.vue │ │ │ │ ├── text-transform.vue │ │ │ │ ├── text-truncate.vue │ │ │ │ ├── typography-breakpoints.vue │ │ │ │ └── typography.vue │ │ │ ├── transitions │ │ │ │ ├── misc-expand-x.vue │ │ │ │ ├── misc-fab.vue │ │ │ │ ├── misc-fade.vue │ │ │ │ ├── misc-scale.vue │ │ │ │ ├── misc-scroll-x.vue │ │ │ │ ├── misc-scroll-y.vue │ │ │ │ ├── misc-slide-x.vue │ │ │ │ ├── misc-slide-y.vue │ │ │ │ ├── misc-todo.vue │ │ │ │ ├── prop-custom-origin.vue │ │ │ │ └── usage.vue │ │ │ ├── v-alert │ │ │ │ ├── prop-border-color.vue │ │ │ │ ├── prop-border.vue │ │ │ │ ├── prop-closable.vue │ │ │ │ ├── prop-content.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-icon.vue │ │ │ │ ├── prop-outlined.vue │ │ │ │ ├── prop-prominent.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-type.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ └── usage.vue │ │ │ ├── v-app-bar │ │ │ │ ├── misc-app-bar-nav.vue │ │ │ │ ├── misc-menu.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-image.vue │ │ │ │ ├── prop-prominent.vue │ │ │ │ ├── prop-scroll-behavior.vue │ │ │ │ └── usage.vue │ │ │ ├── v-autocomplete │ │ │ │ ├── misc-asynchronous-items.vue │ │ │ │ ├── misc-new-tab.vue │ │ │ │ ├── misc-state-selector.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-filter.vue │ │ │ │ ├── slot-item-and-selection.vue │ │ │ │ └── usage.vue │ │ │ ├── v-avatar │ │ │ │ ├── misc-advanced.vue │ │ │ │ ├── misc-avatar-menu.vue │ │ │ │ ├── misc-profile-card.vue │ │ │ │ ├── prop-size.vue │ │ │ │ ├── prop-tile.vue │ │ │ │ ├── slot-default.vue │ │ │ │ └── usage.vue │ │ │ ├── v-badge │ │ │ │ ├── misc-customization.vue │ │ │ │ ├── misc-dynamic.vue │ │ │ │ ├── misc-hover.vue │ │ │ │ ├── misc-tabs.vue │ │ │ │ ├── prop-content.vue │ │ │ │ ├── prop-dot.vue │ │ │ │ ├── prop-inline.vue │ │ │ │ └── usage.vue │ │ │ ├── v-banner │ │ │ │ ├── prop-lines.vue │ │ │ │ ├── prop-sticky.vue │ │ │ │ ├── slot-actions.vue │ │ │ │ ├── slot-icon.vue │ │ │ │ ├── slot-prepend.vue │ │ │ │ └── usage.vue │ │ │ ├── v-bottom-navigation │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-grow.vue │ │ │ │ ├── prop-hide-on-scroll.vue │ │ │ │ ├── prop-horizontal.vue │ │ │ │ ├── prop-scroll-threshold.vue │ │ │ │ ├── prop-shift.vue │ │ │ │ ├── prop-toggle.vue │ │ │ │ └── usage.vue │ │ │ ├── v-bottom-sheet │ │ │ │ ├── misc-open-in-list.vue │ │ │ │ ├── misc-player.vue │ │ │ │ ├── prop-inset.vue │ │ │ │ ├── prop-model.vue │ │ │ │ └── usage.vue │ │ │ ├── v-breadcrumbs │ │ │ │ ├── prop-divider.vue │ │ │ │ ├── slot-icon-dividers.vue │ │ │ │ ├── slot-prepend.vue │ │ │ │ ├── slot-title.vue │ │ │ │ └── usage.vue │ │ │ ├── v-btn-toggle │ │ │ │ ├── misc-toolbar.vue │ │ │ │ ├── misc-wysiwyg.vue │ │ │ │ ├── prop-divided.vue │ │ │ │ ├── prop-mandatory.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ └── usage.vue │ │ │ ├── v-btn │ │ │ │ ├── defaults-banner-actions.vue │ │ │ │ ├── defaults-bottom-navigation.vue │ │ │ │ ├── defaults-btn-group.vue │ │ │ │ ├── defaults-card-actions.vue │ │ │ │ ├── defaults-snackbar.vue │ │ │ │ ├── defaults-toolbar.vue │ │ │ │ ├── misc-cookie-settings.vue │ │ │ │ ├── misc-dialog-action.vue │ │ │ │ ├── misc-discord-event.vue │ │ │ │ ├── misc-group-survey.vue │ │ │ │ ├── misc-raised.vue │ │ │ │ ├── misc-readonly.vue │ │ │ │ ├── misc-tax-form.vue │ │ │ │ ├── misc-toolbar.vue │ │ │ │ ├── prop-block.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-elevation.vue │ │ │ │ ├── prop-flat.vue │ │ │ │ ├── prop-floating.vue │ │ │ │ ├── prop-icon.vue │ │ │ │ ├── prop-loaders.vue │ │ │ │ ├── prop-outlined.vue │ │ │ │ ├── prop-plain.vue │ │ │ │ ├── prop-ripple.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-size.vue │ │ │ │ ├── prop-tile.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ ├── slot-loader.vue │ │ │ │ ├── slot-prepend-append.vue │ │ │ │ └── usage.vue │ │ │ ├── v-calendar │ │ │ │ ├── event-click.vue │ │ │ │ ├── misc-drag-and-drop.vue │ │ │ │ ├── prop-type-day.vue │ │ │ │ ├── prop-type-month.vue │ │ │ │ ├── prop-type-week.vue │ │ │ │ ├── slot-day-body.vue │ │ │ │ ├── slot-day.vue │ │ │ │ └── usage.vue │ │ │ ├── v-card │ │ │ │ ├── basics-combine.vue │ │ │ │ ├── basics-content.vue │ │ │ │ ├── misc-card-reveal.vue │ │ │ │ ├── misc-content-wrapping.vue │ │ │ │ ├── misc-custom-actions.vue │ │ │ │ ├── misc-earnings-goal.vue │ │ │ │ ├── misc-grids.vue │ │ │ │ ├── misc-horizontal-cards.vue │ │ │ │ ├── misc-information-card.vue │ │ │ │ ├── misc-intermediate.vue │ │ │ │ ├── misc-media-with-text.vue │ │ │ │ ├── misc-shopify-funding.vue │ │ │ │ ├── misc-twitter-card.vue │ │ │ │ ├── misc-weather-card.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-elevated.vue │ │ │ │ ├── prop-elevation.vue │ │ │ │ ├── prop-hover.vue │ │ │ │ ├── prop-href.vue │ │ │ │ ├── prop-image.vue │ │ │ │ ├── prop-link.vue │ │ │ │ ├── prop-loading.vue │ │ │ │ ├── prop-outlined.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ ├── slot-prepend-append.vue │ │ │ │ └── usage.vue │ │ │ ├── v-carousel │ │ │ │ ├── prop-custom-icons.vue │ │ │ │ ├── prop-custom-transition.vue │ │ │ │ ├── prop-cycle.vue │ │ │ │ ├── prop-hide-controls.vue │ │ │ │ ├── prop-hide-delimiters.vue │ │ │ │ ├── prop-model.vue │ │ │ │ ├── prop-progress.vue │ │ │ │ ├── slots-next-prev.vue │ │ │ │ └── usage.vue │ │ │ ├── v-checkbox │ │ │ │ ├── misc-inline-textfield.vue │ │ │ │ ├── prop-colors.vue │ │ │ │ ├── prop-model-as-array.vue │ │ │ │ ├── prop-model-as-boolean.vue │ │ │ │ ├── prop-states.vue │ │ │ │ ├── slot-label.vue │ │ │ │ └── usage.vue │ │ │ ├── v-chip-group │ │ │ │ ├── misc-product-card.vue │ │ │ │ ├── misc-reddit-categories.vue │ │ │ │ ├── misc-toothbrush-card.vue │ │ │ │ ├── prop-column.vue │ │ │ │ ├── prop-filter.vue │ │ │ │ ├── prop-mandatory.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ └── usage.vue │ │ │ ├── v-chip │ │ │ │ ├── event-action-chips.vue │ │ │ │ ├── misc-custom-list.vue │ │ │ │ ├── misc-expandable.vue │ │ │ │ ├── misc-filtering.vue │ │ │ │ ├── misc-in-selects.vue │ │ │ │ ├── prop-closable.vue │ │ │ │ ├── prop-colored.vue │ │ │ │ ├── prop-draggable.vue │ │ │ │ ├── prop-filter.vue │ │ │ │ ├── prop-label.vue │ │ │ │ ├── prop-no-ripple.vue │ │ │ │ ├── prop-outlined.vue │ │ │ │ ├── prop-sizes.vue │ │ │ │ ├── slot-icon.vue │ │ │ │ └── usage.vue │ │ │ ├── v-click-outside │ │ │ │ ├── option-close-on-outside-click.vue │ │ │ │ ├── option-include.vue │ │ │ │ └── usage.vue │ │ │ ├── v-color-input │ │ │ │ ├── prop-color-pip.vue │ │ │ │ ├── prop-model.vue │ │ │ │ ├── prop-prepend-icon.vue │ │ │ │ └── usage.vue │ │ │ ├── v-color-picker │ │ │ │ ├── prop-canvas.vue │ │ │ │ ├── prop-elevation.vue │ │ │ │ ├── prop-mode.vue │ │ │ │ ├── prop-model.vue │ │ │ │ ├── prop-swatches.vue │ │ │ │ └── usage.vue │ │ │ ├── v-combobox │ │ │ │ ├── misc-advanced.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── slot-no-data.vue │ │ │ │ └── usage.vue │ │ │ ├── v-confirm-edit │ │ │ │ ├── misc-date-picker.vue │ │ │ │ ├── misc-disable-actions.vue │ │ │ │ └── usage.vue │ │ │ ├── v-data-iterator │ │ │ │ ├── misc-filter.vue │ │ │ │ ├── slot-default.vue │ │ │ │ ├── slot-header-and-footer.vue │ │ │ │ ├── slot-loader.vue │ │ │ │ └── usage.vue │ │ │ ├── v-data-table │ │ │ │ ├── headers-multiple.vue │ │ │ │ ├── misc-crud.vue │ │ │ │ ├── misc-edit-dialog.vue │ │ │ │ ├── misc-expand.vue │ │ │ │ ├── misc-external-paginate.vue │ │ │ │ ├── misc-external-sort.vue │ │ │ │ ├── misc-select-all.vue │ │ │ │ ├── misc-server-side-paginate-and-sort.vue │ │ │ │ ├── prop-custom-filter.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-filter-keys.vue │ │ │ │ ├── prop-footer-props.vue │ │ │ │ ├── prop-grouping.vue │ │ │ │ ├── prop-headers-sort-raw.vue │ │ │ │ ├── prop-hide-header-footer.vue │ │ │ │ ├── prop-item-selectable.vue │ │ │ │ ├── prop-item-value.vue │ │ │ │ ├── prop-loading.vue │ │ │ │ ├── prop-multi-sort.vue │ │ │ │ ├── prop-return-object.vue │ │ │ │ ├── prop-row-selection.vue │ │ │ │ ├── prop-search.vue │ │ │ │ ├── prop-select-strategy.vue │ │ │ │ ├── prop-sort-by.vue │ │ │ │ ├── server-search.vue │ │ │ │ ├── server.vue │ │ │ │ ├── slot-group-header.vue │ │ │ │ ├── slot-header.vue │ │ │ │ ├── slot-headers.vue │ │ │ │ ├── slot-item-data-table-select.vue │ │ │ │ ├── slot-item-key.vue │ │ │ │ ├── slot-item.vue │ │ │ │ ├── slot-loading.vue │ │ │ │ ├── slot-main.vue │ │ │ │ ├── slot-simple-checkbox.vue │ │ │ │ ├── usage.vue │ │ │ │ ├── virtual.vue │ │ │ │ └── virtualized.vue │ │ │ ├── v-date-input │ │ │ │ ├── misc-passenger.vue │ │ │ │ ├── prop-display-format.vue │ │ │ │ ├── prop-model.vue │ │ │ │ ├── prop-multiple-range.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── prop-prepend-icon.vue │ │ │ │ └── usage.vue │ │ │ ├── v-date-picker-month │ │ │ │ ├── misc-dialog-and-menu.vue │ │ │ │ ├── misc-internationalization.vue │ │ │ │ ├── misc-orientation.vue │ │ │ │ ├── prop-allowed-months.vue │ │ │ │ ├── prop-colors.vue │ │ │ │ ├── prop-icons.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── prop-show-current.vue │ │ │ │ ├── prop-width.vue │ │ │ │ └── usage.vue │ │ │ ├── v-date-picker │ │ │ │ ├── event-button-events.vue │ │ │ │ ├── event-events.vue │ │ │ │ ├── guide-locale.vue │ │ │ │ ├── misc-birthday.vue │ │ │ │ ├── misc-dialog-and-menu.vue │ │ │ │ ├── misc-formatting-external-libraries.vue │ │ │ │ ├── misc-formatting.vue │ │ │ │ ├── misc-internationalization.vue │ │ │ │ ├── misc-orientation.vue │ │ │ │ ├── prop-allowed-dates.vue │ │ │ │ ├── prop-colors.vue │ │ │ │ ├── prop-elevation.vue │ │ │ │ ├── prop-icons.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── prop-picker-date.vue │ │ │ │ ├── prop-range.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── prop-show-adjacent-months.vue │ │ │ │ ├── prop-show-current.vue │ │ │ │ ├── prop-width.vue │ │ │ │ └── usage.vue │ │ │ ├── v-defaults-provider │ │ │ │ ├── prop-defaults.vue │ │ │ │ └── usage.vue │ │ │ ├── v-dialog │ │ │ │ ├── misc-data-table.vue │ │ │ │ ├── misc-form.vue │ │ │ │ ├── misc-invite-dialog.vue │ │ │ │ ├── misc-loader.vue │ │ │ │ ├── misc-nesting.vue │ │ │ │ ├── misc-overflowed.vue │ │ │ │ ├── misc-without-activator.vue │ │ │ │ ├── prop-activator.vue │ │ │ │ ├── prop-fullscreen.vue │ │ │ │ ├── prop-model.vue │ │ │ │ ├── prop-persistent.vue │ │ │ │ ├── prop-scrollable.vue │ │ │ │ ├── prop-transitions.vue │ │ │ │ ├── slot-default.vue │ │ │ │ └── usage.vue │ │ │ ├── v-divider │ │ │ │ ├── misc-portrait-view.vue │ │ │ │ ├── misc-subheaders.vue │ │ │ │ ├── prop-inset.vue │ │ │ │ ├── prop-vertical.vue │ │ │ │ └── usage.vue │ │ │ ├── v-empty-state │ │ │ │ ├── misc-astro-cat.vue │ │ │ │ ├── misc-astro-dog.vue │ │ │ │ ├── prop-actions.vue │ │ │ │ ├── prop-content.vue │ │ │ │ ├── prop-media.vue │ │ │ │ ├── slot-actions.vue │ │ │ │ ├── slot-default.vue │ │ │ │ ├── slot-title.vue │ │ │ │ └── usage.vue │ │ │ ├── v-expansion-panels │ │ │ │ ├── misc-advanced.vue │ │ │ │ ├── misc-custom-icons.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-model.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ └── usage.vue │ │ │ ├── v-fab │ │ │ │ ├── misc-display-animation.vue │ │ │ │ ├── misc-lateral-screens.vue │ │ │ │ ├── misc-small.vue │ │ │ │ ├── misc-speed-dial.vue │ │ │ │ └── usage.vue │ │ │ ├── v-file-input │ │ │ │ ├── misc-complex-selection.vue │ │ │ │ ├── prop-accept.vue │ │ │ │ ├── prop-chips.vue │ │ │ │ ├── prop-counter.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── prop-prepend-icon.vue │ │ │ │ ├── prop-show-size.vue │ │ │ │ ├── prop-validation.vue │ │ │ │ ├── slot-selection.vue │ │ │ │ └── usage.vue │ │ │ ├── v-file-upload │ │ │ │ ├── prop-content.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-scrim.vue │ │ │ │ ├── slot-item.vue │ │ │ │ └── usage.vue │ │ │ ├── v-footer │ │ │ │ ├── misc-company-footer.vue │ │ │ │ ├── misc-indigo-footer.vue │ │ │ │ ├── misc-teal-footer.vue │ │ │ │ └── usage.vue │ │ │ ├── v-form │ │ │ │ ├── misc-exposed.vue │ │ │ │ ├── misc-vee-validate.vue │ │ │ │ ├── misc-vuelidate.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-fast-fail.vue │ │ │ │ ├── rules-async.vue │ │ │ │ ├── rules-required.vue │ │ │ │ └── usage.vue │ │ │ ├── v-hover │ │ │ │ ├── misc-hover-list.vue │ │ │ │ ├── misc-transition.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-open-and-close-delay.vue │ │ │ │ └── usage.vue │ │ │ ├── v-icon-btn │ │ │ │ ├── misc-dialog.vue │ │ │ │ ├── misc-markdown-editor.vue │ │ │ │ ├── misc-table-actions.vue │ │ │ │ ├── misc-video-controls.vue │ │ │ │ ├── prop-active.vue │ │ │ │ ├── prop-opacity.vue │ │ │ │ ├── prop-rotate.vue │ │ │ │ └── usage.vue │ │ │ ├── v-icon │ │ │ │ ├── event-click.vue │ │ │ │ ├── misc-buttons.vue │ │ │ │ ├── misc-font-awesome.vue │ │ │ │ ├── misc-md.vue │ │ │ │ ├── misc-mdi-svg.vue │ │ │ │ ├── prop-color.vue │ │ │ │ └── usage.vue │ │ │ ├── v-img │ │ │ │ ├── complex-grid.vue │ │ │ │ ├── misc-grid.vue │ │ │ │ ├── prop-contain.vue │ │ │ │ ├── prop-cover.vue │ │ │ │ ├── prop-gradient.vue │ │ │ │ ├── prop-max-height.vue │ │ │ │ ├── slot-error.vue │ │ │ │ ├── slot-placeholder.vue │ │ │ │ └── usage.vue │ │ │ ├── v-infinite-scroll │ │ │ │ ├── misc-virtual.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-direction.vue │ │ │ │ ├── prop-mode.vue │ │ │ │ ├── prop-side-both.vue │ │ │ │ ├── prop-side-start.vue │ │ │ │ ├── slot-empty.vue │ │ │ │ ├── slot-error.vue │ │ │ │ ├── slot-load-more.vue │ │ │ │ ├── slot-loading.vue │ │ │ │ └── usage.vue │ │ │ ├── v-input │ │ │ │ ├── event-slot-clicks.vue │ │ │ │ ├── prop-error-count.vue │ │ │ │ ├── prop-error.vue │ │ │ │ ├── prop-hide-details.vue │ │ │ │ ├── prop-hint.vue │ │ │ │ ├── prop-loading.vue │ │ │ │ ├── prop-rules.vue │ │ │ │ ├── slot-append-and-prepend.vue │ │ │ │ └── usage.vue │ │ │ ├── v-intersect │ │ │ │ ├── prop-options.vue │ │ │ │ └── usage.vue │ │ │ ├── v-item-group │ │ │ │ ├── misc-chips.vue │ │ │ │ ├── misc-selection.vue │ │ │ │ ├── prop-mandatory.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── prop-selected-class.vue │ │ │ │ └── usage.vue │ │ │ ├── v-lazy │ │ │ │ └── usage.vue │ │ │ ├── v-list │ │ │ │ ├── misc-action-stack.vue │ │ │ │ ├── misc-actions.vue │ │ │ │ ├── misc-card-list.vue │ │ │ │ ├── misc-simple-avatar-list.vue │ │ │ │ ├── misc-single-line-list.vue │ │ │ │ ├── misc-subheadings-and-dividers.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-items-custom.vue │ │ │ │ ├── prop-items-prop.vue │ │ │ │ ├── prop-items-type.vue │ │ │ │ ├── prop-items.vue │ │ │ │ ├── prop-nav.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-shaped.vue │ │ │ │ ├── prop-sub-group.vue │ │ │ │ ├── prop-three-line.vue │ │ │ │ ├── prop-two-line-and-subheader.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ ├── slot-expansion-lists.vue │ │ │ │ └── usage.vue │ │ │ ├── v-menu │ │ │ │ ├── misc-popover.vue │ │ │ │ ├── misc-transition.vue │ │ │ │ ├── misc-use-in-components.vue │ │ │ │ ├── prop-absolute-without-activator.vue │ │ │ │ ├── prop-absolute.vue │ │ │ │ ├── prop-close-on-click.vue │ │ │ │ ├── prop-close-on-content-click.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-location.vue │ │ │ │ ├── prop-open-on-hover.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-submenu.vue │ │ │ │ ├── slot-activator-and-tooltip.vue │ │ │ │ └── usage.vue │ │ │ ├── v-mutate │ │ │ │ ├── option-modifiers.vue │ │ │ │ └── usage.vue │ │ │ ├── v-navigation-drawer │ │ │ │ ├── misc-colored.vue │ │ │ │ ├── misc-combined.vue │ │ │ │ ├── prop-bottom-drawer.vue │ │ │ │ ├── prop-expand-on-hover.vue │ │ │ │ ├── prop-images.vue │ │ │ │ ├── prop-permanent-and-floating.vue │ │ │ │ ├── prop-rail-variant.vue │ │ │ │ ├── prop-right.vue │ │ │ │ ├── prop-temporary.vue │ │ │ │ └── usage.vue │ │ │ ├── v-number-input │ │ │ │ ├── prop-control-variant.vue │ │ │ │ ├── prop-hide-input.vue │ │ │ │ ├── prop-inset.vue │ │ │ │ ├── prop-min-max.vue │ │ │ │ ├── prop-precision.vue │ │ │ │ ├── prop-reverse.vue │ │ │ │ ├── prop-step.vue │ │ │ │ └── usage.vue │ │ │ ├── v-otp-input │ │ │ │ ├── misc-card.vue │ │ │ │ ├── misc-divider.vue │ │ │ │ ├── misc-mobile.vue │ │ │ │ ├── misc-verify.vue │ │ │ │ ├── prop-error.vue │ │ │ │ ├── prop-focus-all.vue │ │ │ │ ├── prop-length.vue │ │ │ │ ├── prop-loader.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ └── usage.vue │ │ │ ├── v-overflow-btn │ │ │ │ ├── prop-counter.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-editable.vue │ │ │ │ ├── prop-filled.vue │ │ │ │ ├── prop-hint.vue │ │ │ │ ├── prop-loading.vue │ │ │ │ ├── prop-menu-props.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── prop-segmented.vue │ │ │ │ └── usage.vue │ │ │ ├── v-overlay │ │ │ │ ├── connected-playground.vue │ │ │ │ ├── misc-advanced.vue │ │ │ │ ├── misc-loader.vue │ │ │ │ ├── prop-contained.vue │ │ │ │ ├── scroll-block.vue │ │ │ │ ├── scroll-close.vue │ │ │ │ ├── scroll-none.vue │ │ │ │ ├── scroll-reposition.vue │ │ │ │ └── usage.vue │ │ │ ├── v-pagination │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-icons.vue │ │ │ │ ├── prop-length.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-total-visible.vue │ │ │ │ └── usage.vue │ │ │ ├── v-parallax │ │ │ │ ├── misc-content.vue │ │ │ │ ├── misc-custom-height.vue │ │ │ │ ├── misc-welcome.vue │ │ │ │ └── usage.vue │ │ │ ├── v-progress-circular │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-indeterminate.vue │ │ │ │ ├── prop-rotate.vue │ │ │ │ ├── prop-size-and-width.vue │ │ │ │ ├── prop-slot-default.vue │ │ │ │ └── usage.vue │ │ │ ├── v-progress-linear │ │ │ │ ├── misc-buffer-color.vue │ │ │ │ ├── misc-determinate.vue │ │ │ │ ├── misc-file-loader.vue │ │ │ │ ├── misc-toolbar-loader.vue │ │ │ │ ├── prop-buffer-value.vue │ │ │ │ ├── prop-colors.vue │ │ │ │ ├── prop-indeterminate.vue │ │ │ │ ├── prop-query.vue │ │ │ │ ├── prop-reverse.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-stream.vue │ │ │ │ ├── prop-striped.vue │ │ │ │ ├── slot-default.vue │ │ │ │ └── usage.vue │ │ │ ├── v-pull-to-refresh │ │ │ │ └── usage.vue │ │ │ ├── v-radio-group │ │ │ │ ├── prop-colors.vue │ │ │ │ ├── prop-direction.vue │ │ │ │ ├── prop-model-group.vue │ │ │ │ ├── prop-model-radio.vue │ │ │ │ ├── slot-label.vue │ │ │ │ └── usage.vue │ │ │ ├── v-range-slider │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-min-and-max.vue │ │ │ │ ├── prop-step.vue │ │ │ │ ├── prop-strict.vue │ │ │ │ ├── prop-vertical.vue │ │ │ │ ├── slot-thumb-label.vue │ │ │ │ └── usage.vue │ │ │ ├── v-rating │ │ │ │ ├── misc-advanced.vue │ │ │ │ ├── misc-card-overview.vue │ │ │ │ ├── misc-card.vue │ │ │ │ ├── prop-clearable.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-density.vue │ │ │ │ ├── prop-half-increments.vue │ │ │ │ ├── prop-hover.vue │ │ │ │ ├── prop-icon-label.vue │ │ │ │ ├── prop-icons.vue │ │ │ │ ├── prop-item-labels.vue │ │ │ │ ├── prop-length.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── prop-size.vue │ │ │ │ ├── slot-item-label.vue │ │ │ │ ├── slot-item.vue │ │ │ │ └── usage.vue │ │ │ ├── v-resize │ │ │ │ └── usage.vue │ │ │ ├── v-responsive │ │ │ │ └── usage.vue │ │ │ ├── v-ripple │ │ │ │ ├── misc-custom-color.vue │ │ │ │ ├── misc-ripple-in-components.vue │ │ │ │ ├── option-center.vue │ │ │ │ ├── stop.vue │ │ │ │ └── usage.vue │ │ │ ├── v-scroll │ │ │ │ ├── option-self.vue │ │ │ │ ├── option-target.vue │ │ │ │ └── usage.vue │ │ │ ├── v-select │ │ │ │ ├── prop-chips.vue │ │ │ │ ├── prop-custom-title-and-value.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-item-props.vue │ │ │ │ ├── prop-menu-props.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── slot-append-and-prepend-item.vue │ │ │ │ ├── slot-item.vue │ │ │ │ ├── slot-selection.vue │ │ │ │ └── usage.vue │ │ │ ├── v-sheet │ │ │ │ ├── misc-congratulations.vue │ │ │ │ ├── misc-privacy-policy.vue │ │ │ │ ├── misc-reconcile.vue │ │ │ │ ├── misc-referral-program.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-elevation.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ └── usage.vue │ │ │ ├── v-skeleton-loader │ │ │ │ ├── misc-ice-cream.vue │ │ │ │ ├── prop-boilerplate.vue │ │ │ │ ├── prop-elevation.vue │ │ │ │ ├── prop-loading.vue │ │ │ │ ├── prop-type.vue │ │ │ │ └── usage.vue │ │ │ ├── v-slide-group │ │ │ │ ├── misc-pseudo-carousel.vue │ │ │ │ ├── prop-active-class.vue │ │ │ │ ├── prop-center-active.vue │ │ │ │ ├── prop-custom-icons.vue │ │ │ │ ├── prop-mandatory.vue │ │ │ │ ├── prop-multiple.vue │ │ │ │ └── usage.vue │ │ │ ├── v-slider │ │ │ │ ├── prop-colors.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-icons.vue │ │ │ │ ├── prop-min-and-max.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── prop-step.vue │ │ │ │ ├── prop-thumb.vue │ │ │ │ ├── prop-ticks.vue │ │ │ │ ├── prop-validation.vue │ │ │ │ ├── prop-vertical.vue │ │ │ │ ├── slot-append-and-prepend.vue │ │ │ │ ├── slot-append-text-field.vue │ │ │ │ └── usage.vue │ │ │ ├── v-snackbar-queue │ │ │ │ └── usage.vue │ │ │ ├── v-snackbar │ │ │ │ ├── prop-multi-line.vue │ │ │ │ ├── prop-timeout.vue │ │ │ │ ├── prop-variants.vue │ │ │ │ ├── prop-vertical.vue │ │ │ │ └── usage.vue │ │ │ ├── v-sparkline │ │ │ │ ├── misc-custom-labels.vue │ │ │ │ ├── misc-dashboard-card.vue │ │ │ │ ├── misc-heart-rate.vue │ │ │ │ ├── prop-fill.vue │ │ │ │ └── usage.vue │ │ │ ├── v-speed-dial │ │ │ │ └── usage.vue │ │ │ ├── v-stepper-vertical │ │ │ │ ├── slot-actions.vue │ │ │ │ └── usage.vue │ │ │ ├── v-stepper │ │ │ │ ├── misc-alternate-error.vue │ │ │ │ ├── misc-dynamic.vue │ │ │ │ ├── misc-editable.vue │ │ │ │ ├── misc-error.vue │ │ │ │ ├── misc-horizontal.vue │ │ │ │ ├── misc-linear.vue │ │ │ │ ├── misc-non-editable.vue │ │ │ │ ├── misc-optional.vue │ │ │ │ ├── misc-vertical-error.vue │ │ │ │ ├── prop-alternate-label.vue │ │ │ │ ├── prop-mobile.vue │ │ │ │ ├── prop-non-linear.vue │ │ │ │ ├── prop-vertical.vue │ │ │ │ └── usage.vue │ │ │ ├── v-switch │ │ │ │ ├── prop-colors.vue │ │ │ │ ├── prop-custom-values.vue │ │ │ │ ├── prop-flat.vue │ │ │ │ ├── prop-inset.vue │ │ │ │ ├── prop-model-as-array.vue │ │ │ │ ├── prop-states.vue │ │ │ │ ├── slot-label.vue │ │ │ │ └── usage.vue │ │ │ ├── v-system-bar │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-window.vue │ │ │ │ └── usage.vue │ │ │ ├── v-table │ │ │ │ ├── prop-dark.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-fixed-header.vue │ │ │ │ ├── prop-height.vue │ │ │ │ └── usage.vue │ │ │ ├── v-tabs │ │ │ │ ├── misc-content.vue │ │ │ │ ├── misc-dynamic-height.vue │ │ │ │ ├── misc-dynamic.vue │ │ │ │ ├── misc-mobile.vue │ │ │ │ ├── misc-overflow-to-menu.vue │ │ │ │ ├── misc-pagination.vue │ │ │ │ ├── misc-tab-items.vue │ │ │ │ ├── prop-align-tabs-center.vue │ │ │ │ ├── prop-align-tabs-end.vue │ │ │ │ ├── prop-align-tabs-title.vue │ │ │ │ ├── prop-center-active.vue │ │ │ │ ├── prop-direction.vue │ │ │ │ ├── prop-fixed-tabs.vue │ │ │ │ ├── prop-grow.vue │ │ │ │ ├── prop-icons.vue │ │ │ │ ├── prop-stacked.vue │ │ │ │ ├── slot-tabs.vue │ │ │ │ └── usage.vue │ │ │ ├── v-text-field │ │ │ │ ├── event-icons.vue │ │ │ │ ├── misc-custom-validation.vue │ │ │ │ ├── misc-full-width-with-counter.vue │ │ │ │ ├── misc-guide.vue │ │ │ │ ├── misc-login-form.vue │ │ │ │ ├── misc-password.vue │ │ │ │ ├── prop-clearable.vue │ │ │ │ ├── prop-contained.vue │ │ │ │ ├── prop-counter.vue │ │ │ │ ├── prop-custom-colors.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-disabled-and-readonly.vue │ │ │ │ ├── prop-filled.vue │ │ │ │ ├── prop-hide-details.vue │ │ │ │ ├── prop-hint.vue │ │ │ │ ├── prop-icon.vue │ │ │ │ ├── prop-label.vue │ │ │ │ ├── prop-messages.vue │ │ │ │ ├── prop-outlined.vue │ │ │ │ ├── prop-placeholder.vue │ │ │ │ ├── prop-prefixes-and-suffixes.vue │ │ │ │ ├── prop-rules.vue │ │ │ │ ├── prop-single-line.vue │ │ │ │ ├── prop-validation.vue │ │ │ │ ├── prop-variant.vue │ │ │ │ ├── slot-icons.vue │ │ │ │ ├── slot-label.vue │ │ │ │ ├── slot-progress.vue │ │ │ │ └── usage.vue │ │ │ ├── v-textarea │ │ │ │ ├── misc-signup-form.vue │ │ │ │ ├── prop-auto-grow.vue │ │ │ │ ├── prop-background-color.vue │ │ │ │ ├── prop-browser-autocomplete.vue │ │ │ │ ├── prop-clearable.vue │ │ │ │ ├── prop-counter.vue │ │ │ │ ├── prop-icons.vue │ │ │ │ ├── prop-no-resize.vue │ │ │ │ ├── prop-rows.vue │ │ │ │ └── usage.vue │ │ │ ├── v-theme-provider │ │ │ │ └── prop-with-background.vue │ │ │ ├── v-time-picker │ │ │ │ ├── misc-dialog-and-menu.vue │ │ │ │ ├── prop-allowed-times.vue │ │ │ │ ├── prop-ampm-in-title.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-disabled.vue │ │ │ │ ├── prop-elevation.vue │ │ │ │ ├── prop-format.vue │ │ │ │ ├── prop-hide-header.vue │ │ │ │ ├── prop-range.vue │ │ │ │ ├── prop-readonly.vue │ │ │ │ ├── prop-scrollable.vue │ │ │ │ ├── prop-use-seconds.vue │ │ │ │ └── usage.vue │ │ │ ├── v-timeline │ │ │ │ ├── misc-advanced.vue │ │ │ │ ├── prop-align.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-direction.vue │ │ │ │ ├── prop-icon-dots.vue │ │ │ │ ├── prop-line-inset.vue │ │ │ │ ├── prop-mirror.vue │ │ │ │ ├── prop-single-side.vue │ │ │ │ ├── prop-size.vue │ │ │ │ ├── prop-truncate-line.vue │ │ │ │ ├── slot-icon.vue │ │ │ │ ├── slot-opposite.vue │ │ │ │ └── usage.vue │ │ │ ├── v-toolbar │ │ │ │ ├── misc-contextual-action-bar.vue │ │ │ │ ├── misc-flexible-and-card.vue │ │ │ │ ├── prop-background.vue │ │ │ │ ├── prop-collapse.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-extended.vue │ │ │ │ ├── prop-extension-height.vue │ │ │ │ ├── prop-floating-with-search.vue │ │ │ │ ├── slot-extension.vue │ │ │ │ └── usage.vue │ │ │ ├── v-tooltip-directive │ │ │ │ ├── args.vue │ │ │ │ ├── object-literals.vue │ │ │ │ ├── text.vue │ │ │ │ └── usage.vue │ │ │ ├── v-tooltip │ │ │ │ ├── misc-at-cursor.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-interactive.vue │ │ │ │ ├── prop-location.vue │ │ │ │ ├── prop-open-on-click.vue │ │ │ │ ├── prop-visibility.vue │ │ │ │ └── usage.vue │ │ │ ├── v-touch │ │ │ │ └── usage.vue │ │ │ ├── v-treeview │ │ │ │ ├── misc-search-and-filter.vue │ │ │ │ ├── misc-selectable-icons.vue │ │ │ │ ├── playground.vue │ │ │ │ ├── prop-activatable.vue │ │ │ │ ├── prop-color.vue │ │ │ │ ├── prop-dense.vue │ │ │ │ ├── prop-fluid.vue │ │ │ │ ├── prop-hoverable.vue │ │ │ │ ├── prop-item-props.vue │ │ │ │ ├── prop-load-children.vue │ │ │ │ ├── prop-open-all.vue │ │ │ │ ├── prop-rounded.vue │ │ │ │ ├── prop-selected-color.vue │ │ │ │ ├── prop-selection-type.vue │ │ │ │ ├── slot-append-and-label.vue │ │ │ │ ├── slot-title.vue │ │ │ │ └── usage.vue │ │ │ ├── v-virtual-scroll │ │ │ │ ├── misc-user-directory.vue │ │ │ │ ├── prop-dynamic-item-height.vue │ │ │ │ ├── prop-height-parent.vue │ │ │ │ ├── prop-height.vue │ │ │ │ ├── prop-item-height.vue │ │ │ │ └── usage.vue │ │ │ ├── v-window │ │ │ │ ├── misc-account-creation.vue │ │ │ │ ├── misc-onboarding.vue │ │ │ │ ├── prop-direction.vue │ │ │ │ ├── prop-reverse.vue │ │ │ │ ├── prop-show-arrows.vue │ │ │ │ ├── slots-next-prev.vue │ │ │ │ └── usage.vue │ │ │ ├── why-vuetify │ │ │ │ ├── card-components.vue │ │ │ │ ├── card-props.vue │ │ │ │ └── card-slots.vue │ │ │ └── wireframes │ │ │ │ ├── baseline.vue │ │ │ │ ├── constrained.vue │ │ │ │ ├── discord.vue │ │ │ │ ├── extended-toolbar.vue │ │ │ │ ├── inbox.vue │ │ │ │ ├── side-navigation.vue │ │ │ │ ├── steam.vue │ │ │ │ ├── system-bar.vue │ │ │ │ └── three-column.vue │ │ ├── i18n │ │ │ ├── locales.json │ │ │ └── messages │ │ │ │ ├── .gitignore │ │ │ │ └── en.json │ │ ├── layouts │ │ │ ├── 404.vue │ │ │ ├── blank.vue │ │ │ ├── blog.vue │ │ │ ├── default.vue │ │ │ ├── home.vue │ │ │ ├── user.vue │ │ │ └── wireframe.vue │ │ ├── main.ts │ │ ├── pages │ │ │ └── en │ │ │ │ ├── about │ │ │ │ ├── code-of-conduct.md │ │ │ │ ├── licensing.md │ │ │ │ ├── meet-the-team.md │ │ │ │ └── security-disclosure.md │ │ │ │ ├── api │ │ │ │ └── [name].md │ │ │ │ ├── blog │ │ │ │ ├── announcing-vuetify-3.8.md │ │ │ │ ├── april-2025-update.md │ │ │ │ ├── building-a-basic-nuxt-application-with-vuetify.md │ │ │ │ ├── index.md │ │ │ │ ├── may-2025-update.md │ │ │ │ ├── state-of-the-union-2024-post-mortem.md │ │ │ │ ├── state-of-the-union-2024.md │ │ │ │ └── vuetify-herodevs-partnership.md │ │ │ │ ├── components │ │ │ │ ├── alerts.md │ │ │ │ ├── all.md │ │ │ │ ├── app-bars.md │ │ │ │ ├── application.md │ │ │ │ ├── aspect-ratios.md │ │ │ │ ├── autocompletes.md │ │ │ │ ├── avatars.md │ │ │ │ ├── badges.md │ │ │ │ ├── banners.md │ │ │ │ ├── bottom-navigation.md │ │ │ │ ├── bottom-sheets.md │ │ │ │ ├── breadcrumbs.md │ │ │ │ ├── button-groups.md │ │ │ │ ├── buttons.md │ │ │ │ ├── calendars.md │ │ │ │ ├── cards.md │ │ │ │ ├── carousels.md │ │ │ │ ├── checkboxes.md │ │ │ │ ├── chip-groups.md │ │ │ │ ├── chips.md │ │ │ │ ├── color-inputs.md │ │ │ │ ├── color-pickers.md │ │ │ │ ├── combobox.md │ │ │ │ ├── confirm-edit.md │ │ │ │ ├── data-iterators.md │ │ │ │ ├── data-tables │ │ │ │ │ ├── basics.md │ │ │ │ │ ├── data-and-display.md │ │ │ │ │ ├── introduction.md │ │ │ │ │ ├── server-side-tables.md │ │ │ │ │ └── virtual-tables.md │ │ │ │ ├── date-inputs.md │ │ │ │ ├── date-pickers-month.md │ │ │ │ ├── date-pickers.md │ │ │ │ ├── defaults-providers.md │ │ │ │ ├── dialogs.md │ │ │ │ ├── dividers.md │ │ │ │ ├── empty-states.md │ │ │ │ ├── expansion-panels.md │ │ │ │ ├── explorer │ │ │ │ │ └── [...name].md │ │ │ │ ├── file-inputs.md │ │ │ │ ├── file-upload.md │ │ │ │ ├── floating-action-buttons.md │ │ │ │ ├── footers.md │ │ │ │ ├── forms.md │ │ │ │ ├── grids.md │ │ │ │ ├── hover.md │ │ │ │ ├── icon-buttons.md │ │ │ │ ├── icons.md │ │ │ │ ├── images.md │ │ │ │ ├── infinite-scroller.md │ │ │ │ ├── inputs.md │ │ │ │ ├── item-groups.md │ │ │ │ ├── lazy.md │ │ │ │ ├── lists.md │ │ │ │ ├── locale-providers.md │ │ │ │ ├── menus.md │ │ │ │ ├── navigation-drawers.md │ │ │ │ ├── no-ssr.md │ │ │ │ ├── number-inputs.md │ │ │ │ ├── otp-input.md │ │ │ │ ├── overflow-btns.md │ │ │ │ ├── overlays.md │ │ │ │ ├── paginations.md │ │ │ │ ├── parallax.md │ │ │ │ ├── progress-circular.md │ │ │ │ ├── progress-linear.md │ │ │ │ ├── pull-to-refresh.md │ │ │ │ ├── radio-buttons.md │ │ │ │ ├── range-sliders.md │ │ │ │ ├── ratings.md │ │ │ │ ├── selects.md │ │ │ │ ├── sheets.md │ │ │ │ ├── skeleton-loaders.md │ │ │ │ ├── slide-groups.md │ │ │ │ ├── sliders.md │ │ │ │ ├── snackbar-queue.md │ │ │ │ ├── snackbars.md │ │ │ │ ├── sparklines.md │ │ │ │ ├── speed-dials.md │ │ │ │ ├── steppers.md │ │ │ │ ├── switches.md │ │ │ │ ├── system-bars.md │ │ │ │ ├── tables.md │ │ │ │ ├── tabs.md │ │ │ │ ├── text-fields.md │ │ │ │ ├── textareas.md │ │ │ │ ├── theme-providers.md │ │ │ │ ├── time-pickers.md │ │ │ │ ├── timelines.md │ │ │ │ ├── toolbars.md │ │ │ │ ├── tooltips.md │ │ │ │ ├── treeview.md │ │ │ │ ├── vertical-steppers.md │ │ │ │ ├── virtual-scroller.md │ │ │ │ └── windows.md │ │ │ │ ├── concepts │ │ │ │ ├── density-and-sizing.md │ │ │ │ ├── items.md │ │ │ │ ├── routing.md │ │ │ │ ├── v-model.md │ │ │ │ └── variants.md │ │ │ │ ├── directives │ │ │ │ ├── click-outside.md │ │ │ │ ├── intersect.md │ │ │ │ ├── mutate.md │ │ │ │ ├── resize.md │ │ │ │ ├── ripple.md │ │ │ │ ├── scroll.md │ │ │ │ ├── tooltip.md │ │ │ │ └── touch.md │ │ │ │ ├── features │ │ │ │ ├── accessibility.md │ │ │ │ ├── aliasing.md │ │ │ │ ├── application-layout.md │ │ │ │ ├── blueprints.md │ │ │ │ ├── dates.md │ │ │ │ ├── display-and-platform.md │ │ │ │ ├── global-configuration.md │ │ │ │ ├── icon-fonts.md │ │ │ │ ├── internationalization.md │ │ │ │ ├── rules.md │ │ │ │ ├── sass-variables.md │ │ │ │ ├── scrolling.md │ │ │ │ ├── theme.md │ │ │ │ └── treeshaking.md │ │ │ │ ├── getting-started │ │ │ │ ├── browser-support.md │ │ │ │ ├── contributing.md │ │ │ │ ├── frequently-asked-questions.md │ │ │ │ ├── installation.md │ │ │ │ ├── release-notes.md │ │ │ │ ├── unit-testing.md │ │ │ │ ├── upgrade-guide.md │ │ │ │ └── wireframes.md │ │ │ │ ├── index.md │ │ │ │ ├── introduction │ │ │ │ ├── enterprise-support.md │ │ │ │ ├── long-term-support.md │ │ │ │ ├── roadmap.md │ │ │ │ ├── sponsors-and-backers.md │ │ │ │ └── why-vuetify.md │ │ │ │ ├── labs │ │ │ │ └── introduction.md │ │ │ │ ├── resources │ │ │ │ ├── brand-kit.md │ │ │ │ ├── jobs-for-vue.md │ │ │ │ ├── made-with-vuetify.md │ │ │ │ ├── search-engine.md │ │ │ │ ├── themes.md │ │ │ │ └── ui-kits.md │ │ │ │ ├── styles │ │ │ │ ├── border-radius.md │ │ │ │ ├── borders.md │ │ │ │ ├── colors.md │ │ │ │ ├── content.md │ │ │ │ ├── css-reset.md │ │ │ │ ├── cursor.md │ │ │ │ ├── display.md │ │ │ │ ├── elevation.md │ │ │ │ ├── flex.md │ │ │ │ ├── float.md │ │ │ │ ├── opacity.md │ │ │ │ ├── overflow.md │ │ │ │ ├── position.md │ │ │ │ ├── sizing.md │ │ │ │ ├── spacing.md │ │ │ │ ├── text-and-typography.md │ │ │ │ └── transitions.md │ │ │ │ ├── user │ │ │ │ └── dashboard.md │ │ │ │ └── wireframes │ │ │ │ ├── baseline.md │ │ │ │ ├── constrained.md │ │ │ │ ├── discord.md │ │ │ │ ├── extended-toolbar.md │ │ │ │ ├── inbox.md │ │ │ │ ├── side-navigation.md │ │ │ │ ├── steam.md │ │ │ │ ├── system-bar.md │ │ │ │ └── three-column.md │ │ ├── plugins │ │ │ ├── global-components.ts │ │ │ ├── i18n.ts │ │ │ ├── icons.ts │ │ │ ├── octokit.ts │ │ │ ├── one.ts │ │ │ ├── pinia.ts │ │ │ ├── pwa.ts │ │ │ └── vuetify.ts │ │ ├── service-worker.js │ │ ├── shims.d.ts │ │ ├── stores │ │ │ ├── ads.ts │ │ │ ├── app.ts │ │ │ ├── commits.ts │ │ │ ├── jobs.ts │ │ │ ├── locale.ts │ │ │ ├── made-with-vuetify.ts │ │ │ ├── pins.ts │ │ │ ├── promotions.ts │ │ │ ├── pwa.ts │ │ │ ├── releases.ts │ │ │ ├── shopify.ts │ │ │ ├── sponsors.ts │ │ │ ├── spot.ts │ │ │ └── team-members.ts │ │ ├── utils │ │ │ ├── analytics.ts │ │ │ ├── api.ts │ │ │ ├── globals.ts │ │ │ ├── helpers.ts │ │ │ ├── markdown-it-rules.ts │ │ │ ├── markdown-it.ts │ │ │ ├── metadata.ts │ │ │ ├── pwa.ts │ │ │ └── routes.ts │ │ └── vite-env.d.ts │ ├── tsconfig.json │ └── vite.config.mts └── vuetify │ ├── .browserslistrc │ ├── .env.example │ ├── .eslintignore │ ├── .eslintrc.cjs │ ├── .gitignore │ ├── _settings.scss │ ├── _styles.scss │ ├── _tools.scss │ ├── babel.config.js │ ├── build │ ├── babel-plugin-replace-import-extension.js │ ├── constants.js │ ├── remove-dts-styles.cts │ ├── rollup.config.js │ ├── rollup.types.config.js │ ├── run-tests.js │ ├── transform-types.js │ └── types-code-transform.js │ ├── dev │ ├── App.vue │ ├── Playground.template.vue │ ├── favicon.png │ ├── index.html │ ├── index.js │ ├── router.js │ ├── vuetify.js │ └── vuetify │ │ ├── date.js │ │ ├── defaults.js │ │ ├── icons.js │ │ └── locale.js │ ├── package.json │ ├── playgrounds │ ├── Playground.datatable.vue │ ├── Playground.infinite.vue │ ├── Playground.items.vue │ ├── Playground.list.vue │ ├── Playground.nested.vue │ └── Playground.slider.vue │ ├── src │ ├── __tests__ │ │ └── framework.spec.browser.tsx │ ├── auto-imports.d.ts │ ├── blueprints │ │ ├── index.ts │ │ ├── md1.ts │ │ ├── md2.ts │ │ └── md3.ts │ ├── components │ │ ├── VAlert │ │ │ ├── VAlert.sass │ │ │ ├── VAlert.tsx │ │ │ ├── VAlertTitle.ts │ │ │ ├── __tests__ │ │ │ │ └── VAlert.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VApp │ │ │ ├── VApp.sass │ │ │ ├── VApp.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VAppBar │ │ │ ├── VAppBar.sass │ │ │ ├── VAppBar.tsx │ │ │ ├── VAppBarNavIcon.tsx │ │ │ ├── VAppBarTitle.tsx │ │ │ ├── __tests__ │ │ │ │ └── VAppBar.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VAutocomplete │ │ │ ├── VAutocomplete.sass │ │ │ ├── VAutocomplete.tsx │ │ │ ├── __tests__ │ │ │ │ └── VAutocomplete.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VAvatar │ │ │ ├── VAvatar.sass │ │ │ ├── VAvatar.tsx │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBadge │ │ │ ├── VBadge.sass │ │ │ ├── VBadge.tsx │ │ │ ├── __tests__ │ │ │ │ └── VBadge.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBanner │ │ │ ├── VBanner.sass │ │ │ ├── VBanner.tsx │ │ │ ├── VBannerActions.tsx │ │ │ ├── VBannerText.ts │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBottomNavigation │ │ │ ├── VBottomNavigation.sass │ │ │ ├── VBottomNavigation.tsx │ │ │ ├── __tests__ │ │ │ │ └── VBottomNavigation.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBottomSheet │ │ │ ├── VBottomSheet.sass │ │ │ ├── VBottomSheet.tsx │ │ │ ├── __tests__ │ │ │ │ └── VBottomSheet.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBreadcrumbs │ │ │ ├── VBreadcrumbs.sass │ │ │ ├── VBreadcrumbs.tsx │ │ │ ├── VBreadcrumbsDivider.tsx │ │ │ ├── VBreadcrumbsItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VBreadcrumbs.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBtn │ │ │ ├── VBtn.sass │ │ │ ├── VBtn.tsx │ │ │ ├── __tests__ │ │ │ │ └── VBtn.spec.browser.tsx │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBtnGroup │ │ │ ├── VBtnGroup.sass │ │ │ ├── VBtnGroup.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VBtnToggle │ │ │ ├── VBtnToggle.sass │ │ │ ├── VBtnToggle.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VCard │ │ │ ├── VCard.sass │ │ │ ├── VCard.tsx │ │ │ ├── VCardActions.tsx │ │ │ ├── VCardItem.tsx │ │ │ ├── VCardSubtitle.tsx │ │ │ ├── VCardText.tsx │ │ │ ├── VCardTitle.ts │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VCarousel │ │ │ ├── VCarousel.sass │ │ │ ├── VCarousel.tsx │ │ │ ├── VCarouselItem.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VCheckbox │ │ │ ├── VCheckbox.sass │ │ │ ├── VCheckbox.tsx │ │ │ ├── VCheckboxBtn.tsx │ │ │ ├── __tests__ │ │ │ │ └── VCheckboxBtn.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VChip │ │ │ ├── VChip.sass │ │ │ ├── VChip.tsx │ │ │ ├── __tests__ │ │ │ │ └── VChip.spec.browser.tsx │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VChipGroup │ │ │ ├── VChipGroup.sass │ │ │ ├── VChipGroup.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VCode │ │ │ ├── VCode.sass │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VColorPicker │ │ │ ├── VColorPicker.sass │ │ │ ├── VColorPicker.tsx │ │ │ ├── VColorPickerCanvas.sass │ │ │ ├── VColorPickerCanvas.tsx │ │ │ ├── VColorPickerEdit.sass │ │ │ ├── VColorPickerEdit.tsx │ │ │ ├── VColorPickerPreview.sass │ │ │ ├── VColorPickerPreview.tsx │ │ │ ├── VColorPickerSwatches.sass │ │ │ ├── VColorPickerSwatches.tsx │ │ │ ├── __tests__ │ │ │ │ └── VColorPicker.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── util │ │ │ │ ├── __tests__ │ │ │ │ └── index.spec.ts │ │ │ │ └── index.ts │ │ ├── VCombobox │ │ │ ├── VCombobox.sass │ │ │ ├── VCombobox.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VCombobox-multiple.spec.ts │ │ │ │ ├── VCombobox.spec.browser.tsx │ │ │ │ └── VCombobox.spec.ts │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VConfirmEdit │ │ │ ├── VConfirmEdit.tsx │ │ │ ├── __test__ │ │ │ │ └── VConfirmEdit.spec.browser.tsx │ │ │ └── index.ts │ │ ├── VCounter │ │ │ ├── VCounter.sass │ │ │ ├── VCounter.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VDataIterator │ │ │ ├── VDataIterator.tsx │ │ │ ├── __tests__ │ │ │ │ └── VDataIterator.spec.browser.tsx │ │ │ ├── composables │ │ │ │ └── items.ts │ │ │ └── index.ts │ │ ├── VDataTable │ │ │ ├── VDataTable.sass │ │ │ ├── VDataTable.tsx │ │ │ ├── VDataTableColumn.tsx │ │ │ ├── VDataTableFooter.sass │ │ │ ├── VDataTableFooter.tsx │ │ │ ├── VDataTableGroupHeaderRow.tsx │ │ │ ├── VDataTableHeaders.tsx │ │ │ ├── VDataTableRow.tsx │ │ │ ├── VDataTableRows.tsx │ │ │ ├── VDataTableServer.tsx │ │ │ ├── VDataTableVirtual.tsx │ │ │ ├── __tests__ │ │ │ │ ├── MobileRow.spec.ts │ │ │ │ ├── Row.spec.ts │ │ │ │ ├── RowGroup.spec.ts │ │ │ │ ├── VDataTable.spec.cy.tsx │ │ │ │ ├── VDataTable.spec.ts │ │ │ │ ├── VDataTableHeader.spec.ts │ │ │ │ ├── VDataTableServer.spec.cy.tsx │ │ │ │ ├── VDataTableVirtual.spec.browser.tsx │ │ │ │ ├── VEditDialog.spec.ts │ │ │ │ ├── VSimpleTable.spec.ts │ │ │ │ ├── VVirtualTable.spec.ts │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── MobileRow.spec.ts.snap │ │ │ │ │ ├── Row.spec.ts.snap │ │ │ │ │ ├── RowGroup.spec.ts.snap │ │ │ │ │ ├── VDataTable.spec.ts.snap │ │ │ │ │ ├── VDataTableHeader.spec.ts.snap │ │ │ │ │ ├── VEditDialog.spec.ts.snap │ │ │ │ │ ├── VSimpleTable.spec.ts.snap │ │ │ │ │ └── VVirtualTable.spec.ts.snap │ │ │ │ ├── headers.spec.ts │ │ │ │ └── sort.spec.ts │ │ │ ├── _variables.scss │ │ │ ├── composables │ │ │ │ ├── expand.ts │ │ │ │ ├── group.ts │ │ │ │ ├── headers.ts │ │ │ │ ├── items.ts │ │ │ │ ├── options.ts │ │ │ │ ├── paginate.ts │ │ │ │ ├── select.ts │ │ │ │ └── sort.ts │ │ │ ├── index.ts │ │ │ └── types.ts │ │ ├── VDatePicker │ │ │ ├── VDatePicker.sass │ │ │ ├── VDatePicker.tsx │ │ │ ├── VDatePickerControls.sass │ │ │ ├── VDatePickerControls.tsx │ │ │ ├── VDatePickerHeader.sass │ │ │ ├── VDatePickerHeader.tsx │ │ │ ├── VDatePickerMonth.sass │ │ │ ├── VDatePickerMonth.tsx │ │ │ ├── VDatePickerMonths.sass │ │ │ ├── VDatePickerMonths.tsx │ │ │ ├── VDatePickerYears.sass │ │ │ ├── VDatePickerYears.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VDatePicker.date.spec.ts │ │ │ │ ├── VDatePicker.month.spec.ts │ │ │ │ ├── VDatePicker.spec.browser.tsx │ │ │ │ ├── VDatePickerDateTable.spec.ts │ │ │ │ ├── VDatePickerHeader.spec.ts │ │ │ │ ├── VDatePickerMonthTable.spec.ts │ │ │ │ ├── VDatePickerTitle.spec.ts │ │ │ │ ├── VDatePickerYears.spec.ts │ │ │ │ └── __snapshots__ │ │ │ │ │ ├── VDatePicker.date.spec.ts.snap │ │ │ │ │ ├── VDatePicker.month.spec.ts.snap │ │ │ │ │ ├── VDatePickerDateTable.spec.ts.snap │ │ │ │ │ ├── VDatePickerHeader.spec.ts.snap │ │ │ │ │ ├── VDatePickerMonthTable.spec.ts.snap │ │ │ │ │ └── VDatePickerYears.spec.ts.snap │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VDefaultsProvider │ │ │ ├── VDefaultsProvider.tsx │ │ │ ├── __tests__ │ │ │ │ └── VDefaultsProvider.spec.tsx │ │ │ └── index.ts │ │ ├── VDialog │ │ │ ├── VDialog.sass │ │ │ ├── VDialog.tsx │ │ │ ├── __test__ │ │ │ │ └── VDialog.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VDivider │ │ │ ├── VDivider.sass │ │ │ ├── VDivider.tsx │ │ │ ├── __tests__ │ │ │ │ └── VDivider.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VEmptyState │ │ │ ├── VEmptyState.sass │ │ │ ├── VEmptyState.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VExpansionPanel │ │ │ ├── VExpansionPanel.sass │ │ │ ├── VExpansionPanel.tsx │ │ │ ├── VExpansionPanelText.tsx │ │ │ ├── VExpansionPanelTitle.tsx │ │ │ ├── VExpansionPanels.tsx │ │ │ ├── __tests__ │ │ │ │ └── VExpansionPanels.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── shared.ts │ │ ├── VFab │ │ │ ├── VFab.sass │ │ │ ├── VFab.tsx │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VField │ │ │ ├── VField.sass │ │ │ ├── VField.tsx │ │ │ ├── VFieldLabel.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VFileInput │ │ │ ├── VFileInput.sass │ │ │ ├── VFileInput.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VFileInput.spec.browser.tsx │ │ │ │ ├── VFileInput.spec.tsx │ │ │ │ └── text.txt │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VFooter │ │ │ ├── VFooter.sass │ │ │ ├── VFooter.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VForm │ │ │ ├── VForm.tsx │ │ │ ├── __tests__ │ │ │ │ └── VForm.spec.cy.tsx │ │ │ └── index.ts │ │ ├── VGrid │ │ │ ├── VCol.ts │ │ │ ├── VContainer.tsx │ │ │ ├── VGrid.sass │ │ │ ├── VRow.ts │ │ │ ├── VSpacer.ts │ │ │ ├── __tests__ │ │ │ │ └── VCol.spec.ts │ │ │ ├── _mixins.sass │ │ │ └── index.ts │ │ ├── VHover │ │ │ ├── VHover.tsx │ │ │ ├── __tests__ │ │ │ │ └── VHover.spec.cy.tsx │ │ │ └── index.ts │ │ ├── VIcon │ │ │ ├── VIcon.sass │ │ │ ├── VIcon.tsx │ │ │ ├── __tests__ │ │ │ │ └── VIcon.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VImg │ │ │ ├── VImg.sass │ │ │ ├── VImg.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VInfiniteScroll │ │ │ ├── VInfiniteScroll.sass │ │ │ ├── VInfiniteScroll.tsx │ │ │ ├── __tests__ │ │ │ │ └── VInfiniteScroll.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VInput │ │ │ ├── InputIcon.tsx │ │ │ ├── VInput.sass │ │ │ ├── VInput.tsx │ │ │ ├── __tests__ │ │ │ │ └── VInput.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VItemGroup │ │ │ ├── VItem.tsx │ │ │ ├── VItemGroup.sass │ │ │ ├── VItemGroup.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VItemGroup.spec.cy.tsx │ │ │ │ ├── VItemGroup.spec.ts │ │ │ │ └── __snapshots__ │ │ │ │ │ └── VItemGroup.spec.ts.snap │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VKbd │ │ │ ├── VKbd.sass │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VLabel │ │ │ ├── VLabel.sass │ │ │ ├── VLabel.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VLayout │ │ │ ├── VLayout.sass │ │ │ ├── VLayout.tsx │ │ │ ├── VLayoutItem.sass │ │ │ ├── VLayoutItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VLayout.spec.cy.tsx │ │ │ └── index.ts │ │ ├── VLazy │ │ │ ├── VLazy.tsx │ │ │ └── index.ts │ │ ├── VList │ │ │ ├── VList.sass │ │ │ ├── VList.tsx │ │ │ ├── VListChildren.tsx │ │ │ ├── VListGroup.tsx │ │ │ ├── VListImg.ts │ │ │ ├── VListItem.sass │ │ │ ├── VListItem.tsx │ │ │ ├── VListItemAction.tsx │ │ │ ├── VListItemMedia.tsx │ │ │ ├── VListItemSubtitle.tsx │ │ │ ├── VListItemTitle.ts │ │ │ ├── VListSubheader.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VList.spec.cy.tsx │ │ │ │ ├── VList.spec.ts │ │ │ │ ├── VListGroup.spec.cy.tsx │ │ │ │ ├── VListItem.spec.cy.tsx │ │ │ │ ├── VListItemMedia.spec.ts │ │ │ │ └── __snapshots__ │ │ │ │ │ ├── VList.spec.ts.snap │ │ │ │ │ └── VListItemMedia.spec.ts.snap │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── list.ts │ │ ├── VLocaleProvider │ │ │ ├── VLocaleProvider.sass │ │ │ ├── VLocaleProvider.tsx │ │ │ └── index.ts │ │ ├── VMain │ │ │ ├── VMain.sass │ │ │ ├── VMain.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VMenu │ │ │ ├── VMenu.sass │ │ │ ├── VMenu.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VMenu.spec.ts │ │ │ │ └── __snapshots__ │ │ │ │ │ └── VMenu.spec.ts.snap │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── shared.ts │ │ ├── VMessages │ │ │ ├── VMessages.sass │ │ │ ├── VMessages.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VNavigationDrawer │ │ │ ├── VNavigationDrawer.sass │ │ │ ├── VNavigationDrawer.tsx │ │ │ ├── __tests__ │ │ │ │ └── VNavigationDrawer.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ ├── sticky.ts │ │ │ └── touch.ts │ │ ├── VNoSsr │ │ │ ├── VNoSsr.tsx │ │ │ └── index.ts │ │ ├── VNumberInput │ │ │ ├── VNumberInput.sass │ │ │ ├── VNumberInput.tsx │ │ │ ├── __tests__ │ │ │ │ └── VNumberInput.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ ├── hold.ts │ │ │ └── index.ts │ │ ├── VOtpInput │ │ │ ├── VOtpInput.sass │ │ │ ├── VOtpInput.tsx │ │ │ ├── __tests__ │ │ │ │ └── VOtpInput.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VOverflowBtn │ │ │ ├── VOverflowBtn.sass │ │ │ ├── VOverflowBtn.ts │ │ │ ├── __tests__ │ │ │ │ ├── VOverflowBtn.spec.ts │ │ │ │ └── __snapshots__ │ │ │ │ │ └── VOverflowBtn.spec.ts.snap │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VOverlay │ │ │ ├── VOverlay.sass │ │ │ ├── VOverlay.tsx │ │ │ ├── __tests__ │ │ │ │ └── VOverlay.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ ├── locationStrategies.ts │ │ │ ├── requestNewFrame.ts │ │ │ ├── scrollStrategies.ts │ │ │ ├── useActivator.tsx │ │ │ └── util │ │ │ │ └── point.ts │ │ ├── VPagination │ │ │ ├── VPagination.sass │ │ │ ├── VPagination.tsx │ │ │ ├── __tests__ │ │ │ │ └── VPagination.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VParallax │ │ │ ├── VParallax.sass │ │ │ ├── VParallax.tsx │ │ │ └── index.ts │ │ ├── VProgressCircular │ │ │ ├── VProgressCircular.sass │ │ │ ├── VProgressCircular.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VProgressLinear │ │ │ ├── VProgressLinear.sass │ │ │ ├── VProgressLinear.tsx │ │ │ ├── __tests__ │ │ │ │ └── VProgressLinear.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VRadio │ │ │ ├── VRadio.tsx │ │ │ └── index.ts │ │ ├── VRadioGroup │ │ │ ├── VRadioGroup.sass │ │ │ ├── VRadioGroup.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VRangeSlider │ │ │ ├── VRangeSlider.tsx │ │ │ └── index.ts │ │ ├── VRating │ │ │ ├── VRating.sass │ │ │ ├── VRating.tsx │ │ │ ├── __tests__ │ │ │ │ └── VRating.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VResponsive │ │ │ ├── VResponsive.sass │ │ │ ├── VResponsive.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VResponsive.spec.ts │ │ │ │ └── __snapshots__ │ │ │ │ │ └── VResponsive.spec.ts.snap │ │ │ └── index.ts │ │ ├── VSelect │ │ │ ├── VSelect.sass │ │ │ ├── VSelect.tsx │ │ │ ├── __tests__ │ │ │ │ └── VSelect.spec.browser.tsx │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── useScrolling.ts │ │ ├── VSelectionControl │ │ │ ├── VSelectionControl.sass │ │ │ ├── VSelectionControl.tsx │ │ │ ├── __tests__ │ │ │ │ └── VSelectionControl.spec.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VSelectionControlGroup │ │ │ ├── VSelectionControlGroup.sass │ │ │ ├── VSelectionControlGroup.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VSheet │ │ │ ├── VSheet.sass │ │ │ ├── VSheet.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VSkeletonLoader │ │ │ ├── VSkeletonLoader.sass │ │ │ ├── VSkeletonLoader.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VSlideGroup │ │ │ ├── VSlideGroup.sass │ │ │ ├── VSlideGroup.tsx │ │ │ ├── VSlideGroupItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VSlideGroup.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ ├── helpers.ts │ │ │ └── index.ts │ │ ├── VSlider │ │ │ ├── VSlider.sass │ │ │ ├── VSlider.tsx │ │ │ ├── VSliderThumb.sass │ │ │ ├── VSliderThumb.tsx │ │ │ ├── VSliderTrack.sass │ │ │ ├── VSliderTrack.tsx │ │ │ ├── __tests__ │ │ │ │ └── VSlider.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── slider.ts │ │ ├── VSnackbar │ │ │ ├── VSnackbar.sass │ │ │ ├── VSnackbar.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VSnackbarQueue │ │ │ ├── VSnackbarQueue.tsx │ │ │ └── index.ts │ │ ├── VSparkline │ │ │ ├── VBarline.tsx │ │ │ ├── VSparkline.tsx │ │ │ ├── VTrendline.tsx │ │ │ ├── index.ts │ │ │ └── util │ │ │ │ ├── line.ts │ │ │ │ └── path.ts │ │ ├── VSpeedDial │ │ │ ├── VSpeedDial.sass │ │ │ ├── VSpeedDial.tsx │ │ │ └── index.ts │ │ ├── VStepper │ │ │ ├── VStepper.sass │ │ │ ├── VStepper.tsx │ │ │ ├── VStepperActions.tsx │ │ │ ├── VStepperHeader.ts │ │ │ ├── VStepperItem.sass │ │ │ ├── VStepperItem.tsx │ │ │ ├── VStepperWindow.tsx │ │ │ ├── VStepperWindowItem.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── shared.ts │ │ ├── VSwitch │ │ │ ├── VSwitch.sass │ │ │ ├── VSwitch.tsx │ │ │ ├── __tests__ │ │ │ │ └── VSwitch.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VSystemBar │ │ │ ├── VSystemBar.sass │ │ │ ├── VSystemBar.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VTable │ │ │ ├── VTable.sass │ │ │ ├── VTable.tsx │ │ │ ├── _mixins.scss │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VTabs │ │ │ ├── VTab.sass │ │ │ ├── VTab.tsx │ │ │ ├── VTabs.sass │ │ │ ├── VTabs.tsx │ │ │ ├── VTabsWindow.tsx │ │ │ ├── VTabsWindowItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VTabs.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── shared.ts │ │ ├── VTextField │ │ │ ├── VTextField.sass │ │ │ ├── VTextField.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VTextField.spec.browser.tsx │ │ │ │ └── VTextField.spec.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VTextarea │ │ │ ├── VTextarea.sass │ │ │ ├── VTextarea.tsx │ │ │ ├── __tests__ │ │ │ │ ├── VTextarea.spec.browser.tsx │ │ │ │ └── VTextarea.spec.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VThemeProvider │ │ │ ├── VThemeProvider.sass │ │ │ ├── VThemeProvider.tsx │ │ │ ├── __tests__ │ │ │ │ └── VThemeProvider.spec.cy.tsx │ │ │ └── index.ts │ │ ├── VTimeline │ │ │ ├── VTimeline.sass │ │ │ ├── VTimeline.tsx │ │ │ ├── VTimelineDivider.tsx │ │ │ ├── VTimelineItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VTimeline.spec.cy.tsx │ │ │ ├── _mixins.sass │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VToolbar │ │ │ ├── VToolbar.sass │ │ │ ├── VToolbar.tsx │ │ │ ├── VToolbarItems.tsx │ │ │ ├── VToolbarTitle.tsx │ │ │ ├── __tests__ │ │ │ │ └── VToolbar.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VTooltip │ │ │ ├── VTooltip.sass │ │ │ ├── VTooltip.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VValidation │ │ │ ├── VValidation.tsx │ │ │ └── index.ts │ │ ├── VVirtualScroll │ │ │ ├── VVirtualScroll.sass │ │ │ ├── VVirtualScroll.tsx │ │ │ ├── VVirtualScrollItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VVirtualScroll.spec.browser.tsx │ │ │ └── index.ts │ │ ├── VWindow │ │ │ ├── VWindow.sass │ │ │ ├── VWindow.tsx │ │ │ ├── VWindowItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VWindow.spec.cy.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── index.ts │ │ └── transitions │ │ │ ├── createTransition.ts │ │ │ ├── dialog-transition.tsx │ │ │ ├── expand-transition.ts │ │ │ └── index.ts │ ├── composables │ │ ├── __tests__ │ │ │ ├── __snapshots__ │ │ │ │ ├── group.spec.ts.snap │ │ │ │ └── theme.spec.ts.snap │ │ │ ├── border.spec.ts │ │ │ ├── calendar.spec.ts │ │ │ ├── color.spec.ts │ │ │ ├── defaults.spec.ts │ │ │ ├── delay.spec.ts │ │ │ ├── dimensions.spec.ts │ │ │ ├── display-components.spec.browser.tsx │ │ │ ├── display.spec.browser.ts │ │ │ ├── elevation.spec.ts │ │ │ ├── filter.spec.ts │ │ │ ├── forwardRefs.spec.tsx │ │ │ ├── goto.spec.browser.tsx │ │ │ ├── group.spec.ts │ │ │ ├── icons.spec.ts │ │ │ ├── items.spec.ts │ │ │ ├── loader.spec.ts │ │ │ ├── location.spec.ts │ │ │ ├── mutationObserver.spec.ts │ │ │ ├── position.spec.ts │ │ │ ├── proxiedModel.spec.ts │ │ │ ├── resizeObserver.spec.browser.tsx │ │ │ ├── rounded.spec.ts │ │ │ ├── scroll.spec.browser.tsx │ │ │ ├── size.spec.ts │ │ │ ├── tag.spec.ts │ │ │ ├── theme.spec.ts │ │ │ ├── validation.spec.ts │ │ │ └── variant.spec.ts │ │ ├── border.ts │ │ ├── calendar.ts │ │ ├── color.ts │ │ ├── component.ts │ │ ├── date │ │ │ ├── DateAdapter.ts │ │ │ ├── __tests__ │ │ │ │ └── date.spec.ts │ │ │ ├── adapters │ │ │ │ ├── __tests__ │ │ │ │ │ └── vuetify.spec.ts │ │ │ │ └── vuetify.ts │ │ │ ├── date.ts │ │ │ └── index.ts │ │ ├── dateFormat.ts │ │ ├── defaults.ts │ │ ├── delay.ts │ │ ├── density.ts │ │ ├── dimensions.ts │ │ ├── directiveComponent.ts │ │ ├── display.ts │ │ ├── elevation.ts │ │ ├── fileDrop.ts │ │ ├── filter.tsx │ │ ├── focus.ts │ │ ├── form.ts │ │ ├── forwardRefs.ts │ │ ├── goto.ts │ │ ├── group.ts │ │ ├── hydration.ts │ │ ├── icons.tsx │ │ ├── index.ts │ │ ├── intersectionObserver.ts │ │ ├── layout.ts │ │ ├── lazy.ts │ │ ├── list-items.ts │ │ ├── loader.tsx │ │ ├── locale.ts │ │ ├── location.ts │ │ ├── mutationObserver.ts │ │ ├── nested │ │ │ ├── __tests__ │ │ │ │ └── selectStrategies.spec.ts │ │ │ ├── activeStrategies.ts │ │ │ ├── nested.ts │ │ │ ├── openStrategies.ts │ │ │ └── selectStrategies.ts │ │ ├── position.ts │ │ ├── proxiedModel.ts │ │ ├── refs.ts │ │ ├── resizeObserver.ts │ │ ├── rounded.ts │ │ ├── router.tsx │ │ ├── scopeId.ts │ │ ├── scroll.ts │ │ ├── selectLink.ts │ │ ├── size.ts │ │ ├── ssrBoot.ts │ │ ├── stack.ts │ │ ├── tag.ts │ │ ├── teleport.ts │ │ ├── theme.ts │ │ ├── toggleScope.ts │ │ ├── touch.ts │ │ ├── transition.ts │ │ ├── validation.ts │ │ ├── variant.tsx │ │ └── virtual.ts │ ├── directives │ │ ├── click-outside │ │ │ ├── __tests__ │ │ │ │ ├── click-outside-shadow-dom.spec.ts │ │ │ │ └── click-outside.spec.ts │ │ │ └── index.ts │ │ ├── color │ │ │ ├── __tests__ │ │ │ │ └── color.spec.ts │ │ │ └── index.ts │ │ ├── index.ts │ │ ├── intersect │ │ │ ├── __tests__ │ │ │ │ └── intersect.spec.browser.tsx │ │ │ └── index.ts │ │ ├── mutate │ │ │ ├── __tests__ │ │ │ │ └── mutate.spec.ts │ │ │ └── index.ts │ │ ├── resize │ │ │ ├── __tests__ │ │ │ │ └── resize.spec.ts │ │ │ └── index.ts │ │ ├── ripple │ │ │ ├── VRipple.sass │ │ │ ├── __tests__ │ │ │ │ └── ripple.spec.ts │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── scroll │ │ │ ├── __tests__ │ │ │ │ └── scroll.spec.browser.tsx │ │ │ └── index.ts │ │ ├── tooltip │ │ │ └── index.ts │ │ └── touch │ │ │ ├── __tests__ │ │ │ └── touch.spec.browser.tsx │ │ │ └── index.ts │ ├── entry-bundler.ts │ ├── framework.ts │ ├── globals.d.ts │ ├── iconsets │ │ ├── fa-svg.ts │ │ ├── fa.ts │ │ ├── fa4.ts │ │ ├── md.ts │ │ ├── mdi-svg.ts │ │ └── mdi.ts │ ├── labs │ │ ├── VCalendar │ │ │ ├── VCalendar.sass │ │ │ ├── VCalendar.tsx │ │ │ ├── VCalendarDay.sass │ │ │ ├── VCalendarDay.tsx │ │ │ ├── VCalendarEvent.tsx │ │ │ ├── VCalendarHeader.sass │ │ │ ├── VCalendarHeader.tsx │ │ │ ├── VCalendarInterval.sass │ │ │ ├── VCalendarInterval.tsx │ │ │ ├── VCalendarIntervalEvent.sass │ │ │ ├── VCalendarIntervalEvent.tsx │ │ │ ├── VCalendarMonthDay.sass │ │ │ ├── VCalendarMonthDay.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VColorInput │ │ │ ├── VColorInput.sass │ │ │ ├── VColorInput.tsx │ │ │ ├── __tests__ │ │ │ │ └── VColorInput.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VDateInput │ │ │ ├── VDateInput.tsx │ │ │ ├── __tests__ │ │ │ │ └── VDateInput.spec.browser.tsx │ │ │ └── index.ts │ │ ├── VFileUpload │ │ │ ├── VFileUpload.sass │ │ │ ├── VFileUpload.tsx │ │ │ ├── VFileUploadItem.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VIconBtn │ │ │ ├── VIconBtn.scss │ │ │ ├── VIconBtn.tsx │ │ │ ├── __tests__ │ │ │ │ └── VIconBtn.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VPicker │ │ │ ├── VPicker.sass │ │ │ ├── VPicker.tsx │ │ │ ├── VPickerTitle.ts │ │ │ ├── __tests__ │ │ │ │ ├── VPicker.spec.ts │ │ │ │ └── __snapshots__ │ │ │ │ │ └── VPicker.spec.ts.snap │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VPullToRefresh │ │ │ ├── VPullToRefresh.sass │ │ │ ├── VPullToRefresh.tsx │ │ │ └── index.ts │ │ ├── VStepperVertical │ │ │ ├── VStepperVertical.tsx │ │ │ ├── VStepperVerticalActions.tsx │ │ │ ├── VStepperVerticalItem.sass │ │ │ ├── VStepperVerticalItem.tsx │ │ │ ├── _variables.scss │ │ │ └── index.ts │ │ ├── VTimePicker │ │ │ ├── VTimePicker.sass │ │ │ ├── VTimePicker.tsx │ │ │ ├── VTimePickerClock.sass │ │ │ ├── VTimePickerClock.tsx │ │ │ ├── VTimePickerControls.sass │ │ │ ├── VTimePickerControls.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ ├── shared.ts │ │ │ └── util.ts │ │ ├── VTreeview │ │ │ ├── VTreeview.tsx │ │ │ ├── VTreeviewChildren.tsx │ │ │ ├── VTreeviewGroup.tsx │ │ │ ├── VTreeviewItem.sass │ │ │ ├── VTreeviewItem.tsx │ │ │ ├── __tests__ │ │ │ │ └── VTreeview.spec.browser.tsx │ │ │ ├── _variables.scss │ │ │ ├── index.ts │ │ │ └── shared.ts │ │ ├── allComponents.ts │ │ ├── components.ts │ │ ├── composables.ts │ │ ├── entry-bundler.ts │ │ ├── index.ts │ │ └── rules │ │ │ ├── index.ts │ │ │ ├── plugin.ts │ │ │ └── rules.ts │ ├── locale │ │ ├── __tests__ │ │ │ └── index.spec.ts │ │ ├── adapters │ │ │ ├── vue-i18n.ts │ │ │ └── vuetify.ts │ │ ├── af.ts │ │ ├── ar.ts │ │ ├── az.ts │ │ ├── bg.ts │ │ ├── ca.ts │ │ ├── ckb.ts │ │ ├── cs.ts │ │ ├── da.ts │ │ ├── de.ts │ │ ├── el.ts │ │ ├── en.ts │ │ ├── es.ts │ │ ├── et.ts │ │ ├── fa.ts │ │ ├── fi.ts │ │ ├── fr.ts │ │ ├── he.ts │ │ ├── hr.ts │ │ ├── hu.ts │ │ ├── id.ts │ │ ├── index.ts │ │ ├── it.ts │ │ ├── ja.ts │ │ ├── km.ts │ │ ├── ko.ts │ │ ├── lt.ts │ │ ├── lv.ts │ │ ├── nl.ts │ │ ├── no.ts │ │ ├── pl.ts │ │ ├── pt.ts │ │ ├── ro.ts │ │ ├── ru.ts │ │ ├── sk.ts │ │ ├── sl.ts │ │ ├── sr-Cyrl.ts │ │ ├── sr-Latn.ts │ │ ├── sv.ts │ │ ├── th.ts │ │ ├── tr.ts │ │ ├── uk.ts │ │ ├── vi.ts │ │ ├── zh-Hans.ts │ │ └── zh-Hant.ts │ ├── shims.d.ts │ ├── styles │ │ ├── elements │ │ │ ├── _blockquote.sass │ │ │ ├── _global.sass │ │ │ └── _index.sass │ │ ├── generic │ │ │ ├── _animations.scss │ │ │ ├── _colors.scss │ │ │ ├── _index.scss │ │ │ ├── _layers.scss │ │ │ ├── _reset.scss │ │ │ ├── _rtl.scss │ │ │ └── _transitions.scss │ │ ├── main.sass │ │ ├── settings │ │ │ ├── _colors.scss │ │ │ ├── _elevations.scss │ │ │ ├── _index.sass │ │ │ ├── _utilities.scss │ │ │ └── _variables.scss │ │ ├── tools │ │ │ ├── _absolute.sass │ │ │ ├── _bootable.sass │ │ │ ├── _border.sass │ │ │ ├── _density.sass │ │ │ ├── _display.sass │ │ │ ├── _elevation.sass │ │ │ ├── _functions.sass │ │ │ ├── _index.sass │ │ │ ├── _layer.scss │ │ │ ├── _position.sass │ │ │ ├── _radius.sass │ │ │ ├── _rounded.sass │ │ │ ├── _rtl.sass │ │ │ ├── _states.sass │ │ │ ├── _theme.sass │ │ │ ├── _typography.sass │ │ │ ├── _utilities.sass │ │ │ └── _variant.sass │ │ └── utilities │ │ │ ├── _display.sass │ │ │ ├── _elevation.scss │ │ │ ├── _index.sass │ │ │ └── _screenreaders.sass │ ├── types.ts │ └── util │ │ ├── __tests__ │ │ ├── colorUtils.spec.ts │ │ ├── dom.spec.ts │ │ ├── getCurrentInstance.spec.tsx │ │ ├── helpers.spec.ts │ │ └── propsFactory.spec.ts │ │ ├── anchor.ts │ │ ├── animation.ts │ │ ├── bindProps.ts │ │ ├── box.ts │ │ ├── color │ │ ├── APCA.ts │ │ ├── transformCIELAB.ts │ │ └── transformSRGB.ts │ │ ├── colorUtils.ts │ │ ├── colors.ts │ │ ├── console.ts │ │ ├── createSimpleFunctional.ts │ │ ├── defineComponent.tsx │ │ ├── dom.ts │ │ ├── easing.ts │ │ ├── events.ts │ │ ├── getCurrentInstance.ts │ │ ├── getScrollParent.ts │ │ ├── globals.ts │ │ ├── helpers.ts │ │ ├── index.ts │ │ ├── injectSelf.ts │ │ ├── isFixedPosition.ts │ │ ├── propsFactory.ts │ │ └── useRender.ts │ ├── test │ ├── contextStub.ts │ ├── globals.d.ts │ ├── index.ts │ ├── setup │ │ ├── browser-commands.ts │ │ ├── browser-setup.ts │ │ ├── percy.d.ts │ │ ├── to-have-been-warned.ts │ │ └── unit-setup.ts │ └── templates │ │ ├── Application.tsx │ │ ├── CenteredGrid.tsx │ │ ├── generateStories.tsx │ │ ├── gridOn.tsx │ │ └── index.ts │ ├── tsconfig.checks.json │ ├── tsconfig.dev.json │ ├── tsconfig.dist.json │ ├── tsconfig.json │ ├── vite.config.ts │ ├── vitest.config.ts │ └── vitest.workspace.ts ├── patches ├── @mdi__js@7.4.47.patch └── @testing-library__vue.patch ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── renovate.json ├── scripts ├── build.js ├── confirm-npm-tag.js ├── converter.js ├── deploy.sh ├── dev.js ├── lint-commit-message.js ├── options-to-composition.mjs ├── parse-npm-tag.js ├── post-install.js ├── post-release-merge.js ├── prepare-commit-message.js ├── rules │ ├── jsx-condition-key.js │ ├── jsx-curly-spacing.js │ ├── no-components-index.js │ ├── no-nullish-coalescing-in-condition.js │ ├── no-render-string-reference.js │ ├── sort-imports.js │ └── vitest-global-imports.js └── warn-npm-install.js ├── templates ├── component.tsx ├── cypress-test.tsx ├── jest-test.ts └── page.md ├── tsconfig.eslint.json └── tsconfig.json /.dockerignore: -------------------------------------------------------------------------------- 1 | .git 2 | .vscode 3 | .devbots 4 | .github 5 | node_modules 6 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: [johnleider, KaelWD, MajesticPotatoe, yuwu9145] 4 | open_collective: vuetify 5 | ko_fi: # Replace with a single Ko-fi username 6 | tidelift: npm/vuetify 7 | custom: # Replace with a single custom sponsorship URL 8 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: Vuetify Issue Creator 4 | url: https://issues.vuetifyjs.com 5 | about: Create Vuetify issues here. 6 | -------------------------------------------------------------------------------- /.github/lock.yml: -------------------------------------------------------------------------------- 1 | daysUntilLock: 365 2 | lockComment: false 3 | 4 | pulls: 5 | daysUntilLock: 30 6 | exemptLabels: ['S: on hold', 'S: work in progress'] 7 | -------------------------------------------------------------------------------- /.github/semantic.yml: -------------------------------------------------------------------------------- 1 | titleOnly: true 2 | -------------------------------------------------------------------------------- /.github/sponsors.yml: -------------------------------------------------------------------------------- 1 | - label: 'P: sponsor' 2 | members: 3 | 4 | - label: 'P: elite sponsor' 5 | members: 6 | -------------------------------------------------------------------------------- /.github/workflows/close-issue.yml: -------------------------------------------------------------------------------- 1 | name: Close issues 2 | on: 3 | push: 4 | branches: 5 | - dev 6 | - next 7 | - v2-stable 8 | - v2-dev 9 | 10 | env: 11 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 12 | 13 | jobs: 14 | close: 15 | runs-on: ubuntu-24.04 16 | if: github.repository_owner == 'vuetifyjs' 17 | steps: 18 | - uses: vuetifyjs/close-action@master 19 | with: 20 | token: ${{ secrets.GITHUB_TOKEN }} 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | .env 4 | .knit 5 | knit.lock 6 | 7 | # IDE user config 8 | .vscode/ 9 | .idea/ 10 | .vs/ 11 | 12 | # Logs 13 | yarn-error.log 14 | npm-debug.log 15 | lerna-debug.log 16 | 17 | # Istanbul coverage 18 | coverage/ 19 | 20 | # cypress 21 | cypress/screenshots 22 | cypress/videos 23 | 24 | # vitest 25 | __screenshots__/ 26 | 27 | .vercel 28 | .now 29 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | node scripts/lint-commit-message.js $1 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | node scripts/warn-npm-install.js 2 | -------------------------------------------------------------------------------- /.husky/prepare-commit-msg: -------------------------------------------------------------------------------- 1 | node scripts/prepare-commit-message.js $1 $2 2 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | auto-install-peers=false 2 | ignore-workspace-root-check=true 3 | link-workspace-packages=deep 4 | shell-emulator=true 5 | -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 22.14.0 2 | -------------------------------------------------------------------------------- /Dockerfile: -------------------------------------------------------------------------------- 1 | FROM caddy:2.10.0-alpine 2 | COPY ./packages/docs/dist /srv 3 | COPY ./packages/docs/build/Caddyfile /etc/caddy/Caddyfile 4 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | services: 2 | docs: 3 | image: caddy:alpine 4 | ports: 5 | - ${PORT:-8095}:80 6 | volumes: 7 | - ./packages/docs/dist:/srv 8 | - ./packages/docs/build/Caddyfile:/etc/caddy/Caddyfile 9 | -------------------------------------------------------------------------------- /eslint-local-rules.cjs: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | 3 | const path = require('node:path') 4 | const glob = require('glob') 5 | 6 | module.exports = Object.fromEntries( 7 | glob.sync('./scripts/rules/*', { cwd: __dirname, dotRelative: true }).map(name => { 8 | const modulePath = path.resolve(__dirname, name) 9 | const module = require(modulePath) 10 | return [path.parse(name).name, module.default || module] 11 | }) 12 | ) 13 | -------------------------------------------------------------------------------- /lerna.json: -------------------------------------------------------------------------------- 1 | { 2 | "command": { 3 | "publish": { 4 | "allowBranch": [ 5 | "master", 6 | "dev", 7 | "next" 8 | ], 9 | "message": "chore(release): publish %s" 10 | }, 11 | "version": { 12 | "push": true 13 | } 14 | }, 15 | "npmClient": "pnpm", 16 | "version": "3.8.8" 17 | } -------------------------------------------------------------------------------- /packages/README.md: -------------------------------------------------------------------------------- 1 |

These are the packages for the Vuetify monorepo.

2 | 3 | ## Packages for the Vuetify 4 | 5 | 1. **api-generator** - generates api for Vuetify docs and other resources. 6 | 2. **docs** - Vuetify documentation 7 | 3. **vuetify** - main source code for Vuetify 8 | -------------------------------------------------------------------------------- /packages/api-generator/.gitignore: -------------------------------------------------------------------------------- 1 | /dist/ 2 | /lib/ 3 | /src/locale/* 4 | /templates/tmp/ 5 | !/src/locale/en 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/$vuetify.json: -------------------------------------------------------------------------------- 1 | { 2 | "functions": { 3 | "goTo": "Scroll to target location, using provided options." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataIterator-items.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "itemSelectable": "Property on supplied `items` that contains the boolean value indicating if the item is selectable.", 4 | "itemValue": "Property on supplied `items` that contains its value.", 5 | "returnObject": "Changes the selection behavior to return the object directly rather than the value specified with **item-value**." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable-expand.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "expanded": "Whether the item is expanded or not.", 4 | "expandOnClick": "Expands item when the row is clicked.", 5 | "showExpand": "Shows the expand icon." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable-group.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "groupBy": "Defines the grouping of the table items." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable-header.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "headers": "An array of objects that each describe a header column." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable-items.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "itemSelectable": "Property on supplied `items` that indicates whether the item is selectable.", 4 | "itemValue": "Property on supplied `items` that contains its value.", 5 | "returnObject": "Changes the selection behavior to return the object directly rather than the value specified with **item-value**." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable-paginate.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "itemsPerPage": "The number of items to display on each page.", 4 | "page": "The current displayed page number (1-indexed)." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable-select.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "selectStrategy": "Defines the strategy of selecting items in the list. Possible values are: 'single' (only one item can be selected at a time), 'page' ('Select all' button will select only items on the current page), 'all' ('Select all' button will select all items in the list).", 4 | "showSelect": "Shows the column with checkboxes for selecting items in the list." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable-sort.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "customKeySort": "Function used on specific keys within the item object. `customSort` is skipped for columns with `customKeySort` specified.", 4 | "mustSort": "Forces sorting on the column(s).", 5 | "sortBy": "Array of column keys and sort orders that determines the sort order of the table." 6 | 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/DataTable.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "hideDefaultBody": "Hides the default body.", 4 | "hideDefaultHeader": "Hides the default header.", 5 | "hideDefaultFooter": "Hides the default footer.", 6 | "search": "Text input used to filter items." 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VApp.json: -------------------------------------------------------------------------------- 1 | { 2 | "exposed": { 3 | "theme": "The instance of the injected active theme." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VBottomNavigation.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "grow": "Force all [v-btn](/components/buttons) children to take up all available horizontal space.", 4 | "mode": "Changes the orientation and active state styling of the component." 5 | }, 6 | "events": { 7 | "update:active": "Event that is emitted when the active state changes." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VBottomSheet.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "inset": "Reduces the sheet content maximum width to 70%." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VBreadcrumbsDivider.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "divider": "Specifies the dividing character between items." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VBtnGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "divided": "Add dividers between children [v-btn](/components/buttons) components." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VCalendarDay.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "hideDayHeader": "Determines whether the day header is visible in the calendar day view.", 4 | "intervals": "Specifies the total number of time intervals for the day in the calendar view." 5 | }, 6 | "exposed": { 7 | "intervals": "Computed reference containing details about each interval in the day view." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VCalendarMonthDay.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "day": "Represents the specific day in the month view of the calendar.", 4 | "events": "Array of events associated with this specific day." 5 | }, 6 | "slots": { 7 | "content": "Slot for custom content related to the day in the month view.", 8 | "event": "Slot for custom content to display in an event of a day." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VCheckboxBtn.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "indeterminate": "Puts the control in an indeterminate state. Used with the [indeterminate-icon](#props-indeterminate-icon) property.", 4 | "indeterminateIcon": "Icon used when the component is in an indeterminate state." 5 | }, 6 | "events": { 7 | "update:indeterminate": "Event that is emitted when the component's indeterminate state changes." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VContainer.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "fluid": "Removes viewport maximum-width size breakpoints." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VCounter.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "active": "Determines whether the counter is visible or not.", 4 | "max": "Sets the maximum allowed value.", 5 | "value": "Sets the current counter value." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VDatePickerHeader.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "header": "Sets the header content.", 4 | "transition": "Sets the transition when the header changes." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VDatePickerMonths.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "min": "Sets the minimum selectable date. Months before this date will be disabled.", 4 | "max": "Sets the maximum selectable date. Months after this date will be disabled.", 5 | "year": "Sets the year for the given months.", 6 | "allowedMonths": "Restricts which months can be selected." 7 | }, 8 | "slots": { 9 | "month": "Slot for the month." 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VDatePickerYears.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "max": "Sets the maximum date of the month.", 4 | "min": "Sets the minimum date of the month.", 5 | "year": "Sets the year.", 6 | "allowedYears": "Restricts which years can be selected." 7 | }, 8 | "slots": { 9 | "year": "Slot for the year." 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VDialogTransition.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "target": "Sets the target element for the transition." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VDivider.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "inset": "Adds indentation (72px) for **normal** dividers, reduces max height for **vertical**.", 4 | "length": "Sets the dividers length. Default unit is px.", 5 | "thickness": "Sets the dividers thickness. Default unit is px.", 6 | "vertical": "Displays dividers vertically." 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VFieldLabel.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "floating": "Elevates the label above the slotted content." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VFileUploadItem.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "file": "The file object uploaded", 4 | "fileIcon": "The icon prepending each uploaded file. This will be a preview image if the file is an image.", 5 | "showSize": "Show the size of the file" 6 | }, 7 | "events": { 8 | "click:remove": "Emitted when the remove icon is clicked" 9 | }, 10 | "slots": { 11 | "clear": "Slot for the icon button to clear/remove a file" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VFooter.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "app": "Determines the position of the footer. If true, the footer would be given a fixed position at the bottom of the viewport. If false, the footer is set to the bottom of the page." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VHover.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "disabled": "Removes hover functionality." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VItemGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "selectedClass": "Configure the selected CSS class. This class will be available in `v-item` default scoped slot." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VLabel.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "clickable": "Changes the cursor to a pointer when the mouse is over the element." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VLayout.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VLayoutItem.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "position": "The position of the item." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VLazy.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "options": "Options that are passed to the [Intersection observer](https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API) constructor." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VListItemAvatar.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "horizontal": "Uses an alternative horizontal style." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VListItemGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "value": "Sets the active list-item inside the list-group." 4 | }, 5 | "events": { 6 | "change": "Emitted when the component value is changed by user interaction.", 7 | "click": "Emitted when component is clicked - Will trigger component to ripple when clicked unless the `.native` modifier is used." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VListSubheader.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "tag": "Specify a custom tag used on the root element.", 4 | "title": "Specify a title text for the component.", 5 | "inset": "Insets the subheader without additional spacing, aligning it flush with the surrounding content.", 6 | "sticky": "Sticks the header to the top of the table." 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VLocaleProvider.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "fallbackLocale": "Specify a fallback locale to use when a locale is not found.", 4 | "locale": "Specify a locale to use.", 5 | "rtl": "Specify a RTL mode." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VMain.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "scrollable": "Specify a custom scrollable function." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VMessages.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "active": "Determines whether the messages are visible or not.", 4 | "message": "Display a single message." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VOverflowBtn.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "editable": "Creates an editable button.", 4 | "overflow": "Creates an overflow button.", 5 | "persistentPlaceholder": "Forces label to always be visible.", 6 | "segmented": "Creates a segmented button." 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VOverlay-location-strategies.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "locationStrategy": "A function used to specifies how the component should position relative to its activator.", 4 | "offset": "Increases distance from the target. When passed as a pair of numbers, the second value shifts anchor along the side and away from the target." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VOverlay-scroll-strategies.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "scrollStrategy": "Strategy used when the component is activate and user scrolls." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VPicker.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "divided": "Adds a divider between the header and controls.", 4 | "landscape": "Puts the picker into landscape mode.", 5 | "hideHeader": "Hide the picker header." 6 | }, 7 | "slots": { 8 | "actions": "Slot for customizing the content in the actions area", 9 | "header": "Slot for the component's header content." 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VPullToRefresh.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "pullDownThreshold": "The distance the user must pull down to trigger a refresh." 4 | }, 5 | "events": { 6 | "load": "Emitted when the user pulls down past the threshold." 7 | }, 8 | "slots": { 9 | "pullDownPanel": "Slot to override the display of the progress indicator after a pull down" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VRadio.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "falseIcon": "The icon used when inactive.", 4 | "trueIcon": "The icon used when active." 5 | }, 6 | "events": { 7 | "change": "Emitted when the input is changed by user interaction.", 8 | "click": "Emitted when input is clicked. **Note:** the **change** event should be used instead of **click** when monitoring state change." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VRadioGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "column": "Displays radio buttons in column.", 4 | "inline": "Displays radio buttons in row." 5 | }, 6 | "events": { 7 | "change": "Emitted when the input is changed by user interaction." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VRangeSlider.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "strict": "Disallows dragging the ending thumb past the starting thumb and vice versa." 4 | 5 | }, 6 | "slots": { 7 | "thumb-label": "Slot for the thumb label.", 8 | "tick-label": "Slot for the tick label." 9 | }, 10 | "events": { 11 | "end": "Slider value emitted at the end of slider movement.", 12 | "start": "Slider value emitted at start of slider movement." 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VSheet.json: -------------------------------------------------------------------------------- 1 | {} 2 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VSimpleTable.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "dense": "Decreases paddings to render a dense table.", 4 | "fixedHeader": "Sets table header to fixed mode." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VSnackbarQueue.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "closable": "Adds a dismiss button that closes the active snackbar.", 4 | "closeText": "The text used in the close button when using the **closable** prop." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VSpeedDial.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "direction": "Direction in which speed-dial content will show. Possible values are `top`, `bottom`, `left`, `right`.", 4 | "openOnHover": "Opens speed-dial on hover." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VStepper.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "completeIcon": "Icon to display when step is marked as completed.", 4 | "editIcon": "Icon to display when step is editable.", 5 | "errorIcon": "Icon to display when step has an error.", 6 | "flat": "Removes the stepper's elevation." 7 | }, 8 | "exposed": { 9 | "next": "Move to the next step.", 10 | "prev": "Move to the prev step." 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VStepperHeader.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": {} 3 | } 4 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VStepperItem.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | }, 4 | "events": { 5 | }, 6 | "slots": { 7 | "icon": "Slot for customizing all stepper item icons." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VStepperVertical.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "completeIcon": "Icon to display when step is marked as completed.", 4 | "editIcon": "Icon to display when step is editable.", 5 | "errorIcon": "Icon to display when step has an error." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VStepperVerticalActions.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "finish": "Changes the Next button to use the finish text.", 4 | "finishText": "The text used for the finish button. Shown when using the **finish** prop." 5 | }, 6 | "events": { 7 | "click:finish": "Emitted when the clicking the finish button." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VStepperWindow.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": {} 3 | } 4 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VStepperWindowItem.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": {} 3 | } 4 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VSystemBar.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "height": "Sets the height for the component.", 4 | "lightsOut": "Reduces the system bar opacity.", 5 | "window": "Increases the system bar height to 32px (24px default)." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VTabItem.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "value": "Sets the value of the tab. If not provided, the index will be used." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VTabsItems.json: -------------------------------------------------------------------------------- 1 | { 2 | "events": { 3 | "change": "Emitted when user swipes between tabs." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VThemeProvider.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "root": "Use the current value of `$vuetify.theme.dark` as opposed to the provided one.", 4 | "withBackground": "Use the current value of `$vuetify.theme.dark` as opposed to the provided one." 5 | }, 6 | "slots": { 7 | "default": "All child components will have their theme overridden. Must have exactly one root element." 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/VTreeviewGroup.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "fluid": "Removes indentation from nested items." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/border.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "border": "Applies utility border classes to the component. To use it, you need to omit the `border-` prefix, (for example use `border-sm` as `border=\"sm\"`). Find a list of the built-in border classes on the [borders page](/styles/borders)." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/delay.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "closeDelay": "Milliseconds to wait before closing component. Only applies to hover and focus events.", 4 | "openDelay": "Milliseconds to wait before opening component. Only applies to hover and focus events." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/dimension.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "height": "Sets the height for the component.", 4 | "maxHeight": "Sets the maximum height for the component.", 5 | "maxWidth": "Sets the maximum width for the component.", 6 | "minHeight": "Sets the minimum height for the component.", 7 | "minWidth": "Sets the minimum width for the component.", 8 | "width": "Sets the width for the component." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/display.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "mobile": "Determines the display mode of the component. If true, the component will be displayed in mobile mode. If false, the component will be displayed in desktop mode. If null, will be based on the current mobile-breakpoint", 4 | "mobileBreakpoint": "Overrides the display configuration default screen size that the component should be considered in mobile." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/elevation.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "elevation": "Designates an elevation applied to the component between 0 and 24. You can find more information on the [elevation page](/styles/elevation)." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/focus.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "focused": "Forces a focused state styling on the component." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/group-item.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "value": "The value used when the component is selected in a group. If not provided, a unique ID will be used." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/group.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "disabled": "Puts all children components into a disabled state.", 4 | "max": "Sets a maximum number of selections that can be made.", 5 | "multiple": "Allows one to select multiple items.", 6 | "value": "The value used when the component is selected within a group. If not provided, the render index is used." 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/layout-item.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "absolute": "Applies **position: absolute** to the component.", 4 | "name": "Assign a specific name for layout registration.", 5 | "order": "Adjust the order of the component in relation to its registration order." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/layout.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "fullHeight": "Sets the component height to 100%.", 4 | "overlaps": "**FOR INTERNAL USE ONLY**" 5 | }, 6 | "exposed": { 7 | "getLayoutItem": "Function that returns position and size information about a specific layout item.", 8 | "items": "A array of all registered layout items." 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/loader.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "loading": "Displays linear progress bar. Can either be a String which specifies which color is applied to the progress bar (any material color or theme color - **primary**, **secondary**, **success**, **info**, **warning**, **error**) or a Boolean which uses the component **color** (set by color prop - if it's supported by the component) or the primary color." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/location.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "location": "Specifies the component's location. Can combine by using a space separated string." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/position.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "position": "Sets the position for the component." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/rounded.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "rounded": "Designates the **border-radius** applied to the component. This can be **0**, **xs**, **sm**, true, **lg**, **xl**, **pill**, **circle**, and **shaped**. Find more information on available border radius classes on the [Border Radius page](/styles/border-radius).", 4 | "tile": "Removes any applied **border-radius** from the component." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/size.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "size": "Sets the height and width of the component. Default unit is px. Can also use the following predefined sizes: **x-small**, **small**, **default**, **large**, and **x-large**." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/tag.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "tag": "Specify a custom tag used on the root element." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/theme.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "theme": "Specify a theme for this component and all of its children." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/transition.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "transition": "Sets the component transition. Can be one of the [built in](/styles/transitions/) or custom transition." 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/useGoTo.json: -------------------------------------------------------------------------------- 1 | { 2 | "exposed": { 3 | "rtl": "The current RTL state.", 4 | "options": "The current goTo scrolling options." 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/useLayout.json: -------------------------------------------------------------------------------- 1 | { 2 | "exposed": { 3 | "getLayoutItem": "Function that returns position and size information about a specific layout item.", 4 | "mainRect": "Position and size information for the v-main area.", 5 | "mainStyles": "CSS styles applied to the v-main area." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/useRtl.json: -------------------------------------------------------------------------------- 1 | { 2 | "exposed": { 3 | "isRtl": "Indicates if RTL is currently active or not.", 4 | "rtlClasses": "**FOR INTERNAL USE ONLY**" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/v-click-outside.json: -------------------------------------------------------------------------------- 1 | { 2 | "value": "Takes either a function that is invoked when user clicks outside of the element the directive is attached to, or an object containing `handler`, `closeConditional` and `include` callbacks." 3 | } 4 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/v-resize.json: -------------------------------------------------------------------------------- 1 | { 2 | "value": "A function that will be invoked each time the browser window is resized.", 3 | "modifiers": { 4 | "active": "By default the resize event listener is added to window with the `passive` option. This modifier sets `passive` to **false**.", 5 | "quiet": "By default the provided handler function is invoked once when the directive is attached to the element. This modifier disables that behavior." 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/v-tooltip.json: -------------------------------------------------------------------------------- 1 | { 2 | "argument": "Applies the VTooltip location prop.", 3 | "value": "**string**: Sets the tooltip content. \n**boolean**: Controls visibility, tooltip content will be the innerText of the bound element. \n**object**: Use any [VTooltip props](/api/v-tooltip), content can be set with `text`. Keys are camelCase." 4 | } 5 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/v-touch.json: -------------------------------------------------------------------------------- 1 | { 2 | "value": "The value is always an object. The `start`, `end`, `move`, `left`, `right`, `up` and `down` functions can be used to invoke a function when the corresponding touch action occurs. If the `parent` option attaches the touch listeners to the parent element instead of the element the directive is used on. The `options` object is described [here](https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener)." 3 | } 4 | -------------------------------------------------------------------------------- /packages/api-generator/src/locale/en/virtual.json: -------------------------------------------------------------------------------- 1 | { 2 | "props": { 3 | "itemHeight": "Height in pixels of each item to display." 4 | }, 5 | "exposed": { 6 | "scrollToIndex": "Scrolls to the item at a given index." 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /packages/api-generator/src/shims.d.ts: -------------------------------------------------------------------------------- 1 | import '@ts-morph/common' 2 | 3 | declare module 'ts-morph' { 4 | export interface Type { 5 | _context: { 6 | compilerFactory: { 7 | getType(type: TType): Type 8 | } 9 | } 10 | } 11 | 12 | namespace ts { 13 | interface Type { 14 | indexInfos: { 15 | keyType: Type 16 | type: Type 17 | }[] 18 | } 19 | } 20 | } 21 | 22 | export {} 23 | -------------------------------------------------------------------------------- /packages/docs/.browserslistrc: -------------------------------------------------------------------------------- 1 | >0.5% 2 | Chrome >0 and since 2021-05 3 | ChromeAndroid >0 and since 2021-05 4 | Firefox >0 and since 2021-05 5 | FirefoxAndroid >0 and since 2021-05 6 | Safari >0 and since 2021-05 7 | iOS >0 and since 2021-05 8 | not dead 9 | not op_mini all 10 | not and_uc 1 11 | -------------------------------------------------------------------------------- /packages/docs/.eslintignore: -------------------------------------------------------------------------------- 1 | src/api/* 2 | -------------------------------------------------------------------------------- /packages/docs/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | /src/api 5 | /src/pages/* 6 | !/src/pages/en 7 | .vite-ssg-temp 8 | 9 | # local env files 10 | .env.local 11 | .env.*.local 12 | 13 | # Log files 14 | npm-debug.log* 15 | yarn-debug.log* 16 | yarn-error.log* 17 | 18 | # Editor directories and files 19 | .idea 20 | .vscode 21 | *.suo 22 | *.ntvs* 23 | *.njsproj 24 | *.sln 25 | *.sw? 26 | 27 | .vercel 28 | -------------------------------------------------------------------------------- /packages/docs/.markdownlintrc: -------------------------------------------------------------------------------- 1 | { 2 | "line-length": false, 3 | "blanks-around-headings": true, 4 | "single-title": { 5 | "front_matter_title": "" 6 | }, 7 | "no-trailing-punctuation": false, 8 | "ol-prefix": false, 9 | "no-inline-html": false, 10 | "no-emphasis-as-heading": false, 11 | "no-bare-urls": false, 12 | "emphasis-style": false, 13 | "link-fragments": false 14 | } 15 | -------------------------------------------------------------------------------- /packages/docs/build/Caddyfile: -------------------------------------------------------------------------------- 1 | :80 { 2 | file_server 3 | 4 | handle /service-worker.js { 5 | header >Cache-Control "public, max-age=0, s-maxage=60, must-revalidate" 6 | } 7 | 8 | handle /assets/* { 9 | header >Cache-Control "public, immutable, max-age=31536000, stale-if-error=604800" 10 | } 11 | 12 | handle { 13 | try_files {path} {path}/ /_fallback.html 14 | header >Cache-Control "public, max-age=3600, s-maxage=60" 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/docs/build/markdown-it.ts: -------------------------------------------------------------------------------- 1 | import MarkdownIt from 'markdown-it' 2 | import { configureMarkdown } from '../src/utils/markdown-it' 3 | export { configureMarkdown } from '../src/utils/markdown-it' 4 | 5 | export const md = configureMarkdown(new MarkdownIt()) 6 | -------------------------------------------------------------------------------- /packages/docs/jest-runner-eslint.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | cliOptions: { 3 | ext: ['.js', '.ts', '.tsx', '.vue'], 4 | maxWarnings: 0, 5 | fix: process.env.JEST_FIX === 'true', 6 | }, 7 | } 8 | -------------------------------------------------------------------------------- /packages/docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/docs/public/favicon.ico -------------------------------------------------------------------------------- /packages/docs/public/img/icons/android-chrome-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/docs/public/img/icons/android-chrome-192x192.png -------------------------------------------------------------------------------- /packages/docs/public/img/icons/android-chrome-512x512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/docs/public/img/icons/android-chrome-512x512.png -------------------------------------------------------------------------------- /packages/docs/public/img/icons/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/docs/public/img/icons/apple-touch-icon.png -------------------------------------------------------------------------------- /packages/docs/public/img/icons/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/docs/public/img/icons/favicon-16x16.png -------------------------------------------------------------------------------- /packages/docs/public/img/icons/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/docs/public/img/icons/favicon-32x32.png -------------------------------------------------------------------------------- /packages/docs/public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /packages/docs/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/docs/src/assets/logo.png -------------------------------------------------------------------------------- /packages/docs/src/components/Backmatter.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/components/api/ExposedTable.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/components/api/Search.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 19 | -------------------------------------------------------------------------------- /packages/docs/src/components/api/SlotsTable.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/Caption.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/Divider.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/Sheet.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/Table.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | 18 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/Title.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/VersionBtn.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 17 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/VerticalDivider.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/BlogLink.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/EnterpriseLink.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/GitHubLink.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/PlaygroundLink.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/SponsorLink.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/StoreLink.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/SupportLink.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/bar/TeamLink.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/components/app/settings/Append.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/components/doc/MadeWithVueAttribution.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/components/doc/Tabs.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 19 | -------------------------------------------------------------------------------- /packages/docs/src/components/examples/ExampleMissing.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 18 | 19 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/components/examples/Usage.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/components/icons/ChevronDown.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/components/promoted/Discovery.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/docs/src/components/promoted/Entry.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/components/promoted/Random.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/docs/src/composables/cosmic.ts: -------------------------------------------------------------------------------- 1 | // Imports 2 | import { createBucketClient } from '@cosmicjs/sdk' 3 | 4 | export function useCosmic ( 5 | bucketSlug = import.meta.env.VITE_COSMIC_2_BUCKET_SLUG as string | undefined, 6 | readKey = import.meta.env.VITE_COSMIC_2_BUCKET_READ_KEY as string | undefined, 7 | ) { 8 | return { 9 | bucket: (readKey && bucketSlug) 10 | ? createBucketClient({ bucketSlug, readKey }) 11 | : undefined, 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/docs/src/data/metadata.json: -------------------------------------------------------------------------------- 1 | { 2 | "title": "Vuetify — A Vue Component Framework", 3 | "description": "Vuetify is a no design skills required UI Component Framework for Vue. It provides you with all of the tools necessary to create beautiful content rich web applications.", 4 | "keywords": "vue, material design components, vue components, material design components, vuetify, vuetify, component framework" 5 | } 6 | -------------------------------------------------------------------------------- /packages/docs/src/examples/accessibility/select-list-item.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/border-radius/misc-components.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/border-radius/misc-removing-border-radius.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/color/classes.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/docs/src/examples/color/text-classes.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/docs/src/examples/display/display-block.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/display/display-inline.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/display/print.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/examples/display/visibility.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-align-content-around.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-align-content-between.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-align-content-center.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-align-content-end.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-align-content-start.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-nowrap.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-order.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-wrap-reverse.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flex-wrap.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flexbox-inline.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/flex/flexbox.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/float/classes.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/examples/grid/prop-no-gutters.vue: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /packages/docs/src/examples/grid/usage.vue: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /packages/docs/src/examples/position/relative.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/position/static.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/spacing/breakpoints.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/spacing/gap.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/spacing/horizontal.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/text-and-typography/text-break.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 19 | -------------------------------------------------------------------------------- /packages/docs/src/examples/text-and-typography/text-no-wrap.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/text-and-typography/text-transform.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/examples/text-and-typography/text-truncate.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/text-and-typography/typography-breakpoints.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-alert/prop-content.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-alert/prop-density.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-alert/prop-type.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-alert/prop-variant.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-avatar/prop-size.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-avatar/prop-tile.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-banner/slot-actions.vue: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/defaults-banner-actions.vue: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/defaults-btn-group.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/defaults-toolbar.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/misc-raised.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/prop-block.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/prop-plain.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/prop-tile.vue: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-btn/prop-variant.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-calendar/prop-type-day.vue: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-card/prop-disabled.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-card/prop-href.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-card/prop-link.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-chip/prop-draggable.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-chip/prop-no-ripple.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-data-table/prop-loading.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-date-picker-month/usage.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 19 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-date-picker/prop-colors.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-date-picker/prop-elevation.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-date-picker/prop-show-adjacent-months.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-date-picker/prop-width.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-empty-state/prop-content.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-empty-state/prop-media.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-input/prop-accept.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-input/prop-chips.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-input/prop-counter.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-input/prop-dense.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-input/prop-multiple.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-input/prop-prepend-icon.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-input/prop-show-size.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-upload/prop-content.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-upload/prop-disabled.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-file-upload/prop-scrim.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-icon/misc-md.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-img/slot-error.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-input/prop-error-count.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-input/prop-error.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-input/prop-loading.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-input/slot-append-and-prepend.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-input/usage.vue: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-number-input/prop-hide-input.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-number-input/prop-min-max.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-number-input/prop-step.vue: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-otp-input/prop-error.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-otp-input/prop-focus-all.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-otp-input/prop-length.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-otp-input/prop-variant.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-overlay/scroll-block.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-overlay/scroll-close.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-overlay/scroll-none.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-overlay/scroll-reposition.vue: -------------------------------------------------------------------------------- 1 | 18 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-pagination/prop-disabled.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-parallax/misc-custom-height.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-parallax/usage.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-range-slider/prop-step.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 24 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-range-slider/prop-vertical.vue: -------------------------------------------------------------------------------- 1 | 7 | 8 | 13 | 14 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-rating/prop-clearable.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-rating/prop-color.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | 22 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-rating/prop-hover.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-rating/prop-icon-label.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 21 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-rating/prop-length.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-rating/prop-readonly.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-ripple/misc-custom-color.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-ripple/option-center.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-ripple/usage.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-select/prop-disabled.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-select/prop-menu-props.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | 13 | 20 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-skeleton-loader/prop-boilerplate.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-skeleton-loader/prop-elevation.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-slider/prop-disabled.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-slider/prop-readonly.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-slider/prop-step.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 16 | 17 | 26 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-slider/prop-vertical.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | 15 | 24 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-switch/prop-flat.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 25 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-switch/prop-inset.vue: -------------------------------------------------------------------------------- 1 | 9 | 10 | 15 | 16 | 25 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-tabs/misc-pagination.vue: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-tabs/prop-fixed-tabs.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-tabs/prop-icons.vue: -------------------------------------------------------------------------------- 1 | 17 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-text-field/prop-label.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-text-field/prop-messages.vue: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-text-field/prop-placeholder.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-text-field/slot-label.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-textarea/prop-auto-grow.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-textarea/prop-browser-autocomplete.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-textarea/prop-clearable.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-theme-provider/prop-with-background.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-time-picker/prop-color.vue: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-time-picker/prop-elevation.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-time-picker/prop-format.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-time-picker/prop-hide-header.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-time-picker/prop-readonly.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-time-picker/prop-use-seconds.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-timeline/usage.vue: -------------------------------------------------------------------------------- 1 | 10 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-toolbar/prop-background.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-toolbar/prop-dense.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-toolbar/prop-extended.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-toolbar/prop-extension-height.vue: -------------------------------------------------------------------------------- 1 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-toolbar/slot-extension.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-tooltip-directive/text.vue: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /packages/docs/src/examples/v-tooltip/prop-open-on-click.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/examples/why-vuetify/card-props.vue: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /packages/docs/src/i18n/messages/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | !en.json -------------------------------------------------------------------------------- /packages/docs/src/layouts/blank.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /packages/docs/src/layouts/home.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 23 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/api/[name].md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: blank 3 | meta: 4 | title: API 5 | description: API documentation 6 | keywords: api, vuetify 7 | --- 8 | 9 | 12 | 13 | 14 | 15 | # {{ name }} API 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/components/explorer/[...name].md: -------------------------------------------------------------------------------- 1 | --- 2 | backmatter: false 3 | fluid: true 4 | meta: 5 | nav: API Explorer 6 | title: API Explorer 7 | description: Explore the Vuetify API 8 | keywords: vuetify api explorer 9 | --- 10 | 11 | # API Explorer 12 | 13 | Quickly search the Vuetify API for components, directives, and composables 14 | 15 | ---- 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/user/dashboard.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: user 3 | meta: 4 | nav: Dashboard 5 | title: User Dashboard 6 | description: User Dashboard 7 | keywords: user dashboard 8 | --- 9 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/baseline.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Baseline Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A baseline wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/constrained.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Constrained Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A constrained wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/discord.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Discord Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A discord wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/extended-toolbar.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Extended Toolbar Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A toolbar wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/inbox.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Inbox Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A inbox wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/side-navigation.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Base Wireframe 5 | --- 6 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/steam.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Steam Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A steam wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/system-bar.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: System bar Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A system bar wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/pages/en/wireframes/three-column.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: wireframe 3 | meta: 4 | title: Three column Wireframe 5 | keywords: vuetify wireframe, vuetify app, vue app 6 | description: A three-column wireframe template for Vuetify 7 | --- 8 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /packages/docs/src/plugins/global-components.ts: -------------------------------------------------------------------------------- 1 | import { defineAsyncComponent } from 'vue' 2 | 3 | // Types 4 | import type { App } from 'vue' 5 | 6 | export function installGlobalComponents (app: App) { 7 | app 8 | .component('AppMarkdown', defineAsyncComponent(() => import('@/components/app/Markdown.vue'))) 9 | } 10 | -------------------------------------------------------------------------------- /packages/docs/src/plugins/octokit.ts: -------------------------------------------------------------------------------- 1 | // Imports 2 | import { Octokit } from '@octokit/core' 3 | 4 | export default new Octokit() 5 | -------------------------------------------------------------------------------- /packages/docs/src/plugins/one.ts: -------------------------------------------------------------------------------- 1 | // Styles 2 | import '@vuetify/one/styles' 3 | 4 | // Types 5 | import type { App } from 'vue' 6 | 7 | export function installOne (app: App) { 8 | return app.use(createOne()) 9 | } 10 | -------------------------------------------------------------------------------- /packages/docs/src/stores/locale.ts: -------------------------------------------------------------------------------- 1 | // Types 2 | type RootState = { 3 | locale: string 4 | } 5 | 6 | export const useLocaleStore = defineStore('locale', { 7 | state: () => ({ 8 | locale: preferredLocale(), 9 | } as RootState), 10 | }) 11 | -------------------------------------------------------------------------------- /packages/docs/src/stores/made-with-vuetify.ts: -------------------------------------------------------------------------------- 1 | export const useMadeWithVuetifyStore = defineStore('made-with-vuetify', () => { 2 | const items = shallowRef([]) 3 | 4 | onBeforeMount(async () => { 5 | const res = await fetch('https://madewithvuejs.com/api/tag/vuetify', { 6 | priority: 'low', 7 | }) 8 | .then(res => res.json()) 9 | 10 | items.value = res.data 11 | }) 12 | 13 | return { items } 14 | }) 15 | -------------------------------------------------------------------------------- /packages/docs/src/utils/analytics.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable camelcase */ 2 | import { track } from 'swetrix' 3 | 4 | export function sweClick ( 5 | event_category: string, 6 | event_label: string, 7 | value: string 8 | ) { 9 | track({ 10 | ev: 'click', 11 | meta: { 12 | category: event_category, 13 | label: event_label, 14 | value, 15 | }, 16 | }) 17 | } 18 | -------------------------------------------------------------------------------- /packages/docs/src/utils/globals.ts: -------------------------------------------------------------------------------- 1 | const IN_BROWSER = typeof window !== 'undefined' 2 | const IS_DEBUG = import.meta.env.DEBUG === 'true' 3 | const IS_PROD = import.meta.env.NODE_ENV === 'production' 4 | const IS_SERVER = import.meta.env.SSR 5 | 6 | export { 7 | IN_BROWSER, 8 | IS_DEBUG, 9 | IS_PROD, 10 | IS_SERVER, 11 | } 12 | -------------------------------------------------------------------------------- /packages/docs/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /packages/vuetify/.browserslistrc: -------------------------------------------------------------------------------- 1 | >0.5% 2 | Chrome >0 and since 2021-05 3 | ChromeAndroid >0 and since 2021-05 4 | Firefox >0 and since 2021-05 5 | FirefoxAndroid >0 and since 2021-05 6 | Safari >0 and since 2021-05 7 | iOS >0 and since 2021-05 8 | not dead 9 | not op_mini all 10 | not and_uc 1 11 | -------------------------------------------------------------------------------- /packages/vuetify/.env.example: -------------------------------------------------------------------------------- 1 | HOST=localhost 2 | PORT=8090 3 | 4 | PERCY_TOKEN= 5 | -------------------------------------------------------------------------------- /packages/vuetify/.eslintignore: -------------------------------------------------------------------------------- 1 | /build/ 2 | 3 | # playground components type definitions generated by unplugin-vue-components 4 | /dev/components.d.ts 5 | 6 | # Built files 7 | /es5/ 8 | /lib/ 9 | /lib-temp/ 10 | /dist/ 11 | /cypress/ 12 | *.spec.cy.ts 13 | *.spec.cy.tsx 14 | -------------------------------------------------------------------------------- /packages/vuetify/_settings.scss: -------------------------------------------------------------------------------- 1 | @forward './lib/styles/settings'; 2 | @forward './dist/component-variables'; 3 | @forward './dist/component-variables-labs'; 4 | -------------------------------------------------------------------------------- /packages/vuetify/_styles.scss: -------------------------------------------------------------------------------- 1 | @forward './lib/styles/main'; 2 | -------------------------------------------------------------------------------- /packages/vuetify/_tools.scss: -------------------------------------------------------------------------------- 1 | @forward './lib/styles/tools'; 2 | -------------------------------------------------------------------------------- /packages/vuetify/build/run-tests.js: -------------------------------------------------------------------------------- 1 | import { spawn } from 'child_process' 2 | 3 | const args = process.argv.slice(2) 4 | 5 | let child 6 | 7 | if (process.platform === 'win32') { 8 | // pnpm test -i 9 | child = spawn('pnpm.cmd', ['test:win32', ...args], { stdio: 'inherit' }) 10 | } else { 11 | // pnpm test 12 | child = spawn('pnpm', ['test:unix', ...args], { stdio: 'inherit' }) 13 | } 14 | 15 | child.on('exit', process.exit) 16 | -------------------------------------------------------------------------------- /packages/vuetify/build/types-code-transform.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @param code {string} 3 | * @returns {string} 4 | */ 5 | export function codeTransform (code) { 6 | return code 7 | // ignore missing vue-router 8 | .replaceAll(/import([^;])*?from 'vue-router'/gm, '// @ts-ignore\n$&') 9 | // tsc adds extra export statements to namespaces that break module augmentation 10 | .replaceAll(/^\s*export \{\s*\};?$/gm, '') 11 | } 12 | -------------------------------------------------------------------------------- /packages/vuetify/dev/App.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 8 | -------------------------------------------------------------------------------- /packages/vuetify/dev/Playground.template.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 19 | -------------------------------------------------------------------------------- /packages/vuetify/dev/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vuetifyjs/vuetify/6f52c4e6f39c06e5ae46216fcd25d2db0840a007/packages/vuetify/dev/favicon.png -------------------------------------------------------------------------------- /packages/vuetify/dev/vuetify/defaults.js: -------------------------------------------------------------------------------- 1 | export default { 2 | // 3 | } 4 | -------------------------------------------------------------------------------- /packages/vuetify/dev/vuetify/icons.js: -------------------------------------------------------------------------------- 1 | import { aliases } from '@/iconsets/mdi-svg' 2 | import { mdi } from '@/iconsets/mdi' 3 | import { fa } from '@/iconsets/fa-svg' 4 | 5 | export default { 6 | defaultSet: 'mdi', 7 | aliases, 8 | sets: { 9 | mdi, 10 | fa, 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /packages/vuetify/dev/vuetify/locale.js: -------------------------------------------------------------------------------- 1 | import { ar, en, ja, sv } from '@/locale' 2 | 3 | export default { 4 | messages: { 5 | en, 6 | ar, 7 | sv, 8 | ja, 9 | }, 10 | } 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/blueprints/index.ts: -------------------------------------------------------------------------------- 1 | export { md1 } from './md1' 2 | export { md2 } from './md2' 3 | export { md3 } from './md3' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VAlert/VAlertTitle.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { createSimpleFunctional } from '@/util' 3 | 4 | export const VAlertTitle = createSimpleFunctional('v-alert-title') 5 | 6 | export type VAlertTitle = InstanceType 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VAlert/index.ts: -------------------------------------------------------------------------------- 1 | export { VAlert } from './VAlert' 2 | export { VAlertTitle } from './VAlertTitle' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VApp/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | @use '../../styles/tools'; 3 | 4 | // VApp 5 | $application-background: rgb(var(--v-theme-background)) !default; 6 | $application-color: rgba(var(--v-theme-on-background), var(--v-high-emphasis-opacity)) !default; 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VApp/index.ts: -------------------------------------------------------------------------------- 1 | export { VApp } from './VApp' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VAppBar/VAppBar.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-app-bar 6 | display: flex 7 | 8 | &.v-toolbar 9 | @include tools.theme($app-bar-theme...) 10 | 11 | &:not(.v-toolbar--flat) 12 | @include tools.elevation($app-bar-elevation) 13 | 14 | &:not(.v-toolbar--absolute) 15 | padding-inline-end: var(--v-scrollbar-offset) 16 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VAppBar/index.ts: -------------------------------------------------------------------------------- 1 | export { VAppBar } from './VAppBar' 2 | export { VAppBarNavIcon } from './VAppBarNavIcon' 3 | export { VAppBarTitle } from './VAppBarTitle' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VAutocomplete/index.ts: -------------------------------------------------------------------------------- 1 | export { VAutocomplete } from './VAutocomplete' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VAvatar/index.ts: -------------------------------------------------------------------------------- 1 | export { VAvatar } from './VAvatar' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBadge/index.ts: -------------------------------------------------------------------------------- 1 | export { VBadge } from './VBadge' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBanner/VBannerText.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { createSimpleFunctional } from '@/util' 3 | 4 | export const VBannerText = createSimpleFunctional('v-banner-text') 5 | 6 | export type VBannerText = InstanceType 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBanner/index.ts: -------------------------------------------------------------------------------- 1 | export { VBanner } from './VBanner' 2 | export { VBannerActions } from './VBannerActions' 3 | export { VBannerText } from './VBannerText' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBottomNavigation/index.ts: -------------------------------------------------------------------------------- 1 | export { VBottomNavigation } from './VBottomNavigation' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBottomSheet/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | $bottom-sheet-elevation: 12 !default; 4 | $bottom-sheet-inset-width: 70% !default; 5 | $bottom-sheet-border-radius: 0 !default; 6 | $bottom-sheet-transition-duration: .2s !default; 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBottomSheet/index.ts: -------------------------------------------------------------------------------- 1 | export { VBottomSheet } from './VBottomSheet' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBreadcrumbs/index.ts: -------------------------------------------------------------------------------- 1 | export { VBreadcrumbs } from './VBreadcrumbs' 2 | export { VBreadcrumbsItem } from './VBreadcrumbsItem' 3 | export { VBreadcrumbsDivider } from './VBreadcrumbsDivider' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBtn/index.ts: -------------------------------------------------------------------------------- 1 | export { VBtn } from './VBtn' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBtnGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { VBtnGroup } from './VBtnGroup' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBtnToggle/VBtnToggle.sass: -------------------------------------------------------------------------------- 1 | @use './variables' as * 2 | @use '../../styles/tools' 3 | 4 | @include tools.layer('components') 5 | .v-btn-toggle 6 | > .v-btn.v-btn--active:not(.v-btn--disabled) 7 | @include tools.active-states('> .v-btn__overlay', $btn-toggle-selected-opacity) 8 | 9 | &.v-btn--variant-plain 10 | opacity: 1 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBtnToggle/_variables.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:map'; 2 | @use '../../styles/settings'; 3 | @use '../../styles/tools'; 4 | 5 | // VBtnToggle 6 | $btn-toggle-selected-opacity: map.get(settings.$states, 'activated') !default; 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VBtnToggle/index.ts: -------------------------------------------------------------------------------- 1 | export { VBtnToggle } from './VBtnToggle' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCard/VCardTitle.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { createSimpleFunctional } from '@/util' 3 | 4 | export const VCardTitle = createSimpleFunctional('v-card-title') 5 | 6 | export type VCardTitle = InstanceType 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCard/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin card-line-height-densities ($map) { 2 | @each $density, $lineHeight in $map { 3 | @if $density == null { 4 | .v-card & { 5 | line-height: $lineHeight; 6 | } 7 | } @else { 8 | .v-card--density-#{$density} & { 9 | line-height: $lineHeight; 10 | } 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCard/index.ts: -------------------------------------------------------------------------------- 1 | export { VCard } from './VCard' 2 | export { VCardActions } from './VCardActions' 3 | export { VCardItem } from './VCardItem' 4 | export { VCardSubtitle } from './VCardSubtitle' 5 | export { VCardText } from './VCardText' 6 | export { VCardTitle } from './VCardTitle' 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCarousel/index.ts: -------------------------------------------------------------------------------- 1 | export { VCarousel } from './VCarousel' 2 | export { VCarouselItem } from './VCarouselItem' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCheckbox/VCheckbox.sass: -------------------------------------------------------------------------------- 1 | @use 'sass:map' 2 | @use '../../styles/settings' 3 | @use '../../styles/tools' 4 | @use './variables' as * 5 | 6 | @include tools.layer('components') 7 | .v-checkbox 8 | &.v-input 9 | flex: $checkbox-flex 10 | 11 | .v-selection-control 12 | min-height: var(--v-input-control-height) 13 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCheckbox/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | $checkbox-flex: 0 1 auto !default; 4 | $checkbox-disabled-color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)) !default; 5 | $checkbox-error-color: rgb(var(--v-theme-error)) !default; 6 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCheckbox/index.ts: -------------------------------------------------------------------------------- 1 | export { VCheckbox } from './VCheckbox' 2 | export { VCheckboxBtn } from './VCheckboxBtn' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VChip/index.ts: -------------------------------------------------------------------------------- 1 | export { VChip } from './VChip' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VChipGroup/_variables.scss: -------------------------------------------------------------------------------- 1 | // VChipGroup 2 | $chip-group-selected-opacity: var(--v-activated-opacity) !default; 3 | $chip-group-padding: 4px 0 !default; 4 | $chip-group-margin: 4px 8px 4px 0 !default; 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VChipGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { VChipGroup } from './VChipGroup' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCode/VCode.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-code 6 | background-color: $code-background-color 7 | color: $code-color 8 | border-radius: $code-border-radius 9 | line-height: $code-line-height 10 | font-size: $code-font-size 11 | font-weight: $code-font-weight 12 | padding: $code-padding 13 | 14 | &:has(> pre) 15 | display: inline-block 16 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCode/_variables.scss: -------------------------------------------------------------------------------- 1 | $code-background-color: rgb(var(--v-theme-code)) !default; 2 | $code-color: rgb(var(--v-theme-on-code)) !default; 3 | $code-border-radius: 4px !default; 4 | $code-line-height: 1.8 !default; 5 | $code-font-size: 0.9em !default; 6 | $code-font-weight: normal !default; 7 | $code-padding: .2em .4em !default; 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCode/index.ts: -------------------------------------------------------------------------------- 1 | // Styles 2 | import './VCode.sass' 3 | 4 | // Utilities 5 | import { createSimpleFunctional } from '@/util' 6 | 7 | export const VCode = createSimpleFunctional('v-code', 'code') 8 | 9 | export type VCode = InstanceType 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VColorPicker/index.ts: -------------------------------------------------------------------------------- 1 | export { VColorPicker } from './VColorPicker' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCombobox/index.ts: -------------------------------------------------------------------------------- 1 | export { VCombobox } from './VCombobox' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VConfirmEdit/index.ts: -------------------------------------------------------------------------------- 1 | export { VConfirmEdit } from './VConfirmEdit' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCounter/VCounter.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings' 2 | @use '../../styles/tools' 3 | @use './variables' as * 4 | 5 | @include tools.layer('components') 6 | .v-counter 7 | color: $counter-color 8 | flex: $counter-flex 9 | font-size: $counter-font-size 10 | transition-duration: $counter-transition-duration 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCounter/_variables.scss: -------------------------------------------------------------------------------- 1 | // VCounter 2 | $counter-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default; 3 | $counter-flex: 0 1 auto !default; 4 | $counter-font-size: 12px !default; 5 | $counter-line-height: $counter-font-size !default; 6 | $counter-min-height: 12px !default; 7 | $counter-transition-duration: 150ms !default; 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VCounter/index.ts: -------------------------------------------------------------------------------- 1 | export { VCounter } from './VCounter' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDataIterator/index.ts: -------------------------------------------------------------------------------- 1 | export { VDataIterator } from './VDataIterator' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDataTable/__tests__/__snapshots__/RowGroup.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`Table RowGroup should render with "column.summary" slot 1`] = ` 4 | 5 |
6 |
7 | 8 | `; 9 | 10 | exports[`Table RowGroup should render with "row.summary" slot 1`] = ` 11 |
12 |
13 | `; 14 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDataTable/index.ts: -------------------------------------------------------------------------------- 1 | export { VDataTable } from './VDataTable' 2 | export { VDataTableHeaders } from './VDataTableHeaders' 3 | export { VDataTableFooter } from './VDataTableFooter' 4 | export { VDataTableRows } from './VDataTableRows' 5 | export { VDataTableRow } from './VDataTableRow' 6 | export { VDataTableVirtual } from './VDataTableVirtual' 7 | export { VDataTableServer } from './VDataTableServer' 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDatePicker/VDatePicker.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-date-picker 6 | overflow: hidden 7 | width: $date-picker-width 8 | 9 | &--show-week 10 | width: $date-picker-show-week-width 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDatePicker/index.ts: -------------------------------------------------------------------------------- 1 | export { VDatePicker } from './VDatePicker' 2 | export { VDatePickerControls } from './VDatePickerControls' 3 | export { VDatePickerHeader } from './VDatePickerHeader' 4 | export { VDatePickerMonth } from './VDatePickerMonth' 5 | export { VDatePickerMonths } from './VDatePickerMonths' 6 | export { VDatePickerYears } from './VDatePickerYears' 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDefaultsProvider/index.ts: -------------------------------------------------------------------------------- 1 | export { VDefaultsProvider } from './VDefaultsProvider' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDialog/index.ts: -------------------------------------------------------------------------------- 1 | export { VDialog } from './VDialog' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VDivider/index.ts: -------------------------------------------------------------------------------- 1 | export { VDivider } from './VDivider' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VEmptyState/index.ts: -------------------------------------------------------------------------------- 1 | export { VEmptyState } from './VEmptyState' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VExpansionPanel/index.ts: -------------------------------------------------------------------------------- 1 | export { VExpansionPanels } from './VExpansionPanels' 2 | export { VExpansionPanel } from './VExpansionPanel' 3 | export { VExpansionPanelText } from './VExpansionPanelText' 4 | export { VExpansionPanelTitle } from './VExpansionPanelTitle' 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VExpansionPanel/shared.ts: -------------------------------------------------------------------------------- 1 | // Types 2 | import type { InjectionKey } from 'vue' 3 | import type { GroupItemProvide } from '@/composables/group' 4 | 5 | export const VExpansionPanelSymbol: InjectionKey = Symbol.for('vuetify:v-expansion-panel') 6 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VFab/index.ts: -------------------------------------------------------------------------------- 1 | export { VFab } from './VFab' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VField/index.ts: -------------------------------------------------------------------------------- 1 | export { VField } from './VField' 2 | export { VFieldLabel } from './VFieldLabel' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VFileInput/__tests__/text.txt: -------------------------------------------------------------------------------- 1 | text 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VFileInput/_variables.scss: -------------------------------------------------------------------------------- 1 | // Defaults 2 | $file-input-chip-margin-inline-end: null !default; 3 | $file-input-chips-margin-top: null !default; 4 | $file-input-chips-margin-bottom: null !default; 5 | $file-input-details-padding-inline: 16px !default; 6 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VFileInput/index.ts: -------------------------------------------------------------------------------- 1 | export { VFileInput } from './VFileInput' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VFooter/index.ts: -------------------------------------------------------------------------------- 1 | export { VFooter } from './VFooter' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VForm/index.ts: -------------------------------------------------------------------------------- 1 | export { VForm } from './VForm' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VGrid/VSpacer.ts: -------------------------------------------------------------------------------- 1 | // Styles 2 | import './VGrid.sass' 3 | 4 | // Utilities 5 | import { createSimpleFunctional } from '@/util' 6 | 7 | export const VSpacer = createSimpleFunctional('v-spacer', 'div', 'VSpacer') 8 | 9 | export type VSpacer = InstanceType 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VGrid/index.ts: -------------------------------------------------------------------------------- 1 | export { VContainer } from './VContainer' 2 | export { VCol } from './VCol' 3 | export { VRow } from './VRow' 4 | export { VSpacer } from './VSpacer' 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VHover/index.ts: -------------------------------------------------------------------------------- 1 | export { VHover } from './VHover' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VIcon/index.ts: -------------------------------------------------------------------------------- 1 | export { VIcon } from './VIcon' 2 | export { VComponentIcon, VSvgIcon, VLigatureIcon, VClassIcon } from '@/composables/icons' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VImg/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | // Defaults 4 | $img-rounded-border-radius: settings.$border-radius-root !default; 5 | $img-preload-filter: blur(4px) !default; 6 | $img-card-media-height: 200px !default; 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VImg/index.ts: -------------------------------------------------------------------------------- 1 | export { VImg } from './VImg' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VInfiniteScroll/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | $infinite-scroll-side-padding: 8px !default; 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VInfiniteScroll/index.ts: -------------------------------------------------------------------------------- 1 | export { VInfiniteScroll } from './VInfiniteScroll' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VInput/index.ts: -------------------------------------------------------------------------------- 1 | export { VInput } from './VInput' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VItemGroup/VItemGroup.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-item-group 6 | flex: 0 1 auto 7 | max-width: 100% 8 | position: relative 9 | transition: $item-group-transition 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VItemGroup/__tests__/__snapshots__/VItemGroup.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`VItemGroup > should render with a specified tag when the tag prop is provided with a value 1`] = ` 4 | "" 7 | `; 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VItemGroup/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | // Defaults 4 | $item-group-transition: 0.2s settings.$standard-easing !default; 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VItemGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { VItemGroup } from './VItemGroup' 2 | export { VItem } from './VItem' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VKbd/VKbd.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-kbd 6 | background: rgb(var(--v-theme-kbd)) 7 | color: rgb(var(--v-theme-on-kbd)) 8 | border-radius: $kbd-border-radius 9 | display: $kbd-display 10 | font-size: $kbd-font-size 11 | font-weight: $kbd-font-weight 12 | padding: $kbd-padding 13 | 14 | @include tools.elevation($kbd-elevation) 15 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VKbd/_variables.scss: -------------------------------------------------------------------------------- 1 | // VKbd 2 | $kbd-border-radius: 3px !default; 3 | $kbd-display: inline !default; 4 | $kbd-elevation: 2 !default; 5 | $kbd-font-size: 85% !default; 6 | $kbd-font-weight: normal !default; 7 | $kbd-padding: .2em .4rem !default; 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VKbd/index.ts: -------------------------------------------------------------------------------- 1 | // Styles 2 | import './VKbd.sass' 3 | 4 | // Utilities 5 | import { createSimpleFunctional } from '@/util' 6 | 7 | export const VKbd = createSimpleFunctional('v-kbd', 'kbd') 8 | 9 | export type VKbd = InstanceType 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VLabel/index.ts: -------------------------------------------------------------------------------- 1 | export { VLabel } from './VLabel' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VLayout/VLayout.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | 3 | @include tools.layer('components') 4 | .v-layout 5 | --v-scrollbar-offset: 0px 6 | display: flex 7 | flex: 1 1 auto 8 | 9 | &--full-height 10 | --v-scrollbar-offset: inherit 11 | height: 100% 12 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VLayout/VLayoutItem.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings' 2 | @use '../../styles/tools' 3 | 4 | @include tools.layer('components') 5 | .v-layout-item 6 | position: absolute 7 | transition: 0.2s settings.$standard-easing 8 | 9 | .v-layout-item--absolute 10 | position: absolute 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VLayout/index.ts: -------------------------------------------------------------------------------- 1 | export { VLayout } from './VLayout' 2 | export { VLayoutItem } from './VLayoutItem' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VLazy/index.ts: -------------------------------------------------------------------------------- 1 | export { VLazy } from './VLazy' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VList/VListImg.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { createSimpleFunctional } from '@/util' 3 | 4 | export const VListImg = createSimpleFunctional('v-list-img') 5 | 6 | export type VListImg = InstanceType 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VList/VListItemTitle.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { createSimpleFunctional } from '@/util' 3 | 4 | export const VListItemTitle = createSimpleFunctional('v-list-item-title') 5 | 6 | export type VListItemTitle = InstanceType 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VList/__tests__/__snapshots__/VList.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`VList > should match a snapshot 1`] = `"
"`; 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VList/__tests__/__snapshots__/VListItemMedia.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`VListItemMedia > should match a snapshot 1`] = `"
"`; 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VLocaleProvider/VLocaleProvider.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | 3 | @include tools.layer('components') 4 | .v-locale-provider 5 | display: contents 6 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VLocaleProvider/index.ts: -------------------------------------------------------------------------------- 1 | export { VLocaleProvider } from './VLocaleProvider' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VMain/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | // VMain 4 | $main-transition: 0.2s settings.$standard-easing !default; 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VMain/index.ts: -------------------------------------------------------------------------------- 1 | export { VMain } from './VMain' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VMenu/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | $menu-elevation: 8 !default; 4 | $menu-content-border-radius: settings.$border-radius-root !default; 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VMenu/index.ts: -------------------------------------------------------------------------------- 1 | export { VMenu } from './VMenu' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VMenu/shared.ts: -------------------------------------------------------------------------------- 1 | // Types 2 | import type { InjectionKey } from 'vue' 3 | 4 | interface MenuProvide { 5 | register (): void 6 | unregister (): void 7 | closeParents (e?: MouseEvent): void 8 | } 9 | 10 | export const VMenuSymbol: InjectionKey = Symbol.for('vuetify:v-menu') 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VMessages/_variables.scss: -------------------------------------------------------------------------------- 1 | // VMessages 2 | $messages-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default; 3 | $messages-font-size: 12px !default; 4 | $messages-line-height: $messages-font-size !default; 5 | $messages-min-height: 14px !default; 6 | $messages-transition-duration: 150ms !default; 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VMessages/index.ts: -------------------------------------------------------------------------------- 1 | export { VMessages } from './VMessages' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VNavigationDrawer/index.ts: -------------------------------------------------------------------------------- 1 | export { VNavigationDrawer } from './VNavigationDrawer' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VNoSsr/VNoSsr.tsx: -------------------------------------------------------------------------------- 1 | // Composables 2 | import { useHydration } from '@/composables/hydration' 3 | 4 | // Utilities 5 | import { defineComponent } from '@/util' 6 | 7 | export const VNoSsr = defineComponent({ 8 | name: 'VNoSsr', 9 | 10 | setup (_, { slots }) { 11 | const show = useHydration() 12 | 13 | return () => show.value && slots.default?.() 14 | }, 15 | }) 16 | 17 | export type VNoSsr = InstanceType 18 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VNoSsr/index.ts: -------------------------------------------------------------------------------- 1 | export { VNoSsr } from './VNoSsr' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VNumberInput/_variables.scss: -------------------------------------------------------------------------------- 1 | $number-input-inset-divider-size: 55% !default; 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VNumberInput/index.ts: -------------------------------------------------------------------------------- 1 | export { VNumberInput } from './VNumberInput' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VOtpInput/index.ts: -------------------------------------------------------------------------------- 1 | export { VOtpInput } from './VOtpInput' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VOverflowBtn/index.ts: -------------------------------------------------------------------------------- 1 | import VOverflowBtn from './VOverflowBtn' 2 | 3 | export { VOverflowBtn } 4 | export default VOverflowBtn 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VOverlay/_variables.scss: -------------------------------------------------------------------------------- 1 | // Defaults 2 | $overlay-opacity: 0.32 !default; 3 | $overlay-scrim-background: rgb(var(--v-theme-on-surface)) !default; 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VOverlay/index.ts: -------------------------------------------------------------------------------- 1 | export { VOverlay } from './VOverlay' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VPagination/VPagination.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-pagination 6 | &__list 7 | display: inline-flex 8 | list-style-type: none 9 | justify-content: center 10 | width: 100% 11 | 12 | &__item, 13 | &__first, 14 | &__prev, 15 | &__next, 16 | &__last 17 | margin: $pagination-item-margin 18 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VPagination/_variables.scss: -------------------------------------------------------------------------------- 1 | // Defaults 2 | $pagination-item-margin: .3rem !default; 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VPagination/index.ts: -------------------------------------------------------------------------------- 1 | export { VPagination } from './VPagination' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VParallax/VParallax.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | 3 | @include tools.layer('components') 4 | .v-parallax 5 | position: relative 6 | overflow: hidden 7 | 8 | &--active > .v-img__img 9 | will-change: transform 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VParallax/index.ts: -------------------------------------------------------------------------------- 1 | export { VParallax } from './VParallax' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VProgressCircular/index.ts: -------------------------------------------------------------------------------- 1 | export { VProgressCircular } from './VProgressCircular' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VProgressLinear/index.ts: -------------------------------------------------------------------------------- 1 | export { VProgressLinear } from './VProgressLinear' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VRadio/index.ts: -------------------------------------------------------------------------------- 1 | export { VRadio } from './VRadio' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VRadioGroup/_variables.scss: -------------------------------------------------------------------------------- 1 | $radio-group-details-padding-inline: 16px !default; 2 | $radio-group-label-margin-inline-start: 16px !default; 3 | $radio-group-label-selection-group-margin-top: 8px !default; 4 | $radio-group-label-selection-group-padding-inline: 6px !default; 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VRadioGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { VRadioGroup } from './VRadioGroup' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VRangeSlider/index.ts: -------------------------------------------------------------------------------- 1 | export { VRangeSlider } from './VRangeSlider' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VRating/index.ts: -------------------------------------------------------------------------------- 1 | export { VRating } from './VRating' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VResponsive/index.ts: -------------------------------------------------------------------------------- 1 | export { VResponsive } from './VResponsive' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSelect/_mixins.scss: -------------------------------------------------------------------------------- 1 | @mixin select-compact-chip-label { 2 | &--chips.v-input--density-compact { 3 | .v-field--variant-solo, 4 | .v-field--variant-solo-inverted, 5 | .v-field--variant-filled, 6 | .v-field--variant-solo-filled { 7 | .v-label.v-field-label { 8 | &--floating { 9 | top: 0px; 10 | } 11 | } 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSelect/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | // Defaults 4 | $select-content-border-radius: 4px !default; 5 | $select-content-elevation: 4 !default; 6 | $select-line-height: 1.75 !default; 7 | $select-transition: .2s settings.$standard-easing !default; 8 | $select-chips-control-min-height: null !default; 9 | $select-chips-margin-top: null !default; 10 | $select-chips-margin-bottom: null !default; 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSelect/index.ts: -------------------------------------------------------------------------------- 1 | export { VSelect } from './VSelect' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSelectionControl/index.ts: -------------------------------------------------------------------------------- 1 | export { VSelectionControl } from './VSelectionControl' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSelectionControlGroup/VSelectionControlGroup.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-selection-control-group 6 | grid-area: $selection-control-group-grid-area 7 | display: flex 8 | flex-direction: column 9 | 10 | &--inline 11 | flex-direction: row 12 | flex-wrap: wrap 13 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSelectionControlGroup/_variables.scss: -------------------------------------------------------------------------------- 1 | $selection-control-group-grid-area: control !default; 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSelectionControlGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { VSelectionControlGroup } from './VSelectionControlGroup' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSheet/index.ts: -------------------------------------------------------------------------------- 1 | export { VSheet } from './VSheet' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSkeletonLoader/index.ts: -------------------------------------------------------------------------------- 1 | export { VSkeletonLoader } from './VSkeletonLoader' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSlideGroup/_variables.scss: -------------------------------------------------------------------------------- 1 | $slide-group-prev-basis: 52px !default; 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSlideGroup/index.ts: -------------------------------------------------------------------------------- 1 | export { VSlideGroup } from './VSlideGroup' 2 | export { VSlideGroupItem } from './VSlideGroupItem' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSlider/index.ts: -------------------------------------------------------------------------------- 1 | export { VSlider } from './VSlider' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSnackbar/index.ts: -------------------------------------------------------------------------------- 1 | export { VSnackbar } from './VSnackbar' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSnackbarQueue/index.ts: -------------------------------------------------------------------------------- 1 | export { VSnackbarQueue } from './VSnackbarQueue' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSparkline/index.ts: -------------------------------------------------------------------------------- 1 | export { VSparkline } from './VSparkline' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSpeedDial/index.ts: -------------------------------------------------------------------------------- 1 | export { VSpeedDial } from './VSpeedDial' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VStepper/VStepperHeader.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { createSimpleFunctional } from '@/util' 3 | 4 | export const VStepperHeader = createSimpleFunctional('v-stepper-header') 5 | 6 | export type VStepperHeader = InstanceType 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VStepper/index.ts: -------------------------------------------------------------------------------- 1 | export { VStepper } from './VStepper' 2 | export { VStepperActions } from './VStepperActions' 3 | export { VStepperHeader } from './VStepperHeader' 4 | export { VStepperItem } from './VStepperItem' 5 | export { VStepperWindow } from './VStepperWindow' 6 | export { VStepperWindowItem } from './VStepperWindowItem' 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VStepper/shared.ts: -------------------------------------------------------------------------------- 1 | // Types 2 | import type { InjectionKey } from 'vue' 3 | import type { GroupProvide } from '@/composables/group' 4 | 5 | export const VStepperSymbol: InjectionKey = Symbol.for('vuetify:v-stepper') 6 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSwitch/index.ts: -------------------------------------------------------------------------------- 1 | export { VSwitch } from './VSwitch' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VSystemBar/index.ts: -------------------------------------------------------------------------------- 1 | export { VSystemBar } from './VSystemBar' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTable/index.ts: -------------------------------------------------------------------------------- 1 | export { VTable } from './VTable' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTabs/_variables.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:math'; 2 | @use 'sass:map'; 3 | 4 | // VTabs 5 | $tabs-density: ( 'default': 0, 'comfortable' : -1, 'compact': -3) !default; 6 | $tabs-height: 48px !default; 7 | $tabs-stacked-height: 72px !default; 8 | 9 | // VTab 10 | $tab-align-tabs-title-margin: 42px !default; 11 | $tab-border-radius: 0 !default; 12 | $tab-max-width: 360px !default; 13 | $tab-min-width: 90px !default; 14 | $tab-slider-size: 2px !default; 15 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTabs/index.ts: -------------------------------------------------------------------------------- 1 | export { VTab } from './VTab' 2 | export { VTabs } from './VTabs' 3 | export { VTabsWindow } from './VTabsWindow' 4 | export { VTabsWindowItem } from './VTabsWindowItem' 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTabs/shared.ts: -------------------------------------------------------------------------------- 1 | // Types 2 | import type { InjectionKey } from 'vue' 3 | import type { GroupProvide } from '@/composables/group' 4 | 5 | export const VTabsSymbol: InjectionKey = Symbol.for('vuetify:v-tabs') 6 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTextField/index.ts: -------------------------------------------------------------------------------- 1 | export { VTextField } from './VTextField' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTextarea/index.ts: -------------------------------------------------------------------------------- 1 | export { VTextarea } from './VTextarea' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VThemeProvider/VThemeProvider.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | 3 | @include tools.layer('components') 4 | .v-theme-provider 5 | background: rgb(var(--v-theme-background)) 6 | color: rgb(var(--v-theme-on-background)) 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VThemeProvider/index.ts: -------------------------------------------------------------------------------- 1 | export { VThemeProvider } from './VThemeProvider' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTimeline/index.ts: -------------------------------------------------------------------------------- 1 | export { VTimeline } from './VTimeline' 2 | export { VTimelineItem } from './VTimelineItem' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VToolbar/index.ts: -------------------------------------------------------------------------------- 1 | export { VToolbar } from './VToolbar' 2 | export { VToolbarTitle } from './VToolbarTitle' 3 | export { VToolbarItems } from './VToolbarItems' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VTooltip/index.ts: -------------------------------------------------------------------------------- 1 | export { VTooltip } from './VTooltip' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VValidation/index.ts: -------------------------------------------------------------------------------- 1 | export { VValidation } from './VValidation' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VVirtualScroll/VVirtualScroll.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | 3 | @include tools.layer('components') 4 | .v-virtual-scroll 5 | display: block 6 | flex: 1 1 auto 7 | max-width: 100% 8 | overflow: auto 9 | position: relative 10 | 11 | &__container 12 | display: block 13 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VVirtualScroll/index.ts: -------------------------------------------------------------------------------- 1 | export { VVirtualScroll } from './VVirtualScroll' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VWindow/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | // VWindow 4 | $window-transition: .3s cubic-bezier(.25, .8, .50, 1) !default; 5 | $window-controls-padding: 0 16px !default; 6 | -------------------------------------------------------------------------------- /packages/vuetify/src/components/VWindow/index.ts: -------------------------------------------------------------------------------- 1 | export { VWindow } from './VWindow' 2 | export { VWindowItem } from './VWindowItem' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/composables/date/index.ts: -------------------------------------------------------------------------------- 1 | export { createDate, useDate, DateAdapterSymbol } from './date' 2 | export type { DateAdapter } from './DateAdapter' 3 | export type { DateOptions, DateInstance, DateModule } from './date' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/composables/index.ts: -------------------------------------------------------------------------------- 1 | /* 2 | * PUBLIC INTERFACES ONLY 3 | * Imports in our code should be to the composable directly, not this file 4 | */ 5 | 6 | export { useDate } from './date' 7 | export { useDefaults } from './defaults' 8 | export { useDisplay } from './display' 9 | export { useGoTo } from './goto' 10 | export { useLayout } from './layout' 11 | export { useLocale, useRtl } from './locale' 12 | export { useTheme } from './theme' 13 | -------------------------------------------------------------------------------- /packages/vuetify/src/composables/refs.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { onBeforeUpdate, ref } from 'vue' 3 | 4 | // Types 5 | import type { Ref } from 'vue' 6 | 7 | export function useRefs () { 8 | const refs = ref<(T | undefined)[]>([]) as Ref<(T | undefined)[]> 9 | 10 | onBeforeUpdate(() => (refs.value = [])) 11 | 12 | function updateRef (e: any, i: number) { 13 | refs.value[i] = e 14 | } 15 | 16 | return { refs, updateRef } 17 | } 18 | -------------------------------------------------------------------------------- /packages/vuetify/src/composables/scopeId.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { getCurrentInstance } from '@/util' 3 | 4 | export function useScopeId () { 5 | const vm = getCurrentInstance('useScopeId') 6 | 7 | const scopeId = vm!.vnode.scopeId 8 | 9 | return { scopeId: scopeId ? { [scopeId]: '' } : undefined } 10 | } 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/directives/index.ts: -------------------------------------------------------------------------------- 1 | export { ClickOutside } from './click-outside' 2 | // export { Color } from './color' 3 | export { Intersect } from './intersect' 4 | export { Mutate } from './mutate' 5 | export { Resize } from './resize' 6 | export { Ripple } from './ripple' 7 | export { Scroll } from './scroll' 8 | export { Touch } from './touch' 9 | export { Tooltip } from './tooltip' 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/directives/ripple/_variables.scss: -------------------------------------------------------------------------------- 1 | @use '../../styles/settings'; 2 | 3 | $ripple-animation-transition-in: transform .25s settings.$decelerated-easing, 4 | opacity .1s settings.$decelerated-easing !default; 5 | $ripple-animation-transition-out: opacity .3s settings.$decelerated-easing !default; 6 | $ripple-animation-visible-opacity: calc(.25 * var(--v-theme-overlay-multiplier)) !default; 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VCalendar/VCalendarIntervalEvent.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | 3 | @include tools.layer('components') 4 | .v-calendar-internal-event 5 | overflow: hidden 6 | padding: 4px 7 | text-overflow: ellipsis 8 | white-space: nowrap 9 | // width: 100% 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VCalendar/index.ts: -------------------------------------------------------------------------------- 1 | export { VCalendar } from './VCalendar' 2 | export { VCalendarDay } from './VCalendarDay' 3 | export { VCalendarHeader } from './VCalendarHeader' 4 | export { VCalendarInterval } from './VCalendarInterval' 5 | export { VCalendarIntervalEvent } from './VCalendarIntervalEvent' 6 | export { VCalendarMonthDay } from './VCalendarMonthDay' 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VColorInput/VColorInput.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | /* region INPUT */ 6 | .v-color-input 7 | padding: 0 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VColorInput/_variables.scss: -------------------------------------------------------------------------------- 1 | // Defaults 2 | $color-input-pip-default-color: rgba(var(--v-theme-on-surface), var(--v-medium-emphasis-opacity)) !default; 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VColorInput/index.ts: -------------------------------------------------------------------------------- 1 | export { VColorInput } from './VColorInput' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VDateInput/index.ts: -------------------------------------------------------------------------------- 1 | export { VDateInput } from './VDateInput' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VFileUpload/index.ts: -------------------------------------------------------------------------------- 1 | export { VFileUpload } from './VFileUpload' 2 | export { VFileUploadItem } from './VFileUploadItem' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VIconBtn/index.ts: -------------------------------------------------------------------------------- 1 | export { VIconBtn } from './VIconBtn' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VPicker/VPickerTitle.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { createSimpleFunctional } from '@/util' 3 | 4 | export const VPickerTitle = createSimpleFunctional('v-picker-title') 5 | 6 | export type VPickerTitle = InstanceType 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VPicker/index.ts: -------------------------------------------------------------------------------- 1 | export { VPicker } from './VPicker' 2 | export { VPickerTitle } from './VPickerTitle' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VPullToRefresh/index.ts: -------------------------------------------------------------------------------- 1 | export { VPullToRefresh } from './VPullToRefresh' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VStepperVertical/_variables.scss: -------------------------------------------------------------------------------- 1 | $stepper-vertical-item-transition-duration: .2s !default; 2 | $stepper-vertical-item-transition-property: opacity !default; 3 | $stepper-vertical-item-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1) !default; 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VStepperVertical/index.ts: -------------------------------------------------------------------------------- 1 | export { VStepperVertical } from './VStepperVertical' 2 | export { VStepperVerticalItem } from './VStepperVerticalItem' 3 | export { VStepperVerticalActions } from './VStepperVerticalActions' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VTimePicker/VTimePicker.sass: -------------------------------------------------------------------------------- 1 | @use '../../styles/tools' 2 | @use './variables' as * 3 | 4 | @include tools.layer('components') 5 | .v-time-picker.v-picker 6 | padding: $time-picker-padding 7 | width: $time-picker-width 8 | 9 | .v-picker-title 10 | padding: 0 11 | margin-bottom: 20px 12 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VTimePicker/index.ts: -------------------------------------------------------------------------------- 1 | export { VTimePicker } from './VTimePicker' 2 | export { VTimePickerClock } from './VTimePickerClock' 3 | export { VTimePickerControls } from './VTimePickerControls' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VTimePicker/shared.ts: -------------------------------------------------------------------------------- 1 | export type VTimePickerViewMode = 'hour' | 'minute' | 'second' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VTimePicker/util.ts: -------------------------------------------------------------------------------- 1 | export function pad (n: string | number, length = 2) { 2 | return String(n).padStart(length, '0') 3 | } 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VTreeview/_variables.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:map'; 2 | 3 | $treeview-indent-size: 28px !default; // 28px here to match the width of the expand toggle VBtn. 4 | $treeview-indent-padding: 16px !default; 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VTreeview/index.ts: -------------------------------------------------------------------------------- 1 | export { VTreeview } from './VTreeview' 2 | export { VTreeviewItem } from './VTreeviewItem' 3 | export { VTreeviewGroup } from './VTreeviewGroup' 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/VTreeview/shared.ts: -------------------------------------------------------------------------------- 1 | // Types 2 | import type { ComputedRef, InjectionKey } from 'vue' 3 | 4 | export interface TreeViewProvide { 5 | visibleIds: ComputedRef | null> 6 | } 7 | 8 | export const VTreeviewSymbol: InjectionKey = Symbol.for('vuetify:v-treeview') 9 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/allComponents.ts: -------------------------------------------------------------------------------- 1 | export * from '@/components' 2 | export * from './components' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/components.ts: -------------------------------------------------------------------------------- 1 | export * from './VCalendar' 2 | export * from './VColorInput' 3 | export * from './VDateInput' 4 | export * from './VFileUpload' 5 | export * from './VIconBtn' 6 | export * from './VPicker' 7 | export * from './VStepperVertical' 8 | export * from './VPullToRefresh' 9 | export * from './VTimePicker' 10 | export * from './VTreeview' 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/composables.ts: -------------------------------------------------------------------------------- 1 | export * from './rules' 2 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/index.ts: -------------------------------------------------------------------------------- 1 | export * as components from './components' 2 | export * as composables from './composables' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/labs/rules/index.ts: -------------------------------------------------------------------------------- 1 | export * from './rules' 2 | export * from './plugin' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/elements/_blockquote.sass: -------------------------------------------------------------------------------- 1 | @use '../settings' 2 | @use '../tools' 3 | 4 | @include tools.layer('components') 5 | .blockquote 6 | padding: settings.$spacer*4 0 settings.$spacer*4 settings.$spacer*6 7 | font-size: settings.$blockquote-font-size 8 | font-weight: settings.$blockquote-font-weight 9 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/elements/_index.sass: -------------------------------------------------------------------------------- 1 | @use './blockquote' 2 | @use './global' 3 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/generic/_animations.scss: -------------------------------------------------------------------------------- 1 | @use '../tools'; 2 | 3 | @include tools.layer('transitions') { 4 | @keyframes v-shake { 5 | 59% { 6 | margin-left: 0; 7 | } 8 | 9 | 60%, 80% { 10 | margin-left: 2px; 11 | } 12 | 13 | 70%, 90% { 14 | margin-left: -2px; 15 | } 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/generic/_index.scss: -------------------------------------------------------------------------------- 1 | @use './layers'; 2 | @use './animations'; 3 | @use './colors'; 4 | @use './reset'; 5 | @use './transitions'; 6 | @use './rtl'; 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/generic/_layers.scss: -------------------------------------------------------------------------------- 1 | @use '../settings'; 2 | 3 | @if (settings.$layers) { 4 | @layer vuetify { 5 | @layer reset, transitions, base, components, overrides, colors, theme, utilities; 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/generic/_rtl.scss: -------------------------------------------------------------------------------- 1 | @use '../tools'; 2 | 3 | @include tools.layer('base') { 4 | .v-locale { 5 | &--is-rtl { 6 | direction: rtl; 7 | } 8 | 9 | &--is-ltr { 10 | direction: ltr; 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/main.sass: -------------------------------------------------------------------------------- 1 | // Modeled after ITCSS https://www.xfive.co/blog/itcss-scalable-maintainable-css-architecture/ 2 | 3 | @forward './settings' 4 | @use './generic' 5 | @use './elements' 6 | @use './utilities' 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/settings/_index.sass: -------------------------------------------------------------------------------- 1 | @forward './variables' 2 | @forward './colors' 3 | @forward './elevations' 4 | @forward './utilities' 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_absolute.sass: -------------------------------------------------------------------------------- 1 | @mixin absolute($pseudo: false) 2 | & 3 | @if ($pseudo) 4 | content: '' 5 | position: absolute 6 | top: 0 7 | left: 0 8 | width: 100% 9 | height: 100% 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_bootable.sass: -------------------------------------------------------------------------------- 1 | @mixin bootable() 2 | &:not([data-booted="true"]) 3 | transition: none !important 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_border.sass: -------------------------------------------------------------------------------- 1 | @mixin border($color: null, $style: null, $width: null, $thin-width: false, $important: false) 2 | & 3 | border-color: $color if($important, !important, null) 4 | border-style: $style if($important, !important, null) 5 | border-width: $width if($important, !important, null) 6 | 7 | @if $thin-width 8 | &--border 9 | border-width: $thin-width 10 | box-shadow: none 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_density.sass: -------------------------------------------------------------------------------- 1 | @use '../settings' 2 | 3 | @mixin density($name, $densities) 4 | @each $density, $multiplier in $densities 5 | .#{$name}--density-#{$density} 6 | @content($multiplier * settings.$spacer) 7 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_elevation.sass: -------------------------------------------------------------------------------- 1 | @use 'sass:map' 2 | @use '../settings' 3 | 4 | @mixin elevation($z, $important: false) 5 | & 6 | box-shadow: map.get(settings.$shadow-key-umbra, $z), map.get(settings.$shadow-key-penumbra, $z), map.get(settings.$shadow-key-ambient, $z) if($important, !important, null) 7 | 8 | @mixin elevationTransition($duration: 280ms, $easing: cubic-bezier(0.4, 0, 0.2, 1)) 9 | & 10 | transition: box-shadow $duration $easing 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_index.sass: -------------------------------------------------------------------------------- 1 | @forward '_absolute' 2 | @forward '_functions' 3 | @forward '_bootable' 4 | @forward '_border' 5 | @forward '_density' 6 | @forward '_elevation' 7 | @forward '_layer' 8 | @forward '_position' 9 | @forward '_radius' 10 | @forward '_rounded' 11 | @forward '_rtl' 12 | @forward '_states' 13 | @forward '_theme' 14 | @forward '_typography' 15 | @forward '_utilities' 16 | @forward '_variant' 17 | @forward '_display' 18 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_layer.scss: -------------------------------------------------------------------------------- 1 | @use '../settings'; 2 | 3 | @mixin layer ($name) { 4 | @if (settings.$layers) { 5 | @layer vuetify.#{$name} { 6 | @content; 7 | } 8 | } @else { 9 | @content; 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_position.sass: -------------------------------------------------------------------------------- 1 | @mixin position($positions, $important: false) 2 | @each $position in $positions 3 | &--#{$position} 4 | position: #{$position} if($important, !important, null) 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_radius.sass: -------------------------------------------------------------------------------- 1 | @use 'sass:map' 2 | @use '../settings' 3 | 4 | @mixin radius($r, $important: false) 5 | & 6 | // Key exists within the $rounded variable 7 | @if (map.has-key(settings.$rounded, $r)) 8 | border-radius: map.get(settings.$rounded, $r) if($important, !important, null) 9 | @else 10 | border-radius: $r if($important, !important, null) 11 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_rounded.sass: -------------------------------------------------------------------------------- 1 | @mixin rounded($radius: null, $important: false) 2 | & 3 | border-radius: $radius if($important, !important, null) 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_rtl.sass: -------------------------------------------------------------------------------- 1 | @use 'sass:selector' 2 | 3 | @mixin rtl() 4 | @at-root #{selector.append('.v-locale--is-rtl', &)}, 5 | .v-locale--is-rtl & 6 | @content 7 | 8 | @mixin ltr() 9 | @at-root #{selector.append('.v-locale--is-ltr', &)}, 10 | .v-locale--is-ltr & 11 | @content 12 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_theme.sass: -------------------------------------------------------------------------------- 1 | @mixin theme ($background, $color) 2 | & 3 | background: $background 4 | color: $color 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/tools/_typography.sass: -------------------------------------------------------------------------------- 1 | @mixin typography ($font-size, $font-weight, $letter-spacing, $line-height, $text-transform) 2 | & 3 | font-size: $font-size 4 | font-weight: $font-weight 5 | letter-spacing: $letter-spacing 6 | line-height: $line-height 7 | text-transform: $text-transform 8 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/utilities/_display.sass: -------------------------------------------------------------------------------- 1 | @use 'sass:list' 2 | @use '../settings' 3 | @use '../tools' 4 | 5 | @if (settings.$utilities != false and list.length(settings.$utilities) > 0) 6 | @include tools.layer('utilities') 7 | @each $size, $media_query in settings.$display-breakpoints 8 | .hidden 9 | &-#{$size} 10 | @media #{$media_query} 11 | display: none !important 12 | -------------------------------------------------------------------------------- /packages/vuetify/src/styles/utilities/_elevation.scss: -------------------------------------------------------------------------------- 1 | @use 'sass:list'; 2 | @use '../tools'; 3 | @use '../settings'; 4 | 5 | @if (settings.$utilities != false and list.length(settings.$utilities) > 0) { 6 | @include tools.layer('utilities') { 7 | $z: 24; 8 | @while $z >= 0 { 9 | .elevation-#{$z} { 10 | @include tools.elevation($z, $important: true); 11 | } 12 | 13 | $z: $z - 1; 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /packages/vuetify/src/util/easing.ts: -------------------------------------------------------------------------------- 1 | export const standardEasing = 'cubic-bezier(0.4, 0, 0.2, 1)' 2 | export const deceleratedEasing = 'cubic-bezier(0.0, 0, 0.2, 1)' // Entering 3 | export const acceleratedEasing = 'cubic-bezier(0.4, 0, 1, 1)' // Leaving 4 | -------------------------------------------------------------------------------- /packages/vuetify/src/util/globals.ts: -------------------------------------------------------------------------------- 1 | export const IN_BROWSER = typeof window !== 'undefined' 2 | export const SUPPORTS_INTERSECTION = IN_BROWSER && 'IntersectionObserver' in window 3 | export const SUPPORTS_TOUCH = IN_BROWSER && ('ontouchstart' in window || window.navigator.maxTouchPoints > 0) 4 | export const SUPPORTS_EYE_DROPPER = IN_BROWSER && 'EyeDropper' in window 5 | -------------------------------------------------------------------------------- /packages/vuetify/src/util/isFixedPosition.ts: -------------------------------------------------------------------------------- 1 | export function isFixedPosition (el?: HTMLElement) { 2 | while (el) { 3 | if (window.getComputedStyle(el).position === 'fixed') { 4 | return true 5 | } 6 | el = el.offsetParent as HTMLElement 7 | } 8 | return false 9 | } 10 | -------------------------------------------------------------------------------- /packages/vuetify/src/util/useRender.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { getCurrentInstance } from './getCurrentInstance' 3 | 4 | // Types 5 | import type { VNode } from 'vue' 6 | 7 | export function useRender (render: () => VNode): void { 8 | const vm = getCurrentInstance('useRender') as any 9 | vm.render = render 10 | } 11 | -------------------------------------------------------------------------------- /packages/vuetify/test/contextStub.ts: -------------------------------------------------------------------------------- 1 | // @vitest/browser/context stub for unit tests to suppress warning 2 | export const page = null 3 | export const server = null 4 | export const userEvent = null 5 | export const cdp = null 6 | export const commands = null 7 | -------------------------------------------------------------------------------- /packages/vuetify/test/setup/percy.d.ts: -------------------------------------------------------------------------------- 1 | declare module '@percy/sdk-utils' { 2 | const utils: { 3 | logger: any 4 | fetchPercyDOM: () => Promise 5 | isPercyEnabled: () => Promise 6 | postSnapshot: (...args: any[]) => Promise 7 | } 8 | export default utils 9 | 10 | export interface PercyOptions { 11 | // 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /packages/vuetify/test/setup/unit-setup.ts: -------------------------------------------------------------------------------- 1 | import { afterEach } from 'vitest' 2 | import { cleanup } from '@testing-library/vue' 3 | 4 | afterEach(() => { 5 | cleanup() 6 | }) 7 | -------------------------------------------------------------------------------- /packages/vuetify/test/templates/CenteredGrid.tsx: -------------------------------------------------------------------------------- 1 | import { FunctionalComponent } from 'vue' 2 | 3 | export const CenteredGrid: FunctionalComponent<{ width?: string }> = (props, { slots, attrs }) => { 4 | const width = props.width || 'auto' 5 | return ( 6 |
10 | { slots.default?.() } 11 |
12 | ) 13 | } 14 | -------------------------------------------------------------------------------- /packages/vuetify/test/templates/index.ts: -------------------------------------------------------------------------------- 1 | export * from './CenteredGrid' 2 | export * from './generateStories' 3 | export * from './Application' 4 | export * from './gridOn' 5 | -------------------------------------------------------------------------------- /packages/vuetify/tsconfig.checks.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.dev.json", 3 | "compilerOptions": { 4 | "skipLibCheck": true 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /packages/vuetify/tsconfig.dist.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "exclude": ["dev", "**/*.spec.*", "test"], 4 | "compilerOptions": { 5 | "outDir": "./lib", 6 | "emitDeclarationOnly": true, 7 | "plugins": [ 8 | { "transform": "typescript-transform-paths", "afterDeclarations": true }, 9 | { "transform": "./build/remove-dts-styles.cts", "afterDeclarations": true }, 10 | ], 11 | }, 12 | } 13 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - 'packages/*' 3 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": ["github>vuetifyjs/renovate-config"] 3 | } 4 | -------------------------------------------------------------------------------- /scripts/deploy.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | npm config set //registry.npmjs.org/:_authToken ${NPM_API_KEY:?} 4 | npm whoami 5 | pnpm lerna publish from-git --dist-tag $(node ./scripts/parse-npm-tag.js ${RELEASE_TAG:?}) --yes 6 | -------------------------------------------------------------------------------- /scripts/dev.js: -------------------------------------------------------------------------------- 1 | import { spawn } from 'cross-spawn' 2 | 3 | let target = process.argv[2] 4 | const alias = { 5 | docs: 'vuetifyjs.com', 6 | } 7 | target = alias[target] || target 8 | 9 | if (!target) { 10 | spawn('pnpm', ['lerna', 'run', 'dev', '--scope', 'vuetify', '--stream'], { stdio: 'inherit' }) 11 | } else { 12 | spawn('pnpm', ['lerna', 'run', 'dev', '--scope', target, '--stream'], { stdio: 'inherit' }) 13 | } 14 | -------------------------------------------------------------------------------- /scripts/prepare-commit-message.js: -------------------------------------------------------------------------------- 1 | import fs from 'node:fs' 2 | 3 | const [messageFile, commitType] = process.argv.slice(2) 4 | 5 | if (commitType == null) { 6 | const currentMessage = fs.readFileSync(messageFile) 7 | const newMessage = fs.readFileSync('.github/.git_commit_msg.txt') 8 | fs.writeFileSync(messageFile, newMessage) 9 | fs.appendFileSync(messageFile, currentMessage) 10 | } 11 | -------------------------------------------------------------------------------- /scripts/rules/no-components-index.js: -------------------------------------------------------------------------------- 1 | export default { 2 | create (context) { 3 | return { 4 | ImportDeclaration (node) { 5 | if (node.source.value === '@/components') { 6 | context.report(node.source, 'Do not import from "@/components"') 7 | } 8 | }, 9 | } 10 | }, 11 | } 12 | -------------------------------------------------------------------------------- /templates/cypress-test.tsx: -------------------------------------------------------------------------------- 1 | /// 2 | 3 | import { NAME } from '..' 4 | import { generate } from '@/../cypress/templates' 5 | 6 | const props = {} 7 | 8 | const stories = { 9 | Default: , 10 | } 11 | 12 | // Tests 13 | describe('NAME', () => { 14 | generate({ stories, props, component: NAME }) 15 | }) 16 | -------------------------------------------------------------------------------- /templates/jest-test.ts: -------------------------------------------------------------------------------- 1 | // Utilities 2 | import { mount } from '@vue/test-utils' 3 | import { describe, expect, it } from '@jest/globals' 4 | 5 | describe('NAME', () => { 6 | it('', () => { 7 | expect().toBe() 8 | }) 9 | }) 10 | -------------------------------------------------------------------------------- /templates/page.md: -------------------------------------------------------------------------------- 1 | --- 2 | nav: TITLE 3 | meta: 4 | title: TITLE 5 | description: #### 6 | keywords: ####, #### 7 | related: 8 | - #### 9 | - #### 10 | - #### 11 | --- 12 | 13 | # TITLE 14 | -------------------------------------------------------------------------------- /tsconfig.eslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./tsconfig.json", 3 | "include": [ 4 | "**/*.ts", 5 | "**/*.tsx", 6 | "**/*.js", 7 | "**/.*.ts", 8 | "**/.*.js", 9 | "**/*.vue", 10 | "**/*.json" 11 | ] 12 | } 13 | --------------------------------------------------------------------------------