[{"data":1,"prerenderedAt":1932},["ShallowReactive",2],{"navigation":3,"-docs-getting-started-contribution":918,"-docs-getting-started-contribution-description":1922},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","/docs","docs",[9,157,781,817],{"title":10,"path":11,"stem":12,"children":13,"framework":16,"category":16,"description":16,"icon":30},"Get Started","/docs/getting-started","docs/1.getting-started/1.index",[14,19,37,47,53,76,140],{"title":15,"path":11,"stem":12,"framework":16,"category":16,"description":17,"icon":18},"Introduction",null,"Nuxt UI is a comprehensive Vue UI component library (Nuxt optional), offering 125+ accessible, Tailwind CSS components for building modern web applications.","i-lucide-house",{"title":20,"framework":16,"category":16,"description":16,"shadow":21,"path":22,"stem":23,"children":24,"page":36},"Installation",true,"/docs/getting-started/installation","docs/1.getting-started/2.installation",[25,31],{"title":20,"path":26,"stem":27,"framework":28,"category":16,"description":29,"icon":30},"/docs/getting-started/installation/nuxt","docs/1.getting-started/2.installation/1.nuxt","nuxt","Learn how to install and configure Nuxt UI in your Nuxt application.","i-lucide-square-play",{"title":20,"path":32,"stem":33,"framework":34,"category":16,"description":35,"icon":30},"/docs/getting-started/installation/vue","docs/1.getting-started/2.installation/2.vue","vue","Learn how to install and configure Nuxt UI in your Vue application, compatible with both plain Vite and Inertia.",false,{"title":38,"framework":16,"category":16,"description":16,"icon":39,"shadow":21,"path":40,"stem":41,"children":42,"page":36},"Migration","i-lucide-arrow-right-left","/docs/getting-started/migration","docs/1.getting-started/3.migration",[43],{"title":38,"path":44,"stem":45,"framework":16,"category":16,"description":46,"icon":39},"/docs/getting-started/migration/v4","docs/1.getting-started/3.migration/1.v4","A comprehensive guide to migrate your application from Nuxt UI v3 to Nuxt UI v4.",{"title":48,"path":49,"stem":50,"framework":16,"category":16,"description":51,"icon":52},"Contribution","/docs/getting-started/contribution","docs/1.getting-started/4.contribution","A comprehensive guide on contributing to Nuxt UI, including project structure, development workflow, and best practices.","i-lucide-handshake",{"title":54,"path":55,"stem":56,"children":57,"page":36},"Theme","/docs/getting-started/theme","docs/1.getting-started/5.theme",[58,64,70],{"title":59,"path":60,"stem":61,"framework":16,"category":16,"description":62,"icon":63},"Design System","/docs/getting-started/theme/design-system","docs/1.getting-started/5.theme/1.design-system","Nuxt UI's design system uses Tailwind CSS for simple theming and easy customization.","i-lucide-palette",{"title":65,"path":66,"stem":67,"framework":16,"category":16,"description":68,"icon":69},"CSS Variables","/docs/getting-started/theme/css-variables","docs/1.getting-started/5.theme/2.css-variables","Nuxt UI uses CSS variables as design tokens for flexible, consistent theming with built-in light and dark mode support.","i-lucide-swatch-book",{"title":71,"path":72,"stem":73,"framework":16,"category":16,"description":74,"icon":75},"Components","/docs/getting-started/theme/components","docs/1.getting-started/5.theme/3.components","Learn how to customize Nuxt UI components with the Tailwind Variants API for advanced, flexible, and maintainable styling.","i-lucide-layout-grid",{"title":77,"framework":16,"category":16,"description":16,"path":78,"stem":79,"children":80,"page":36},"Integrations","/docs/getting-started/integrations","docs/1.getting-started/6.integrations",[81,95,101,115,129,135],{"title":82,"framework":16,"category":16,"description":16,"shadow":21,"path":83,"stem":84,"children":85,"page":36},"Icons","/docs/getting-started/integrations/icons","docs/1.getting-started/6.integrations/1.icons",[86,91],{"title":82,"path":87,"stem":88,"framework":28,"category":16,"description":89,"icon":90},"/docs/getting-started/integrations/icons/nuxt","docs/1.getting-started/6.integrations/1.icons/1.nuxt","Nuxt UI integrates with Nuxt Icon to access over 200,000+ icons from Iconify.","i-lucide-smile",{"title":82,"path":92,"stem":93,"framework":34,"category":16,"description":94,"icon":90},"/docs/getting-started/integrations/icons/vue","docs/1.getting-started/6.integrations/1.icons/2.vue","Nuxt UI integrates with Iconify to access over 200,000+ icons.",{"title":96,"path":97,"stem":98,"framework":28,"category":16,"description":99,"icon":100},"Fonts","/docs/getting-started/integrations/fonts","docs/1.getting-started/6.integrations/2.fonts","Nuxt UI integrates with Nuxt Fonts to provide plug-and-play font optimization.","i-lucide-a-large-small",{"title":102,"framework":16,"category":16,"description":16,"shadow":21,"path":103,"stem":104,"children":105,"page":36},"Color Mode","/docs/getting-started/integrations/color-mode","docs/1.getting-started/6.integrations/3.color-mode",[106,111],{"title":102,"path":107,"stem":108,"framework":28,"category":16,"description":109,"icon":110},"/docs/getting-started/integrations/color-mode/nuxt","docs/1.getting-started/6.integrations/3.color-mode/1.nuxt","Nuxt UI integrates with Nuxt Color Mode to allow for easy switching between light and dark themes.","i-lucide-sun-moon",{"title":102,"path":112,"stem":113,"framework":34,"category":16,"description":114,"icon":110},"/docs/getting-started/integrations/color-mode/vue","docs/1.getting-started/6.integrations/3.color-mode/2.vue","Nuxt UI integrates with VueUse to allow for easy switching between light and dark themes.",{"title":116,"framework":16,"category":16,"description":16,"shadow":21,"path":117,"stem":118,"children":119,"page":36},"I18n","/docs/getting-started/integrations/i18n","docs/1.getting-started/6.integrations/4.i18n",[120,126],{"title":121,"path":122,"stem":123,"framework":28,"category":16,"description":124,"icon":125},"Internationalization (i18n)","/docs/getting-started/integrations/i18n/nuxt","docs/1.getting-started/6.integrations/4.i18n/1.nuxt","Nuxt UI supports 50+ locales and multi-directional (LTR/RTL) internationalization.","i-lucide-languages",{"title":121,"path":127,"stem":128,"framework":34,"category":16,"description":124,"icon":125},"/docs/getting-started/integrations/i18n/vue","docs/1.getting-started/6.integrations/4.i18n/2.vue",{"title":130,"path":131,"stem":132,"framework":28,"category":16,"description":133,"icon":134},"Content","/docs/getting-started/integrations/content","docs/1.getting-started/6.integrations/5.content","Nuxt UI integrates with Nuxt Content to deliver beautiful typography and consistent component styling.","i-simple-icons-markdown",{"title":136,"path":137,"stem":138,"framework":34,"category":16,"description":139,"icon":134},"SSR","/docs/getting-started/integrations/ssr","docs/1.getting-started/6.integrations/6.ssr","Nuxt UI has first-party support for Vue SSR. This guide will help you have it fully enabled.",{"title":141,"framework":16,"category":16,"description":16,"path":142,"stem":143,"children":144,"page":36},"AI Tools","/docs/getting-started/ai","docs/1.getting-started/7.ai",[145,151],{"title":146,"path":147,"stem":148,"framework":16,"category":16,"description":149,"icon":150},"MCP Server","/docs/getting-started/ai/mcp","docs/1.getting-started/7.ai/1.mcp","Use Nuxt UI components in your AI assistants with Model Context Protocol support.","i-lucide-server",{"title":152,"path":153,"stem":154,"framework":16,"category":16,"description":155,"icon":156},"LLMs.txt","/docs/getting-started/ai/llms-txt","docs/1.getting-started/7.ai/2.llms-txt","How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt UI components, theming, and best practices.","i-lucide-bot",{"title":71,"framework":16,"category":16,"description":16,"icon":158,"path":159,"stem":160,"children":161,"page":36},"i-lucide-square-code","/docs/components","docs/2.components",[162,168,174,180,186,191,196,201,206,211,216,222,227,232,237,242,247,252,258,263,268,273,278,284,289,294,299,305,310,315,320,325,330,335,340,346,351,356,361,366,372,378,383,388,393,398,403,408,413,418,423,428,433,440,445,450,455,460,465,470,475,480,485,490,495,500,505,510,515,520,525,530,535,540,545,550,555,561,566,571,576,581,586,591,596,601,606,611,616,621,626,631,636,641,646,651,656,661,666,671,676,681,686,691,696,701,706,711,716,721,726,731,736,741,746,751,756,761,766,771,776],{"title":163,"path":164,"stem":165,"framework":16,"category":166,"description":167},"Accordion","/docs/components/accordion","docs/2.components/accordion","data","A stacked set of collapsible panels.",{"title":169,"path":170,"stem":171,"framework":16,"category":172,"description":173},"Alert","/docs/components/alert","docs/2.components/alert","element","A callout to draw user's attention.",{"title":175,"path":176,"stem":177,"framework":16,"category":178,"description":179},"App","/docs/components/app","docs/2.components/app","layout","Wraps your app to provide global configurations and more.",{"title":181,"path":182,"stem":183,"framework":16,"category":184,"description":185},"AuthForm","/docs/components/auth-form","docs/2.components/auth-form","page","A customizable Form to create login, register or password reset forms.",{"title":187,"path":188,"stem":189,"framework":16,"category":172,"description":190},"Avatar","/docs/components/avatar","docs/2.components/avatar","An img element with fallback and Nuxt Image support.",{"title":192,"path":193,"stem":194,"framework":16,"category":172,"description":195},"AvatarGroup","/docs/components/avatar-group","docs/2.components/avatar-group","Stack multiple avatars in a group.",{"title":197,"path":198,"stem":199,"framework":16,"category":172,"description":200},"Badge","/docs/components/badge","docs/2.components/badge","A short text to represent a status or a category.",{"title":202,"path":203,"stem":204,"framework":16,"category":172,"description":205},"Banner","/docs/components/banner","docs/2.components/banner","Display a banner at the top of your website to inform users about important information.",{"title":207,"path":208,"stem":209,"framework":16,"category":184,"description":210},"BlogPost","/docs/components/blog-post","docs/2.components/blog-post","A customizable article to display in a blog page.",{"title":212,"path":213,"stem":214,"framework":16,"category":184,"description":215},"BlogPosts","/docs/components/blog-posts","docs/2.components/blog-posts","Display a list of blog posts in a responsive grid layout.",{"title":217,"path":218,"stem":219,"framework":16,"category":220,"description":221},"Breadcrumb","/docs/components/breadcrumb","docs/2.components/breadcrumb","navigation","A hierarchy of links to navigate through a website.",{"title":223,"path":224,"stem":225,"framework":16,"category":172,"description":226},"Button","/docs/components/button","docs/2.components/button","A button element that can act as a link or trigger an action.",{"title":228,"path":229,"stem":230,"framework":16,"category":172,"description":231},"Calendar","/docs/components/calendar","docs/2.components/calendar","A calendar component for selecting single dates, multiple dates or date ranges.",{"title":233,"path":234,"stem":235,"framework":16,"category":172,"description":236},"Card","/docs/components/card","docs/2.components/card","Display content in a card with a header, body and footer.",{"title":238,"path":239,"stem":240,"framework":16,"category":166,"description":241},"Carousel","/docs/components/carousel","docs/2.components/carousel","A carousel with motion and swipe built using Embla.",{"title":243,"path":244,"stem":245,"framework":16,"category":184,"description":246},"ChangelogVersion","/docs/components/changelog-version","docs/2.components/changelog-version","A customizable article to display in a changelog.",{"title":248,"path":249,"stem":250,"framework":16,"category":184,"description":251},"ChangelogVersions","/docs/components/changelog-versions","docs/2.components/changelog-versions","Display a list of changelog versions in a timeline.",{"title":253,"path":254,"stem":255,"framework":16,"category":256,"description":257},"ChatMessage","/docs/components/chat-message","docs/2.components/chat-message","chat","Display a chat message with icon, avatar, and actions.",{"title":259,"path":260,"stem":261,"framework":16,"category":256,"description":262},"ChatMessages","/docs/components/chat-messages","docs/2.components/chat-messages","Display a list of chat messages, designed to work seamlessly with Vercel AI SDK.",{"title":264,"path":265,"stem":266,"framework":16,"category":256,"description":267},"ChatPalette","/docs/components/chat-palette","docs/2.components/chat-palette","A chat palette to create a chatbot interface inside an overlay.",{"title":269,"path":270,"stem":271,"framework":16,"category":256,"description":272},"ChatPrompt","/docs/components/chat-prompt","docs/2.components/chat-prompt","An enhanced Textarea for submitting prompts in AI chat interfaces.",{"title":274,"path":275,"stem":276,"framework":16,"category":256,"description":277},"ChatPromptSubmit","/docs/components/chat-prompt-submit","docs/2.components/chat-prompt-submit","A Button for submitting chat prompts with automatic status handling.",{"title":279,"path":280,"stem":281,"framework":16,"category":282,"description":283},"Checkbox","/docs/components/checkbox","docs/2.components/checkbox","form","An input element to toggle between checked and unchecked states.",{"title":285,"path":286,"stem":287,"framework":16,"category":282,"description":288},"CheckboxGroup","/docs/components/checkbox-group","docs/2.components/checkbox-group","A set of checklist buttons to select multiple option from a list.",{"title":290,"path":291,"stem":292,"framework":16,"category":172,"description":293},"Chip","/docs/components/chip","docs/2.components/chip","An indicator of a numeric value or a state.",{"title":295,"path":296,"stem":297,"framework":16,"category":172,"description":298},"Collapsible","/docs/components/collapsible","docs/2.components/collapsible","A collapsible element to toggle visibility of its content.",{"title":300,"path":301,"stem":302,"framework":16,"category":303,"description":304},"ColorModeAvatar","/docs/components/color-mode-avatar","docs/2.components/color-mode-avatar","color-mode","An Avatar with a different source for light and dark mode.",{"title":306,"path":307,"stem":308,"framework":16,"category":303,"description":309},"ColorModeButton","/docs/components/color-mode-button","docs/2.components/color-mode-button","A Button to switch between light and dark mode.",{"title":311,"path":312,"stem":313,"framework":16,"category":303,"description":314},"ColorModeImage","/docs/components/color-mode-image","docs/2.components/color-mode-image","An image element with a different source for light and dark mode.",{"title":316,"path":317,"stem":318,"framework":16,"category":303,"description":319},"ColorModeSelect","/docs/components/color-mode-select","docs/2.components/color-mode-select","A Select to switch between system, dark & light mode.",{"title":321,"path":322,"stem":323,"framework":16,"category":303,"description":324},"ColorModeSwitch","/docs/components/color-mode-switch","docs/2.components/color-mode-switch","A switch to toggle between light and dark mode.",{"title":326,"path":327,"stem":328,"framework":16,"category":282,"description":329},"ColorPicker","/docs/components/color-picker","docs/2.components/color-picker","A component to select a color.",{"title":331,"path":332,"stem":333,"framework":16,"category":220,"description":334},"CommandPalette","/docs/components/command-palette","docs/2.components/command-palette","A command palette with full-text search powered by Fuse.js for efficient fuzzy matching.",{"title":336,"path":337,"stem":338,"framework":16,"category":178,"description":339},"Container","/docs/components/container","docs/2.components/container","A container lets you center and constrain the width of your content.",{"title":341,"path":342,"stem":343,"framework":28,"category":344,"description":345},"ContentNavigation","/docs/components/content-navigation","docs/2.components/content-navigation","content","An accordion-style navigation component for organizing page links.",{"title":347,"path":348,"stem":349,"framework":28,"category":344,"description":350},"ContentSearch","/docs/components/content-search","docs/2.components/content-search","A ready to use CommandPalette to add to your documentation.",{"title":352,"path":353,"stem":354,"framework":28,"category":344,"description":355},"ContentSearchButton","/docs/components/content-search-button","docs/2.components/content-search-button","A pre-styled Button to open the ContentSearch modal.",{"title":357,"path":358,"stem":359,"framework":28,"category":344,"description":360},"ContentSurround","/docs/components/content-surround","docs/2.components/content-surround","A pair of prev and next links to navigate between pages.",{"title":362,"path":363,"stem":364,"framework":28,"category":344,"description":365},"ContentToc","/docs/components/content-toc","docs/2.components/content-toc","A sticky Table of Contents with automatic active anchor link highlighting.",{"title":367,"path":368,"stem":369,"framework":16,"category":370,"description":371},"ContextMenu","/docs/components/context-menu","docs/2.components/context-menu","overlay","A menu to display actions when right-clicking on an element.",{"title":373,"path":374,"stem":375,"framework":16,"category":376,"description":377},"DashboardGroup","/docs/components/dashboard-group","docs/2.components/dashboard-group","dashboard","A fixed layout component that provides context for dashboard components with sidebar state management and persistence.",{"title":379,"path":380,"stem":381,"framework":16,"category":376,"description":382},"DashboardNavbar","/docs/components/dashboard-navbar","docs/2.components/dashboard-navbar","A responsive navbar to display in a dashboard.",{"title":384,"path":385,"stem":386,"framework":16,"category":376,"description":387},"DashboardPanel","/docs/components/dashboard-panel","docs/2.components/dashboard-panel","A resizable panel to display in a dashboard.",{"title":389,"path":390,"stem":391,"framework":16,"category":376,"description":392},"DashboardResizeHandle","/docs/components/dashboard-resize-handle","docs/2.components/dashboard-resize-handle","A handle to resize a sidebar or panel.",{"title":394,"path":395,"stem":396,"framework":16,"category":376,"description":397},"DashboardSearch","/docs/components/dashboard-search","docs/2.components/dashboard-search","A ready to use CommandPalette to add to your dashboard.",{"title":399,"path":400,"stem":401,"framework":16,"category":376,"description":402},"DashboardSearchButton","/docs/components/dashboard-search-button","docs/2.components/dashboard-search-button","A pre-styled Button to open the DashboardSearch modal.",{"title":404,"path":405,"stem":406,"framework":16,"category":376,"description":407},"DashboardSidebar","/docs/components/dashboard-sidebar","docs/2.components/dashboard-sidebar","A resizable and collapsible sidebar to display in a dashboard.",{"title":409,"path":410,"stem":411,"framework":16,"category":376,"description":412},"DashboardSidebarCollapse","/docs/components/dashboard-sidebar-collapse","docs/2.components/dashboard-sidebar-collapse","A Button to collapse the sidebar on desktop.",{"title":414,"path":415,"stem":416,"framework":16,"category":376,"description":417},"DashboardSidebarToggle","/docs/components/dashboard-sidebar-toggle","docs/2.components/dashboard-sidebar-toggle","A Button to toggle the sidebar on mobile.",{"title":419,"path":420,"stem":421,"framework":16,"category":376,"description":422},"DashboardToolbar","/docs/components/dashboard-toolbar","docs/2.components/dashboard-toolbar","A toolbar to display under the navbar in a dashboard.",{"title":424,"path":425,"stem":426,"framework":16,"category":370,"description":427},"Drawer","/docs/components/drawer","docs/2.components/drawer","A drawer that smoothly slides in & out of the screen.",{"title":429,"path":430,"stem":431,"framework":16,"category":370,"description":432},"DropdownMenu","/docs/components/dropdown-menu","docs/2.components/dropdown-menu","A menu to display actions when clicking on an element.",{"title":434,"path":435,"stem":436,"framework":16,"category":437,"description":438,"badge":439},"Editor","/docs/components/editor","docs/2.components/editor","editor","A rich text editor component based on TipTap with support for markdown, HTML, and JSON content types.","New",{"title":441,"path":442,"stem":443,"framework":16,"category":437,"description":444,"badge":439},"EditorDragHandle","/docs/components/editor-drag-handle","docs/2.components/editor-drag-handle","A draggable handle for reordering and selecting blocks in the editor.",{"title":446,"path":447,"stem":448,"framework":16,"category":437,"description":449,"badge":439},"EditorEmojiMenu","/docs/components/editor-emoji-menu","docs/2.components/editor-emoji-menu","An emoji picker menu that displays emoji suggestions when typing the : character in the editor.",{"title":451,"path":452,"stem":453,"framework":16,"category":437,"description":454,"badge":439},"EditorMentionMenu","/docs/components/editor-mention-menu","docs/2.components/editor-mention-menu","A mention menu that displays user suggestions when typing the @ character in the editor.",{"title":456,"path":457,"stem":458,"framework":16,"category":437,"description":459,"badge":439},"EditorSuggestionMenu","/docs/components/editor-suggestion-menu","docs/2.components/editor-suggestion-menu","A command menu that displays formatting and action suggestions when typing the / character in the editor.",{"title":461,"path":462,"stem":463,"framework":16,"category":437,"description":464,"badge":439},"EditorToolbar","/docs/components/editor-toolbar","docs/2.components/editor-toolbar","A customizable toolbar for editor actions that can be displayed as fixed, bubble, or floating menu.",{"title":466,"path":467,"stem":468,"framework":16,"category":166,"description":469},"Empty","/docs/components/empty","docs/2.components/empty","A component to display an empty state.",{"title":471,"path":472,"stem":473,"framework":16,"category":178,"description":474},"Error","/docs/components/error","docs/2.components/error","A pre-built error component with NuxtError support.",{"title":476,"path":477,"stem":478,"framework":16,"category":172,"description":479},"FieldGroup","/docs/components/field-group","docs/2.components/field-group","Group multiple button-like elements together.",{"title":481,"path":482,"stem":483,"framework":16,"category":282,"description":484},"FileUpload","/docs/components/file-upload","docs/2.components/file-upload","An input element to upload files.",{"title":486,"path":487,"stem":488,"framework":16,"category":178,"description":489},"Footer","/docs/components/footer","docs/2.components/footer","A responsive footer component.",{"title":491,"path":492,"stem":493,"framework":16,"category":220,"description":494},"FooterColumns","/docs/components/footer-columns","docs/2.components/footer-columns","A list of links as columns to display in your Footer.",{"title":496,"path":497,"stem":498,"framework":16,"category":282,"description":499},"Form","/docs/components/form","docs/2.components/form","A form component with built-in validation and submission handling.",{"title":501,"path":502,"stem":503,"framework":16,"category":282,"description":504},"FormField","/docs/components/form-field","docs/2.components/form-field","A wrapper for form elements that provides validation and error handling.",{"title":506,"path":507,"stem":508,"framework":16,"category":178,"description":509},"Header","/docs/components/header","docs/2.components/header","A responsive header component.",{"title":511,"path":512,"stem":513,"framework":16,"category":172,"description":514},"Icon","/docs/components/icon","docs/2.components/icon","A component to display any icon from Iconify or another component.",{"title":516,"path":517,"stem":518,"framework":16,"category":282,"description":519},"Input","/docs/components/input","docs/2.components/input","An input element to enter text.",{"title":521,"path":522,"stem":523,"framework":16,"category":282,"description":524},"InputDate","/docs/components/input-date","docs/2.components/input-date","An input component for date selection.",{"title":526,"path":527,"stem":528,"framework":16,"category":282,"description":529},"InputMenu","/docs/components/input-menu","docs/2.components/input-menu","An autocomplete input with real-time suggestions.",{"title":531,"path":532,"stem":533,"framework":16,"category":282,"description":534},"InputNumber","/docs/components/input-number","docs/2.components/input-number","An input for numerical values with a customizable range.",{"title":536,"path":537,"stem":538,"framework":16,"category":282,"description":539},"InputTags","/docs/components/input-tags","docs/2.components/input-tags","An input element that displays interactive tags.",{"title":541,"path":542,"stem":543,"framework":16,"category":282,"description":544},"InputTime","/docs/components/input-time","docs/2.components/input-time","An input for selecting a time.",{"title":546,"path":547,"stem":548,"framework":16,"category":172,"description":549},"Kbd","/docs/components/kbd","docs/2.components/kbd","A kbd element to display a keyboard key.",{"title":551,"path":552,"stem":553,"framework":16,"category":220,"description":554},"Link","/docs/components/link","docs/2.components/link","A wrapper around \u003CNuxtLink> with extra props.",{"title":556,"path":557,"stem":558,"framework":16,"category":559,"description":560},"LocaleSelect","/docs/components/locale-select","docs/2.components/locale-select","i18n","A Select to switch between locales.",{"title":562,"path":563,"stem":564,"framework":16,"category":178,"description":565},"Main","/docs/components/main","docs/2.components/main","A main element that fills the available viewport height.",{"title":567,"path":568,"stem":569,"framework":16,"category":166,"description":570},"Marquee","/docs/components/marquee","docs/2.components/marquee","A component to create infinite scrolling content.",{"title":572,"path":573,"stem":574,"framework":16,"category":370,"description":575},"Modal","/docs/components/modal","docs/2.components/modal","A dialog window that can be used to display a message or request user input.",{"title":577,"path":578,"stem":579,"framework":16,"category":220,"description":580},"NavigationMenu","/docs/components/navigation-menu","docs/2.components/navigation-menu","A list of links that can be displayed horizontally or vertically.",{"title":582,"path":583,"stem":584,"framework":16,"category":184,"description":585},"Page","/docs/components/page","docs/2.components/page","A grid layout for your pages with left and right columns.",{"title":587,"path":588,"stem":589,"framework":16,"category":184,"description":590},"PageAnchors","/docs/components/page-anchors","docs/2.components/page-anchors","A list of anchors to be displayed in the page.",{"title":592,"path":593,"stem":594,"framework":16,"category":184,"description":595},"PageAside","/docs/components/page-aside","docs/2.components/page-aside","A sticky aside to display your page navigation.",{"title":597,"path":598,"stem":599,"framework":16,"category":184,"description":600},"PageBody","/docs/components/page-body","docs/2.components/page-body","The main content of your page.",{"title":602,"path":603,"stem":604,"framework":16,"category":184,"description":605},"PageCard","/docs/components/page-card","docs/2.components/page-card","A pre-styled card component that displays a title, description and optional link.",{"title":607,"path":608,"stem":609,"framework":16,"category":184,"description":610},"PageColumns","/docs/components/page-columns","docs/2.components/page-columns","A responsive multi-column layout system for organizing content side-by-side.",{"title":612,"path":613,"stem":614,"framework":16,"category":184,"description":615},"PageCTA","/docs/components/page-cta","docs/2.components/page-cta","A call to action section to display in your pages.",{"title":617,"path":618,"stem":619,"framework":16,"category":184,"description":620},"PageFeature","/docs/components/page-feature","docs/2.components/page-feature","A component to showcase key features of your application.",{"title":622,"path":623,"stem":624,"framework":16,"category":184,"description":625},"PageGrid","/docs/components/page-grid","docs/2.components/page-grid","A responsive grid system for displaying content in a flexible layout.",{"title":627,"path":628,"stem":629,"framework":16,"category":184,"description":630},"PageHeader","/docs/components/page-header","docs/2.components/page-header","A responsive header for your pages.",{"title":632,"path":633,"stem":634,"framework":16,"category":184,"description":635},"PageHero","/docs/components/page-hero","docs/2.components/page-hero","A responsive hero for your pages.",{"title":637,"path":638,"stem":639,"framework":16,"category":184,"description":640},"PageLinks","/docs/components/page-links","docs/2.components/page-links","A list of links to be displayed in the page.",{"title":642,"path":643,"stem":644,"framework":16,"category":184,"description":645},"PageList","/docs/components/page-list","docs/2.components/page-list","A vertical list layout for displaying content in a stacked format.",{"title":647,"path":648,"stem":649,"framework":16,"category":184,"description":650},"PageLogos","/docs/components/page-logos","docs/2.components/page-logos","A list of logos or images to display on your pages.",{"title":652,"path":653,"stem":654,"framework":16,"category":184,"description":655},"PageSection","/docs/components/page-section","docs/2.components/page-section","A responsive section for your pages.",{"title":657,"path":658,"stem":659,"framework":16,"category":220,"description":660},"Pagination","/docs/components/pagination","docs/2.components/pagination","A list of buttons or links to navigate through pages.",{"title":662,"path":663,"stem":664,"framework":16,"category":282,"description":665},"PinInput","/docs/components/pin-input","docs/2.components/pin-input","An input element to enter a pin.",{"title":667,"path":668,"stem":669,"framework":16,"category":370,"description":670},"Popover","/docs/components/popover","docs/2.components/popover","A non-modal dialog that floats around a trigger element.",{"title":672,"path":673,"stem":674,"framework":16,"category":184,"description":675},"PricingPlan","/docs/components/pricing-plan","docs/2.components/pricing-plan","A customizable pricing plan to display in a pricing page.",{"title":677,"path":678,"stem":679,"framework":16,"category":184,"description":680},"PricingPlans","/docs/components/pricing-plans","docs/2.components/pricing-plans","Display a list of pricing plans in a responsive grid layout.",{"title":682,"path":683,"stem":684,"framework":16,"category":184,"description":685},"PricingTable","/docs/components/pricing-table","docs/2.components/pricing-table","A responsive pricing table component that displays tiered pricing plans with feature comparisons.",{"title":687,"path":688,"stem":689,"framework":16,"category":172,"description":690},"Progress","/docs/components/progress","docs/2.components/progress","An indicator showing the progress of a task.",{"title":692,"path":693,"stem":694,"framework":16,"category":282,"description":695},"RadioGroup","/docs/components/radio-group","docs/2.components/radio-group","A set of radio buttons to select a single option from a list.",{"title":697,"path":698,"stem":699,"framework":16,"category":166,"description":700,"badge":439},"ScrollArea","/docs/components/scroll-area","docs/2.components/scroll-area","A flexible scroll container with virtualization support.",{"title":702,"path":703,"stem":704,"framework":16,"category":282,"description":705},"Select","/docs/components/select","docs/2.components/select","A select element to choose from a list of options.",{"title":707,"path":708,"stem":709,"framework":16,"category":282,"description":710},"SelectMenu","/docs/components/select-menu","docs/2.components/select-menu","An advanced searchable select element.",{"title":712,"path":713,"stem":714,"framework":16,"category":172,"description":715},"Separator","/docs/components/separator","docs/2.components/separator","Separates content horizontally or vertically.",{"title":717,"path":718,"stem":719,"framework":16,"category":172,"description":720},"Skeleton","/docs/components/skeleton","docs/2.components/skeleton","A placeholder to show while content is loading.",{"title":722,"path":723,"stem":724,"framework":16,"category":370,"description":725},"Slideover","/docs/components/slideover","docs/2.components/slideover","A dialog that slides in from any side of the screen.",{"title":727,"path":728,"stem":729,"framework":16,"category":282,"description":730},"Slider","/docs/components/slider","docs/2.components/slider","An input to select a numeric value within a range.",{"title":732,"path":733,"stem":734,"framework":16,"category":220,"description":735},"Stepper","/docs/components/stepper","docs/2.components/stepper","A set of steps that are used to indicate progress through a multi-step process.",{"title":737,"path":738,"stem":739,"framework":16,"category":282,"description":740},"Switch","/docs/components/switch","docs/2.components/switch","A control that toggles between two states.",{"title":742,"path":743,"stem":744,"framework":16,"category":166,"description":745},"Table","/docs/components/table","docs/2.components/table","A responsive table element to display data in rows and columns.",{"title":747,"path":748,"stem":749,"framework":16,"category":220,"description":750},"Tabs","/docs/components/tabs","docs/2.components/tabs","A set of tab panels that are displayed one at a time.",{"title":752,"path":753,"stem":754,"framework":16,"category":282,"description":755},"Textarea","/docs/components/textarea","docs/2.components/textarea","A textarea element to input multi-line text.",{"title":757,"path":758,"stem":759,"framework":16,"category":166,"description":760},"Timeline","/docs/components/timeline","docs/2.components/timeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":762,"path":763,"stem":764,"framework":16,"category":370,"description":765},"Toast","/docs/components/toast","docs/2.components/toast","A succinct message to provide information or feedback to the user.",{"title":767,"path":768,"stem":769,"framework":16,"category":370,"description":770},"Tooltip","/docs/components/tooltip","docs/2.components/tooltip","A popup that reveals information when hovering over an element.",{"title":772,"path":773,"stem":774,"framework":16,"category":166,"description":775},"Tree","/docs/components/tree","docs/2.components/tree","A tree view component to display and interact with hierarchical data structures.",{"title":777,"path":778,"stem":779,"framework":16,"category":166,"description":780},"User","/docs/components/user","docs/2.components/user","Display user information with name, description and avatar.",{"title":782,"framework":16,"category":16,"description":16,"icon":783,"path":784,"stem":785,"children":786,"page":36},"Composables","i-lucide-square-function","/docs/composables","docs/3.composables",[787,792,797,802,807,812],{"title":788,"path":789,"stem":790,"framework":16,"category":16,"description":791},"defineLocale","/docs/composables/define-locale","docs/3.composables/define-locale","A utility to create a custom locale for your app.",{"title":793,"path":794,"stem":795,"framework":16,"category":16,"description":796},"defineShortcuts","/docs/composables/define-shortcuts","docs/3.composables/define-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":798,"path":799,"stem":800,"framework":16,"category":16,"description":801},"extendLocale","/docs/composables/extend-locale","docs/3.composables/extend-locale","A utility to extend an existing locale with custom translations.",{"title":803,"path":804,"stem":805,"framework":16,"category":16,"description":806},"extractShortcuts","/docs/composables/extract-shortcuts","docs/3.composables/extract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":808,"path":809,"stem":810,"framework":16,"category":16,"description":811},"useOverlay","/docs/composables/use-overlay","docs/3.composables/use-overlay","A composable to programmatically control overlays.",{"title":813,"path":814,"stem":815,"framework":16,"category":16,"description":816},"useToast","/docs/composables/use-toast","docs/3.composables/use-toast","A composable to display toast notifications in your app.",{"title":818,"path":819,"stem":820,"children":821,"framework":28,"category":16,"description":16,"icon":917},"Typography","/docs/typography","docs/4.typography/1.index",[822,824,829,834,839,844,849,853,858,862,867,872,877,882,887,891,896,900,904,908,913],{"title":15,"path":819,"stem":820,"framework":28,"category":16,"description":823},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":825,"path":826,"stem":827,"framework":28,"category":16,"description":828},"Headers and text","/docs/typography/headers-and-text","docs/4.typography/2.headers-and-text","Beautifully styled headings, paragraphs, text formatting, and links for optimal readability.",{"title":830,"path":831,"stem":832,"framework":28,"category":16,"description":833},"Lists and tables","/docs/typography/lists-and-tables","docs/4.typography/3.lists-and-tables","Organize information with styled lists and responsive tables for clear, consistent readability.",{"title":835,"path":836,"stem":837,"framework":28,"category":16,"description":838},"Images and embeds","/docs/typography/images-and-embeds","docs/4.typography/4.images-and-embeds","Responsive images, videos, and rich media embeds to enhance and illustrate your documentation.",{"title":840,"path":841,"stem":842,"framework":28,"category":16,"description":843},"Code","/docs/typography/code","docs/4.typography/5.code","Display inline code and syntax-highlighted code blocks with copy-to-clipboard support.",{"title":163,"path":845,"stem":846,"framework":28,"category":847,"description":848},"/docs/typography/accordion","docs/4.typography/accordion","components","Create expandable content sections for better information organization.",{"title":197,"path":850,"stem":851,"framework":28,"category":847,"description":852},"/docs/typography/badge","docs/4.typography/badge","Display version numbers, status labels, and tags within your content.",{"title":854,"path":855,"stem":856,"framework":28,"category":847,"description":857},"Callout","/docs/typography/callout","docs/4.typography/callout","Highlight important information with eye-catching colored boxes and icons.",{"title":233,"path":859,"stem":860,"framework":28,"category":847,"description":861},"/docs/typography/card","docs/4.typography/card","Create highlighted content blocks with optional links and navigation.",{"title":863,"path":864,"stem":865,"framework":28,"category":847,"description":866},"CardGroup","/docs/typography/card-group","docs/4.typography/card-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":868,"path":869,"stem":870,"framework":28,"category":847,"description":871},"CodeCollapse","/docs/typography/code-collapse","docs/4.typography/code-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":873,"path":874,"stem":875,"framework":28,"category":847,"description":876},"CodeGroup","/docs/typography/code-group","docs/4.typography/code-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":878,"path":879,"stem":880,"framework":28,"category":847,"description":881},"CodePreview","/docs/typography/code-preview","docs/4.typography/code-preview","Display code examples with a preview and their source for clearer documentation.",{"title":883,"path":884,"stem":885,"framework":28,"category":847,"description":886},"CodeTree","/docs/typography/code-tree","docs/4.typography/code-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":295,"path":888,"stem":889,"framework":28,"category":847,"description":890},"/docs/typography/collapsible","docs/4.typography/collapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":892,"path":893,"stem":894,"framework":28,"category":847,"description":895},"Field","/docs/typography/field","docs/4.typography/field","Document API parameters, props, and configuration options clearly.",{"title":476,"path":897,"stem":898,"framework":28,"category":847,"description":899},"/docs/typography/field-group","docs/4.typography/field-group","Group related fields together for comprehensive API documentation.",{"title":511,"path":901,"stem":902,"framework":28,"category":847,"description":903},"/docs/typography/icon","docs/4.typography/icon","Display icons from popular icon libraries to enhance your content.",{"title":546,"path":905,"stem":906,"framework":28,"category":847,"description":907},"/docs/typography/kbd","docs/4.typography/kbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":909,"path":910,"stem":911,"framework":28,"category":847,"description":912},"Steps","/docs/typography/steps","docs/4.typography/steps","Transform headings into numbered step-by-step guides and tutorials.",{"title":747,"path":914,"stem":915,"framework":28,"category":847,"description":916},"/docs/typography/tabs","docs/4.typography/tabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":919,"title":48,"body":920,"category":16,"description":51,"extension":1917,"framework":16,"links":16,"meta":1918,"navigation":1919,"path":49,"seo":1920,"stem":50,"__hash__":1921},"docs/docs/1.getting-started/4.contribution.md",{"type":921,"value":922,"toc":1897},"minimark",[923,927,947,952,955,959,976,1111,1115,1122,1309,1313,1320,1323,1334,1336,1339,1348,1351,1395,1398,1456,1462,1466,1469,1478,1488,1492,1495,1498,1502,1505,1628,1637,1641,1650,1720,1730,1734,1741,1756,1760,1767,1776,1780,1783,1792,1802,1806,1821,1843,1847,1883,1886,1890,1893],[924,925,926],"p",{},"Nuxt UI thrives thanks to its incredible community ❤️. We welcome all contributions through bug reports, pull requests, and feedback to help make this library even better.",[928,929,930],"caution",{},[924,931,932,933,940,941,946],{},"Before reporting a bug or requesting a feature, make sure that you have read through our ",[934,935,939],"a",{"href":936,"rel":937},"https://ui.nuxt.com/",[938],"nofollow","documentation"," and existing ",[934,942,945],{"href":943,"rel":944},"https://github.com/nuxt/ui/issues?q=is%3Aissue%20is%3Aopen%20sort%3Aupdated-desc",[938],"issues",".",[948,949,951],"h2",{"id":950},"project-structure","Project structure",[924,953,954],{},"Here's an overview of the key directories and files in the Nuxt UI project structure:",[956,957,958],"h3",{"id":939},"Documentation",[924,960,961,962,965,966,969,970,975],{},"The documentation lives in the ",[963,964,7],"code",{}," folder as a Nuxt app using ",[963,967,968],{},"@nuxt/content"," to generate pages from Markdown files. See the ",[934,971,974],{"href":972,"rel":973},"https://content.nuxt.com/docs/getting-started",[938],"Nuxt Content documentation"," for details on how it works. Here's a breakdown of its structure:",[977,978,983],"pre",{"className":979,"code":980,"language":981,"meta":982,"style":982},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","├── app/\n│   ├── assets/\n│   ├── components/\n│   │   └── content/\n│   │       └── examples   # Components used in documentation as examples\n│   ├── composables/\n│   └── ...\n├── content/\n│   ├── 1.getting-started\n│   ├── 2.composables\n│   └── 3.components       # Components documentation\n","bash","",[963,984,985,998,1010,1020,1034,1051,1061,1071,1078,1088,1098],{"__ignoreMap":982},[986,987,990,994],"span",{"class":988,"line":989},"line",1,[986,991,993],{"class":992},"sBMFI","├──",[986,995,997],{"class":996},"sfazB"," app/\n",[986,999,1001,1004,1007],{"class":988,"line":1000},2,[986,1002,1003],{"class":992},"│",[986,1005,1006],{"class":996},"   ├──",[986,1008,1009],{"class":996}," assets/\n",[986,1011,1013,1015,1017],{"class":988,"line":1012},3,[986,1014,1003],{"class":992},[986,1016,1006],{"class":996},[986,1018,1019],{"class":996}," components/\n",[986,1021,1023,1025,1028,1031],{"class":988,"line":1022},4,[986,1024,1003],{"class":992},[986,1026,1027],{"class":996},"   │",[986,1029,1030],{"class":996},"   └──",[986,1032,1033],{"class":996}," content/\n",[986,1035,1037,1039,1041,1044,1047],{"class":988,"line":1036},5,[986,1038,1003],{"class":992},[986,1040,1027],{"class":996},[986,1042,1043],{"class":996},"       └──",[986,1045,1046],{"class":996}," examples",[986,1048,1050],{"class":1049},"sHwdD","   # Components used in documentation as examples\n",[986,1052,1054,1056,1058],{"class":988,"line":1053},6,[986,1055,1003],{"class":992},[986,1057,1006],{"class":996},[986,1059,1060],{"class":996}," composables/\n",[986,1062,1064,1066,1068],{"class":988,"line":1063},7,[986,1065,1003],{"class":992},[986,1067,1030],{"class":996},[986,1069,1070],{"class":996}," ...\n",[986,1072,1074,1076],{"class":988,"line":1073},8,[986,1075,993],{"class":992},[986,1077,1033],{"class":996},[986,1079,1081,1083,1085],{"class":988,"line":1080},9,[986,1082,1003],{"class":992},[986,1084,1006],{"class":996},[986,1086,1087],{"class":996}," 1.getting-started\n",[986,1089,1091,1093,1095],{"class":988,"line":1090},10,[986,1092,1003],{"class":992},[986,1094,1006],{"class":996},[986,1096,1097],{"class":996}," 2.composables\n",[986,1099,1101,1103,1105,1108],{"class":988,"line":1100},11,[986,1102,1003],{"class":992},[986,1104,1030],{"class":996},[986,1106,1107],{"class":996}," 3.components",[986,1109,1110],{"class":1049},"       # Components documentation\n",[956,1112,1114],{"id":1113},"module","Module",[924,1116,1117,1118,1121],{},"The module code resides in the ",[963,1119,1120],{},"src"," folder. Here's a breakdown of its structure:",[977,1123,1125],{"className":979,"code":1124,"language":981,"meta":982,"style":982},"├── plugins/\n├── runtime/\n│   ├── components/        # Where all the components are located\n│   │   ├── Accordion.vue\n│   │   ├── Alert.vue\n│   │   └── ...\n│   ├── composables/\n│   ├── locale/\n│   ├── plugins/\n│   ├── types/\n│   ├── utils/\n│   └── vue/\n│       ├── components/\n│       └── plugins/\n├── theme/                 # This where the theme for each component is located\n│   ├── accordion.ts       # Theme for Accordion component\n│   ├── alert.ts\n│   └── ...\n└── module.ts\n",[963,1126,1127,1134,1141,1153,1164,1175,1185,1193,1202,1210,1219,1228,1238,1248,1257,1268,1281,1291,1300],{"__ignoreMap":982},[986,1128,1129,1131],{"class":988,"line":989},[986,1130,993],{"class":992},[986,1132,1133],{"class":996}," plugins/\n",[986,1135,1136,1138],{"class":988,"line":1000},[986,1137,993],{"class":992},[986,1139,1140],{"class":996}," runtime/\n",[986,1142,1143,1145,1147,1150],{"class":988,"line":1012},[986,1144,1003],{"class":992},[986,1146,1006],{"class":996},[986,1148,1149],{"class":996}," components/",[986,1151,1152],{"class":1049},"        # Where all the components are located\n",[986,1154,1155,1157,1159,1161],{"class":988,"line":1022},[986,1156,1003],{"class":992},[986,1158,1027],{"class":996},[986,1160,1006],{"class":996},[986,1162,1163],{"class":996}," Accordion.vue\n",[986,1165,1166,1168,1170,1172],{"class":988,"line":1036},[986,1167,1003],{"class":992},[986,1169,1027],{"class":996},[986,1171,1006],{"class":996},[986,1173,1174],{"class":996}," Alert.vue\n",[986,1176,1177,1179,1181,1183],{"class":988,"line":1053},[986,1178,1003],{"class":992},[986,1180,1027],{"class":996},[986,1182,1030],{"class":996},[986,1184,1070],{"class":996},[986,1186,1187,1189,1191],{"class":988,"line":1063},[986,1188,1003],{"class":992},[986,1190,1006],{"class":996},[986,1192,1060],{"class":996},[986,1194,1195,1197,1199],{"class":988,"line":1073},[986,1196,1003],{"class":992},[986,1198,1006],{"class":996},[986,1200,1201],{"class":996}," locale/\n",[986,1203,1204,1206,1208],{"class":988,"line":1080},[986,1205,1003],{"class":992},[986,1207,1006],{"class":996},[986,1209,1133],{"class":996},[986,1211,1212,1214,1216],{"class":988,"line":1090},[986,1213,1003],{"class":992},[986,1215,1006],{"class":996},[986,1217,1218],{"class":996}," types/\n",[986,1220,1221,1223,1225],{"class":988,"line":1100},[986,1222,1003],{"class":992},[986,1224,1006],{"class":996},[986,1226,1227],{"class":996}," utils/\n",[986,1229,1231,1233,1235],{"class":988,"line":1230},12,[986,1232,1003],{"class":992},[986,1234,1030],{"class":996},[986,1236,1237],{"class":996}," vue/\n",[986,1239,1241,1243,1246],{"class":988,"line":1240},13,[986,1242,1003],{"class":992},[986,1244,1245],{"class":996},"       ├──",[986,1247,1019],{"class":996},[986,1249,1251,1253,1255],{"class":988,"line":1250},14,[986,1252,1003],{"class":992},[986,1254,1043],{"class":996},[986,1256,1133],{"class":996},[986,1258,1260,1262,1265],{"class":988,"line":1259},15,[986,1261,993],{"class":992},[986,1263,1264],{"class":996}," theme/",[986,1266,1267],{"class":1049},"                 # This where the theme for each component is located\n",[986,1269,1271,1273,1275,1278],{"class":988,"line":1270},16,[986,1272,1003],{"class":992},[986,1274,1006],{"class":996},[986,1276,1277],{"class":996}," accordion.ts",[986,1279,1280],{"class":1049},"       # Theme for Accordion component\n",[986,1282,1284,1286,1288],{"class":988,"line":1283},17,[986,1285,1003],{"class":992},[986,1287,1006],{"class":996},[986,1289,1290],{"class":996}," alert.ts\n",[986,1292,1294,1296,1298],{"class":988,"line":1293},18,[986,1295,1003],{"class":992},[986,1297,1030],{"class":996},[986,1299,1070],{"class":996},[986,1301,1303,1306],{"class":988,"line":1302},19,[986,1304,1305],{"class":992},"└──",[986,1307,1308],{"class":996}," module.ts\n",[948,1310,1312],{"id":1311},"cli","CLI",[924,1314,1315,1316,1319],{},"To make development easier, we've created a CLI that you can use to generate components and locales. You can access it using the ",[963,1317,1318],{},"nuxt-ui make"," command.",[924,1321,1322],{},"First, you need to link the CLI to your global environment:",[977,1324,1328],{"className":1325,"code":1326,"language":1327,"meta":982,"style":982},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm link\n","sh",[963,1329,1330],{"__ignoreMap":982},[986,1331,1332],{"class":988,"line":989},[986,1333,1326],{},[956,1335,71],{"id":847},[924,1337,1338],{},"You can create new components using the following command:",[977,1340,1342],{"className":1325,"code":1341,"language":1327,"meta":982,"style":982},"nuxt-ui make component \u003Cname> [options]\n",[963,1343,1344],{"__ignoreMap":982},[986,1345,1346],{"class":988,"line":989},[986,1347,1341],{},[924,1349,1350],{},"Available options:",[1352,1353,1354,1361,1367,1373],"ul",{},[1355,1356,1357,1360],"li",{},[963,1358,1359],{},"--primitive"," Create a primitive component",[1355,1362,1363,1366],{},[963,1364,1365],{},"--prose"," Create a prose component",[1355,1368,1369,1372],{},[963,1370,1371],{},"--content"," Create a content component",[1355,1374,1375,1378,1379,1382,1383,1382,1385,1382,1388,1382,1391,1394],{},[963,1376,1377],{},"--template"," Only generate specific template (available templates: ",[963,1380,1381],{},"playground",", ",[963,1384,7],{},[963,1386,1387],{},"test",[963,1389,1390],{},"theme",[963,1392,1393],{},"component",")",[924,1396,1397],{},"Example:",[977,1399,1401],{"className":1325,"code":1400,"language":1327,"meta":982,"style":982},"# Create a basic component\nnuxt-ui make component my-component\n\n# Create a prose component\nnuxt-ui make component heading --prose\n\n# Create a content component\nnuxt-ui make component block --content\n\n# Generate only documentation template\nnuxt-ui make component my-component --template=docs\n",[963,1402,1403,1408,1413,1418,1423,1428,1432,1437,1442,1446,1451],{"__ignoreMap":982},[986,1404,1405],{"class":988,"line":989},[986,1406,1407],{},"# Create a basic component\n",[986,1409,1410],{"class":988,"line":1000},[986,1411,1412],{},"nuxt-ui make component my-component\n",[986,1414,1415],{"class":988,"line":1012},[986,1416,1417],{"emptyLinePlaceholder":21},"\n",[986,1419,1420],{"class":988,"line":1022},[986,1421,1422],{},"# Create a prose component\n",[986,1424,1425],{"class":988,"line":1036},[986,1426,1427],{},"nuxt-ui make component heading --prose\n",[986,1429,1430],{"class":988,"line":1053},[986,1431,1417],{"emptyLinePlaceholder":21},[986,1433,1434],{"class":988,"line":1063},[986,1435,1436],{},"# Create a content component\n",[986,1438,1439],{"class":988,"line":1073},[986,1440,1441],{},"nuxt-ui make component block --content\n",[986,1443,1444],{"class":988,"line":1080},[986,1445,1417],{"emptyLinePlaceholder":21},[986,1447,1448],{"class":988,"line":1090},[986,1449,1450],{},"# Generate only documentation template\n",[986,1452,1453],{"class":988,"line":1100},[986,1454,1455],{},"nuxt-ui make component my-component --template=docs\n",[1457,1458,1459],"note",{},[924,1460,1461],{},"When creating a new component, the CLI will automatically generate all the necessary files like the component itself, theme, tests, and documentation.",[956,1463,1465],{"id":1464},"locales","Locales",[924,1467,1468],{},"You can create new locales using the following command:",[977,1470,1472],{"className":1325,"code":1471,"language":1327,"meta":982,"style":982},"nuxt-ui make locale --code \u003Ccode> --name \u003Cname>\n",[963,1473,1474],{"__ignoreMap":982},[986,1475,1476],{"class":988,"line":989},[986,1477,1471],{},[1457,1479,1481],{"to":1480},"/docs/getting-started/integrations/i18n/nuxt#supported-languages",[924,1482,1483,1484,1487],{},"Learn more about ",[1485,1486,559],"strong",{}," in the documentation.",[948,1489,1491],{"id":1490},"submit-a-pull-request-pr","Submit a Pull Request (PR)",[924,1493,1494],{},"Before you start, check if there's an existing issue describing the problem or feature request you're working on. If there is, please leave a comment on the issue to let us know you're working on it.",[924,1496,1497],{},"If there isn't, open a new issue to discuss the problem or feature.",[956,1499,1501],{"id":1500},"local-development","Local development",[924,1503,1504],{},"To begin local development, follow these steps:",[1506,1507,1509,1518,1527,1536,1545,1549,1558,1562,1571,1575,1586,1595,1603,1612,1619],"steps",{"level":1508},"4",[1510,1511,1513,1514,1517],"h4",{"id":1512},"clone-the-nuxtui-repository-to-your-local-machine","Clone the ",[963,1515,1516],{},"nuxt/ui"," repository to your local machine",[977,1519,1521],{"className":1325,"code":1520,"language":1327,"meta":982,"style":982},"git clone -b v4 https://github.com/nuxt/ui.git\n",[963,1522,1523],{"__ignoreMap":982},[986,1524,1525],{"class":988,"line":989},[986,1526,1520],{},[1510,1528,1530,1531],{"id":1529},"enable-corepack","Enable ",[934,1532,1535],{"href":1533,"rel":1534},"https://github.com/nodejs/corepack",[938],"Corepack",[977,1537,1539],{"className":1325,"code":1538,"language":1327,"meta":982,"style":982},"corepack enable\n",[963,1540,1541],{"__ignoreMap":982},[986,1542,1543],{"class":988,"line":989},[986,1544,1538],{},[1510,1546,1548],{"id":1547},"install-dependencies","Install dependencies",[977,1550,1552],{"className":1325,"code":1551,"language":1327,"meta":982,"style":982},"pnpm install\n",[963,1553,1554],{"__ignoreMap":982},[986,1555,1556],{"class":988,"line":989},[986,1557,1551],{},[1510,1559,1561],{"id":1560},"generate-type-stubs","Generate type stubs",[977,1563,1565],{"className":1325,"code":1564,"language":1327,"meta":982,"style":982},"pnpm run dev:prepare\n",[963,1566,1567],{"__ignoreMap":982},[986,1568,1569],{"class":988,"line":989},[986,1570,1564],{},[1510,1572,1574],{"id":1573},"start-development","Start development",[1352,1576,1577],{},[1355,1578,1579,1580,1582,1583,1585],{},"To work on the ",[1485,1581,939],{}," located in the ",[963,1584,7],{}," folder, run:",[977,1587,1589],{"className":1325,"code":1588,"language":1327,"meta":982,"style":982},"pnpm run docs\n",[963,1590,1591],{"__ignoreMap":982},[986,1592,1593],{"class":988,"line":989},[986,1594,1588],{},[1352,1596,1597],{},[1355,1598,1599,1600,1602],{},"To test the Nuxt components using the ",[1485,1601,1381],{},", run:",[977,1604,1606],{"className":1325,"code":1605,"language":1327,"meta":982,"style":982},"pnpm run dev\n",[963,1607,1608],{"__ignoreMap":982},[986,1609,1610],{"class":988,"line":989},[986,1611,1605],{},[1352,1613,1614],{},[1355,1615,1616,1617,1602],{},"To test the Vue components using the ",[1485,1618,1381],{},[977,1620,1622],{"className":1325,"code":1621,"language":1327,"meta":982,"style":982},"pnpm run dev:vue\n",[963,1623,1624],{"__ignoreMap":982},[986,1625,1626],{"class":988,"line":989},[986,1627,1621],{},[1457,1629,1631],{"to":1630},"#cli",[924,1632,1633,1634,1636],{},"If you're working on implementing a new component, check the ",[1485,1635,1312],{}," section to kickstart the process.",[956,1638,1640],{"id":1639},"ide-setup","IDE Setup",[924,1642,1643,1644,1649],{},"We recommend using VSCode alongside the ",[934,1645,1648],{"href":1646,"rel":1647},"https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint",[938],"ESLint extension",". You can enable auto-fix and formatting when saving your code. Here's how:",[977,1651,1655],{"className":1652,"code":1653,"language":1654,"meta":982,"style":982},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll\": false,\n    \"source.fixAll.eslint\": true\n  }\n}\n","json",[963,1656,1657,1663,1681,1696,1710,1715],{"__ignoreMap":982},[986,1658,1659],{"class":988,"line":989},[986,1660,1662],{"class":1661},"sMK4o","{\n",[986,1664,1665,1668,1672,1675,1678],{"class":988,"line":1000},[986,1666,1667],{"class":1661},"  \"",[986,1669,1671],{"class":1670},"spNyl","editor.codeActionsOnSave",[986,1673,1674],{"class":1661},"\"",[986,1676,1677],{"class":1661},":",[986,1679,1680],{"class":1661}," {\n",[986,1682,1683,1686,1689,1691,1693],{"class":988,"line":1012},[986,1684,1685],{"class":1661},"    \"",[986,1687,1688],{"class":992},"source.fixAll",[986,1690,1674],{"class":1661},[986,1692,1677],{"class":1661},[986,1694,1695],{"class":1661}," false,\n",[986,1697,1698,1700,1703,1705,1707],{"class":988,"line":1022},[986,1699,1685],{"class":1661},[986,1701,1702],{"class":992},"source.fixAll.eslint",[986,1704,1674],{"class":1661},[986,1706,1677],{"class":1661},[986,1708,1709],{"class":1661}," true\n",[986,1711,1712],{"class":988,"line":1036},[986,1713,1714],{"class":1661},"  }\n",[986,1716,1717],{"class":988,"line":1053},[986,1718,1719],{"class":1661},"}\n",[1721,1722,1723],"warning",{},[924,1724,1725,1726,1729],{},"Since ESLint is already configured to format the code, there's no need for duplicating functionality with ",[1485,1727,1728],{},"Prettier",". If you have it installed in your editor, we recommend disabling it to avoid conflicts.",[956,1731,1733],{"id":1732},"linting","Linting",[924,1735,1736,1737,1740],{},"You can use the ",[963,1738,1739],{},"lint"," command to check for linting errors:",[977,1742,1744],{"className":1325,"code":1743,"language":1327,"meta":982,"style":982},"pnpm run lint # check for linting errors\npnpm run lint:fix # fix linting errors\n",[963,1745,1746,1751],{"__ignoreMap":982},[986,1747,1748],{"class":988,"line":989},[986,1749,1750],{},"pnpm run lint # check for linting errors\n",[986,1752,1753],{"class":988,"line":1000},[986,1754,1755],{},"pnpm run lint:fix # fix linting errors\n",[956,1757,1759],{"id":1758},"type-checking","Type checking",[924,1761,1762,1763,1766],{},"We use TypeScript for type checking. You can use the ",[963,1764,1765],{},"typecheck"," command to check for type errors:",[977,1768,1770],{"className":1325,"code":1769,"language":1327,"meta":982,"style":982},"pnpm run typecheck\n",[963,1771,1772],{"__ignoreMap":982},[986,1773,1774],{"class":988,"line":989},[986,1775,1769],{},[956,1777,1779],{"id":1778},"testing","Testing",[924,1781,1782],{},"Before submitting a PR, ensure that you run the tests:",[977,1784,1786],{"className":1325,"code":1785,"language":1327,"meta":982,"style":982},"pnpm run test\n",[963,1787,1788],{"__ignoreMap":982},[986,1789,1790],{"class":988,"line":989},[986,1791,1785],{},[1793,1794,1795],"tip",{},[924,1796,1797,1798,1801],{},"If you have to update the snapshots, press ",[963,1799,1800],{},"u"," after the tests have finished running.",[956,1803,1805],{"id":1804},"commit-conventions","Commit conventions",[924,1807,1808,1809,1814,1815,1820],{},"We use ",[934,1810,1813],{"href":1811,"rel":1812},"https://www.conventionalcommits.org/",[938],"Conventional Commits"," for commit messages, which allows a changelog to be auto-generated based on the commits. Please read the ",[934,1816,1819],{"href":1817,"rel":1818},"https://www.conventionalcommits.org/en/v1.0.0/#summary",[938],"guide"," through if you aren't familiar with it already.",[1352,1822,1823,1834],{},[1355,1824,1825,1826,1829,1830,1833],{},"Use ",[963,1827,1828],{},"fix"," and ",[963,1831,1832],{},"feat"," for code changes that affect functionality or logic",[1355,1835,1825,1836,1838,1839,1842],{},[963,1837,7],{}," for documentation changes and ",[963,1840,1841],{},"chore"," for maintenance tasks",[956,1844,1846],{"id":1845},"making-a-pull-request","Making a Pull Request",[1352,1848,1849,1858,1865,1872],{},[1355,1850,1851,1852,1857],{},"Follow along the ",[934,1853,1856],{"href":1854,"rel":1855},"https://github.com/nuxt/ui/blob/v4/.github/PULL_REQUEST_TEMPLATE.md?plain=1",[938],"instructions"," provided when creating a PR",[1355,1859,1860,1861,1864],{},"Ensure your PR's title adheres to the ",[934,1862,1813],{"href":1811,"rel":1863},[938]," since it will be used once the code is merged.",[1355,1866,1867,1868,1871],{},"Multiple commits are fine; no need to rebase or force push. We'll use ",[963,1869,1870],{},"Squash and Merge"," when merging.",[1355,1873,1874,1875,1382,1877,1829,1879,1882],{},"Ensure ",[963,1876,1739],{},[963,1878,1765],{},[963,1880,1881],{},"tests"," work before submitting the PR. Avoid making unrelated changes.",[924,1884,1885],{},"We'll review it promptly. If assigned to a maintainer, they'll review it carefully. Ignore the red text; it's for tracking purposes.",[948,1887,1889],{"id":1888},"thanks","Thanks",[924,1891,1892],{},"Thank you again for being interested in this project! You are awesome! ❤️",[1894,1895,1896],"style",{},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}",{"title":982,"searchDepth":1000,"depth":1000,"links":1898},[1899,1903,1907,1916],{"id":950,"depth":1000,"text":951,"children":1900},[1901,1902],{"id":939,"depth":1012,"text":958},{"id":1113,"depth":1012,"text":1114},{"id":1311,"depth":1000,"text":1312,"children":1904},[1905,1906],{"id":847,"depth":1012,"text":71},{"id":1464,"depth":1012,"text":1465},{"id":1490,"depth":1000,"text":1491,"children":1908},[1909,1910,1911,1912,1913,1914,1915],{"id":1500,"depth":1012,"text":1501},{"id":1639,"depth":1012,"text":1640},{"id":1732,"depth":1012,"text":1733},{"id":1758,"depth":1012,"text":1759},{"id":1778,"depth":1012,"text":1779},{"id":1804,"depth":1012,"text":1805},{"id":1845,"depth":1012,"text":1846},{"id":1888,"depth":1000,"text":1889},"md",{},{"icon":52},{"title":48,"description":51},"rsdxCYci_wCYW8CXHiGtHGJIzXdI1N_yzt68Cs6Kkr4",{"data":1923,"body":1924},{},{"type":1925,"children":1926},"root",[1927],{"type":172,"tag":924,"props":1928,"children":1929},{},[1930],{"type":1931,"value":51},"text",1769700079635]