├── .dockerignore
├── .editorconfig
├── .eslintrc.js
├── .gitattributes
├── .github
├── .git_commit_msg.txt
├── CONTRIBUTING.md
├── FUNDING.yml
├── ISSUE_TEMPLATE
│ └── config.yml
├── PULL_REQUEST_TEMPLATE.md
├── actions
│ ├── download-artifact
│ │ └── action.yml
│ ├── download-locales
│ │ └── action.yml
│ ├── nightly-release
│ │ └── action.yml
│ ├── upload-artifact
│ │ └── action.yml
│ └── yarn-install
│ │ └── 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
│ └── triage.yml
├── .gitignore
├── .vercelignore
├── .yarn
└── releases
│ └── yarn-1.19.0.cjs
├── .yarnrc
├── CODE_OF_CONDUCT.md
├── LICENSE.md
├── README.md
├── SECURITY.md
├── crowdin.yml
├── eslint-local-rules.js
├── jest.config.js
├── 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
│ │ │ │ ├── Select.json
│ │ │ │ ├── SelectionControlGroup.json
│ │ │ │ ├── Slider.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
│ │ │ │ ├── VCalendarDaily.json
│ │ │ │ ├── VCalendarMonthly.json
│ │ │ │ ├── VCalendarWeekly.json
│ │ │ │ ├── VCard.json
│ │ │ │ ├── VCarousel.json
│ │ │ │ ├── VCheckbox.json
│ │ │ │ ├── VCheckboxBtn.json
│ │ │ │ ├── VChip.json
│ │ │ │ ├── VChipGroup.json
│ │ │ │ ├── VCol.json
│ │ │ │ ├── VColorPicker.json
│ │ │ │ ├── VCombobox.json
│ │ │ │ ├── VContainer.json
│ │ │ │ ├── VCounter.json
│ │ │ │ ├── VDataFooter.json
│ │ │ │ ├── VDataIterator.json
│ │ │ │ ├── VDataTable.json
│ │ │ │ ├── VDataTableFooter.json
│ │ │ │ ├── VDataTableHeader.json
│ │ │ │ ├── VDataTableHeaders.json
│ │ │ │ ├── VDataTableRow.json
│ │ │ │ ├── VDataTableRows.json
│ │ │ │ ├── VDataTableServer.json
│ │ │ │ ├── VDataTableVirtual.json
│ │ │ │ ├── VDatePicker.json
│ │ │ │ ├── VDefaultsProvider.json
│ │ │ │ ├── VDialog.json
│ │ │ │ ├── VDialogTransition.json
│ │ │ │ ├── VDivider.json
│ │ │ │ ├── VExpansionPanel.json
│ │ │ │ ├── VExpansionPanelTitle.json
│ │ │ │ ├── VExpansionPanels.json
│ │ │ │ ├── VField.json
│ │ │ │ ├── VFieldLabel.json
│ │ │ │ ├── VFileInput.json
│ │ │ │ ├── VFooter.json
│ │ │ │ ├── VForm.json
│ │ │ │ ├── VHover.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
│ │ │ │ ├── VOtpInput.json
│ │ │ │ ├── VOverflowBtn.json
│ │ │ │ ├── VOverlay-activator.json
│ │ │ │ ├── VOverlay-location-strategies.json
│ │ │ │ ├── VOverlay-scroll-strategies.json
│ │ │ │ ├── VOverlay.json
│ │ │ │ ├── VPagination.json
│ │ │ │ ├── VParallax.json
│ │ │ │ ├── VProgressCircular.json
│ │ │ │ ├── VProgressLinear.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
│ │ │ │ ├── VSparkline.json
│ │ │ │ ├── VSpeedDial.json
│ │ │ │ ├── VStepper.json
│ │ │ │ ├── VStepperActions.json
│ │ │ │ ├── VStepperHeader.json
│ │ │ │ ├── VStepperItem.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
│ │ │ │ ├── VTimeline.json
│ │ │ │ ├── VTimelineItem.json
│ │ │ │ ├── VToolbar.json
│ │ │ │ ├── VTooltip.json
│ │ │ │ ├── VTreeview.json
│ │ │ │ ├── VTreeviewNode.json
│ │ │ │ ├── VVirtualScroll.json
│ │ │ │ ├── VWindow.json
│ │ │ │ ├── VWindowItem.json
│ │ │ │ ├── border.json
│ │ │ │ ├── delay.json
│ │ │ │ ├── dimension.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
│ │ │ │ ├── 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-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.js
│ ├── .gitignore
│ ├── .markdownlintrc
│ ├── build
│ │ ├── api-plugin.ts
│ │ ├── examples-plugin.ts
│ │ ├── markdown-it.ts
│ │ └── sitemap.js
│ ├── index.html
│ ├── jest-runner-eslint.config.js
│ ├── jest.config.js
│ ├── 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
│ │ │ │ ├── EventsTable.vue
│ │ │ │ ├── ExposedTable.vue
│ │ │ │ ├── Inline.vue
│ │ │ │ ├── Links.vue
│ │ │ │ ├── NameCell.vue
│ │ │ │ ├── PrismCell.vue
│ │ │ │ ├── PropsTable.vue
│ │ │ │ ├── SassTable.vue
│ │ │ │ ├── Search.vue
│ │ │ │ ├── Section.vue
│ │ │ │ ├── SlotsTable.vue
│ │ │ │ └── utils.ts
│ │ │ ├── app
│ │ │ │ ├── BackToTop.vue
│ │ │ │ ├── Banner.vue
│ │ │ │ ├── Btn.vue
│ │ │ │ ├── Caption.vue
│ │ │ │ ├── Divider.vue
│ │ │ │ ├── Figure.vue
│ │ │ │ ├── Heading.vue
│ │ │ │ ├── Headline.vue
│ │ │ │ ├── Link.vue
│ │ │ │ ├── Markdown.vue
│ │ │ │ ├── Markup.vue
│ │ │ │ ├── Sheet.vue
│ │ │ │ ├── SnackbarQueue.vue
│ │ │ │ ├── Table.vue
│ │ │ │ ├── TextField.vue
│ │ │ │ ├── Title.vue
│ │ │ │ ├── Toc.vue
│ │ │ │ ├── TooltipBtn.vue
│ │ │ │ ├── V2Banner.vue
│ │ │ │ ├── VerticalDivider.vue
│ │ │ │ ├── bar
│ │ │ │ │ ├── AuthDialog.vue
│ │ │ │ │ ├── Bar.vue
│ │ │ │ │ ├── EcosystemMenu.vue
│ │ │ │ │ ├── EnterpriseLink.vue
│ │ │ │ │ ├── JobsLink.vue
│ │ │ │ │ ├── LanguageMenu.vue
│ │ │ │ │ ├── LearnMenu.vue
│ │ │ │ │ ├── Logo.vue
│ │ │ │ │ ├── NotificationsMenu.vue
│ │ │ │ │ ├── PlaygroundLink.vue
│ │ │ │ │ ├── SettingsToggle.vue
│ │ │ │ │ ├── SponsorLink.vue
│ │ │ │ │ ├── StoreLink.vue
│ │ │ │ │ ├── SupportMenu.vue
│ │ │ │ │ ├── TeamLink.vue
│ │ │ │ │ └── ThemeToggle.vue
│ │ │ │ ├── drawer
│ │ │ │ │ ├── Append.vue
│ │ │ │ │ ├── Drawer.vue
│ │ │ │ │ └── DrawerToggleRail.vue
│ │ │ │ ├── list
│ │ │ │ │ ├── LinkListItem.vue
│ │ │ │ │ └── List.vue
│ │ │ │ ├── menu
│ │ │ │ │ └── Menu.vue
│ │ │ │ ├── search
│ │ │ │ │ ├── Search.vue
│ │ │ │ │ ├── SearchRecent.vue
│ │ │ │ │ └── SearchResults.vue
│ │ │ │ └── settings
│ │ │ │ │ ├── AdvancedOptions.vue
│ │ │ │ │ ├── Append.vue
│ │ │ │ │ ├── DeveloperMode.vue
│ │ │ │ │ ├── DocumentationBuild.vue
│ │ │ │ │ ├── Drawer.vue
│ │ │ │ │ ├── LatestCommit.vue
│ │ │ │ │ ├── LatestRelease.vue
│ │ │ │ │ ├── Options.vue
│ │ │ │ │ ├── PerksOptions.vue
│ │ │ │ │ ├── SettingsHeader.vue
│ │ │ │ │ └── options
│ │ │ │ │ ├── AdOption.vue
│ │ │ │ │ ├── ApiOption.vue
│ │ │ │ │ ├── AvatarOption.vue
│ │ │ │ │ ├── BannerOption.vue
│ │ │ │ │ ├── CodeOption.vue
│ │ │ │ │ ├── NotificationsOption.vue
│ │ │ │ │ ├── QuickbarOption.vue
│ │ │ │ │ ├── RailDrawerOption.vue
│ │ │ │ │ ├── SlashSearchOption.vue
│ │ │ │ │ ├── SyncOption.vue
│ │ │ │ │ └── ThemeOption.vue
│ │ │ ├── components
│ │ │ │ └── ListItem.vue
│ │ │ ├── doc
│ │ │ │ ├── Contribute.vue
│ │ │ │ ├── Explorer.vue
│ │ │ │ ├── IconList.vue
│ │ │ │ ├── IconTable.vue
│ │ │ │ ├── MadeWithVueAttribution.vue
│ │ │ │ ├── MadeWithVuetify.vue
│ │ │ │ ├── MadeWithVuetifyLink.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
│ │ │ │ ├── Features.vue
│ │ │ │ ├── Footer.vue
│ │ │ │ ├── Logo.vue
│ │ │ │ ├── SpecialSponsor.vue
│ │ │ │ └── Sponsors.vue
│ │ │ ├── icons
│ │ │ │ └── ChevronDown.vue
│ │ │ ├── introduction
│ │ │ │ ├── Comparison.vue
│ │ │ │ ├── DirectSupport.vue
│ │ │ │ ├── DiscordDeck.vue
│ │ │ │ ├── EnterpriseDeck.vue
│ │ │ │ └── EnterpriseForm.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
│ │ │ │ ├── DiscordLogin.vue
│ │ │ │ ├── GithubLogin.vue
│ │ │ │ ├── OneSubCard.vue
│ │ │ │ ├── UserBadges.vue
│ │ │ │ ├── UserProfile.vue
│ │ │ │ ├── UserTabs.vue
│ │ │ │ ├── account
│ │ │ │ ├── ConnectedAccounts.vue
│ │ │ │ └── OneSubscription.vue
│ │ │ │ └── badges
│ │ │ │ ├── UserAdminBadge.vue
│ │ │ │ ├── UserOneBadge.vue
│ │ │ │ └── UserSponsorBadge.vue
│ │ ├── composables
│ │ │ ├── ad.ts
│ │ │ ├── cosmic.ts
│ │ │ └── playground.ts
│ │ ├── data
│ │ │ ├── 301.json
│ │ │ ├── metadata.json
│ │ │ ├── modified.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
│ │ │ │ └── theme.vue
│ │ │ ├── blueprints
│ │ │ │ ├── md1.vue
│ │ │ │ ├── md2.vue
│ │ │ │ └── md3.vue
│ │ │ ├── border-radius
│ │ │ │ ├── misc-pill-and-circle.vue
│ │ │ │ ├── misc-removing-border-radius.vue
│ │ │ │ ├── misc-rounding-by-corner.vue
│ │ │ │ ├── misc-rounding-by-side.vue
│ │ │ │ └── usage.vue
│ │ │ ├── color
│ │ │ │ ├── classes.vue
│ │ │ │ └── text-classes.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
│ │ │ ├── overflow
│ │ │ │ ├── overflow-x.vue
│ │ │ │ └── overflow.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.vue
│ │ │ │ ├── prop-closable.vue
│ │ │ │ ├── prop-colored-border.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
│ │ │ │ ├── prop-large.vue
│ │ │ │ ├── slot-icon-dividers.vue
│ │ │ │ ├── slot-prepend.vue
│ │ │ │ ├── slot-title.vue
│ │ │ │ └── usage.vue
│ │ │ ├── v-btn-fab
│ │ │ │ ├── misc-display-animation.vue
│ │ │ │ ├── misc-lateral-screens.vue
│ │ │ │ ├── misc-small.vue
│ │ │ │ ├── misc-speed-dial.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-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-category.vue
│ │ │ │ ├── prop-type-day.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-grids.vue
│ │ │ │ ├── misc-horizontal-cards.vue
│ │ │ │ ├── misc-information-card.vue
│ │ │ │ ├── misc-intermediate.vue
│ │ │ │ ├── misc-media-with-text.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-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-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-data-iterator
│ │ │ │ ├── misc-filter.vue
│ │ │ │ ├── slot-default.vue
│ │ │ │ ├── slot-header-and-footer.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-server-side-paginate-and-sort.vue
│ │ │ │ ├── prop-custom-filter.vue
│ │ │ │ ├── prop-dense.vue
│ │ │ │ ├── prop-filterable.vue
│ │ │ │ ├── prop-footer-props.vue
│ │ │ │ ├── prop-grouping.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-key.vue
│ │ │ │ ├── slot-item.vue
│ │ │ │ ├── slot-loading.vue
│ │ │ │ ├── slot-main.vue
│ │ │ │ ├── slot-simple-checkbox.vue
│ │ │ │ ├── usage.vue
│ │ │ │ ├── virtual.vue
│ │ │ │ └── virtualized.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-form.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
│ │ │ │ └── usage.vue
│ │ │ ├── v-divider
│ │ │ │ ├── misc-portrait-view.vue
│ │ │ │ ├── misc-subheaders.vue
│ │ │ │ ├── prop-inset.vue
│ │ │ │ ├── prop-vertical-inset.vue
│ │ │ │ ├── prop-vertical.vue
│ │ │ │ └── usage.vue
│ │ │ ├── v-expansion-panels
│ │ │ │ ├── misc-advanced.vue
│ │ │ │ ├── misc-custom-icons.vue
│ │ │ │ ├── prop-disabled.vue
│ │ │ │ ├── prop-focusable.vue
│ │ │ │ ├── prop-model.vue
│ │ │ │ ├── prop-readonly.vue
│ │ │ │ ├── prop-variant.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-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
│ │ │ │ ├── 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
│ │ │ │ ├── prop-success.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-and-item-groups.vue
│ │ │ │ ├── misc-action-stack.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
│ │ │ │ ├── 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-mini-variant.vue
│ │ │ │ ├── prop-permanent-and-floating.vue
│ │ │ │ ├── prop-right.vue
│ │ │ │ ├── prop-temporary.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
│ │ │ │ └── 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-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-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-inverse-label.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
│ │ │ │ ├── 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-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
│ │ │ │ └── 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-no-title.vue
│ │ │ │ ├── prop-range.vue
│ │ │ │ ├── prop-readonly.vue
│ │ │ │ ├── prop-scrollable.vue
│ │ │ │ ├── prop-use-seconds.vue
│ │ │ │ ├── prop-width.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
│ │ │ │ ├── misc-variations.vue
│ │ │ │ ├── prop-background.vue
│ │ │ │ ├── prop-collapse.vue
│ │ │ │ ├── prop-dense.vue
│ │ │ │ ├── prop-extended.vue
│ │ │ │ ├── prop-extension-height.vue
│ │ │ │ ├── prop-floating-with-search.vue
│ │ │ │ ├── prop-light-and-dark.vue
│ │ │ │ ├── prop-prominent.vue
│ │ │ │ └── usage.vue
│ │ │ ├── v-tooltip
│ │ │ │ ├── prop-color.vue
│ │ │ │ ├── prop-location.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-hoverable.vue
│ │ │ │ ├── prop-item-disabled.vue
│ │ │ │ ├── prop-load-children.vue
│ │ │ │ ├── prop-open-all.vue
│ │ │ │ ├── prop-rounded.vue
│ │ │ │ ├── prop-selectable.vue
│ │ │ │ ├── prop-selected-color.vue
│ │ │ │ ├── prop-selection-type.vue
│ │ │ │ ├── prop-shaped.vue
│ │ │ │ ├── slot-append-and-label.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
│ │ │ ├── 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
│ │ │ │ ├── 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-pickers.md
│ │ │ │ ├── combobox.md
│ │ │ │ ├── data-iterators.md
│ │ │ │ ├── data-tables
│ │ │ │ │ ├── basics.md
│ │ │ │ │ ├── data-and-display.md
│ │ │ │ │ ├── introduction.md
│ │ │ │ │ ├── server-side-tables.md
│ │ │ │ │ └── virtual-tables.md
│ │ │ │ ├── date-pickers-month.md
│ │ │ │ ├── date-pickers.md
│ │ │ │ ├── defaults-providers.md
│ │ │ │ ├── dialogs.md
│ │ │ │ ├── dividers.md
│ │ │ │ ├── expansion-panels.md
│ │ │ │ ├── explorer
│ │ │ │ │ └── [...name].md
│ │ │ │ ├── file-inputs.md
│ │ │ │ ├── floating-action-buttons.md
│ │ │ │ ├── footers.md
│ │ │ │ ├── forms.md
│ │ │ │ ├── grids.md
│ │ │ │ ├── hover.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
│ │ │ │ ├── otp-input.md
│ │ │ │ ├── overflow-btns.md
│ │ │ │ ├── overlays.md
│ │ │ │ ├── paginations.md
│ │ │ │ ├── parallax.md
│ │ │ │ ├── progress-circular.md
│ │ │ │ ├── progress-linear.md
│ │ │ │ ├── radio-buttons.md
│ │ │ │ ├── range-sliders.md
│ │ │ │ ├── ratings.md
│ │ │ │ ├── selects.md
│ │ │ │ ├── sheets.md
│ │ │ │ ├── skeleton-loaders.md
│ │ │ │ ├── slide-groups.md
│ │ │ │ ├── sliders.md
│ │ │ │ ├── snackbars.md
│ │ │ │ ├── sparklines.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
│ │ │ │ ├── virtual-scroller.md
│ │ │ │ └── windows.md
│ │ │ │ ├── directives
│ │ │ │ ├── click-outside.md
│ │ │ │ ├── intersect.md
│ │ │ │ ├── mutate.md
│ │ │ │ ├── resize.md
│ │ │ │ ├── ripple.md
│ │ │ │ ├── scroll.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
│ │ │ │ ├── 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
│ │ │ │ ├── colors.md
│ │ │ │ ├── content.md
│ │ │ │ ├── css-reset.md
│ │ │ │ ├── display.md
│ │ │ │ ├── elevation.md
│ │ │ │ ├── flex.md
│ │ │ │ ├── float.md
│ │ │ │ ├── overflow.md
│ │ │ │ ├── sizing.md
│ │ │ │ ├── spacing.md
│ │ │ │ ├── text-and-typography.md
│ │ │ │ └── transitions.md
│ │ │ │ ├── user
│ │ │ │ ├── dashboard.md
│ │ │ │ ├── options.md
│ │ │ │ └── subscriptions.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
│ │ │ ├── gtag.ts
│ │ │ ├── i18n.ts
│ │ │ ├── icons.ts
│ │ │ ├── octokit.ts
│ │ │ ├── one.ts
│ │ │ ├── pinia.ts
│ │ │ ├── pwa.ts
│ │ │ └── vuetify.ts
│ │ ├── service-worker.js
│ │ ├── shims.d.ts
│ │ ├── store
│ │ │ ├── ads.ts
│ │ │ ├── app.ts
│ │ │ ├── banners.ts
│ │ │ ├── commits.ts
│ │ │ ├── jobs.ts
│ │ │ ├── locale.ts
│ │ │ ├── made-with-vuetify.ts
│ │ │ ├── promotions.ts
│ │ │ ├── releases.ts
│ │ │ ├── shopify.ts
│ │ │ ├── sponsors.ts
│ │ │ ├── spot.ts
│ │ │ └── team.ts
│ │ ├── util
│ │ │ ├── analytics.ts
│ │ │ ├── globals.ts
│ │ │ ├── helpers.ts
│ │ │ ├── markdown-it-rules.ts
│ │ │ ├── markdown-it.ts
│ │ │ ├── metadata.ts
│ │ │ └── routes.ts
│ │ └── vite-env.d.ts
│ ├── tsconfig.json
│ └── vite.config.mts
└── vuetify
│ ├── .browserslistrc
│ ├── .env.example
│ ├── .eslintignore
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── _settings.scss
│ ├── _styles.scss
│ ├── _tools.scss
│ ├── babel.config.js
│ ├── build
│ ├── babel-plugin-replace-import-extension.js
│ ├── rollup.config.mjs
│ ├── rollup.types.config.mjs
│ └── run-tests.js
│ ├── cypress.config.ts
│ ├── cypress
│ ├── fixtures
│ │ ├── example.json
│ │ └── text.txt
│ ├── support
│ │ ├── component-index.html
│ │ ├── index.ts
│ │ ├── mount.ts
│ │ └── selector.ts
│ └── templates
│ │ ├── Application.tsx
│ │ ├── CenteredGrid.tsx
│ │ ├── generateStories.tsx
│ │ ├── gridOn.tsx
│ │ └── index.ts
│ ├── dev
│ ├── App.vue
│ ├── Playground.datepicker.vue
│ ├── Playground.template.vue
│ ├── favicon.png
│ ├── index.html
│ ├── index.js
│ ├── router.js
│ ├── vuetify.js
│ └── vuetify
│ │ ├── date.js
│ │ ├── defaults.js
│ │ ├── icons.js
│ │ └── locale.js
│ ├── jest.config.js
│ ├── package.json
│ ├── playgrounds
│ ├── Playground.datatable.vue
│ ├── Playground.infinite.vue
│ ├── Playground.items.vue
│ ├── Playground.list.vue
│ ├── Playground.nested.vue
│ └── Playground.slider.vue
│ ├── postcss.config.js
│ ├── src
│ ├── __tests__
│ │ └── framework.spec.ts
│ ├── blueprints
│ │ ├── index.ts
│ │ ├── md1.ts
│ │ ├── md2.ts
│ │ └── md3.ts
│ ├── components
│ │ ├── VAlert
│ │ │ ├── VAlert.sass
│ │ │ ├── VAlert.tsx
│ │ │ ├── VAlertTitle.ts
│ │ │ ├── __tests__
│ │ │ │ └── VAlert.spec.cy.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.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VAutocomplete
│ │ │ ├── VAutocomplete.sass
│ │ │ ├── VAutocomplete.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VAutocomplete.spec.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VAvatar
│ │ │ ├── VAvatar.sass
│ │ │ ├── VAvatar.tsx
│ │ │ ├── _mixins.scss
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VBadge
│ │ │ ├── VBadge.sass
│ │ │ ├── VBadge.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VBadge.spec.cy.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.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VBottomSheet
│ │ │ ├── VBottomSheet.sass
│ │ │ ├── VBottomSheet.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VBottomSheet.spec.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VBreadcrumbs
│ │ │ ├── VBreadcrumbs.sass
│ │ │ ├── VBreadcrumbs.tsx
│ │ │ ├── VBreadcrumbsDivider.tsx
│ │ │ ├── VBreadcrumbsItem.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VBreadcrumbs.spec.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VBtn
│ │ │ ├── VBtn.sass
│ │ │ ├── VBtn.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VBtn.spec.cy.tsx
│ │ │ ├── _mixins.scss
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VBtnGroup
│ │ │ ├── VBtnGroup.sass
│ │ │ ├── VBtnGroup.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VBtnGroup.spec.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VBtnToggle
│ │ │ ├── VBtnToggle.sass
│ │ │ ├── VBtnToggle.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VCalendar
│ │ │ ├── VCalendar.ts
│ │ │ ├── VCalendarCategory.sass
│ │ │ ├── VCalendarCategory.ts
│ │ │ ├── VCalendarDaily.sass
│ │ │ ├── VCalendarDaily.ts
│ │ │ ├── VCalendarMonthly.ts
│ │ │ ├── VCalendarWeekly.sass
│ │ │ ├── VCalendarWeekly.ts
│ │ │ ├── __tests__
│ │ │ │ ├── VCalendar.spec.ts
│ │ │ │ ├── VCalendarCategory.spec.ts
│ │ │ │ ├── VCalendarDaily.spec.ts
│ │ │ │ └── __snapshots__
│ │ │ │ │ ├── VCalendar.spec.ts.snap
│ │ │ │ │ └── VCalendarDaily.spec.ts.snap
│ │ │ ├── _variables.scss
│ │ │ ├── index.ts
│ │ │ ├── mixins
│ │ │ │ ├── __tests__
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ ├── calendar-base.spec.ts.snap
│ │ │ │ │ │ ├── calendar-with-events.spec.ts.snap
│ │ │ │ │ │ ├── calendar-with-intervals.spec.ts.snap
│ │ │ │ │ │ └── times.spec.ts.snap
│ │ │ │ │ ├── calendar-base.spec.ts
│ │ │ │ │ ├── calendar-with-events.spec.ts
│ │ │ │ │ ├── calendar-with-intervals.spec.ts
│ │ │ │ │ ├── mouse.spec.ts
│ │ │ │ │ └── times.spec.ts
│ │ │ │ ├── calendar-base.ts
│ │ │ │ ├── calendar-with-events.sass
│ │ │ │ ├── calendar-with-events.ts
│ │ │ │ ├── calendar-with-intervals.ts
│ │ │ │ ├── mouse.ts
│ │ │ │ └── times.ts
│ │ │ ├── modes
│ │ │ │ ├── __tests__
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── common.spec.ts.snap
│ │ │ │ │ └── common.spec.ts
│ │ │ │ ├── column.ts
│ │ │ │ ├── common.ts
│ │ │ │ ├── index.ts
│ │ │ │ └── stack.ts
│ │ │ └── util
│ │ │ │ ├── __tests__
│ │ │ │ ├── __snapshots__
│ │ │ │ │ ├── events.spec.ts.snap
│ │ │ │ │ └── timestamp.spec.ts.snap
│ │ │ │ ├── events.spec.ts
│ │ │ │ ├── props.spec.ts
│ │ │ │ └── timestamp.spec.ts
│ │ │ │ ├── events.ts
│ │ │ │ ├── parser.ts
│ │ │ │ ├── props.ts
│ │ │ │ └── timestamp.ts
│ │ ├── VCard
│ │ │ ├── VCard.sass
│ │ │ ├── VCard.tsx
│ │ │ ├── VCardActions.tsx
│ │ │ ├── VCardItem.tsx
│ │ │ ├── VCardSubtitle.ts
│ │ │ ├── VCardText.ts
│ │ │ ├── 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.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VChip
│ │ │ ├── VChip.sass
│ │ │ ├── VChip.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VChip.spec.cy.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.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ ├── index.ts
│ │ │ └── util
│ │ │ │ ├── __tests__
│ │ │ │ └── index.spec.ts
│ │ │ │ └── index.ts
│ │ ├── VCombobox
│ │ │ ├── VCombobox.sass
│ │ │ ├── VCombobox.tsx
│ │ │ ├── __tests__
│ │ │ │ ├── VCombobox-multiple.spec.ts
│ │ │ │ ├── VCombobox.spec.cy.tsx
│ │ │ │ └── VCombobox.spec.ts
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VCounter
│ │ │ ├── VCounter.sass
│ │ │ ├── VCounter.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VDataIterator
│ │ │ ├── VDataIterator.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VDataIterator.spec.cy.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.cy.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
│ │ │ ├── VDatePickerTitle.sass
│ │ │ ├── VDatePickerTitle.ts
│ │ │ ├── VDatePickerYears.sass
│ │ │ ├── VDatePickerYears.tsx
│ │ │ ├── __tests__
│ │ │ │ ├── VDatePicker.date.spec.ts
│ │ │ │ ├── VDatePicker.month.spec.ts
│ │ │ │ ├── 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
│ │ │ │ │ ├── VDatePickerTitle.spec.ts.snap
│ │ │ │ │ └── VDatePickerYears.spec.ts.snap
│ │ │ │ └── utils.spec.ts
│ │ │ ├── _variables.scss
│ │ │ ├── index.ts
│ │ │ ├── util
│ │ │ │ ├── __tests__
│ │ │ │ │ ├── createNativeLocaleFormatter.spec.ts
│ │ │ │ │ ├── monthChange.spec.ts
│ │ │ │ │ ├── pad.spec.ts
│ │ │ │ │ └── sanitizeDateString.spec.ts
│ │ │ │ ├── createNativeLocaleFormatter.ts
│ │ │ │ ├── eventHelpers.ts
│ │ │ │ ├── index.ts
│ │ │ │ ├── isDateAllowed.ts
│ │ │ │ ├── monthChange.ts
│ │ │ │ ├── pad.ts
│ │ │ │ └── sanitizeDateString.ts
│ │ │ └── utils.ts
│ │ ├── VDefaultsProvider
│ │ │ ├── VDefaultsProvider.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VDefaultsProvider.spec.cy.tsx
│ │ │ └── index.ts
│ │ ├── VDialog
│ │ │ ├── VDialog.sass
│ │ │ ├── VDialog.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VDivider
│ │ │ ├── VDivider.sass
│ │ │ ├── VDivider.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
│ │ ├── VField
│ │ │ ├── VField.sass
│ │ │ ├── VField.tsx
│ │ │ ├── VFieldLabel.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VFileInput
│ │ │ ├── VFileInput.sass
│ │ │ ├── VFileInput.tsx
│ │ │ ├── __tests__
│ │ │ │ ├── VFileInput.spec.cy.tsx
│ │ │ │ └── VFileInput.spec.tsx
│ │ │ ├── _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.cy.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.cy.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.ts
│ │ │ ├── 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
│ │ │ ├── __tests__
│ │ │ │ └── VMain.spec.cy.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
│ │ ├── VOtpInput
│ │ │ ├── VOtpInput.sass
│ │ │ ├── VOtpInput.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VOtpInput.spec.cy.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.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ ├── index.ts
│ │ │ └── useScrolling.ts
│ │ ├── VSelectionControl
│ │ │ ├── VSelectionControl.sass
│ │ │ ├── VSelectionControl.tsx
│ │ │ ├── __tests__
│ │ │ │ ├── VSelectionControl.spec.cy.tsx
│ │ │ │ └── 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
│ │ ├── VSparkline
│ │ │ ├── VSparkline.ts
│ │ │ ├── __tests__
│ │ │ │ ├── VSparkline.spec.ts
│ │ │ │ └── __snapshots__
│ │ │ │ │ └── VSparkline.spec.ts.snap
│ │ │ ├── helpers
│ │ │ │ ├── core.ts
│ │ │ │ ├── math.ts
│ │ │ │ └── path.ts
│ │ │ └── index.ts
│ │ ├── VSpeedDial
│ │ │ ├── VSpeedDial.sass
│ │ │ ├── VSpeedDial.ts
│ │ │ ├── __tests__
│ │ │ │ ├── VSpeedDial.spec.ts
│ │ │ │ └── __snapshots__
│ │ │ │ │ └── VSpeedDial.spec.ts.snap
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VStepper
│ │ │ ├── VStepper.sass
│ │ │ ├── VStepper.tsx
│ │ │ ├── VStepperActions.tsx
│ │ │ ├── VStepperHeader.ts
│ │ │ ├── VStepperItem.sass
│ │ │ ├── VStepperItem.tsx
│ │ │ ├── VStepperWindow.tsx
│ │ │ ├── VStepperWindowItem.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VSwitch
│ │ │ ├── VSwitch.sass
│ │ │ ├── VSwitch.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VSwitch.spec.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VSystemBar
│ │ │ ├── VSystemBar.sass
│ │ │ ├── VSystemBar.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VSystemBar.spec.cy.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
│ │ │ ├── __tests__
│ │ │ │ └── VTabs.spec.cy.tsx
│ │ │ ├── _variables.scss
│ │ │ ├── index.ts
│ │ │ └── shared.ts
│ │ ├── VTextField
│ │ │ ├── VTextField.sass
│ │ │ ├── VTextField.tsx
│ │ │ ├── __tests__
│ │ │ │ ├── VTextField.spec.cy.tsx
│ │ │ │ └── VTextField.spec.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VTextarea
│ │ │ ├── VTextarea.sass
│ │ │ ├── VTextarea.tsx
│ │ │ ├── __tests__
│ │ │ │ ├── VTextarea.spec.cy.tsx
│ │ │ │ └── VTextarea.spec.tsx
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── VThemeProvider
│ │ │ ├── VThemeProvider.sass
│ │ │ ├── VThemeProvider.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VThemeProvider.spec.cy.tsx
│ │ │ └── index.ts
│ │ ├── VTimePicker
│ │ │ ├── SelectingTimes.ts
│ │ │ ├── VTimePicker.ts
│ │ │ ├── VTimePickerClock.sass
│ │ │ ├── VTimePickerClock.ts
│ │ │ ├── VTimePickerTitle.sass
│ │ │ ├── VTimePickerTitle.ts
│ │ │ ├── __tests__
│ │ │ │ ├── VTimePicker.spec.ts
│ │ │ │ ├── VTimePickerClock.spec.ts
│ │ │ │ ├── VTimePickerTitle.spec.ts
│ │ │ │ └── __snapshots__
│ │ │ │ │ ├── VTimePicker.spec.ts.snap
│ │ │ │ │ ├── VTimePickerClock.spec.ts.snap
│ │ │ │ │ └── VTimePickerTitle.spec.ts.snap
│ │ │ ├── _variables.scss
│ │ │ └── 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
│ │ ├── VTreeview
│ │ │ ├── VTreeview.sass
│ │ │ ├── VTreeview.ts
│ │ │ ├── VTreeviewNode.ts
│ │ │ ├── __tests__
│ │ │ │ ├── VTreeview.spec.ts
│ │ │ │ ├── VTreeviewNode.spec.ts
│ │ │ │ └── __snapshots__
│ │ │ │ │ ├── VTreeview.spec.ts.snap
│ │ │ │ │ └── VTreeviewNode.spec.ts.snap
│ │ │ ├── _mixins.sass
│ │ │ ├── _variables.scss
│ │ │ ├── index.ts
│ │ │ └── util
│ │ │ │ ├── __tests__
│ │ │ │ └── filterTreeItems.spec.ts
│ │ │ │ └── filterTreeItems.ts
│ │ ├── VValidation
│ │ │ ├── VValidation.tsx
│ │ │ └── index.ts
│ │ ├── VVirtualScroll
│ │ │ ├── VVirtualScroll.sass
│ │ │ ├── VVirtualScroll.tsx
│ │ │ ├── VVirtualScrollItem.tsx
│ │ │ ├── __tests__
│ │ │ │ └── VVirtualScroll.spec.cy.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.cy.tsx
│ │ │ ├── color.spec.ts
│ │ │ ├── defaults.spec.ts
│ │ │ ├── delay.spec.ts
│ │ │ ├── dimensions.spec.ts
│ │ │ ├── display.spec.cy.tsx
│ │ │ ├── display.spec.ts
│ │ │ ├── elevation.spec.ts
│ │ │ ├── filter.spec.ts
│ │ │ ├── forwardRefs.spec.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.ts
│ │ │ ├── rounded.spec.ts
│ │ │ ├── scroll.spec.ts
│ │ │ ├── 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
│ │ ├── defaults.ts
│ │ ├── delay.ts
│ │ ├── density.ts
│ │ ├── dimensions.ts
│ │ ├── directiveComponent.ts
│ │ ├── display.ts
│ │ ├── elevation.ts
│ │ ├── filter.ts
│ │ ├── focus.ts
│ │ ├── form.ts
│ │ ├── forwardRefs.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
│ │ │ ├── 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.ts
│ │ │ └── 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.ts
│ │ │ └── index.ts
│ │ └── touch
│ │ │ ├── __tests__
│ │ │ └── touch.spec.ts
│ │ │ └── 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
│ │ ├── VConfirmEdit
│ │ │ ├── VConfirmEdit.tsx
│ │ │ ├── __test__
│ │ │ │ └── VConfirmEdit.spec.cy.tsx
│ │ │ └── index.ts
│ │ ├── VPicker
│ │ │ ├── VPicker.sass
│ │ │ ├── VPicker.tsx
│ │ │ ├── VPickerTitle.ts
│ │ │ ├── __tests__
│ │ │ │ ├── VPicker.spec.ts
│ │ │ │ └── __snapshots__
│ │ │ │ │ └── VPicker.spec.ts.snap
│ │ │ ├── _variables.scss
│ │ │ └── index.ts
│ │ ├── allComponents.ts
│ │ ├── components.ts
│ │ ├── entry-bundler.ts
│ │ └── index.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
│ │ ├── 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
│ ├── services
│ │ └── goto
│ │ │ ├── __tests__
│ │ │ ├── easing-patterns.spec.ts
│ │ │ └── goto.spec.ts
│ │ │ ├── easing-patterns.ts
│ │ │ ├── index.ts
│ │ │ └── util.ts
│ ├── shims.d.ts
│ ├── styles
│ │ ├── elements
│ │ │ ├── _blockquote.sass
│ │ │ ├── _global.sass
│ │ │ └── _index.sass
│ │ ├── generic
│ │ │ ├── _animations.scss
│ │ │ ├── _colors.scss
│ │ │ ├── _index.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
│ │ │ ├── _position.sass
│ │ │ ├── _radius.sass
│ │ │ ├── _rounded.sass
│ │ │ ├── _rtl.sass
│ │ │ ├── _sheet.sass
│ │ │ ├── _states.sass
│ │ │ ├── _theme.sass
│ │ │ ├── _typography.sass
│ │ │ ├── _utilities.sass
│ │ │ └── _variant.sass
│ │ └── utilities
│ │ │ ├── _display.sass
│ │ │ ├── _elevation.scss
│ │ │ ├── _index.sass
│ │ │ └── _screenreaders.sass
│ └── util
│ │ ├── __tests__
│ │ ├── colorUtils.spec.ts
│ │ ├── dateTimeUtils.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
│ │ ├── dateTimeUtils.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
│ ├── index.ts
│ └── util
│ │ └── to-have-been-warned.ts
│ ├── tsconfig.checks.json
│ ├── tsconfig.dev.json
│ ├── tsconfig.dist.json
│ ├── tsconfig.json
│ ├── types
│ └── cypress.d.ts
│ └── vite.config.mjs
├── scripts
├── build.js
├── confirm-npm-tag.js
├── converter.js
├── deploy-and-alias.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
│ ├── cypress-types-reference.js
│ ├── jest-global-imports.js
│ ├── 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
└── warn-npm-install.js
├── templates
├── component.tsx
├── cypress-test.tsx
└── jest-test.ts
├── tsconfig.eslint.json
├── tsconfig.json
├── vercel.json
└── yarn.lock
/.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]
4 | patreon: vuetify
5 | open_collective: vuetify
6 | ko_fi: # Replace with a single Ko-fi username
7 | tidelift: npm/vuetify
8 | custom: # Replace with a single custom sponsorship URL
9 |
--------------------------------------------------------------------------------
/.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-latest
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 |
5 | # IDE user config
6 | .vscode/
7 | .idea/
8 | .vs/
9 |
10 | # Logs
11 | yarn-error.log
12 | npm-debug.log
13 | lerna-debug.log
14 |
15 | # Istanbul coverage
16 | coverage/
17 |
18 | # cypress
19 | cypress/screenshots
20 | cypress/videos
21 |
22 | .vercel
23 | .now
24 |
--------------------------------------------------------------------------------
/.vercelignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | /scripts
3 | /packages/vuetify
4 | /packages/api-generator
5 | /packages/docs/src
6 | !/packages/docs/dist
7 |
--------------------------------------------------------------------------------
/.yarnrc:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 | yarn-path ".yarn/releases/yarn-1.19.0.cjs"
6 |
--------------------------------------------------------------------------------
/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": "yarn",
16 | "version": "3.4.8",
17 | "useWorkspaces": true
18 | }
19 |
--------------------------------------------------------------------------------
/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/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 | }
7 |
--------------------------------------------------------------------------------
/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/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/VDataTableHeaders.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "sortAscIcon": "Icon used for ascending sort button.",
4 | "sortDescIcon": "Icon used for descending sort button.",
5 | "sticky": "Sticks the header to the top of the table."
6 | },
7 | "slots": {
8 | "[`column.${string}`]": "Slot for custom rendering of a column."
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VDataTableRow.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "index": "Row index.",
4 | "item": "Data (key, index and column values) of the displayed item."
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VDialogTransition.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/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/VExpansionPanel.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "disabled": "Disables the expansion-panel content.",
4 | "readonly": "Makes the expansion-panel content read only.",
5 | "value": "Controls the opened/closed state of content."
6 | },
7 | "events": {
8 | "change": "Toggles the value of the selected panel.",
9 | "click": "Mouse click event."
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VExpansionPanelTitle.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "collapseIcon": "Icon used when the expansion panel is in a collapsable state.",
4 | "expandIcon": "Icon used when the expansion panel is in a expandable state.",
5 | "hideActions": "Hide the expand icon in the content title."
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/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/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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VLocaleProvider.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VMain.json:
--------------------------------------------------------------------------------
1 | {}
2 |
--------------------------------------------------------------------------------
/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": "A single value that offsets content away from the target based upon what side it is on."
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/VParallax.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "alt": "Attaches an alt property to the parallax image.",
4 | "src": "The image to parallax.",
5 | "srcset": "A set of alternate images to use based on device size. [Read more...](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img#attr-srcset)."
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/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/VResponsive.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "aspectRatio": "Sets a base aspect ratio, calculated as width/height. This will only set a **minimum** height, the component can still grow if it has a lot of content.",
4 | "contentClass": "Apply a custom class to the internal content element.",
5 | "inline": "Display as an inline element instead of a block, also disables flex-grow."
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VSelectionControl.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 | "slots": {
6 | "input": "The slot used for the default input element."
7 | },
8 | "exposed": {
9 | "isFocused": "Will return true if the component is currently focused.",
10 | "input": "Reference to the root input element."
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/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/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/VStepperActions.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "nextText": "The text used for the Next button.",
4 | "prevText": "The text used for the Prev button."
5 | },
6 | "events": {
7 | "click:next": "Event emitted when clicking the next button.",
8 | "click:prev": "Event emitted when clicking the prev button."
9 | },
10 | "slots": {
11 | "next": "Slot for customizing the next step functionailty",
12 | "prev": "Slot for customizing the prev step functionality"
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VStepperHeader.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {}
3 | }
4 |
--------------------------------------------------------------------------------
/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 | },
5 | "slots": {
6 | "default": "All child components will have their theme overridden. Must have exactly one root element."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/VVirtualScroll.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "height": "Height of the component as a css value/",
4 | "itemKey": "Required when using **dynamic-item-height** together with object items. Should point to a property with a unique value for each item.",
5 | "items": "The array of items to display.",
6 | "renderless": "Disables default component rendering functionality."
7 | },
8 | "slots": {
9 | "default": "Default slot to render a single item."
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/border.json:
--------------------------------------------------------------------------------
1 | {
2 | "props": {
3 | "border": "Applies border styles to component."
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/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. You can find more information on the [Border Radius page](/styles/border-radius)."
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/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/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/useTheme.json:
--------------------------------------------------------------------------------
1 | {
2 | "exposed": {
3 | "computedThemes": "Object containing all parsed theme definitions.",
4 | "current": "Current theme object.",
5 | "global": "Reference to the global theme instance.",
6 | "isDisabled": "Indicates if theming is disabled.",
7 | "name": "Name of current theme.",
8 | "styles": "**FOR INTERNAL USE ONLY**",
9 | "themeClasses": "**FOR INTERNAL USE ONLY**",
10 | "themes": "Raw theme definitions."
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/v-click-outside.json:
--------------------------------------------------------------------------------
1 | {
2 | "argument": {
3 | "value": "By default takes a function that is invoked when user clicks outside of the element the directive is attached to. It can also be an object, which allows you to provide `closeConditional` and `include` callbacks."
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/v-resize.json:
--------------------------------------------------------------------------------
1 | {
2 | "argument": {
3 | "value": "The provided handler function will be invoked each time the browser window is resized."
4 | },
5 | "modifiers": {
6 | "active": "By default the resize event listener is added to window with the `passive` option. This modifier sets `passive` to **false**.",
7 | "quiet": "By default the provided handler function is invoked once when the directive is attached to the element. This modifier disabled that behavior."
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/packages/api-generator/src/locale/en/v-touch.json:
--------------------------------------------------------------------------------
1 | {
2 | "argument": {
3 | "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)."
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/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 } from '@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 |
--------------------------------------------------------------------------------
/packages/api-generator/src/worker.ts:
--------------------------------------------------------------------------------
1 | import { generateComponentDataFromTypes } from './types'
2 |
3 | const reset = '\x1b[0m'
4 | const red = '\x1b[31m'
5 | const blue = '\x1b[34m'
6 |
7 | export default async (componentName: string) => {
8 | console.log(blue, componentName, reset)
9 |
10 | try {
11 | return await generateComponentDataFromTypes(componentName)
12 | } catch (err: any) {
13 | console.error(red, `${componentName}: ${err}`, err.stack, reset)
14 | return null
15 | }
16 | }
17 |
--------------------------------------------------------------------------------
/packages/api-generator/templates/composables.d.ts:
--------------------------------------------------------------------------------
1 | import type vuetify from '../../vuetify/lib/index.d.mts'
2 |
3 | type IsComposable = T extends `use${Capitalize}` ? T : never;
4 |
5 | type ExtractComposables = T extends object
6 | ? {
7 | [K in keyof T as K extends IsComposable ? K : never]: T[K]
8 | }
9 | : never
10 |
11 | export type Composables = Prettify>
12 |
13 | type Prettify = { [K in keyof T]: T[K] } & {}
14 |
--------------------------------------------------------------------------------
/packages/api-generator/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "compilerOptions": {
4 | "strict": true,
5 | "noUnusedLocals": false,
6 | "module": "ESNext",
7 | "moduleResolution": "bundler",
8 | "noEmitOnError": false,
9 | "resolveJsonModule": true,
10 | "paths": {
11 | "@/*": [
12 | "../vuetify/src/*"
13 | ]
14 | },
15 | },
16 | "include": [
17 | "./src/locale/**/*.json",
18 | ],
19 | }
20 |
--------------------------------------------------------------------------------
/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/.env.example:
--------------------------------------------------------------------------------
1 | # Development
2 | EN_LOCALE_ONLY=true
3 | HOST=localhost
4 | PORT=8095
5 |
6 | # Private authentication API
7 | VITE_API_SERVER_URL=
8 |
9 | # Cosmic.js
10 | VITE_COSMIC_2_BUCKET_SLUG=
11 | VITE_COSMIC_2_BUCKET_READ_KEY=
12 |
13 | VITE_COSMIC_BUCKET_SLUG=
14 | VITE_COSMIC_BUCKET_READ_KEY=
15 |
16 | VITE_COSMIC_BUCKET_SLUG_STORE=
17 | VITE_COSMIC_BUCKET_READ_KEY_STORE=
18 |
19 | # Emailjs
20 | VITE_EMAILJS_SERVICE_ID=
21 | VITE_EMAILJS_TEMPLATE_ID=
22 | VITE_EMAILJS_PUBLIC_KEY=
23 |
--------------------------------------------------------------------------------
/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/jest-runner-eslint.config.js:
--------------------------------------------------------------------------------
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/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/docs/public/favicon.ico
--------------------------------------------------------------------------------
/packages/docs/public/img/icons/android-chrome-192x192.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/docs/public/img/icons/android-chrome-192x192.png
--------------------------------------------------------------------------------
/packages/docs/public/img/icons/android-chrome-512x512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/docs/public/img/icons/android-chrome-512x512.png
--------------------------------------------------------------------------------
/packages/docs/public/img/icons/apple-touch-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/docs/public/img/icons/apple-touch-icon.png
--------------------------------------------------------------------------------
/packages/docs/public/img/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/docs/public/img/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/packages/docs/public/img/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/docs/public/img/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/packages/docs/public/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Disallow:
3 |
--------------------------------------------------------------------------------
/packages/docs/public/search.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | Vuetify
4 | Vuetify documentation
5 | UTF-8
6 | https://vuetifyjs.com/favicon.ico
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/docs/src/assets/logo.png
--------------------------------------------------------------------------------
/packages/docs/src/components/app/Caption.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/components/app/Divider.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/components/app/Sheet.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
10 |
11 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/components/app/Table.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
12 |
17 |
18 |
23 |
--------------------------------------------------------------------------------
/packages/docs/src/components/app/Title.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/components/app/VerticalDivider.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
13 |
--------------------------------------------------------------------------------
/packages/docs/src/components/app/settings/Append.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
19 |
--------------------------------------------------------------------------------
/packages/docs/src/components/doc/MadeWithVueAttribution.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Powered By
4 |
5 |
10 |
11 |
12 |
13 |
17 |
--------------------------------------------------------------------------------
/packages/docs/src/components/doc/Tabs.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
21 |
--------------------------------------------------------------------------------
/packages/docs/src/components/examples/ExampleMissing.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
20 |
21 |
25 |
--------------------------------------------------------------------------------
/packages/docs/src/components/examples/Usage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/components/icons/ChevronDown.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/components/promoted/Discovery.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/components/promoted/Random.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/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 |
2 |
6 |
7 |
8 |
9 | {{ item.raw }}
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/application-layout/app-bar-first.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Main Content
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/application-layout/nav-drawer-first.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | Main Content
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/border-radius/misc-pill-and-circle.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/border-radius/misc-removing-border-radius.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | .rounded-0
5 |
6 |
7 |
8 | .rounded-xl .rounded-be-0
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/color/classes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Lorem ipsum
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/color/text-classes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Lorem ipsum dolor sit amet, inciderint definitionem est ea, explicari prodesset eam id. Mazim doctus vix an. Amet causae probatus nec ex.
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/display/display-block.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | d-block
5 |
6 |
7 | d-block
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/display/display-inline.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | d-inline
5 |
6 |
7 | d-inline
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/display/print.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Screen Only (Hide on print only)
5 |
6 |
7 | Print Only (Hide on screen only)
8 |
9 |
10 | Hide up to large on screen, but always show on print
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/display/visibility.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | hide on screens wider than lg
5 |
6 |
7 | hide on screens smaller than lg
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/elevation/usage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
14 | {{ n }}
15 |
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-align-content-around.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 | Flex item
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-align-content-between.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 | Flex item
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-align-content-center.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 | Flex item
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-align-content-end.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 | Flex item
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-align-content-start.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 | Flex item
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-flex.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | I'm an element in an inline flexbox container!
5 |
6 |
7 |
8 | I'm a single element in an inline flexbox container!
9 |
10 |
11 |
12 | I'm a single element in an inline flexbox container!
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-nowrap.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 | Flex item
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-order.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | First flex item
5 |
6 |
7 |
8 | Second flex item
9 |
10 |
11 |
12 | Third flex item
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-wrap-reverse.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 | Flex item {{ n }}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flex-wrap.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 | Flex item {{ n }}
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flexbox-inline.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | I'm a single element in an inline flexbox container!
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/flex/flexbox.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | I'm a single element in a flexbox container!
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/float/classes.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Float left on all viewport sizes
5 |
6 |
7 |
8 | Float right on all viewport sizes
9 |
10 |
11 |
12 | Don't float on all viewport sizes
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/grid/prop-no-gutters.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | .v-col-12
7 |
8 |
9 |
10 |
11 | .v-col-6
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/grid/usage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
10 |
11 | One of three columns
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/sizing/height.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Sizing / Height example
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/sizing/width.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Sizing / Width example
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/spacing/breakpoints.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | Adjust screen size to see spacing changes
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/spacing/gap.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 | Gapped
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/spacing/horizontal.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | Centered
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/spacing/negative-margin.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
16 | This card has negative top margin applied
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/text-and-typography/text-break.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Random TEXT cApitaLization
5 |
6 |
10 | SUBDERMATOGLYPHIC
11 |
12 |
13 |
14 |
15 |
19 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/text-and-typography/text-no-wrap.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 | This text should overflow the parent.
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/text-and-typography/text-opacity.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | High-emphasis has an opacity of 87% in light theme and 100% in dark.
5 |
6 |
7 | Medium-emphasis text and hint text have opacities of 60% in light theme and 70% in dark.
8 |
9 |
10 | Disabled text has an opacity of 38% in light theme and 50% in dark.
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/text-and-typography/text-transform.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Lowercased text.
5 |
6 |
7 | Uppercased text.
8 |
9 |
10 | capitalized text.
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/text-and-typography/text-truncate.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 | Suspendisse faucibus, nunc et pellentesque egestas, lacus ante convallis tellus.
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/text-and-typography/typography-breakpoints.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Title
5 |
6 | Body text
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-alert/prop-content.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-alert/prop-density.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-alert/prop-type.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-alert/prop-variant.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-avatar/prop-size.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 32
5 |
6 |
7 |
8 | 48
9 |
10 |
11 |
12 | 64
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-avatar/prop-tile.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-avatar/slot-default.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
14 |
15 | CJ
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-banner/slot-actions.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | No Internet connection
9 |
10 |
11 |
12 |
13 | Dismiss
14 |
15 |
16 |
17 | Retry
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/defaults-banner-actions.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 | Banner with one line of text.
7 |
8 |
9 |
10 |
11 | Action
12 |
13 |
14 |
15 | Action
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/defaults-card-actions.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 | Action Button
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/defaults-toolbar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Dashboard
5 |
6 | Resources
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/misc-raised.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 | Normal
7 |
8 | Primary
9 |
10 |
11 | Error
12 |
13 |
14 | Disabled
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/prop-block.vue:
--------------------------------------------------------------------------------
1 |
2 | Block Button
3 |
4 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/prop-density.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Compact Button
6 |
7 |
8 |
9 | Comfortable Button
10 |
11 |
12 |
13 | Default Button
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/prop-plain.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 | Cancel
8 |
9 |
10 |
14 | Delete
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/prop-tile.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 | mdi-pencil
12 |
13 | Edit
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/prop-variant.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | elevated (default)
4 | flat
5 | tonal
6 | outlined
7 | text
8 | plain
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-btn/slot-prepend-append.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
11 | Button
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-card/basics-combine.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 | This is a title
9 |
10 |
11 |
12 | This is content
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-card/prop-disabled.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-card/prop-href.vue:
--------------------------------------------------------------------------------
1 |
2 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-card/prop-image.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-card/prop-link.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-chip/prop-draggable.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Default
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-chip/prop-no-ripple.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Default
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-data-table/prop-loading.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-date-picker-month/prop-multiple.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
16 |
17 |
24 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-date-picker-month/usage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
19 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-date-picker/prop-colors.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-date-picker/prop-elevation.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-date-picker/prop-show-adjacent-months.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-date-picker/prop-width.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-file-input/prop-accept.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-file-input/prop-chips.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-file-input/prop-counter.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-file-input/prop-dense.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-file-input/prop-multiple.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-file-input/prop-prepend-icon.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-file-input/prop-show-size.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-icon/misc-md.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-img/slot-error.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-input/prop-error-count.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 | Input
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-input/prop-error.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | Input
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-input/prop-loading.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-input/prop-success.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 | Input
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-input/slot-append-and-prepend.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | mdi-plus
6 |
7 |
8 |
9 |
10 | mdi-minus
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-otp-input/prop-error.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-otp-input/prop-focus-all.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-otp-input/prop-length.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-otp-input/prop-variant.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-overlay/scroll-block.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | block
5 |
6 |
11 |
12 | Hello!
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-overlay/scroll-close.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Close
5 |
6 |
11 |
12 | Hello!
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-overlay/scroll-none.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | None
5 |
6 |
11 |
12 | Hello!
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-overlay/scroll-reposition.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Reposition
5 |
6 |
11 |
12 | Hello!
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-pagination/prop-disabled.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-pagination/prop-total-visible.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
16 |
17 |
26 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-parallax/misc-content.vue:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 | Vuetify
8 |
9 |
10 | Build your application today!
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-parallax/misc-custom-height.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-parallax/usage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-range-slider/prop-step.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
14 |
15 |
24 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-range-slider/prop-strict.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
11 |
12 |
17 |
18 |
27 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-range-slider/prop-vertical.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
13 |
14 |
23 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-rating/prop-clearable.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
15 |
16 |
23 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-rating/prop-color.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
16 |
17 |
22 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-rating/prop-half-increments.vue:
--------------------------------------------------------------------------------
1 |
2 |
10 |
11 |
12 |
17 |
18 |
25 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-rating/prop-hover.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
15 |
16 |
23 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-rating/prop-icon-label.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
15 |
16 |
21 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-rating/prop-length.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
15 |
16 |
23 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-rating/prop-readonly.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |
15 |
16 |
23 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-ripple/misc-custom-color.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 | Item with "{{ color }}" class
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-ripple/option-center.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 | HTML element with centered ripple
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-ripple/usage.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 | HTML element with v-ripple
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-select/prop-disabled.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
12 |
13 |
20 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-select/prop-menu-props.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
12 |
13 |
20 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-skeleton-loader/prop-boilerplate.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-skeleton-loader/prop-elevation.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-slider/prop-disabled.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-slider/prop-inverse-label.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-slider/prop-readonly.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-slider/prop-step.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
16 |
17 |
26 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-slider/prop-vertical.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
8 |
9 |
14 |
15 |
24 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-stepper/prop-alternate-label.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-switch/prop-custom-values.vue:
--------------------------------------------------------------------------------
1 |
2 |
9 |
10 |
11 |
16 |
17 |
24 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-switch/prop-flat.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
15 |
16 |
25 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-switch/prop-inset.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 |
15 |
16 |
25 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-tabs/misc-pagination.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
13 | Item {{ i }}
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-tabs/prop-fixed-tabs.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 | Option
8 |
9 |
10 | Another Option
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-tabs/prop-icons.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
13 | Item {{ i }}
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-text-field/prop-label.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-text-field/prop-messages.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-text-field/prop-placeholder.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-text-field/slot-label.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | What about an icon here?
8 |
9 |
10 |
11 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-textarea/prop-auto-grow.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-textarea/prop-browser-autocomplete.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-textarea/prop-clearable.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-theme-provider/prop-with-background.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-time-picker/prop-format.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
8 |
9 |
10 |
11 |
12 |
17 |
18 |
27 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-timeline/usage.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | timeline item
4 |
5 | timeline item
6 |
7 | timeline item
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-toolbar/prop-background.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 | Vuetify
11 |
12 |
13 |
14 |
15 | mdi-export
16 |
17 |
18 |
19 |
20 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/v-toolbar/prop-collapse.vue:
--------------------------------------------------------------------------------
1 |
2 |
8 |
9 |
10 | mdi-magnify
11 |
12 |
13 |
14 | mdi-dots-vertical
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/why-vuetify/card-components.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi, ratione debitis quis est labore voluptatibus! Eaque cupiditate minima, at placeat totam, magni doloremque veniam neque porro libero rerum unde voluptatem!
5 |
6 |
7 | Title
8 |
9 |
10 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/why-vuetify/card-props.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
--------------------------------------------------------------------------------
/packages/docs/src/examples/why-vuetify/card-slots.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Title
5 |
6 |
7 |
8 | Lorem ipsum dolor sit amet consectetur adipisicing elit. Commodi, ratione debitis quis est labore voluptatibus! Eaque cupiditate minima, at placeat totam, magni doloremque veniam neque porro libero rerum unde voluptatem!
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/packages/docs/src/i18n/messages/.gitignore:
--------------------------------------------------------------------------------
1 | *
2 | !.gitignore
3 | !en.json
--------------------------------------------------------------------------------
/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 |
10 |
13 |
14 | ### Perks
15 |
16 |
17 |
--------------------------------------------------------------------------------
/packages/docs/src/pages/en/user/subscriptions.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: user
3 | meta:
4 | nav: Dashboard
5 | title: Subscriptions
6 | description: Subscriptions
7 | keywords: Subscriptions
8 | ---
9 |
10 |
13 |
14 | ### Vuetify One Subscription
15 |
16 | Support Vuetify and gain access to exclusive documentation perks and features for only $1 per month
17 |
18 |
19 |
--------------------------------------------------------------------------------
/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/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 | // Plugins
5 | import { createOne } from '@vuetify/one'
6 |
7 | // Types
8 | import type { App } from 'vue'
9 |
10 | export function installOne (app: App) {
11 | const one = createOne()
12 |
13 | return app.use(one as any)
14 | }
15 |
--------------------------------------------------------------------------------
/packages/docs/src/plugins/pinia.ts:
--------------------------------------------------------------------------------
1 | // Imports
2 | import { createPinia } from 'pinia'
3 | import { markRaw } from 'vue'
4 |
5 | // Types
6 | import type { App } from 'vue'
7 | import type { Router } from 'vue-router'
8 |
9 | export const pinia = createPinia()
10 |
11 | export function installPinia (app: App, router: Router) {
12 | pinia.use(({ store }) => {
13 | store.router = markRaw(router)
14 | })
15 |
16 | app.use(pinia)
17 | }
18 |
--------------------------------------------------------------------------------
/packages/docs/src/store/locale.ts:
--------------------------------------------------------------------------------
1 | // Utilities
2 | import { defineStore } from 'pinia'
3 | import { preferredLocale } from '@/util/routes'
4 |
5 | // Types
6 | export type RootState = {
7 | locale: string
8 | }
9 |
10 | export const useLocaleStore = defineStore({
11 | id: 'locale',
12 | state: () => ({
13 | locale: preferredLocale(),
14 | } as RootState),
15 | })
16 |
--------------------------------------------------------------------------------
/packages/docs/src/store/made-with-vuetify.ts:
--------------------------------------------------------------------------------
1 | // Utilities
2 | import { defineStore } from 'pinia'
3 | import { onBeforeMount, ref } from 'vue'
4 |
5 | export const useMadeWithVuetifyStore = defineStore('made-with-vuetify', () => {
6 | const items = ref([])
7 |
8 | onBeforeMount(async () => {
9 | const res = await fetch('https://madewithvuejs.com/api/tag/vuetify')
10 | .then(res => res.json())
11 |
12 | items.value = res.data
13 | })
14 |
15 | return { items }
16 | })
17 |
--------------------------------------------------------------------------------
/packages/docs/src/util/analytics.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable camelcase */
2 |
3 | // Composables
4 | import { useGtag } from 'vue-gtag-next'
5 |
6 | export function gtagClick (
7 | event_category: string,
8 | event_label: string,
9 | value: string
10 | ) {
11 | const { event } = useGtag()
12 |
13 | event('click', { event_category, event_label, value })
14 | }
15 |
--------------------------------------------------------------------------------
/packages/docs/src/util/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 |
--------------------------------------------------------------------------------
/packages/vuetify/.gitignore:
--------------------------------------------------------------------------------
1 | /dev/Playground.vue
2 | /dev/components.d.ts
3 | /cypress/screenshots
4 |
5 | # Built files
6 | /es5/
7 | /lib/
8 | /lib-temp/
9 | /types-temp/
10 | /dist/
11 | /dev/dist/
12 |
13 | # local env files
14 | .env.local
15 | .env.*.local
16 |
17 | # Log files
18 | npm-debug.log*
19 | yarn-debug.log*
20 | yarn-error.log*
21 |
22 | # Editor directories and files
23 | .idea
24 | .vscode
25 | *.suo
26 | *.ntvs*
27 | *.njsproj
28 | *.sln
29 | *.sw?
30 |
31 | .vercel
32 |
--------------------------------------------------------------------------------
/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 | 'use strict'
2 | const spawn = require('child_process').spawn
3 |
4 | const args = process.argv.slice(2)
5 |
6 | let child
7 |
8 | if (process.platform === 'win32') {
9 | // yarn test -i
10 | child = spawn('yarn.cmd', ['test:win32', ...args], { stdio: 'inherit' })
11 | } else {
12 | // yarn test
13 | child = spawn('yarn', ['test:unix', ...args], { stdio: 'inherit' })
14 | }
15 |
16 | child.on('exit', process.exit)
17 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress.config.ts:
--------------------------------------------------------------------------------
1 | import { defineConfig } from 'cypress'
2 |
3 | export default defineConfig({
4 | projectId: '5w5r1i',
5 | component: {
6 | devServer: {
7 | framework: 'vue',
8 | bundler: 'vite',
9 | },
10 | specPattern: './src/**/*.spec.cy.{js,jsx,ts,tsx}',
11 | supportFile: './cypress/support/index.ts',
12 | video: false,
13 | },
14 | viewportWidth: 1075,
15 | viewportHeight: 825,
16 | })
17 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io",
4 | "body": "Fixtures are a great way to mock data for responses to routes"
5 | }
6 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress/fixtures/text.txt:
--------------------------------------------------------------------------------
1 | This is just a simple text file.
2 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress/support/index.ts:
--------------------------------------------------------------------------------
1 | import '@percy/cypress'
2 | import 'cypress-file-upload'
3 | import 'cy-mobile-commands'
4 | import 'cypress-real-events/support'
5 | import '@mdi/font/css/materialdesignicons.css'
6 | import './mount'
7 | import './selector'
8 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress/support/selector.ts:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | Cypress.Commands.add('getBySel', (selector, ...args) => {
4 | return cy.get(`[data-test=${selector}]`, ...args) as any
5 | })
6 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress/templates/Application.tsx:
--------------------------------------------------------------------------------
1 | import { VApp } from '@/components/VApp'
2 | import { VLocaleProvider } from '@/components/VLocaleProvider'
3 | import type { FunctionalComponent } from 'vue'
4 |
5 | export const Application: FunctionalComponent<{ rtl?: boolean }> = (props, { slots, attrs }) => {
6 | return (
7 |
8 |
9 | { slots.default?.() }
10 |
11 |
12 | )
13 | }
14 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress/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/cypress/templates/gridOn.tsx:
--------------------------------------------------------------------------------
1 | import { VNode } from 'vue'
2 |
3 | export function gridOn (a: Readonly, b: Readonly, fn: (a: A, b: B) => VNode) {
4 | return (
5 |
6 | { a.map(a => (
7 | <>
8 |
{ a as any }
9 |
10 | { b.map(b => fn(a, b)) }
11 |
12 | >
13 | ))}
14 |
15 | )
16 | }
17 |
--------------------------------------------------------------------------------
/packages/vuetify/cypress/templates/index.ts:
--------------------------------------------------------------------------------
1 | export * from './CenteredGrid'
2 | export * from './generateStories'
3 | export * from './Application'
4 | export * from './gridOn'
5 |
--------------------------------------------------------------------------------
/packages/vuetify/dev/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
8 |
--------------------------------------------------------------------------------
/packages/vuetify/dev/Playground.template.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
19 |
--------------------------------------------------------------------------------
/packages/vuetify/dev/favicon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/yyx990803/vuetify/7968c1eb456f957308b765eda3135a522a531b0c/packages/vuetify/dev/favicon.png
--------------------------------------------------------------------------------
/packages/vuetify/dev/vuetify/date.js:
--------------------------------------------------------------------------------
1 | // import DateFnsAdapter from '@date-io/date-fns'
2 | // import { enAU, enUS, ja, sv } from 'date-fns/locale'
3 |
4 | export default {
5 | // adapter: DateFnsAdapter,
6 | formats: {
7 | // dayOfMonth: date => date.getDate(),
8 | },
9 | locale: {
10 | en: 'en-US',
11 | // en: 'en-AU',
12 | // en: enAU,
13 | // en: enUS,
14 | // ja,
15 | // sv,
16 | },
17 | }
18 |
--------------------------------------------------------------------------------
/packages/vuetify/dev/vuetify/defaults.js:
--------------------------------------------------------------------------------
1 | export default {
2 | //
3 | }
4 |
--------------------------------------------------------------------------------
/packages/vuetify/dev/vuetify/icons.js:
--------------------------------------------------------------------------------
1 | import { aliases } from 'vuetify/src/iconsets/mdi-svg'
2 | import { mdi } from 'vuetify/src/iconsets/mdi'
3 | import { fa } from 'vuetify/src/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 'vuetify/src/locale'
2 |
3 | export default {
4 | messages: {
5 | en,
6 | ar,
7 | sv,
8 | ja,
9 | },
10 | }
11 |
--------------------------------------------------------------------------------
/packages/vuetify/jest.config.js:
--------------------------------------------------------------------------------
1 | const base = require('../../jest.config')
2 |
3 | module.exports = {
4 | ...base,
5 | id: 'Vuetify',
6 | displayName: 'Vuetify',
7 | setupFiles: [
8 | 'jest-canvas-mock',
9 | ],
10 | }
11 |
--------------------------------------------------------------------------------
/packages/vuetify/postcss.config.js:
--------------------------------------------------------------------------------
1 | const autoprefixer = require('autoprefixer')
2 |
3 | module.exports = ctx => ({
4 | plugins: [
5 | autoprefixer({
6 | remove: false
7 | })
8 | ]
9 | })
10 |
--------------------------------------------------------------------------------
/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/VApp.sass:
--------------------------------------------------------------------------------
1 | @use './variables' as *
2 |
3 | .v-application
4 | display: flex
5 | background: $application-background
6 | color: $application-color
7 |
8 | .v-application__wrap
9 | backface-visibility: hidden
10 | display: flex
11 | flex-direction: column
12 | flex: 1 1 auto
13 | max-width: 100%
14 | min-height: 100vh
15 | min-height: 100dvh
16 | position: relative
17 |
--------------------------------------------------------------------------------
/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 | .v-app-bar
5 | display: flex
6 |
7 | &.v-toolbar
8 | @include tools.theme($app-bar-theme...)
9 |
10 | &:not(.v-toolbar--flat)
11 | @include tools.elevation($app-bar-elevation)
12 |
13 | &:not(.v-toolbar--absolute)
14 | padding-inline-end: var(--v-scrollbar-offset)
15 |
--------------------------------------------------------------------------------
/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 | .v-btn-toggle
5 | > .v-btn.v-btn--active:not(.v-btn--disabled)
6 | @include tools.active-states('> .v-btn__overlay', $btn-toggle-selected-opacity)
7 |
--------------------------------------------------------------------------------
/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/VCalendar/mixins/__tests__/__snapshots__/times.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`times.ts should parse timestamp 1`] = `
4 | Object {
5 | "date": "2019-02-08",
6 | "day": 8,
7 | "future": false,
8 | "hasDay": true,
9 | "hasTime": false,
10 | "hour": 0,
11 | "minute": 0,
12 | "month": 2,
13 | "past": false,
14 | "present": false,
15 | "time": "",
16 | "weekday": 5,
17 | "year": 2019,
18 | }
19 | `;
20 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VCalendar/modes/index.ts:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | /* eslint-disable */
3 |
4 | import { CalendarEventOverlapMode } from 'vuetify/types'
5 | import { stack } from './stack'
6 | import { column } from './column'
7 |
8 | export const CalendarEventOverlapModes: Record = {
9 | stack,
10 | column,
11 | }
12 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VCard/VCardSubtitle.ts:
--------------------------------------------------------------------------------
1 | // Utilities
2 | import { createSimpleFunctional } from '@/util'
3 |
4 | export const VCardSubtitle = createSimpleFunctional('v-card-subtitle')
5 |
6 | export type VCardSubtitle = InstanceType
7 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VCard/VCardText.ts:
--------------------------------------------------------------------------------
1 | // Utilities
2 | import { createSimpleFunctional } from '@/util'
3 |
4 | export const VCardText = createSimpleFunctional('v-card-text')
5 |
6 | export type VCardText = InstanceType
7 |
--------------------------------------------------------------------------------
/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 | .v-checkbox
7 | .v-selection-control
8 | min-height: var(--v-input-control-height)
9 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VCheckbox/_variables.scss:
--------------------------------------------------------------------------------
1 | $checkbox-disabled-color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)) !default;
2 | $checkbox-error-color: rgb(var(--v-theme-error)) !default;
3 |
--------------------------------------------------------------------------------
/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 './variables' as *
2 |
3 | .v-code
4 | background-color: $code-background-color
5 | color: $code-color
6 | border-radius: $code-border-radius
7 | line-height: $code-line-height
8 | font-size: $code-font-size
9 | font-weight: $code-font-weight
10 | padding: $code-padding
11 |
--------------------------------------------------------------------------------
/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')
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/VCounter/VCounter.sass:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings'
2 | @use './variables' as *
3 |
4 | .v-counter
5 | color: $counter-color
6 | flex: $counter-flex
7 | font-size: $counter-font-size
8 | transition-duration: $counter-transition-duration
9 |
--------------------------------------------------------------------------------
/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/_variables.scss:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings';
2 | @use '../../styles/tools';
3 |
4 | $data-table-footer-padding: 4px !default;
5 | $data-table-header-sort-badge-size: 20px !default;
6 | $data-table-header-sort-badge-color: rgba(var(--v-border-color), var(--v-border-opacity)) !default;
7 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VDataTable/index.ts:
--------------------------------------------------------------------------------
1 | export { VDataTable } from './VDataTable'
2 | export { VDataTableFooter } from './VDataTableFooter'
3 | export { VDataTableRows } from './VDataTableRows'
4 | export { VDataTableRow } from './VDataTableRow'
5 | export { VDataTableVirtual } from './VDataTableVirtual'
6 | export { VDataTableServer } from './VDataTableServer'
7 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VDatePicker/VDatePicker.sass:
--------------------------------------------------------------------------------
1 | @use '../../styles/tools'
2 |
3 | .v-date-picker__input
4 | padding-top: 16px
5 | padding-left: 24px
6 | padding-right: 24px
7 |
8 | .v-date-picker
9 | overflow: hidden
10 | width: 360px
11 |
12 | &--show-week
13 | width: 408px
14 |
15 | .v-date-picker-month
16 | padding: 0 12px 12px
17 |
18 | .v-date-picker-month__day
19 | height: 48px
20 | width: 48px
21 |
22 | .v-btn
23 | --v-btn-height: 28px
24 | --v-btn-size: 0.85rem
25 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VDatePicker/VDatePickerYears.sass:
--------------------------------------------------------------------------------
1 | .v-date-picker-years
2 | height: 320px
3 | overflow-y: scroll
4 |
5 | .v-date-picker-years__content
6 | display: grid
7 | flex: 1 1
8 | justify-content: space-around
9 | grid-template-columns: repeat(3, 1fr)
10 | gap: 8px 24px
11 | padding-inline: 36px
12 |
13 | .v-btn
14 | padding-inline: 8px
15 |
--------------------------------------------------------------------------------
/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/VDatePicker/util/__tests__/monthChange.spec.ts:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | /* eslint-disable */
3 |
4 | // import monthChange from '../monthChange'
5 |
6 | describe.skip('VDatePicker/util/monthChange.ts', () => {
7 | it('should change month', () => {
8 | expect(monthChange('2000-01', -1)).toBe('1999-12')
9 | expect(monthChange('2000-01', +1)).toBe('2000-02')
10 | expect(monthChange('2000-12', -1)).toBe('2000-11')
11 | expect(monthChange('2000-12', +1)).toBe('2001-01')
12 | })
13 | })
14 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VDatePicker/util/isDateAllowed.ts:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | /* eslint-disable */
3 |
4 | import { DatePickerAllowedDatesFunction } from 'vuetify/types'
5 |
6 | export default function isDateAllowed (date: string, min: string, max: string, allowedFn: DatePickerAllowedDatesFunction | undefined) {
7 | return (!allowedFn || allowedFn(date)) &&
8 | (!min || date >= min.substr(0, 10)) &&
9 | (!max || date <= max)
10 | }
11 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VDatePicker/util/sanitizeDateString.ts:
--------------------------------------------------------------------------------
1 | // Adds leading zero to month/day if necessary, returns 'YYYY' if type = 'year',
2 | // 'YYYY-MM' if 'month' and 'YYYY-MM-DD' if 'date'
3 | import pad from './pad'
4 |
5 | export default (dateString: string, type: 'date' | 'month' | 'year'): string => {
6 | const [year, month = 1, date = 1] = dateString.split('-')
7 | return `${year}-${pad(month)}-${pad(date)}`.substr(0, { date: 10, month: 7, year: 4 }[type])
8 | }
9 |
--------------------------------------------------------------------------------
/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/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/VField/index.ts:
--------------------------------------------------------------------------------
1 | export { VField } from './VField'
2 | export { VFieldLabel } from './VFieldLabel'
3 |
--------------------------------------------------------------------------------
/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 | // Defaults
2 | $img-preload-filter: blur(4px) !default;
3 | $img-card-media-height: 200px !default;
4 |
--------------------------------------------------------------------------------
/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 './variables' as *
2 |
3 | .v-item-group
4 | flex: 0 1 auto
5 | max-width: 100%
6 | position: relative
7 | transition: $item-group-transition
8 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VItemGroup/__tests__/__snapshots__/VItemGroup.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`VItemGroup should render with a specified tag when the tag prop is provided with a value 1`] = `
4 |
6 | `;
7 |
--------------------------------------------------------------------------------
/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 | .v-kbd
5 | background: rgb(var(--v-theme-kbd))
6 | color: rgb(var(--v-theme-on-kbd))
7 | border-radius: $kbd-border-radius
8 | display: $kbd-display
9 | font-size: $kbd-font-size
10 | font-weight: $kbd-font-weight
11 | padding: $kbd-padding
12 |
13 | @include tools.elevation($kbd-elevation)
14 |
--------------------------------------------------------------------------------
/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')
8 |
9 | export type VKbd = InstanceType
10 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VLabel/VLabel.sass:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings'
2 | @use '../../styles/tools'
3 | @use './variables' as *
4 |
5 | .v-label
6 | align-items: center
7 | color: $label-color
8 | display: $label-display
9 | font-size: $label-font-size
10 | letter-spacing: $label-letter-spacing
11 | min-width: 0
12 | opacity: var(--v-medium-emphasis-opacity)
13 | overflow: hidden
14 | text-overflow: ellipsis
15 | white-space: nowrap
16 |
17 | .v-label--clickable
18 | cursor: pointer
19 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VLabel/_variables.scss:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings';
2 |
3 | // VLabel
4 | $label-color: inherit !default;
5 | $label-disabled-color: rgba(var(--v-theme-on-surface), var(--v-disabled-opacity)) !default;
6 | $label-display: inline-flex !default;
7 | $label-error-color: rgb(var(--v-theme-error)) !default;
8 | $label-font-size: 1rem !default;
9 | $label-letter-spacing: .009375em !default;
10 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VLabel/index.ts:
--------------------------------------------------------------------------------
1 | export { VLabel } from './VLabel'
2 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VLayout/VLayout.sass:
--------------------------------------------------------------------------------
1 | .v-layout
2 | --v-scrollbar-offset: 0px
3 | display: flex
4 | flex: 1 1 auto
5 |
6 | &--full-height
7 | --v-scrollbar-offset: inherit
8 | height: 100%
9 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VLayout/VLayoutItem.sass:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings'
2 |
3 | .v-layout-item
4 | position: absolute
5 | transition: 0.2s settings.$standard-easing
6 |
7 | .v-layout-item--absolute
8 | position: absolute
9 |
--------------------------------------------------------------------------------
/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/VListItemSubtitle.ts:
--------------------------------------------------------------------------------
1 | // Utilities
2 | import { createSimpleFunctional } from '@/util'
3 |
4 | export const VListItemSubtitle = createSimpleFunctional('v-list-item-subtitle')
5 |
6 | export type VListItemSubtitle = 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 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`VList should match a snapshot 1`] = `
4 |
8 |
9 | `;
10 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VList/__tests__/__snapshots__/VListItemMedia.spec.ts.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`VListItemMedia should match a snapshot 1`] = `
4 |
5 |
6 | `;
7 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VList/index.ts:
--------------------------------------------------------------------------------
1 | export { VList } from './VList'
2 | export { VListGroup } from './VListGroup'
3 | export { VListImg } from './VListImg'
4 | export { VListItem } from './VListItem'
5 | export { VListItemAction } from './VListItemAction'
6 | export { VListItemMedia } from './VListItemMedia'
7 | export { VListItemSubtitle } from './VListItemSubtitle'
8 | export { VListItemTitle } from './VListItemTitle'
9 | export { VListSubheader } from './VListSubheader'
10 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VLocaleProvider/VLocaleProvider.sass:
--------------------------------------------------------------------------------
1 | .v-locale-provider
2 | display: contents
3 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VLocaleProvider/index.ts:
--------------------------------------------------------------------------------
1 | export { VLocaleProvider } from './VLocaleProvider'
2 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VMain/__tests__/VMain.spec.cy.tsx:
--------------------------------------------------------------------------------
1 | ///
2 |
3 | // Components
4 | import { VMain } from '..'
5 | import { VApp } from '@/components/VApp'
6 |
7 | describe('VAppBar', () => {
8 | it('should allow custom height', () => {
9 | cy.mount(() => (
10 |
11 |
12 |
13 | ))
14 |
15 | cy.get('.v-main').should('have.prop', 'tagName').should('eq', 'DIV')
16 | })
17 | })
18 |
--------------------------------------------------------------------------------
/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/VMenu.sass:
--------------------------------------------------------------------------------
1 | @use '../../styles/tools'
2 | @use './variables' as *
3 |
4 | .v-menu
5 | > .v-overlay__content
6 | display: flex
7 | flex-direction: column
8 | @include tools.rounded($menu-content-border-radius)
9 |
10 | > .v-card,
11 | > .v-sheet,
12 | > .v-list
13 | background: rgb(var(--v-theme-surface))
14 | border-radius: inherit
15 | overflow: auto
16 | height: 100%
17 |
18 | @include tools.elevation($menu-elevation)
19 |
--------------------------------------------------------------------------------
/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 (): 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/VOtpInput/_variables.scss:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings';
2 | @use '../../styles/tools';
3 |
4 | $otp-input-content-gap: .5rem !default;
5 | $otp-input-content-height: 64px !default;
6 | $otp-input-content-max-width: 320px !default;
7 | $otp-input-content-padding: .5rem !default;
8 | $otp-input-divided-content-max-width: 360px !default;
9 | $otp-input-divider-margin: 0 8px !default;
10 | $otp-input-field-font-size: 1.25rem !default;
11 | $otp-input-padding: .5rem 0 !default;
12 |
--------------------------------------------------------------------------------
/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 './variables' as *
2 |
3 | .v-pagination
4 | &__list
5 | display: inline-flex
6 | list-style-type: none
7 | justify-content: center
8 | width: 100%
9 |
10 | &__item,
11 | &__first,
12 | &__prev,
13 | &__next,
14 | &__last
15 | margin: $pagination-item-margin
16 |
--------------------------------------------------------------------------------
/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 | .v-parallax
2 | position: relative
3 | overflow: hidden
4 |
5 | &--active > .v-img__img
6 | will-change: transform
7 |
--------------------------------------------------------------------------------
/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/_variables.scss:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings';
2 |
3 | // Defaults
4 | $rating-item-focused-button-overlay-opacity: var(--v-hover-opacity) !default;
5 | $rating-item-align-items: center !default;
6 | $rating-item-button-opacity: 1 !default;
7 | $rating-item-button-transition-property: transform !default;
8 | $rating-item-icon-transform: scale(1.25) !default;
9 | $rating-item-transition-timing-function: settings.$decelerated-easing !default;
10 | $rating-white-space: nowrap !default;
11 |
--------------------------------------------------------------------------------
/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/_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 './variables' as *
2 |
3 | .v-selection-control-group
4 | grid-area: $selection-control-group-grid-area
5 | display: flex
6 | flex-direction: column
7 |
8 | &--inline
9 | flex-direction: row
10 | flex-wrap: wrap
11 |
--------------------------------------------------------------------------------
/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/VSheet.sass:
--------------------------------------------------------------------------------
1 | @use '../../styles/tools'
2 | @use './variables' as *
3 |
4 | .v-sheet
5 | display: block
6 |
7 | @include tools.border($sheet-border...)
8 | @include tools.elevation($sheet-elevation)
9 | @include tools.position($sheet-positions)
10 | @include tools.rounded($sheet-border-radius)
11 | @include tools.theme($sheet-theme...)
12 |
13 | &--rounded
14 | @include tools.rounded($sheet-rounded-border-radius)
15 |
--------------------------------------------------------------------------------
/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/VSparkline/index.ts:
--------------------------------------------------------------------------------
1 | import VSparkline from './VSparkline'
2 |
3 | export { VSparkline }
4 |
5 | export default VSparkline
6 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VSpeedDial/_variables.scss:
--------------------------------------------------------------------------------
1 | @import '../../styles/styles.sass';
2 |
3 | $speed-dial-padding: 16px !default;
4 | $speed-dial-button-margin: 6px !default;
5 | $speed-dial-z-index: 1 !default;
6 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VSpeedDial/index.ts:
--------------------------------------------------------------------------------
1 | import VSpeedDial from './VSpeedDial'
2 |
3 | export { VSpeedDial }
4 | export default VSpeedDial
5 |
--------------------------------------------------------------------------------
/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/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 { VTabs } from './VTabs'
2 | export { VTab } from './VTab'
3 |
--------------------------------------------------------------------------------
/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 | .v-theme-provider
2 | background: rgb(var(--v-theme-background))
3 | color: rgb(var(--v-theme-on-background))
4 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VThemeProvider/index.ts:
--------------------------------------------------------------------------------
1 | export { VThemeProvider } from './VThemeProvider'
2 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VTimePicker/SelectingTimes.ts:
--------------------------------------------------------------------------------
1 | // @ts-nocheck
2 | /* eslint-disable */
3 |
4 | enum SelectingTimes {
5 | Hour = 1,
6 | Minute = 2,
7 | Second = 3
8 | }
9 |
10 | export { SelectingTimes }
11 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VTimePicker/index.ts:
--------------------------------------------------------------------------------
1 | import VTimePicker from './VTimePicker'
2 | import VTimePickerClock from './VTimePickerClock'
3 | import VTimePickerTitle from './VTimePickerTitle'
4 |
5 | export { VTimePicker, VTimePickerClock, VTimePickerTitle }
6 |
7 | export default {
8 | $_vuetify_subcomponents: {
9 | VTimePicker,
10 | VTimePickerClock,
11 | VTimePickerTitle,
12 | },
13 | }
14 |
--------------------------------------------------------------------------------
/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/VTreeview/_variables.scss:
--------------------------------------------------------------------------------
1 | @import '../../styles/styles.sass';
2 |
3 | $treeview-transition: .2s map-get($transition, 'linear-out-slow-in') !default;
4 | $treeview-label-font-size: inherit !default;
5 | $treeview-node-height: 48px !default;
6 | $treeview-node-height-dense: 40px !default;
7 | $treeview-node-shaped-margin: 8px !default;
8 | $treeview-node-padding: 8px !default;
9 | $treeview-node-margin: 6px !default;
10 | $treeview-node-level-width: 24px !default;
11 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VTreeview/index.ts:
--------------------------------------------------------------------------------
1 | import VTreeview from './VTreeview'
2 | import VTreeviewNode from './VTreeviewNode'
3 |
4 | export { VTreeview, VTreeviewNode }
5 |
6 | export default {
7 | $_vuetify_subcomponents: {
8 | VTreeview,
9 | VTreeviewNode,
10 | },
11 | }
12 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VValidation/index.ts:
--------------------------------------------------------------------------------
1 | export { VValidation } from './VValidation'
2 |
--------------------------------------------------------------------------------
/packages/vuetify/src/components/VVirtualScroll/VVirtualScroll.sass:
--------------------------------------------------------------------------------
1 | .v-virtual-scroll
2 | display: block
3 | flex: 1 1 auto
4 | max-width: 100%
5 | overflow: auto
6 | position: relative
7 |
8 | &__container
9 | display: block
10 |
--------------------------------------------------------------------------------
/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 } from './date'
4 |
--------------------------------------------------------------------------------
/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/composables/selectLink.ts:
--------------------------------------------------------------------------------
1 | // Utilities
2 | import { nextTick, watch } from 'vue'
3 |
4 | // Types
5 | import type { UseLink } from './router'
6 |
7 | export function useSelectLink (link: UseLink, select?: (value: boolean, e?: Event) => void) {
8 | watch(() => link.isActive?.value, isActive => {
9 | if (link.isLink.value && isActive && select) {
10 | nextTick(() => {
11 | select(true)
12 | })
13 | }
14 | }, {
15 | immediate: true,
16 | })
17 | }
18 |
--------------------------------------------------------------------------------
/packages/vuetify/src/composables/tag.ts:
--------------------------------------------------------------------------------
1 | // Utilities
2 | import { propsFactory } from '@/util'
3 |
4 | // Types
5 | export interface TagProps {
6 | tag: string
7 | }
8 |
9 | // Composables
10 | export const makeTagProps = propsFactory({
11 | tag: {
12 | type: String,
13 | default: 'div',
14 | },
15 | }, 'tag')
16 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------
/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/VConfirmEdit/index.ts:
--------------------------------------------------------------------------------
1 | export { VConfirmEdit } from './VConfirmEdit'
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/_variables.scss:
--------------------------------------------------------------------------------
1 | @use '../../styles/settings';
2 |
3 | $picker-border-radius: settings.$border-radius-root !default;
4 | $picker-elevation: 0 !default;
5 | $picker-title-padding: 16px !default;
6 | $picker-inactive-btn-opacity: .6 !default;
7 | $picker-active-btn-opacity: 1 !default;
8 | $picker-landscape-title-width: 170px !default;
9 | $picker-font-size: 1rem !default;
10 |
--------------------------------------------------------------------------------
/packages/vuetify/src/labs/VPicker/index.ts:
--------------------------------------------------------------------------------
1 | export { VPicker } from './VPicker'
2 | export { VPickerTitle } from './VPickerTitle'
3 |
--------------------------------------------------------------------------------
/packages/vuetify/src/labs/allComponents.ts:
--------------------------------------------------------------------------------
1 | export * from '@/components'
2 | export * from './components'
3 |
--------------------------------------------------------------------------------
/packages/vuetify/src/labs/components.ts:
--------------------------------------------------------------------------------
1 | export * from './VConfirmEdit'
2 | export * from './VPicker'
3 |
--------------------------------------------------------------------------------
/packages/vuetify/src/labs/index.ts:
--------------------------------------------------------------------------------
1 | export * as components from './components'
2 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/elements/_blockquote.sass:
--------------------------------------------------------------------------------
1 | @use '../settings'
2 |
3 | .blockquote
4 | padding: settings.$spacer*4 0 settings.$spacer*4 settings.$spacer*6
5 | font-size: settings.$blockquote-font-size
6 | font-weight: settings.$blockquote-font-weight
7 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/elements/_index.sass:
--------------------------------------------------------------------------------
1 | @use './blockquote'
2 | @use './global'
3 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/generic/_animations.scss:
--------------------------------------------------------------------------------
1 | @keyframes v-shake {
2 | 59% {
3 | margin-left: 0;
4 | }
5 |
6 | 60%, 80% {
7 | margin-left: 2px;
8 | }
9 |
10 | 70%, 90% {
11 | margin-left: -2px;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/generic/_index.scss:
--------------------------------------------------------------------------------
1 | @use './animations';
2 | @use './colors';
3 | @use './reset';
4 | @use './transitions';
5 | @use './rtl';
6 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/generic/_rtl.scss:
--------------------------------------------------------------------------------
1 | .v-locale {
2 | &--is-rtl {
3 | direction: rtl;
4 | }
5 |
6 | &--is-ltr {
7 | direction: ltr;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/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 | @if ($pseudo)
3 | content: ''
4 | position: absolute
5 | top: 0
6 | left: 0
7 | width: 100%
8 | height: 100%
9 |
--------------------------------------------------------------------------------
/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 | border-color: $color if($important, !important, null)
3 | border-style: $style if($important, !important, null)
4 | border-width: $width if($important, !important, null)
5 |
6 | @if $thin-width
7 | &--border
8 | border-width: $thin-width
9 | box-shadow: none
10 |
--------------------------------------------------------------------------------
/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/_display.sass:
--------------------------------------------------------------------------------
1 | @use './functions' as *
2 | @use '../settings' as *
3 |
4 | @mixin visually-hidden
5 | position: absolute !important
6 | height: 1px
7 | width: 1px
8 | overflow: hidden
9 | clip: rect(1px, 1px, 1px, 1px)
10 | white-space: nowrap
11 | display: initial
12 |
13 | =media-breakpoint-up($name, $breakpoints: $grid-breakpoints)
14 | $min: breakpoint-min($name, $breakpoints)
15 | @if $min
16 | @media (min-width: $min)
17 | @content
18 | @else
19 | @content
20 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/tools/_elevation.sass:
--------------------------------------------------------------------------------
1 | @use 'sass:map'
2 | @use '../settings'
3 |
4 | @mixin elevation($z, $important: false)
5 | 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)
6 |
7 | @mixin elevationTransition($duration: 280ms, $easing: cubic-bezier(0.4, 0, 0.2, 1))
8 | transition: box-shadow $duration $easing
9 |
--------------------------------------------------------------------------------
/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 '_position'
8 | @forward '_radius'
9 | @forward '_rounded'
10 | @forward '_rtl'
11 | @forward '_sheet'
12 | @forward '_states'
13 | @forward '_theme'
14 | @forward '_typography'
15 | @forward '_utilities'
16 | @forward '_variant'
17 | @forward '_display'
18 |
--------------------------------------------------------------------------------
/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 | // Key exists within the $rounded variable
6 | @if (map.has-key(settings.$rounded, $r))
7 | border-radius: map.get(settings.$rounded, $r) if($important, !important, null)
8 | @else
9 | border-radius: $r if($important, !important, null)
10 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/tools/_rounded.sass:
--------------------------------------------------------------------------------
1 | @mixin rounded($radius: null, $important: false)
2 | border-radius: $radius if($important, !important, null)
3 |
--------------------------------------------------------------------------------
/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/_sheet.sass:
--------------------------------------------------------------------------------
1 | @mixin paper ($elevation, $radius, $shaped-radius)
2 | @include tools.radius($radius)
3 |
4 | &:not(.v-sheet--outlined)
5 | @include tools.elevation($elevation)
6 |
7 | @if ($shaped-radius)
8 | &.v-sheet--shaped
9 | @include tools.radius($shaped-radius)
10 |
11 |
12 | @mixin sheet ($component, $elevation, $radius, $shaped-radius)
13 | .v-sheet.#{$component}
14 | @include paper($elevation, $radius, $shaped-radius)
15 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/tools/_theme.sass:
--------------------------------------------------------------------------------
1 | @mixin theme ($background, $color)
2 | background: $background
3 | color: $color
4 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/tools/_typography.sass:
--------------------------------------------------------------------------------
1 | @mixin typography ($font-size, $font-weight, $letter-spacing, $line-height, $text-transform)
2 | font-size: $font-size
3 | font-weight: $font-weight
4 | letter-spacing: $letter-spacing
5 | line-height: $line-height
6 | text-transform: $text-transform
7 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/utilities/_display.sass:
--------------------------------------------------------------------------------
1 | @use '../settings'
2 |
3 | @if (settings.$utilities != false and length(settings.$utilities) > 0)
4 | @each $size, $media_query in settings.$display-breakpoints
5 | .hidden
6 | &-#{$size}
7 | @media #{$media_query}
8 | display: none !important
9 |
--------------------------------------------------------------------------------
/packages/vuetify/src/styles/utilities/_elevation.scss:
--------------------------------------------------------------------------------
1 | @use '../tools';
2 | @use '../settings';
3 |
4 | @if (settings.$utilities != false and length(settings.$utilities) > 0) {
5 | $z: 24;
6 | @while $z >= 0 {
7 | .elevation-#{$z} {
8 | @include tools.elevation($z, $important: true);
9 | }
10 |
11 | $z: $z - 1;
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/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/tsconfig.checks.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.dev.json",
3 | "compilerOptions": {
4 | "skipLibCheck": true
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/packages/vuetify/tsconfig.dev.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "include": [
4 | "src",
5 | "dev",
6 | "cypress"
7 | ],
8 | "compilerOptions": {
9 | "allowJs": true
10 | },
11 | "vueCompilerOptions": {
12 | "strictTemplates": true
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/packages/vuetify/tsconfig.dist.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "exclude": ["dev", "**/*.spec.*", "cypress"]
4 | }
5 |
--------------------------------------------------------------------------------
/packages/vuetify/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.json",
3 | "include": [
4 | "src",
5 | "dev"
6 | ],
7 | "exclude": ["types-temp"],
8 | "compilerOptions": {
9 | "baseUrl": ".",
10 | "outDir": "./types-temp",
11 | "paths": {
12 | "@/*": [
13 | "src/*"
14 | ],
15 | "types": [
16 | "jest",
17 | "node",
18 | "vue-router"
19 | ]
20 | },
21 | "stripInternal": true
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/scripts/deploy.sh:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env bash
2 |
3 | npm config set //registry.npmjs.org/:_authToken ${NPM_API_KEY:?}
4 | npm whoami
5 | yarn lerna publish from-git --npm-tag $(node ./scripts/parse-npm-tag.js ${RELEASE_TAG:?}) --yes --no-verify-access
6 |
--------------------------------------------------------------------------------
/scripts/dev.js:
--------------------------------------------------------------------------------
1 | const spawn = require('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('yarn', ['lerna', 'run', 'dev', '--scope', 'vuetify', '--stream'], { stdio: 'inherit' })
11 | } else {
12 | spawn('yarn', ['lerna', 'run', 'dev', '--scope', target, '--stream'], { stdio: 'inherit' })
13 | }
14 |
--------------------------------------------------------------------------------
/scripts/parse-npm-tag.js:
--------------------------------------------------------------------------------
1 | const semver = require('semver')
2 |
3 | const version = process.argv[2]
4 |
5 | if (!semver.valid(version)) {
6 | console.error(`Error: '${version}' is not a valid NPM version string`)
7 | process.exit(9)
8 | }
9 |
10 | const prerelease = semver.prerelease(version)
11 | const major = semver.major(version)
12 |
13 | if (prerelease == null) {
14 | if (major > 3) {
15 | console.log('next')
16 | } else {
17 | console.log('latest')
18 | }
19 | } else {
20 | console.log('next')
21 | }
22 |
--------------------------------------------------------------------------------
/scripts/post-install.js:
--------------------------------------------------------------------------------
1 | const shell = require('shelljs')
2 | const fs = require('fs')
3 | const path = require('path')
4 | const resolve = target => path.resolve(__dirname, target)
5 | const devTargetFolder = '../packages/vuetify/dev'
6 | const devTargetFile = `${devTargetFolder}/Playground.vue`
7 |
8 | if (!fs.existsSync(resolve(devTargetFile))) {
9 | shell.cp(
10 | resolve(`${devTargetFolder}/Playground.template.vue`),
11 | resolve(devTargetFile)
12 | )
13 | }
14 |
--------------------------------------------------------------------------------
/scripts/prepare-commit-message.js:
--------------------------------------------------------------------------------
1 | const fs = require('fs')
2 |
3 | const [
4 | messageFile,
5 | commitType,
6 | ] = process.env.HUSKY_GIT_PARAMS.split(' ')
7 |
8 | if (commitType == null) {
9 | const currentMessage = fs.readFileSync(messageFile)
10 | const newMessage = fs.readFileSync('.github/.git_commit_msg.txt')
11 | fs.writeFileSync(messageFile, newMessage)
12 | fs.appendFileSync(messageFile, currentMessage)
13 | }
14 |
--------------------------------------------------------------------------------
/scripts/rules/no-components-index.js:
--------------------------------------------------------------------------------
1 | module.exports = {
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 |
--------------------------------------------------------------------------------
/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 |
--------------------------------------------------------------------------------