[{"data":1,"prerenderedAt":2014},["ShallowReactive",2],{"navigation":3,"-docs-getting-started-contribution":958,"-docs-getting-started-contribution-description":2004},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,163,816,857],{"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,791,796,801,806,811],{"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.","New",{"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},"\u002Fdocs\u002Fcomponents\u002Ftheme","docs\u002F2.components\u002Ftheme","A headless component to theme child components.",{"title":792,"path":793,"stem":794,"framework":16,"category":172,"description":795},"Timeline","\u002Fdocs\u002Fcomponents\u002Ftimeline","docs\u002F2.components\u002Ftimeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":797,"path":798,"stem":799,"framework":16,"category":397,"description":800},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002F2.components\u002Ftoast","A succinct message to provide information or feedback to the user.",{"title":802,"path":803,"stem":804,"framework":16,"category":397,"description":805},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002F2.components\u002Ftooltip","A popup that reveals information when hovering over an element.",{"title":807,"path":808,"stem":809,"framework":16,"category":172,"description":810},"Tree","\u002Fdocs\u002Fcomponents\u002Ftree","docs\u002F2.components\u002Ftree","A tree view component to display and interact with hierarchical data structures.",{"title":812,"path":813,"stem":814,"framework":16,"category":172,"description":815},"User","\u002Fdocs\u002Fcomponents\u002Fuser","docs\u002F2.components\u002Fuser","Display user information with name, description and avatar.",{"title":817,"framework":16,"category":16,"description":16,"icon":818,"path":819,"stem":820,"children":821,"page":36},"Composables","i-lucide-square-function","\u002Fdocs\u002Fcomposables","docs\u002F3.composables",[822,827,832,837,842,847,852],{"title":823,"path":824,"stem":825,"framework":16,"category":16,"description":826},"defineLocale","\u002Fdocs\u002Fcomposables\u002Fdefine-locale","docs\u002F3.composables\u002Fdefine-locale","A utility to create a custom locale for your app.",{"title":828,"path":829,"stem":830,"framework":16,"category":16,"description":831},"defineShortcuts","\u002Fdocs\u002Fcomposables\u002Fdefine-shortcuts","docs\u002F3.composables\u002Fdefine-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":833,"path":834,"stem":835,"framework":16,"category":16,"description":836},"extendLocale","\u002Fdocs\u002Fcomposables\u002Fextend-locale","docs\u002F3.composables\u002Fextend-locale","A utility to extend an existing locale with custom translations.",{"title":838,"path":839,"stem":840,"framework":16,"category":16,"description":841},"extractShortcuts","\u002Fdocs\u002Fcomposables\u002Fextract-shortcuts","docs\u002F3.composables\u002Fextract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":843,"path":844,"stem":845,"framework":16,"category":16,"description":846},"useOverlay","\u002Fdocs\u002Fcomposables\u002Fuse-overlay","docs\u002F3.composables\u002Fuse-overlay","A composable to programmatically control overlays.",{"title":848,"path":849,"stem":850,"framework":16,"category":16,"description":851,"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":853,"path":854,"stem":855,"framework":16,"category":16,"description":856},"useToast","\u002Fdocs\u002Fcomposables\u002Fuse-toast","docs\u002F3.composables\u002Fuse-toast","A composable to display toast notifications in your app.",{"title":858,"path":859,"stem":860,"children":861,"framework":28,"category":16,"description":16,"icon":957},"Typography","\u002Fdocs\u002Ftypography","docs\u002F4.typography\u002F1.index",[862,864,869,874,879,884,889,893,898,902,907,912,917,922,927,931,936,940,944,948,953],{"title":15,"path":859,"stem":860,"framework":28,"category":16,"description":863},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":865,"path":866,"stem":867,"framework":28,"category":16,"description":868},"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":870,"path":871,"stem":872,"framework":28,"category":16,"description":873},"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":875,"path":876,"stem":877,"framework":28,"category":16,"description":878},"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":880,"path":881,"stem":882,"framework":28,"category":16,"description":883},"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":885,"stem":886,"framework":28,"category":887,"description":888},"\u002Fdocs\u002Ftypography\u002Faccordion","docs\u002F4.typography\u002Faccordion","components","Create expandable content sections for better information organization.",{"title":203,"path":890,"stem":891,"framework":28,"category":887,"description":892},"\u002Fdocs\u002Ftypography\u002Fbadge","docs\u002F4.typography\u002Fbadge","Display version numbers, status labels, and tags within your content.",{"title":894,"path":895,"stem":896,"framework":28,"category":887,"description":897},"Callout","\u002Fdocs\u002Ftypography\u002Fcallout","docs\u002F4.typography\u002Fcallout","Highlight important information with eye-catching colored boxes and icons.",{"title":239,"path":899,"stem":900,"framework":28,"category":887,"description":901},"\u002Fdocs\u002Ftypography\u002Fcard","docs\u002F4.typography\u002Fcard","Create highlighted content blocks with optional links and navigation.",{"title":903,"path":904,"stem":905,"framework":28,"category":887,"description":906},"CardGroup","\u002Fdocs\u002Ftypography\u002Fcard-group","docs\u002F4.typography\u002Fcard-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":908,"path":909,"stem":910,"framework":28,"category":887,"description":911},"CodeCollapse","\u002Fdocs\u002Ftypography\u002Fcode-collapse","docs\u002F4.typography\u002Fcode-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":913,"path":914,"stem":915,"framework":28,"category":887,"description":916},"CodeGroup","\u002Fdocs\u002Ftypography\u002Fcode-group","docs\u002F4.typography\u002Fcode-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":918,"path":919,"stem":920,"framework":28,"category":887,"description":921},"CodePreview","\u002Fdocs\u002Ftypography\u002Fcode-preview","docs\u002F4.typography\u002Fcode-preview","Display code examples with a preview and their source for clearer documentation.",{"title":923,"path":924,"stem":925,"framework":28,"category":887,"description":926},"CodeTree","\u002Fdocs\u002Ftypography\u002Fcode-tree","docs\u002F4.typography\u002Fcode-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":322,"path":928,"stem":929,"framework":28,"category":887,"description":930},"\u002Fdocs\u002Ftypography\u002Fcollapsible","docs\u002F4.typography\u002Fcollapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":932,"path":933,"stem":934,"framework":28,"category":887,"description":935},"Field","\u002Fdocs\u002Ftypography\u002Ffield","docs\u002F4.typography\u002Ffield","Document API parameters, props, and configuration options clearly.",{"title":502,"path":937,"stem":938,"framework":28,"category":887,"description":939},"\u002Fdocs\u002Ftypography\u002Ffield-group","docs\u002F4.typography\u002Ffield-group","Group related fields together for comprehensive API documentation.",{"title":537,"path":941,"stem":942,"framework":28,"category":887,"description":943},"\u002Fdocs\u002Ftypography\u002Ficon","docs\u002F4.typography\u002Ficon","Display icons from popular icon libraries to enhance your content.",{"title":572,"path":945,"stem":946,"framework":28,"category":887,"description":947},"\u002Fdocs\u002Ftypography\u002Fkbd","docs\u002F4.typography\u002Fkbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":949,"path":950,"stem":951,"framework":28,"category":887,"description":952},"Steps","\u002Fdocs\u002Ftypography\u002Fsteps","docs\u002F4.typography\u002Fsteps","Transform headings into numbered step-by-step guides and tutorials.",{"title":778,"path":954,"stem":955,"framework":28,"category":887,"description":956},"\u002Fdocs\u002Ftypography\u002Ftabs","docs\u002F4.typography\u002Ftabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":959,"title":48,"body":960,"category":16,"description":51,"extension":1999,"framework":16,"index":36,"links":16,"meta":2000,"navigation":2001,"path":49,"seo":2002,"stem":50,"__hash__":2003},"docs\u002Fdocs\u002F1.getting-started\u002F4.contribution.md",{"type":961,"value":962,"toc":1978},"minimark",[963,967,987,992,1001,1005,1008,1012,1029,1164,1168,1175,1362,1366,1373,1376,1387,1389,1392,1401,1404,1448,1451,1509,1515,1519,1522,1531,1541,1545,1548,1551,1555,1558,1681,1690,1694,1703,1801,1811,1815,1822,1837,1841,1848,1857,1861,1864,1873,1883,1887,1902,1924,1928,1964,1967,1971,1974],[964,965,966],"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.",[968,969,970],"caution",{},[964,971,972,973,980,981,986],{},"Before reporting a bug or requesting a feature, make sure that you have read through our ",[974,975,979],"a",{"href":976,"rel":977},"https:\u002F\u002Fui.nuxt.com\u002F",[978],"nofollow","documentation"," and existing ",[974,982,985],{"href":983,"rel":984},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fissues?q=is%3Aissue%20is%3Aopen%20sort%3Aupdated-desc",[978],"issues",".",[988,989,991],"h2",{"id":990},"ai-assistance","AI assistance",[964,993,994,995,1000],{},"We provide a ",[974,996,999],{"href":997,"rel":998},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Ftree\u002Fv4\u002F.claude\u002Fskills\u002Fcontributing",[978],"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.",[988,1002,1004],{"id":1003},"project-structure","Project structure",[964,1006,1007],{},"Here's an overview of the key directories and files in the Nuxt UI project structure:",[1009,1010,1011],"h3",{"id":979},"Documentation",[964,1013,1014,1015,1018,1019,1022,1023,1028],{},"The documentation lives in the ",[1016,1017,7],"code",{}," folder as a Nuxt app using ",[1016,1020,1021],{},"@nuxt\u002Fcontent"," to generate pages from Markdown files. See the ",[974,1024,1027],{"href":1025,"rel":1026},"https:\u002F\u002Fcontent.nuxt.com\u002Fdocs\u002Fgetting-started",[978],"Nuxt Content documentation"," for details on how it works. Here's a breakdown of its structure:",[1030,1031,1036],"pre",{"className":1032,"code":1033,"language":1034,"meta":1035,"style":1035},"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","",[1016,1037,1038,1051,1063,1073,1087,1104,1114,1124,1131,1141,1151],{"__ignoreMap":1035},[1039,1040,1043,1047],"span",{"class":1041,"line":1042},"line",1,[1039,1044,1046],{"class":1045},"sBMFI","├──",[1039,1048,1050],{"class":1049},"sfazB"," app\u002F\n",[1039,1052,1054,1057,1060],{"class":1041,"line":1053},2,[1039,1055,1056],{"class":1045},"│",[1039,1058,1059],{"class":1049},"   ├──",[1039,1061,1062],{"class":1049}," assets\u002F\n",[1039,1064,1066,1068,1070],{"class":1041,"line":1065},3,[1039,1067,1056],{"class":1045},[1039,1069,1059],{"class":1049},[1039,1071,1072],{"class":1049}," components\u002F\n",[1039,1074,1076,1078,1081,1084],{"class":1041,"line":1075},4,[1039,1077,1056],{"class":1045},[1039,1079,1080],{"class":1049},"   │",[1039,1082,1083],{"class":1049},"   └──",[1039,1085,1086],{"class":1049}," content\u002F\n",[1039,1088,1090,1092,1094,1097,1100],{"class":1041,"line":1089},5,[1039,1091,1056],{"class":1045},[1039,1093,1080],{"class":1049},[1039,1095,1096],{"class":1049},"       └──",[1039,1098,1099],{"class":1049}," examples",[1039,1101,1103],{"class":1102},"sHwdD","   # Components used in documentation as examples\n",[1039,1105,1107,1109,1111],{"class":1041,"line":1106},6,[1039,1108,1056],{"class":1045},[1039,1110,1059],{"class":1049},[1039,1112,1113],{"class":1049}," composables\u002F\n",[1039,1115,1117,1119,1121],{"class":1041,"line":1116},7,[1039,1118,1056],{"class":1045},[1039,1120,1083],{"class":1049},[1039,1122,1123],{"class":1049}," ...\n",[1039,1125,1127,1129],{"class":1041,"line":1126},8,[1039,1128,1046],{"class":1045},[1039,1130,1086],{"class":1049},[1039,1132,1134,1136,1138],{"class":1041,"line":1133},9,[1039,1135,1056],{"class":1045},[1039,1137,1059],{"class":1049},[1039,1139,1140],{"class":1049}," 1.getting-started\n",[1039,1142,1144,1146,1148],{"class":1041,"line":1143},10,[1039,1145,1056],{"class":1045},[1039,1147,1059],{"class":1049},[1039,1149,1150],{"class":1049}," 2.composables\n",[1039,1152,1154,1156,1158,1161],{"class":1041,"line":1153},11,[1039,1155,1056],{"class":1045},[1039,1157,1083],{"class":1049},[1039,1159,1160],{"class":1049}," 3.components",[1039,1162,1163],{"class":1102},"       # Components documentation\n",[1009,1165,1167],{"id":1166},"module","Module",[964,1169,1170,1171,1174],{},"The module code resides in the ",[1016,1172,1173],{},"src"," folder. Here's a breakdown of its structure:",[1030,1176,1178],{"className":1032,"code":1177,"language":1034,"meta":1035,"style":1035},"├── 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",[1016,1179,1180,1187,1194,1206,1217,1228,1238,1246,1255,1263,1272,1281,1291,1301,1310,1321,1334,1344,1353],{"__ignoreMap":1035},[1039,1181,1182,1184],{"class":1041,"line":1042},[1039,1183,1046],{"class":1045},[1039,1185,1186],{"class":1049}," plugins\u002F\n",[1039,1188,1189,1191],{"class":1041,"line":1053},[1039,1190,1046],{"class":1045},[1039,1192,1193],{"class":1049}," runtime\u002F\n",[1039,1195,1196,1198,1200,1203],{"class":1041,"line":1065},[1039,1197,1056],{"class":1045},[1039,1199,1059],{"class":1049},[1039,1201,1202],{"class":1049}," components\u002F",[1039,1204,1205],{"class":1102},"        # Where all the components are located\n",[1039,1207,1208,1210,1212,1214],{"class":1041,"line":1075},[1039,1209,1056],{"class":1045},[1039,1211,1080],{"class":1049},[1039,1213,1059],{"class":1049},[1039,1215,1216],{"class":1049}," Accordion.vue\n",[1039,1218,1219,1221,1223,1225],{"class":1041,"line":1089},[1039,1220,1056],{"class":1045},[1039,1222,1080],{"class":1049},[1039,1224,1059],{"class":1049},[1039,1226,1227],{"class":1049}," Alert.vue\n",[1039,1229,1230,1232,1234,1236],{"class":1041,"line":1106},[1039,1231,1056],{"class":1045},[1039,1233,1080],{"class":1049},[1039,1235,1083],{"class":1049},[1039,1237,1123],{"class":1049},[1039,1239,1240,1242,1244],{"class":1041,"line":1116},[1039,1241,1056],{"class":1045},[1039,1243,1059],{"class":1049},[1039,1245,1113],{"class":1049},[1039,1247,1248,1250,1252],{"class":1041,"line":1126},[1039,1249,1056],{"class":1045},[1039,1251,1059],{"class":1049},[1039,1253,1254],{"class":1049}," locale\u002F\n",[1039,1256,1257,1259,1261],{"class":1041,"line":1133},[1039,1258,1056],{"class":1045},[1039,1260,1059],{"class":1049},[1039,1262,1186],{"class":1049},[1039,1264,1265,1267,1269],{"class":1041,"line":1143},[1039,1266,1056],{"class":1045},[1039,1268,1059],{"class":1049},[1039,1270,1271],{"class":1049}," types\u002F\n",[1039,1273,1274,1276,1278],{"class":1041,"line":1153},[1039,1275,1056],{"class":1045},[1039,1277,1059],{"class":1049},[1039,1279,1280],{"class":1049}," utils\u002F\n",[1039,1282,1284,1286,1288],{"class":1041,"line":1283},12,[1039,1285,1056],{"class":1045},[1039,1287,1083],{"class":1049},[1039,1289,1290],{"class":1049}," vue\u002F\n",[1039,1292,1294,1296,1299],{"class":1041,"line":1293},13,[1039,1295,1056],{"class":1045},[1039,1297,1298],{"class":1049},"       ├──",[1039,1300,1072],{"class":1049},[1039,1302,1304,1306,1308],{"class":1041,"line":1303},14,[1039,1305,1056],{"class":1045},[1039,1307,1096],{"class":1049},[1039,1309,1186],{"class":1049},[1039,1311,1313,1315,1318],{"class":1041,"line":1312},15,[1039,1314,1046],{"class":1045},[1039,1316,1317],{"class":1049}," theme\u002F",[1039,1319,1320],{"class":1102},"                 # This where the theme for each component is located\n",[1039,1322,1324,1326,1328,1331],{"class":1041,"line":1323},16,[1039,1325,1056],{"class":1045},[1039,1327,1059],{"class":1049},[1039,1329,1330],{"class":1049}," accordion.ts",[1039,1332,1333],{"class":1102},"       # Theme for Accordion component\n",[1039,1335,1337,1339,1341],{"class":1041,"line":1336},17,[1039,1338,1056],{"class":1045},[1039,1340,1059],{"class":1049},[1039,1342,1343],{"class":1049}," alert.ts\n",[1039,1345,1347,1349,1351],{"class":1041,"line":1346},18,[1039,1348,1056],{"class":1045},[1039,1350,1083],{"class":1049},[1039,1352,1123],{"class":1049},[1039,1354,1356,1359],{"class":1041,"line":1355},19,[1039,1357,1358],{"class":1045},"└──",[1039,1360,1361],{"class":1049}," module.ts\n",[988,1363,1365],{"id":1364},"cli","CLI",[964,1367,1368,1369,1372],{},"To make development easier, we've created a CLI that you can use to generate components and locales. You can access it using the ",[1016,1370,1371],{},"nuxt-ui make"," command.",[964,1374,1375],{},"First, you need to link the CLI to your global environment:",[1030,1377,1381],{"className":1378,"code":1379,"language":1380,"meta":1035,"style":1035},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm link\n","sh",[1016,1382,1383],{"__ignoreMap":1035},[1039,1384,1385],{"class":1041,"line":1042},[1039,1386,1379],{},[1009,1388,71],{"id":887},[964,1390,1391],{},"You can create new components using the following command:",[1030,1393,1395],{"className":1378,"code":1394,"language":1380,"meta":1035,"style":1035},"nuxt-ui make component \u003Cname> [options]\n",[1016,1396,1397],{"__ignoreMap":1035},[1039,1398,1399],{"class":1041,"line":1042},[1039,1400,1394],{},[964,1402,1403],{},"Available options:",[1405,1406,1407,1414,1420,1426],"ul",{},[1408,1409,1410,1413],"li",{},[1016,1411,1412],{},"--primitive"," Create a primitive component",[1408,1415,1416,1419],{},[1016,1417,1418],{},"--prose"," Create a prose component",[1408,1421,1422,1425],{},[1016,1423,1424],{},"--content"," Create a content component",[1408,1427,1428,1431,1432,1435,1436,1435,1438,1435,1441,1435,1444,1447],{},[1016,1429,1430],{},"--template"," Only generate specific template (available templates: ",[1016,1433,1434],{},"playground",", ",[1016,1437,7],{},[1016,1439,1440],{},"test",[1016,1442,1443],{},"theme",[1016,1445,1446],{},"component",")",[964,1449,1450],{},"Example:",[1030,1452,1454],{"className":1378,"code":1453,"language":1380,"meta":1035,"style":1035},"# 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",[1016,1455,1456,1461,1466,1471,1476,1481,1485,1490,1495,1499,1504],{"__ignoreMap":1035},[1039,1457,1458],{"class":1041,"line":1042},[1039,1459,1460],{},"# Create a basic component\n",[1039,1462,1463],{"class":1041,"line":1053},[1039,1464,1465],{},"nuxt-ui make component my-component\n",[1039,1467,1468],{"class":1041,"line":1065},[1039,1469,1470],{"emptyLinePlaceholder":21},"\n",[1039,1472,1473],{"class":1041,"line":1075},[1039,1474,1475],{},"# Create a prose component\n",[1039,1477,1478],{"class":1041,"line":1089},[1039,1479,1480],{},"nuxt-ui make component heading --prose\n",[1039,1482,1483],{"class":1041,"line":1106},[1039,1484,1470],{"emptyLinePlaceholder":21},[1039,1486,1487],{"class":1041,"line":1116},[1039,1488,1489],{},"# Create a content component\n",[1039,1491,1492],{"class":1041,"line":1126},[1039,1493,1494],{},"nuxt-ui make component block --content\n",[1039,1496,1497],{"class":1041,"line":1133},[1039,1498,1470],{"emptyLinePlaceholder":21},[1039,1500,1501],{"class":1041,"line":1143},[1039,1502,1503],{},"# Generate only documentation template\n",[1039,1505,1506],{"class":1041,"line":1153},[1039,1507,1508],{},"nuxt-ui make component my-component --template=docs\n",[1510,1511,1512],"note",{},[964,1513,1514],{},"When creating a new component, the CLI will automatically generate all the necessary files like the component itself, theme, tests, and documentation.",[1009,1516,1518],{"id":1517},"locales","Locales",[964,1520,1521],{},"You can create new locales using the following command:",[1030,1523,1525],{"className":1378,"code":1524,"language":1380,"meta":1035,"style":1035},"nuxt-ui make locale --code \u003Ccode> --name \u003Cname>\n",[1016,1526,1527],{"__ignoreMap":1035},[1039,1528,1529],{"class":1041,"line":1042},[1039,1530,1524],{},[1510,1532,1534],{"to":1533},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n\u002Fnuxt#supported-languages",[964,1535,1536,1537,1540],{},"Learn more about ",[1538,1539,585],"strong",{}," in the documentation.",[988,1542,1544],{"id":1543},"submit-a-pull-request-pr","Submit a Pull Request (PR)",[964,1546,1547],{},"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.",[964,1549,1550],{},"If there isn't, open a new issue to discuss the problem or feature.",[1009,1552,1554],{"id":1553},"local-development","Local development",[964,1556,1557],{},"To begin local development, follow these steps:",[1559,1560,1562,1571,1580,1589,1598,1602,1611,1615,1624,1628,1639,1648,1656,1665,1672],"steps",{"level":1561},"4",[1563,1564,1566,1567,1570],"h4",{"id":1565},"clone-the-nuxtui-repository-to-your-local-machine","Clone the ",[1016,1568,1569],{},"nuxt\u002Fui"," repository to your local machine",[1030,1572,1574],{"className":1378,"code":1573,"language":1380,"meta":1035,"style":1035},"git clone -b v4 https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui.git\n",[1016,1575,1576],{"__ignoreMap":1035},[1039,1577,1578],{"class":1041,"line":1042},[1039,1579,1573],{},[1563,1581,1583,1584],{"id":1582},"enable-corepack","Enable ",[974,1585,1588],{"href":1586,"rel":1587},"https:\u002F\u002Fgithub.com\u002Fnodejs\u002Fcorepack",[978],"Corepack",[1030,1590,1592],{"className":1378,"code":1591,"language":1380,"meta":1035,"style":1035},"corepack enable\n",[1016,1593,1594],{"__ignoreMap":1035},[1039,1595,1596],{"class":1041,"line":1042},[1039,1597,1591],{},[1563,1599,1601],{"id":1600},"install-dependencies","Install dependencies",[1030,1603,1605],{"className":1378,"code":1604,"language":1380,"meta":1035,"style":1035},"pnpm install\n",[1016,1606,1607],{"__ignoreMap":1035},[1039,1608,1609],{"class":1041,"line":1042},[1039,1610,1604],{},[1563,1612,1614],{"id":1613},"generate-type-stubs","Generate type stubs",[1030,1616,1618],{"className":1378,"code":1617,"language":1380,"meta":1035,"style":1035},"pnpm run dev:prepare\n",[1016,1619,1620],{"__ignoreMap":1035},[1039,1621,1622],{"class":1041,"line":1042},[1039,1623,1617],{},[1563,1625,1627],{"id":1626},"start-development","Start development",[1405,1629,1630],{},[1408,1631,1632,1633,1635,1636,1638],{},"To work on the ",[1538,1634,979],{}," located in the ",[1016,1637,7],{}," folder, run:",[1030,1640,1642],{"className":1378,"code":1641,"language":1380,"meta":1035,"style":1035},"pnpm run docs\n",[1016,1643,1644],{"__ignoreMap":1035},[1039,1645,1646],{"class":1041,"line":1042},[1039,1647,1641],{},[1405,1649,1650],{},[1408,1651,1652,1653,1655],{},"To test the Nuxt components using the ",[1538,1654,1434],{},", run:",[1030,1657,1659],{"className":1378,"code":1658,"language":1380,"meta":1035,"style":1035},"pnpm run dev\n",[1016,1660,1661],{"__ignoreMap":1035},[1039,1662,1663],{"class":1041,"line":1042},[1039,1664,1658],{},[1405,1666,1667],{},[1408,1668,1669,1670,1655],{},"To test the Vue components using the ",[1538,1671,1434],{},[1030,1673,1675],{"className":1378,"code":1674,"language":1380,"meta":1035,"style":1035},"pnpm run dev:vue\n",[1016,1676,1677],{"__ignoreMap":1035},[1039,1678,1679],{"class":1041,"line":1042},[1039,1680,1674],{},[1510,1682,1684],{"to":1683},"#cli",[964,1685,1686,1687,1689],{},"If you're working on implementing a new component, check the ",[1538,1688,1365],{}," section to kickstart the process.",[1009,1691,1693],{"id":1692},"ide-setup","IDE Setup",[964,1695,1696,1697,1702],{},"We recommend using VSCode alongside the ",[974,1698,1701],{"href":1699,"rel":1700},"https:\u002F\u002Fmarketplace.visualstudio.com\u002Fitems?itemName=dbaeumer.vscode-eslint",[978],"ESLint extension",". You can enable auto-fix and formatting when saving your code. Here's how:",[1030,1704,1709],{"className":1705,"code":1706,"filename":1707,"language":1708,"meta":1035,"style":1035},"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",[1016,1710,1711,1717,1735,1758,1777,1782,1796],{"__ignoreMap":1035},[1039,1712,1713],{"class":1041,"line":1042},[1039,1714,1716],{"class":1715},"sMK4o","{\n",[1039,1718,1719,1722,1726,1729,1732],{"class":1041,"line":1053},[1039,1720,1721],{"class":1715},"  \"",[1039,1723,1725],{"class":1724},"spNyl","editor.codeActionsOnSave",[1039,1727,1728],{"class":1715},"\"",[1039,1730,1731],{"class":1715},":",[1039,1733,1734],{"class":1715}," {\n",[1039,1736,1737,1740,1743,1745,1747,1750,1753,1755],{"class":1041,"line":1065},[1039,1738,1739],{"class":1715},"    \"",[1039,1741,1742],{"class":1045},"source.fixAll",[1039,1744,1728],{"class":1715},[1039,1746,1731],{"class":1715},[1039,1748,1749],{"class":1715}," \"",[1039,1751,1752],{"class":1049},"never",[1039,1754,1728],{"class":1715},[1039,1756,1757],{"class":1715},",\n",[1039,1759,1760,1762,1765,1767,1769,1771,1774],{"class":1041,"line":1075},[1039,1761,1739],{"class":1715},[1039,1763,1764],{"class":1045},"source.fixAll.eslint",[1039,1766,1728],{"class":1715},[1039,1768,1731],{"class":1715},[1039,1770,1749],{"class":1715},[1039,1772,1773],{"class":1049},"explicit",[1039,1775,1776],{"class":1715},"\"\n",[1039,1778,1779],{"class":1041,"line":1089},[1039,1780,1781],{"class":1715},"  },\n",[1039,1783,1784,1786,1789,1791,1793],{"class":1041,"line":1106},[1039,1785,1721],{"class":1715},[1039,1787,1788],{"class":1724},"prettier.enable",[1039,1790,1728],{"class":1715},[1039,1792,1731],{"class":1715},[1039,1794,1795],{"class":1715}," false\n",[1039,1797,1798],{"class":1041,"line":1116},[1039,1799,1800],{"class":1715},"}\n",[1802,1803,1804],"warning",{},[964,1805,1806,1807,1810],{},"Since ESLint is already configured to format the code, there's no need for duplicating functionality with ",[1538,1808,1809],{},"Prettier",". If you have it installed in your editor, we recommend disabling it to avoid conflicts.",[1009,1812,1814],{"id":1813},"linting","Linting",[964,1816,1817,1818,1821],{},"You can use the ",[1016,1819,1820],{},"lint"," command to check for linting errors:",[1030,1823,1825],{"className":1378,"code":1824,"language":1380,"meta":1035,"style":1035},"pnpm run lint # check for linting errors\npnpm run lint:fix # fix linting errors\n",[1016,1826,1827,1832],{"__ignoreMap":1035},[1039,1828,1829],{"class":1041,"line":1042},[1039,1830,1831],{},"pnpm run lint # check for linting errors\n",[1039,1833,1834],{"class":1041,"line":1053},[1039,1835,1836],{},"pnpm run lint:fix # fix linting errors\n",[1009,1838,1840],{"id":1839},"type-checking","Type checking",[964,1842,1843,1844,1847],{},"We use TypeScript for type checking. You can use the ",[1016,1845,1846],{},"typecheck"," command to check for type errors:",[1030,1849,1851],{"className":1378,"code":1850,"language":1380,"meta":1035,"style":1035},"pnpm run typecheck\n",[1016,1852,1853],{"__ignoreMap":1035},[1039,1854,1855],{"class":1041,"line":1042},[1039,1856,1850],{},[1009,1858,1860],{"id":1859},"testing","Testing",[964,1862,1863],{},"Before submitting a PR, ensure that you run the tests:",[1030,1865,1867],{"className":1378,"code":1866,"language":1380,"meta":1035,"style":1035},"pnpm run test\n",[1016,1868,1869],{"__ignoreMap":1035},[1039,1870,1871],{"class":1041,"line":1042},[1039,1872,1866],{},[1874,1875,1876],"tip",{},[964,1877,1878,1879,1882],{},"If you have to update the snapshots, press ",[1016,1880,1881],{},"u"," after the tests have finished running.",[1009,1884,1886],{"id":1885},"commit-conventions","Commit conventions",[964,1888,1889,1890,1895,1896,1901],{},"We use ",[974,1891,1894],{"href":1892,"rel":1893},"https:\u002F\u002Fwww.conventionalcommits.org\u002F",[978],"Conventional Commits"," for commit messages, which allows a changelog to be auto-generated based on the commits. Please read the ",[974,1897,1900],{"href":1898,"rel":1899},"https:\u002F\u002Fwww.conventionalcommits.org\u002Fen\u002Fv1.0.0\u002F#summary",[978],"guide"," through if you aren't familiar with it already.",[1405,1903,1904,1915],{},[1408,1905,1906,1907,1910,1911,1914],{},"Use ",[1016,1908,1909],{},"fix"," and ",[1016,1912,1913],{},"feat"," for code changes that affect functionality or logic",[1408,1916,1906,1917,1919,1920,1923],{},[1016,1918,7],{}," for documentation changes and ",[1016,1921,1922],{},"chore"," for maintenance tasks",[1009,1925,1927],{"id":1926},"making-a-pull-request","Making a Pull Request",[1405,1929,1930,1939,1946,1953],{},[1408,1931,1932,1933,1938],{},"Follow along the ",[974,1934,1937],{"href":1935,"rel":1936},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fblob\u002Fv4\u002F.github\u002FPULL_REQUEST_TEMPLATE.md?plain=1",[978],"instructions"," provided when creating a PR",[1408,1940,1941,1942,1945],{},"Ensure your PR's title adheres to the ",[974,1943,1894],{"href":1892,"rel":1944},[978]," since it will be used once the code is merged.",[1408,1947,1948,1949,1952],{},"Multiple commits are fine; no need to rebase or force push. We'll use ",[1016,1950,1951],{},"Squash and Merge"," when merging.",[1408,1954,1955,1956,1435,1958,1910,1960,1963],{},"Ensure ",[1016,1957,1820],{},[1016,1959,1846],{},[1016,1961,1962],{},"tests"," work before submitting the PR. Avoid making unrelated changes.",[964,1965,1966],{},"We'll review it promptly. If assigned to a maintainer, they'll review it carefully. Ignore the red text; it's for tracking purposes.",[988,1968,1970],{"id":1969},"thanks","Thanks",[964,1972,1973],{},"Thank you again for being interested in this project! You are awesome! ❤️",[1975,1976,1977],"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":1035,"searchDepth":1053,"depth":1053,"links":1979},[1980,1981,1985,1989,1998],{"id":990,"depth":1053,"text":991},{"id":1003,"depth":1053,"text":1004,"children":1982},[1983,1984],{"id":979,"depth":1065,"text":1011},{"id":1166,"depth":1065,"text":1167},{"id":1364,"depth":1053,"text":1365,"children":1986},[1987,1988],{"id":887,"depth":1065,"text":71},{"id":1517,"depth":1065,"text":1518},{"id":1543,"depth":1053,"text":1544,"children":1990},[1991,1992,1993,1994,1995,1996,1997],{"id":1553,"depth":1065,"text":1554},{"id":1692,"depth":1065,"text":1693},{"id":1813,"depth":1065,"text":1814},{"id":1839,"depth":1065,"text":1840},{"id":1859,"depth":1065,"text":1860},{"id":1885,"depth":1065,"text":1886},{"id":1926,"depth":1065,"text":1927},{"id":1969,"depth":1053,"text":1970},"md",{},{"icon":52},{"title":48,"description":51},"1zDRHATLkCV1qzkzhSuIwOUgSWSZg1UVIjwgq25x0D0",{"data":2005,"body":2006},{},{"type":2007,"children":2008},"root",[2009],{"type":178,"tag":964,"props":2010,"children":2011},{},[2012],{"type":2013,"value":51},"text",1774901274580]