[{"data":1,"prerenderedAt":3571},["ShallowReactive",2],{"navigation":3,"-docs-getting-started-migration-v3":899,"-docs-getting-started-migration-v3-description":3561},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","/docs","docs",[9,157,777,798],{"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],{"title":784,"path":785,"stem":786,"framework":16,"category":16,"description":787},"defineShortcuts","/docs/composables/define-shortcuts","docs/3.composables/define-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":789,"path":790,"stem":791,"framework":16,"category":16,"description":792},"useOverlay","/docs/composables/use-overlay","docs/3.composables/use-overlay","A composable to programmatically control overlays.",{"title":794,"path":795,"stem":796,"framework":16,"category":16,"description":797},"useToast","/docs/composables/use-toast","docs/3.composables/use-toast","A composable to display toast notifications in your app.",{"title":799,"path":800,"stem":801,"children":802,"framework":28,"category":16,"description":16,"icon":898},"Typography","/docs/typography","docs/4.typography/1.index",[803,805,810,815,820,825,830,834,839,843,848,853,858,863,868,872,877,881,885,889,894],{"title":15,"path":800,"stem":801,"framework":28,"category":16,"description":804},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":806,"path":807,"stem":808,"framework":28,"category":16,"description":809},"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":811,"path":812,"stem":813,"framework":28,"category":16,"description":814},"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":816,"path":817,"stem":818,"framework":28,"category":16,"description":819},"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":821,"path":822,"stem":823,"framework":28,"category":16,"description":824},"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":826,"stem":827,"framework":28,"category":828,"description":829},"/docs/typography/accordion","docs/4.typography/accordion","components","Create expandable content sections for better information organization.",{"title":197,"path":831,"stem":832,"framework":28,"category":828,"description":833},"/docs/typography/badge","docs/4.typography/badge","Display version numbers, status labels, and tags within your content.",{"title":835,"path":836,"stem":837,"framework":28,"category":828,"description":838},"Callout","/docs/typography/callout","docs/4.typography/callout","Highlight important information with eye-catching colored boxes and icons.",{"title":233,"path":840,"stem":841,"framework":28,"category":828,"description":842},"/docs/typography/card","docs/4.typography/card","Create highlighted content blocks with optional links and navigation.",{"title":844,"path":845,"stem":846,"framework":28,"category":828,"description":847},"CardGroup","/docs/typography/card-group","docs/4.typography/card-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":849,"path":850,"stem":851,"framework":28,"category":828,"description":852},"CodeCollapse","/docs/typography/code-collapse","docs/4.typography/code-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":854,"path":855,"stem":856,"framework":28,"category":828,"description":857},"CodeGroup","/docs/typography/code-group","docs/4.typography/code-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":859,"path":860,"stem":861,"framework":28,"category":828,"description":862},"CodePreview","/docs/typography/code-preview","docs/4.typography/code-preview","Display code examples with a preview and their source for clearer documentation.",{"title":864,"path":865,"stem":866,"framework":28,"category":828,"description":867},"CodeTree","/docs/typography/code-tree","docs/4.typography/code-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":295,"path":869,"stem":870,"framework":28,"category":828,"description":871},"/docs/typography/collapsible","docs/4.typography/collapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":873,"path":874,"stem":875,"framework":28,"category":828,"description":876},"Field","/docs/typography/field","docs/4.typography/field","Document API parameters, props, and configuration options clearly.",{"title":476,"path":878,"stem":879,"framework":28,"category":828,"description":880},"/docs/typography/field-group","docs/4.typography/field-group","Group related fields together for comprehensive API documentation.",{"title":511,"path":882,"stem":883,"framework":28,"category":828,"description":884},"/docs/typography/icon","docs/4.typography/icon","Display icons from popular icon libraries to enhance your content.",{"title":547,"path":886,"stem":887,"framework":28,"category":828,"description":888},"/docs/typography/kbd","docs/4.typography/kbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":890,"path":891,"stem":892,"framework":28,"category":828,"description":893},"Steps","/docs/typography/steps","docs/4.typography/steps","Transform headings into numbered step-by-step guides and tutorials.",{"title":743,"path":895,"stem":896,"framework":28,"category":828,"description":897},"/docs/typography/tabs","docs/4.typography/tabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":900,"title":901,"body":902,"category":16,"description":3551,"extension":3552,"framework":16,"links":3553,"meta":3556,"navigation":36,"path":3557,"seo":3558,"stem":3559,"__hash__":3560},"docs/docs/1.getting-started/3.migration/2.v3.md","Migration to v3",{"type":903,"value":904,"toc":3537},"minimark",[905,909,932,935,940,1274,1278,1281,1285,1303,1427,1430,1440,1473,1529,1549,1605,1613,1632,1638,1651,1720,1724,1738,1749,1870,1881,1908,1918,1922,1925,2050,2053,2448,2452,2455,2470,2515,2534,2546,2599,2617,2634,2689,2701,2728,2747,2759,2861,2873,2892,2954,2962,2966,2981,3017,3031,3034,3064,3118,3121,3221,3231,3403,3407,3419,3525,3528,3533],[906,907,908],"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:",[910,911,912,920,926],"ul",{},[913,914,915,919],"li",{},[916,917,918],"strong",{},"Tailwind CSS v4",": Migration from JavaScript to CSS-based configuration",[913,921,922,925],{},[916,923,924],{},"Reka UI",": Replacing Headless UI as the underlying component library",[913,927,928,931],{},[916,929,930],{},"Tailwind Variants",": New styling API for component variants",[906,933,934],{},"This guide provides step by step instructions to migrate your application from v2 to v3.",[936,937,939],"h2",{"id":938},"migrate-your-project","Migrate your project",[941,942,943,948,951,963,978,1073,1078,1094,1098,1103,1165,1171,1204,1214],"steps",{},[944,945,947],"h3",{"id":946},"update-tailwind-css","Update Tailwind CSS",[906,949,950],{},"Tailwind CSS v4 introduces significant changes to its configuration approach. The official Tailwind upgrade tool will help automate most of the migration process.",[952,953,956],"note",{"to":954,"target":955},"https://tailwindcss.com/docs/upgrade-guide#changes-from-v3","_blank",[906,957,958,959,962],{},"For a detailed walkthrough of all changes, refer to the official ",[916,960,961],{},"Tailwind CSS v4 upgrade guide",".",[964,965,966],"ol",{},[913,967,968,969,973,974,977],{},"Create a ",[970,971,972],"code",{},"main.css"," file and import it in your ",[970,975,976],{},"nuxt.config.ts"," file:",[979,980,981,1014],"code-group",{},[982,983,989],"pre",{"className":984,"code":985,"filename":986,"language":987,"meta":988,"style":988},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","@import \"tailwindcss\";\n","app/assets/css/main.css","css","",[970,990,991],{"__ignoreMap":988},[992,993,996,1000,1004,1008,1011],"span",{"class":994,"line":995},"line",1,[992,997,999],{"class":998},"s7zQu","@import",[992,1001,1003],{"class":1002},"sMK4o"," \"",[992,1005,1007],{"class":1006},"sfazB","tailwindcss",[992,1009,1010],{"class":1002},"\"",[992,1012,1013],{"class":1002},";\n",[982,1015,1019],{"className":1016,"code":1017,"filename":976,"language":1018,"meta":988,"style":988},"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",[970,1020,1021,1040,1064],{"__ignoreMap":988},[992,1022,1023,1026,1029,1033,1037],{"class":994,"line":995},[992,1024,1025],{"class":998},"export",[992,1027,1028],{"class":998}," default",[992,1030,1032],{"class":1031},"s2Zo4"," defineNuxtConfig",[992,1034,1036],{"class":1035},"sTEyZ","(",[992,1038,1039],{"class":1002},"{\n",[992,1041,1043,1047,1050,1053,1056,1059,1061],{"class":994,"line":1042},2,[992,1044,1046],{"class":1045},"swJcz","  css",[992,1048,1049],{"class":1002},":",[992,1051,1052],{"class":1035}," [",[992,1054,1055],{"class":1002},"'",[992,1057,1058],{"class":1006},"~/assets/css/main.css",[992,1060,1055],{"class":1002},[992,1062,1063],{"class":1035},"]\n",[992,1065,1067,1070],{"class":994,"line":1066},3,[992,1068,1069],{"class":1002},"}",[992,1071,1072],{"class":1035},")\n",[964,1074,1075],{"start":1042},[913,1076,1077],{},"Run the Tailwind CSS upgrade tool:",[982,1079,1083],{"className":1080,"code":1081,"language":1082,"meta":988,"style":988},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","npx @tailwindcss/upgrade\n","bash",[970,1084,1085],{"__ignoreMap":988},[992,1086,1087,1091],{"class":994,"line":995},[992,1088,1090],{"class":1089},"sBMFI","npx",[992,1092,1093],{"class":1006}," @tailwindcss/upgrade\n",[944,1095,1097],{"id":1096},"update-nuxt-ui","Update Nuxt UI",[964,1099,1100],{"start":1066},[913,1101,1102],{},"Install the latest version of the package:",[979,1104,1106,1122,1136,1151],{"sync":1105},"pm",[982,1107,1110],{"className":1080,"code":1108,"filename":1109,"language":1082,"meta":988,"style":988},"pnpm add @nuxt/ui\n","pnpm",[970,1111,1112],{"__ignoreMap":988},[992,1113,1114,1116,1119],{"class":994,"line":995},[992,1115,1109],{"class":1089},[992,1117,1118],{"class":1006}," add",[992,1120,1121],{"class":1006}," @nuxt/ui\n",[982,1123,1126],{"className":1080,"code":1124,"filename":1125,"language":1082,"meta":988,"style":988},"yarn add @nuxt/ui\n","yarn",[970,1127,1128],{"__ignoreMap":988},[992,1129,1130,1132,1134],{"class":994,"line":995},[992,1131,1125],{"class":1089},[992,1133,1118],{"class":1006},[992,1135,1121],{"class":1006},[982,1137,1140],{"className":1080,"code":1138,"filename":1139,"language":1082,"meta":988,"style":988},"npm install @nuxt/ui\n","npm",[970,1141,1142],{"__ignoreMap":988},[992,1143,1144,1146,1149],{"class":994,"line":995},[992,1145,1139],{"class":1089},[992,1147,1148],{"class":1006}," install",[992,1150,1121],{"class":1006},[982,1152,1155],{"className":1080,"code":1153,"filename":1154,"language":1082,"meta":988,"style":988},"bun add @nuxt/ui\n","bun",[970,1156,1157],{"__ignoreMap":988},[992,1158,1159,1161,1163],{"class":994,"line":995},[992,1160,1154],{"class":1089},[992,1162,1118],{"class":1006},[992,1164,1121],{"class":1006},[964,1166,1168],{"start":1167},4,[913,1169,1170],{},"Import it in your CSS:",[982,1172,1175],{"className":984,"code":1173,"filename":986,"highlights":1174,"language":987,"meta":988,"style":988},"@import \"tailwindcss\";\n@import \"@nuxt/ui\";\n",[1042],[970,1176,1177,1189],{"__ignoreMap":988},[992,1178,1179,1181,1183,1185,1187],{"class":994,"line":995},[992,1180,999],{"class":998},[992,1182,1003],{"class":1002},[992,1184,1007],{"class":1006},[992,1186,1010],{"class":1002},[992,1188,1013],{"class":1002},[992,1190,1193,1195,1197,1200,1202],{"class":1191,"line":1042},[994,1192],"highlight",[992,1194,999],{"class":998},[992,1196,1003],{"class":1002},[992,1198,1199],{"class":1006},"@nuxt/ui",[992,1201,1010],{"class":1002},[992,1203,1013],{"class":1002},[964,1205,1207],{"start":1206},5,[913,1208,1209,1210,1213],{},"Wrap your app with the ",[1211,1212,175],"a",{"href":176}," component:",[982,1215,1220],{"className":1216,"code":1217,"filename":1218,"highlights":1219,"language":34,"meta":988,"style":988},"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",[1042,1167],[970,1221,1222,1233,1244,1255,1265],{"__ignoreMap":988},[992,1223,1224,1227,1230],{"class":994,"line":995},[992,1225,1226],{"class":1002},"\u003C",[992,1228,1229],{"class":1045},"template",[992,1231,1232],{"class":1002},">\n",[992,1234,1236,1239,1242],{"class":1235,"line":1042},[994,1192],[992,1237,1238],{"class":1002},"  \u003C",[992,1240,1241],{"class":1045},"UApp",[992,1243,1232],{"class":1002},[992,1245,1246,1249,1252],{"class":994,"line":1066},[992,1247,1248],{"class":1002},"    \u003C",[992,1250,1251],{"class":1045},"NuxtPage",[992,1253,1254],{"class":1002}," />\n",[992,1256,1258,1261,1263],{"class":1257,"line":1167},[994,1192],[992,1259,1260],{"class":1002},"  \u003C/",[992,1262,1241],{"class":1045},[992,1264,1232],{"class":1002},[992,1266,1267,1270,1272],{"class":994,"line":1206},[992,1268,1269],{"class":1002},"\u003C/",[992,1271,1229],{"class":1045},[992,1273,1232],{"class":1002},[936,1275,1277],{"id":1276},"changes-from-v2","Changes from v2",[906,1279,1280],{},"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.",[944,1282,1284],{"id":1283},"updated-design-system","Updated design system",[906,1286,1287,1288,1291,1292,1291,1295,1298,1299,1302],{},"In Nuxt UI v2, we had a mix between a design system with ",[970,1289,1290],{},"primary",", ",[970,1293,1294],{},"gray",[970,1296,1297],{},"error"," aliases and all the colors from Tailwind CSS. We've replaced it with a proper ",[1211,1300,1301],{"href":60},"design system"," with 7 color aliases:",[1304,1305,1306,1322],"table",{},[1307,1308,1309],"thead",{},[1310,1311,1312,1316,1319],"tr",{},[1313,1314,1315],"th",{},"Color",[1313,1317,1318],{},"Default",[1313,1320,1321],{},"Description",[1323,1324,1325,1340,1355,1369,1383,1398,1412],"tbody",{},[1310,1326,1327,1332,1337],{},[1328,1329,1330],"td",{},[970,1331,1290],{"color":1290},[1328,1333,1334],{},[970,1335,1336],{},"green",[1328,1338,1339],{},"Main brand color, used as the default color for components.",[1310,1341,1342,1347,1352],{},[1328,1343,1344],{},[970,1345,1346],{"color":1346},"secondary",[1328,1348,1349],{},[970,1350,1351],{},"blue",[1328,1353,1354],{},"Secondary color to complement the primary color.",[1310,1356,1357,1362,1366],{},[1328,1358,1359],{},[970,1360,1361],{"color":1361},"success",[1328,1363,1364],{},[970,1365,1336],{},[1328,1367,1368],{},"Used for success states.",[1310,1370,1371,1376,1380],{},[1328,1372,1373],{},[970,1374,1375],{"color":1375},"info",[1328,1377,1378],{},[970,1379,1351],{},[1328,1381,1382],{},"Used for informational states.",[1310,1384,1385,1390,1395],{},[1328,1386,1387],{},[970,1388,1389],{"color":1389},"warning",[1328,1391,1392],{},[970,1393,1394],{},"yellow",[1328,1396,1397],{},"Used for warning states.",[1310,1399,1400,1404,1409],{},[1328,1401,1402],{},[970,1403,1297],{"color":1297},[1328,1405,1406],{},[970,1407,1408],{},"red",[1328,1410,1411],{},"Used for form error validation states.",[1310,1413,1414,1419,1424],{},[1328,1415,1416],{},[970,1417,1418],{},"neutral",[1328,1420,1421],{},[970,1422,1423],{},"slate",[1328,1425,1426],{},"Neutral color for backgrounds, text, etc.",[906,1428,1429],{},"This change introduces several breaking changes that you need to be aware of:",[910,1431,1432],{},[913,1433,1434,1435,1437,1438],{},"The ",[970,1436,1294],{}," color has been renamed to ",[970,1439,1418],{},[982,1441,1445],{"className":1442,"code":1443,"language":1444,"meta":988,"style":988},"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",[970,1446,1447,1452,1460,1468],{"__ignoreMap":988},[992,1448,1449],{"class":994,"line":995},[992,1450,1451],{"class":1035},"\u003Ctemplate>\n",[992,1453,1454,1457],{"class":994,"line":1042},[992,1455,1456],{"class":1002},"-",[992,1458,1459],{"class":1045}," \u003Cp class=\"text-gray-500 dark:text-gray-400\" />\n",[992,1461,1462,1465],{"class":994,"line":1066},[992,1463,1464],{"class":1002},"+",[992,1466,1467],{"class":1006}," \u003Cp class=\"text-neutral-500 dark:text-neutral-400\" />\n",[992,1469,1470],{"class":994,"line":1167},[992,1471,1472],{"class":1035},"\u003C/template>\n",[952,1474,1475,1482],{},[906,1476,1477,1478,1481],{},"You can also use the new ",[1211,1479,1480],{"href":66},"design tokens"," to handle light and dark mode:",[982,1483,1485],{"className":1442,"code":1484,"language":1444,"meta":988,"style":988},"\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",[970,1486,1487,1491,1497,1504,1509,1516,1524],{"__ignoreMap":988},[992,1488,1489],{"class":994,"line":995},[992,1490,1451],{"class":1035},[992,1492,1493,1495],{"class":994,"line":1042},[992,1494,1456],{"class":1002},[992,1496,1459],{"class":1045},[992,1498,1499,1501],{"class":994,"line":1066},[992,1500,1464],{"class":1002},[992,1502,1503],{"class":1006}," \u003Cp class=\"text-muted\" />\n",[992,1505,1506],{"class":994,"line":1167},[992,1507,1508],{"emptyLinePlaceholder":21},"\n",[992,1510,1511,1513],{"class":994,"line":1206},[992,1512,1456],{"class":1002},[992,1514,1515],{"class":1045}," \u003Cp class=\"text-gray-900 dark:text-white\" />\n",[992,1517,1519,1521],{"class":994,"line":1518},6,[992,1520,1464],{"class":1002},[992,1522,1523],{"class":1006}," \u003Cp class=\"text-highlighted\" />\n",[992,1525,1527],{"class":994,"line":1526},7,[992,1528,1472],{"class":1035},[910,1530,1531],{},[913,1532,1434,1533,1291,1535,1538,1539,1542,1543,1546,1547,1049],{},[970,1534,1294],{},[970,1536,1537],{},"black"," and ",[970,1540,1541],{},"white"," in the ",[970,1544,1545],{},"color"," props have been removed in favor of ",[970,1548,1418],{},[982,1550,1552],{"className":1442,"code":1551,"language":1444,"meta":988,"style":988},"- \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",[970,1553,1554,1561,1568,1572,1579,1586,1590,1597],{"__ignoreMap":988},[992,1555,1556,1558],{"class":994,"line":995},[992,1557,1456],{"class":1002},[992,1559,1560],{"class":1045}," \u003CUButton color=\"black\" />\n",[992,1562,1563,1565],{"class":994,"line":1042},[992,1564,1464],{"class":1002},[992,1566,1567],{"class":1006}," \u003CUButton color=\"neutral\" />\n",[992,1569,1570],{"class":994,"line":1066},[992,1571,1508],{"emptyLinePlaceholder":21},[992,1573,1574,1576],{"class":994,"line":1167},[992,1575,1456],{"class":1002},[992,1577,1578],{"class":1045}," \u003CUButton color=\"gray\" />\n",[992,1580,1581,1583],{"class":994,"line":1206},[992,1582,1464],{"class":1002},[992,1584,1585],{"class":1006}," \u003CUButton color=\"neutral\" variant=\"subtle\" />\n",[992,1587,1588],{"class":994,"line":1518},[992,1589,1508],{"emptyLinePlaceholder":21},[992,1591,1592,1594],{"class":994,"line":1526},[992,1593,1456],{"class":1002},[992,1595,1596],{"class":1045}," \u003CUButton color=\"white\" />\n",[992,1598,1600,1602],{"class":994,"line":1599},8,[992,1601,1464],{"class":1002},[992,1603,1604],{"class":1006}," \u003CUButton color=\"neutral\" variant=\"outline\" />\n",[910,1606,1607],{},[913,1608,1609,1610,1612],{},"You can no longer use Tailwind CSS colors in the ",[970,1611,1545],{}," props, use the new aliases instead:",[982,1614,1616],{"className":1442,"code":1615,"language":1444,"meta":988,"style":988},"- \u003CUButton color=\"red\" />\n+ \u003CUButton color=\"error\" />\n",[970,1617,1618,1625],{"__ignoreMap":988},[992,1619,1620,1622],{"class":994,"line":995},[992,1621,1456],{"class":1002},[992,1623,1624],{"class":1045}," \u003CUButton color=\"red\" />\n",[992,1626,1627,1629],{"class":994,"line":1042},[992,1628,1464],{"class":1002},[992,1630,1631],{"class":1006}," \u003CUButton color=\"error\" />\n",[952,1633,1635],{"to":1634},"/docs/getting-started/theme/design-system#colors",[906,1636,1637],{},"Learn how to extend the design system to add new color aliases.",[910,1639,1640],{},[913,1641,1642,1643,1646,1647,1650],{},"The color configuration in ",[970,1644,1645],{},"app.config.ts"," has been moved into a ",[970,1648,1649],{},"colors"," object:",[982,1652,1654],{"className":1442,"code":1653,"language":1444,"meta":988,"style":988},"export default defineAppConfig({\n  ui: {\n-   primary: 'green',\n-   gray: 'cool'\n+   colors: {\n+     primary: 'green',\n+     neutral: 'slate'\n+   }\n  }\n})\n",[970,1655,1656,1661,1666,1673,1680,1687,1694,1701,1708,1714],{"__ignoreMap":988},[992,1657,1658],{"class":994,"line":995},[992,1659,1660],{"class":1035},"export default defineAppConfig({\n",[992,1662,1663],{"class":994,"line":1042},[992,1664,1665],{"class":1035},"  ui: {\n",[992,1667,1668,1670],{"class":994,"line":1066},[992,1669,1456],{"class":1002},[992,1671,1672],{"class":1045},"   primary: 'green',\n",[992,1674,1675,1677],{"class":994,"line":1167},[992,1676,1456],{"class":1002},[992,1678,1679],{"class":1045},"   gray: 'cool'\n",[992,1681,1682,1684],{"class":994,"line":1206},[992,1683,1464],{"class":1002},[992,1685,1686],{"class":1006},"   colors: {\n",[992,1688,1689,1691],{"class":994,"line":1518},[992,1690,1464],{"class":1002},[992,1692,1693],{"class":1006},"     primary: 'green',\n",[992,1695,1696,1698],{"class":994,"line":1526},[992,1697,1464],{"class":1002},[992,1699,1700],{"class":1006},"     neutral: 'slate'\n",[992,1702,1703,1705],{"class":994,"line":1599},[992,1704,1464],{"class":1002},[992,1706,1707],{"class":1006},"   }\n",[992,1709,1711],{"class":994,"line":1710},9,[992,1712,1713],{"class":1035},"  }\n",[992,1715,1717],{"class":994,"line":1716},10,[992,1718,1719],{"class":1035},"})\n",[944,1721,1723],{"id":1722},"updated-theming-system","Updated theming system",[906,1725,1726,1727,1730,1731,1733,1734,1737],{},"Nuxt UI components are now styled using the ",[1211,1728,1729],{"href":72},"Tailwind Variants API",", which makes all the overrides you made using the ",[970,1732,1645],{}," and the ",[970,1735,1736],{},"ui"," prop obsolete.",[910,1739,1740],{},[913,1741,1742,1743,1748],{},"Update your ",[1211,1744,1746],{"href":1745},"/docs/getting-started/theme/components#global-config",[970,1747,1645],{}," to override components with their new theme:",[982,1750,1752],{"className":1442,"code":1751,"language":1444,"meta":988,"style":988},"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",[970,1753,1754,1758,1763,1768,1775,1782,1789,1796,1803,1810,1817,1825,1833,1840,1847,1854,1860,1865],{"__ignoreMap":988},[992,1755,1756],{"class":994,"line":995},[992,1757,1660],{"class":1035},[992,1759,1760],{"class":994,"line":1042},[992,1761,1762],{"class":1035},"   ui: {\n",[992,1764,1765],{"class":994,"line":1066},[992,1766,1767],{"class":1035},"     button: {\n",[992,1769,1770,1772],{"class":994,"line":1167},[992,1771,1456],{"class":1002},[992,1773,1774],{"class":1045},"       font: 'font-bold',\n",[992,1776,1777,1779],{"class":994,"line":1206},[992,1778,1456],{"class":1002},[992,1780,1781],{"class":1045},"       default: {\n",[992,1783,1784,1786],{"class":994,"line":1518},[992,1785,1456],{"class":1002},[992,1787,1788],{"class":1045},"         size: 'md',\n",[992,1790,1791,1793],{"class":994,"line":1526},[992,1792,1456],{"class":1002},[992,1794,1795],{"class":1045},"         color: 'primary'\n",[992,1797,1798,1800],{"class":994,"line":1599},[992,1799,1456],{"class":1002},[992,1801,1802],{"class":1045},"       }\n",[992,1804,1805,1807],{"class":994,"line":1710},[992,1806,1464],{"class":1002},[992,1808,1809],{"class":1006},"       slots: {\n",[992,1811,1812,1814],{"class":994,"line":1716},[992,1813,1464],{"class":1002},[992,1815,1816],{"class":1006},"         base: 'font-medium'\n",[992,1818,1820,1822],{"class":994,"line":1819},11,[992,1821,1464],{"class":1002},[992,1823,1824],{"class":1006},"       },\n",[992,1826,1828,1830],{"class":994,"line":1827},12,[992,1829,1464],{"class":1002},[992,1831,1832],{"class":1006},"       defaultVariants: {\n",[992,1834,1836,1838],{"class":994,"line":1835},13,[992,1837,1464],{"class":1002},[992,1839,1788],{"class":1006},[992,1841,1843,1845],{"class":994,"line":1842},14,[992,1844,1464],{"class":1002},[992,1846,1795],{"class":1006},[992,1848,1850,1852],{"class":994,"line":1849},15,[992,1851,1464],{"class":1002},[992,1853,1802],{"class":1006},[992,1855,1857],{"class":994,"line":1856},16,[992,1858,1859],{"class":1035},"     }\n",[992,1861,1863],{"class":994,"line":1862},17,[992,1864,1707],{"class":1035},[992,1866,1868],{"class":994,"line":1867},18,[992,1869,1719],{"class":1035},[910,1871,1872],{},[913,1873,1742,1874,1880],{},[1211,1875,1877,1879],{"href":1876},"/docs/getting-started/theme/components#ui-prop",[970,1878,1736],{}," props"," to override each component's slots using their new theme:",[982,1882,1884],{"className":1442,"code":1883,"language":1444,"meta":988,"style":988},"\u003Ctemplate>\n- \u003CUButton :ui=\"{ font: 'font-bold' }\" />\n+ \u003CUButton :ui=\"{ base: 'font-bold' }\" />\n\u003C/template>\n",[970,1885,1886,1890,1897,1904],{"__ignoreMap":988},[992,1887,1888],{"class":994,"line":995},[992,1889,1451],{"class":1035},[992,1891,1892,1894],{"class":994,"line":1042},[992,1893,1456],{"class":1002},[992,1895,1896],{"class":1045}," \u003CUButton :ui=\"{ font: 'font-bold' }\" />\n",[992,1898,1899,1901],{"class":994,"line":1066},[992,1900,1464],{"class":1002},[992,1902,1903],{"class":1006}," \u003CUButton :ui=\"{ base: 'font-bold' }\" />\n",[992,1905,1906],{"class":994,"line":1167},[992,1907,1472],{"class":1035},[1909,1910,1912],"tip",{"to":1911},"/docs/components/button#theme",[906,1913,1914,1915,1917],{},"We can't detail all the changes here but you can check each component's theme in the ",[916,1916,54],{}," section.",[944,1919,1921],{"id":1920},"renamed-components","Renamed components",[906,1923,1924],{},"We've renamed some Nuxt UI components to align with the Reka UI naming convention:",[1304,1926,1927,1937],{},[1307,1928,1929],{},[1310,1930,1931,1934],{},[1313,1932,1933],{},"v2",[1313,1935,1936],{},"v3",[1323,1938,1939,1952,1965,1978,1991,2004,2017,2034],{},[1310,1940,1941,1946],{},[1328,1942,1943],{},[970,1944,1945],{},"Divider",[1328,1947,1948],{},[1211,1949,1950],{"href":709},[970,1951,708],{},[1310,1953,1954,1959],{},[1328,1955,1956],{},[970,1957,1958],{},"Dropdown",[1328,1960,1961],{},[1211,1962,1963],{"href":430},[970,1964,429],{},[1310,1966,1967,1972],{},[1328,1968,1969],{},[970,1970,1971],{},"FormGroup",[1328,1973,1974],{},[1211,1975,1976],{"href":502},[970,1977,501],{},[1310,1979,1980,1985],{},[1328,1981,1982],{},[970,1983,1984],{},"Range",[1328,1986,1987],{},[1211,1988,1989],{"href":724},[970,1990,723],{},[1310,1992,1993,1998],{},[1328,1994,1995],{},[970,1996,1997],{},"Toggle",[1328,1999,2000],{},[1211,2001,2002],{"href":734},[970,2003,733],{},[1310,2005,2006,2011],{},[1328,2007,2008],{},[970,2009,2010],{},"Notification",[1328,2012,2013],{},[1211,2014,2015],{"href":759},[970,2016,758],{},[1310,2018,2019,2024],{},[1328,2020,2021],{},[970,2022,2023],{},"VerticalNavigation",[1328,2025,2026,2030,2031],{},[1211,2027,2028],{"href":579},[970,2029,578],{}," with ",[970,2032,2033],{},"orientation=\"vertical\"",[1310,2035,2036,2041],{},[1328,2037,2038],{},[970,2039,2040],{},"HorizontalNavigation",[1328,2042,2043,2030,2047],{},[1211,2044,2045],{"href":579},[970,2046,578],{},[970,2048,2049],{},"orientation=\"horizontal\"",[906,2051,2052],{},"Here are the Nuxt UI Pro components that have been renamed or removed:",[1304,2054,2055,2064],{},[1307,2056,2057],{},[1310,2058,2059,2062],{},[1313,2060,2061],{},"v1",[1313,2063,1936],{},[1323,2065,2066,2079,2092,2107,2120,2133,2146,2156,2169,2182,2195,2208,2221,2234,2247,2260,2273,2286,2299,2312,2325,2338,2352,2365,2378,2391,2404,2417,2430],{},[1310,2067,2068,2073],{},[1328,2069,2070],{},[970,2071,2072],{},"BlogList",[1328,2074,2075],{},[1211,2076,2077],{"href":213},[970,2078,212],{},[1310,2080,2081,2086],{},[1328,2082,2083],{},[970,2084,2085],{},"ColorModeToggle",[1328,2087,2088],{},[1211,2089,2090],{"href":322},[970,2091,321],{},[1310,2093,2094,2099],{},[1328,2095,2096],{},[970,2097,2098],{},"DashboardCard",[1328,2100,2101,2102,2106],{},"Removed (use ",[1211,2103,2104],{"href":604},[970,2105,603],{}," instead)",[1310,2108,2109,2114],{},[1328,2110,2111],{},[970,2112,2113],{},"DashboardLayout",[1328,2115,2116],{},[1211,2117,2118],{"href":374},[970,2119,373],{},[1310,2121,2122,2127],{},[1328,2123,2124],{},[970,2125,2126],{},"DashboardModal",[1328,2128,2101,2129,2106],{},[1211,2130,2131],{"href":574},[970,2132,573],{},[1310,2134,2135,2140],{},[1328,2136,2137],{},[970,2138,2139],{},"DashboardNavbarToggle",[1328,2141,2142],{},[1211,2143,2144],{"href":415},[970,2145,414],{},[1310,2147,2148,2153],{},[1328,2149,2150],{},[970,2151,2152],{},"DashboardPage",[1328,2154,2155],{},"Removed",[1310,2157,2158,2163],{},[1328,2159,2160],{},[970,2161,2162],{},"DashboardPanelContent",[1328,2164,2101,2165,2168],{},[970,2166,2167],{},"#body"," slot instead)",[1310,2170,2171,2176],{},[1328,2172,2173],{},[970,2174,2175],{},"DashboardPanelHandle",[1328,2177,2178],{},[1211,2179,2180],{"href":390},[970,2181,389],{},[1310,2183,2184,2189],{},[1328,2185,2186],{},[970,2187,2188],{},"DashboardSection",[1328,2190,2101,2191,2106],{},[1211,2192,2193],{"href":604},[970,2194,603],{},[1310,2196,2197,2202],{},[1328,2198,2199],{},[970,2200,2201],{},"DashboardSidebarLinks",[1328,2203,2101,2204,2106],{},[1211,2205,2206],{"href":579},[970,2207,578],{},[1310,2209,2210,2215],{},[1328,2211,2212],{},[970,2213,2214],{},"DashboardSlideover",[1328,2216,2101,2217,2106],{},[1211,2218,2219],{"href":719},[970,2220,718],{},[1310,2222,2223,2228],{},[1328,2224,2225],{},[970,2226,2227],{},"FooterLinks",[1328,2229,2101,2230,2106],{},[1211,2231,2232],{"href":579},[970,2233,578],{},[1310,2235,2236,2241],{},[1328,2237,2238],{},[970,2239,2240],{},"HeaderLinks",[1328,2242,2101,2243,2106],{},[1211,2244,2245],{"href":579},[970,2246,578],{},[1310,2248,2249,2254],{},[1328,2250,2251],{},[970,2252,2253],{},"LandingCard",[1328,2255,2101,2256,2106],{},[1211,2257,2258],{"href":604},[970,2259,603],{},[1310,2261,2262,2267],{},[1328,2263,2264],{},[970,2265,2266],{},"LandingCTA",[1328,2268,2269],{},[1211,2270,2271],{"href":614},[970,2272,613],{},[1310,2274,2275,2280],{},[1328,2276,2277],{},[970,2278,2279],{},"LandingFAQ",[1328,2281,2101,2282,2106],{},[1211,2283,2284],{"href":164},[970,2285,163],{},[1310,2287,2288,2293],{},[1328,2289,2290],{},[970,2291,2292],{},"LandingGrid",[1328,2294,2101,2295,2106],{},[1211,2296,2297],{"href":624},[970,2298,623],{},[1310,2300,2301,2306],{},[1328,2302,2303],{},[970,2304,2305],{},"LandingHero",[1328,2307,2101,2308,2106],{},[1211,2309,2310],{"href":634},[970,2311,633],{},[1310,2313,2314,2319],{},[1328,2315,2316],{},[970,2317,2318],{},"LandingLogos",[1328,2320,2321],{},[1211,2322,2323],{"href":649},[970,2324,648],{},[1310,2326,2327,2332],{},[1328,2328,2329],{},[970,2330,2331],{},"LandingSection",[1328,2333,2334],{},[1211,2335,2336],{"href":654},[970,2337,653],{},[1310,2339,2340,2345],{},[1328,2341,2342],{},[970,2343,2344],{},"LandingTestimonial",[1328,2346,2101,2347,2106],{},[1211,2348,2350],{"href":2349},"/docs/components/page-card#as-a-testimonial",[970,2351,603],{},[1310,2353,2354,2359],{},[1328,2355,2356],{},[970,2357,2358],{},"NavigationAccordion",[1328,2360,2361],{},[1211,2362,2363],{"href":342},[970,2364,341],{},[1310,2366,2367,2372],{},[1328,2368,2369],{},[970,2370,2371],{},"NavigationLinks",[1328,2373,2374],{},[1211,2375,2376],{"href":342},[970,2377,341],{},[1310,2379,2380,2385],{},[1328,2381,2382],{},[970,2383,2384],{},"NavigationTree",[1328,2386,2387],{},[1211,2388,2389],{"href":342},[970,2390,341],{},[1310,2392,2393,2398],{},[1328,2394,2395],{},[970,2396,2397],{},"PageError",[1328,2399,2400],{},[1211,2401,2402],{"href":472},[970,2403,471],{},[1310,2405,2406,2411],{},[1328,2407,2408],{},[970,2409,2410],{},"PricingCard",[1328,2412,2413],{},[1211,2414,2415],{"href":674},[970,2416,673],{},[1310,2418,2419,2424],{},[1328,2420,2421],{},[970,2422,2423],{},"PricingGrid",[1328,2425,2426],{},[1211,2427,2428],{"href":679},[970,2429,678],{},[1310,2431,2432,2437],{},[1328,2433,2434],{},[970,2435,2436],{},"PricingSwitch",[1328,2438,2101,2439,2443,2444,2106],{},[1211,2440,2441],{"href":734},[970,2442,733],{}," or ",[1211,2445,2446],{"href":744},[970,2447,743],{},[944,2449,2451],{"id":2450},"changed-components","Changed components",[906,2453,2454],{},"In addition to the renamed components, there are lots of changes to the components API. Let's detail the most important ones:",[910,2456,2457],{},[913,2458,1434,2459,1538,2462,2465,2466,2469],{},[970,2460,2461],{},"links",[970,2463,2464],{},"options"," props have been renamed to ",[970,2467,2468],{},"items"," for consistency:",[982,2471,2473],{"className":1442,"code":2472,"language":1444,"meta":988,"style":988},"\u003Ctemplate>\n- \u003CUSelect :options=\"countries\" />\n+ \u003CUSelect :items=\"countries\" />\n\n- \u003CUHorizontalNavigation :links=\"links\" />\n+ \u003CUNavigationMenu :items=\"links\" />\n\u003C/template>\n",[970,2474,2475,2479,2486,2493,2497,2504,2511],{"__ignoreMap":988},[992,2476,2477],{"class":994,"line":995},[992,2478,1451],{"class":1035},[992,2480,2481,2483],{"class":994,"line":1042},[992,2482,1456],{"class":1002},[992,2484,2485],{"class":1045}," \u003CUSelect :options=\"countries\" />\n",[992,2487,2488,2490],{"class":994,"line":1066},[992,2489,1464],{"class":1002},[992,2491,2492],{"class":1006}," \u003CUSelect :items=\"countries\" />\n",[992,2494,2495],{"class":994,"line":1167},[992,2496,1508],{"emptyLinePlaceholder":21},[992,2498,2499,2501],{"class":994,"line":1206},[992,2500,1456],{"class":1002},[992,2502,2503],{"class":1045}," \u003CUHorizontalNavigation :links=\"links\" />\n",[992,2505,2506,2508],{"class":994,"line":1518},[992,2507,1464],{"class":1002},[992,2509,2510],{"class":1006}," \u003CUNavigationMenu :items=\"links\" />\n",[992,2512,2513],{"class":994,"line":1526},[992,2514,1472],{"class":1035},[952,2516,2517],{},[906,2518,2519,2520,1291,2522,1291,2524,1291,2526,1291,2528,1291,2530,1291,2532,962],{},"This change affects the following components: ",[970,2521,217],{},[970,2523,2040],{},[970,2525,527],{},[970,2527,693],{},[970,2529,698],{},[970,2531,703],{},[970,2533,2023],{},[910,2535,2536],{},[913,2537,1434,2538,2541,2542,2545],{},[970,2539,2540],{},"click"," field in different components has been removed in favor of the native Vue ",[970,2543,2544],{},"onClick"," event:",[982,2547,2549],{"className":1442,"code":2548,"language":1444,"meta":988,"style":988},"\u003Cscript setup lang=\"ts\">\nconst items = [{\n  label: 'Edit',\n-  click: () => {\n+  onClick: () => {\n    console.log('Edit')\n  }\n}]\n\u003C/script>\n",[970,2550,2551,2556,2561,2566,2573,2580,2585,2589,2594],{"__ignoreMap":988},[992,2552,2553],{"class":994,"line":995},[992,2554,2555],{"class":1035},"\u003Cscript setup lang=\"ts\">\n",[992,2557,2558],{"class":994,"line":1042},[992,2559,2560],{"class":1035},"const items = [{\n",[992,2562,2563],{"class":994,"line":1066},[992,2564,2565],{"class":1035},"  label: 'Edit',\n",[992,2567,2568,2570],{"class":994,"line":1167},[992,2569,1456],{"class":1002},[992,2571,2572],{"class":1045},"  click: () => {\n",[992,2574,2575,2577],{"class":994,"line":1206},[992,2576,1464],{"class":1002},[992,2578,2579],{"class":1006},"  onClick: () => {\n",[992,2581,2582],{"class":994,"line":1518},[992,2583,2584],{"class":1035},"    console.log('Edit')\n",[992,2586,2587],{"class":994,"line":1526},[992,2588,1713],{"class":1035},[992,2590,2591],{"class":994,"line":1599},[992,2592,2593],{"class":1035},"}]\n",[992,2595,2596],{"class":994,"line":1710},[992,2597,2598],{"class":1035},"\u003C/script>\n",[952,2600,2601],{},[906,2602,2603,2604,2606,2607,2609,2610,1291,2612,1291,2614,2616],{},"This change affects the ",[970,2605,758],{}," component as well as all component that have ",[970,2608,2468],{}," links like ",[970,2611,578],{},[970,2613,429],{},[970,2615,331],{},", etc.",[910,2618,2619],{},[913,2620,2621,2622,1291,2625,1538,2628,2631,2632,1213],{},"The global ",[970,2623,2624],{},"Modals",[970,2626,2627],{},"Slideovers",[970,2629,2630],{},"Notifications"," components have been removed in favor the ",[1211,2633,175],{"href":176},[982,2635,2637],{"className":1442,"code":2636,"filename":1218,"language":1444,"meta":988,"style":988},"\u003Ctemplate>\n+  \u003CUApp>\n+    \u003CNuxtPage />\n+  \u003C/UApp>\n-  \u003CUModals />\n-  \u003CUSlideovers />\n-  \u003CUNotifications />\n\u003C/template>\n",[970,2638,2639,2643,2650,2657,2664,2671,2678,2685],{"__ignoreMap":988},[992,2640,2641],{"class":994,"line":995},[992,2642,1451],{"class":1035},[992,2644,2645,2647],{"class":994,"line":1042},[992,2646,1464],{"class":1002},[992,2648,2649],{"class":1006},"  \u003CUApp>\n",[992,2651,2652,2654],{"class":994,"line":1066},[992,2653,1464],{"class":1002},[992,2655,2656],{"class":1006},"    \u003CNuxtPage />\n",[992,2658,2659,2661],{"class":994,"line":1167},[992,2660,1464],{"class":1002},[992,2662,2663],{"class":1006},"  \u003C/UApp>\n",[992,2665,2666,2668],{"class":994,"line":1206},[992,2667,1456],{"class":1002},[992,2669,2670],{"class":1045},"  \u003CUModals />\n",[992,2672,2673,2675],{"class":994,"line":1518},[992,2674,1456],{"class":1002},[992,2676,2677],{"class":1045},"  \u003CUSlideovers />\n",[992,2679,2680,2682],{"class":994,"line":1526},[992,2681,1456],{"class":1002},[992,2683,2684],{"class":1045},"  \u003CUNotifications />\n",[992,2686,2687],{"class":994,"line":1599},[992,2688,1472],{"class":1035},[910,2690,2691],{},[913,2692,1434,2693,2696,2697,2700],{},[970,2694,2695],{},"v-model:open"," directive and ",[970,2698,2699],{},"default-open"," prop are now used to control visibility:",[982,2702,2704],{"className":1442,"code":2703,"language":1444,"meta":988,"style":988},"\u003Ctemplate>\n- \u003CUModal v-model=\"open\" />\n+ \u003CUModal v-model:open=\"open\" />\n\u003C/template>\n",[970,2705,2706,2710,2717,2724],{"__ignoreMap":988},[992,2707,2708],{"class":994,"line":995},[992,2709,1451],{"class":1035},[992,2711,2712,2714],{"class":994,"line":1042},[992,2713,1456],{"class":1002},[992,2715,2716],{"class":1045}," \u003CUModal v-model=\"open\" />\n",[992,2718,2719,2721],{"class":994,"line":1066},[992,2720,1464],{"class":1002},[992,2722,2723],{"class":1006}," \u003CUModal v-model:open=\"open\" />\n",[992,2725,2726],{"class":994,"line":1167},[992,2727,1472],{"class":1035},[952,2729,2730],{},[906,2731,2519,2732,1291,2734,1538,2736,2738,2739,1291,2741,1291,2743,1538,2745,962],{},[970,2733,367],{},[970,2735,573],{},[970,2737,718],{}," and enables controlling visibility for ",[970,2740,527],{},[970,2742,698],{},[970,2744,703],{},[970,2746,763],{},[910,2748,2749],{},[913,2750,2751,2752,2755,2756,2758],{},"The default slot is now used for the trigger and the content goes inside the ",[970,2753,2754],{},"#content"," slot (you don't need to use a ",[970,2757,2695],{}," directive with this method):",[982,2760,2762],{"className":1442,"code":2761,"language":1444,"meta":988,"style":988},"\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",[970,2763,2764,2768,2775,2779,2783,2787,2794,2798,2805,2812,2819,2823,2830,2835,2840,2845,2852,2857],{"__ignoreMap":988},[992,2765,2766],{"class":994,"line":995},[992,2767,2555],{"class":1035},[992,2769,2770,2772],{"class":994,"line":1042},[992,2771,1456],{"class":1002},[992,2773,2774],{"class":1045}," const open = ref(false)\n",[992,2776,2777],{"class":994,"line":1066},[992,2778,2598],{"class":1035},[992,2780,2781],{"class":994,"line":1167},[992,2782,1508],{"emptyLinePlaceholder":21},[992,2784,2785],{"class":994,"line":1206},[992,2786,1451],{"class":1035},[992,2788,2789,2791],{"class":994,"line":1518},[992,2790,1456],{"class":1002},[992,2792,2793],{"class":1045}," \u003CUButton label=\"Open\" @click=\"open = true\" />\n",[992,2795,2796],{"class":994,"line":1526},[992,2797,1508],{"emptyLinePlaceholder":21},[992,2799,2800,2802],{"class":994,"line":1599},[992,2801,1456],{"class":1002},[992,2803,2804],{"class":1045}," \u003CUModal v-model=\"open\">\n",[992,2806,2807,2809],{"class":994,"line":1710},[992,2808,1464],{"class":1002},[992,2810,2811],{"class":1006}," \u003CUModal>\n",[992,2813,2814,2816],{"class":994,"line":1716},[992,2815,1464],{"class":1002},[992,2817,2818],{"class":1006},"   \u003CUButton label=\"Open\" />\n",[992,2820,2821],{"class":994,"line":1819},[992,2822,1508],{"emptyLinePlaceholder":21},[992,2824,2825,2827],{"class":994,"line":1827},[992,2826,1464],{"class":1002},[992,2828,2829],{"class":1006},"   \u003Ctemplate #content>\n",[992,2831,2832],{"class":994,"line":1835},[992,2833,2834],{"class":1035},"      \u003Cdiv class=\"p-4\">\n",[992,2836,2837],{"class":994,"line":1842},[992,2838,2839],{"class":1035},"        \u003CPlaceholder class=\"h-48\" />\n",[992,2841,2842],{"class":994,"line":1849},[992,2843,2844],{"class":1035},"      \u003C/div>\n",[992,2846,2847,2849],{"class":994,"line":1856},[992,2848,1464],{"class":1002},[992,2850,2851],{"class":1006},"   \u003C/template>\n",[992,2853,2854],{"class":994,"line":1862},[992,2855,2856],{"class":1035},"  \u003C/UModal>\n",[992,2858,2859],{"class":994,"line":1867},[992,2860,1472],{"class":1035},[952,2862,2863],{},[906,2864,2519,2865,1291,2867,1291,2869,1291,2871,962],{},[970,2866,573],{},[970,2868,668],{},[970,2870,718],{},[970,2872,763],{},[910,2874,2875],{},[913,2876,2877,2878,1291,2881,1538,2883,2886,2887,2889,2890,1213],{},"A ",[970,2879,2880],{},"#header",[970,2882,2167],{},[970,2884,2885],{},"#footer"," slots have been added inside the ",[970,2888,2754],{}," slot like the ",[970,2891,233],{},[982,2893,2895],{"className":1442,"code":2894,"language":1444,"meta":988,"style":988},"\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",[970,2896,2897,2901,2907,2914,2921,2928,2933,2939,2946,2950],{"__ignoreMap":988},[992,2898,2899],{"class":994,"line":995},[992,2900,1451],{"class":1035},[992,2902,2903,2905],{"class":994,"line":1042},[992,2904,1456],{"class":1002},[992,2906,2811],{"class":1045},[992,2908,2909,2911],{"class":994,"line":1066},[992,2910,1464],{"class":1002},[992,2912,2913],{"class":1006}," \u003CUModal title=\"Title\" description=\"Description\">\n",[992,2915,2916,2918],{"class":994,"line":1167},[992,2917,1456],{"class":1002},[992,2919,2920],{"class":1045},"   \u003Cdiv class=\"p-4\">\n",[992,2922,2923,2925],{"class":994,"line":1206},[992,2924,1464],{"class":1002},[992,2926,2927],{"class":1006},"   \u003Ctemplate #body>\n",[992,2929,2930],{"class":994,"line":1518},[992,2931,2932],{"class":1035},"      \u003CPlaceholder class=\"h-48\" />\n",[992,2934,2935,2937],{"class":994,"line":1526},[992,2936,1464],{"class":1002},[992,2938,2851],{"class":1006},[992,2940,2941,2943],{"class":994,"line":1599},[992,2942,1456],{"class":1002},[992,2944,2945],{"class":1045},"   \u003C/div>\n",[992,2947,2948],{"class":994,"line":1710},[992,2949,2856],{"class":1035},[992,2951,2952],{"class":994,"line":1716},[992,2953,1472],{"class":1035},[952,2955,2956],{},[906,2957,2519,2958,1291,2960,962],{},[970,2959,573],{},[970,2961,718],{},[944,2963,2965],{"id":2964},"changed-composables","Changed composables",[910,2967,2968],{},[913,2969,1434,2970,2973,2974,2977,2978,1049],{},[970,2971,2972],{},"useToast()"," composable ",[970,2975,2976],{},"timeout"," prop has been renamed to ",[970,2979,2980],{},"duration",[982,2982,2984],{"className":1442,"code":2983,"language":1444,"meta":988,"style":988},"\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",[970,2985,2986,2990,2995,2999,3006,3013],{"__ignoreMap":988},[992,2987,2988],{"class":994,"line":995},[992,2989,2555],{"class":1035},[992,2991,2992],{"class":994,"line":1042},[992,2993,2994],{"class":1035},"const toast = useToast()\n",[992,2996,2997],{"class":994,"line":1066},[992,2998,1508],{"emptyLinePlaceholder":21},[992,3000,3001,3003],{"class":994,"line":1167},[992,3002,1456],{"class":1002},[992,3004,3005],{"class":1045}," toast.add({ title: 'Invitation sent', timeout: 0 })\n",[992,3007,3008,3010],{"class":994,"line":1206},[992,3009,1464],{"class":1002},[992,3011,3012],{"class":1006}," toast.add({ title: 'Invitation sent', duration: 0 })\n",[992,3014,3015],{"class":994,"line":1518},[992,3016,2598],{"class":1035},[910,3018,3019],{},[913,3020,1434,3021,1538,3024,3027,3028,3030],{},[970,3022,3023],{},"useModal",[970,3025,3026],{},"useSlideover"," composables have been removed in favor of a more generic ",[970,3029,789],{}," composable:",[906,3032,3033],{},"Some important differences:",[910,3035,3036,3041,3044,3058],{},[913,3037,1434,3038,3040],{},[970,3039,789],{}," composable is now used to create overlay instances",[913,3042,3043],{},"Overlays that are opened, can be awaited for their result",[913,3045,3046,3047,2443,3050,3053,3054,3057],{},"Overlays can no longer be close using ",[970,3048,3049],{},"modal.close()",[970,3051,3052],{},"slideover.close()",", rather, they close automatically: either when a ",[970,3055,3056],{},"close"," event is fired explicitly from the opened component OR when the overlay closes itself (clicking on backdrop, pressing the ESC key, etc)",[913,3059,3060,3061,3063],{},"To capture the return value in the parent component you must explictly emit a ",[970,3062,3056],{}," event with the desired value",[982,3065,3067],{"className":1442,"code":3066,"language":1444,"meta":988,"style":988},"\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",[970,3068,3069,3073,3078,3082,3089,3096,3100,3107,3114],{"__ignoreMap":988},[992,3070,3071],{"class":994,"line":995},[992,3072,2555],{"class":1035},[992,3074,3075],{"class":994,"line":1042},[992,3076,3077],{"class":1035},"import { ModalExampleComponent } from '#components'\n",[992,3079,3080],{"class":994,"line":1066},[992,3081,1508],{"emptyLinePlaceholder":21},[992,3083,3084,3086],{"class":994,"line":1167},[992,3085,1456],{"class":1002},[992,3087,3088],{"class":1045}," const modal = useModal()\n",[992,3090,3091,3093],{"class":994,"line":1206},[992,3092,1464],{"class":1002},[992,3094,3095],{"class":1006}," const overlay = useOverlay()\n",[992,3097,3098],{"class":994,"line":1518},[992,3099,1508],{"emptyLinePlaceholder":21},[992,3101,3102,3104],{"class":994,"line":1526},[992,3103,1456],{"class":1002},[992,3105,3106],{"class":1045}," modal.open(ModalExampleComponent)\n",[992,3108,3109,3111],{"class":994,"line":1599},[992,3110,1464],{"class":1002},[992,3112,3113],{"class":1006}," const modal = overlay.create(ModalExampleComponent)\n",[992,3115,3116],{"class":994,"line":1710},[992,3117,2598],{"class":1035},[906,3119,3120],{},"Props are now passed through a props attribute:",[982,3122,3124],{"className":1442,"code":3123,"language":1444,"meta":988,"style":988},"\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",[970,3125,3126,3130,3134,3138,3144,3150,3154,3159,3163,3170,3177,3184,3191,3198,3205,3211,3217],{"__ignoreMap":988},[992,3127,3128],{"class":994,"line":995},[992,3129,2555],{"class":1035},[992,3131,3132],{"class":994,"line":1042},[992,3133,3077],{"class":1035},[992,3135,3136],{"class":994,"line":1066},[992,3137,1508],{"emptyLinePlaceholder":21},[992,3139,3140,3142],{"class":994,"line":1167},[992,3141,1456],{"class":1002},[992,3143,3088],{"class":1045},[992,3145,3146,3148],{"class":994,"line":1206},[992,3147,1464],{"class":1002},[992,3149,3095],{"class":1006},[992,3151,3152],{"class":994,"line":1518},[992,3153,1508],{"emptyLinePlaceholder":21},[992,3155,3156],{"class":994,"line":1526},[992,3157,3158],{"class":1035},"const count = ref(0)\n",[992,3160,3161],{"class":994,"line":1599},[992,3162,1508],{"emptyLinePlaceholder":21},[992,3164,3165,3167],{"class":994,"line":1710},[992,3166,1456],{"class":1002},[992,3168,3169],{"class":1045}," modal.open(ModalExampleComponent, {\n",[992,3171,3172,3174],{"class":994,"line":1716},[992,3173,1456],{"class":1002},[992,3175,3176],{"class":1045},"   count: count.value\n",[992,3178,3179,3181],{"class":994,"line":1819},[992,3180,1456],{"class":1002},[992,3182,3183],{"class":1045}," })\n",[992,3185,3186,3188],{"class":994,"line":1827},[992,3187,1464],{"class":1002},[992,3189,3190],{"class":1006}," const modal = overlay.create(ModalExampleComponent, {\n",[992,3192,3193,3195],{"class":994,"line":1835},[992,3194,1464],{"class":1002},[992,3196,3197],{"class":1006},"   props: {\n",[992,3199,3200,3202],{"class":994,"line":1842},[992,3201,1464],{"class":1002},[992,3203,3204],{"class":1006},"     count: count.value\n",[992,3206,3207,3209],{"class":994,"line":1849},[992,3208,1464],{"class":1002},[992,3210,1707],{"class":1006},[992,3212,3213,3215],{"class":994,"line":1856},[992,3214,1464],{"class":1002},[992,3216,3183],{"class":1006},[992,3218,3219],{"class":994,"line":1862},[992,3220,2598],{"class":1035},[906,3222,3223,3224,3226,3227,3230],{},"Closing a modal is now done through the ",[970,3225,3056],{}," event. The ",[970,3228,3229],{},"modal.open"," method now returns an instance that can be used to await for the result of the modal whenever the modal is closed:",[982,3232,3234],{"className":1442,"code":3233,"language":1444,"meta":988,"style":988},"\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",[970,3235,3236,3240,3244,3248,3254,3260,3264,3270,3274,3281,3288,3295,3302,3308,3315,3322,3329,3336,3342,3349,3355,3363,3368,3376,3384,3391,3398],{"__ignoreMap":988},[992,3237,3238],{"class":994,"line":995},[992,3239,2555],{"class":1035},[992,3241,3242],{"class":994,"line":1042},[992,3243,3077],{"class":1035},[992,3245,3246],{"class":994,"line":1066},[992,3247,1508],{"emptyLinePlaceholder":21},[992,3249,3250,3252],{"class":994,"line":1167},[992,3251,1456],{"class":1002},[992,3253,3088],{"class":1045},[992,3255,3256,3258],{"class":994,"line":1206},[992,3257,1464],{"class":1002},[992,3259,3095],{"class":1006},[992,3261,3262],{"class":994,"line":1518},[992,3263,1508],{"emptyLinePlaceholder":21},[992,3265,3266,3268],{"class":994,"line":1526},[992,3267,1464],{"class":1002},[992,3269,3113],{"class":1006},[992,3271,3272],{"class":994,"line":1599},[992,3273,1508],{"emptyLinePlaceholder":21},[992,3275,3276,3278],{"class":994,"line":1710},[992,3277,1456],{"class":1002},[992,3279,3280],{"class":1045}," function openModal() {\n",[992,3282,3283,3285],{"class":994,"line":1716},[992,3284,1456],{"class":1002},[992,3286,3287],{"class":1045},"   modal.open(ModalExampleComponent, {\n",[992,3289,3290,3292],{"class":994,"line":1819},[992,3291,1456],{"class":1002},[992,3293,3294],{"class":1045},"     onSuccess() {\n",[992,3296,3297,3299],{"class":994,"line":1827},[992,3298,1456],{"class":1002},[992,3300,3301],{"class":1045},"       toast.add({ title: 'Success!' })\n",[992,3303,3304,3306],{"class":994,"line":1835},[992,3305,1456],{"class":1002},[992,3307,1859],{"class":1045},[992,3309,3310,3312],{"class":994,"line":1842},[992,3311,1456],{"class":1002},[992,3313,3314],{"class":1045},"   })\n",[992,3316,3317,3319],{"class":994,"line":1849},[992,3318,1456],{"class":1002},[992,3320,3321],{"class":1045}," }\n",[992,3323,3324,3326],{"class":994,"line":1856},[992,3325,1464],{"class":1002},[992,3327,3328],{"class":1006}," async function openModal() {\n",[992,3330,3331,3333],{"class":994,"line":1862},[992,3332,1464],{"class":1002},[992,3334,3335],{"class":1006},"   const instance = modal.open(ModalExampleComponent, {\n",[992,3337,3338,3340],{"class":994,"line":1867},[992,3339,1464],{"class":1002},[992,3341,3204],{"class":1006},[992,3343,3345,3347],{"class":994,"line":3344},19,[992,3346,1464],{"class":1002},[992,3348,3314],{"class":1006},[992,3350,3352],{"class":994,"line":3351},20,[992,3353,3354],{"class":1002},"+\n",[992,3356,3358,3360],{"class":994,"line":3357},21,[992,3359,1464],{"class":1002},[992,3361,3362],{"class":1006},"   const result = await instance.result\n",[992,3364,3366],{"class":994,"line":3365},22,[992,3367,3354],{"class":1002},[992,3369,3371,3373],{"class":994,"line":3370},23,[992,3372,1464],{"class":1002},[992,3374,3375],{"class":1006},"   if (result) {\n",[992,3377,3379,3381],{"class":994,"line":3378},24,[992,3380,1464],{"class":1002},[992,3382,3383],{"class":1006},"     toast.add({ title: 'Success!' })\n",[992,3385,3387,3389],{"class":994,"line":3386},25,[992,3388,1464],{"class":1002},[992,3390,1707],{"class":1006},[992,3392,3394,3396],{"class":994,"line":3393},26,[992,3395,1464],{"class":1002},[992,3397,3321],{"class":1006},[992,3399,3401],{"class":994,"line":3400},27,[992,3402,2598],{"class":1035},[944,3404,3406],{"id":3405},"changed-form-validation","Changed form validation",[910,3408,3409],{},[913,3410,3411,3412,3415,3416,1049],{},"The error object property for targeting form fields has been renamed from ",[970,3413,3414],{},"path"," to ",[970,3417,3418],{},"name",[982,3420,3422],{"className":1442,"code":3421,"language":1444,"meta":988,"style":988},"\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",[970,3423,3424,3428,3433,3438,3443,3448,3455,3462,3467,3472,3476,3481,3485,3492,3499,3503,3507,3511,3516,3521],{"__ignoreMap":988},[992,3425,3426],{"class":994,"line":995},[992,3427,2555],{"class":1035},[992,3429,3430],{"class":994,"line":1042},[992,3431,3432],{"class":1035},"function validate(state: any): FormError[] {\n",[992,3434,3435],{"class":994,"line":1066},[992,3436,3437],{"class":1035},"  const errors = []\n",[992,3439,3440],{"class":994,"line":1167},[992,3441,3442],{"class":1035},"  if (!state.email) {\n",[992,3444,3445],{"class":994,"line":1206},[992,3446,3447],{"class":1035},"    errors.push({\n",[992,3449,3450,3452],{"class":994,"line":1518},[992,3451,1456],{"class":1002},[992,3453,3454],{"class":1045},"     path: 'email',\n",[992,3456,3457,3459],{"class":994,"line":1526},[992,3458,1464],{"class":1002},[992,3460,3461],{"class":1006},"     name: 'email',\n",[992,3463,3464],{"class":994,"line":1599},[992,3465,3466],{"class":1035},"      message: 'Required'\n",[992,3468,3469],{"class":994,"line":1710},[992,3470,3471],{"class":1035},"    })\n",[992,3473,3474],{"class":994,"line":1716},[992,3475,1713],{"class":1035},[992,3477,3478],{"class":994,"line":1819},[992,3479,3480],{"class":1035},"  if (!state.password) {\n",[992,3482,3483],{"class":994,"line":1827},[992,3484,3447],{"class":1035},[992,3486,3487,3489],{"class":994,"line":1835},[992,3488,1456],{"class":1002},[992,3490,3491],{"class":1045},"     path: 'password',\n",[992,3493,3494,3496],{"class":994,"line":1842},[992,3495,1464],{"class":1002},[992,3497,3498],{"class":1006},"     name: 'password',\n",[992,3500,3501],{"class":994,"line":1849},[992,3502,3466],{"class":1035},[992,3504,3505],{"class":994,"line":1856},[992,3506,3471],{"class":1035},[992,3508,3509],{"class":994,"line":1862},[992,3510,1713],{"class":1035},[992,3512,3513],{"class":994,"line":1867},[992,3514,3515],{"class":1035},"  return errors\n",[992,3517,3518],{"class":994,"line":3344},[992,3519,3520],{"class":1035},"}\n",[992,3522,3523],{"class":994,"line":3351},[992,3524,2598],{"class":1035},[3526,3527],"hr",{},[1389,3529,3530],{},[906,3531,3532],{},"This page is a work in progress, we'll improve it regularly.",[3534,3535,3536],"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":988,"searchDepth":1042,"depth":1042,"links":3538},[3539,3543],{"id":938,"depth":1042,"text":939,"children":3540},[3541,3542],{"id":946,"depth":1066,"text":947},{"id":1096,"depth":1066,"text":1097},{"id":1276,"depth":1042,"text":1277,"children":3544},[3545,3546,3547,3548,3549,3550],{"id":1283,"depth":1066,"text":1284},{"id":1722,"depth":1066,"text":1723},{"id":1920,"depth":1066,"text":1921},{"id":2450,"depth":1066,"text":2451},{"id":2964,"depth":1066,"text":2965},{"id":3405,"depth":1066,"text":3406},"A comprehensive guide to migrate your application from Nuxt UI v2 to Nuxt UI v3.","md",[3554],{"label":3555,"to":44,"icon":39},"Migration to v4",{},"/docs/getting-started/migration/v3",{"title":901,"description":3551},"docs/1.getting-started/3.migration/2.v3","Sp93I9Qb5QqgDBGq5F4BNESJJpchvTs3zyhkJs5Lu0U",{"data":3562,"body":3563},{},{"type":3564,"children":3565},"root",[3566],{"type":172,"tag":906,"props":3567,"children":3568},{},[3569],{"type":3570,"value":3551},"text",1765201485280]