[{"data":1,"prerenderedAt":3586},["ShallowReactive",2],{"navigation":3,"-docs-getting-started-migration-v3":914,"-docs-getting-started-migration-v3-description":3576},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","/docs","docs",[9,157,777,813],{"title":10,"path":11,"stem":12,"children":13,"framework":16,"category":16,"description":16,"icon":30},"Get Started","/docs/getting-started","docs/1.getting-started/1.index",[14,19,37,47,53,76,140],{"title":15,"path":11,"stem":12,"framework":16,"category":16,"description":17,"icon":18},"Introduction",null,"Nuxt UI is a comprehensive UI library for Vue and Nuxt applications, offering a collection of fully styled and accessible components.","i-lucide-house",{"title":20,"framework":16,"category":16,"description":16,"shadow":21,"path":22,"stem":23,"children":24,"page":36},"Installation",true,"/docs/getting-started/installation","docs/1.getting-started/2.installation",[25,31],{"title":20,"path":26,"stem":27,"framework":28,"category":16,"description":29,"icon":30},"/docs/getting-started/installation/nuxt","docs/1.getting-started/2.installation/1.nuxt","nuxt","Learn how to install and configure Nuxt UI in your Nuxt application.","i-lucide-square-play",{"title":20,"path":32,"stem":33,"framework":34,"category":16,"description":35,"icon":30},"/docs/getting-started/installation/vue","docs/1.getting-started/2.installation/2.vue","vue","Learn how to install and configure Nuxt UI in your Vue application, compatible with both plain Vite and Inertia.",false,{"title":38,"framework":16,"category":16,"description":16,"icon":39,"shadow":21,"path":40,"stem":41,"children":42,"page":36},"Migration","i-lucide-arrow-right-left","/docs/getting-started/migration","docs/1.getting-started/3.migration",[43],{"title":38,"path":44,"stem":45,"framework":16,"category":16,"description":46,"icon":39},"/docs/getting-started/migration/v4","docs/1.getting-started/3.migration/1.v4","A comprehensive guide to migrate your application from Nuxt UI v3 to Nuxt UI v4.",{"title":48,"path":49,"stem":50,"framework":16,"category":16,"description":51,"icon":52},"Contribution","/docs/getting-started/contribution","docs/1.getting-started/4.contribution","A comprehensive guide on contributing to Nuxt UI, including project structure, development workflow, and best practices.","i-lucide-handshake",{"title":54,"path":55,"stem":56,"children":57,"page":36},"Theme","/docs/getting-started/theme","docs/1.getting-started/5.theme",[58,64,70],{"title":59,"path":60,"stem":61,"framework":16,"category":16,"description":62,"icon":63},"Design System","/docs/getting-started/theme/design-system","docs/1.getting-started/5.theme/1.design-system","Nuxt UI's design system uses Tailwind CSS for simple theming and easy customization.","i-lucide-palette",{"title":65,"path":66,"stem":67,"framework":16,"category":16,"description":68,"icon":69},"CSS Variables","/docs/getting-started/theme/css-variables","docs/1.getting-started/5.theme/2.css-variables","Nuxt UI uses CSS variables as design tokens for flexible, consistent theming with built-in light and dark mode support.","i-lucide-swatch-book",{"title":71,"path":72,"stem":73,"framework":16,"category":16,"description":74,"icon":75},"Components","/docs/getting-started/theme/components","docs/1.getting-started/5.theme/3.components","Learn how to customize Nuxt UI components with the Tailwind Variants API for advanced, flexible, and maintainable styling.","i-lucide-layout-grid",{"title":77,"framework":16,"category":16,"description":16,"path":78,"stem":79,"children":80,"page":36},"Integrations","/docs/getting-started/integrations","docs/1.getting-started/6.integrations",[81,95,101,115,129,135],{"title":82,"framework":16,"category":16,"description":16,"shadow":21,"path":83,"stem":84,"children":85,"page":36},"Icons","/docs/getting-started/integrations/icons","docs/1.getting-started/6.integrations/1.icons",[86,91],{"title":82,"path":87,"stem":88,"framework":28,"category":16,"description":89,"icon":90},"/docs/getting-started/integrations/icons/nuxt","docs/1.getting-started/6.integrations/1.icons/1.nuxt","Nuxt UI integrates with Nuxt Icon to access over 200,000+ icons from Iconify.","i-lucide-smile",{"title":82,"path":92,"stem":93,"framework":34,"category":16,"description":94,"icon":90},"/docs/getting-started/integrations/icons/vue","docs/1.getting-started/6.integrations/1.icons/2.vue","Nuxt UI integrates with Iconify to access over 200,000+ icons.",{"title":96,"path":97,"stem":98,"framework":28,"category":16,"description":99,"icon":100},"Fonts","/docs/getting-started/integrations/fonts","docs/1.getting-started/6.integrations/2.fonts","Nuxt UI integrates with Nuxt Fonts to provide plug-and-play font optimization.","i-lucide-a-large-small",{"title":102,"framework":16,"category":16,"description":16,"shadow":21,"path":103,"stem":104,"children":105,"page":36},"Color Mode","/docs/getting-started/integrations/color-mode","docs/1.getting-started/6.integrations/3.color-mode",[106,111],{"title":102,"path":107,"stem":108,"framework":28,"category":16,"description":109,"icon":110},"/docs/getting-started/integrations/color-mode/nuxt","docs/1.getting-started/6.integrations/3.color-mode/1.nuxt","Nuxt UI integrates with Nuxt Color Mode to allow for easy switching between light and dark themes.","i-lucide-sun-moon",{"title":102,"path":112,"stem":113,"framework":34,"category":16,"description":114,"icon":110},"/docs/getting-started/integrations/color-mode/vue","docs/1.getting-started/6.integrations/3.color-mode/2.vue","Nuxt UI integrates with VueUse to allow for easy switching between light and dark themes.",{"title":116,"framework":16,"category":16,"description":16,"shadow":21,"path":117,"stem":118,"children":119,"page":36},"I18n","/docs/getting-started/integrations/i18n","docs/1.getting-started/6.integrations/4.i18n",[120,126],{"title":121,"path":122,"stem":123,"framework":28,"category":16,"description":124,"icon":125},"Internationalization (i18n)","/docs/getting-started/integrations/i18n/nuxt","docs/1.getting-started/6.integrations/4.i18n/1.nuxt","Nuxt UI supports 50+ locales and multi-directional (LTR/RTL) internationalization.","i-lucide-languages",{"title":121,"path":127,"stem":128,"framework":34,"category":16,"description":124,"icon":125},"/docs/getting-started/integrations/i18n/vue","docs/1.getting-started/6.integrations/4.i18n/2.vue",{"title":130,"path":131,"stem":132,"framework":28,"category":16,"description":133,"icon":134},"Content","/docs/getting-started/integrations/content","docs/1.getting-started/6.integrations/5.content","Nuxt UI integrates with Nuxt Content to deliver beautiful typography and consistent component styling.","i-simple-icons-markdown",{"title":136,"path":137,"stem":138,"framework":34,"category":16,"description":139,"icon":134},"SSR","/docs/getting-started/integrations/ssr","docs/1.getting-started/6.integrations/6.ssr","Nuxt UI have first-party support for Vue.js SSR. This guide will help you have it fully enabled.",{"title":141,"framework":16,"category":16,"description":16,"path":142,"stem":143,"children":144,"page":36},"AI Tools","/docs/getting-started/ai","docs/1.getting-started/7.ai",[145,151],{"title":146,"path":147,"stem":148,"framework":16,"category":16,"description":149,"icon":150},"MCP Server","/docs/getting-started/ai/mcp","docs/1.getting-started/7.ai/1.mcp","Use Nuxt UI components in your AI assistants with Model Context Protocol support.","i-lucide-server",{"title":152,"path":153,"stem":154,"framework":16,"category":16,"description":155,"icon":156},"LLMs.txt","/docs/getting-started/ai/llms-txt","docs/1.getting-started/7.ai/2.llms-txt","How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt UI components, theming, and best practices.","i-lucide-bot",{"title":71,"framework":16,"category":16,"description":16,"icon":158,"path":159,"stem":160,"children":161,"page":36},"i-lucide-square-code","/docs/components","docs/2.components",[162,168,174,180,186,191,196,201,206,211,216,222,227,232,237,242,247,252,258,263,268,273,278,284,289,294,299,305,310,315,320,325,330,335,340,346,351,356,361,366,372,378,383,388,393,398,403,408,413,418,423,428,433,440,445,450,455,460,465,470,475,480,485,490,495,500,505,510,515,520,526,531,536,541,546,551,556,562,567,572,577,582,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],{"title":163,"path":164,"stem":165,"framework":16,"category":166,"description":167},"Accordion","/docs/components/accordion","docs/2.components/accordion","data","A stacked set of collapsible panels.",{"title":169,"path":170,"stem":171,"framework":16,"category":172,"description":173},"Alert","/docs/components/alert","docs/2.components/alert","element","A callout to draw user's attention.",{"title":175,"path":176,"stem":177,"framework":16,"category":178,"description":179},"App","/docs/components/app","docs/2.components/app","layout","Wraps your app to provide global configurations and more.",{"title":181,"path":182,"stem":183,"framework":16,"category":184,"description":185},"AuthForm","/docs/components/auth-form","docs/2.components/auth-form","page","A customizable Form to create login, register or password reset forms.",{"title":187,"path":188,"stem":189,"framework":16,"category":172,"description":190},"Avatar","/docs/components/avatar","docs/2.components/avatar","An img element with fallback and Nuxt Image support.",{"title":192,"path":193,"stem":194,"framework":16,"category":172,"description":195},"AvatarGroup","/docs/components/avatar-group","docs/2.components/avatar-group","Stack multiple avatars in a group.",{"title":197,"path":198,"stem":199,"framework":16,"category":172,"description":200},"Badge","/docs/components/badge","docs/2.components/badge","A short text to represent a status or a category.",{"title":202,"path":203,"stem":204,"framework":16,"category":172,"description":205},"Banner","/docs/components/banner","docs/2.components/banner","Display a banner at the top of your website to inform users about important information.",{"title":207,"path":208,"stem":209,"framework":16,"category":184,"description":210},"BlogPost","/docs/components/blog-post","docs/2.components/blog-post","A customizable article to display in a blog page.",{"title":212,"path":213,"stem":214,"framework":16,"category":184,"description":215},"BlogPosts","/docs/components/blog-posts","docs/2.components/blog-posts","Display a list of blog posts in a responsive grid layout.",{"title":217,"path":218,"stem":219,"framework":16,"category":220,"description":221},"Breadcrumb","/docs/components/breadcrumb","docs/2.components/breadcrumb","navigation","A hierarchy of links to navigate through a website.",{"title":223,"path":224,"stem":225,"framework":16,"category":172,"description":226},"Button","/docs/components/button","docs/2.components/button","A button element that can act as a link or trigger an action.",{"title":228,"path":229,"stem":230,"framework":16,"category":172,"description":231},"Calendar","/docs/components/calendar","docs/2.components/calendar","A calendar component for selecting single dates, multiple dates or date ranges.",{"title":233,"path":234,"stem":235,"framework":16,"category":172,"description":236},"Card","/docs/components/card","docs/2.components/card","Display content in a card with a header, body and footer.",{"title":238,"path":239,"stem":240,"framework":16,"category":166,"description":241},"Carousel","/docs/components/carousel","docs/2.components/carousel","A carousel with motion and swipe built using Embla.",{"title":243,"path":244,"stem":245,"framework":16,"category":184,"description":246},"ChangelogVersion","/docs/components/changelog-version","docs/2.components/changelog-version","A customizable article to display in a changelog.",{"title":248,"path":249,"stem":250,"framework":16,"category":184,"description":251},"ChangelogVersions","/docs/components/changelog-versions","docs/2.components/changelog-versions","Display a list of changelog versions in a timeline.",{"title":253,"path":254,"stem":255,"framework":16,"category":256,"description":257},"ChatMessage","/docs/components/chat-message","docs/2.components/chat-message","chat","Display a chat message with icon, avatar, and actions.",{"title":259,"path":260,"stem":261,"framework":16,"category":256,"description":262},"ChatMessages","/docs/components/chat-messages","docs/2.components/chat-messages","Display a list of chat messages, designed to work seamlessly with Vercel AI SDK.",{"title":264,"path":265,"stem":266,"framework":16,"category":256,"description":267},"ChatPalette","/docs/components/chat-palette","docs/2.components/chat-palette","A chat palette to create a chatbot interface inside an overlay.",{"title":269,"path":270,"stem":271,"framework":16,"category":256,"description":272},"ChatPrompt","/docs/components/chat-prompt","docs/2.components/chat-prompt","An enhanced Textarea for submitting prompts in AI chat interfaces.",{"title":274,"path":275,"stem":276,"framework":16,"category":256,"description":277},"ChatPromptSubmit","/docs/components/chat-prompt-submit","docs/2.components/chat-prompt-submit","A Button for submitting chat prompts with automatic status handling.",{"title":279,"path":280,"stem":281,"framework":16,"category":282,"description":283},"Checkbox","/docs/components/checkbox","docs/2.components/checkbox","form","An input element to toggle between checked and unchecked states.",{"title":285,"path":286,"stem":287,"framework":16,"category":282,"description":288},"CheckboxGroup","/docs/components/checkbox-group","docs/2.components/checkbox-group","A set of checklist buttons to select multiple option from a list.",{"title":290,"path":291,"stem":292,"framework":16,"category":172,"description":293},"Chip","/docs/components/chip","docs/2.components/chip","An indicator of a numeric value or a state.",{"title":295,"path":296,"stem":297,"framework":16,"category":172,"description":298},"Collapsible","/docs/components/collapsible","docs/2.components/collapsible","A collapsible element to toggle visibility of its content.",{"title":300,"path":301,"stem":302,"framework":16,"category":303,"description":304},"ColorModeAvatar","/docs/components/color-mode-avatar","docs/2.components/color-mode-avatar","color-mode","An Avatar with a different source for light and dark mode.",{"title":306,"path":307,"stem":308,"framework":16,"category":303,"description":309},"ColorModeButton","/docs/components/color-mode-button","docs/2.components/color-mode-button","A Button to switch between light and dark mode.",{"title":311,"path":312,"stem":313,"framework":16,"category":303,"description":314},"ColorModeImage","/docs/components/color-mode-image","docs/2.components/color-mode-image","An image element with a different source for light and dark mode.",{"title":316,"path":317,"stem":318,"framework":16,"category":303,"description":319},"ColorModeSelect","/docs/components/color-mode-select","docs/2.components/color-mode-select","A Select to switch between system, dark & light mode.",{"title":321,"path":322,"stem":323,"framework":16,"category":303,"description":324},"ColorModeSwitch","/docs/components/color-mode-switch","docs/2.components/color-mode-switch","A switch to toggle between light and dark mode.",{"title":326,"path":327,"stem":328,"framework":16,"category":282,"description":329},"ColorPicker","/docs/components/color-picker","docs/2.components/color-picker","A component to select a color.",{"title":331,"path":332,"stem":333,"framework":16,"category":220,"description":334},"CommandPalette","/docs/components/command-palette","docs/2.components/command-palette","A command palette with full-text search powered by Fuse.js for efficient fuzzy matching.",{"title":336,"path":337,"stem":338,"framework":16,"category":178,"description":339},"Container","/docs/components/container","docs/2.components/container","A container lets you center and constrain the width of your content.",{"title":341,"path":342,"stem":343,"framework":28,"category":344,"description":345},"ContentNavigation","/docs/components/content-navigation","docs/2.components/content-navigation","content","An accordion-style navigation component for organizing page links.",{"title":347,"path":348,"stem":349,"framework":28,"category":344,"description":350},"ContentSearch","/docs/components/content-search","docs/2.components/content-search","A ready to use CommandPalette to add to your documentation.",{"title":352,"path":353,"stem":354,"framework":28,"category":344,"description":355},"ContentSearchButton","/docs/components/content-search-button","docs/2.components/content-search-button","A pre-styled Button to open the ContentSearch modal.",{"title":357,"path":358,"stem":359,"framework":28,"category":344,"description":360},"ContentSurround","/docs/components/content-surround","docs/2.components/content-surround","A pair of prev and next links to navigate between pages.",{"title":362,"path":363,"stem":364,"framework":28,"category":344,"description":365},"ContentToc","/docs/components/content-toc","docs/2.components/content-toc","A sticky Table of Contents with automatic active anchor link highlighting.",{"title":367,"path":368,"stem":369,"framework":16,"category":370,"description":371},"ContextMenu","/docs/components/context-menu","docs/2.components/context-menu","overlay","A menu to display actions when right-clicking on an element.",{"title":373,"path":374,"stem":375,"framework":16,"category":376,"description":377},"DashboardGroup","/docs/components/dashboard-group","docs/2.components/dashboard-group","dashboard","A fixed layout component that provides context for dashboard components with sidebar state management and persistence.",{"title":379,"path":380,"stem":381,"framework":16,"category":376,"description":382},"DashboardNavbar","/docs/components/dashboard-navbar","docs/2.components/dashboard-navbar","A responsive navbar to display in a dashboard.",{"title":384,"path":385,"stem":386,"framework":16,"category":376,"description":387},"DashboardPanel","/docs/components/dashboard-panel","docs/2.components/dashboard-panel","A resizable panel to display in a dashboard.",{"title":389,"path":390,"stem":391,"framework":16,"category":376,"description":392},"DashboardResizeHandle","/docs/components/dashboard-resize-handle","docs/2.components/dashboard-resize-handle","A handle to resize a sidebar or panel.",{"title":394,"path":395,"stem":396,"framework":16,"category":376,"description":397},"DashboardSearch","/docs/components/dashboard-search","docs/2.components/dashboard-search","A ready to use CommandPalette to add to your dashboard.",{"title":399,"path":400,"stem":401,"framework":16,"category":376,"description":402},"DashboardSearchButton","/docs/components/dashboard-search-button","docs/2.components/dashboard-search-button","A pre-styled Button to open the DashboardSearch modal.",{"title":404,"path":405,"stem":406,"framework":16,"category":376,"description":407},"DashboardSidebar","/docs/components/dashboard-sidebar","docs/2.components/dashboard-sidebar","A resizable and collapsible sidebar to display in a dashboard.",{"title":409,"path":410,"stem":411,"framework":16,"category":376,"description":412},"DashboardSidebarCollapse","/docs/components/dashboard-sidebar-collapse","docs/2.components/dashboard-sidebar-collapse","A Button to collapse the sidebar on desktop.",{"title":414,"path":415,"stem":416,"framework":16,"category":376,"description":417},"DashboardSidebarToggle","/docs/components/dashboard-sidebar-toggle","docs/2.components/dashboard-sidebar-toggle","A Button to toggle the sidebar on mobile.",{"title":419,"path":420,"stem":421,"framework":16,"category":376,"description":422},"DashboardToolbar","/docs/components/dashboard-toolbar","docs/2.components/dashboard-toolbar","A toolbar to display under the navbar in a dashboard.",{"title":424,"path":425,"stem":426,"framework":16,"category":370,"description":427},"Drawer","/docs/components/drawer","docs/2.components/drawer","A drawer that smoothly slides in & out of the screen.",{"title":429,"path":430,"stem":431,"framework":16,"category":370,"description":432},"DropdownMenu","/docs/components/dropdown-menu","docs/2.components/dropdown-menu","A menu to display actions when clicking on an element.",{"title":434,"path":435,"stem":436,"framework":16,"category":437,"description":438,"badge":439},"Editor","/docs/components/editor","docs/2.components/editor","editor","A rich text editor component based on TipTap with support for markdown, HTML, and JSON content types.","Soon",{"title":441,"path":442,"stem":443,"framework":16,"category":437,"description":444,"badge":439},"EditorDragHandle","/docs/components/editor-drag-handle","docs/2.components/editor-drag-handle","A draggable handle for reordering and selecting blocks in the editor.",{"title":446,"path":447,"stem":448,"framework":16,"category":437,"description":449,"badge":439},"EditorEmojiMenu","/docs/components/editor-emoji-menu","docs/2.components/editor-emoji-menu","An emoji picker menu that displays emoji suggestions when typing the : character in the editor.",{"title":451,"path":452,"stem":453,"framework":16,"category":437,"description":454,"badge":439},"EditorMentionMenu","/docs/components/editor-mention-menu","docs/2.components/editor-mention-menu","A mention menu that displays user suggestions when typing the @ character in the editor.",{"title":456,"path":457,"stem":458,"framework":16,"category":437,"description":459,"badge":439},"EditorSuggestionMenu","/docs/components/editor-suggestion-menu","docs/2.components/editor-suggestion-menu","A command menu that displays formatting and action suggestions when typing the / character in the editor.",{"title":461,"path":462,"stem":463,"framework":16,"category":437,"description":464,"badge":439},"EditorToolbar","/docs/components/editor-toolbar","docs/2.components/editor-toolbar","A customizable toolbar for editor actions that can be displayed as fixed, bubble, or floating menu.",{"title":466,"path":467,"stem":468,"framework":16,"category":166,"description":469},"Empty","/docs/components/empty","docs/2.components/empty","A component to display an empty state.",{"title":471,"path":472,"stem":473,"framework":16,"category":178,"description":474},"Error","/docs/components/error","docs/2.components/error","A pre-built error component with NuxtError support.",{"title":476,"path":477,"stem":478,"framework":16,"category":172,"description":479},"FieldGroup","/docs/components/field-group","docs/2.components/field-group","Group multiple button-like elements together.",{"title":481,"path":482,"stem":483,"framework":16,"category":282,"description":484},"FileUpload","/docs/components/file-upload","docs/2.components/file-upload","An input element to upload files.",{"title":486,"path":487,"stem":488,"framework":16,"category":178,"description":489},"Footer","/docs/components/footer","docs/2.components/footer","A responsive footer component.",{"title":491,"path":492,"stem":493,"framework":16,"category":220,"description":494},"FooterColumns","/docs/components/footer-columns","docs/2.components/footer-columns","A list of links as columns to display in your Footer.",{"title":496,"path":497,"stem":498,"framework":16,"category":282,"description":499},"Form","/docs/components/form","docs/2.components/form","A form component with built-in validation and submission handling.",{"title":501,"path":502,"stem":503,"framework":16,"category":282,"description":504},"FormField","/docs/components/form-field","docs/2.components/form-field","A wrapper for form elements that provides validation and error handling.",{"title":506,"path":507,"stem":508,"framework":16,"category":178,"description":509},"Header","/docs/components/header","docs/2.components/header","A responsive header component.",{"title":511,"path":512,"stem":513,"framework":16,"category":172,"description":514},"Icon","/docs/components/icon","docs/2.components/icon","A component to display any icon from Iconify or another component.",{"title":516,"path":517,"stem":518,"framework":16,"category":282,"description":519},"Input","/docs/components/input","docs/2.components/input","An input element to enter text.",{"title":521,"path":522,"stem":523,"framework":16,"category":282,"description":524,"badge":525},"InputDate","/docs/components/input-date","docs/2.components/input-date","An input component for date selection.","New",{"title":527,"path":528,"stem":529,"framework":16,"category":282,"description":530},"InputMenu","/docs/components/input-menu","docs/2.components/input-menu","An autocomplete input with real-time suggestions.",{"title":532,"path":533,"stem":534,"framework":16,"category":282,"description":535},"InputNumber","/docs/components/input-number","docs/2.components/input-number","An input for numerical values with a customizable range.",{"title":537,"path":538,"stem":539,"framework":16,"category":282,"description":540},"InputTags","/docs/components/input-tags","docs/2.components/input-tags","An input element that displays interactive tags.",{"title":542,"path":543,"stem":544,"framework":16,"category":282,"description":545,"badge":525},"InputTime","/docs/components/input-time","docs/2.components/input-time","An input for selecting a time.",{"title":547,"path":548,"stem":549,"framework":16,"category":172,"description":550},"Kbd","/docs/components/kbd","docs/2.components/kbd","A kbd element to display a keyboard key.",{"title":552,"path":553,"stem":554,"framework":16,"category":220,"description":555},"Link","/docs/components/link","docs/2.components/link","A wrapper around \u003CNuxtLink> with extra props.",{"title":557,"path":558,"stem":559,"framework":16,"category":560,"description":561},"LocaleSelect","/docs/components/locale-select","docs/2.components/locale-select","i18n","A Select to switch between locales.",{"title":563,"path":564,"stem":565,"framework":16,"category":178,"description":566},"Main","/docs/components/main","docs/2.components/main","A main element that fills the available viewport height.",{"title":568,"path":569,"stem":570,"framework":16,"category":166,"description":571},"Marquee","/docs/components/marquee","docs/2.components/marquee","A component to create infinite scrolling content.",{"title":573,"path":574,"stem":575,"framework":16,"category":370,"description":576},"Modal","/docs/components/modal","docs/2.components/modal","A dialog window that can be used to display a message or request user input.",{"title":578,"path":579,"stem":580,"framework":16,"category":220,"description":581},"NavigationMenu","/docs/components/navigation-menu","docs/2.components/navigation-menu","A list of links that can be displayed horizontally or vertically.",{"title":583,"path":584,"stem":585,"framework":16,"category":184,"description":586},"Page","/docs/components/page","docs/2.components/page","A grid layout for your pages with left and right columns.",{"title":588,"path":589,"stem":590,"framework":16,"category":184,"description":591},"PageAnchors","/docs/components/page-anchors","docs/2.components/page-anchors","A list of anchors to be displayed in the page.",{"title":593,"path":594,"stem":595,"framework":16,"category":184,"description":596},"PageAside","/docs/components/page-aside","docs/2.components/page-aside","A sticky aside to display your page navigation.",{"title":598,"path":599,"stem":600,"framework":16,"category":184,"description":601},"PageBody","/docs/components/page-body","docs/2.components/page-body","The main content of your page.",{"title":603,"path":604,"stem":605,"framework":16,"category":184,"description":606},"PageCard","/docs/components/page-card","docs/2.components/page-card","A pre-styled card component that displays a title, description and optional link.",{"title":608,"path":609,"stem":610,"framework":16,"category":184,"description":611},"PageColumns","/docs/components/page-columns","docs/2.components/page-columns","A responsive multi-column layout system for organizing content side-by-side.",{"title":613,"path":614,"stem":615,"framework":16,"category":184,"description":616},"PageCTA","/docs/components/page-cta","docs/2.components/page-cta","A call to action section to display in your pages.",{"title":618,"path":619,"stem":620,"framework":16,"category":184,"description":621},"PageFeature","/docs/components/page-feature","docs/2.components/page-feature","A component to showcase key features of your application.",{"title":623,"path":624,"stem":625,"framework":16,"category":184,"description":626},"PageGrid","/docs/components/page-grid","docs/2.components/page-grid","A responsive grid system for displaying content in a flexible layout.",{"title":628,"path":629,"stem":630,"framework":16,"category":184,"description":631},"PageHeader","/docs/components/page-header","docs/2.components/page-header","A responsive header for your pages.",{"title":633,"path":634,"stem":635,"framework":16,"category":184,"description":636},"PageHero","/docs/components/page-hero","docs/2.components/page-hero","A responsive hero for your pages.",{"title":638,"path":639,"stem":640,"framework":16,"category":184,"description":641},"PageLinks","/docs/components/page-links","docs/2.components/page-links","A list of links to be displayed in the page.",{"title":643,"path":644,"stem":645,"framework":16,"category":184,"description":646},"PageList","/docs/components/page-list","docs/2.components/page-list","A vertical list layout for displaying content in a stacked format.",{"title":648,"path":649,"stem":650,"framework":16,"category":184,"description":651},"PageLogos","/docs/components/page-logos","docs/2.components/page-logos","A list of logos or images to display on your pages.",{"title":653,"path":654,"stem":655,"framework":16,"category":184,"description":656},"PageSection","/docs/components/page-section","docs/2.components/page-section","A responsive section for your pages.",{"title":658,"path":659,"stem":660,"framework":16,"category":220,"description":661},"Pagination","/docs/components/pagination","docs/2.components/pagination","A list of buttons or links to navigate through pages.",{"title":663,"path":664,"stem":665,"framework":16,"category":282,"description":666},"PinInput","/docs/components/pin-input","docs/2.components/pin-input","An input element to enter a pin.",{"title":668,"path":669,"stem":670,"framework":16,"category":370,"description":671},"Popover","/docs/components/popover","docs/2.components/popover","A non-modal dialog that floats around a trigger element.",{"title":673,"path":674,"stem":675,"framework":16,"category":184,"description":676},"PricingPlan","/docs/components/pricing-plan","docs/2.components/pricing-plan","A customizable pricing plan to display in a pricing page.",{"title":678,"path":679,"stem":680,"framework":16,"category":184,"description":681},"PricingPlans","/docs/components/pricing-plans","docs/2.components/pricing-plans","Display a list of pricing plans in a responsive grid layout.",{"title":683,"path":684,"stem":685,"framework":16,"category":184,"description":686},"PricingTable","/docs/components/pricing-table","docs/2.components/pricing-table","A responsive pricing table component that displays tiered pricing plans with feature comparisons.",{"title":688,"path":689,"stem":690,"framework":16,"category":172,"description":691},"Progress","/docs/components/progress","docs/2.components/progress","An indicator showing the progress of a task.",{"title":693,"path":694,"stem":695,"framework":16,"category":282,"description":696},"RadioGroup","/docs/components/radio-group","docs/2.components/radio-group","A set of radio buttons to select a single option from a list.",{"title":698,"path":699,"stem":700,"framework":16,"category":282,"description":701},"Select","/docs/components/select","docs/2.components/select","A select element to choose from a list of options.",{"title":703,"path":704,"stem":705,"framework":16,"category":282,"description":706},"SelectMenu","/docs/components/select-menu","docs/2.components/select-menu","An advanced searchable select element.",{"title":708,"path":709,"stem":710,"framework":16,"category":172,"description":711},"Separator","/docs/components/separator","docs/2.components/separator","Separates content horizontally or vertically.",{"title":713,"path":714,"stem":715,"framework":16,"category":172,"description":716},"Skeleton","/docs/components/skeleton","docs/2.components/skeleton","A placeholder to show while content is loading.",{"title":718,"path":719,"stem":720,"framework":16,"category":370,"description":721},"Slideover","/docs/components/slideover","docs/2.components/slideover","A dialog that slides in from any side of the screen.",{"title":723,"path":724,"stem":725,"framework":16,"category":282,"description":726},"Slider","/docs/components/slider","docs/2.components/slider","An input to select a numeric value within a range.",{"title":728,"path":729,"stem":730,"framework":16,"category":220,"description":731},"Stepper","/docs/components/stepper","docs/2.components/stepper","A set of steps that are used to indicate progress through a multi-step process.",{"title":733,"path":734,"stem":735,"framework":16,"category":282,"description":736},"Switch","/docs/components/switch","docs/2.components/switch","A control that toggles between two states.",{"title":738,"path":739,"stem":740,"framework":16,"category":166,"description":741},"Table","/docs/components/table","docs/2.components/table","A responsive table element to display data in rows and columns.",{"title":743,"path":744,"stem":745,"framework":16,"category":220,"description":746},"Tabs","/docs/components/tabs","docs/2.components/tabs","A set of tab panels that are displayed one at a time.",{"title":748,"path":749,"stem":750,"framework":16,"category":282,"description":751},"Textarea","/docs/components/textarea","docs/2.components/textarea","A textarea element to input multi-line text.",{"title":753,"path":754,"stem":755,"framework":16,"category":166,"description":756},"Timeline","/docs/components/timeline","docs/2.components/timeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":758,"path":759,"stem":760,"framework":16,"category":370,"description":761},"Toast","/docs/components/toast","docs/2.components/toast","A succinct message to provide information or feedback to the user.",{"title":763,"path":764,"stem":765,"framework":16,"category":370,"description":766},"Tooltip","/docs/components/tooltip","docs/2.components/tooltip","A popup that reveals information when hovering over an element.",{"title":768,"path":769,"stem":770,"framework":16,"category":166,"description":771},"Tree","/docs/components/tree","docs/2.components/tree","A tree view component to display and interact with hierarchical data structures.",{"title":773,"path":774,"stem":775,"framework":16,"category":166,"description":776},"User","/docs/components/user","docs/2.components/user","Display user information with name, description and avatar.",{"title":778,"framework":16,"category":16,"description":16,"icon":779,"path":780,"stem":781,"children":782,"page":36},"Composables","i-lucide-square-function","/docs/composables","docs/3.composables",[783,788,793,798,803,808],{"title":784,"path":785,"stem":786,"framework":16,"category":16,"description":787},"defineLocale","/docs/composables/define-locale","docs/3.composables/define-locale","A utility to create a custom locale for your app.",{"title":789,"path":790,"stem":791,"framework":16,"category":16,"description":792},"defineShortcuts","/docs/composables/define-shortcuts","docs/3.composables/define-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":794,"path":795,"stem":796,"framework":16,"category":16,"description":797},"extendLocale","/docs/composables/extend-locale","docs/3.composables/extend-locale","A utility to extend an existing locale with custom translations.",{"title":799,"path":800,"stem":801,"framework":16,"category":16,"description":802},"extractShortcuts","/docs/composables/extract-shortcuts","docs/3.composables/extract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":804,"path":805,"stem":806,"framework":16,"category":16,"description":807},"useOverlay","/docs/composables/use-overlay","docs/3.composables/use-overlay","A composable to programmatically control overlays.",{"title":809,"path":810,"stem":811,"framework":16,"category":16,"description":812},"useToast","/docs/composables/use-toast","docs/3.composables/use-toast","A composable to display toast notifications in your app.",{"title":814,"path":815,"stem":816,"children":817,"framework":28,"category":16,"description":16,"icon":913},"Typography","/docs/typography","docs/4.typography/1.index",[818,820,825,830,835,840,845,849,854,858,863,868,873,878,883,887,892,896,900,904,909],{"title":15,"path":815,"stem":816,"framework":28,"category":16,"description":819},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":821,"path":822,"stem":823,"framework":28,"category":16,"description":824},"Headers and text","/docs/typography/headers-and-text","docs/4.typography/2.headers-and-text","Beautifully styled headings, paragraphs, text formatting, and links for optimal readability.",{"title":826,"path":827,"stem":828,"framework":28,"category":16,"description":829},"Lists and tables","/docs/typography/lists-and-tables","docs/4.typography/3.lists-and-tables","Organize information with styled lists and responsive tables for clear, consistent readability.",{"title":831,"path":832,"stem":833,"framework":28,"category":16,"description":834},"Images and embeds","/docs/typography/images-and-embeds","docs/4.typography/4.images-and-embeds","Responsive images, videos, and rich media embeds to enhance and illustrate your documentation.",{"title":836,"path":837,"stem":838,"framework":28,"category":16,"description":839},"Code","/docs/typography/code","docs/4.typography/5.code","Display inline code and syntax-highlighted code blocks with copy-to-clipboard support.",{"title":163,"path":841,"stem":842,"framework":28,"category":843,"description":844},"/docs/typography/accordion","docs/4.typography/accordion","components","Create expandable content sections for better information organization.",{"title":197,"path":846,"stem":847,"framework":28,"category":843,"description":848},"/docs/typography/badge","docs/4.typography/badge","Display version numbers, status labels, and tags within your content.",{"title":850,"path":851,"stem":852,"framework":28,"category":843,"description":853},"Callout","/docs/typography/callout","docs/4.typography/callout","Highlight important information with eye-catching colored boxes and icons.",{"title":233,"path":855,"stem":856,"framework":28,"category":843,"description":857},"/docs/typography/card","docs/4.typography/card","Create highlighted content blocks with optional links and navigation.",{"title":859,"path":860,"stem":861,"framework":28,"category":843,"description":862},"CardGroup","/docs/typography/card-group","docs/4.typography/card-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":864,"path":865,"stem":866,"framework":28,"category":843,"description":867},"CodeCollapse","/docs/typography/code-collapse","docs/4.typography/code-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":869,"path":870,"stem":871,"framework":28,"category":843,"description":872},"CodeGroup","/docs/typography/code-group","docs/4.typography/code-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":874,"path":875,"stem":876,"framework":28,"category":843,"description":877},"CodePreview","/docs/typography/code-preview","docs/4.typography/code-preview","Display code examples with a preview and their source for clearer documentation.",{"title":879,"path":880,"stem":881,"framework":28,"category":843,"description":882},"CodeTree","/docs/typography/code-tree","docs/4.typography/code-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":295,"path":884,"stem":885,"framework":28,"category":843,"description":886},"/docs/typography/collapsible","docs/4.typography/collapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":888,"path":889,"stem":890,"framework":28,"category":843,"description":891},"Field","/docs/typography/field","docs/4.typography/field","Document API parameters, props, and configuration options clearly.",{"title":476,"path":893,"stem":894,"framework":28,"category":843,"description":895},"/docs/typography/field-group","docs/4.typography/field-group","Group related fields together for comprehensive API documentation.",{"title":511,"path":897,"stem":898,"framework":28,"category":843,"description":899},"/docs/typography/icon","docs/4.typography/icon","Display icons from popular icon libraries to enhance your content.",{"title":547,"path":901,"stem":902,"framework":28,"category":843,"description":903},"/docs/typography/kbd","docs/4.typography/kbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":905,"path":906,"stem":907,"framework":28,"category":843,"description":908},"Steps","/docs/typography/steps","docs/4.typography/steps","Transform headings into numbered step-by-step guides and tutorials.",{"title":743,"path":910,"stem":911,"framework":28,"category":843,"description":912},"/docs/typography/tabs","docs/4.typography/tabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":915,"title":916,"body":917,"category":16,"description":3566,"extension":3567,"framework":16,"links":3568,"meta":3571,"navigation":36,"path":3572,"seo":3573,"stem":3574,"__hash__":3575},"docs/docs/1.getting-started/3.migration/2.v3.md","Migration to v3",{"type":918,"value":919,"toc":3552},"minimark",[920,924,947,950,955,1289,1293,1296,1300,1318,1442,1445,1455,1488,1544,1564,1620,1628,1647,1653,1666,1735,1739,1753,1764,1885,1896,1923,1933,1937,1940,2065,2068,2463,2467,2470,2485,2530,2549,2561,2614,2632,2649,2704,2716,2743,2762,2774,2876,2888,2907,2969,2977,2981,2996,3032,3046,3049,3079,3133,3136,3236,3246,3418,3422,3434,3540,3543,3548],[921,922,923],"p",{},"Nuxt UI v3 is a new major version rebuilt from the ground up, introducing a modern architecture with significant performance improvements and an enhanced developer experience. This major release includes several breaking changes alongside powerful new features and capabilities:",[925,926,927,935,941],"ul",{},[928,929,930,934],"li",{},[931,932,933],"strong",{},"Tailwind CSS v4",": Migration from JavaScript to CSS-based configuration",[928,936,937,940],{},[931,938,939],{},"Reka UI",": Replacing Headless UI as the underlying component library",[928,942,943,946],{},[931,944,945],{},"Tailwind Variants",": New styling API for component variants",[921,948,949],{},"This guide provides step by step instructions to migrate your application from v2 to v3.",[951,952,954],"h2",{"id":953},"migrate-your-project","Migrate your project",[956,957,958,963,966,978,993,1088,1093,1109,1113,1118,1180,1186,1219,1229],"steps",{},[959,960,962],"h3",{"id":961},"update-tailwind-css","Update Tailwind CSS",[921,964,965],{},"Tailwind CSS v4 introduces significant changes to its configuration approach. The official Tailwind upgrade tool will help automate most of the migration process.",[967,968,971],"note",{"to":969,"target":970},"https://tailwindcss.com/docs/upgrade-guide#changes-from-v3","_blank",[921,972,973,974,977],{},"For a detailed walkthrough of all changes, refer to the official ",[931,975,976],{},"Tailwind CSS v4 upgrade guide",".",[979,980,981],"ol",{},[928,982,983,984,988,989,992],{},"Create a ",[985,986,987],"code",{},"main.css"," file and import it in your ",[985,990,991],{},"nuxt.config.ts"," file:",[994,995,996,1029],"code-group",{},[997,998,1004],"pre",{"className":999,"code":1000,"filename":1001,"language":1002,"meta":1003,"style":1003},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@import \"tailwindcss\";\n","app/assets/css/main.css","css","",[985,1005,1006],{"__ignoreMap":1003},[1007,1008,1011,1015,1019,1023,1026],"span",{"class":1009,"line":1010},"line",1,[1007,1012,1014],{"class":1013},"s7zQu","@import",[1007,1016,1018],{"class":1017},"sMK4o"," \"",[1007,1020,1022],{"class":1021},"sfazB","tailwindcss",[1007,1024,1025],{"class":1017},"\"",[1007,1027,1028],{"class":1017},";\n",[997,1030,1034],{"className":1031,"code":1032,"filename":991,"language":1033,"meta":1003,"style":1003},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  css: ['~/assets/css/main.css']\n})\n","ts",[985,1035,1036,1055,1079],{"__ignoreMap":1003},[1007,1037,1038,1041,1044,1048,1052],{"class":1009,"line":1010},[1007,1039,1040],{"class":1013},"export",[1007,1042,1043],{"class":1013}," default",[1007,1045,1047],{"class":1046},"s2Zo4"," defineNuxtConfig",[1007,1049,1051],{"class":1050},"sTEyZ","(",[1007,1053,1054],{"class":1017},"{\n",[1007,1056,1058,1062,1065,1068,1071,1074,1076],{"class":1009,"line":1057},2,[1007,1059,1061],{"class":1060},"swJcz","  css",[1007,1063,1064],{"class":1017},":",[1007,1066,1067],{"class":1050}," [",[1007,1069,1070],{"class":1017},"'",[1007,1072,1073],{"class":1021},"~/assets/css/main.css",[1007,1075,1070],{"class":1017},[1007,1077,1078],{"class":1050},"]\n",[1007,1080,1082,1085],{"class":1009,"line":1081},3,[1007,1083,1084],{"class":1017},"}",[1007,1086,1087],{"class":1050},")\n",[979,1089,1090],{"start":1057},[928,1091,1092],{},"Run the Tailwind CSS upgrade tool:",[997,1094,1098],{"className":1095,"code":1096,"language":1097,"meta":1003,"style":1003},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx @tailwindcss/upgrade\n","bash",[985,1099,1100],{"__ignoreMap":1003},[1007,1101,1102,1106],{"class":1009,"line":1010},[1007,1103,1105],{"class":1104},"sBMFI","npx",[1007,1107,1108],{"class":1021}," @tailwindcss/upgrade\n",[959,1110,1112],{"id":1111},"update-nuxt-ui","Update Nuxt UI",[979,1114,1115],{"start":1081},[928,1116,1117],{},"Install the latest version of the package:",[994,1119,1121,1137,1151,1166],{"sync":1120},"pm",[997,1122,1125],{"className":1095,"code":1123,"filename":1124,"language":1097,"meta":1003,"style":1003},"pnpm add @nuxt/ui\n","pnpm",[985,1126,1127],{"__ignoreMap":1003},[1007,1128,1129,1131,1134],{"class":1009,"line":1010},[1007,1130,1124],{"class":1104},[1007,1132,1133],{"class":1021}," add",[1007,1135,1136],{"class":1021}," @nuxt/ui\n",[997,1138,1141],{"className":1095,"code":1139,"filename":1140,"language":1097,"meta":1003,"style":1003},"yarn add @nuxt/ui\n","yarn",[985,1142,1143],{"__ignoreMap":1003},[1007,1144,1145,1147,1149],{"class":1009,"line":1010},[1007,1146,1140],{"class":1104},[1007,1148,1133],{"class":1021},[1007,1150,1136],{"class":1021},[997,1152,1155],{"className":1095,"code":1153,"filename":1154,"language":1097,"meta":1003,"style":1003},"npm install @nuxt/ui\n","npm",[985,1156,1157],{"__ignoreMap":1003},[1007,1158,1159,1161,1164],{"class":1009,"line":1010},[1007,1160,1154],{"class":1104},[1007,1162,1163],{"class":1021}," install",[1007,1165,1136],{"class":1021},[997,1167,1170],{"className":1095,"code":1168,"filename":1169,"language":1097,"meta":1003,"style":1003},"bun add @nuxt/ui\n","bun",[985,1171,1172],{"__ignoreMap":1003},[1007,1173,1174,1176,1178],{"class":1009,"line":1010},[1007,1175,1169],{"class":1104},[1007,1177,1133],{"class":1021},[1007,1179,1136],{"class":1021},[979,1181,1183],{"start":1182},4,[928,1184,1185],{},"Import it in your CSS:",[997,1187,1190],{"className":999,"code":1188,"filename":1001,"highlights":1189,"language":1002,"meta":1003,"style":1003},"@import \"tailwindcss\";\n@import \"@nuxt/ui\";\n",[1057],[985,1191,1192,1204],{"__ignoreMap":1003},[1007,1193,1194,1196,1198,1200,1202],{"class":1009,"line":1010},[1007,1195,1014],{"class":1013},[1007,1197,1018],{"class":1017},[1007,1199,1022],{"class":1021},[1007,1201,1025],{"class":1017},[1007,1203,1028],{"class":1017},[1007,1205,1208,1210,1212,1215,1217],{"class":1206,"line":1057},[1009,1207],"highlight",[1007,1209,1014],{"class":1013},[1007,1211,1018],{"class":1017},[1007,1213,1214],{"class":1021},"@nuxt/ui",[1007,1216,1025],{"class":1017},[1007,1218,1028],{"class":1017},[979,1220,1222],{"start":1221},5,[928,1223,1224,1225,1228],{},"Wrap your app with the ",[1226,1227,175],"a",{"href":176}," component:",[997,1230,1235],{"className":1231,"code":1232,"filename":1233,"highlights":1234,"language":34,"meta":1003,"style":1003},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Ctemplate>\n  \u003CUApp>\n    \u003CNuxtPage />\n  \u003C/UApp>\n\u003C/template>\n","app.vue",[1057,1182],[985,1236,1237,1248,1259,1270,1280],{"__ignoreMap":1003},[1007,1238,1239,1242,1245],{"class":1009,"line":1010},[1007,1240,1241],{"class":1017},"\u003C",[1007,1243,1244],{"class":1060},"template",[1007,1246,1247],{"class":1017},">\n",[1007,1249,1251,1254,1257],{"class":1250,"line":1057},[1009,1207],[1007,1252,1253],{"class":1017},"  \u003C",[1007,1255,1256],{"class":1060},"UApp",[1007,1258,1247],{"class":1017},[1007,1260,1261,1264,1267],{"class":1009,"line":1081},[1007,1262,1263],{"class":1017},"    \u003C",[1007,1265,1266],{"class":1060},"NuxtPage",[1007,1268,1269],{"class":1017}," />\n",[1007,1271,1273,1276,1278],{"class":1272,"line":1182},[1009,1207],[1007,1274,1275],{"class":1017},"  \u003C/",[1007,1277,1256],{"class":1060},[1007,1279,1247],{"class":1017},[1007,1281,1282,1285,1287],{"class":1009,"line":1221},[1007,1283,1284],{"class":1017},"\u003C/",[1007,1286,1244],{"class":1060},[1007,1288,1247],{"class":1017},[951,1290,1292],{"id":1291},"changes-from-v2","Changes from v2",[921,1294,1295],{},"Now that you have updated your project, you can start migrating your code. Here's a comprehensive list of all the breaking changes in Nuxt UI v3.",[959,1297,1299],{"id":1298},"updated-design-system","Updated design system",[921,1301,1302,1303,1306,1307,1306,1310,1313,1314,1317],{},"In Nuxt UI v2, we had a mix between a design system with ",[985,1304,1305],{},"primary",", ",[985,1308,1309],{},"gray",[985,1311,1312],{},"error"," aliases and all the colors from Tailwind CSS. We've replaced it with a proper ",[1226,1315,1316],{"href":60},"design system"," with 7 color aliases:",[1319,1320,1321,1337],"table",{},[1322,1323,1324],"thead",{},[1325,1326,1327,1331,1334],"tr",{},[1328,1329,1330],"th",{},"Color",[1328,1332,1333],{},"Default",[1328,1335,1336],{},"Description",[1338,1339,1340,1355,1370,1384,1398,1413,1427],"tbody",{},[1325,1341,1342,1347,1352],{},[1343,1344,1345],"td",{},[985,1346,1305],{"color":1305},[1343,1348,1349],{},[985,1350,1351],{},"green",[1343,1353,1354],{},"Main brand color, used as the default color for components.",[1325,1356,1357,1362,1367],{},[1343,1358,1359],{},[985,1360,1361],{"color":1361},"secondary",[1343,1363,1364],{},[985,1365,1366],{},"blue",[1343,1368,1369],{},"Secondary color to complement the primary color.",[1325,1371,1372,1377,1381],{},[1343,1373,1374],{},[985,1375,1376],{"color":1376},"success",[1343,1378,1379],{},[985,1380,1351],{},[1343,1382,1383],{},"Used for success states.",[1325,1385,1386,1391,1395],{},[1343,1387,1388],{},[985,1389,1390],{"color":1390},"info",[1343,1392,1393],{},[985,1394,1366],{},[1343,1396,1397],{},"Used for informational states.",[1325,1399,1400,1405,1410],{},[1343,1401,1402],{},[985,1403,1404],{"color":1404},"warning",[1343,1406,1407],{},[985,1408,1409],{},"yellow",[1343,1411,1412],{},"Used for warning states.",[1325,1414,1415,1419,1424],{},[1343,1416,1417],{},[985,1418,1312],{"color":1312},[1343,1420,1421],{},[985,1422,1423],{},"red",[1343,1425,1426],{},"Used for form error validation states.",[1325,1428,1429,1434,1439],{},[1343,1430,1431],{},[985,1432,1433],{},"neutral",[1343,1435,1436],{},[985,1437,1438],{},"slate",[1343,1440,1441],{},"Neutral color for backgrounds, text, etc.",[921,1443,1444],{},"This change introduces several breaking changes that you need to be aware of:",[925,1446,1447],{},[928,1448,1449,1450,1452,1453],{},"The ",[985,1451,1309],{}," color has been renamed to ",[985,1454,1433],{},[997,1456,1460],{"className":1457,"code":1458,"language":1459,"meta":1003,"style":1003},"language-diff shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Ctemplate>\n- \u003Cp class=\"text-gray-500 dark:text-gray-400\" />\n+ \u003Cp class=\"text-neutral-500 dark:text-neutral-400\" />\n\u003C/template>\n","diff",[985,1461,1462,1467,1475,1483],{"__ignoreMap":1003},[1007,1463,1464],{"class":1009,"line":1010},[1007,1465,1466],{"class":1050},"\u003Ctemplate>\n",[1007,1468,1469,1472],{"class":1009,"line":1057},[1007,1470,1471],{"class":1017},"-",[1007,1473,1474],{"class":1060}," \u003Cp class=\"text-gray-500 dark:text-gray-400\" />\n",[1007,1476,1477,1480],{"class":1009,"line":1081},[1007,1478,1479],{"class":1017},"+",[1007,1481,1482],{"class":1021}," \u003Cp class=\"text-neutral-500 dark:text-neutral-400\" />\n",[1007,1484,1485],{"class":1009,"line":1182},[1007,1486,1487],{"class":1050},"\u003C/template>\n",[967,1489,1490,1497],{},[921,1491,1492,1493,1496],{},"You can also use the new ",[1226,1494,1495],{"href":66},"design tokens"," to handle light and dark mode:",[997,1498,1500],{"className":1457,"code":1499,"language":1459,"meta":1003,"style":1003},"\u003Ctemplate>\n- \u003Cp class=\"text-gray-500 dark:text-gray-400\" />\n+ \u003Cp class=\"text-muted\" />\n\n- \u003Cp class=\"text-gray-900 dark:text-white\" />\n+ \u003Cp class=\"text-highlighted\" />\n\u003C/template>\n",[985,1501,1502,1506,1512,1519,1524,1531,1539],{"__ignoreMap":1003},[1007,1503,1504],{"class":1009,"line":1010},[1007,1505,1466],{"class":1050},[1007,1507,1508,1510],{"class":1009,"line":1057},[1007,1509,1471],{"class":1017},[1007,1511,1474],{"class":1060},[1007,1513,1514,1516],{"class":1009,"line":1081},[1007,1515,1479],{"class":1017},[1007,1517,1518],{"class":1021}," \u003Cp class=\"text-muted\" />\n",[1007,1520,1521],{"class":1009,"line":1182},[1007,1522,1523],{"emptyLinePlaceholder":21},"\n",[1007,1525,1526,1528],{"class":1009,"line":1221},[1007,1527,1471],{"class":1017},[1007,1529,1530],{"class":1060}," \u003Cp class=\"text-gray-900 dark:text-white\" />\n",[1007,1532,1534,1536],{"class":1009,"line":1533},6,[1007,1535,1479],{"class":1017},[1007,1537,1538],{"class":1021}," \u003Cp class=\"text-highlighted\" />\n",[1007,1540,1542],{"class":1009,"line":1541},7,[1007,1543,1487],{"class":1050},[925,1545,1546],{},[928,1547,1449,1548,1306,1550,1553,1554,1557,1558,1561,1562,1064],{},[985,1549,1309],{},[985,1551,1552],{},"black"," and ",[985,1555,1556],{},"white"," in the ",[985,1559,1560],{},"color"," props have been removed in favor of ",[985,1563,1433],{},[997,1565,1567],{"className":1457,"code":1566,"language":1459,"meta":1003,"style":1003},"- \u003CUButton color=\"black\" />\n+ \u003CUButton color=\"neutral\" />\n\n- \u003CUButton color=\"gray\" />\n+ \u003CUButton color=\"neutral\" variant=\"subtle\" />\n\n- \u003CUButton color=\"white\" />\n+ \u003CUButton color=\"neutral\" variant=\"outline\" />\n",[985,1568,1569,1576,1583,1587,1594,1601,1605,1612],{"__ignoreMap":1003},[1007,1570,1571,1573],{"class":1009,"line":1010},[1007,1572,1471],{"class":1017},[1007,1574,1575],{"class":1060}," \u003CUButton color=\"black\" />\n",[1007,1577,1578,1580],{"class":1009,"line":1057},[1007,1579,1479],{"class":1017},[1007,1581,1582],{"class":1021}," \u003CUButton color=\"neutral\" />\n",[1007,1584,1585],{"class":1009,"line":1081},[1007,1586,1523],{"emptyLinePlaceholder":21},[1007,1588,1589,1591],{"class":1009,"line":1182},[1007,1590,1471],{"class":1017},[1007,1592,1593],{"class":1060}," \u003CUButton color=\"gray\" />\n",[1007,1595,1596,1598],{"class":1009,"line":1221},[1007,1597,1479],{"class":1017},[1007,1599,1600],{"class":1021}," \u003CUButton color=\"neutral\" variant=\"subtle\" />\n",[1007,1602,1603],{"class":1009,"line":1533},[1007,1604,1523],{"emptyLinePlaceholder":21},[1007,1606,1607,1609],{"class":1009,"line":1541},[1007,1608,1471],{"class":1017},[1007,1610,1611],{"class":1060}," \u003CUButton color=\"white\" />\n",[1007,1613,1615,1617],{"class":1009,"line":1614},8,[1007,1616,1479],{"class":1017},[1007,1618,1619],{"class":1021}," \u003CUButton color=\"neutral\" variant=\"outline\" />\n",[925,1621,1622],{},[928,1623,1624,1625,1627],{},"You can no longer use Tailwind CSS colors in the ",[985,1626,1560],{}," props, use the new aliases instead:",[997,1629,1631],{"className":1457,"code":1630,"language":1459,"meta":1003,"style":1003},"- \u003CUButton color=\"red\" />\n+ \u003CUButton color=\"error\" />\n",[985,1632,1633,1640],{"__ignoreMap":1003},[1007,1634,1635,1637],{"class":1009,"line":1010},[1007,1636,1471],{"class":1017},[1007,1638,1639],{"class":1060}," \u003CUButton color=\"red\" />\n",[1007,1641,1642,1644],{"class":1009,"line":1057},[1007,1643,1479],{"class":1017},[1007,1645,1646],{"class":1021}," \u003CUButton color=\"error\" />\n",[967,1648,1650],{"to":1649},"/docs/getting-started/theme/design-system#colors",[921,1651,1652],{},"Learn how to extend the design system to add new color aliases.",[925,1654,1655],{},[928,1656,1657,1658,1661,1662,1665],{},"The color configuration in ",[985,1659,1660],{},"app.config.ts"," has been moved into a ",[985,1663,1664],{},"colors"," object:",[997,1667,1669],{"className":1457,"code":1668,"language":1459,"meta":1003,"style":1003},"export default defineAppConfig({\n  ui: {\n-   primary: 'green',\n-   gray: 'cool'\n+   colors: {\n+     primary: 'green',\n+     neutral: 'slate'\n+   }\n  }\n})\n",[985,1670,1671,1676,1681,1688,1695,1702,1709,1716,1723,1729],{"__ignoreMap":1003},[1007,1672,1673],{"class":1009,"line":1010},[1007,1674,1675],{"class":1050},"export default defineAppConfig({\n",[1007,1677,1678],{"class":1009,"line":1057},[1007,1679,1680],{"class":1050},"  ui: {\n",[1007,1682,1683,1685],{"class":1009,"line":1081},[1007,1684,1471],{"class":1017},[1007,1686,1687],{"class":1060},"   primary: 'green',\n",[1007,1689,1690,1692],{"class":1009,"line":1182},[1007,1691,1471],{"class":1017},[1007,1693,1694],{"class":1060},"   gray: 'cool'\n",[1007,1696,1697,1699],{"class":1009,"line":1221},[1007,1698,1479],{"class":1017},[1007,1700,1701],{"class":1021},"   colors: {\n",[1007,1703,1704,1706],{"class":1009,"line":1533},[1007,1705,1479],{"class":1017},[1007,1707,1708],{"class":1021},"     primary: 'green',\n",[1007,1710,1711,1713],{"class":1009,"line":1541},[1007,1712,1479],{"class":1017},[1007,1714,1715],{"class":1021},"     neutral: 'slate'\n",[1007,1717,1718,1720],{"class":1009,"line":1614},[1007,1719,1479],{"class":1017},[1007,1721,1722],{"class":1021},"   }\n",[1007,1724,1726],{"class":1009,"line":1725},9,[1007,1727,1728],{"class":1050},"  }\n",[1007,1730,1732],{"class":1009,"line":1731},10,[1007,1733,1734],{"class":1050},"})\n",[959,1736,1738],{"id":1737},"updated-theming-system","Updated theming system",[921,1740,1741,1742,1745,1746,1748,1749,1752],{},"Nuxt UI components are now styled using the ",[1226,1743,1744],{"href":72},"Tailwind Variants API",", which makes all the overrides you made using the ",[985,1747,1660],{}," and the ",[985,1750,1751],{},"ui"," prop obsolete.",[925,1754,1755],{},[928,1756,1757,1758,1763],{},"Update your ",[1226,1759,1761],{"href":1760},"/docs/getting-started/theme/components#global-config",[985,1762,1660],{}," to override components with their new theme:",[997,1765,1767],{"className":1457,"code":1766,"language":1459,"meta":1003,"style":1003},"export default defineAppConfig({\n   ui: {\n     button: {\n-       font: 'font-bold',\n-       default: {\n-         size: 'md',\n-         color: 'primary'\n-       }\n+       slots: {\n+         base: 'font-medium'\n+       },\n+       defaultVariants: {\n+         size: 'md',\n+         color: 'primary'\n+       }\n     }\n   }\n})\n",[985,1768,1769,1773,1778,1783,1790,1797,1804,1811,1818,1825,1832,1840,1848,1855,1862,1869,1875,1880],{"__ignoreMap":1003},[1007,1770,1771],{"class":1009,"line":1010},[1007,1772,1675],{"class":1050},[1007,1774,1775],{"class":1009,"line":1057},[1007,1776,1777],{"class":1050},"   ui: {\n",[1007,1779,1780],{"class":1009,"line":1081},[1007,1781,1782],{"class":1050},"     button: {\n",[1007,1784,1785,1787],{"class":1009,"line":1182},[1007,1786,1471],{"class":1017},[1007,1788,1789],{"class":1060},"       font: 'font-bold',\n",[1007,1791,1792,1794],{"class":1009,"line":1221},[1007,1793,1471],{"class":1017},[1007,1795,1796],{"class":1060},"       default: {\n",[1007,1798,1799,1801],{"class":1009,"line":1533},[1007,1800,1471],{"class":1017},[1007,1802,1803],{"class":1060},"         size: 'md',\n",[1007,1805,1806,1808],{"class":1009,"line":1541},[1007,1807,1471],{"class":1017},[1007,1809,1810],{"class":1060},"         color: 'primary'\n",[1007,1812,1813,1815],{"class":1009,"line":1614},[1007,1814,1471],{"class":1017},[1007,1816,1817],{"class":1060},"       }\n",[1007,1819,1820,1822],{"class":1009,"line":1725},[1007,1821,1479],{"class":1017},[1007,1823,1824],{"class":1021},"       slots: {\n",[1007,1826,1827,1829],{"class":1009,"line":1731},[1007,1828,1479],{"class":1017},[1007,1830,1831],{"class":1021},"         base: 'font-medium'\n",[1007,1833,1835,1837],{"class":1009,"line":1834},11,[1007,1836,1479],{"class":1017},[1007,1838,1839],{"class":1021},"       },\n",[1007,1841,1843,1845],{"class":1009,"line":1842},12,[1007,1844,1479],{"class":1017},[1007,1846,1847],{"class":1021},"       defaultVariants: {\n",[1007,1849,1851,1853],{"class":1009,"line":1850},13,[1007,1852,1479],{"class":1017},[1007,1854,1803],{"class":1021},[1007,1856,1858,1860],{"class":1009,"line":1857},14,[1007,1859,1479],{"class":1017},[1007,1861,1810],{"class":1021},[1007,1863,1865,1867],{"class":1009,"line":1864},15,[1007,1866,1479],{"class":1017},[1007,1868,1817],{"class":1021},[1007,1870,1872],{"class":1009,"line":1871},16,[1007,1873,1874],{"class":1050},"     }\n",[1007,1876,1878],{"class":1009,"line":1877},17,[1007,1879,1722],{"class":1050},[1007,1881,1883],{"class":1009,"line":1882},18,[1007,1884,1734],{"class":1050},[925,1886,1887],{},[928,1888,1757,1889,1895],{},[1226,1890,1892,1894],{"href":1891},"/docs/getting-started/theme/components#ui-prop",[985,1893,1751],{}," props"," to override each component's slots using their new theme:",[997,1897,1899],{"className":1457,"code":1898,"language":1459,"meta":1003,"style":1003},"\u003Ctemplate>\n- \u003CUButton :ui=\"{ font: 'font-bold' }\" />\n+ \u003CUButton :ui=\"{ base: 'font-bold' }\" />\n\u003C/template>\n",[985,1900,1901,1905,1912,1919],{"__ignoreMap":1003},[1007,1902,1903],{"class":1009,"line":1010},[1007,1904,1466],{"class":1050},[1007,1906,1907,1909],{"class":1009,"line":1057},[1007,1908,1471],{"class":1017},[1007,1910,1911],{"class":1060}," \u003CUButton :ui=\"{ font: 'font-bold' }\" />\n",[1007,1913,1914,1916],{"class":1009,"line":1081},[1007,1915,1479],{"class":1017},[1007,1917,1918],{"class":1021}," \u003CUButton :ui=\"{ base: 'font-bold' }\" />\n",[1007,1920,1921],{"class":1009,"line":1182},[1007,1922,1487],{"class":1050},[1924,1925,1927],"tip",{"to":1926},"/docs/components/button#theme",[921,1928,1929,1930,1932],{},"We can't detail all the changes here but you can check each component's theme in the ",[931,1931,54],{}," section.",[959,1934,1936],{"id":1935},"renamed-components","Renamed components",[921,1938,1939],{},"We've renamed some Nuxt UI components to align with the Reka UI naming convention:",[1319,1941,1942,1952],{},[1322,1943,1944],{},[1325,1945,1946,1949],{},[1328,1947,1948],{},"v2",[1328,1950,1951],{},"v3",[1338,1953,1954,1967,1980,1993,2006,2019,2032,2049],{},[1325,1955,1956,1961],{},[1343,1957,1958],{},[985,1959,1960],{},"Divider",[1343,1962,1963],{},[1226,1964,1965],{"href":709},[985,1966,708],{},[1325,1968,1969,1974],{},[1343,1970,1971],{},[985,1972,1973],{},"Dropdown",[1343,1975,1976],{},[1226,1977,1978],{"href":430},[985,1979,429],{},[1325,1981,1982,1987],{},[1343,1983,1984],{},[985,1985,1986],{},"FormGroup",[1343,1988,1989],{},[1226,1990,1991],{"href":502},[985,1992,501],{},[1325,1994,1995,2000],{},[1343,1996,1997],{},[985,1998,1999],{},"Range",[1343,2001,2002],{},[1226,2003,2004],{"href":724},[985,2005,723],{},[1325,2007,2008,2013],{},[1343,2009,2010],{},[985,2011,2012],{},"Toggle",[1343,2014,2015],{},[1226,2016,2017],{"href":734},[985,2018,733],{},[1325,2020,2021,2026],{},[1343,2022,2023],{},[985,2024,2025],{},"Notification",[1343,2027,2028],{},[1226,2029,2030],{"href":759},[985,2031,758],{},[1325,2033,2034,2039],{},[1343,2035,2036],{},[985,2037,2038],{},"VerticalNavigation",[1343,2040,2041,2045,2046],{},[1226,2042,2043],{"href":579},[985,2044,578],{}," with ",[985,2047,2048],{},"orientation=\"vertical\"",[1325,2050,2051,2056],{},[1343,2052,2053],{},[985,2054,2055],{},"HorizontalNavigation",[1343,2057,2058,2045,2062],{},[1226,2059,2060],{"href":579},[985,2061,578],{},[985,2063,2064],{},"orientation=\"horizontal\"",[921,2066,2067],{},"Here are the Nuxt UI Pro components that have been renamed or removed:",[1319,2069,2070,2079],{},[1322,2071,2072],{},[1325,2073,2074,2077],{},[1328,2075,2076],{},"v1",[1328,2078,1951],{},[1338,2080,2081,2094,2107,2122,2135,2148,2161,2171,2184,2197,2210,2223,2236,2249,2262,2275,2288,2301,2314,2327,2340,2353,2367,2380,2393,2406,2419,2432,2445],{},[1325,2082,2083,2088],{},[1343,2084,2085],{},[985,2086,2087],{},"BlogList",[1343,2089,2090],{},[1226,2091,2092],{"href":213},[985,2093,212],{},[1325,2095,2096,2101],{},[1343,2097,2098],{},[985,2099,2100],{},"ColorModeToggle",[1343,2102,2103],{},[1226,2104,2105],{"href":322},[985,2106,321],{},[1325,2108,2109,2114],{},[1343,2110,2111],{},[985,2112,2113],{},"DashboardCard",[1343,2115,2116,2117,2121],{},"Removed (use ",[1226,2118,2119],{"href":604},[985,2120,603],{}," instead)",[1325,2123,2124,2129],{},[1343,2125,2126],{},[985,2127,2128],{},"DashboardLayout",[1343,2130,2131],{},[1226,2132,2133],{"href":374},[985,2134,373],{},[1325,2136,2137,2142],{},[1343,2138,2139],{},[985,2140,2141],{},"DashboardModal",[1343,2143,2116,2144,2121],{},[1226,2145,2146],{"href":574},[985,2147,573],{},[1325,2149,2150,2155],{},[1343,2151,2152],{},[985,2153,2154],{},"DashboardNavbarToggle",[1343,2156,2157],{},[1226,2158,2159],{"href":415},[985,2160,414],{},[1325,2162,2163,2168],{},[1343,2164,2165],{},[985,2166,2167],{},"DashboardPage",[1343,2169,2170],{},"Removed",[1325,2172,2173,2178],{},[1343,2174,2175],{},[985,2176,2177],{},"DashboardPanelContent",[1343,2179,2116,2180,2183],{},[985,2181,2182],{},"#body"," slot instead)",[1325,2185,2186,2191],{},[1343,2187,2188],{},[985,2189,2190],{},"DashboardPanelHandle",[1343,2192,2193],{},[1226,2194,2195],{"href":390},[985,2196,389],{},[1325,2198,2199,2204],{},[1343,2200,2201],{},[985,2202,2203],{},"DashboardSection",[1343,2205,2116,2206,2121],{},[1226,2207,2208],{"href":604},[985,2209,603],{},[1325,2211,2212,2217],{},[1343,2213,2214],{},[985,2215,2216],{},"DashboardSidebarLinks",[1343,2218,2116,2219,2121],{},[1226,2220,2221],{"href":579},[985,2222,578],{},[1325,2224,2225,2230],{},[1343,2226,2227],{},[985,2228,2229],{},"DashboardSlideover",[1343,2231,2116,2232,2121],{},[1226,2233,2234],{"href":719},[985,2235,718],{},[1325,2237,2238,2243],{},[1343,2239,2240],{},[985,2241,2242],{},"FooterLinks",[1343,2244,2116,2245,2121],{},[1226,2246,2247],{"href":579},[985,2248,578],{},[1325,2250,2251,2256],{},[1343,2252,2253],{},[985,2254,2255],{},"HeaderLinks",[1343,2257,2116,2258,2121],{},[1226,2259,2260],{"href":579},[985,2261,578],{},[1325,2263,2264,2269],{},[1343,2265,2266],{},[985,2267,2268],{},"LandingCard",[1343,2270,2116,2271,2121],{},[1226,2272,2273],{"href":604},[985,2274,603],{},[1325,2276,2277,2282],{},[1343,2278,2279],{},[985,2280,2281],{},"LandingCTA",[1343,2283,2284],{},[1226,2285,2286],{"href":614},[985,2287,613],{},[1325,2289,2290,2295],{},[1343,2291,2292],{},[985,2293,2294],{},"LandingFAQ",[1343,2296,2116,2297,2121],{},[1226,2298,2299],{"href":164},[985,2300,163],{},[1325,2302,2303,2308],{},[1343,2304,2305],{},[985,2306,2307],{},"LandingGrid",[1343,2309,2116,2310,2121],{},[1226,2311,2312],{"href":624},[985,2313,623],{},[1325,2315,2316,2321],{},[1343,2317,2318],{},[985,2319,2320],{},"LandingHero",[1343,2322,2116,2323,2121],{},[1226,2324,2325],{"href":634},[985,2326,633],{},[1325,2328,2329,2334],{},[1343,2330,2331],{},[985,2332,2333],{},"LandingLogos",[1343,2335,2336],{},[1226,2337,2338],{"href":649},[985,2339,648],{},[1325,2341,2342,2347],{},[1343,2343,2344],{},[985,2345,2346],{},"LandingSection",[1343,2348,2349],{},[1226,2350,2351],{"href":654},[985,2352,653],{},[1325,2354,2355,2360],{},[1343,2356,2357],{},[985,2358,2359],{},"LandingTestimonial",[1343,2361,2116,2362,2121],{},[1226,2363,2365],{"href":2364},"/docs/components/page-card#as-a-testimonial",[985,2366,603],{},[1325,2368,2369,2374],{},[1343,2370,2371],{},[985,2372,2373],{},"NavigationAccordion",[1343,2375,2376],{},[1226,2377,2378],{"href":342},[985,2379,341],{},[1325,2381,2382,2387],{},[1343,2383,2384],{},[985,2385,2386],{},"NavigationLinks",[1343,2388,2389],{},[1226,2390,2391],{"href":342},[985,2392,341],{},[1325,2394,2395,2400],{},[1343,2396,2397],{},[985,2398,2399],{},"NavigationTree",[1343,2401,2402],{},[1226,2403,2404],{"href":342},[985,2405,341],{},[1325,2407,2408,2413],{},[1343,2409,2410],{},[985,2411,2412],{},"PageError",[1343,2414,2415],{},[1226,2416,2417],{"href":472},[985,2418,471],{},[1325,2420,2421,2426],{},[1343,2422,2423],{},[985,2424,2425],{},"PricingCard",[1343,2427,2428],{},[1226,2429,2430],{"href":674},[985,2431,673],{},[1325,2433,2434,2439],{},[1343,2435,2436],{},[985,2437,2438],{},"PricingGrid",[1343,2440,2441],{},[1226,2442,2443],{"href":679},[985,2444,678],{},[1325,2446,2447,2452],{},[1343,2448,2449],{},[985,2450,2451],{},"PricingSwitch",[1343,2453,2116,2454,2458,2459,2121],{},[1226,2455,2456],{"href":734},[985,2457,733],{}," or ",[1226,2460,2461],{"href":744},[985,2462,743],{},[959,2464,2466],{"id":2465},"changed-components","Changed components",[921,2468,2469],{},"In addition to the renamed components, there are lots of changes to the components API. Let's detail the most important ones:",[925,2471,2472],{},[928,2473,1449,2474,1553,2477,2480,2481,2484],{},[985,2475,2476],{},"links",[985,2478,2479],{},"options"," props have been renamed to ",[985,2482,2483],{},"items"," for consistency:",[997,2486,2488],{"className":1457,"code":2487,"language":1459,"meta":1003,"style":1003},"\u003Ctemplate>\n- \u003CUSelect :options=\"countries\" />\n+ \u003CUSelect :items=\"countries\" />\n\n- \u003CUHorizontalNavigation :links=\"links\" />\n+ \u003CUNavigationMenu :items=\"links\" />\n\u003C/template>\n",[985,2489,2490,2494,2501,2508,2512,2519,2526],{"__ignoreMap":1003},[1007,2491,2492],{"class":1009,"line":1010},[1007,2493,1466],{"class":1050},[1007,2495,2496,2498],{"class":1009,"line":1057},[1007,2497,1471],{"class":1017},[1007,2499,2500],{"class":1060}," \u003CUSelect :options=\"countries\" />\n",[1007,2502,2503,2505],{"class":1009,"line":1081},[1007,2504,1479],{"class":1017},[1007,2506,2507],{"class":1021}," \u003CUSelect :items=\"countries\" />\n",[1007,2509,2510],{"class":1009,"line":1182},[1007,2511,1523],{"emptyLinePlaceholder":21},[1007,2513,2514,2516],{"class":1009,"line":1221},[1007,2515,1471],{"class":1017},[1007,2517,2518],{"class":1060}," \u003CUHorizontalNavigation :links=\"links\" />\n",[1007,2520,2521,2523],{"class":1009,"line":1533},[1007,2522,1479],{"class":1017},[1007,2524,2525],{"class":1021}," \u003CUNavigationMenu :items=\"links\" />\n",[1007,2527,2528],{"class":1009,"line":1541},[1007,2529,1487],{"class":1050},[967,2531,2532],{},[921,2533,2534,2535,1306,2537,1306,2539,1306,2541,1306,2543,1306,2545,1306,2547,977],{},"This change affects the following components: ",[985,2536,217],{},[985,2538,2055],{},[985,2540,527],{},[985,2542,693],{},[985,2544,698],{},[985,2546,703],{},[985,2548,2038],{},[925,2550,2551],{},[928,2552,1449,2553,2556,2557,2560],{},[985,2554,2555],{},"click"," field in different components has been removed in favor of the native Vue ",[985,2558,2559],{},"onClick"," event:",[997,2562,2564],{"className":1457,"code":2563,"language":1459,"meta":1003,"style":1003},"\u003Cscript setup lang=\"ts\">\nconst items = [{\n  label: 'Edit',\n-  click: () => {\n+  onClick: () => {\n    console.log('Edit')\n  }\n}]\n\u003C/script>\n",[985,2565,2566,2571,2576,2581,2588,2595,2600,2604,2609],{"__ignoreMap":1003},[1007,2567,2568],{"class":1009,"line":1010},[1007,2569,2570],{"class":1050},"\u003Cscript setup lang=\"ts\">\n",[1007,2572,2573],{"class":1009,"line":1057},[1007,2574,2575],{"class":1050},"const items = [{\n",[1007,2577,2578],{"class":1009,"line":1081},[1007,2579,2580],{"class":1050},"  label: 'Edit',\n",[1007,2582,2583,2585],{"class":1009,"line":1182},[1007,2584,1471],{"class":1017},[1007,2586,2587],{"class":1060},"  click: () => {\n",[1007,2589,2590,2592],{"class":1009,"line":1221},[1007,2591,1479],{"class":1017},[1007,2593,2594],{"class":1021},"  onClick: () => {\n",[1007,2596,2597],{"class":1009,"line":1533},[1007,2598,2599],{"class":1050},"    console.log('Edit')\n",[1007,2601,2602],{"class":1009,"line":1541},[1007,2603,1728],{"class":1050},[1007,2605,2606],{"class":1009,"line":1614},[1007,2607,2608],{"class":1050},"}]\n",[1007,2610,2611],{"class":1009,"line":1725},[1007,2612,2613],{"class":1050},"\u003C/script>\n",[967,2615,2616],{},[921,2617,2618,2619,2621,2622,2624,2625,1306,2627,1306,2629,2631],{},"This change affects the ",[985,2620,758],{}," component as well as all component that have ",[985,2623,2483],{}," links like ",[985,2626,578],{},[985,2628,429],{},[985,2630,331],{},", etc.",[925,2633,2634],{},[928,2635,2636,2637,1306,2640,1553,2643,2646,2647,1228],{},"The global ",[985,2638,2639],{},"Modals",[985,2641,2642],{},"Slideovers",[985,2644,2645],{},"Notifications"," components have been removed in favor the ",[1226,2648,175],{"href":176},[997,2650,2652],{"className":1457,"code":2651,"filename":1233,"language":1459,"meta":1003,"style":1003},"\u003Ctemplate>\n+  \u003CUApp>\n+    \u003CNuxtPage />\n+  \u003C/UApp>\n-  \u003CUModals />\n-  \u003CUSlideovers />\n-  \u003CUNotifications />\n\u003C/template>\n",[985,2653,2654,2658,2665,2672,2679,2686,2693,2700],{"__ignoreMap":1003},[1007,2655,2656],{"class":1009,"line":1010},[1007,2657,1466],{"class":1050},[1007,2659,2660,2662],{"class":1009,"line":1057},[1007,2661,1479],{"class":1017},[1007,2663,2664],{"class":1021},"  \u003CUApp>\n",[1007,2666,2667,2669],{"class":1009,"line":1081},[1007,2668,1479],{"class":1017},[1007,2670,2671],{"class":1021},"    \u003CNuxtPage />\n",[1007,2673,2674,2676],{"class":1009,"line":1182},[1007,2675,1479],{"class":1017},[1007,2677,2678],{"class":1021},"  \u003C/UApp>\n",[1007,2680,2681,2683],{"class":1009,"line":1221},[1007,2682,1471],{"class":1017},[1007,2684,2685],{"class":1060},"  \u003CUModals />\n",[1007,2687,2688,2690],{"class":1009,"line":1533},[1007,2689,1471],{"class":1017},[1007,2691,2692],{"class":1060},"  \u003CUSlideovers />\n",[1007,2694,2695,2697],{"class":1009,"line":1541},[1007,2696,1471],{"class":1017},[1007,2698,2699],{"class":1060},"  \u003CUNotifications />\n",[1007,2701,2702],{"class":1009,"line":1614},[1007,2703,1487],{"class":1050},[925,2705,2706],{},[928,2707,1449,2708,2711,2712,2715],{},[985,2709,2710],{},"v-model:open"," directive and ",[985,2713,2714],{},"default-open"," prop are now used to control visibility:",[997,2717,2719],{"className":1457,"code":2718,"language":1459,"meta":1003,"style":1003},"\u003Ctemplate>\n- \u003CUModal v-model=\"open\" />\n+ \u003CUModal v-model:open=\"open\" />\n\u003C/template>\n",[985,2720,2721,2725,2732,2739],{"__ignoreMap":1003},[1007,2722,2723],{"class":1009,"line":1010},[1007,2724,1466],{"class":1050},[1007,2726,2727,2729],{"class":1009,"line":1057},[1007,2728,1471],{"class":1017},[1007,2730,2731],{"class":1060}," \u003CUModal v-model=\"open\" />\n",[1007,2733,2734,2736],{"class":1009,"line":1081},[1007,2735,1479],{"class":1017},[1007,2737,2738],{"class":1021}," \u003CUModal v-model:open=\"open\" />\n",[1007,2740,2741],{"class":1009,"line":1182},[1007,2742,1487],{"class":1050},[967,2744,2745],{},[921,2746,2534,2747,1306,2749,1553,2751,2753,2754,1306,2756,1306,2758,1553,2760,977],{},[985,2748,367],{},[985,2750,573],{},[985,2752,718],{}," and enables controlling visibility for ",[985,2755,527],{},[985,2757,698],{},[985,2759,703],{},[985,2761,763],{},[925,2763,2764],{},[928,2765,2766,2767,2770,2771,2773],{},"The default slot is now used for the trigger and the content goes inside the ",[985,2768,2769],{},"#content"," slot (you don't need to use a ",[985,2772,2710],{}," directive with this method):",[997,2775,2777],{"className":1457,"code":2776,"language":1459,"meta":1003,"style":1003},"\u003Cscript setup lang=\"ts\">\n- const open = ref(false)\n\u003C/script>\n\n\u003Ctemplate>\n- \u003CUButton label=\"Open\" @click=\"open = true\" />\n\n- \u003CUModal v-model=\"open\">\n+ \u003CUModal>\n+   \u003CUButton label=\"Open\" />\n\n+   \u003Ctemplate #content>\n      \u003Cdiv class=\"p-4\">\n        \u003CPlaceholder class=\"h-48\" />\n      \u003C/div>\n+   \u003C/template>\n  \u003C/UModal>\n\u003C/template>\n",[985,2778,2779,2783,2790,2794,2798,2802,2809,2813,2820,2827,2834,2838,2845,2850,2855,2860,2867,2872],{"__ignoreMap":1003},[1007,2780,2781],{"class":1009,"line":1010},[1007,2782,2570],{"class":1050},[1007,2784,2785,2787],{"class":1009,"line":1057},[1007,2786,1471],{"class":1017},[1007,2788,2789],{"class":1060}," const open = ref(false)\n",[1007,2791,2792],{"class":1009,"line":1081},[1007,2793,2613],{"class":1050},[1007,2795,2796],{"class":1009,"line":1182},[1007,2797,1523],{"emptyLinePlaceholder":21},[1007,2799,2800],{"class":1009,"line":1221},[1007,2801,1466],{"class":1050},[1007,2803,2804,2806],{"class":1009,"line":1533},[1007,2805,1471],{"class":1017},[1007,2807,2808],{"class":1060}," \u003CUButton label=\"Open\" @click=\"open = true\" />\n",[1007,2810,2811],{"class":1009,"line":1541},[1007,2812,1523],{"emptyLinePlaceholder":21},[1007,2814,2815,2817],{"class":1009,"line":1614},[1007,2816,1471],{"class":1017},[1007,2818,2819],{"class":1060}," \u003CUModal v-model=\"open\">\n",[1007,2821,2822,2824],{"class":1009,"line":1725},[1007,2823,1479],{"class":1017},[1007,2825,2826],{"class":1021}," \u003CUModal>\n",[1007,2828,2829,2831],{"class":1009,"line":1731},[1007,2830,1479],{"class":1017},[1007,2832,2833],{"class":1021},"   \u003CUButton label=\"Open\" />\n",[1007,2835,2836],{"class":1009,"line":1834},[1007,2837,1523],{"emptyLinePlaceholder":21},[1007,2839,2840,2842],{"class":1009,"line":1842},[1007,2841,1479],{"class":1017},[1007,2843,2844],{"class":1021},"   \u003Ctemplate #content>\n",[1007,2846,2847],{"class":1009,"line":1850},[1007,2848,2849],{"class":1050},"      \u003Cdiv class=\"p-4\">\n",[1007,2851,2852],{"class":1009,"line":1857},[1007,2853,2854],{"class":1050},"        \u003CPlaceholder class=\"h-48\" />\n",[1007,2856,2857],{"class":1009,"line":1864},[1007,2858,2859],{"class":1050},"      \u003C/div>\n",[1007,2861,2862,2864],{"class":1009,"line":1871},[1007,2863,1479],{"class":1017},[1007,2865,2866],{"class":1021},"   \u003C/template>\n",[1007,2868,2869],{"class":1009,"line":1877},[1007,2870,2871],{"class":1050},"  \u003C/UModal>\n",[1007,2873,2874],{"class":1009,"line":1882},[1007,2875,1487],{"class":1050},[967,2877,2878],{},[921,2879,2534,2880,1306,2882,1306,2884,1306,2886,977],{},[985,2881,573],{},[985,2883,668],{},[985,2885,718],{},[985,2887,763],{},[925,2889,2890],{},[928,2891,2892,2893,1306,2896,1553,2898,2901,2902,2904,2905,1228],{},"A ",[985,2894,2895],{},"#header",[985,2897,2182],{},[985,2899,2900],{},"#footer"," slots have been added inside the ",[985,2903,2769],{}," slot like the ",[985,2906,233],{},[997,2908,2910],{"className":1457,"code":2909,"language":1459,"meta":1003,"style":1003},"\u003Ctemplate>\n- \u003CUModal>\n+ \u003CUModal title=\"Title\" description=\"Description\">\n-   \u003Cdiv class=\"p-4\">\n+   \u003Ctemplate #body>\n      \u003CPlaceholder class=\"h-48\" />\n+   \u003C/template>\n-   \u003C/div>\n  \u003C/UModal>\n\u003C/template>\n",[985,2911,2912,2916,2922,2929,2936,2943,2948,2954,2961,2965],{"__ignoreMap":1003},[1007,2913,2914],{"class":1009,"line":1010},[1007,2915,1466],{"class":1050},[1007,2917,2918,2920],{"class":1009,"line":1057},[1007,2919,1471],{"class":1017},[1007,2921,2826],{"class":1060},[1007,2923,2924,2926],{"class":1009,"line":1081},[1007,2925,1479],{"class":1017},[1007,2927,2928],{"class":1021}," \u003CUModal title=\"Title\" description=\"Description\">\n",[1007,2930,2931,2933],{"class":1009,"line":1182},[1007,2932,1471],{"class":1017},[1007,2934,2935],{"class":1060},"   \u003Cdiv class=\"p-4\">\n",[1007,2937,2938,2940],{"class":1009,"line":1221},[1007,2939,1479],{"class":1017},[1007,2941,2942],{"class":1021},"   \u003Ctemplate #body>\n",[1007,2944,2945],{"class":1009,"line":1533},[1007,2946,2947],{"class":1050},"      \u003CPlaceholder class=\"h-48\" />\n",[1007,2949,2950,2952],{"class":1009,"line":1541},[1007,2951,1479],{"class":1017},[1007,2953,2866],{"class":1021},[1007,2955,2956,2958],{"class":1009,"line":1614},[1007,2957,1471],{"class":1017},[1007,2959,2960],{"class":1060},"   \u003C/div>\n",[1007,2962,2963],{"class":1009,"line":1725},[1007,2964,2871],{"class":1050},[1007,2966,2967],{"class":1009,"line":1731},[1007,2968,1487],{"class":1050},[967,2970,2971],{},[921,2972,2534,2973,1306,2975,977],{},[985,2974,573],{},[985,2976,718],{},[959,2978,2980],{"id":2979},"changed-composables","Changed composables",[925,2982,2983],{},[928,2984,1449,2985,2988,2989,2992,2993,1064],{},[985,2986,2987],{},"useToast()"," composable ",[985,2990,2991],{},"timeout"," prop has been renamed to ",[985,2994,2995],{},"duration",[997,2997,2999],{"className":1457,"code":2998,"language":1459,"meta":1003,"style":1003},"\u003Cscript setup lang=\"ts\">\nconst toast = useToast()\n\n- toast.add({ title: 'Invitation sent', timeout: 0 })\n+ toast.add({ title: 'Invitation sent', duration: 0 })\n\u003C/script>\n",[985,3000,3001,3005,3010,3014,3021,3028],{"__ignoreMap":1003},[1007,3002,3003],{"class":1009,"line":1010},[1007,3004,2570],{"class":1050},[1007,3006,3007],{"class":1009,"line":1057},[1007,3008,3009],{"class":1050},"const toast = useToast()\n",[1007,3011,3012],{"class":1009,"line":1081},[1007,3013,1523],{"emptyLinePlaceholder":21},[1007,3015,3016,3018],{"class":1009,"line":1182},[1007,3017,1471],{"class":1017},[1007,3019,3020],{"class":1060}," toast.add({ title: 'Invitation sent', timeout: 0 })\n",[1007,3022,3023,3025],{"class":1009,"line":1221},[1007,3024,1479],{"class":1017},[1007,3026,3027],{"class":1021}," toast.add({ title: 'Invitation sent', duration: 0 })\n",[1007,3029,3030],{"class":1009,"line":1533},[1007,3031,2613],{"class":1050},[925,3033,3034],{},[928,3035,1449,3036,1553,3039,3042,3043,3045],{},[985,3037,3038],{},"useModal",[985,3040,3041],{},"useSlideover"," composables have been removed in favor of a more generic ",[985,3044,804],{}," composable:",[921,3047,3048],{},"Some important differences:",[925,3050,3051,3056,3059,3073],{},[928,3052,1449,3053,3055],{},[985,3054,804],{}," composable is now used to create overlay instances",[928,3057,3058],{},"Overlays that are opened, can be awaited for their result",[928,3060,3061,3062,2458,3065,3068,3069,3072],{},"Overlays can no longer be close using ",[985,3063,3064],{},"modal.close()",[985,3066,3067],{},"slideover.close()",", rather, they close automatically: either when a ",[985,3070,3071],{},"close"," event is fired explicitly from the opened component OR when the overlay closes itself (clicking on backdrop, pressing the ESC key, etc)",[928,3074,3075,3076,3078],{},"To capture the return value in the parent component you must explictly emit a ",[985,3077,3071],{}," event with the desired value",[997,3080,3082],{"className":1457,"code":3081,"language":1459,"meta":1003,"style":1003},"\u003Cscript setup lang=\"ts\">\nimport { ModalExampleComponent } from '#components'\n\n- const modal = useModal()\n+ const overlay = useOverlay()\n\n- modal.open(ModalExampleComponent)\n+ const modal = overlay.create(ModalExampleComponent)\n\u003C/script>\n",[985,3083,3084,3088,3093,3097,3104,3111,3115,3122,3129],{"__ignoreMap":1003},[1007,3085,3086],{"class":1009,"line":1010},[1007,3087,2570],{"class":1050},[1007,3089,3090],{"class":1009,"line":1057},[1007,3091,3092],{"class":1050},"import { ModalExampleComponent } from '#components'\n",[1007,3094,3095],{"class":1009,"line":1081},[1007,3096,1523],{"emptyLinePlaceholder":21},[1007,3098,3099,3101],{"class":1009,"line":1182},[1007,3100,1471],{"class":1017},[1007,3102,3103],{"class":1060}," const modal = useModal()\n",[1007,3105,3106,3108],{"class":1009,"line":1221},[1007,3107,1479],{"class":1017},[1007,3109,3110],{"class":1021}," const overlay = useOverlay()\n",[1007,3112,3113],{"class":1009,"line":1533},[1007,3114,1523],{"emptyLinePlaceholder":21},[1007,3116,3117,3119],{"class":1009,"line":1541},[1007,3118,1471],{"class":1017},[1007,3120,3121],{"class":1060}," modal.open(ModalExampleComponent)\n",[1007,3123,3124,3126],{"class":1009,"line":1614},[1007,3125,1479],{"class":1017},[1007,3127,3128],{"class":1021}," const modal = overlay.create(ModalExampleComponent)\n",[1007,3130,3131],{"class":1009,"line":1725},[1007,3132,2613],{"class":1050},[921,3134,3135],{},"Props are now passed through a props attribute:",[997,3137,3139],{"className":1457,"code":3138,"language":1459,"meta":1003,"style":1003},"\u003Cscript setup lang=\"ts\">\nimport { ModalExampleComponent } from '#components'\n\n- const modal = useModal()\n+ const overlay = useOverlay()\n\nconst count = ref(0)\n\n- modal.open(ModalExampleComponent, {\n-   count: count.value\n- })\n+ const modal = overlay.create(ModalExampleComponent, {\n+   props: {\n+     count: count.value\n+   }\n+ })\n\u003C/script>\n",[985,3140,3141,3145,3149,3153,3159,3165,3169,3174,3178,3185,3192,3199,3206,3213,3220,3226,3232],{"__ignoreMap":1003},[1007,3142,3143],{"class":1009,"line":1010},[1007,3144,2570],{"class":1050},[1007,3146,3147],{"class":1009,"line":1057},[1007,3148,3092],{"class":1050},[1007,3150,3151],{"class":1009,"line":1081},[1007,3152,1523],{"emptyLinePlaceholder":21},[1007,3154,3155,3157],{"class":1009,"line":1182},[1007,3156,1471],{"class":1017},[1007,3158,3103],{"class":1060},[1007,3160,3161,3163],{"class":1009,"line":1221},[1007,3162,1479],{"class":1017},[1007,3164,3110],{"class":1021},[1007,3166,3167],{"class":1009,"line":1533},[1007,3168,1523],{"emptyLinePlaceholder":21},[1007,3170,3171],{"class":1009,"line":1541},[1007,3172,3173],{"class":1050},"const count = ref(0)\n",[1007,3175,3176],{"class":1009,"line":1614},[1007,3177,1523],{"emptyLinePlaceholder":21},[1007,3179,3180,3182],{"class":1009,"line":1725},[1007,3181,1471],{"class":1017},[1007,3183,3184],{"class":1060}," modal.open(ModalExampleComponent, {\n",[1007,3186,3187,3189],{"class":1009,"line":1731},[1007,3188,1471],{"class":1017},[1007,3190,3191],{"class":1060},"   count: count.value\n",[1007,3193,3194,3196],{"class":1009,"line":1834},[1007,3195,1471],{"class":1017},[1007,3197,3198],{"class":1060}," })\n",[1007,3200,3201,3203],{"class":1009,"line":1842},[1007,3202,1479],{"class":1017},[1007,3204,3205],{"class":1021}," const modal = overlay.create(ModalExampleComponent, {\n",[1007,3207,3208,3210],{"class":1009,"line":1850},[1007,3209,1479],{"class":1017},[1007,3211,3212],{"class":1021},"   props: {\n",[1007,3214,3215,3217],{"class":1009,"line":1857},[1007,3216,1479],{"class":1017},[1007,3218,3219],{"class":1021},"     count: count.value\n",[1007,3221,3222,3224],{"class":1009,"line":1864},[1007,3223,1479],{"class":1017},[1007,3225,1722],{"class":1021},[1007,3227,3228,3230],{"class":1009,"line":1871},[1007,3229,1479],{"class":1017},[1007,3231,3198],{"class":1021},[1007,3233,3234],{"class":1009,"line":1877},[1007,3235,2613],{"class":1050},[921,3237,3238,3239,3241,3242,3245],{},"Closing a modal is now done through the ",[985,3240,3071],{}," event. The ",[985,3243,3244],{},"modal.open"," method now returns an instance that can be used to await for the result of the modal whenever the modal is closed:",[997,3247,3249],{"className":1457,"code":3248,"language":1459,"meta":1003,"style":1003},"\u003Cscript setup lang=\"ts\">\nimport { ModalExampleComponent } from '#components'\n\n- const modal = useModal()\n+ const overlay = useOverlay()\n\n+ const modal = overlay.create(ModalExampleComponent)\n\n- function openModal() {\n-   modal.open(ModalExampleComponent, {\n-     onSuccess() {\n-       toast.add({ title: 'Success!' })\n-     }\n-   })\n- }\n+ async function openModal() {\n+   const instance = modal.open(ModalExampleComponent, {\n+     count: count.value\n+   })\n+\n+   const result = await instance.result\n+\n+   if (result) {\n+     toast.add({ title: 'Success!' })\n+   }\n+ }\n\u003C/script>\n",[985,3250,3251,3255,3259,3263,3269,3275,3279,3285,3289,3296,3303,3310,3317,3323,3330,3337,3344,3351,3357,3364,3370,3378,3383,3391,3399,3406,3413],{"__ignoreMap":1003},[1007,3252,3253],{"class":1009,"line":1010},[1007,3254,2570],{"class":1050},[1007,3256,3257],{"class":1009,"line":1057},[1007,3258,3092],{"class":1050},[1007,3260,3261],{"class":1009,"line":1081},[1007,3262,1523],{"emptyLinePlaceholder":21},[1007,3264,3265,3267],{"class":1009,"line":1182},[1007,3266,1471],{"class":1017},[1007,3268,3103],{"class":1060},[1007,3270,3271,3273],{"class":1009,"line":1221},[1007,3272,1479],{"class":1017},[1007,3274,3110],{"class":1021},[1007,3276,3277],{"class":1009,"line":1533},[1007,3278,1523],{"emptyLinePlaceholder":21},[1007,3280,3281,3283],{"class":1009,"line":1541},[1007,3282,1479],{"class":1017},[1007,3284,3128],{"class":1021},[1007,3286,3287],{"class":1009,"line":1614},[1007,3288,1523],{"emptyLinePlaceholder":21},[1007,3290,3291,3293],{"class":1009,"line":1725},[1007,3292,1471],{"class":1017},[1007,3294,3295],{"class":1060}," function openModal() {\n",[1007,3297,3298,3300],{"class":1009,"line":1731},[1007,3299,1471],{"class":1017},[1007,3301,3302],{"class":1060},"   modal.open(ModalExampleComponent, {\n",[1007,3304,3305,3307],{"class":1009,"line":1834},[1007,3306,1471],{"class":1017},[1007,3308,3309],{"class":1060},"     onSuccess() {\n",[1007,3311,3312,3314],{"class":1009,"line":1842},[1007,3313,1471],{"class":1017},[1007,3315,3316],{"class":1060},"       toast.add({ title: 'Success!' })\n",[1007,3318,3319,3321],{"class":1009,"line":1850},[1007,3320,1471],{"class":1017},[1007,3322,1874],{"class":1060},[1007,3324,3325,3327],{"class":1009,"line":1857},[1007,3326,1471],{"class":1017},[1007,3328,3329],{"class":1060},"   })\n",[1007,3331,3332,3334],{"class":1009,"line":1864},[1007,3333,1471],{"class":1017},[1007,3335,3336],{"class":1060}," }\n",[1007,3338,3339,3341],{"class":1009,"line":1871},[1007,3340,1479],{"class":1017},[1007,3342,3343],{"class":1021}," async function openModal() {\n",[1007,3345,3346,3348],{"class":1009,"line":1877},[1007,3347,1479],{"class":1017},[1007,3349,3350],{"class":1021},"   const instance = modal.open(ModalExampleComponent, {\n",[1007,3352,3353,3355],{"class":1009,"line":1882},[1007,3354,1479],{"class":1017},[1007,3356,3219],{"class":1021},[1007,3358,3360,3362],{"class":1009,"line":3359},19,[1007,3361,1479],{"class":1017},[1007,3363,3329],{"class":1021},[1007,3365,3367],{"class":1009,"line":3366},20,[1007,3368,3369],{"class":1017},"+\n",[1007,3371,3373,3375],{"class":1009,"line":3372},21,[1007,3374,1479],{"class":1017},[1007,3376,3377],{"class":1021},"   const result = await instance.result\n",[1007,3379,3381],{"class":1009,"line":3380},22,[1007,3382,3369],{"class":1017},[1007,3384,3386,3388],{"class":1009,"line":3385},23,[1007,3387,1479],{"class":1017},[1007,3389,3390],{"class":1021},"   if (result) {\n",[1007,3392,3394,3396],{"class":1009,"line":3393},24,[1007,3395,1479],{"class":1017},[1007,3397,3398],{"class":1021},"     toast.add({ title: 'Success!' })\n",[1007,3400,3402,3404],{"class":1009,"line":3401},25,[1007,3403,1479],{"class":1017},[1007,3405,1722],{"class":1021},[1007,3407,3409,3411],{"class":1009,"line":3408},26,[1007,3410,1479],{"class":1017},[1007,3412,3336],{"class":1021},[1007,3414,3416],{"class":1009,"line":3415},27,[1007,3417,2613],{"class":1050},[959,3419,3421],{"id":3420},"changed-form-validation","Changed form validation",[925,3423,3424],{},[928,3425,3426,3427,3430,3431,1064],{},"The error object property for targeting form fields has been renamed from ",[985,3428,3429],{},"path"," to ",[985,3432,3433],{},"name",[997,3435,3437],{"className":1457,"code":3436,"language":1459,"meta":1003,"style":1003},"\u003Cscript setup lang=\"ts\">\nfunction validate(state: any): FormError[] {\n  const errors = []\n  if (!state.email) {\n    errors.push({\n-     path: 'email',\n+     name: 'email',\n      message: 'Required'\n    })\n  }\n  if (!state.password) {\n    errors.push({\n-     path: 'password',\n+     name: 'password',\n      message: 'Required'\n    })\n  }\n  return errors\n}\n\u003C/script>\n",[985,3438,3439,3443,3448,3453,3458,3463,3470,3477,3482,3487,3491,3496,3500,3507,3514,3518,3522,3526,3531,3536],{"__ignoreMap":1003},[1007,3440,3441],{"class":1009,"line":1010},[1007,3442,2570],{"class":1050},[1007,3444,3445],{"class":1009,"line":1057},[1007,3446,3447],{"class":1050},"function validate(state: any): FormError[] {\n",[1007,3449,3450],{"class":1009,"line":1081},[1007,3451,3452],{"class":1050},"  const errors = []\n",[1007,3454,3455],{"class":1009,"line":1182},[1007,3456,3457],{"class":1050},"  if (!state.email) {\n",[1007,3459,3460],{"class":1009,"line":1221},[1007,3461,3462],{"class":1050},"    errors.push({\n",[1007,3464,3465,3467],{"class":1009,"line":1533},[1007,3466,1471],{"class":1017},[1007,3468,3469],{"class":1060},"     path: 'email',\n",[1007,3471,3472,3474],{"class":1009,"line":1541},[1007,3473,1479],{"class":1017},[1007,3475,3476],{"class":1021},"     name: 'email',\n",[1007,3478,3479],{"class":1009,"line":1614},[1007,3480,3481],{"class":1050},"      message: 'Required'\n",[1007,3483,3484],{"class":1009,"line":1725},[1007,3485,3486],{"class":1050},"    })\n",[1007,3488,3489],{"class":1009,"line":1731},[1007,3490,1728],{"class":1050},[1007,3492,3493],{"class":1009,"line":1834},[1007,3494,3495],{"class":1050},"  if (!state.password) {\n",[1007,3497,3498],{"class":1009,"line":1842},[1007,3499,3462],{"class":1050},[1007,3501,3502,3504],{"class":1009,"line":1850},[1007,3503,1471],{"class":1017},[1007,3505,3506],{"class":1060},"     path: 'password',\n",[1007,3508,3509,3511],{"class":1009,"line":1857},[1007,3510,1479],{"class":1017},[1007,3512,3513],{"class":1021},"     name: 'password',\n",[1007,3515,3516],{"class":1009,"line":1864},[1007,3517,3481],{"class":1050},[1007,3519,3520],{"class":1009,"line":1871},[1007,3521,3486],{"class":1050},[1007,3523,3524],{"class":1009,"line":1877},[1007,3525,1728],{"class":1050},[1007,3527,3528],{"class":1009,"line":1882},[1007,3529,3530],{"class":1050},"  return errors\n",[1007,3532,3533],{"class":1009,"line":3359},[1007,3534,3535],{"class":1050},"}\n",[1007,3537,3538],{"class":1009,"line":3366},[1007,3539,2613],{"class":1050},[3541,3542],"hr",{},[1404,3544,3545],{},[921,3546,3547],{},"This page is a work in progress, we'll improve it regularly.",[3549,3550,3551],"style",{},"html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--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 .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}",{"title":1003,"searchDepth":1057,"depth":1057,"links":3553},[3554,3558],{"id":953,"depth":1057,"text":954,"children":3555},[3556,3557],{"id":961,"depth":1081,"text":962},{"id":1111,"depth":1081,"text":1112},{"id":1291,"depth":1057,"text":1292,"children":3559},[3560,3561,3562,3563,3564,3565],{"id":1298,"depth":1081,"text":1299},{"id":1737,"depth":1081,"text":1738},{"id":1935,"depth":1081,"text":1936},{"id":2465,"depth":1081,"text":2466},{"id":2979,"depth":1081,"text":2980},{"id":3420,"depth":1081,"text":3421},"A comprehensive guide to migrate your application from Nuxt UI v2 to Nuxt UI v3.","md",[3569],{"label":3570,"to":44,"icon":39},"Migration to v4",{},"/docs/getting-started/migration/v3",{"title":916,"description":3566},"docs/1.getting-started/3.migration/2.v3","Sp93I9Qb5QqgDBGq5F4BNESJJpchvTs3zyhkJs5Lu0U",{"data":3577,"body":3578},{},{"type":3579,"children":3580},"root",[3581],{"type":172,"tag":921,"props":3582,"children":3583},{},[3584],{"type":3585,"value":3566},"text",1765478779572]