[{"data":1,"prerenderedAt":1617},["ShallowReactive",2],{"navigation":3,"-getting-started-contribution":561,"-getting-started-contribution-surround":1605,"-getting-started-contribution-description":1606},[4,108,126],{"title":5,"path":6,"stem":7,"children":8,"framework":11,"module":11,"icon":24},"Getting Started","/getting-started","1.getting-started/1.index",[9,13,42,46,51,56,68,73,85,98,103],{"title":10,"path":6,"stem":7,"framework":11,"module":11,"icon":12},"Introduction",null,"i-lucide-house",{"title":14,"framework":11,"module":11,"shadow":15,"path":16,"stem":17,"children":18,"page":41},"Installation",true,"/getting-started/installation","1.getting-started/2.installation",[19,25,29],{"title":14,"path":20,"stem":21,"framework":22,"module":23,"icon":24},"/getting-started/installation/nuxt","1.getting-started/2.installation/1.nuxt","nuxt","ui","i-lucide-square-play",{"title":14,"path":26,"stem":27,"framework":28,"module":23,"icon":24},"/getting-started/installation/vue","1.getting-started/2.installation/2.vue","vue",{"title":30,"framework":11,"module":11,"shadow":15,"path":31,"stem":32,"children":33,"page":41},"Pro","/getting-started/installation/pro","1.getting-started/2.installation/pro",[34,38],{"title":14,"path":35,"stem":36,"framework":22,"module":37,"icon":24},"/getting-started/installation/pro/nuxt","1.getting-started/2.installation/pro/1.nuxt","ui-pro",{"title":14,"path":39,"stem":40,"framework":28,"module":37,"icon":24},"/getting-started/installation/pro/vue","1.getting-started/2.installation/pro/2.vue",false,{"title":43,"path":44,"stem":45,"framework":11,"module":11},"Migration","/getting-started/migration","1.getting-started/2.migration",{"title":47,"path":48,"stem":49,"framework":11,"module":37,"icon":50},"License","/getting-started/license","1.getting-started/3.license","i-lucide-key-square",{"title":52,"path":53,"stem":54,"framework":11,"module":11,"icon":55},"Theme","/getting-started/theme","1.getting-started/3.theme","i-lucide-swatch-book",{"title":57,"framework":11,"module":11,"shadow":15,"path":58,"stem":59,"children":60,"page":41},"Icons","/getting-started/icons","1.getting-started/4.icons",[61,65],{"title":57,"path":62,"stem":63,"framework":22,"module":11,"icon":64},"/getting-started/icons/nuxt","1.getting-started/4.icons/1.nuxt","i-lucide-smile",{"title":57,"path":66,"stem":67,"framework":28,"module":11,"icon":64},"/getting-started/icons/vue","1.getting-started/4.icons/2.vue",{"title":69,"path":70,"stem":71,"framework":22,"module":11,"icon":72},"Fonts","/getting-started/fonts","1.getting-started/5.fonts","i-lucide-a-large-small",{"title":74,"framework":11,"module":11,"shadow":15,"path":75,"stem":76,"children":77,"page":41},"Color Mode","/getting-started/color-mode","1.getting-started/6.color-mode",[78,82],{"title":74,"path":79,"stem":80,"framework":22,"module":11,"icon":81},"/getting-started/color-mode/nuxt","1.getting-started/6.color-mode/1.nuxt","i-lucide-sun-moon",{"title":74,"path":83,"stem":84,"framework":28,"module":11,"icon":81},"/getting-started/color-mode/vue","1.getting-started/6.color-mode/2.vue",{"title":86,"framework":11,"module":11,"shadow":15,"path":87,"stem":88,"children":89,"page":41},"I18n","/getting-started/i18n","1.getting-started/7.i18n",[90,95],{"title":91,"path":92,"stem":93,"framework":22,"module":11,"icon":94},"Internationalization (i18n)","/getting-started/i18n/nuxt","1.getting-started/7.i18n/1.nuxt","i-lucide-languages",{"title":91,"path":96,"stem":97,"framework":28,"module":11,"icon":94},"/getting-started/i18n/vue","1.getting-started/7.i18n/2.vue",{"title":99,"path":100,"stem":101,"framework":22,"module":37,"icon":102},"Content","/getting-started/content","1.getting-started/8.content","i-simple-icons-markdown",{"title":104,"path":105,"stem":106,"framework":22,"module":37,"icon":107},"Typography","/getting-started/typography","1.getting-started/9.typography","i-lucide-type",{"title":109,"framework":11,"module":11,"icon":110,"path":111,"stem":112,"children":113,"page":41},"Composables","i-lucide-square-function","/composables","2.composables",[114,118,122],{"title":115,"path":116,"stem":117,"framework":11,"module":11},"defineShortcuts","/composables/define-shortcuts","2.composables/define-shortcuts",{"title":119,"path":120,"stem":121,"framework":11,"module":11},"useOverlay","/composables/use-overlay","2.composables/use-overlay",{"title":123,"path":124,"stem":125,"framework":11,"module":11},"useToast","/composables/use-toast","2.composables/use-toast",{"title":127,"framework":11,"module":11,"icon":128,"path":129,"stem":130,"children":131,"page":41},"Components","i-lucide-square-code","/components","3.components",[132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325,329,333,337,341,345,349,353,357,361,365,369,373,377,381,385,389,393,397,401,405,409,413,417,421,425,429,433,437,441,445,449,453,457,461,465,469,473,477,481,485,489,493,497,501,505,509,513,517,521,525,529,533,537,541,545,549,553,557],{"title":133,"path":134,"stem":135,"framework":11,"module":11},"App","/components/app","3.components/0.app",{"title":137,"path":138,"stem":139,"framework":11,"module":11},"Accordion","/components/accordion","3.components/accordion",{"title":141,"path":142,"stem":143,"framework":11,"module":11},"Alert","/components/alert","3.components/alert",{"title":145,"path":146,"stem":147,"framework":11,"module":37},"AuthForm","/components/auth-form","3.components/auth-form",{"title":149,"path":150,"stem":151,"framework":11,"module":11},"Avatar","/components/avatar","3.components/avatar",{"title":153,"path":154,"stem":155,"framework":11,"module":11},"AvatarGroup","/components/avatar-group","3.components/avatar-group",{"title":157,"path":158,"stem":159,"framework":11,"module":11},"Badge","/components/badge","3.components/badge",{"title":161,"path":162,"stem":163,"framework":11,"module":37},"Banner","/components/banner","3.components/banner",{"title":165,"path":166,"stem":167,"framework":11,"module":37},"BlogPost","/components/blog-post","3.components/blog-post",{"title":169,"path":170,"stem":171,"framework":11,"module":37},"BlogPosts","/components/blog-posts","3.components/blog-posts",{"title":173,"path":174,"stem":175,"framework":11,"module":11},"Breadcrumb","/components/breadcrumb","3.components/breadcrumb",{"title":177,"path":178,"stem":179,"framework":11,"module":11},"Button","/components/button","3.components/button",{"title":181,"path":182,"stem":183,"framework":11,"module":11},"ButtonGroup","/components/button-group","3.components/button-group",{"title":185,"path":186,"stem":187,"framework":11,"module":11},"Calendar","/components/calendar","3.components/calendar",{"title":189,"path":190,"stem":191,"framework":11,"module":11},"Card","/components/card","3.components/card",{"title":193,"path":194,"stem":195,"framework":11,"module":11},"Carousel","/components/carousel","3.components/carousel",{"title":197,"path":198,"stem":199,"framework":11,"module":37,"badge":200},"ChatMessage","/components/chat-message","3.components/chat-message","New",{"title":202,"path":203,"stem":204,"framework":11,"module":37,"badge":200},"ChatMessages","/components/chat-messages","3.components/chat-messages",{"title":206,"path":207,"stem":208,"framework":11,"module":37,"badge":200},"ChatPalette","/components/chat-palette","3.components/chat-palette",{"title":210,"path":211,"stem":212,"framework":11,"module":37,"badge":200},"ChatPrompt","/components/chat-prompt","3.components/chat-prompt",{"title":214,"path":215,"stem":216,"framework":11,"module":37,"badge":200},"ChatPromptSubmit","/components/chat-prompt-submit","3.components/chat-prompt-submit",{"title":218,"path":219,"stem":220,"framework":11,"module":11},"Checkbox","/components/checkbox","3.components/checkbox",{"title":222,"path":223,"stem":224,"framework":11,"module":11,"badge":200},"CheckboxGroup","/components/checkbox-group","3.components/checkbox-group",{"title":226,"path":227,"stem":228,"framework":11,"module":11},"Chip","/components/chip","3.components/chip",{"title":230,"path":231,"stem":232,"framework":11,"module":11},"Collapsible","/components/collapsible","3.components/collapsible",{"title":234,"path":235,"stem":236,"framework":11,"module":37},"ColorModeAvatar","/components/color-mode-avatar","3.components/color-mode-avatar",{"title":238,"path":239,"stem":240,"framework":11,"module":37},"ColorModeButton","/components/color-mode-button","3.components/color-mode-button",{"title":242,"path":243,"stem":244,"framework":11,"module":37},"ColorModeImage","/components/color-mode-image","3.components/color-mode-image",{"title":246,"path":247,"stem":248,"framework":11,"module":37},"ColorModeSelect","/components/color-mode-select","3.components/color-mode-select",{"title":250,"path":251,"stem":252,"framework":11,"module":37},"ColorModeSwitch","/components/color-mode-switch","3.components/color-mode-switch",{"title":254,"path":255,"stem":256,"framework":11,"module":11},"ColorPicker","/components/color-picker","3.components/color-picker",{"title":258,"path":259,"stem":260,"framework":11,"module":11},"CommandPalette","/components/command-palette","3.components/command-palette",{"title":262,"path":263,"stem":264,"framework":11,"module":11},"Container","/components/container","3.components/container",{"title":266,"path":267,"stem":268,"framework":22,"module":37},"ContentNavigation","/components/content-navigation","3.components/content-navigation",{"title":270,"path":271,"stem":272,"framework":22,"module":37},"ContentSearch","/components/content-search","3.components/content-search",{"title":274,"path":275,"stem":276,"framework":22,"module":37},"ContentSearchButton","/components/content-search-button","3.components/content-search-button",{"title":278,"path":279,"stem":280,"framework":22,"module":37},"ContentSurround","/components/content-surround","3.components/content-surround",{"title":282,"path":283,"stem":284,"framework":22,"module":37},"ContentToc","/components/content-toc","3.components/content-toc",{"title":286,"path":287,"stem":288,"framework":11,"module":11},"ContextMenu","/components/context-menu","3.components/context-menu",{"title":290,"path":291,"stem":292,"framework":11,"module":37},"DashboardGroup","/components/dashboard-group","3.components/dashboard-group",{"title":294,"path":295,"stem":296,"framework":11,"module":37},"DashboardNavbar","/components/dashboard-navbar","3.components/dashboard-navbar",{"title":298,"path":299,"stem":300,"framework":11,"module":37},"DashboardPanel","/components/dashboard-panel","3.components/dashboard-panel",{"title":302,"path":303,"stem":304,"framework":11,"module":37},"DashboardResizeHandle","/components/dashboard-resize-handle","3.components/dashboard-resize-handle",{"title":306,"path":307,"stem":308,"framework":11,"module":37},"DashboardSearch","/components/dashboard-search","3.components/dashboard-search",{"title":310,"path":311,"stem":312,"framework":11,"module":37},"DashboardSearchButton","/components/dashboard-search-button","3.components/dashboard-search-button",{"title":314,"path":315,"stem":316,"framework":11,"module":37},"DashboardSidebar","/components/dashboard-sidebar","3.components/dashboard-sidebar",{"title":318,"path":319,"stem":320,"framework":11,"module":37},"DashboardSidebarCollapse","/components/dashboard-sidebar-collapse","3.components/dashboard-sidebar-collapse",{"title":322,"path":323,"stem":324,"framework":11,"module":37},"DashboardSidebarToggle","/components/dashboard-sidebar-toggle","3.components/dashboard-sidebar-toggle",{"title":326,"path":327,"stem":328,"framework":11,"module":37},"DashboardToolbar","/components/dashboard-toolbar","3.components/dashboard-toolbar",{"title":330,"path":331,"stem":332,"framework":11,"module":11},"Drawer","/components/drawer","3.components/drawer",{"title":334,"path":335,"stem":336,"framework":11,"module":11},"DropdownMenu","/components/dropdown-menu","3.components/dropdown-menu",{"title":338,"path":339,"stem":340,"framework":11,"module":37},"Error","/components/error","3.components/error",{"title":342,"path":343,"stem":344,"framework":11,"module":37},"Footer","/components/footer","3.components/footer",{"title":346,"path":347,"stem":348,"framework":11,"module":37},"FooterColumns","/components/footer-columns","3.components/footer-columns",{"title":350,"path":351,"stem":352,"framework":11,"module":11},"Form","/components/form","3.components/form",{"title":354,"path":355,"stem":356,"framework":11,"module":11},"FormField","/components/form-field","3.components/form-field",{"title":358,"path":359,"stem":360,"framework":11,"module":37},"Header","/components/header","3.components/header",{"title":362,"path":363,"stem":364,"framework":11,"module":11},"Icon","/components/icon","3.components/icon",{"title":366,"path":367,"stem":368,"framework":11,"module":11},"Input","/components/input","3.components/input",{"title":370,"path":371,"stem":372,"framework":11,"module":11},"InputMenu","/components/input-menu","3.components/input-menu",{"title":374,"path":375,"stem":376,"framework":11,"module":11},"InputNumber","/components/input-number","3.components/input-number",{"title":378,"path":379,"stem":380,"framework":11,"module":11},"Kbd","/components/kbd","3.components/kbd",{"title":382,"path":383,"stem":384,"framework":11,"module":11},"Link","/components/link","3.components/link",{"title":386,"path":387,"stem":388,"framework":11,"module":37},"LocaleSelect","/components/locale-select","3.components/locale-select",{"title":390,"path":391,"stem":392,"framework":11,"module":37},"Main","/components/main","3.components/main",{"title":394,"path":395,"stem":396,"framework":11,"module":11},"Modal","/components/modal","3.components/modal",{"title":398,"path":399,"stem":400,"framework":11,"module":11},"NavigationMenu","/components/navigation-menu","3.components/navigation-menu",{"title":402,"path":403,"stem":404,"framework":11,"module":37},"Page","/components/page","3.components/page",{"title":406,"path":407,"stem":408,"framework":11,"module":37},"PageAccordion","/components/page-accordion","3.components/page-accordion",{"title":410,"path":411,"stem":412,"framework":11,"module":37},"PageAnchors","/components/page-anchors","3.components/page-anchors",{"title":414,"path":415,"stem":416,"framework":11,"module":37},"PageAside","/components/page-aside","3.components/page-aside",{"title":418,"path":419,"stem":420,"framework":11,"module":37},"PageBody","/components/page-body","3.components/page-body",{"title":422,"path":423,"stem":424,"framework":11,"module":37},"PageCard","/components/page-card","3.components/page-card",{"title":426,"path":427,"stem":428,"framework":11,"module":37},"PageColumns","/components/page-columns","3.components/page-columns",{"title":430,"path":431,"stem":432,"framework":11,"module":37},"PageCTA","/components/page-cta","3.components/page-cta",{"title":434,"path":435,"stem":436,"framework":11,"module":37},"PageFeature","/components/page-feature","3.components/page-feature",{"title":438,"path":439,"stem":440,"framework":11,"module":37},"PageGrid","/components/page-grid","3.components/page-grid",{"title":442,"path":443,"stem":444,"framework":11,"module":37},"PageHeader","/components/page-header","3.components/page-header",{"title":446,"path":447,"stem":448,"framework":11,"module":37},"PageHero","/components/page-hero","3.components/page-hero",{"title":450,"path":451,"stem":452,"framework":11,"module":37},"PageLinks","/components/page-links","3.components/page-links",{"title":454,"path":455,"stem":456,"framework":11,"module":37},"PageList","/components/page-list","3.components/page-list",{"title":458,"path":459,"stem":460,"framework":11,"module":37},"PageLogos","/components/page-logos","3.components/page-logos",{"title":462,"path":463,"stem":464,"framework":11,"module":37},"PageMarquee","/components/page-marquee","3.components/page-marquee",{"title":466,"path":467,"stem":468,"framework":11,"module":37},"PageSection","/components/page-section","3.components/page-section",{"title":470,"path":471,"stem":472,"framework":11,"module":11},"Pagination","/components/pagination","3.components/pagination",{"title":474,"path":475,"stem":476,"framework":11,"module":11},"PinInput","/components/pin-input","3.components/pin-input",{"title":478,"path":479,"stem":480,"framework":11,"module":11},"Popover","/components/popover","3.components/popover",{"title":482,"path":483,"stem":484,"framework":11,"module":37},"PricingPlan","/components/pricing-plan","3.components/pricing-plan",{"title":486,"path":487,"stem":488,"framework":11,"module":37},"PricingPlans","/components/pricing-plans","3.components/pricing-plans",{"title":490,"path":491,"stem":492,"framework":11,"module":37,"badge":200},"PricingTable","/components/pricing-table","3.components/pricing-table",{"title":494,"path":495,"stem":496,"framework":11,"module":11},"Progress","/components/progress","3.components/progress",{"title":498,"path":499,"stem":500,"framework":11,"module":11},"RadioGroup","/components/radio-group","3.components/radio-group",{"title":502,"path":503,"stem":504,"framework":11,"module":11},"Select","/components/select","3.components/select",{"title":506,"path":507,"stem":508,"framework":11,"module":11},"SelectMenu","/components/select-menu","3.components/select-menu",{"title":510,"path":511,"stem":512,"framework":11,"module":11},"Separator","/components/separator","3.components/separator",{"title":514,"path":515,"stem":516,"framework":11,"module":11},"Skeleton","/components/skeleton","3.components/skeleton",{"title":518,"path":519,"stem":520,"framework":11,"module":11},"Slideover","/components/slideover","3.components/slideover",{"title":522,"path":523,"stem":524,"framework":11,"module":11},"Slider","/components/slider","3.components/slider",{"title":526,"path":527,"stem":528,"framework":11,"module":11},"Stepper","/components/stepper","3.components/stepper",{"title":530,"path":531,"stem":532,"framework":11,"module":11},"Switch","/components/switch","3.components/switch",{"title":534,"path":535,"stem":536,"framework":11,"module":11},"Table","/components/table","3.components/table",{"title":538,"path":539,"stem":540,"framework":11,"module":11},"Tabs","/components/tabs","3.components/tabs",{"title":542,"path":543,"stem":544,"framework":11,"module":11},"Textarea","/components/textarea","3.components/textarea",{"title":546,"path":547,"stem":548,"framework":11,"module":11},"Toast","/components/toast","3.components/toast",{"title":550,"path":551,"stem":552,"framework":11,"module":11},"Tooltip","/components/tooltip","3.components/tooltip",{"title":554,"path":555,"stem":556,"framework":11,"module":11},"Tree","/components/tree","3.components/tree",{"title":558,"path":559,"stem":560,"framework":11,"module":37},"User","/components/user","3.components/user",{"id":562,"title":563,"body":564,"category":11,"description":1598,"extension":1599,"framework":11,"links":11,"meta":1600,"module":11,"navigation":41,"path":1601,"seo":1602,"stem":1603,"__hash__":1604},"content/1.getting-started/contribution.md","Contribution Guide",{"type":565,"value":566,"toc":1578},"minimal",[567,571,591,596,599,603,621,756,760,767,954,958,965,968,979,982,985,994,997,1051,1054,1126,1132,1136,1139,1148,1159,1163,1166,1169,1173,1176,1299,1308,1312,1321,1391,1401,1405,1412,1427,1431,1438,1447,1451,1459,1474,1484,1488,1503,1524,1528,1564,1567,1571,1574],[568,569,570],"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.",[572,573,574],"caution",{},[568,575,576,577,584,585,590],{},"Before reporting a bug or requesting a feature, make sure that you have read through our ",[578,579,583],"a",{"href":580,"rel":581},"https://ui.nuxt.com/",[582],"nofollow","documentation"," and existing ",[578,586,589],{"href":587,"rel":588},"https://github.com/nuxt/ui/issues?q=is%3Aissue%20is%3Aopen%20sort%3Aupdated-desc%20label%3Av3",[582],"issues",".",[592,593,595],"h2",{"id":594},"project-structure","Project Structure",[568,597,598],{},"Here's an overview of the key directories and files in the Nuxt UI project structure:",[600,601,602],"h3",{"id":583},"Documentation",[568,604,605,606,610,611,614,615,620],{},"The documentation lives in the ",[607,608,609],"code",{},"docs"," folder as a Nuxt app using ",[607,612,613],{},"@nuxt/content"," v3 to generate pages from Markdown files. See the ",[578,616,619],{"href":617,"rel":618},"https://content.nuxt.com/docs/getting-started",[582],"Nuxt Content documentation"," for details on how it works. Here's a breakdown of its structure:",[622,623,628],"pre",{"className":624,"code":625,"language":626,"meta":627,"style":627},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","├── app/\n│   ├── assets/\n│   ├── components/\n│   │   └── content/\n│   │       └── examples   # Components used in documentation as examples\n│   ├── composables/\n│   └── ...\n├── content/\n│   ├── 1.getting-started\n│   ├── 2.composables\n│   └── 3.components       # Components documentation\n","bash","",[607,629,630,643,655,665,679,696,706,716,723,733,743],{"__ignoreMap":627},[631,632,635,639],"span",{"class":633,"line":634},"line",1,[631,636,638],{"class":637},"sBMFI","├──",[631,640,642],{"class":641},"sfazB"," app/\n",[631,644,646,649,652],{"class":633,"line":645},2,[631,647,648],{"class":637},"│",[631,650,651],{"class":641},"   ├──",[631,653,654],{"class":641}," assets/\n",[631,656,658,660,662],{"class":633,"line":657},3,[631,659,648],{"class":637},[631,661,651],{"class":641},[631,663,664],{"class":641}," components/\n",[631,666,668,670,673,676],{"class":633,"line":667},4,[631,669,648],{"class":637},[631,671,672],{"class":641},"   │",[631,674,675],{"class":641},"   └──",[631,677,678],{"class":641}," content/\n",[631,680,682,684,686,689,692],{"class":633,"line":681},5,[631,683,648],{"class":637},[631,685,672],{"class":641},[631,687,688],{"class":641},"       └──",[631,690,691],{"class":641}," examples",[631,693,695],{"class":694},"sHwdD","   # Components used in documentation as examples\n",[631,697,699,701,703],{"class":633,"line":698},6,[631,700,648],{"class":637},[631,702,651],{"class":641},[631,704,705],{"class":641}," composables/\n",[631,707,709,711,713],{"class":633,"line":708},7,[631,710,648],{"class":637},[631,712,675],{"class":641},[631,714,715],{"class":641}," ...\n",[631,717,719,721],{"class":633,"line":718},8,[631,720,638],{"class":637},[631,722,678],{"class":641},[631,724,726,728,730],{"class":633,"line":725},9,[631,727,648],{"class":637},[631,729,651],{"class":641},[631,731,732],{"class":641}," 1.getting-started\n",[631,734,736,738,740],{"class":633,"line":735},10,[631,737,648],{"class":637},[631,739,651],{"class":641},[631,741,742],{"class":641}," 2.composables\n",[631,744,746,748,750,753],{"class":633,"line":745},11,[631,747,648],{"class":637},[631,749,675],{"class":641},[631,751,752],{"class":641}," 3.components",[631,754,755],{"class":694},"       # Components documentation\n",[600,757,759],{"id":758},"module","Module",[568,761,762,763,766],{},"The module code resides in the ",[607,764,765],{},"src"," folder. Here's a breakdown of its structure:",[622,768,770],{"className":624,"code":769,"language":626,"meta":627,"style":627},"├── plugins/\n├── runtime/\n│   ├── components/        # Where all the components are located\n│   │   ├── Accordion.vue\n│   │   ├── Alert.vue\n│   │   └── ...\n│   ├── composables/\n│   ├── locale/\n│   ├── plugins/\n│   ├── types/\n│   ├── utils/\n│   └── vue/\n│       ├── components/\n│       └── plugins/\n├── theme/                 # This where the theme for each component is located\n│   ├── accordion.ts       # Theme for Accordion component\n│   ├── alert.ts\n│   └── ...\n└── module.ts\n",[607,771,772,779,786,798,809,820,830,838,847,855,864,873,883,893,902,913,926,936,945],{"__ignoreMap":627},[631,773,774,776],{"class":633,"line":634},[631,775,638],{"class":637},[631,777,778],{"class":641}," plugins/\n",[631,780,781,783],{"class":633,"line":645},[631,782,638],{"class":637},[631,784,785],{"class":641}," runtime/\n",[631,787,788,790,792,795],{"class":633,"line":657},[631,789,648],{"class":637},[631,791,651],{"class":641},[631,793,794],{"class":641}," components/",[631,796,797],{"class":694},"        # Where all the components are located\n",[631,799,800,802,804,806],{"class":633,"line":667},[631,801,648],{"class":637},[631,803,672],{"class":641},[631,805,651],{"class":641},[631,807,808],{"class":641}," Accordion.vue\n",[631,810,811,813,815,817],{"class":633,"line":681},[631,812,648],{"class":637},[631,814,672],{"class":641},[631,816,651],{"class":641},[631,818,819],{"class":641}," Alert.vue\n",[631,821,822,824,826,828],{"class":633,"line":698},[631,823,648],{"class":637},[631,825,672],{"class":641},[631,827,675],{"class":641},[631,829,715],{"class":641},[631,831,832,834,836],{"class":633,"line":708},[631,833,648],{"class":637},[631,835,651],{"class":641},[631,837,705],{"class":641},[631,839,840,842,844],{"class":633,"line":718},[631,841,648],{"class":637},[631,843,651],{"class":641},[631,845,846],{"class":641}," locale/\n",[631,848,849,851,853],{"class":633,"line":725},[631,850,648],{"class":637},[631,852,651],{"class":641},[631,854,778],{"class":641},[631,856,857,859,861],{"class":633,"line":735},[631,858,648],{"class":637},[631,860,651],{"class":641},[631,862,863],{"class":641}," types/\n",[631,865,866,868,870],{"class":633,"line":745},[631,867,648],{"class":637},[631,869,651],{"class":641},[631,871,872],{"class":641}," utils/\n",[631,874,876,878,880],{"class":633,"line":875},12,[631,877,648],{"class":637},[631,879,675],{"class":641},[631,881,882],{"class":641}," vue/\n",[631,884,886,888,891],{"class":633,"line":885},13,[631,887,648],{"class":637},[631,889,890],{"class":641},"       ├──",[631,892,664],{"class":641},[631,894,896,898,900],{"class":633,"line":895},14,[631,897,648],{"class":637},[631,899,688],{"class":641},[631,901,778],{"class":641},[631,903,905,907,910],{"class":633,"line":904},15,[631,906,638],{"class":637},[631,908,909],{"class":641}," theme/",[631,911,912],{"class":694},"                 # This where the theme for each component is located\n",[631,914,916,918,920,923],{"class":633,"line":915},16,[631,917,648],{"class":637},[631,919,651],{"class":641},[631,921,922],{"class":641}," accordion.ts",[631,924,925],{"class":694},"       # Theme for Accordion component\n",[631,927,929,931,933],{"class":633,"line":928},17,[631,930,648],{"class":637},[631,932,651],{"class":641},[631,934,935],{"class":641}," alert.ts\n",[631,937,939,941,943],{"class":633,"line":938},18,[631,940,648],{"class":637},[631,942,675],{"class":641},[631,944,715],{"class":641},[631,946,948,951],{"class":633,"line":947},19,[631,949,950],{"class":637},"└──",[631,952,953],{"class":641}," module.ts\n",[592,955,957],{"id":956},"cli","CLI",[568,959,960,961,964],{},"To make development easier, we've created a CLI that you can use to generate components and locales. You can access it using the ",[607,962,963],{},"nuxt-ui make"," command.",[568,966,967],{},"First, you need to link the CLI to your global environment:",[622,969,973],{"className":970,"code":971,"language":972,"meta":627,"style":627},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npm link\n","sh",[607,974,975],{"__ignoreMap":627},[631,976,977],{"class":633,"line":634},[631,978,971],{},[600,980,127],{"id":981},"components",[568,983,984],{},"You can create new components using the following command:",[622,986,988],{"className":970,"code":987,"language":972,"meta":627,"style":627},"nuxt-ui make component \u003Cname> [options]\n",[607,989,990],{"__ignoreMap":627},[631,991,992],{"class":633,"line":634},[631,993,987],{},[568,995,996],{},"Available options:",[998,999,1000,1007,1013,1022,1030],"ul",{},[1001,1002,1003,1006],"li",{},[607,1004,1005],{},"--primitive"," Create a primitive component",[1001,1008,1009,1012],{},[607,1010,1011],{},"--pro"," Create a pro component",[1001,1014,1015,1018,1019,1021],{},[607,1016,1017],{},"--prose"," Create a prose component (requires ",[607,1020,1011],{},")",[1001,1023,1024,1027,1028,1021],{},[607,1025,1026],{},"--content"," Create a content component (requires ",[607,1029,1011],{},[1001,1031,1032,1035,1036,1039,1040,1039,1042,1039,1045,1039,1048,1021],{},[607,1033,1034],{},"--template"," Only generate specific template (available templates: ",[607,1037,1038],{},"playground",", ",[607,1041,609],{},[607,1043,1044],{},"test",[607,1046,1047],{},"theme",[607,1049,1050],{},"component",[568,1052,1053],{},"Example:",[622,1055,1057],{"className":970,"code":1056,"language":972,"meta":627,"style":627},"# Create a basic component\nnuxt-ui make component my-component\n\n# Create a pro component\nnuxt-ui make component page-section --pro\n\n# Create a pro prose component\nnuxt-ui make component heading --pro --prose\n\n# Create a pro content component\nnuxt-ui make component block --pro --content\n\n# Generate only documentation template\nnuxt-ui make component my-component --template=docs\n",[607,1058,1059,1064,1069,1074,1079,1084,1088,1093,1098,1102,1107,1112,1116,1121],{"__ignoreMap":627},[631,1060,1061],{"class":633,"line":634},[631,1062,1063],{},"# Create a basic component\n",[631,1065,1066],{"class":633,"line":645},[631,1067,1068],{},"nuxt-ui make component my-component\n",[631,1070,1071],{"class":633,"line":657},[631,1072,1073],{"emptyLinePlaceholder":15},"\n",[631,1075,1076],{"class":633,"line":667},[631,1077,1078],{},"# Create a pro component\n",[631,1080,1081],{"class":633,"line":681},[631,1082,1083],{},"nuxt-ui make component page-section --pro\n",[631,1085,1086],{"class":633,"line":698},[631,1087,1073],{"emptyLinePlaceholder":15},[631,1089,1090],{"class":633,"line":708},[631,1091,1092],{},"# Create a pro prose component\n",[631,1094,1095],{"class":633,"line":718},[631,1096,1097],{},"nuxt-ui make component heading --pro --prose\n",[631,1099,1100],{"class":633,"line":725},[631,1101,1073],{"emptyLinePlaceholder":15},[631,1103,1104],{"class":633,"line":735},[631,1105,1106],{},"# Create a pro content component\n",[631,1108,1109],{"class":633,"line":745},[631,1110,1111],{},"nuxt-ui make component block --pro --content\n",[631,1113,1114],{"class":633,"line":875},[631,1115,1073],{"emptyLinePlaceholder":15},[631,1117,1118],{"class":633,"line":885},[631,1119,1120],{},"# Generate only documentation template\n",[631,1122,1123],{"class":633,"line":895},[631,1124,1125],{},"nuxt-ui make component my-component --template=docs\n",[1127,1128,1129],"note",{},[568,1130,1131],{},"When creating a new component, the CLI will automatically generate all the necessary files like the component itself, theme, tests, and documentation.",[600,1133,1135],{"id":1134},"locales","Locales",[568,1137,1138],{},"You can create new locales using the following command:",[622,1140,1142],{"className":970,"code":1141,"language":972,"meta":627,"style":627},"nuxt-ui make locale --code \u003Ccode> --name \u003Cname>\n",[607,1143,1144],{"__ignoreMap":627},[631,1145,1146],{"class":633,"line":634},[631,1147,1141],{},[1127,1149,1151],{"to":1150},"/getting-started/i18n/nuxt#supported-languages",[568,1152,1153,1154,1158],{},"Learn more about ",[1155,1156,1157],"strong",{},"i18n"," in the documentation.",[592,1160,1162],{"id":1161},"submit-a-pull-request-pr","Submit a Pull Request (PR)",[568,1164,1165],{},"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.",[568,1167,1168],{},"If there isn't, open a new issue to discuss the problem or feature.",[600,1170,1172],{"id":1171},"local-development","Local Development",[568,1174,1175],{},"To begin local development, follow these steps:",[1177,1178,1180,1189,1198,1207,1216,1220,1229,1233,1242,1246,1257,1266,1274,1283,1290],"steps",{"level":1179},"4",[1181,1182,1184,1185,1188],"h4",{"id":1183},"clone-the-nuxtui-repository-to-your-local-machine","Clone the ",[607,1186,1187],{},"nuxt/ui"," repository to your local machine",[622,1190,1192],{"className":970,"code":1191,"language":972,"meta":627,"style":627},"git clone -b v3 https://github.com/nuxt/ui.git\n",[607,1193,1194],{"__ignoreMap":627},[631,1195,1196],{"class":633,"line":634},[631,1197,1191],{},[1181,1199,1201,1202],{"id":1200},"enable-corepack","Enable ",[578,1203,1206],{"href":1204,"rel":1205},"https://github.com/nodejs/corepack",[582],"Corepack",[622,1208,1210],{"className":970,"code":1209,"language":972,"meta":627,"style":627},"corepack enable\n",[607,1211,1212],{"__ignoreMap":627},[631,1213,1214],{"class":633,"line":634},[631,1215,1209],{},[1181,1217,1219],{"id":1218},"install-dependencies","Install dependencies",[622,1221,1223],{"className":970,"code":1222,"language":972,"meta":627,"style":627},"pnpm install\n",[607,1224,1225],{"__ignoreMap":627},[631,1226,1227],{"class":633,"line":634},[631,1228,1222],{},[1181,1230,1232],{"id":1231},"generate-type-stubs","Generate type stubs",[622,1234,1236],{"className":970,"code":1235,"language":972,"meta":627,"style":627},"pnpm run dev:prepare\n",[607,1237,1238],{"__ignoreMap":627},[631,1239,1240],{"class":633,"line":634},[631,1241,1235],{},[1181,1243,1245],{"id":1244},"start-development","Start development",[998,1247,1248],{},[1001,1249,1250,1251,1253,1254,1256],{},"To work on the ",[1155,1252,583],{}," located in the ",[607,1255,609],{}," folder, run:",[622,1258,1260],{"className":970,"code":1259,"language":972,"meta":627,"style":627},"pnpm run docs\n",[607,1261,1262],{"__ignoreMap":627},[631,1263,1264],{"class":633,"line":634},[631,1265,1259],{},[998,1267,1268],{},[1001,1269,1270,1271,1273],{},"To test the Nuxt components using the ",[1155,1272,1038],{},", run:",[622,1275,1277],{"className":970,"code":1276,"language":972,"meta":627,"style":627},"pnpm run dev\n",[607,1278,1279],{"__ignoreMap":627},[631,1280,1281],{"class":633,"line":634},[631,1282,1276],{},[998,1284,1285],{},[1001,1286,1287,1288,1273],{},"To test the Vue components using the ",[1155,1289,1038],{},[622,1291,1293],{"className":970,"code":1292,"language":972,"meta":627,"style":627},"pnpm run dev:vue\n",[607,1294,1295],{"__ignoreMap":627},[631,1296,1297],{"class":633,"line":634},[631,1298,1292],{},[1127,1300,1302],{"to":1301},"#cli",[568,1303,1304,1305,1307],{},"If you're working on implementing a new component, check the ",[1155,1306,957],{}," section to kickstart the process.",[600,1309,1311],{"id":1310},"ide-setup","IDE Setup",[568,1313,1314,1315,1320],{},"We recommend using VSCode alongside the ",[578,1316,1319],{"href":1317,"rel":1318},"https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint",[582],"ESLint extension",". You can enable auto-fix and formatting when saving your code. Here's how:",[622,1322,1326],{"className":1323,"code":1324,"language":1325,"meta":627,"style":627},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"editor.codeActionsOnSave\": {\n    \"source.fixAll\": false,\n    \"source.fixAll.eslint\": true\n  }\n}\n","json",[607,1327,1328,1334,1352,1367,1381,1386],{"__ignoreMap":627},[631,1329,1330],{"class":633,"line":634},[631,1331,1333],{"class":1332},"sMK4o","{\n",[631,1335,1336,1339,1343,1346,1349],{"class":633,"line":645},[631,1337,1338],{"class":1332},"  \"",[631,1340,1342],{"class":1341},"spNyl","editor.codeActionsOnSave",[631,1344,1345],{"class":1332},"\"",[631,1347,1348],{"class":1332},":",[631,1350,1351],{"class":1332}," {\n",[631,1353,1354,1357,1360,1362,1364],{"class":633,"line":657},[631,1355,1356],{"class":1332},"    \"",[631,1358,1359],{"class":637},"source.fixAll",[631,1361,1345],{"class":1332},[631,1363,1348],{"class":1332},[631,1365,1366],{"class":1332}," false,\n",[631,1368,1369,1371,1374,1376,1378],{"class":633,"line":667},[631,1370,1356],{"class":1332},[631,1372,1373],{"class":637},"source.fixAll.eslint",[631,1375,1345],{"class":1332},[631,1377,1348],{"class":1332},[631,1379,1380],{"class":1332}," true\n",[631,1382,1383],{"class":633,"line":681},[631,1384,1385],{"class":1332},"  }\n",[631,1387,1388],{"class":633,"line":698},[631,1389,1390],{"class":1332},"}\n",[1392,1393,1394],"warning",{},[568,1395,1396,1397,1400],{},"Since ESLint is already configured to format the code, there's no need for duplicating functionality with ",[1155,1398,1399],{},"Prettier",". If you have it installed in your editor, we recommend disabling it to avoid conflicts.",[600,1402,1404],{"id":1403},"linting","Linting",[568,1406,1407,1408,1411],{},"You can use the ",[607,1409,1410],{},"lint"," command to check for linting errors:",[622,1413,1415],{"className":970,"code":1414,"language":972,"meta":627,"style":627},"pnpm run lint # check for linting errors\npnpm run lint:fix # fix linting errors\n",[607,1416,1417,1422],{"__ignoreMap":627},[631,1418,1419],{"class":633,"line":634},[631,1420,1421],{},"pnpm run lint # check for linting errors\n",[631,1423,1424],{"class":633,"line":645},[631,1425,1426],{},"pnpm run lint:fix # fix linting errors\n",[600,1428,1430],{"id":1429},"type-checking","Type Checking",[568,1432,1433,1434,1437],{},"We use TypeScript for type checking. You can use the ",[607,1435,1436],{},"typecheck"," command to check for type errors:",[622,1439,1441],{"className":970,"code":1440,"language":972,"meta":627,"style":627},"pnpm run typecheck\n",[607,1442,1443],{"__ignoreMap":627},[631,1444,1445],{"class":633,"line":634},[631,1446,1440],{},[600,1448,1450],{"id":1449},"testing","Testing",[568,1452,1453,1454,1456,1457,1348],{},"Before submitting a PR, ensure that you run the tests for both ",[607,1455,22],{}," and ",[607,1458,28],{},[622,1460,1462],{"className":970,"code":1461,"language":972,"meta":627,"style":627},"pnpm run test # for Nuxt\npnpm run test:vue # for Vue\n",[607,1463,1464,1469],{"__ignoreMap":627},[631,1465,1466],{"class":633,"line":634},[631,1467,1468],{},"pnpm run test # for Nuxt\n",[631,1470,1471],{"class":633,"line":645},[631,1472,1473],{},"pnpm run test:vue # for Vue\n",[1475,1476,1477],"tip",{},[568,1478,1479,1480,1483],{},"If you have to update the snapshots, press ",[607,1481,1482],{},"u"," when running the tests.",[600,1485,1487],{"id":1486},"commit-conventions","Commit Conventions",[568,1489,1490,1491,1496,1497,1502],{},"We use ",[578,1492,1495],{"href":1493,"rel":1494},"https://www.conventionalcommits.org/",[582],"Conventional Commits"," for commit messages, which allows a changelog to be auto-generated based on the commits. Please read the ",[578,1498,1501],{"href":1499,"rel":1500},"https://www.conventionalcommits.org/en/v1.0.0/#summary",[582],"guide"," through if you aren't familiar with it already.",[998,1504,1505,1515],{},[1001,1506,1507,1508,1456,1511,1514],{},"Use ",[607,1509,1510],{},"fix",[607,1512,1513],{},"feat"," for code changes that affect functionality or logic",[1001,1516,1507,1517,1519,1520,1523],{},[607,1518,609],{}," for documentation changes and ",[607,1521,1522],{},"chore"," for maintenance tasks",[600,1525,1527],{"id":1526},"making-a-pull-request","Making a Pull Request",[998,1529,1530,1539,1546,1553],{},[1001,1531,1532,1533,1538],{},"Follow along the ",[578,1534,1537],{"href":1535,"rel":1536},"https://github.com/nuxt/ui/blob/v3/.github/PULL_REQUEST_TEMPLATE.md?plain=1",[582],"instructions"," provided when creating a PR",[1001,1540,1541,1542,1545],{},"Ensure your PR's title adheres to the ",[578,1543,1495],{"href":1493,"rel":1544},[582]," since it will be used once the code is merged.",[1001,1547,1548,1549,1552],{},"Multiple commits are fine; no need to rebase or force push. We'll use ",[607,1550,1551],{},"Squash and Merge"," when merging.",[1001,1554,1555,1556,1039,1558,1456,1560,1563],{},"Ensure ",[607,1557,1410],{},[607,1559,1436],{},[607,1561,1562],{},"tests"," work before submitting the PR. Avoid making unrelated changes.",[568,1565,1566],{},"We'll review it promptly. If assigned to a maintainer, they'll review it carefully. Ignore the red text; it's for tracking purposes.",[592,1568,1570],{"id":1569},"thanks","Thanks",[568,1572,1573],{},"Thank you again for being interested in this project! You are awesome! ❤️",[1575,1576,1577],"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":627,"searchDepth":645,"depth":645,"links":1579},[1580,1584,1588,1597],{"id":594,"depth":645,"text":595,"children":1581},[1582,1583],{"id":583,"depth":657,"text":602},{"id":758,"depth":657,"text":759},{"id":956,"depth":645,"text":957,"children":1585},[1586,1587],{"id":981,"depth":657,"text":127},{"id":1134,"depth":657,"text":1135},{"id":1161,"depth":645,"text":1162,"children":1589},[1590,1591,1592,1593,1594,1595,1596],{"id":1171,"depth":657,"text":1172},{"id":1310,"depth":657,"text":1311},{"id":1403,"depth":657,"text":1404},{"id":1429,"depth":657,"text":1430},{"id":1449,"depth":657,"text":1450},{"id":1486,"depth":657,"text":1487},{"id":1526,"depth":657,"text":1527},{"id":1569,"depth":645,"text":1570},"A comprehensive guide on contributing to Nuxt UI, including project structure, development workflow, and best practices.","md",{},"/getting-started/contribution",{"title":563,"description":1598},"1.getting-started/contribution","FOFtfzx0LOiMd1v1t1j3YwSTkf7nwoTV9R3-Lk3rkso",[11,11],{"data":1607,"body":1608},{},{"type":1609,"children":1610},"root",[1611],{"type":1612,"tag":568,"props":1613,"children":1614},"element",{},[1615],{"type":1616,"value":1598},"text",1747911431107]