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