├── .editorconfig ├── .github ├── CODEOWNERS ├── ISSUE_TEMPLATE │ ├── bug-report-v3.yml │ ├── bug-report.yml │ ├── config.yml │ ├── feature-request-v3.yml │ ├── feature-request.yml │ ├── question-v3.yml │ └── question.yml ├── PULL_REQUEST_TEMPLATE.md ├── reproduire │ └── needs-reproduction.md └── workflows │ ├── docs.yml │ ├── module.yml │ ├── playground.yml │ ├── release.yml │ ├── reproduire.yml │ └── stale.yml ├── .gitignore ├── .npmrc ├── .release-it.json ├── CHANGELOG.md ├── LICENSE.md ├── README.md ├── build.config.ts ├── cli ├── commands │ └── make │ │ ├── component.mjs │ │ ├── index.mjs │ │ └── locale.mjs ├── index.mjs ├── package.json ├── templates.mjs └── utils.mjs ├── docs ├── .env.example ├── app │ ├── app.config.ts │ ├── app.vue │ ├── assets │ │ ├── css │ │ │ └── main.css │ │ └── icons │ │ │ ├── embla-carousel.svg │ │ │ ├── fuse-js.svg │ │ │ ├── icones-js.svg │ │ │ └── reka-ui.svg │ ├── components │ │ ├── AdsCarbon.vue │ │ ├── Banner.vue │ │ ├── Countdown.vue │ │ ├── Footer.vue │ │ ├── FrameworkSelect.vue │ │ ├── Header.vue │ │ ├── Logo.vue │ │ ├── LogoPro.vue │ │ ├── ModuleSelect.vue │ │ ├── SkyBg.vue │ │ ├── StarsBg.vue │ │ ├── content │ │ │ ├── ComponentCode.vue │ │ │ ├── ComponentEmits.vue │ │ │ ├── ComponentExample.vue │ │ │ ├── ComponentProps.vue │ │ │ ├── ComponentPropsLinks.vue │ │ │ ├── ComponentPropsSchema.vue │ │ │ ├── ComponentSlots.vue │ │ │ ├── ComponentTheme.vue │ │ │ ├── FrameworkOnly.vue │ │ │ ├── HighlightInlineType.vue │ │ │ ├── IconsTheme.vue │ │ │ ├── ModuleOnly.vue │ │ │ ├── Placeholder.vue │ │ │ ├── SupportedLanguages.vue │ │ │ └── examples │ │ │ │ ├── accordion │ │ │ │ ├── AccordionBodySlotExample.vue │ │ │ │ ├── AccordionContentSlotExample.vue │ │ │ │ ├── AccordionCustomSlotExample.vue │ │ │ │ ├── AccordionDragAndDropExample.vue │ │ │ │ └── AccordionModelValueExample.vue │ │ │ │ ├── avatar-group │ │ │ │ ├── AvatarGroupChipExample.vue │ │ │ │ ├── AvatarGroupLinkExample.vue │ │ │ │ └── AvatarGroupTooltipExample.vue │ │ │ │ ├── avatar │ │ │ │ ├── AvatarChipExample.vue │ │ │ │ └── AvatarTooltipExample.vue │ │ │ │ ├── breadcrumb │ │ │ │ ├── BreadcrumbCustomSlotExample.vue │ │ │ │ └── BreadcrumbSeparatorSlotExample.vue │ │ │ │ ├── button-group │ │ │ │ ├── ButtonGroupBadgeExample.vue │ │ │ │ ├── ButtonGroupDropdownExample.vue │ │ │ │ └── ButtonGroupTooltipExample.vue │ │ │ │ ├── button │ │ │ │ ├── ButtonLoadingAutoExample.vue │ │ │ │ └── ButtonLoadingAutoFormExample.vue │ │ │ │ ├── calendar │ │ │ │ ├── CalendarDatePickerExample.vue │ │ │ │ ├── CalendarDateRangePickerExample.vue │ │ │ │ ├── CalendarDisabledDatesExample.vue │ │ │ │ ├── CalendarEventsExample.vue │ │ │ │ ├── CalendarExternalControlsExample.vue │ │ │ │ ├── CalendarMinMaxDatesExample.vue │ │ │ │ ├── CalendarOtherSystemExample.vue │ │ │ │ └── CalendarUnavailableDatesExample.vue │ │ │ │ ├── card │ │ │ │ └── CardExample.vue │ │ │ │ ├── carousel │ │ │ │ ├── CarouselArrowsExample.vue │ │ │ │ ├── CarouselAutoHeightExample.vue │ │ │ │ ├── CarouselAutoScrollExample.vue │ │ │ │ ├── CarouselAutoplayExample.vue │ │ │ │ ├── CarouselClassNamesExample.vue │ │ │ │ ├── CarouselDotsExample.vue │ │ │ │ ├── CarouselDotsMultipleExample.vue │ │ │ │ ├── CarouselFadeExample.vue │ │ │ │ ├── CarouselItemsExample.vue │ │ │ │ ├── CarouselItemsMultipleExample.vue │ │ │ │ ├── CarouselOrientationExample.vue │ │ │ │ ├── CarouselPrevNextExample.vue │ │ │ │ ├── CarouselPrevNextIconExample.vue │ │ │ │ ├── CarouselThumbnailsExample.vue │ │ │ │ └── CarouselWheelGesturesExample.vue │ │ │ │ ├── chip │ │ │ │ └── ChipShowExample.vue │ │ │ │ ├── collapsible │ │ │ │ ├── CollapsibleIconExample.vue │ │ │ │ └── CollapsibleOpenExample.vue │ │ │ │ ├── color-picker │ │ │ │ └── ColorPickerChooserExample.vue │ │ │ │ ├── command-palette │ │ │ │ ├── CommandPaletteCustomSlotExample.vue │ │ │ │ ├── CommandPaletteFetchExample.vue │ │ │ │ ├── CommandPaletteFuseExample.vue │ │ │ │ ├── CommandPaletteIgnoreFilterExample.vue │ │ │ │ ├── CommandPaletteOpenExample.vue │ │ │ │ ├── CommandPalettePostFilterExample.vue │ │ │ │ ├── CommandPaletteSearchTermExample.vue │ │ │ │ └── CommandPaletteSelectExample.vue │ │ │ │ ├── container │ │ │ │ └── ContainerExample.vue │ │ │ │ ├── context-menu │ │ │ │ ├── ContextMenuCheckboxItemsExample.vue │ │ │ │ ├── ContextMenuColorItemsExample.vue │ │ │ │ └── ContextMenuCustomSlotExample.vue │ │ │ │ ├── drawer │ │ │ │ ├── DrawerCommandPaletteExample.vue │ │ │ │ ├── DrawerDismissibleExample.vue │ │ │ │ ├── DrawerFooterSlotExample.vue │ │ │ │ ├── DrawerModalExample.vue │ │ │ │ ├── DrawerOpenExample.vue │ │ │ │ └── DrawerResponsiveExample.vue │ │ │ │ ├── dropdown-menu │ │ │ │ ├── DropdownMenuCheckboxItemsExample.vue │ │ │ │ ├── DropdownMenuColorItemsExample.vue │ │ │ │ ├── DropdownMenuCustomSlotExample.vue │ │ │ │ └── DropdownMenuOpenExample.vue │ │ │ │ ├── form │ │ │ │ ├── FormExampleBasic.vue │ │ │ │ ├── FormExampleElements.vue │ │ │ │ ├── FormExampleJoi.vue │ │ │ │ ├── FormExampleNested.vue │ │ │ │ ├── FormExampleNestedList.vue │ │ │ │ ├── FormExampleOnError.vue │ │ │ │ ├── FormExampleSuperstruct.vue │ │ │ │ ├── FormExampleValibot.vue │ │ │ │ ├── FormExampleYup.vue │ │ │ │ └── FormExampleZod.vue │ │ │ │ ├── input-menu │ │ │ │ ├── InputMenuCountriesExample.vue │ │ │ │ ├── InputMenuCreateItemExample.vue │ │ │ │ ├── InputMenuFetchExample.vue │ │ │ │ ├── InputMenuFilterFieldsExample.vue │ │ │ │ ├── InputMenuIconExample.vue │ │ │ │ ├── InputMenuIgnoreFilterExample.vue │ │ │ │ ├── InputMenuItemsAvatarExample.vue │ │ │ │ ├── InputMenuItemsChipExample.vue │ │ │ │ ├── InputMenuItemsIconExample.vue │ │ │ │ ├── InputMenuOpenExample.vue │ │ │ │ ├── InputMenuOpenFocusExample.vue │ │ │ │ └── InputMenuSearchTermExample.vue │ │ │ │ ├── input-number │ │ │ │ ├── InputNumberCurrencyExample.vue │ │ │ │ ├── InputNumberDecimalExample.vue │ │ │ │ ├── InputNumberFormFieldExample.vue │ │ │ │ ├── InputNumberPercentageExample.vue │ │ │ │ └── InputNumberSlotsExample.vue │ │ │ │ ├── input │ │ │ │ ├── InputButtonGroupExample.vue │ │ │ │ ├── InputCharacterLimitExample.vue │ │ │ │ ├── InputClearButtonExample.vue │ │ │ │ ├── InputCopyButtonExample.vue │ │ │ │ ├── InputFloatingLabelExample.vue │ │ │ │ ├── InputFormFieldExample.vue │ │ │ │ ├── InputKbdExample.vue │ │ │ │ ├── InputPasswordStrengthIndicatorExample.vue │ │ │ │ └── InputPasswordToggleExample.vue │ │ │ │ ├── modal │ │ │ │ ├── ModalCommandPaletteExample.vue │ │ │ │ ├── ModalExample.vue │ │ │ │ ├── ModalFooterSlotExample.vue │ │ │ │ ├── ModalNestedExample.vue │ │ │ │ ├── ModalOpenExample.vue │ │ │ │ └── ModalProgrammaticExample.vue │ │ │ │ ├── navigation-menu │ │ │ │ ├── NavigationMenuContentSlotExample.vue │ │ │ │ ├── NavigationMenuCustomSlotExample.vue │ │ │ │ └── NavigationMenuModelValueExample.vue │ │ │ │ ├── pagination │ │ │ │ └── PaginationLinksExample.vue │ │ │ │ ├── popover │ │ │ │ ├── PopoverAnchorSlotExample.vue │ │ │ │ ├── PopoverCommandPaletteExample.vue │ │ │ │ ├── PopoverDismissibleExample.vue │ │ │ │ └── PopoverOpenExample.vue │ │ │ │ ├── select-menu │ │ │ │ ├── SelectMenuCountriesExample.vue │ │ │ │ ├── SelectMenuCreateItemExample.vue │ │ │ │ ├── SelectMenuFetchExample.vue │ │ │ │ ├── SelectMenuFilterFieldsExample.vue │ │ │ │ ├── SelectMenuIconExample.vue │ │ │ │ ├── SelectMenuIgnoreFilterExample.vue │ │ │ │ ├── SelectMenuItemsAvatarExample.vue │ │ │ │ ├── SelectMenuItemsChipExample.vue │ │ │ │ ├── SelectMenuItemsIconExample.vue │ │ │ │ ├── SelectMenuOpenExample.vue │ │ │ │ └── SelectMenuSearchTermExample.vue │ │ │ │ ├── select │ │ │ │ ├── SelectFetchExample.vue │ │ │ │ ├── SelectIconExample.vue │ │ │ │ ├── SelectItemsAvatarExample.vue │ │ │ │ ├── SelectItemsChipExample.vue │ │ │ │ ├── SelectItemsIconExample.vue │ │ │ │ └── SelectOpenExample.vue │ │ │ │ ├── skeleton │ │ │ │ └── SkeletonExample.vue │ │ │ │ ├── slideover │ │ │ │ ├── SlideoverExample.vue │ │ │ │ ├── SlideoverFooterSlotExample.vue │ │ │ │ ├── SlideoverNestedExample.vue │ │ │ │ ├── SlideoverOpenExample.vue │ │ │ │ └── SlideoverProgrammaticExample.vue │ │ │ │ ├── stepper │ │ │ │ ├── StepperContentSlotExample.vue │ │ │ │ ├── StepperCustomSlotExample.vue │ │ │ │ ├── StepperModelValueExample.vue │ │ │ │ └── StepperWithControlsExample.vue │ │ │ │ ├── table │ │ │ │ ├── TableColumnFiltersExample.vue │ │ │ │ ├── TableColumnPinningExample.vue │ │ │ │ ├── TableColumnSortingExample.vue │ │ │ │ ├── TableColumnSortingReusableExample.vue │ │ │ │ ├── TableColumnVisibilityExample.vue │ │ │ │ ├── TableColumnsExample.vue │ │ │ │ ├── TableDragAndDropExample.vue │ │ │ │ ├── TableExample.vue │ │ │ │ ├── TableFetchExample.vue │ │ │ │ ├── TableGlobalFilterExample.vue │ │ │ │ ├── TableGroupedRowsExample.vue │ │ │ │ ├── TableInfiniteScrollExample.vue │ │ │ │ ├── TablePaginationExample.vue │ │ │ │ ├── TableRowActionsExample.vue │ │ │ │ ├── TableRowExpandableExample.vue │ │ │ │ ├── TableRowSelectionEventExample.vue │ │ │ │ ├── TableRowSelectionExample.vue │ │ │ │ └── TableSlotsExample.vue │ │ │ │ ├── tabs │ │ │ │ ├── TabsContentSlotExample.vue │ │ │ │ ├── TabsCustomSlotExample.vue │ │ │ │ └── TabsModelValueExample.vue │ │ │ │ ├── timeline │ │ │ │ ├── TimelineAlternatingLayoutExample.vue │ │ │ │ ├── TimelineCustomSlotExample.vue │ │ │ │ ├── TimelineModelValueExample.vue │ │ │ │ └── TimelineSlotsExample.vue │ │ │ │ ├── toast │ │ │ │ ├── ToastActionsExample.vue │ │ │ │ ├── ToastAvatarExample.vue │ │ │ │ ├── ToastCloseExample.vue │ │ │ │ ├── ToastCloseIconExample.vue │ │ │ │ ├── ToastColorExample.vue │ │ │ │ ├── ToastDescriptionExample.vue │ │ │ │ ├── ToastExample.vue │ │ │ │ ├── ToastIconExample.vue │ │ │ │ ├── ToastOrientationExample.vue │ │ │ │ └── ToastTitleExample.vue │ │ │ │ ├── toaster │ │ │ │ ├── ToasterDurationExample.vue │ │ │ │ ├── ToasterExpandExample.vue │ │ │ │ └── ToasterPositionExample.vue │ │ │ │ ├── tooltip │ │ │ │ └── TooltipOpenExample.vue │ │ │ │ └── tree │ │ │ │ ├── TreeCustomSlotExample.vue │ │ │ │ ├── TreeExpandedExample.vue │ │ │ │ ├── TreeModelValueExample.vue │ │ │ │ ├── TreeOnSelectExample.vue │ │ │ │ └── TreeOnToggleExample.vue │ │ ├── home │ │ │ └── HomeContributors.vue │ │ ├── og-image │ │ │ ├── OgImageComponent.vue │ │ │ └── OgImageDocs.vue │ │ └── theme-picker │ │ │ ├── ThemePicker.vue │ │ │ └── ThemePickerButton.vue │ ├── composables │ │ ├── fetchComponentExample.ts │ │ ├── fetchComponentMeta.ts │ │ ├── useContentNavigation.ts │ │ ├── useFaviconFromTheme.ts │ │ ├── useLinks.ts │ │ ├── useSearchLinks.ts │ │ └── useSharedData.ts │ ├── error.vue │ ├── layouts │ │ ├── default.vue │ │ └── docs.vue │ ├── mdc.config.ts │ ├── pages │ │ ├── .index.yml │ │ ├── [...slug].vue │ │ ├── components.vue │ │ ├── examples │ │ │ └── [...slug].vue │ │ ├── figma │ │ │ ├── .figma.yml │ │ │ └── index.vue │ │ ├── index.vue │ │ ├── pro │ │ │ ├── .content │ │ │ │ ├── pricing.yml │ │ │ │ ├── pro.yml │ │ │ │ └── templates.yml │ │ │ ├── activate.vue │ │ │ ├── index.vue │ │ │ ├── pricing.vue │ │ │ ├── templates.vue │ │ │ └── terms.vue │ │ ├── roadmap.vue │ │ ├── showcase.vue │ │ └── team.vue │ ├── plugins │ │ ├── data.ts │ │ ├── prettier.ts │ │ └── theme.ts │ └── workers │ │ └── prettier.js ├── content.config.ts ├── content │ ├── 1.getting-started │ │ ├── .navigation.yml │ │ ├── 1.index.md │ │ ├── 2.installation │ │ │ ├── .navigation.yml │ │ │ ├── 1.nuxt.md │ │ │ └── 2.vue.md │ │ ├── 2.migration.md │ │ ├── 3.theme.md │ │ ├── 4.icons │ │ │ ├── .navigation.yml │ │ │ ├── 1.nuxt.md │ │ │ └── 2.vue.md │ │ ├── 5.fonts.md │ │ ├── 6.color-mode │ │ │ ├── .navigation.yml │ │ │ ├── 1.nuxt.md │ │ │ └── 2.vue.md │ │ ├── 7.i18n │ │ │ ├── .navigation.yml │ │ │ ├── 1.nuxt.md │ │ │ └── 2.vue.md │ │ └── contribution.md │ ├── 2.composables │ │ ├── .navigation.yml │ │ ├── define-shortcuts.md │ │ ├── use-form-field.md │ │ ├── use-overlay.md │ │ └── use-toast.md │ ├── 3.components │ │ ├── .navigation.yml │ │ ├── 0.app.md │ │ ├── accordion.md │ │ ├── alert.md │ │ ├── avatar-group.md │ │ ├── avatar.md │ │ ├── badge.md │ │ ├── breadcrumb.md │ │ ├── button-group.md │ │ ├── button.md │ │ ├── calendar.md │ │ ├── card.md │ │ ├── carousel.md │ │ ├── checkbox-group.md │ │ ├── checkbox.md │ │ ├── chip.md │ │ ├── collapsible.md │ │ ├── color-picker.md │ │ ├── command-palette.md │ │ ├── container.md │ │ ├── context-menu.md │ │ ├── drawer.md │ │ ├── dropdown-menu.md │ │ ├── form-field.md │ │ ├── form.md │ │ ├── icon.md │ │ ├── input-menu.md │ │ ├── input-number.md │ │ ├── input.md │ │ ├── kbd.md │ │ ├── link.md │ │ ├── modal.md │ │ ├── navigation-menu.md │ │ ├── pagination.md │ │ ├── pin-input.md │ │ ├── popover.md │ │ ├── progress.md │ │ ├── radio-group.md │ │ ├── select-menu.md │ │ ├── select.md │ │ ├── separator.md │ │ ├── skeleton.md │ │ ├── slideover.md │ │ ├── slider.md │ │ ├── stepper.md │ │ ├── switch.md │ │ ├── table.md │ │ ├── tabs.md │ │ ├── textarea.md │ │ ├── timeline.md │ │ ├── toast.md │ │ ├── tooltip.md │ │ └── tree.md │ ├── pro │ │ └── terms.md │ └── showcase.yml ├── modules │ ├── component-example.ts │ └── showcase.ts ├── nuxt.config.ts ├── package.json ├── public │ ├── assets │ │ └── showcase │ │ │ ├── details.png │ │ │ ├── directus-docs.png │ │ │ ├── espace-asso-by-benevolt.png │ │ │ ├── juno.one.png │ │ │ ├── kassebil.png │ │ │ ├── learnvue.png │ │ │ ├── mawrble.png │ │ │ ├── meet-sponsors.png │ │ │ ├── ovatu.png │ │ │ ├── pallyy.png │ │ │ ├── passionate-people.png │ │ │ ├── postal.png │ │ │ ├── prismos.png │ │ │ ├── readyy.png │ │ │ ├── sagematt.png │ │ │ ├── shelve.png │ │ │ ├── speaker-bot.png │ │ │ ├── super-saas.png │ │ │ ├── the-companies-api.png │ │ │ ├── thuprai.png │ │ │ ├── uneed.png │ │ │ ├── wiredash.png │ │ │ └── zielgestalt.png │ ├── components │ │ ├── dark │ │ │ ├── accordion.png │ │ │ ├── alert.png │ │ │ ├── app.png │ │ │ ├── auth-form.png │ │ │ ├── avatar-group.png │ │ │ ├── avatar.png │ │ │ ├── badge.png │ │ │ ├── banner.png │ │ │ ├── blog-post.png │ │ │ ├── blog-posts.png │ │ │ ├── breadcrumb.png │ │ │ ├── button-group.png │ │ │ ├── button.png │ │ │ ├── calendar.png │ │ │ ├── card.png │ │ │ ├── carousel.png │ │ │ ├── chat-message.png │ │ │ ├── chat-messages.png │ │ │ ├── chat-palette.png │ │ │ ├── chat-prompt-submit.png │ │ │ ├── chat-prompt.png │ │ │ ├── checkbox-group.png │ │ │ ├── checkbox.png │ │ │ ├── chip.png │ │ │ ├── collapsible.png │ │ │ ├── color-mode-avatar.png │ │ │ ├── color-mode-button.png │ │ │ ├── color-mode-image.png │ │ │ ├── color-mode-select.png │ │ │ ├── color-mode-switch.png │ │ │ ├── color-picker.png │ │ │ ├── command-palette.png │ │ │ ├── container.png │ │ │ ├── content-navigation.png │ │ │ ├── content-search-button.png │ │ │ ├── content-search.png │ │ │ ├── content-surround.png │ │ │ ├── content-toc.png │ │ │ ├── context-menu.png │ │ │ ├── dashboard-group.png │ │ │ ├── dashboard-navbar.png │ │ │ ├── dashboard-panel.png │ │ │ ├── dashboard-resize-handle.png │ │ │ ├── dashboard-search-button.png │ │ │ ├── dashboard-search.png │ │ │ ├── dashboard-sidebar-collapse.png │ │ │ ├── dashboard-sidebar-toggle.png │ │ │ ├── dashboard-sidebar.png │ │ │ ├── dashboard-toolbar.png │ │ │ ├── drawer.png │ │ │ ├── dropdown-menu.png │ │ │ ├── error.png │ │ │ ├── footer-columns.png │ │ │ ├── footer.png │ │ │ ├── form-field.png │ │ │ ├── form.png │ │ │ ├── header.png │ │ │ ├── icon.png │ │ │ ├── input-menu.png │ │ │ ├── input-number.png │ │ │ ├── input.png │ │ │ ├── kbd.png │ │ │ ├── link.png │ │ │ ├── locale-select.png │ │ │ ├── main.png │ │ │ ├── modal.png │ │ │ ├── navigation-menu.png │ │ │ ├── page-accordion.png │ │ │ ├── page-anchors.png │ │ │ ├── page-aside.png │ │ │ ├── page-body.png │ │ │ ├── page-card.png │ │ │ ├── page-columns.png │ │ │ ├── page-cta.png │ │ │ ├── page-feature.png │ │ │ ├── page-grid.png │ │ │ ├── page-header.png │ │ │ ├── page-hero.png │ │ │ ├── page-links.png │ │ │ ├── page-list.png │ │ │ ├── page-logos.png │ │ │ ├── page-marquee.png │ │ │ ├── page-section.png │ │ │ ├── page.png │ │ │ ├── pagination.png │ │ │ ├── pin-input.png │ │ │ ├── popover.png │ │ │ ├── pricing-plan.png │ │ │ ├── pricing-plans.png │ │ │ ├── pricing-table.png │ │ │ ├── progress.png │ │ │ ├── radio-group.png │ │ │ ├── select-menu.png │ │ │ ├── select.png │ │ │ ├── separator.png │ │ │ ├── skeleton.png │ │ │ ├── slideover.png │ │ │ ├── slider.png │ │ │ ├── stepper.png │ │ │ ├── switch.png │ │ │ ├── table.png │ │ │ ├── tabs.png │ │ │ ├── textarea.png │ │ │ ├── timeline.png │ │ │ ├── toast.png │ │ │ ├── tooltip.png │ │ │ ├── tree.png │ │ │ └── user.png │ │ └── light │ │ │ ├── accordion.png │ │ │ ├── alert.png │ │ │ ├── app.png │ │ │ ├── auth-form.png │ │ │ ├── avatar-group.png │ │ │ ├── avatar.png │ │ │ ├── badge.png │ │ │ ├── banner.png │ │ │ ├── blog-post.png │ │ │ ├── blog-posts.png │ │ │ ├── breadcrumb.png │ │ │ ├── button-group.png │ │ │ ├── button.png │ │ │ ├── calendar.png │ │ │ ├── card.png │ │ │ ├── carousel.png │ │ │ ├── chat-message.png │ │ │ ├── chat-messages.png │ │ │ ├── chat-palette.png │ │ │ ├── chat-prompt-submit.png │ │ │ ├── chat-prompt.png │ │ │ ├── checkbox-group.png │ │ │ ├── checkbox.png │ │ │ ├── chip.png │ │ │ ├── collapsible.png │ │ │ ├── color-mode-avatar.png │ │ │ ├── color-mode-button.png │ │ │ ├── color-mode-image.png │ │ │ ├── color-mode-select.png │ │ │ ├── color-mode-switch.png │ │ │ ├── color-picker.png │ │ │ ├── command-palette.png │ │ │ ├── container.png │ │ │ ├── content-navigation.png │ │ │ ├── content-search-button.png │ │ │ ├── content-search.png │ │ │ ├── content-surround.png │ │ │ ├── content-toc.png │ │ │ ├── context-menu.png │ │ │ ├── dashboard-group.png │ │ │ ├── dashboard-navbar.png │ │ │ ├── dashboard-panel.png │ │ │ ├── dashboard-resize-handle.png │ │ │ ├── dashboard-search-button.png │ │ │ ├── dashboard-search.png │ │ │ ├── dashboard-sidebar-collapse.png │ │ │ ├── dashboard-sidebar-toggle.png │ │ │ ├── dashboard-sidebar.png │ │ │ ├── dashboard-toolbar.png │ │ │ ├── drawer.png │ │ │ ├── dropdown-menu.png │ │ │ ├── error.png │ │ │ ├── footer-columns.png │ │ │ ├── footer.png │ │ │ ├── form-field.png │ │ │ ├── form.png │ │ │ ├── header.png │ │ │ ├── icon.png │ │ │ ├── input-menu.png │ │ │ ├── input-number.png │ │ │ ├── input.png │ │ │ ├── kbd.png │ │ │ ├── link.png │ │ │ ├── locale-select.png │ │ │ ├── main.png │ │ │ ├── modal.png │ │ │ ├── navigation-menu.png │ │ │ ├── page-accordion.png │ │ │ ├── page-anchors.png │ │ │ ├── page-aside.png │ │ │ ├── page-body.png │ │ │ ├── page-card.png │ │ │ ├── page-columns.png │ │ │ ├── page-cta.png │ │ │ ├── page-feature.png │ │ │ ├── page-grid.png │ │ │ ├── page-header.png │ │ │ ├── page-hero.png │ │ │ ├── page-links.png │ │ │ ├── page-list.png │ │ │ ├── page-logos.png │ │ │ ├── page-marquee.png │ │ │ ├── page-section.png │ │ │ ├── page.png │ │ │ ├── pagination.png │ │ │ ├── pin-input.png │ │ │ ├── popover.png │ │ │ ├── pricing-plan.png │ │ │ ├── pricing-plans.png │ │ │ ├── pricing-table.png │ │ │ ├── progress.png │ │ │ ├── radio-group.png │ │ │ ├── select-menu.png │ │ │ ├── select.png │ │ │ ├── separator.png │ │ │ ├── skeleton.png │ │ │ ├── slideover.png │ │ │ ├── slider.png │ │ │ ├── stepper.png │ │ │ ├── switch.png │ │ │ ├── table.png │ │ │ ├── tabs.png │ │ │ ├── textarea.png │ │ │ ├── timeline.png │ │ │ ├── toast.png │ │ │ ├── tooltip.png │ │ │ ├── tree.png │ │ │ └── user.png │ ├── favicon.ico │ ├── icon.svg │ ├── og-image.png │ ├── pro │ │ ├── ad.png │ │ ├── blocks │ │ │ ├── image1.png │ │ │ ├── image10.png │ │ │ ├── image11.png │ │ │ ├── image12.png │ │ │ ├── image13.png │ │ │ ├── image14.png │ │ │ ├── image15.png │ │ │ ├── image16.png │ │ │ ├── image17.png │ │ │ ├── image2.png │ │ │ ├── image3.png │ │ │ ├── image4.png │ │ │ ├── image5.png │ │ │ ├── image6.png │ │ │ ├── image7.png │ │ │ ├── image8.png │ │ │ └── image9.png │ │ ├── figma │ │ │ ├── component.png │ │ │ ├── local-variables-result.png │ │ │ ├── local-variables.png │ │ │ ├── nuxt-ui-figma-to-code.png │ │ │ ├── nuxt-ui-figma.png │ │ │ ├── og-image.png │ │ │ ├── step-1.png │ │ │ ├── step-2.png │ │ │ ├── step-3.png │ │ │ ├── step-4.png │ │ │ └── teampad-dev-nuxt-ui-plugin.gif │ │ ├── hero.png │ │ ├── logos │ │ │ ├── applause.svg │ │ │ ├── blizzard.svg │ │ │ ├── bodet.svg │ │ │ ├── bosch.svg │ │ │ ├── churnkey.svg │ │ │ ├── exxonmobil.svg │ │ │ ├── funda.svg │ │ │ ├── insep.svg │ │ │ ├── instadapp.svg │ │ │ ├── liegeairport.svg │ │ │ ├── mainpost.svg │ │ │ ├── springfieldclinic.svg │ │ │ ├── tower.svg │ │ │ ├── win.svg │ │ │ └── wuniversity.svg │ │ ├── og-image.png │ │ └── templates │ │ │ └── og-image.png │ └── robots.txt ├── server │ ├── api │ │ ├── chat.ts │ │ ├── component-example.get.ts │ │ ├── countries.json.get.ts │ │ ├── locales.json.get.ts │ │ ├── module.json.get.ts │ │ ├── pulls.json.get.ts │ │ └── releases.json.get.ts │ └── plugins │ │ └── llms.ts └── tsconfig.json ├── eslint.config.mjs ├── package.json ├── playground-vue ├── index.html ├── package.json ├── public │ └── logo.svg ├── src │ ├── app.vue │ ├── assets │ │ └── css │ │ │ └── main.css │ ├── main.ts │ └── vite-env.d.ts ├── tsconfig.app.json ├── tsconfig.json ├── tsconfig.node.json └── vite.config.ts ├── playground ├── app │ ├── app.config.ts │ ├── app.vue │ ├── assets │ │ └── css │ │ │ └── main.css │ ├── components │ │ ├── ModalExample.vue │ │ ├── Placeholder.vue │ │ └── SlideoverExample.vue │ ├── pages │ │ ├── components │ │ │ ├── accordion.vue │ │ │ ├── alert.vue │ │ │ ├── avatar.vue │ │ │ ├── badge.vue │ │ │ ├── breadcrumb.vue │ │ │ ├── button-group.vue │ │ │ ├── button.vue │ │ │ ├── calendar.vue │ │ │ ├── card.vue │ │ │ ├── carousel.vue │ │ │ ├── checkbox-group.vue │ │ │ ├── checkbox.vue │ │ │ ├── chip.vue │ │ │ ├── collapsible.vue │ │ │ ├── color-picker.vue │ │ │ ├── command-palette.vue │ │ │ ├── context-menu.vue │ │ │ ├── drawer.vue │ │ │ ├── dropdown-menu.vue │ │ │ ├── form-field.vue │ │ │ ├── form.vue │ │ │ ├── input-menu.vue │ │ │ ├── input-number.vue │ │ │ ├── input.vue │ │ │ ├── kbd.vue │ │ │ ├── link.vue │ │ │ ├── modal.vue │ │ │ ├── navigation-menu.vue │ │ │ ├── pagination.vue │ │ │ ├── pin-input.vue │ │ │ ├── popover.vue │ │ │ ├── progress.vue │ │ │ ├── radio-group.vue │ │ │ ├── select-menu.vue │ │ │ ├── select.vue │ │ │ ├── separator.vue │ │ │ ├── shortcuts.vue │ │ │ ├── skeleton.vue │ │ │ ├── slideover.vue │ │ │ ├── slider.vue │ │ │ ├── stepper.vue │ │ │ ├── switch.vue │ │ │ ├── table.vue │ │ │ ├── tabs.vue │ │ │ ├── textarea.vue │ │ │ ├── timeline.vue │ │ │ ├── toast.vue │ │ │ ├── tooltip.vue │ │ │ └── tree.vue │ │ └── index.vue │ └── types │ │ └── index.d.ts ├── nuxt.config.ts ├── package.json ├── public │ └── favicon.ico └── tsconfig.json ├── pnpm-lock.yaml ├── pnpm-workspace.yaml ├── renovate.json ├── scripts └── release.sh ├── src ├── defaults.ts ├── module.ts ├── plugins │ ├── app-config.ts │ ├── auto-import.ts │ ├── components.ts │ ├── nuxt-environment.ts │ ├── plugins.ts │ └── templates.ts ├── runtime │ ├── components │ │ ├── Accordion.vue │ │ ├── Alert.vue │ │ ├── App.vue │ │ ├── Avatar.vue │ │ ├── AvatarGroup.vue │ │ ├── Badge.vue │ │ ├── Breadcrumb.vue │ │ ├── Button.vue │ │ ├── ButtonGroup.vue │ │ ├── Calendar.vue │ │ ├── Card.vue │ │ ├── Carousel.vue │ │ ├── Checkbox.vue │ │ ├── CheckboxGroup.vue │ │ ├── Chip.vue │ │ ├── Collapsible.vue │ │ ├── ColorPicker.vue │ │ ├── CommandPalette.vue │ │ ├── Container.vue │ │ ├── ContextMenu.vue │ │ ├── ContextMenuContent.vue │ │ ├── Drawer.vue │ │ ├── DropdownMenu.vue │ │ ├── DropdownMenuContent.vue │ │ ├── Form.vue │ │ ├── FormField.vue │ │ ├── Icon.vue │ │ ├── Input.vue │ │ ├── InputMenu.vue │ │ ├── InputNumber.vue │ │ ├── Kbd.vue │ │ ├── Link.vue │ │ ├── LinkBase.vue │ │ ├── Modal.vue │ │ ├── NavigationMenu.vue │ │ ├── OverlayProvider.vue │ │ ├── Pagination.vue │ │ ├── PinInput.vue │ │ ├── Popover.vue │ │ ├── Progress.vue │ │ ├── RadioGroup.vue │ │ ├── Select.vue │ │ ├── SelectMenu.vue │ │ ├── Separator.vue │ │ ├── Skeleton.vue │ │ ├── Slideover.vue │ │ ├── Slider.vue │ │ ├── Stepper.vue │ │ ├── Switch.vue │ │ ├── Table.vue │ │ ├── Tabs.vue │ │ ├── Textarea.vue │ │ ├── Timeline.vue │ │ ├── Toast.vue │ │ ├── Toaster.vue │ │ ├── Tooltip.vue │ │ └── Tree.vue │ ├── composables │ │ ├── defineLocale.ts │ │ ├── defineShortcuts.ts │ │ ├── useAvatarGroup.ts │ │ ├── useButtonGroup.ts │ │ ├── useComponentIcons.ts │ │ ├── useFormField.ts │ │ ├── useKbd.ts │ │ ├── useLocale.ts │ │ ├── useOverlay.ts │ │ ├── usePortal.ts │ │ └── useToast.ts │ ├── index.css │ ├── inertia │ │ ├── components │ │ │ ├── Link.vue │ │ │ └── LinkBase.vue │ │ └── stubs.ts │ ├── keyframes.css │ ├── locale │ │ ├── ar.ts │ │ ├── az.ts │ │ ├── bg.ts │ │ ├── bn.ts │ │ ├── ca.ts │ │ ├── ckb.ts │ │ ├── cs.ts │ │ ├── da.ts │ │ ├── de.ts │ │ ├── el.ts │ │ ├── en.ts │ │ ├── es.ts │ │ ├── et.ts │ │ ├── fa_ir.ts │ │ ├── fi.ts │ │ ├── fr.ts │ │ ├── he.ts │ │ ├── hi.ts │ │ ├── hu.ts │ │ ├── hy.ts │ │ ├── id.ts │ │ ├── index.ts │ │ ├── it.ts │ │ ├── ja.ts │ │ ├── kk.ts │ │ ├── km.ts │ │ ├── ko.ts │ │ ├── ky.ts │ │ ├── lt.ts │ │ ├── mn.ts │ │ ├── ms.ts │ │ ├── nb_no.ts │ │ ├── nl.ts │ │ ├── pl.ts │ │ ├── pt.ts │ │ ├── pt_br.ts │ │ ├── ro.ts │ │ ├── ru.ts │ │ ├── sk.ts │ │ ├── sl.ts │ │ ├── sv.ts │ │ ├── th.ts │ │ ├── tj.ts │ │ ├── tr.ts │ │ ├── ug_cn.ts │ │ ├── uk.ts │ │ ├── ur.ts │ │ ├── uz.ts │ │ ├── vi.ts │ │ ├── zh_cn.ts │ │ └── zh_tw.ts │ ├── plugins │ │ └── colors.ts │ ├── types │ │ ├── app.config.d.ts │ │ ├── form.ts │ │ ├── index.ts │ │ ├── locale.ts │ │ ├── tv.ts │ │ └── utils.ts │ ├── utils │ │ ├── form.ts │ │ ├── fuse.ts │ │ ├── index.ts │ │ ├── link.ts │ │ ├── locale.ts │ │ └── tv.ts │ └── vue │ │ ├── components │ │ ├── Icon.vue │ │ └── Link.vue │ │ ├── composables │ │ └── useAppConfig.ts │ │ ├── plugins │ │ ├── color-mode.ts │ │ └── head.ts │ │ └── stubs.ts ├── templates.ts ├── theme │ ├── accordion.ts │ ├── alert.ts │ ├── avatar-group.ts │ ├── avatar.ts │ ├── badge.ts │ ├── breadcrumb.ts │ ├── button-group.ts │ ├── button.ts │ ├── calendar.ts │ ├── card.ts │ ├── carousel.ts │ ├── checkbox-group.ts │ ├── checkbox.ts │ ├── chip.ts │ ├── collapsible.ts │ ├── color-picker.ts │ ├── command-palette.ts │ ├── container.ts │ ├── context-menu.ts │ ├── drawer.ts │ ├── dropdown-menu.ts │ ├── form-field.ts │ ├── form.ts │ ├── icons.ts │ ├── index.ts │ ├── input-menu.ts │ ├── input-number.ts │ ├── input.ts │ ├── kbd.ts │ ├── link.ts │ ├── modal.ts │ ├── navigation-menu.ts │ ├── pagination.ts │ ├── pin-input.ts │ ├── popover.ts │ ├── progress.ts │ ├── radio-group.ts │ ├── select-menu.ts │ ├── select.ts │ ├── separator.ts │ ├── skeleton.ts │ ├── slideover.ts │ ├── slider.ts │ ├── stepper.ts │ ├── switch.ts │ ├── table.ts │ ├── tabs.ts │ ├── textarea.ts │ ├── timeline.ts │ ├── toast.ts │ ├── toaster.ts │ ├── tooltip.ts │ └── tree.ts ├── unplugin.ts └── vite.ts ├── test ├── component-render.ts ├── components │ ├── Accordion.spec.ts │ ├── Alert.spec.ts │ ├── Avatar.spec.ts │ ├── AvatarGroup.spec.ts │ ├── Badge.spec.ts │ ├── Breadcrumb.spec.ts │ ├── Button.spec.ts │ ├── ButtonGroup.spec.ts │ ├── Calendar.spec.ts │ ├── Card.spec.ts │ ├── Carousel.spec.ts │ ├── Checkbox.spec.ts │ ├── CheckboxGroup.spec.ts │ ├── Chip.spec.ts │ ├── Collapsible.spec.ts │ ├── ColorPicker.spec.ts │ ├── CommandPalette.spec.ts │ ├── Container.spec.ts │ ├── ContextMenu.spec.ts │ ├── Drawer.spec.ts │ ├── DropdownMenu.spec.ts │ ├── Form.spec.ts │ ├── FormField.spec.ts │ ├── Input.spec.ts │ ├── InputMenu.spec.ts │ ├── InputNumber.spec.ts │ ├── Kbd.spec.ts │ ├── Link.spec.ts │ ├── Modal.spec.ts │ ├── NavigationMenu.spec.ts │ ├── Pagination.spec.ts │ ├── PinInput.spec.ts │ ├── Popover.spec.ts │ ├── Progress.spec.ts │ ├── RadioGroup.spec.ts │ ├── Select.spec.ts │ ├── SelectMenu.spec.ts │ ├── Separator.spec.ts │ ├── Skeleton.spec.ts │ ├── Slideover.spec.ts │ ├── Slider.spec.ts │ ├── Stepper.spec.ts │ ├── Switch.spec.ts │ ├── Table.spec.ts │ ├── Tabs.spec.ts │ ├── Textarea.spec.ts │ ├── Timeline.spec.ts │ ├── Toast.spec.ts │ ├── Tooltip.spec.ts │ ├── Tree.spec.ts │ └── __snapshots__ │ │ ├── Accordion-vue.spec.ts.snap │ │ ├── Accordion.spec.ts.snap │ │ ├── Alert-vue.spec.ts.snap │ │ ├── Alert.spec.ts.snap │ │ ├── Avatar-vue.spec.ts.snap │ │ ├── Avatar.spec.ts.snap │ │ ├── AvatarGroup-vue.spec.ts.snap │ │ ├── AvatarGroup.spec.ts.snap │ │ ├── Badge-vue.spec.ts.snap │ │ ├── Badge.spec.ts.snap │ │ ├── Breadcrumb-vue.spec.ts.snap │ │ ├── Breadcrumb.spec.ts.snap │ │ ├── Button-vue.spec.ts.snap │ │ ├── Button.spec.ts.snap │ │ ├── ButtonGroup-vue.spec.ts.snap │ │ ├── ButtonGroup.spec.ts.snap │ │ ├── Calendar-vue.spec.ts.snap │ │ ├── Calendar.spec.ts.snap │ │ ├── Card-vue.spec.ts.snap │ │ ├── Card.spec.ts.snap │ │ ├── Carousel-vue.spec.ts.snap │ │ ├── Carousel.spec.ts.snap │ │ ├── Checkbox-vue.spec.ts.snap │ │ ├── Checkbox.spec.ts.snap │ │ ├── CheckboxGroup-vue.spec.ts.snap │ │ ├── CheckboxGroup.spec.ts.snap │ │ ├── Chip-vue.spec.ts.snap │ │ ├── Chip.spec.ts.snap │ │ ├── Collapsible-vue.spec.ts.snap │ │ ├── Collapsible.spec.ts.snap │ │ ├── ColorPicker-vue.spec.ts.snap │ │ ├── ColorPicker.spec.ts.snap │ │ ├── CommandPalette-vue.spec.ts.snap │ │ ├── CommandPalette.spec.ts.snap │ │ ├── Container-vue.spec.ts.snap │ │ ├── Container.spec.ts.snap │ │ ├── ContextMenu-vue.spec.ts.snap │ │ ├── ContextMenu.spec.ts.snap │ │ ├── Drawer-vue.spec.ts.snap │ │ ├── Drawer.spec.ts.snap │ │ ├── DropdownMenu-vue.spec.ts.snap │ │ ├── DropdownMenu.spec.ts.snap │ │ ├── Form-vue.spec.ts.snap │ │ ├── Form.spec.ts.snap │ │ ├── FormField-vue.spec.ts.snap │ │ ├── FormField.spec.ts.snap │ │ ├── Input-vue.spec.ts.snap │ │ ├── Input.spec.ts.snap │ │ ├── InputMenu-vue.spec.ts.snap │ │ ├── InputMenu.spec.ts.snap │ │ ├── InputNumber-vue.spec.ts.snap │ │ ├── InputNumber.spec.ts.snap │ │ ├── Kbd-vue.spec.ts.snap │ │ ├── Kbd.spec.ts.snap │ │ ├── Link-vue.spec.ts.snap │ │ ├── Link.spec.ts.snap │ │ ├── Modal-vue.spec.ts.snap │ │ ├── Modal.spec.ts.snap │ │ ├── NavigationMenu-vue.spec.ts.snap │ │ ├── NavigationMenu.spec.ts.snap │ │ ├── Pagination-vue.spec.ts.snap │ │ ├── Pagination.spec.ts.snap │ │ ├── PinInput-vue.spec.ts.snap │ │ ├── PinInput.spec.ts.snap │ │ ├── Popover-vue.spec.ts.snap │ │ ├── Popover.spec.ts.snap │ │ ├── Progress-vue.spec.ts.snap │ │ ├── Progress.spec.ts.snap │ │ ├── RadioGroup-vue.spec.ts.snap │ │ ├── RadioGroup.spec.ts.snap │ │ ├── Select-vue.spec.ts.snap │ │ ├── Select.spec.ts.snap │ │ ├── SelectMenu-vue.spec.ts.snap │ │ ├── SelectMenu.spec.ts.snap │ │ ├── Separator-vue.spec.ts.snap │ │ ├── Separator.spec.ts.snap │ │ ├── Skeleton-vue.spec.ts.snap │ │ ├── Skeleton.spec.ts.snap │ │ ├── Slideover-vue.spec.ts.snap │ │ ├── Slideover.spec.ts.snap │ │ ├── Slider-vue.spec.ts.snap │ │ ├── Slider.spec.ts.snap │ │ ├── Stepper-vue.spec.ts.snap │ │ ├── Stepper.spec.ts.snap │ │ ├── Switch-vue.spec.ts.snap │ │ ├── Switch.spec.ts.snap │ │ ├── Table-vue.spec.ts.snap │ │ ├── Table.spec.ts.snap │ │ ├── Tabs-vue.spec.ts.snap │ │ ├── Tabs.spec.ts.snap │ │ ├── Textarea-vue.spec.ts.snap │ │ ├── Textarea.spec.ts.snap │ │ ├── Timeline-vue.spec.ts.snap │ │ ├── Timeline.spec.ts.snap │ │ ├── Toast-vue.spec.ts.snap │ │ ├── Toast.spec.ts.snap │ │ ├── Tooltip-vue.spec.ts.snap │ │ ├── Tooltip.spec.ts.snap │ │ ├── Tree-vue.spec.ts.snap │ │ └── Tree.spec.ts.snap ├── nuxt │ ├── nuxt.config.ts │ └── setup.ts └── utils │ ├── form.ts │ ├── mount.ts │ ├── setup.ts │ └── types.ts ├── tsconfig.json ├── vercel.json ├── vitest.config.ts ├── vitest.vue.config.ts └── vue-plugin.d.ts /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_size = 2 6 | indent_style = space 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- 1 | * @benjamincanac -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- 1 | blank_issues_enabled: false 2 | contact_links: 3 | - name: 📖 Documentation 4 | url: https://ui.nuxt.com 5 | about: Check the documentation for guides and examples. 6 | - name: 📚 Discord 7 | url: https://go.nuxt.com/discord 8 | about: Consider asking questions in the help channel. 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question-v3.yml: -------------------------------------------------------------------------------- 1 | name: "💬 Question (v3)" 2 | description: Ask a question about the module (v3 only). 3 | labels: ["question", "v3"] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: | 8 | Before asking a question, please make sure that you have read through our [documentation](https://ui.nuxt.com/) and existing [issues](https://github.com/nuxt/ui/issues?q=is%3Aissue%20is%3Aopen%20sort%3Aupdated-desc%20label%3Av3). 9 | - type: textarea 10 | id: description 11 | attributes: 12 | label: Description 13 | validations: 14 | required: true 15 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/question.yml: -------------------------------------------------------------------------------- 1 | name: "💬 Question" 2 | description: Ask a question about the module. 3 | labels: ["question"] 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: | 8 | Before asking a question, please make sure that you have read through our [documentation](https://ui2.nuxt.com) and existing [issues](https://github.com/nuxt/ui/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-desc). 9 | - type: textarea 10 | id: description 11 | attributes: 12 | label: Description 13 | validations: 14 | required: true 15 | -------------------------------------------------------------------------------- /.github/workflows/reproduire.yml: -------------------------------------------------------------------------------- 1 | name: reproduire 2 | 3 | on: 4 | issues: 5 | types: [labeled] 6 | 7 | permissions: 8 | issues: write 9 | 10 | jobs: 11 | reproduire: 12 | runs-on: ubuntu-latest 13 | steps: 14 | - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 15 | - uses: Hebilicious/reproduire@4b686ae9cbb72dad60f001d278b6e3b2ce40a9ac # v0.0.9-mp 16 | with: 17 | label: needs reproduction -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: stale 2 | 3 | on: 4 | schedule: 5 | - cron: '30 1 * * *' 6 | 7 | jobs: 8 | stale: 9 | runs-on: ubuntu-latest 10 | 11 | permissions: 12 | issues: write 13 | 14 | steps: 15 | - uses: actions/stale@v9 16 | with: 17 | days-before-stale: -1 # Issues and PR will never be flagged stale automatically. 18 | stale-issue-label: 'needs reproduction' # Label that flags an issue as stale. 19 | only-labels: 'needs reproduction' # Only process these issues 20 | days-before-issue-close: 7 21 | ignore-updates: true 22 | remove-stale-when-updated: false 23 | close-issue-message: This issue was closed because it was open for 7 days without a reproduction. 24 | close-issue-label: closed-by-bot 25 | operations-per-run: 300 #default 30 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .component-meta/ 2 | component-meta.* 3 | 4 | # Nuxt dev/build outputs 5 | .output 6 | .data 7 | .nuxt 8 | .nitro 9 | .cache 10 | dist 11 | 12 | # Node dependencies 13 | node_modules 14 | 15 | # Logs 16 | logs 17 | *.log 18 | 19 | # Misc 20 | .DS_Store 21 | .fleet 22 | .idea 23 | 24 | # Local env files 25 | .env 26 | .env.* 27 | !.env.example 28 | 29 | playground-vue/auto-imports.d.ts 30 | playground-vue/components.d.ts 31 | playground-vue/tsconfig.app.tsbuildinfo 32 | playground-vue/tsconfig.node.tsbuildinfo 33 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | shamefully-hoist=true 2 | auto-install-peers=true 3 | ignore-workspace-root-check=true 4 | -------------------------------------------------------------------------------- /.release-it.json: -------------------------------------------------------------------------------- 1 | { 2 | "git": { 3 | "commitMessage": "chore(release): v${version}", 4 | "tagName": "v${version}" 5 | }, 6 | "npm": { 7 | "publish": false 8 | }, 9 | "github": { 10 | "release": true, 11 | "releaseName": "v${version}", 12 | "web": true 13 | }, 14 | "hooks": { 15 | "before:init": ["pnpm lint", "pnpm typecheck"] 16 | }, 17 | "plugins": { 18 | "@release-it/conventional-changelog": { 19 | "preset": { 20 | "name": "conventionalcommits" 21 | }, 22 | "infile": "CHANGELOG.md", 23 | "header": "# Changelog", 24 | "ignoreRecommendedBump": true 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /build.config.ts: -------------------------------------------------------------------------------- 1 | import { defineBuildConfig } from 'unbuild' 2 | 3 | export default defineBuildConfig({ 4 | entries: [ 5 | // Vue support 6 | './src/unplugin', 7 | './src/vite' 8 | ], 9 | rollup: { 10 | replace: { 11 | delimiters: ['', ''], 12 | values: { 13 | // Used in development to import directly from theme 14 | 'process.argv.includes(\'--uiDev\')': 'false' 15 | } 16 | } 17 | }, 18 | hooks: { 19 | 'mkdist:entry:options'(ctx, entry, options) { 20 | options.addRelativeDeclarationExtensions = false 21 | } 22 | }, 23 | externals: ['#build/ui', 'vite'] 24 | }) 25 | -------------------------------------------------------------------------------- /cli/commands/make/index.mjs: -------------------------------------------------------------------------------- 1 | import { defineCommand } from 'citty' 2 | import component from './component.mjs' 3 | import locale from './locale.mjs' 4 | 5 | export default defineCommand({ 6 | meta: { 7 | name: 'make', 8 | description: 'Commands to create new Nuxt UI entities.' 9 | }, 10 | subCommands: { 11 | component, 12 | locale 13 | } 14 | }) 15 | -------------------------------------------------------------------------------- /cli/index.mjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | import { defineCommand, runMain } from 'citty' 3 | import make from './commands/make/index.mjs' 4 | 5 | const main = defineCommand({ 6 | meta: { 7 | name: 'nuxt-ui', 8 | description: 'Nuxt UI CLI' 9 | }, 10 | subCommands: { 11 | make 12 | } 13 | }) 14 | 15 | runMain(main) 16 | -------------------------------------------------------------------------------- /cli/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@nuxt/ui-cli", 3 | "type": "module", 4 | "exports": { 5 | ".": "./index.mjs" 6 | }, 7 | "dependencies": { 8 | "citty": "^0.1.6", 9 | "consola": "^3.4.2", 10 | "pathe": "^2.0.3", 11 | "scule": "^1.3.0" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /cli/utils.mjs: -------------------------------------------------------------------------------- 1 | import { promises as fsp } from 'node:fs' 2 | 3 | export async function sortFile(path) { 4 | const file = await fsp.readFile(path, 'utf-8') 5 | 6 | const lines = file.trim().split('\n').sort() 7 | 8 | await fsp.writeFile(path, lines.join('\n') + '\n') 9 | } 10 | 11 | export async function appendFile(path, contents) { 12 | const file = await fsp.readFile(path, 'utf-8') 13 | 14 | if (!file.includes(contents)) { 15 | await fsp.writeFile(path, file.trim() + '\n' + contents + '\n') 16 | } 17 | } 18 | 19 | export function normalizeLocale(locale) { 20 | if (!locale) { 21 | return '' 22 | } 23 | 24 | if (locale.includes('_')) { 25 | return locale.split('_') 26 | .map((part, index) => index === 0 ? part.toLowerCase() : part.toUpperCase()) 27 | .join('-') 28 | } 29 | 30 | return locale.toLowerCase() 31 | } 32 | -------------------------------------------------------------------------------- /docs/.env.example: -------------------------------------------------------------------------------- 1 | # Specify the path of @nuxt/ui-pro locally 2 | NUXT_UI_PRO_PATH= 3 | # Production token for @nuxt/ui-pro, purchase on https://ui.nuxt.com/pro/purchase 4 | NUXT_UI_PRO_LICENSE= 5 | # Used when pre-rendering the docs for dynamic OG images 6 | NUXT_PUBLIC_SITE_URL= 7 | # Used to fetch `nuxt/ui-pro` docs content 8 | NUXT_GITHUB_TOKEN= 9 | -------------------------------------------------------------------------------- /docs/app/app.config.ts: -------------------------------------------------------------------------------- 1 | export default defineAppConfig({ 2 | toaster: { 3 | position: 'bottom-right' as const, 4 | expand: true, 5 | duration: 5000 6 | }, 7 | theme: { 8 | radius: 0.25, 9 | blackAsPrimary: false 10 | }, 11 | ui: { 12 | colors: { 13 | primary: 'green', 14 | neutral: 'slate' 15 | } 16 | } 17 | }) 18 | -------------------------------------------------------------------------------- /docs/app/assets/icons/fuse-js.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /docs/app/components/Banner.vue: -------------------------------------------------------------------------------- 1 | 19 | -------------------------------------------------------------------------------- /docs/app/components/FrameworkSelect.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 29 | -------------------------------------------------------------------------------- /docs/app/components/ModuleSelect.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 29 | -------------------------------------------------------------------------------- /docs/app/components/content/ComponentPropsLinks.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 21 | -------------------------------------------------------------------------------- /docs/app/components/content/FrameworkOnly.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 13 | -------------------------------------------------------------------------------- /docs/app/components/content/ModuleOnly.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 13 | -------------------------------------------------------------------------------- /docs/app/components/content/Placeholder.vue: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/accordion/AccordionBodySlotExample.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 27 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/accordion/AccordionContentSlotExample.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 29 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/avatar-group/AvatarGroupChipExample.vue: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/avatar-group/AvatarGroupTooltipExample.vue: -------------------------------------------------------------------------------- 1 | 25 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/avatar/AvatarChipExample.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/avatar/AvatarTooltipExample.vue: -------------------------------------------------------------------------------- 1 | 9 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/breadcrumb/BreadcrumbSeparatorSlotExample.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 27 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/button-group/ButtonGroupBadgeExample.vue: -------------------------------------------------------------------------------- 1 | 8 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/button-group/ButtonGroupTooltipExample.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/button/ButtonLoadingAutoExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/button/ButtonLoadingAutoFormExample.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 24 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/calendar/CalendarDatePickerExample.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 22 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/calendar/CalendarDisabledDatesExample.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/calendar/CalendarEventsExample.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 31 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/calendar/CalendarExternalControlsExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 22 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/calendar/CalendarMinMaxDatesExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 12 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/calendar/CalendarOtherSystemExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/calendar/CalendarUnavailableDatesExample.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 18 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/card/CardExample.vue: -------------------------------------------------------------------------------- 1 | 14 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselArrowsExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselAutoHeightExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 30 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselAutoScrollExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 25 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselAutoplayExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 25 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselClassNamesExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 26 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselDotsExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselDotsMultipleExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselFadeExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 24 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselItemsExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselItemsMultipleExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 17 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselOrientationExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 23 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselPrevNextExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 24 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselPrevNextIconExample.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 29 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/carousel/CarouselWheelGesturesExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 23 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/chip/ChipShowExample.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 24 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/collapsible/CollapsibleIconExample.vue: -------------------------------------------------------------------------------- 1 | 20 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/collapsible/CollapsibleOpenExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 24 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/color-picker/ColorPickerChooserExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 20 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/command-palette/CommandPaletteFuseExample.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 18 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/container/ContainerExample.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/drawer/DrawerDismissibleExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 22 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/drawer/DrawerFooterSlotExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 19 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/drawer/DrawerModalExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 29 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/drawer/DrawerOpenExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/dropdown-menu/DropdownMenuColorItemsExample.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 34 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/dropdown-menu/DropdownMenuCustomSlotExample.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 28 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/dropdown-menu/DropdownMenuOpenExample.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 29 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-menu/InputMenuCreateItemExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 21 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-menu/InputMenuIconExample.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 15 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-menu/InputMenuItemsIconExample.vue: -------------------------------------------------------------------------------- 1 | 29 | 30 | 33 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-menu/InputMenuOpenExample.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-menu/InputMenuOpenFocusExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 15 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-menu/InputMenuSearchTermExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-number/InputNumberCurrencyExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 16 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-number/InputNumberDecimalExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-number/InputNumberFormFieldExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-number/InputNumberPercentageExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 14 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input-number/InputNumberSlotsExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 16 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input/InputButtonGroupExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 27 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input/InputCharacterLimitExample.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 25 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input/InputClearButtonExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 23 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input/InputFloatingLabelExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input/InputFormFieldExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 10 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input/InputKbdExample.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 22 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/input/InputPasswordToggleExample.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 27 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/modal/ModalExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 19 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/modal/ModalFooterSlotExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 19 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/modal/ModalNestedExample.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 23 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/modal/ModalOpenExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/navigation-menu/NavigationMenuCustomSlotExample.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 28 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/pagination/PaginationLinksExample.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 17 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/popover/PopoverAnchorSlotExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 20 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/popover/PopoverDismissibleExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 22 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/popover/PopoverOpenExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/select-menu/SelectMenuCreateItemExample.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 21 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/select-menu/SelectMenuIconExample.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 16 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/select-menu/SelectMenuItemsIconExample.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 32 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/select-menu/SelectMenuOpenExample.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/select-menu/SelectMenuSearchTermExample.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 10 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/select/SelectIconExample.vue: -------------------------------------------------------------------------------- 1 | 5 | 6 | 16 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/select/SelectOpenExample.vue: -------------------------------------------------------------------------------- 1 | 10 | 11 | 14 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/skeleton/SkeletonExample.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/slideover/SlideoverExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 23 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/slideover/SlideoverFooterSlotExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 19 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/slideover/SlideoverOpenExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 18 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/stepper/StepperContentSlotExample.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 29 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/tabs/TabsContentSlotExample.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 23 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/tabs/TabsModelValueExample.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 36 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastActionsExample.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastAvatarExample.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 22 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastCloseExample.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 21 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastCloseIconExample.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastColorExample.vue: -------------------------------------------------------------------------------- 1 | 19 | 20 | 23 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastDescriptionExample.vue: -------------------------------------------------------------------------------- 1 | 13 | 14 | 17 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastExample.vue: -------------------------------------------------------------------------------- 1 | 15 | 16 | 19 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastIconExample.vue: -------------------------------------------------------------------------------- 1 | 16 | 17 | 20 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastOrientationExample.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 28 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toast/ToastTitleExample.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 16 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toaster/ToasterDurationExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 26 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/toaster/ToasterExpandExample.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 28 | -------------------------------------------------------------------------------- /docs/app/components/content/examples/tooltip/TooltipOpenExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 14 | -------------------------------------------------------------------------------- /docs/app/layouts/default.vue: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /docs/app/mdc.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from '@nuxtjs/mdc/config' 2 | import { transformerColorHighlight } from 'shiki-transformer-color-highlight' 3 | 4 | export default defineConfig({ 5 | shiki: { 6 | transformers: [ 7 | transformerColorHighlight() 8 | ] 9 | } 10 | }) 11 | -------------------------------------------------------------------------------- /docs/content/1.getting-started/.navigation.yml: -------------------------------------------------------------------------------- 1 | title: Getting Started 2 | icon: i-lucide-square-play 3 | -------------------------------------------------------------------------------- /docs/content/1.getting-started/2.installation/.navigation.yml: -------------------------------------------------------------------------------- 1 | shadow: true 2 | -------------------------------------------------------------------------------- /docs/content/1.getting-started/4.icons/.navigation.yml: -------------------------------------------------------------------------------- 1 | shadow: true 2 | -------------------------------------------------------------------------------- /docs/content/1.getting-started/6.color-mode/.navigation.yml: -------------------------------------------------------------------------------- 1 | shadow: true 2 | -------------------------------------------------------------------------------- /docs/content/1.getting-started/7.i18n/.navigation.yml: -------------------------------------------------------------------------------- 1 | shadow: true 2 | -------------------------------------------------------------------------------- /docs/content/2.composables/.navigation.yml: -------------------------------------------------------------------------------- 1 | title: Composables 2 | icon: i-lucide-square-function 3 | -------------------------------------------------------------------------------- /docs/content/2.composables/use-form-field.md: -------------------------------------------------------------------------------- 1 | --- 2 | title: useFormField 3 | description: 'A composable to integrate custom inputs with the Form component' 4 | navigation: false 5 | --- 6 | 7 | ## Usage 8 | 9 | Use the auto-imported `useFormField` composable to integrate custom inputs with a [Form](/components/form). 10 | 11 | ```vue 12 | 15 | ``` 16 | -------------------------------------------------------------------------------- /docs/content/3.components/.navigation.yml: -------------------------------------------------------------------------------- 1 | title: Components 2 | icon: i-lucide-square-code 3 | -------------------------------------------------------------------------------- /docs/content/3.components/container.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: A container lets you center and constrain the width of your content. 3 | category: layout 4 | links: 5 | - label: GitHub 6 | icon: i-simple-icons-github 7 | to: https://github.com/nuxt/ui/tree/v3/src/runtime/components/Container.vue 8 | --- 9 | 10 | ## Usage 11 | 12 | ::component-example 13 | --- 14 | name: 'container-example' 15 | props: 16 | class: 'w-full' 17 | --- 18 | :: 19 | 20 | ## API 21 | 22 | ### Props 23 | 24 | :component-props 25 | 26 | ### Slots 27 | 28 | :component-slots 29 | 30 | ## Theme 31 | 32 | :component-theme 33 | -------------------------------------------------------------------------------- /docs/content/3.components/icon.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: A component to display any icon from Iconify. 3 | category: element 4 | links: 5 | - label: Icônes 6 | to: https://icones.js.org/ 7 | target: _blank 8 | icon: i-custom-icones-js 9 | --- 10 | 11 | ## Usage 12 | 13 | Use the `name` prop to display an icon: 14 | 15 | ::component-code 16 | --- 17 | props: 18 | name: 'i-lucide-lightbulb' 19 | class: 'size-5' 20 | --- 21 | :: 22 | 23 | ::framework-only 24 | #nuxt 25 | :::caution{to="/getting-started/icons/nuxt#collections"} 26 | It's highly recommended to install the icons collections you need, read more about this. 27 | ::: 28 | :: 29 | 30 | ## API 31 | 32 | ### Props 33 | 34 | :component-props 35 | -------------------------------------------------------------------------------- /docs/content/3.components/skeleton.md: -------------------------------------------------------------------------------- 1 | --- 2 | description: A placeholder to show while content is loading. 3 | category: layout 4 | links: 5 | - label: GitHub 6 | icon: i-simple-icons-github 7 | to: https://github.com/nuxt/ui/tree/v3/src/runtime/components/Skeleton.vue 8 | --- 9 | 10 | ## Usage 11 | 12 | :component-example{name="skeleton-example"} 13 | 14 | ## API 15 | 16 | ### Props 17 | 18 | :component-props 19 | 20 | ### Slots 21 | 22 | :component-slots 23 | 24 | ## Theme 25 | 26 | :component-theme 27 | -------------------------------------------------------------------------------- /docs/public/assets/showcase/details.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/details.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/directus-docs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/directus-docs.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/espace-asso-by-benevolt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/espace-asso-by-benevolt.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/juno.one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/juno.one.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/kassebil.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/kassebil.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/learnvue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/learnvue.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/mawrble.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/mawrble.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/meet-sponsors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/meet-sponsors.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/ovatu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/ovatu.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/pallyy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/pallyy.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/passionate-people.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/passionate-people.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/postal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/postal.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/prismos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/prismos.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/readyy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/readyy.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/sagematt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/sagematt.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/shelve.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/shelve.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/speaker-bot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/speaker-bot.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/super-saas.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/super-saas.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/the-companies-api.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/the-companies-api.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/thuprai.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/thuprai.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/uneed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/uneed.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/wiredash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/wiredash.png -------------------------------------------------------------------------------- /docs/public/assets/showcase/zielgestalt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/assets/showcase/zielgestalt.png -------------------------------------------------------------------------------- /docs/public/components/dark/accordion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/accordion.png -------------------------------------------------------------------------------- /docs/public/components/dark/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/alert.png -------------------------------------------------------------------------------- /docs/public/components/dark/app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/app.png -------------------------------------------------------------------------------- /docs/public/components/dark/auth-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/auth-form.png -------------------------------------------------------------------------------- /docs/public/components/dark/avatar-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/avatar-group.png -------------------------------------------------------------------------------- /docs/public/components/dark/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/avatar.png -------------------------------------------------------------------------------- /docs/public/components/dark/badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/badge.png -------------------------------------------------------------------------------- /docs/public/components/dark/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/banner.png -------------------------------------------------------------------------------- /docs/public/components/dark/blog-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/blog-post.png -------------------------------------------------------------------------------- /docs/public/components/dark/blog-posts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/blog-posts.png -------------------------------------------------------------------------------- /docs/public/components/dark/breadcrumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/breadcrumb.png -------------------------------------------------------------------------------- /docs/public/components/dark/button-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/button-group.png -------------------------------------------------------------------------------- /docs/public/components/dark/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/button.png -------------------------------------------------------------------------------- /docs/public/components/dark/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/calendar.png -------------------------------------------------------------------------------- /docs/public/components/dark/card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/card.png -------------------------------------------------------------------------------- /docs/public/components/dark/carousel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/carousel.png -------------------------------------------------------------------------------- /docs/public/components/dark/chat-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/chat-message.png -------------------------------------------------------------------------------- /docs/public/components/dark/chat-messages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/chat-messages.png -------------------------------------------------------------------------------- /docs/public/components/dark/chat-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/chat-palette.png -------------------------------------------------------------------------------- /docs/public/components/dark/chat-prompt-submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/chat-prompt-submit.png -------------------------------------------------------------------------------- /docs/public/components/dark/chat-prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/chat-prompt.png -------------------------------------------------------------------------------- /docs/public/components/dark/checkbox-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/checkbox-group.png -------------------------------------------------------------------------------- /docs/public/components/dark/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/checkbox.png -------------------------------------------------------------------------------- /docs/public/components/dark/chip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/chip.png -------------------------------------------------------------------------------- /docs/public/components/dark/collapsible.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/collapsible.png -------------------------------------------------------------------------------- /docs/public/components/dark/color-mode-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/color-mode-avatar.png -------------------------------------------------------------------------------- /docs/public/components/dark/color-mode-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/color-mode-button.png -------------------------------------------------------------------------------- /docs/public/components/dark/color-mode-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/color-mode-image.png -------------------------------------------------------------------------------- /docs/public/components/dark/color-mode-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/color-mode-select.png -------------------------------------------------------------------------------- /docs/public/components/dark/color-mode-switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/color-mode-switch.png -------------------------------------------------------------------------------- /docs/public/components/dark/color-picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/color-picker.png -------------------------------------------------------------------------------- /docs/public/components/dark/command-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/command-palette.png -------------------------------------------------------------------------------- /docs/public/components/dark/container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/container.png -------------------------------------------------------------------------------- /docs/public/components/dark/content-navigation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/content-navigation.png -------------------------------------------------------------------------------- /docs/public/components/dark/content-search-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/content-search-button.png -------------------------------------------------------------------------------- /docs/public/components/dark/content-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/content-search.png -------------------------------------------------------------------------------- /docs/public/components/dark/content-surround.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/content-surround.png -------------------------------------------------------------------------------- /docs/public/components/dark/content-toc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/content-toc.png -------------------------------------------------------------------------------- /docs/public/components/dark/context-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/context-menu.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-group.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-navbar.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-panel.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-resize-handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-resize-handle.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-search-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-search-button.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-search.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-sidebar-collapse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-sidebar-collapse.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-sidebar-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-sidebar-toggle.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-sidebar.png -------------------------------------------------------------------------------- /docs/public/components/dark/dashboard-toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dashboard-toolbar.png -------------------------------------------------------------------------------- /docs/public/components/dark/drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/drawer.png -------------------------------------------------------------------------------- /docs/public/components/dark/dropdown-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/dropdown-menu.png -------------------------------------------------------------------------------- /docs/public/components/dark/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/error.png -------------------------------------------------------------------------------- /docs/public/components/dark/footer-columns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/footer-columns.png -------------------------------------------------------------------------------- /docs/public/components/dark/footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/footer.png -------------------------------------------------------------------------------- /docs/public/components/dark/form-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/form-field.png -------------------------------------------------------------------------------- /docs/public/components/dark/form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/form.png -------------------------------------------------------------------------------- /docs/public/components/dark/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/header.png -------------------------------------------------------------------------------- /docs/public/components/dark/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/icon.png -------------------------------------------------------------------------------- /docs/public/components/dark/input-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/input-menu.png -------------------------------------------------------------------------------- /docs/public/components/dark/input-number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/input-number.png -------------------------------------------------------------------------------- /docs/public/components/dark/input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/input.png -------------------------------------------------------------------------------- /docs/public/components/dark/kbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/kbd.png -------------------------------------------------------------------------------- /docs/public/components/dark/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/link.png -------------------------------------------------------------------------------- /docs/public/components/dark/locale-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/locale-select.png -------------------------------------------------------------------------------- /docs/public/components/dark/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/main.png -------------------------------------------------------------------------------- /docs/public/components/dark/modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/modal.png -------------------------------------------------------------------------------- /docs/public/components/dark/navigation-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/navigation-menu.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-accordion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-accordion.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-anchors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-anchors.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-aside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-aside.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-body.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-card.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-columns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-columns.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-cta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-cta.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-feature.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-grid.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-header.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-hero.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-links.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-list.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-logos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-logos.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-marquee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-marquee.png -------------------------------------------------------------------------------- /docs/public/components/dark/page-section.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page-section.png -------------------------------------------------------------------------------- /docs/public/components/dark/page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/page.png -------------------------------------------------------------------------------- /docs/public/components/dark/pagination.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/pagination.png -------------------------------------------------------------------------------- /docs/public/components/dark/pin-input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/pin-input.png -------------------------------------------------------------------------------- /docs/public/components/dark/popover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/popover.png -------------------------------------------------------------------------------- /docs/public/components/dark/pricing-plan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/pricing-plan.png -------------------------------------------------------------------------------- /docs/public/components/dark/pricing-plans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/pricing-plans.png -------------------------------------------------------------------------------- /docs/public/components/dark/pricing-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/pricing-table.png -------------------------------------------------------------------------------- /docs/public/components/dark/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/progress.png -------------------------------------------------------------------------------- /docs/public/components/dark/radio-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/radio-group.png -------------------------------------------------------------------------------- /docs/public/components/dark/select-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/select-menu.png -------------------------------------------------------------------------------- /docs/public/components/dark/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/select.png -------------------------------------------------------------------------------- /docs/public/components/dark/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/separator.png -------------------------------------------------------------------------------- /docs/public/components/dark/skeleton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/skeleton.png -------------------------------------------------------------------------------- /docs/public/components/dark/slideover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/slideover.png -------------------------------------------------------------------------------- /docs/public/components/dark/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/slider.png -------------------------------------------------------------------------------- /docs/public/components/dark/stepper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/stepper.png -------------------------------------------------------------------------------- /docs/public/components/dark/switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/switch.png -------------------------------------------------------------------------------- /docs/public/components/dark/table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/table.png -------------------------------------------------------------------------------- /docs/public/components/dark/tabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/tabs.png -------------------------------------------------------------------------------- /docs/public/components/dark/textarea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/textarea.png -------------------------------------------------------------------------------- /docs/public/components/dark/timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/timeline.png -------------------------------------------------------------------------------- /docs/public/components/dark/toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/toast.png -------------------------------------------------------------------------------- /docs/public/components/dark/tooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/tooltip.png -------------------------------------------------------------------------------- /docs/public/components/dark/tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/tree.png -------------------------------------------------------------------------------- /docs/public/components/dark/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/dark/user.png -------------------------------------------------------------------------------- /docs/public/components/light/accordion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/accordion.png -------------------------------------------------------------------------------- /docs/public/components/light/alert.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/alert.png -------------------------------------------------------------------------------- /docs/public/components/light/app.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/app.png -------------------------------------------------------------------------------- /docs/public/components/light/auth-form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/auth-form.png -------------------------------------------------------------------------------- /docs/public/components/light/avatar-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/avatar-group.png -------------------------------------------------------------------------------- /docs/public/components/light/avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/avatar.png -------------------------------------------------------------------------------- /docs/public/components/light/badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/badge.png -------------------------------------------------------------------------------- /docs/public/components/light/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/banner.png -------------------------------------------------------------------------------- /docs/public/components/light/blog-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/blog-post.png -------------------------------------------------------------------------------- /docs/public/components/light/blog-posts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/blog-posts.png -------------------------------------------------------------------------------- /docs/public/components/light/breadcrumb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/breadcrumb.png -------------------------------------------------------------------------------- /docs/public/components/light/button-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/button-group.png -------------------------------------------------------------------------------- /docs/public/components/light/button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/button.png -------------------------------------------------------------------------------- /docs/public/components/light/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/calendar.png -------------------------------------------------------------------------------- /docs/public/components/light/card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/card.png -------------------------------------------------------------------------------- /docs/public/components/light/carousel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/carousel.png -------------------------------------------------------------------------------- /docs/public/components/light/chat-message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/chat-message.png -------------------------------------------------------------------------------- /docs/public/components/light/chat-messages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/chat-messages.png -------------------------------------------------------------------------------- /docs/public/components/light/chat-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/chat-palette.png -------------------------------------------------------------------------------- /docs/public/components/light/chat-prompt-submit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/chat-prompt-submit.png -------------------------------------------------------------------------------- /docs/public/components/light/chat-prompt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/chat-prompt.png -------------------------------------------------------------------------------- /docs/public/components/light/checkbox-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/checkbox-group.png -------------------------------------------------------------------------------- /docs/public/components/light/checkbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/checkbox.png -------------------------------------------------------------------------------- /docs/public/components/light/chip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/chip.png -------------------------------------------------------------------------------- /docs/public/components/light/collapsible.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/collapsible.png -------------------------------------------------------------------------------- /docs/public/components/light/color-mode-avatar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/color-mode-avatar.png -------------------------------------------------------------------------------- /docs/public/components/light/color-mode-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/color-mode-button.png -------------------------------------------------------------------------------- /docs/public/components/light/color-mode-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/color-mode-image.png -------------------------------------------------------------------------------- /docs/public/components/light/color-mode-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/color-mode-select.png -------------------------------------------------------------------------------- /docs/public/components/light/color-mode-switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/color-mode-switch.png -------------------------------------------------------------------------------- /docs/public/components/light/color-picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/color-picker.png -------------------------------------------------------------------------------- /docs/public/components/light/command-palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/command-palette.png -------------------------------------------------------------------------------- /docs/public/components/light/container.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/container.png -------------------------------------------------------------------------------- /docs/public/components/light/content-navigation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/content-navigation.png -------------------------------------------------------------------------------- /docs/public/components/light/content-search-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/content-search-button.png -------------------------------------------------------------------------------- /docs/public/components/light/content-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/content-search.png -------------------------------------------------------------------------------- /docs/public/components/light/content-surround.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/content-surround.png -------------------------------------------------------------------------------- /docs/public/components/light/content-toc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/content-toc.png -------------------------------------------------------------------------------- /docs/public/components/light/context-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/context-menu.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-group.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-navbar.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-panel.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-resize-handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-resize-handle.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-search-button.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-search-button.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-search.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-sidebar-collapse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-sidebar-collapse.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-sidebar-toggle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-sidebar-toggle.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-sidebar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-sidebar.png -------------------------------------------------------------------------------- /docs/public/components/light/dashboard-toolbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dashboard-toolbar.png -------------------------------------------------------------------------------- /docs/public/components/light/drawer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/drawer.png -------------------------------------------------------------------------------- /docs/public/components/light/dropdown-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/dropdown-menu.png -------------------------------------------------------------------------------- /docs/public/components/light/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/error.png -------------------------------------------------------------------------------- /docs/public/components/light/footer-columns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/footer-columns.png -------------------------------------------------------------------------------- /docs/public/components/light/footer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/footer.png -------------------------------------------------------------------------------- /docs/public/components/light/form-field.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/form-field.png -------------------------------------------------------------------------------- /docs/public/components/light/form.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/form.png -------------------------------------------------------------------------------- /docs/public/components/light/header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/header.png -------------------------------------------------------------------------------- /docs/public/components/light/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/icon.png -------------------------------------------------------------------------------- /docs/public/components/light/input-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/input-menu.png -------------------------------------------------------------------------------- /docs/public/components/light/input-number.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/input-number.png -------------------------------------------------------------------------------- /docs/public/components/light/input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/input.png -------------------------------------------------------------------------------- /docs/public/components/light/kbd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/kbd.png -------------------------------------------------------------------------------- /docs/public/components/light/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/link.png -------------------------------------------------------------------------------- /docs/public/components/light/locale-select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/locale-select.png -------------------------------------------------------------------------------- /docs/public/components/light/main.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/main.png -------------------------------------------------------------------------------- /docs/public/components/light/modal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/modal.png -------------------------------------------------------------------------------- /docs/public/components/light/navigation-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/navigation-menu.png -------------------------------------------------------------------------------- /docs/public/components/light/page-accordion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-accordion.png -------------------------------------------------------------------------------- /docs/public/components/light/page-anchors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-anchors.png -------------------------------------------------------------------------------- /docs/public/components/light/page-aside.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-aside.png -------------------------------------------------------------------------------- /docs/public/components/light/page-body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-body.png -------------------------------------------------------------------------------- /docs/public/components/light/page-card.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-card.png -------------------------------------------------------------------------------- /docs/public/components/light/page-columns.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-columns.png -------------------------------------------------------------------------------- /docs/public/components/light/page-cta.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-cta.png -------------------------------------------------------------------------------- /docs/public/components/light/page-feature.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-feature.png -------------------------------------------------------------------------------- /docs/public/components/light/page-grid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-grid.png -------------------------------------------------------------------------------- /docs/public/components/light/page-header.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-header.png -------------------------------------------------------------------------------- /docs/public/components/light/page-hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-hero.png -------------------------------------------------------------------------------- /docs/public/components/light/page-links.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-links.png -------------------------------------------------------------------------------- /docs/public/components/light/page-list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-list.png -------------------------------------------------------------------------------- /docs/public/components/light/page-logos.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-logos.png -------------------------------------------------------------------------------- /docs/public/components/light/page-marquee.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-marquee.png -------------------------------------------------------------------------------- /docs/public/components/light/page-section.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page-section.png -------------------------------------------------------------------------------- /docs/public/components/light/page.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/page.png -------------------------------------------------------------------------------- /docs/public/components/light/pagination.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/pagination.png -------------------------------------------------------------------------------- /docs/public/components/light/pin-input.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/pin-input.png -------------------------------------------------------------------------------- /docs/public/components/light/popover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/popover.png -------------------------------------------------------------------------------- /docs/public/components/light/pricing-plan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/pricing-plan.png -------------------------------------------------------------------------------- /docs/public/components/light/pricing-plans.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/pricing-plans.png -------------------------------------------------------------------------------- /docs/public/components/light/pricing-table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/pricing-table.png -------------------------------------------------------------------------------- /docs/public/components/light/progress.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/progress.png -------------------------------------------------------------------------------- /docs/public/components/light/radio-group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/radio-group.png -------------------------------------------------------------------------------- /docs/public/components/light/select-menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/select-menu.png -------------------------------------------------------------------------------- /docs/public/components/light/select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/select.png -------------------------------------------------------------------------------- /docs/public/components/light/separator.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/separator.png -------------------------------------------------------------------------------- /docs/public/components/light/skeleton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/skeleton.png -------------------------------------------------------------------------------- /docs/public/components/light/slideover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/slideover.png -------------------------------------------------------------------------------- /docs/public/components/light/slider.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/slider.png -------------------------------------------------------------------------------- /docs/public/components/light/stepper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/stepper.png -------------------------------------------------------------------------------- /docs/public/components/light/switch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/switch.png -------------------------------------------------------------------------------- /docs/public/components/light/table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/table.png -------------------------------------------------------------------------------- /docs/public/components/light/tabs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/tabs.png -------------------------------------------------------------------------------- /docs/public/components/light/textarea.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/textarea.png -------------------------------------------------------------------------------- /docs/public/components/light/timeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/timeline.png -------------------------------------------------------------------------------- /docs/public/components/light/toast.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/toast.png -------------------------------------------------------------------------------- /docs/public/components/light/tooltip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/tooltip.png -------------------------------------------------------------------------------- /docs/public/components/light/tree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/tree.png -------------------------------------------------------------------------------- /docs/public/components/light/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/components/light/user.png -------------------------------------------------------------------------------- /docs/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/favicon.ico -------------------------------------------------------------------------------- /docs/public/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/og-image.png -------------------------------------------------------------------------------- /docs/public/pro/ad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/ad.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image1.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image10.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image11.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image12.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image13.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image14.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image15.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image16.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image17.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image2.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image3.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image4.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image5.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image6.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image7.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image8.png -------------------------------------------------------------------------------- /docs/public/pro/blocks/image9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/blocks/image9.png -------------------------------------------------------------------------------- /docs/public/pro/figma/component.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/component.png -------------------------------------------------------------------------------- /docs/public/pro/figma/local-variables-result.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/local-variables-result.png -------------------------------------------------------------------------------- /docs/public/pro/figma/local-variables.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/local-variables.png -------------------------------------------------------------------------------- /docs/public/pro/figma/nuxt-ui-figma-to-code.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/nuxt-ui-figma-to-code.png -------------------------------------------------------------------------------- /docs/public/pro/figma/nuxt-ui-figma.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/nuxt-ui-figma.png -------------------------------------------------------------------------------- /docs/public/pro/figma/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/og-image.png -------------------------------------------------------------------------------- /docs/public/pro/figma/step-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/step-1.png -------------------------------------------------------------------------------- /docs/public/pro/figma/step-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/step-2.png -------------------------------------------------------------------------------- /docs/public/pro/figma/step-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/step-3.png -------------------------------------------------------------------------------- /docs/public/pro/figma/step-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/step-4.png -------------------------------------------------------------------------------- /docs/public/pro/figma/teampad-dev-nuxt-ui-plugin.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/figma/teampad-dev-nuxt-ui-plugin.gif -------------------------------------------------------------------------------- /docs/public/pro/hero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/hero.png -------------------------------------------------------------------------------- /docs/public/pro/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/og-image.png -------------------------------------------------------------------------------- /docs/public/pro/templates/og-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/docs/public/pro/templates/og-image.png -------------------------------------------------------------------------------- /docs/public/robots.txt: -------------------------------------------------------------------------------- 1 | user-agent: * 2 | -------------------------------------------------------------------------------- /docs/server/api/chat.ts: -------------------------------------------------------------------------------- 1 | import { streamText } from 'ai' 2 | import { createWorkersAI } from 'workers-ai-provider' 3 | 4 | export default defineEventHandler(async (event) => { 5 | const { messages } = await readBody(event) 6 | 7 | // Enable AI Gateway if defined in environment variables 8 | const gateway = process.env.CLOUDFLARE_AI_GATEWAY_ID 9 | ? { 10 | id: process.env.CLOUDFLARE_AI_GATEWAY_ID, 11 | cacheTtl: 60 * 60 * 24 // 24 hours 12 | } 13 | : undefined 14 | const workersAI = createWorkersAI({ binding: hubAI(), gateway }) 15 | 16 | return streamText({ 17 | model: workersAI('@cf/meta/llama-3.2-3b-instruct'), 18 | maxTokens: 10000, 19 | system: 'You are a helpful assistant that can answer questions and help.', 20 | messages 21 | }).toDataStreamResponse() 22 | }) 23 | -------------------------------------------------------------------------------- /docs/server/api/component-example.get.ts: -------------------------------------------------------------------------------- 1 | import { defineEventHandler, createError, appendHeader } from 'h3' 2 | import { pascalCase } from 'scule' 3 | // @ts-expect-error - no types available 4 | import components from '#component-example/nitro' 5 | 6 | export default defineEventHandler((event) => { 7 | appendHeader(event, 'Access-Control-Allow-Origin', '*') 8 | const componentName = (event.context.params?.['component?'] || '').replace(/\.json$/, '') 9 | if (componentName) { 10 | const component = components[pascalCase(componentName)] 11 | if (!component) { 12 | throw createError({ 13 | statusMessage: 'Example not found!', 14 | statusCode: 404 15 | }) 16 | } 17 | return component 18 | } 19 | }) 20 | -------------------------------------------------------------------------------- /docs/server/api/pulls.json.get.ts: -------------------------------------------------------------------------------- 1 | import { Octokit } from '@octokit/rest' 2 | 3 | function isUserABot(user: any) { 4 | return user?.login?.endsWith('-bot') || user?.login?.endsWith('[bot]') 5 | } 6 | 7 | export default cachedEventHandler(async () => { 8 | if (!process.env.NUXT_GITHUB_TOKEN) { 9 | return [] 10 | } 11 | 12 | const octokit = new Octokit({ auth: process.env.NUXT_GITHUB_TOKEN }) 13 | 14 | const pulls = await octokit.paginate(octokit.rest.pulls.list, { 15 | owner: 'nuxt', 16 | repo: 'ui', 17 | state: 'closed' 18 | }) 19 | 20 | return pulls.filter(pull => !!pull.merged_at).filter(pull => !isUserABot(pull.user)) 21 | }, { 22 | maxAge: 60 * 60 23 | }) 24 | -------------------------------------------------------------------------------- /docs/server/api/releases.json.get.ts: -------------------------------------------------------------------------------- 1 | import { Octokit } from '@octokit/rest' 2 | 3 | export default cachedEventHandler(async () => { 4 | if (!process.env.NUXT_GITHUB_TOKEN) { 5 | return [] 6 | } 7 | 8 | const octokit = new Octokit({ auth: process.env.NUXT_GITHUB_TOKEN }) 9 | 10 | const { data: releases } = await octokit.rest.repos.listReleases({ 11 | owner: 'nuxt', 12 | repo: 'ui' 13 | }) 14 | 15 | return releases 16 | }, { 17 | maxAge: 60 * 60 18 | }) 19 | -------------------------------------------------------------------------------- /docs/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.nuxt/tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- 1 | import { createConfigForNuxt } from '@nuxt/eslint-config/flat' 2 | 3 | export default createConfigForNuxt({ 4 | features: { 5 | tooling: true, 6 | stylistic: { 7 | commaDangle: 'never', 8 | braceStyle: '1tbs' 9 | } 10 | } 11 | }).overrideRules({ 12 | 'import/first': 'off', 13 | 'import/order': 'off', 14 | 'vue/multi-word-component-names': 'off', 15 | 'vue/max-attributes-per-line': ['error', { singleline: 5 }], 16 | '@typescript-eslint/ban-types': 'off', 17 | '@typescript-eslint/no-empty-object-type': 'off', 18 | '@typescript-eslint/no-explicit-any': 'off' 19 | }) 20 | -------------------------------------------------------------------------------- /playground-vue/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | Nuxt UI - Vue Playground 10 | 11 | 12 |
13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /playground-vue/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "playground-vue", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vite build", 9 | "preview": "vite preview", 10 | "typecheck": "vue-tsc -p ./tsconfig.app.json" 11 | }, 12 | "dependencies": { 13 | "@nuxt/ui": "latest", 14 | "vue": "^3.5.15", 15 | "vue-router": "^4.5.1", 16 | "zod": "^3.25.28" 17 | }, 18 | "devDependencies": { 19 | "@vitejs/plugin-vue": "^5.2.4", 20 | "typescript": "^5.8.3", 21 | "vite": "^6.3.5", 22 | "vue-tsc": "^2.2.10" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /playground-vue/public/logo.svg: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /playground-vue/src/assets/css/main.css: -------------------------------------------------------------------------------- 1 | @import "tailwindcss" source("../../../.."); 2 | @import "@nuxt/ui"; 3 | 4 | @theme static { 5 | --font-sans: 'Public Sans', sans-serif; 6 | 7 | --color-green-50: #EFFDF5; 8 | --color-green-100: #D9FBE8; 9 | --color-green-200: #B3F5D1; 10 | --color-green-300: #75EDAE; 11 | --color-green-400: #00DC82; 12 | --color-green-500: #00C16A; 13 | --color-green-600: #00A155; 14 | --color-green-700: #007F45; 15 | --color-green-800: #016538; 16 | --color-green-900: #0A5331; 17 | --color-green-950: #052E16; 18 | } 19 | -------------------------------------------------------------------------------- /playground-vue/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /playground-vue/tsconfig.app.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2020", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "lib": [ 7 | "ES2020", 8 | "DOM", 9 | "DOM.Iterable" 10 | ], 11 | "skipLibCheck": true, 12 | /* Bundler mode */ 13 | "moduleResolution": "bundler", 14 | "allowImportingTsExtensions": true, 15 | "isolatedModules": true, 16 | "moduleDetection": "force", 17 | "noEmit": true, 18 | "jsx": "preserve", 19 | /* Linting */ 20 | "strict": true, 21 | "noUnusedLocals": true, 22 | "noUnusedParameters": true, 23 | "noFallthroughCasesInSwitch": true 24 | }, 25 | "include": [ 26 | "src/**/*.ts", 27 | "src/**/*.tsx", 28 | "src/**/*.vue", 29 | "auto-imports.d.ts", 30 | "components.d.ts", 31 | "app.config.ts" 32 | ] 33 | } 34 | -------------------------------------------------------------------------------- /playground-vue/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": [], 3 | "references": [ 4 | { "path": "./tsconfig.app.json" }, 5 | { "path": "./tsconfig.node.json" } 6 | ] 7 | } 8 | -------------------------------------------------------------------------------- /playground-vue/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES2022", 4 | "lib": ["ES2023"], 5 | "module": "ESNext", 6 | "skipLibCheck": true, 7 | 8 | /* Bundler mode */ 9 | "moduleResolution": "bundler", 10 | "allowImportingTsExtensions": true, 11 | "isolatedModules": true, 12 | "moduleDetection": "force", 13 | "noEmit": true, 14 | 15 | /* Linting */ 16 | "strict": true, 17 | "noUnusedLocals": true, 18 | "noUnusedParameters": true, 19 | "noFallthroughCasesInSwitch": true 20 | }, 21 | "include": ["vite.config.ts"] 22 | } 23 | -------------------------------------------------------------------------------- /playground/app/app.config.ts: -------------------------------------------------------------------------------- 1 | export default defineAppConfig({ 2 | toaster: { 3 | position: 'bottom-right' as const, 4 | expand: true, 5 | duration: 5000 6 | }, 7 | ui: { 8 | colors: { 9 | primary: 'green', 10 | neutral: 'slate' 11 | } 12 | } 13 | }) 14 | -------------------------------------------------------------------------------- /playground/app/assets/css/main.css: -------------------------------------------------------------------------------- 1 | @import "tailwindcss" source("../../../.."); 2 | @import "@nuxt/ui"; 3 | 4 | @theme static { 5 | --font-sans: 'Public Sans', sans-serif; 6 | 7 | --color-green-50: #EFFDF5; 8 | --color-green-100: #D9FBE8; 9 | --color-green-200: #B3F5D1; 10 | --color-green-300: #75EDAE; 11 | --color-green-400: #00DC82; 12 | --color-green-500: #00C16A; 13 | --color-green-600: #00A155; 14 | --color-green-700: #007F45; 15 | --color-green-800: #016538; 16 | --color-green-900: #0A5331; 17 | --color-green-950: #052E16; 18 | } 19 | -------------------------------------------------------------------------------- /playground/app/components/ModalExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 16 | -------------------------------------------------------------------------------- /playground/app/components/Placeholder.vue: -------------------------------------------------------------------------------- 1 | 22 | -------------------------------------------------------------------------------- /playground/app/components/SlideoverExample.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 20 | -------------------------------------------------------------------------------- /playground/app/pages/components/breadcrumb.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 33 | -------------------------------------------------------------------------------- /playground/app/pages/components/calendar.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 25 | -------------------------------------------------------------------------------- /playground/app/pages/components/card.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 26 | -------------------------------------------------------------------------------- /playground/app/pages/components/collapsible.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 27 | -------------------------------------------------------------------------------- /playground/app/pages/components/color-picker.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 27 | -------------------------------------------------------------------------------- /playground/app/pages/components/pagination.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 18 | -------------------------------------------------------------------------------- /playground/app/pages/components/skeleton.vue: -------------------------------------------------------------------------------- 1 | 11 | -------------------------------------------------------------------------------- /playground/app/pages/index.vue: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /playground/app/types/index.d.ts: -------------------------------------------------------------------------------- 1 | export interface User { 2 | id: number 3 | name: string 4 | email: string 5 | phone: string 6 | } 7 | -------------------------------------------------------------------------------- /playground/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "name": "@nuxt/ui-playground", 4 | "type": "module", 5 | "scripts": { 6 | "dev": "nuxi dev", 7 | "build": "nuxi build", 8 | "generate": "nuxi generate", 9 | "typecheck": "nuxt typecheck" 10 | }, 11 | "dependencies": { 12 | "@iconify-json/lucide": "^1.2.44", 13 | "@iconify-json/simple-icons": "^1.2.35", 14 | "@nuxt/ui": "latest", 15 | "@nuxthub/core": "^0.8.27", 16 | "nuxt": "^3.17.4", 17 | "zod": "^3.25.28" 18 | }, 19 | "devDependencies": { 20 | "typescript": "^5.8.3", 21 | "vue-tsc": "^2.2.10" 22 | }, 23 | "resolutions": { 24 | "unimport": "4.1.1" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /playground/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/playground/public/favicon.ico -------------------------------------------------------------------------------- /playground/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "./.nuxt/tsconfig.json" 3 | } 4 | -------------------------------------------------------------------------------- /pnpm-workspace.yaml: -------------------------------------------------------------------------------- 1 | packages: 2 | - "./" 3 | - "cli" 4 | - "docs" 5 | - "playground" 6 | - "playground-vue" 7 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": [ 3 | "github>nuxt/renovate-config-nuxt" 4 | ], 5 | "lockFileMaintenance": { 6 | "enabled": true 7 | }, 8 | "baseBranches": ["v2", "v3"], 9 | "packageRules": [{ 10 | "matchBaseBranches": ["v3"], 11 | "labels": ["v3"] 12 | }, { 13 | "groupName": "tailwindcss", 14 | "matchPackageNames": [ 15 | "tailwindcss", 16 | "@tailwindcss/postcss", 17 | "@tailwindcss/vite" 18 | ] 19 | }, { 20 | "groupName": "reka-ui", 21 | "matchPackageNames": [ 22 | "reka-ui" 23 | ] 24 | }, { 25 | "matchDepTypes": ["peerDependencies"], 26 | "enabled": false 27 | }, { 28 | "matchDepTypes": ["resolutions"], 29 | "enabled": false 30 | }], 31 | "postUpdateOptions": ["pnpmDedupe"] 32 | } 33 | -------------------------------------------------------------------------------- /scripts/release.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # Restore all git changes 4 | git restore -s@ -SW -- . 5 | 6 | # Update token 7 | if [[ ! -z ${NODE_AUTH_TOKEN} ]] ; then 8 | echo "//registry.npmjs.org/:_authToken=${NODE_AUTH_TOKEN}" >> ~/.npmrc 9 | echo "registry=https://registry.npmjs.org/" >> ~/.npmrc 10 | echo "always-auth=true" >> ~/.npmrc 11 | npm whoami 12 | fi 13 | 14 | # Release package 15 | echo "Publishing @nuxt/ui" 16 | npm publish --access public 17 | -------------------------------------------------------------------------------- /src/defaults.ts: -------------------------------------------------------------------------------- 1 | import icons from './theme/icons' 2 | 3 | import { pick } from './runtime/utils' 4 | 5 | export const getDefaultUiConfig = (colors?: string[]) => ({ 6 | colors: pick({ 7 | primary: 'green', 8 | secondary: 'blue', 9 | success: 'green', 10 | info: 'blue', 11 | warning: 'yellow', 12 | error: 'red', 13 | neutral: 'slate' 14 | }, [...(colors || []), 'neutral' as any]), 15 | icons 16 | }) 17 | 18 | export const defaultOptions = { 19 | prefix: 'U', 20 | fonts: true, 21 | colorMode: true, 22 | theme: { 23 | colors: undefined, 24 | transitions: true 25 | } 26 | } 27 | 28 | export const resolveColors = (colors?: string[]) => { 29 | return colors?.length 30 | ? [...new Set(['primary', ...colors])] 31 | : ['primary', 'secondary', 'success', 'info', 'warning', 'error'] 32 | } 33 | -------------------------------------------------------------------------------- /src/plugins/auto-import.ts: -------------------------------------------------------------------------------- 1 | import { join } from 'pathe' 2 | import type { UnpluginContextMeta, UnpluginOptions } from 'unplugin' 3 | import { defu } from 'defu' 4 | 5 | import { runtimeDir } from '../unplugin' 6 | import type { NuxtUIOptions } from '../unplugin' 7 | import AutoImport from 'unplugin-auto-import' 8 | import type { Options as AutoImportOptions } from 'unplugin-auto-import/types' 9 | 10 | /** 11 | * This plugin adds all the Nuxt UI composables as auto-imports. 12 | */ 13 | export default function AutoImportPlugin(options: NuxtUIOptions, meta: UnpluginContextMeta): UnpluginOptions { 14 | const pluginOptions = defu(options.autoImport, { 15 | dts: options.dts ?? true, 16 | dirs: [join(runtimeDir, 'composables'), join(runtimeDir, 'vue/composables')] 17 | }) 18 | 19 | return AutoImport.raw(pluginOptions, meta) as UnpluginOptions 20 | } 21 | -------------------------------------------------------------------------------- /src/runtime/components/Icon.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 23 | 24 | 27 | -------------------------------------------------------------------------------- /src/runtime/components/OverlayProvider.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 30 | -------------------------------------------------------------------------------- /src/runtime/composables/defineLocale.ts: -------------------------------------------------------------------------------- 1 | import { defu } from 'defu' 2 | import type { Locale, Direction } from '../types/locale' 3 | 4 | interface DefineLocaleOptions { 5 | name: string 6 | code: string 7 | dir?: Direction 8 | messages: M 9 | } 10 | 11 | /* @__NO_SIDE_EFFECTS__ */ 12 | export function defineLocale(options: DefineLocaleOptions): Locale { 13 | return defu, [{ dir: Direction }]>(options, { dir: 'ltr' }) 14 | } 15 | -------------------------------------------------------------------------------- /src/runtime/composables/useAvatarGroup.ts: -------------------------------------------------------------------------------- 1 | import { inject, provide, computed, type ComputedRef, type InjectionKey } from 'vue' 2 | import type { AvatarGroupProps } from '../types' 3 | 4 | export const avatarGroupInjectionKey: InjectionKey> = Symbol('nuxt-ui.avatar-group') 5 | 6 | export function useAvatarGroup(props: { size: AvatarGroupProps['size'] }) { 7 | const avatarGroup = inject(avatarGroupInjectionKey, undefined) 8 | 9 | const size = computed(() => props.size ?? avatarGroup?.value.size) 10 | provide(avatarGroupInjectionKey, computed(() => ({ size: size.value }))) 11 | 12 | return { 13 | size 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /src/runtime/composables/useButtonGroup.ts: -------------------------------------------------------------------------------- 1 | import type { InjectionKey, ComputedRef } from 'vue' 2 | import { inject, computed } from 'vue' 3 | import type { ButtonGroupProps } from '../components/ButtonGroup.vue' 4 | import type { GetObjectField } from '../types/utils' 5 | 6 | export const buttonGroupInjectionKey: InjectionKey> = Symbol('nuxt-ui.button-group') 10 | 11 | type Props = { 12 | size?: GetObjectField 13 | } 14 | 15 | export function useButtonGroup(props: Props) { 16 | const buttonGroup = inject(buttonGroupInjectionKey, undefined) 17 | return { 18 | orientation: computed(() => buttonGroup?.value.orientation), 19 | size: computed(() => props?.size ?? buttonGroup?.value.size) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /src/runtime/composables/useLocale.ts: -------------------------------------------------------------------------------- 1 | import { computed, inject, toRef } from 'vue' 2 | import type { InjectionKey, Ref } from 'vue' 3 | import { createSharedComposable } from '@vueuse/core' 4 | import type { Locale, Messages } from '../types/locale' 5 | import { buildLocaleContext } from '../utils/locale' 6 | import en from '../locale/en' 7 | 8 | export const localeContextInjectionKey: InjectionKey | undefined>> = Symbol.for('nuxt-ui.locale-context') 9 | 10 | const _useLocale = (localeOverrides?: Ref | undefined>) => { 11 | const locale = localeOverrides || toRef(inject>(localeContextInjectionKey)) 12 | 13 | return buildLocaleContext(computed(() => locale.value || en)) 14 | } 15 | 16 | export const useLocale = /* @__PURE__ */ createSharedComposable(_useLocale) 17 | -------------------------------------------------------------------------------- /src/runtime/composables/usePortal.ts: -------------------------------------------------------------------------------- 1 | import { inject, provide, computed, type Ref, type InjectionKey } from 'vue' 2 | 3 | export const portalTargetInjectionKey: InjectionKey> = Symbol('nuxt-ui.portal-target') 4 | 5 | export function usePortal(portal: Ref) { 6 | const portalTarget = inject(portalTargetInjectionKey, undefined) 7 | 8 | const to = computed(() => { 9 | if (typeof portal.value === 'boolean' || portal.value === undefined) { 10 | return portalTarget?.value ?? 'body' 11 | } 12 | 13 | return portal.value 14 | }) 15 | 16 | const disabled = computed(() => typeof portal.value === 'boolean' ? !portal.value : false) 17 | 18 | provide(portalTargetInjectionKey, computed(() => to.value)) 19 | 20 | return computed(() => ({ 21 | to: to.value, 22 | disabled: disabled.value 23 | })) 24 | } 25 | -------------------------------------------------------------------------------- /src/runtime/types/app.config.d.ts: -------------------------------------------------------------------------------- 1 | declare module '#build/app.config' { 2 | import type { AppConfig } from '@nuxt/schema' 3 | 4 | const _default: AppConfig 5 | export default _default 6 | } 7 | -------------------------------------------------------------------------------- /src/runtime/utils/tv.ts: -------------------------------------------------------------------------------- 1 | import { createTV, type defaultConfig } from 'tailwind-variants' 2 | import type { AppConfig } from '@nuxt/schema' 3 | import appConfig from '#build/app.config' 4 | 5 | const appConfigTv = appConfig as AppConfig & { ui: { tv: typeof defaultConfig } } 6 | 7 | export const tv = /* @__PURE__ */ createTV(appConfigTv.ui?.tv) 8 | -------------------------------------------------------------------------------- /src/runtime/vue/components/Icon.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 16 | -------------------------------------------------------------------------------- /src/runtime/vue/composables/useAppConfig.ts: -------------------------------------------------------------------------------- 1 | import { reactive } from 'vue' 2 | import appConfig from '#build/app.config' 3 | 4 | const _appConfig = reactive(appConfig) 5 | 6 | export const useAppConfig = () => _appConfig 7 | -------------------------------------------------------------------------------- /src/runtime/vue/plugins/color-mode.ts: -------------------------------------------------------------------------------- 1 | import { useDark } from '@vueuse/core' 2 | import type { Plugin } from 'vue' 3 | 4 | export default { 5 | install() { 6 | useDark() 7 | } 8 | } satisfies Plugin 9 | -------------------------------------------------------------------------------- /src/runtime/vue/plugins/head.ts: -------------------------------------------------------------------------------- 1 | import { createHead } from '@unhead/vue/client' 2 | import type { Plugin } from 'vue' 3 | 4 | export default { 5 | install(app) { 6 | // check for existing head instance to avoid replacement 7 | // bit hacky but we can't use injectHead() here 8 | if (app._context.provides.usehead) { 9 | return 10 | } 11 | const head = createHead() 12 | app.use(head) 13 | } 14 | } satisfies Plugin 15 | -------------------------------------------------------------------------------- /src/theme/accordion.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | root: 'w-full', 4 | item: 'border-b border-default last:border-b-0', 5 | header: 'flex', 6 | trigger: 'group flex-1 flex items-center gap-1.5 font-medium text-sm py-3.5 focus-visible:outline-primary min-w-0', 7 | content: 'data-[state=open]:animate-[accordion-down_200ms_ease-out] data-[state=closed]:animate-[accordion-up_200ms_ease-out] overflow-hidden focus:outline-none', 8 | body: 'text-sm pb-3.5', 9 | leadingIcon: 'shrink-0 size-5', 10 | trailingIcon: 'shrink-0 size-5 ms-auto group-data-[state=open]:rotate-180 transition-transform duration-200', 11 | label: 'text-start break-words' 12 | }, 13 | variants: { 14 | disabled: { 15 | true: { 16 | trigger: 'cursor-not-allowed opacity-75' 17 | } 18 | } 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src/theme/avatar-group.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | root: 'inline-flex flex-row-reverse justify-end', 4 | base: 'relative rounded-full ring-bg first:me-0' 5 | }, 6 | variants: { 7 | size: { 8 | '3xs': { 9 | base: 'ring -me-0.5' 10 | }, 11 | '2xs': { 12 | base: 'ring -me-0.5' 13 | }, 14 | 'xs': { 15 | base: 'ring -me-0.5' 16 | }, 17 | 'sm': { 18 | base: 'ring-2 -me-1.5' 19 | }, 20 | 'md': { 21 | base: 'ring-2 -me-1.5' 22 | }, 23 | 'lg': { 24 | base: 'ring-2 -me-1.5' 25 | }, 26 | 'xl': { 27 | base: 'ring-3 -me-2' 28 | }, 29 | '2xl': { 30 | base: 'ring-3 -me-2' 31 | }, 32 | '3xl': { 33 | base: 'ring-3 -me-2' 34 | } 35 | } 36 | }, 37 | defaultVariants: { 38 | size: 'md' 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /src/theme/card.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | root: 'rounded-lg', 4 | header: 'p-4 sm:px-6', 5 | body: 'p-4 sm:p-6', 6 | footer: 'p-4 sm:px-6' 7 | }, 8 | variants: { 9 | variant: { 10 | solid: { 11 | root: 'bg-inverted text-inverted' 12 | }, 13 | outline: { 14 | root: 'bg-default ring ring-default divide-y divide-default' 15 | }, 16 | soft: { 17 | root: 'bg-elevated/50 divide-y divide-default' 18 | }, 19 | subtle: { 20 | root: 'bg-elevated/50 ring ring-default divide-y divide-default' 21 | } 22 | } 23 | }, 24 | defaultVariants: { 25 | variant: 'outline' 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /src/theme/collapsible.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | root: '', 4 | content: 'data-[state=open]:animate-[collapsible-down_200ms_ease-out] data-[state=closed]:animate-[collapsible-up_200ms_ease-out] overflow-hidden' 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/theme/container.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | base: 'w-full max-w-(--ui-container) mx-auto px-4 sm:px-6 lg:px-8' 3 | } 4 | -------------------------------------------------------------------------------- /src/theme/form-field.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | root: '', 4 | wrapper: '', 5 | labelWrapper: 'flex content-center items-center justify-between', 6 | label: 'block font-medium text-default', 7 | container: 'mt-1 relative', 8 | description: 'text-muted', 9 | error: 'mt-2 text-error', 10 | hint: 'text-muted', 11 | help: 'mt-2 text-muted' 12 | }, 13 | variants: { 14 | size: { 15 | xs: { root: 'text-xs' }, 16 | sm: { root: 'text-xs' }, 17 | md: { root: 'text-sm' }, 18 | lg: { root: 'text-sm' }, 19 | xl: { root: 'text-base' } 20 | }, 21 | required: { 22 | true: { 23 | label: `after:content-['*'] after:ms-0.5 after:text-error` 24 | } 25 | } 26 | }, 27 | defaultVariants: { 28 | size: 'md' 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src/theme/form.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | base: '' 3 | } 4 | -------------------------------------------------------------------------------- /src/theme/icons.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | arrowLeft: 'i-lucide-arrow-left', 3 | arrowRight: 'i-lucide-arrow-right', 4 | check: 'i-lucide-check', 5 | chevronDoubleLeft: 'i-lucide-chevrons-left', 6 | chevronDoubleRight: 'i-lucide-chevrons-right', 7 | chevronDown: 'i-lucide-chevron-down', 8 | chevronLeft: 'i-lucide-chevron-left', 9 | chevronRight: 'i-lucide-chevron-right', 10 | chevronUp: 'i-lucide-chevron-up', 11 | close: 'i-lucide-x', 12 | ellipsis: 'i-lucide-ellipsis', 13 | external: 'i-lucide-arrow-up-right', 14 | folder: 'i-lucide-folder', 15 | folderOpen: 'i-lucide-folder-open', 16 | loading: 'i-lucide-loader-circle', 17 | minus: 'i-lucide-minus', 18 | plus: 'i-lucide-plus', 19 | search: 'i-lucide-search' 20 | } 21 | -------------------------------------------------------------------------------- /src/theme/kbd.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | base: 'inline-flex items-center justify-center px-1 rounded-sm font-medium font-sans', 3 | variants: { 4 | variant: { 5 | solid: 'bg-inverted text-inverted', 6 | outline: 'bg-default text-highlighted ring ring-inset ring-accented', 7 | subtle: 'bg-elevated text-default ring ring-inset ring-accented' 8 | }, 9 | size: { 10 | sm: 'h-4 min-w-[16px] text-[10px]', 11 | md: 'h-5 min-w-[20px] text-[11px]', 12 | lg: 'h-6 min-w-[24px] text-[12px]' 13 | } 14 | }, 15 | defaultVariants: { 16 | variant: 'outline', 17 | size: 'md' 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /src/theme/link.ts: -------------------------------------------------------------------------------- 1 | import type { ModuleOptions } from '../module' 2 | 3 | export default (options: Required) => ({ 4 | base: 'focus-visible:outline-primary', 5 | variants: { 6 | active: { 7 | true: 'text-primary', 8 | false: 'text-muted' 9 | }, 10 | disabled: { 11 | true: 'cursor-not-allowed opacity-75' 12 | } 13 | }, 14 | compoundVariants: [{ 15 | active: false, 16 | disabled: false, 17 | class: ['hover:text-default', options.theme.transitions && 'transition-colors'] 18 | }] 19 | }) 20 | -------------------------------------------------------------------------------- /src/theme/pagination.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | root: '', 4 | list: 'flex items-center gap-1', 5 | ellipsis: 'pointer-events-none', 6 | label: 'min-w-5 text-center', 7 | first: '', 8 | prev: '', 9 | item: '', 10 | next: '', 11 | last: '' 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /src/theme/popover.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | content: 'bg-default shadow-lg rounded-md ring ring-default data-[state=open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-popover-content-transform-origin) focus:outline-none pointer-events-auto', 4 | arrow: 'fill-default' 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /src/theme/select-menu.ts: -------------------------------------------------------------------------------- 1 | import { defuFn } from 'defu' 2 | import type { ModuleOptions } from '../module' 3 | import select from './select' 4 | 5 | export default (options: Required) => { 6 | return defuFn({ 7 | slots: { 8 | input: 'border-b border-default', 9 | focusScope: 'flex flex-col min-h-0', 10 | content: (content: string) => [content, 'origin-(--reka-combobox-content-transform-origin) w-(--reka-combobox-trigger-width)'] 11 | } 12 | }, select(options)) 13 | } 14 | -------------------------------------------------------------------------------- /src/theme/skeleton.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | base: 'animate-pulse rounded-md bg-elevated' 3 | } 4 | -------------------------------------------------------------------------------- /src/theme/tooltip.ts: -------------------------------------------------------------------------------- 1 | export default { 2 | slots: { 3 | content: 'flex items-center gap-1 bg-default text-highlighted shadow-sm rounded-sm ring ring-default h-6 px-2.5 py-1 text-xs select-none data-[state=delayed-open]:animate-[scale-in_100ms_ease-out] data-[state=closed]:animate-[scale-out_100ms_ease-in] origin-(--reka-tooltip-content-transform-origin) pointer-events-auto', 4 | arrow: 'fill-default', 5 | text: 'truncate', 6 | kbds: `hidden lg:inline-flex items-center shrink-0 gap-0.5 before:content-['·'] before:me-0.5`, 7 | kbdsSize: 'sm' 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /src/vite.ts: -------------------------------------------------------------------------------- 1 | import { NuxtUIPlugin } from './unplugin' 2 | 3 | export type { NuxtUIOptions } from './unplugin' 4 | export default NuxtUIPlugin.vite 5 | -------------------------------------------------------------------------------- /test/component-render.ts: -------------------------------------------------------------------------------- 1 | import path from 'node:path' 2 | import { mountSuspended } from '@nuxt/test-utils/runtime' 3 | 4 | export default async function (nameOrHtml: string, options: any, component: any) { 5 | let html: string 6 | const name = component.__file ? path.parse(component.__file).name : undefined 7 | if (options === undefined) { 8 | const app = { 9 | template: nameOrHtml, 10 | components: { [`U${name}`]: component } 11 | } 12 | const result = await mountSuspended(app) 13 | html = result.html() 14 | } else { 15 | const cResult = await mountSuspended(component, options) 16 | html = cResult.html() 17 | } 18 | return html 19 | } 20 | -------------------------------------------------------------------------------- /test/components/Container.spec.ts: -------------------------------------------------------------------------------- 1 | import { describe, it, expect } from 'vitest' 2 | import Container, { type ContainerProps, type ContainerSlots } from '../../src/runtime/components/Container.vue' 3 | import ComponentRender from '../component-render' 4 | 5 | describe('Container', () => { 6 | it.each([ 7 | // Props 8 | ['with as', { props: { as: 'article' } }], 9 | ['with class', { props: { class: 'max-w-5xl' } }], 10 | // Slots 11 | ['with default slot', { slots: { default: () => 'Default slot' } }] 12 | ])('renders %s correctly', async (nameOrHtml: string, options: { props?: ContainerProps, slots?: Partial }) => { 13 | const html = await ComponentRender(nameOrHtml, options, Container) 14 | expect(html).toMatchSnapshot() 15 | }) 16 | }) 17 | -------------------------------------------------------------------------------- /test/components/Skeleton.spec.ts: -------------------------------------------------------------------------------- 1 | import { describe, it, expect } from 'vitest' 2 | import Skeleton, { type SkeletonProps } from '../../src/runtime/components/Skeleton.vue' 3 | import ComponentRender from '../component-render' 4 | 5 | describe('Skeleton', () => { 6 | it.each([ 7 | // Props 8 | ['with as', { props: { as: 'span' } }], 9 | ['with class', { props: { class: 'rounded-full size-12' } }] 10 | ])('renders %s correctly', async (nameOrHtml: string, options: { props?: SkeletonProps }) => { 11 | const html = await ComponentRender(nameOrHtml, options, Skeleton) 12 | expect(html).toMatchSnapshot() 13 | }) 14 | }) 15 | -------------------------------------------------------------------------------- /test/components/__snapshots__/Container-vue.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`Container > renders with as correctly 1`] = `"
"`; 4 | 5 | exports[`Container > renders with class correctly 1`] = `"
"`; 6 | 7 | exports[`Container > renders with default slot correctly 1`] = `"
Default slot
"`; 8 | -------------------------------------------------------------------------------- /test/components/__snapshots__/Container.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`Container > renders with as correctly 1`] = `"
"`; 4 | 5 | exports[`Container > renders with class correctly 1`] = `"
"`; 6 | 7 | exports[`Container > renders with default slot correctly 1`] = `"
Default slot
"`; 8 | -------------------------------------------------------------------------------- /test/components/__snapshots__/Skeleton-vue.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`Skeleton > renders with as correctly 1`] = `""`; 4 | 5 | exports[`Skeleton > renders with class correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /test/components/__snapshots__/Skeleton.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html 2 | 3 | exports[`Skeleton > renders with as correctly 1`] = `""`; 4 | 5 | exports[`Skeleton > renders with class correctly 1`] = `""`; 6 | -------------------------------------------------------------------------------- /test/nuxt/nuxt.config.ts: -------------------------------------------------------------------------------- 1 | export default defineNuxtConfig({ 2 | modules: ['../../src/module'] 3 | }) 4 | -------------------------------------------------------------------------------- /test/nuxt/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/nuxt/ui/546df572fca60325315bed17c9be3367052fb7a9/test/nuxt/setup.ts -------------------------------------------------------------------------------- /test/utils/setup.ts: -------------------------------------------------------------------------------- 1 | // @ts-expect-error incomplete implementation 2 | window.IntersectionObserver = class IntersectionObserver { 3 | // eslint-disable-next-line 4 | constructor() {} 5 | observe() {} 6 | unobserve() {} 7 | disconnect() {} 8 | } 9 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | // https://nuxt.com/docs/guide/concepts/typescript 3 | "extends": "./.nuxt/tsconfig.json", 4 | "exclude": ["cli", "docs", "dist", "playground", "playground-vue", "node_modules"] 5 | } 6 | -------------------------------------------------------------------------------- /vercel.json: -------------------------------------------------------------------------------- 1 | { 2 | "git": { 3 | "deploymentEnabled": false 4 | }, 5 | "github": { 6 | "silent": true 7 | } 8 | } -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- 1 | import { fileURLToPath } from 'node:url' 2 | import { defineVitestConfig } from '@nuxt/test-utils/config' 3 | 4 | export default defineVitestConfig({ 5 | test: { 6 | testTimeout: 1000, 7 | globals: true, 8 | silent: true, 9 | include: ['./test/components/**.spec.ts'], 10 | environment: 'nuxt', 11 | environmentOptions: { 12 | nuxt: { 13 | rootDir: fileURLToPath(new URL('test/nuxt/', import.meta.url)) 14 | } 15 | }, 16 | setupFiles: fileURLToPath(new URL('test/nuxt/setup.ts', import.meta.url)) 17 | } 18 | }) 19 | -------------------------------------------------------------------------------- /vue-plugin.d.ts: -------------------------------------------------------------------------------- 1 | import type { Plugin } from 'vue' 2 | 3 | declare const plugin: Plugin 4 | 5 | export default plugin 6 | --------------------------------------------------------------------------------