[{"data":1,"prerenderedAt":4264},["ShallowReactive",2],{"navigation":3,"-docs-getting-started-migration-v4":964,"-docs-getting-started-migration-v4-description":4254},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,163,816,857],{"title":10,"path":11,"stem":12,"children":13,"framework":16,"category":16,"description":16,"icon":30},"Get Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[14,19,37,47,53,76,141],{"title":15,"path":11,"stem":12,"framework":16,"category":16,"description":17,"icon":18},"Introduction",null,"Nuxt UI is a comprehensive Vue UI component library (Nuxt optional), offering 125+ accessible, Tailwind CSS components for building modern web applications.","i-lucide-house",{"title":20,"framework":16,"category":16,"description":16,"shadow":21,"path":22,"stem":23,"children":24,"page":36},"Installation",true,"\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",[25,31],{"title":20,"path":26,"stem":27,"framework":28,"category":16,"description":29,"icon":30},"\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fnuxt","docs\u002F1.getting-started\u002F2.installation\u002F1.nuxt","nuxt","Learn how to install and configure Nuxt UI in your Nuxt application.","i-lucide-square-play",{"title":20,"path":32,"stem":33,"framework":34,"category":16,"description":35,"icon":30},"\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fvue","docs\u002F1.getting-started\u002F2.installation\u002F2.vue","vue","Learn how to install and configure Nuxt UI in your Vue application, compatible with both plain Vite and Inertia.",false,{"title":38,"framework":16,"category":16,"description":16,"icon":39,"shadow":21,"path":40,"stem":41,"children":42,"page":36},"Migration","i-lucide-arrow-right-left","\u002Fdocs\u002Fgetting-started\u002Fmigration","docs\u002F1.getting-started\u002F3.migration",[43],{"title":38,"path":44,"stem":45,"framework":16,"category":16,"description":46,"icon":39},"\u002Fdocs\u002Fgetting-started\u002Fmigration\u002Fv4","docs\u002F1.getting-started\u002F3.migration\u002F1.v4","A comprehensive guide to migrate your application from Nuxt UI v3 to Nuxt UI v4.",{"title":48,"path":49,"stem":50,"framework":16,"category":16,"description":51,"icon":52},"Contribution","\u002Fdocs\u002Fgetting-started\u002Fcontribution","docs\u002F1.getting-started\u002F4.contribution","A comprehensive guide on contributing to Nuxt UI, including project structure, development workflow, and best practices.","i-lucide-handshake",{"title":54,"path":55,"stem":56,"children":57,"page":36},"Theme","\u002Fdocs\u002Fgetting-started\u002Ftheme","docs\u002F1.getting-started\u002F5.theme",[58,64,70],{"title":59,"path":60,"stem":61,"framework":16,"category":16,"description":62,"icon":63},"Design System","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fdesign-system","docs\u002F1.getting-started\u002F5.theme\u002F1.design-system","Nuxt UI's design system uses Tailwind CSS for simple theming and easy customization.","i-lucide-palette",{"title":65,"path":66,"stem":67,"framework":16,"category":16,"description":68,"icon":69},"CSS Variables","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fcss-variables","docs\u002F1.getting-started\u002F5.theme\u002F2.css-variables","Nuxt UI uses CSS variables as design tokens for flexible, consistent theming with built-in light and dark mode support.","i-lucide-swatch-book",{"title":71,"path":72,"stem":73,"framework":16,"category":16,"description":74,"icon":75},"Components","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fcomponents","docs\u002F1.getting-started\u002F5.theme\u002F3.components","Learn how to customize Nuxt UI components with the Tailwind Variants API for advanced, flexible, and maintainable styling.","i-lucide-layout-grid",{"title":77,"framework":16,"category":16,"description":16,"path":78,"stem":79,"children":80,"page":36},"Integrations","\u002Fdocs\u002Fgetting-started\u002Fintegrations","docs\u002F1.getting-started\u002F6.integrations",[81,95,101,115,129,135],{"title":82,"framework":16,"category":16,"description":16,"shadow":21,"path":83,"stem":84,"children":85,"page":36},"Icons","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons",[86,91],{"title":82,"path":87,"stem":88,"framework":28,"category":16,"description":89,"icon":90},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons\u002F1.nuxt","Nuxt UI integrates with Nuxt Icon to access over 200,000+ icons from Iconify.","i-lucide-smile",{"title":82,"path":92,"stem":93,"framework":34,"category":16,"description":94,"icon":90},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons\u002F2.vue","Nuxt UI integrates with Iconify to access over 200,000+ icons.",{"title":96,"path":97,"stem":98,"framework":28,"category":16,"description":99,"icon":100},"Fonts","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ffonts","docs\u002F1.getting-started\u002F6.integrations\u002F2.fonts","Nuxt UI integrates with Nuxt Fonts to provide plug-and-play font optimization.","i-lucide-a-large-small",{"title":102,"framework":16,"category":16,"description":16,"shadow":21,"path":103,"stem":104,"children":105,"page":36},"Color Mode","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode",[106,111],{"title":102,"path":107,"stem":108,"framework":28,"category":16,"description":109,"icon":110},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode\u002F1.nuxt","Nuxt UI integrates with Nuxt Color Mode to allow for easy switching between light and dark themes.","i-lucide-sun-moon",{"title":102,"path":112,"stem":113,"framework":34,"category":16,"description":114,"icon":110},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode\u002F2.vue","Nuxt UI integrates with VueUse to allow for easy switching between light and dark themes.",{"title":116,"framework":16,"category":16,"description":16,"shadow":21,"path":117,"stem":118,"children":119,"page":36},"I18n","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n",[120,126],{"title":121,"path":122,"stem":123,"framework":28,"category":16,"description":124,"icon":125},"Internationalization (i18n)","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n\u002F1.nuxt","Nuxt UI supports 50+ locales and multi-directional (LTR\u002FRTL) internationalization.","i-lucide-languages",{"title":121,"path":127,"stem":128,"framework":34,"category":16,"description":124,"icon":125},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n\u002F2.vue",{"title":130,"path":131,"stem":132,"framework":28,"category":16,"description":133,"icon":134},"Content","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcontent","docs\u002F1.getting-started\u002F6.integrations\u002F5.content","Nuxt UI integrates with Nuxt Content to deliver beautiful typography and consistent component styling.","i-simple-icons-markdown",{"title":136,"path":137,"stem":138,"framework":34,"category":16,"description":139,"icon":140},"SSR","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fssr","docs\u002F1.getting-started\u002F6.integrations\u002F6.ssr","Nuxt UI has first-party support for Vue SSR. This guide will help you have it fully enabled.","i-lucide-server",{"title":142,"framework":16,"category":16,"description":16,"path":143,"stem":144,"children":145,"page":36},"Agents","\u002Fdocs\u002Fgetting-started\u002Fai","docs\u002F1.getting-started\u002F7.ai",[146,151,157],{"title":147,"path":148,"stem":149,"framework":16,"category":16,"description":150,"icon":140},"MCP Server","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fmcp","docs\u002F1.getting-started\u002F7.ai\u002F1.mcp","Use Nuxt UI components in your AI assistants with Model Context Protocol support.",{"title":152,"path":153,"stem":154,"framework":16,"category":16,"description":155,"icon":156},"LLMs.txt","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fllms-txt","docs\u002F1.getting-started\u002F7.ai\u002F2.llms-txt","How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt UI components, theming, and best practices.","i-lucide-bot",{"title":158,"path":159,"stem":160,"framework":16,"category":16,"description":161,"icon":162},"Skills","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fskills","docs\u002F1.getting-started\u002F7.ai\u002F3.skills","Install Nuxt UI skills to give AI coding agents deep knowledge of components, theming, and best practices.","i-lucide-sparkles",{"title":71,"framework":16,"category":16,"description":16,"icon":164,"path":165,"stem":166,"children":167,"page":36},"i-lucide-square-code","\u002Fdocs\u002Fcomponents","docs\u002F2.components",[168,174,180,186,192,197,202,207,212,217,222,228,233,238,243,248,253,258,264,269,274,279,284,289,295,300,305,311,316,321,326,332,337,342,347,352,357,362,367,373,378,383,388,393,399,405,410,415,420,425,430,435,440,445,450,455,460,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,587,592,597,602,607,612,617,622,627,632,637,642,647,652,657,662,667,672,677,682,687,692,697,702,707,712,717,722,727,732,737,742,747,752,757,762,767,772,777,782,787,791,796,801,806,811],{"title":169,"path":170,"stem":171,"framework":16,"category":172,"description":173},"Accordion","\u002Fdocs\u002Fcomponents\u002Faccordion","docs\u002F2.components\u002Faccordion","data","A stacked set of collapsible panels.",{"title":175,"path":176,"stem":177,"framework":16,"category":178,"description":179},"Alert","\u002Fdocs\u002Fcomponents\u002Falert","docs\u002F2.components\u002Falert","element","A callout to draw user's attention.",{"title":181,"path":182,"stem":183,"framework":16,"category":184,"description":185},"App","\u002Fdocs\u002Fcomponents\u002Fapp","docs\u002F2.components\u002Fapp","layout","Wraps your app to provide global configurations and more.",{"title":187,"path":188,"stem":189,"framework":16,"category":190,"description":191},"AuthForm","\u002Fdocs\u002Fcomponents\u002Fauth-form","docs\u002F2.components\u002Fauth-form","page","A customizable Form to create login, register or password reset forms.",{"title":193,"path":194,"stem":195,"framework":16,"category":178,"description":196},"Avatar","\u002Fdocs\u002Fcomponents\u002Favatar","docs\u002F2.components\u002Favatar","An img element with fallback and Nuxt Image support.",{"title":198,"path":199,"stem":200,"framework":16,"category":178,"description":201},"AvatarGroup","\u002Fdocs\u002Fcomponents\u002Favatar-group","docs\u002F2.components\u002Favatar-group","Stack multiple avatars in a group.",{"title":203,"path":204,"stem":205,"framework":16,"category":178,"description":206},"Badge","\u002Fdocs\u002Fcomponents\u002Fbadge","docs\u002F2.components\u002Fbadge","A short text to represent a status or a category.",{"title":208,"path":209,"stem":210,"framework":16,"category":178,"description":211},"Banner","\u002Fdocs\u002Fcomponents\u002Fbanner","docs\u002F2.components\u002Fbanner","Display a banner at the top of your website to inform users about important information.",{"title":213,"path":214,"stem":215,"framework":16,"category":190,"description":216},"BlogPost","\u002Fdocs\u002Fcomponents\u002Fblog-post","docs\u002F2.components\u002Fblog-post","A customizable article to display in a blog page.",{"title":218,"path":219,"stem":220,"framework":16,"category":190,"description":221},"BlogPosts","\u002Fdocs\u002Fcomponents\u002Fblog-posts","docs\u002F2.components\u002Fblog-posts","Display a list of blog posts in a responsive grid layout.",{"title":223,"path":224,"stem":225,"framework":16,"category":226,"description":227},"Breadcrumb","\u002Fdocs\u002Fcomponents\u002Fbreadcrumb","docs\u002F2.components\u002Fbreadcrumb","navigation","A hierarchy of links to navigate through a website.",{"title":229,"path":230,"stem":231,"framework":16,"category":178,"description":232},"Button","\u002Fdocs\u002Fcomponents\u002Fbutton","docs\u002F2.components\u002Fbutton","A button element that can act as a link or trigger an action.",{"title":234,"path":235,"stem":236,"framework":16,"category":178,"description":237},"Calendar","\u002Fdocs\u002Fcomponents\u002Fcalendar","docs\u002F2.components\u002Fcalendar","A calendar component for selecting single dates, multiple dates or date ranges.",{"title":239,"path":240,"stem":241,"framework":16,"category":178,"description":242},"Card","\u002Fdocs\u002Fcomponents\u002Fcard","docs\u002F2.components\u002Fcard","Display content in a card with a header, body and footer.",{"title":244,"path":245,"stem":246,"framework":16,"category":172,"description":247},"Carousel","\u002Fdocs\u002Fcomponents\u002Fcarousel","docs\u002F2.components\u002Fcarousel","A carousel with motion and swipe built using Embla.",{"title":249,"path":250,"stem":251,"framework":16,"category":190,"description":252},"ChangelogVersion","\u002Fdocs\u002Fcomponents\u002Fchangelog-version","docs\u002F2.components\u002Fchangelog-version","A customizable article to display in a changelog.",{"title":254,"path":255,"stem":256,"framework":16,"category":190,"description":257},"ChangelogVersions","\u002Fdocs\u002Fcomponents\u002Fchangelog-versions","docs\u002F2.components\u002Fchangelog-versions","Display a list of changelog versions in a timeline.",{"title":259,"path":260,"stem":261,"framework":16,"category":262,"description":263},"Chat","\u002Fdocs\u002Fcomponents\u002Fchat","docs\u002F2.components\u002Fchat","chat","Build AI chat interfaces with streaming, reasoning, and tool calling.",{"title":265,"path":266,"stem":267,"framework":16,"category":262,"description":268},"ChatMessage","\u002Fdocs\u002Fcomponents\u002Fchat-message","docs\u002F2.components\u002Fchat-message","Display a chat message with icon, avatar, and actions.",{"title":270,"path":271,"stem":272,"framework":16,"category":262,"description":273},"ChatMessages","\u002Fdocs\u002Fcomponents\u002Fchat-messages","docs\u002F2.components\u002Fchat-messages","Display a list of chat messages, designed to work seamlessly with Vercel AI SDK.",{"title":275,"path":276,"stem":277,"framework":16,"category":262,"description":278},"ChatPalette","\u002Fdocs\u002Fcomponents\u002Fchat-palette","docs\u002F2.components\u002Fchat-palette","A chat palette to create a chatbot interface inside an overlay.",{"title":280,"path":281,"stem":282,"framework":16,"category":262,"description":283},"ChatPrompt","\u002Fdocs\u002Fcomponents\u002Fchat-prompt","docs\u002F2.components\u002Fchat-prompt","An enhanced Textarea for submitting prompts in AI chat interfaces.",{"title":285,"path":286,"stem":287,"framework":16,"category":262,"description":288},"ChatPromptSubmit","\u002Fdocs\u002Fcomponents\u002Fchat-prompt-submit","docs\u002F2.components\u002Fchat-prompt-submit","A Button for submitting chat prompts with automatic status handling.",{"title":290,"path":291,"stem":292,"framework":16,"category":262,"description":293,"badge":294},"ChatReasoning","\u002Fdocs\u002Fcomponents\u002Fchat-reasoning","docs\u002F2.components\u002Fchat-reasoning","Display a collapsible AI reasoning or thinking process.","New",{"title":296,"path":297,"stem":298,"framework":16,"category":262,"description":299,"badge":294},"ChatShimmer","\u002Fdocs\u002Fcomponents\u002Fchat-shimmer","docs\u002F2.components\u002Fchat-shimmer","Display a text shimmer animation effect.",{"title":301,"path":302,"stem":303,"framework":16,"category":262,"description":304,"badge":294},"ChatTool","\u002Fdocs\u002Fcomponents\u002Fchat-tool","docs\u002F2.components\u002Fchat-tool","Display a collapsible AI tool invocation status.",{"title":306,"path":307,"stem":308,"framework":16,"category":309,"description":310},"Checkbox","\u002Fdocs\u002Fcomponents\u002Fcheckbox","docs\u002F2.components\u002Fcheckbox","form","An input element to toggle between checked and unchecked states.",{"title":312,"path":313,"stem":314,"framework":16,"category":309,"description":315},"CheckboxGroup","\u002Fdocs\u002Fcomponents\u002Fcheckbox-group","docs\u002F2.components\u002Fcheckbox-group","A set of checklist buttons to select multiple option from a list.",{"title":317,"path":318,"stem":319,"framework":16,"category":178,"description":320},"Chip","\u002Fdocs\u002Fcomponents\u002Fchip","docs\u002F2.components\u002Fchip","An indicator of a numeric value or a state.",{"title":322,"path":323,"stem":324,"framework":16,"category":178,"description":325},"Collapsible","\u002Fdocs\u002Fcomponents\u002Fcollapsible","docs\u002F2.components\u002Fcollapsible","A collapsible element to toggle visibility of its content.",{"title":327,"path":328,"stem":329,"framework":16,"category":330,"description":331},"ColorModeAvatar","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-avatar","docs\u002F2.components\u002Fcolor-mode-avatar","color-mode","An Avatar with a different source for light and dark mode.",{"title":333,"path":334,"stem":335,"framework":16,"category":330,"description":336},"ColorModeButton","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-button","docs\u002F2.components\u002Fcolor-mode-button","A Button to switch between light and dark mode.",{"title":338,"path":339,"stem":340,"framework":16,"category":330,"description":341},"ColorModeImage","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-image","docs\u002F2.components\u002Fcolor-mode-image","An image element with a different source for light and dark mode.",{"title":343,"path":344,"stem":345,"framework":16,"category":330,"description":346},"ColorModeSelect","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-select","docs\u002F2.components\u002Fcolor-mode-select","A Select to switch between system, dark & light mode.",{"title":348,"path":349,"stem":350,"framework":16,"category":330,"description":351},"ColorModeSwitch","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-switch","docs\u002F2.components\u002Fcolor-mode-switch","A switch to toggle between light and dark mode.",{"title":353,"path":354,"stem":355,"framework":16,"category":309,"description":356},"ColorPicker","\u002Fdocs\u002Fcomponents\u002Fcolor-picker","docs\u002F2.components\u002Fcolor-picker","A component to select a color.",{"title":358,"path":359,"stem":360,"framework":16,"category":226,"description":361},"CommandPalette","\u002Fdocs\u002Fcomponents\u002Fcommand-palette","docs\u002F2.components\u002Fcommand-palette","A command palette with full-text search powered by Fuse.js for efficient fuzzy matching.",{"title":363,"path":364,"stem":365,"framework":16,"category":184,"description":366},"Container","\u002Fdocs\u002Fcomponents\u002Fcontainer","docs\u002F2.components\u002Fcontainer","A container lets you center and constrain the width of your content.",{"title":368,"path":369,"stem":370,"framework":28,"category":371,"description":372},"ContentNavigation","\u002Fdocs\u002Fcomponents\u002Fcontent-navigation","docs\u002F2.components\u002Fcontent-navigation","content","An accordion-style navigation component for organizing page links.",{"title":374,"path":375,"stem":376,"framework":28,"category":371,"description":377},"ContentSearch","\u002Fdocs\u002Fcomponents\u002Fcontent-search","docs\u002F2.components\u002Fcontent-search","A ready to use CommandPalette to add to your documentation.",{"title":379,"path":380,"stem":381,"framework":28,"category":371,"description":382},"ContentSearchButton","\u002Fdocs\u002Fcomponents\u002Fcontent-search-button","docs\u002F2.components\u002Fcontent-search-button","A pre-styled Button to open the ContentSearch modal.",{"title":384,"path":385,"stem":386,"framework":28,"category":371,"description":387},"ContentSurround","\u002Fdocs\u002Fcomponents\u002Fcontent-surround","docs\u002F2.components\u002Fcontent-surround","A pair of prev and next links to navigate between pages.",{"title":389,"path":390,"stem":391,"framework":28,"category":371,"description":392},"ContentToc","\u002Fdocs\u002Fcomponents\u002Fcontent-toc","docs\u002F2.components\u002Fcontent-toc","A sticky Table of Contents with automatic active anchor link highlighting.",{"title":394,"path":395,"stem":396,"framework":16,"category":397,"description":398},"ContextMenu","\u002Fdocs\u002Fcomponents\u002Fcontext-menu","docs\u002F2.components\u002Fcontext-menu","overlay","A menu to display actions when right-clicking on an element.",{"title":400,"path":401,"stem":402,"framework":16,"category":403,"description":404},"DashboardGroup","\u002Fdocs\u002Fcomponents\u002Fdashboard-group","docs\u002F2.components\u002Fdashboard-group","dashboard","A fixed layout component that provides context for dashboard components with sidebar state management and persistence.",{"title":406,"path":407,"stem":408,"framework":16,"category":403,"description":409},"DashboardNavbar","\u002Fdocs\u002Fcomponents\u002Fdashboard-navbar","docs\u002F2.components\u002Fdashboard-navbar","A responsive navbar to display in a dashboard.",{"title":411,"path":412,"stem":413,"framework":16,"category":403,"description":414},"DashboardPanel","\u002Fdocs\u002Fcomponents\u002Fdashboard-panel","docs\u002F2.components\u002Fdashboard-panel","A resizable panel to display in a dashboard.",{"title":416,"path":417,"stem":418,"framework":16,"category":403,"description":419},"DashboardResizeHandle","\u002Fdocs\u002Fcomponents\u002Fdashboard-resize-handle","docs\u002F2.components\u002Fdashboard-resize-handle","A handle to resize a sidebar or panel.",{"title":421,"path":422,"stem":423,"framework":16,"category":403,"description":424},"DashboardSearch","\u002Fdocs\u002Fcomponents\u002Fdashboard-search","docs\u002F2.components\u002Fdashboard-search","A ready to use CommandPalette to add to your dashboard.",{"title":426,"path":427,"stem":428,"framework":16,"category":403,"description":429},"DashboardSearchButton","\u002Fdocs\u002Fcomponents\u002Fdashboard-search-button","docs\u002F2.components\u002Fdashboard-search-button","A pre-styled Button to open the DashboardSearch modal.",{"title":431,"path":432,"stem":433,"framework":16,"category":403,"description":434},"DashboardSidebar","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar","docs\u002F2.components\u002Fdashboard-sidebar","A resizable and collapsible sidebar to display in a dashboard.",{"title":436,"path":437,"stem":438,"framework":16,"category":403,"description":439},"DashboardSidebarCollapse","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar-collapse","docs\u002F2.components\u002Fdashboard-sidebar-collapse","A Button to collapse the sidebar on desktop.",{"title":441,"path":442,"stem":443,"framework":16,"category":403,"description":444},"DashboardSidebarToggle","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar-toggle","docs\u002F2.components\u002Fdashboard-sidebar-toggle","A Button to toggle the sidebar on mobile.",{"title":446,"path":447,"stem":448,"framework":16,"category":403,"description":449},"DashboardToolbar","\u002Fdocs\u002Fcomponents\u002Fdashboard-toolbar","docs\u002F2.components\u002Fdashboard-toolbar","A toolbar to display under the navbar in a dashboard.",{"title":451,"path":452,"stem":453,"framework":16,"category":397,"description":454},"Drawer","\u002Fdocs\u002Fcomponents\u002Fdrawer","docs\u002F2.components\u002Fdrawer","A drawer that smoothly slides in & out of the screen.",{"title":456,"path":457,"stem":458,"framework":16,"category":397,"description":459},"DropdownMenu","\u002Fdocs\u002Fcomponents\u002Fdropdown-menu","docs\u002F2.components\u002Fdropdown-menu","A menu to display actions when clicking on an element.",{"title":461,"path":462,"stem":463,"framework":16,"category":464,"description":465},"Editor","\u002Fdocs\u002Fcomponents\u002Feditor","docs\u002F2.components\u002Feditor","editor","A rich text editor component based on TipTap with support for markdown, HTML, and JSON content types.",{"title":467,"path":468,"stem":469,"framework":16,"category":464,"description":470},"EditorDragHandle","\u002Fdocs\u002Fcomponents\u002Feditor-drag-handle","docs\u002F2.components\u002Feditor-drag-handle","A draggable handle for reordering and selecting blocks in the editor.",{"title":472,"path":473,"stem":474,"framework":16,"category":464,"description":475},"EditorEmojiMenu","\u002Fdocs\u002Fcomponents\u002Feditor-emoji-menu","docs\u002F2.components\u002Feditor-emoji-menu","An emoji picker menu that displays emoji suggestions when typing the : character in the editor.",{"title":477,"path":478,"stem":479,"framework":16,"category":464,"description":480},"EditorMentionMenu","\u002Fdocs\u002Fcomponents\u002Feditor-mention-menu","docs\u002F2.components\u002Feditor-mention-menu","A mention menu that displays user suggestions when typing a trigger character in the editor.",{"title":482,"path":483,"stem":484,"framework":16,"category":464,"description":485},"EditorSuggestionMenu","\u002Fdocs\u002Fcomponents\u002Feditor-suggestion-menu","docs\u002F2.components\u002Feditor-suggestion-menu","A command menu that displays formatting and action suggestions when typing the \u002F character in the editor.",{"title":487,"path":488,"stem":489,"framework":16,"category":464,"description":490},"EditorToolbar","\u002Fdocs\u002Fcomponents\u002Feditor-toolbar","docs\u002F2.components\u002Feditor-toolbar","A customizable toolbar for editor actions that can be displayed as fixed, bubble, or floating menu.",{"title":492,"path":493,"stem":494,"framework":16,"category":172,"description":495},"Empty","\u002Fdocs\u002Fcomponents\u002Fempty","docs\u002F2.components\u002Fempty","A component to display an empty state.",{"title":497,"path":498,"stem":499,"framework":16,"category":184,"description":500},"Error","\u002Fdocs\u002Fcomponents\u002Ferror","docs\u002F2.components\u002Ferror","A pre-built error component with NuxtError support.",{"title":502,"path":503,"stem":504,"framework":16,"category":178,"description":505},"FieldGroup","\u002Fdocs\u002Fcomponents\u002Ffield-group","docs\u002F2.components\u002Ffield-group","Group multiple button-like elements together.",{"title":507,"path":508,"stem":509,"framework":16,"category":309,"description":510},"FileUpload","\u002Fdocs\u002Fcomponents\u002Ffile-upload","docs\u002F2.components\u002Ffile-upload","An input element to upload files.",{"title":512,"path":513,"stem":514,"framework":16,"category":184,"description":515},"Footer","\u002Fdocs\u002Fcomponents\u002Ffooter","docs\u002F2.components\u002Ffooter","A responsive footer component.",{"title":517,"path":518,"stem":519,"framework":16,"category":226,"description":520},"FooterColumns","\u002Fdocs\u002Fcomponents\u002Ffooter-columns","docs\u002F2.components\u002Ffooter-columns","A list of links as columns to display in your Footer.",{"title":522,"path":523,"stem":524,"framework":16,"category":309,"description":525},"Form","\u002Fdocs\u002Fcomponents\u002Fform","docs\u002F2.components\u002Fform","A form component with built-in validation and submission handling.",{"title":527,"path":528,"stem":529,"framework":16,"category":309,"description":530},"FormField","\u002Fdocs\u002Fcomponents\u002Fform-field","docs\u002F2.components\u002Fform-field","A wrapper for form elements that provides validation and error handling.",{"title":532,"path":533,"stem":534,"framework":16,"category":184,"description":535},"Header","\u002Fdocs\u002Fcomponents\u002Fheader","docs\u002F2.components\u002Fheader","A responsive header component.",{"title":537,"path":538,"stem":539,"framework":16,"category":178,"description":540},"Icon","\u002Fdocs\u002Fcomponents\u002Ficon","docs\u002F2.components\u002Ficon","A component to display any icon from Iconify or another component.",{"title":542,"path":543,"stem":544,"framework":16,"category":309,"description":545},"Input","\u002Fdocs\u002Fcomponents\u002Finput","docs\u002F2.components\u002Finput","An input element to enter text.",{"title":547,"path":548,"stem":549,"framework":16,"category":309,"description":550},"InputDate","\u002Fdocs\u002Fcomponents\u002Finput-date","docs\u002F2.components\u002Finput-date","An input component for date selection.",{"title":552,"path":553,"stem":554,"framework":16,"category":309,"description":555},"InputMenu","\u002Fdocs\u002Fcomponents\u002Finput-menu","docs\u002F2.components\u002Finput-menu","An autocomplete input with real-time suggestions.",{"title":557,"path":558,"stem":559,"framework":16,"category":309,"description":560},"InputNumber","\u002Fdocs\u002Fcomponents\u002Finput-number","docs\u002F2.components\u002Finput-number","An input for numerical values with a customizable range.",{"title":562,"path":563,"stem":564,"framework":16,"category":309,"description":565},"InputTags","\u002Fdocs\u002Fcomponents\u002Finput-tags","docs\u002F2.components\u002Finput-tags","An input element that displays interactive tags.",{"title":567,"path":568,"stem":569,"framework":16,"category":309,"description":570},"InputTime","\u002Fdocs\u002Fcomponents\u002Finput-time","docs\u002F2.components\u002Finput-time","An input for selecting a time.",{"title":572,"path":573,"stem":574,"framework":16,"category":178,"description":575},"Kbd","\u002Fdocs\u002Fcomponents\u002Fkbd","docs\u002F2.components\u002Fkbd","A kbd element to display a keyboard key.",{"title":577,"path":578,"stem":579,"framework":16,"category":226,"description":580},"Link","\u002Fdocs\u002Fcomponents\u002Flink","docs\u002F2.components\u002Flink","A wrapper around \u003CNuxtLink> with extra props.",{"title":582,"path":583,"stem":584,"framework":16,"category":585,"description":586},"LocaleSelect","\u002Fdocs\u002Fcomponents\u002Flocale-select","docs\u002F2.components\u002Flocale-select","i18n","A Select to switch between locales.",{"title":588,"path":589,"stem":590,"framework":16,"category":184,"description":591},"Main","\u002Fdocs\u002Fcomponents\u002Fmain","docs\u002F2.components\u002Fmain","A main element that fills the available viewport height.",{"title":593,"path":594,"stem":595,"framework":16,"category":172,"description":596},"Marquee","\u002Fdocs\u002Fcomponents\u002Fmarquee","docs\u002F2.components\u002Fmarquee","A component to create infinite scrolling content.",{"title":598,"path":599,"stem":600,"framework":16,"category":397,"description":601},"Modal","\u002Fdocs\u002Fcomponents\u002Fmodal","docs\u002F2.components\u002Fmodal","A dialog window that can be used to display a message or request user input.",{"title":603,"path":604,"stem":605,"framework":16,"category":226,"description":606},"NavigationMenu","\u002Fdocs\u002Fcomponents\u002Fnavigation-menu","docs\u002F2.components\u002Fnavigation-menu","A list of links that can be displayed horizontally or vertically.",{"title":608,"path":609,"stem":610,"framework":16,"category":190,"description":611},"Page","\u002Fdocs\u002Fcomponents\u002Fpage","docs\u002F2.components\u002Fpage","A grid layout for your pages with left and right columns.",{"title":613,"path":614,"stem":615,"framework":16,"category":190,"description":616},"PageAnchors","\u002Fdocs\u002Fcomponents\u002Fpage-anchors","docs\u002F2.components\u002Fpage-anchors","A list of anchors to be displayed in the page.",{"title":618,"path":619,"stem":620,"framework":16,"category":190,"description":621},"PageAside","\u002Fdocs\u002Fcomponents\u002Fpage-aside","docs\u002F2.components\u002Fpage-aside","A sticky aside to display your page navigation.",{"title":623,"path":624,"stem":625,"framework":16,"category":190,"description":626},"PageBody","\u002Fdocs\u002Fcomponents\u002Fpage-body","docs\u002F2.components\u002Fpage-body","The main content of your page.",{"title":628,"path":629,"stem":630,"framework":16,"category":190,"description":631},"PageCard","\u002Fdocs\u002Fcomponents\u002Fpage-card","docs\u002F2.components\u002Fpage-card","A pre-styled card component that displays a title, description and optional link.",{"title":633,"path":634,"stem":635,"framework":16,"category":190,"description":636},"PageColumns","\u002Fdocs\u002Fcomponents\u002Fpage-columns","docs\u002F2.components\u002Fpage-columns","A responsive multi-column layout system for organizing content side-by-side.",{"title":638,"path":639,"stem":640,"framework":16,"category":190,"description":641},"PageCTA","\u002Fdocs\u002Fcomponents\u002Fpage-cta","docs\u002F2.components\u002Fpage-cta","A call to action section to display in your pages.",{"title":643,"path":644,"stem":645,"framework":16,"category":190,"description":646},"PageFeature","\u002Fdocs\u002Fcomponents\u002Fpage-feature","docs\u002F2.components\u002Fpage-feature","A component to showcase key features of your application.",{"title":648,"path":649,"stem":650,"framework":16,"category":190,"description":651},"PageGrid","\u002Fdocs\u002Fcomponents\u002Fpage-grid","docs\u002F2.components\u002Fpage-grid","A responsive grid system for displaying content in a flexible layout.",{"title":653,"path":654,"stem":655,"framework":16,"category":190,"description":656},"PageHeader","\u002Fdocs\u002Fcomponents\u002Fpage-header","docs\u002F2.components\u002Fpage-header","A responsive header for your pages.",{"title":658,"path":659,"stem":660,"framework":16,"category":190,"description":661},"PageHero","\u002Fdocs\u002Fcomponents\u002Fpage-hero","docs\u002F2.components\u002Fpage-hero","A responsive hero for your pages.",{"title":663,"path":664,"stem":665,"framework":16,"category":190,"description":666},"PageLinks","\u002Fdocs\u002Fcomponents\u002Fpage-links","docs\u002F2.components\u002Fpage-links","A list of links to be displayed in the page.",{"title":668,"path":669,"stem":670,"framework":16,"category":190,"description":671},"PageList","\u002Fdocs\u002Fcomponents\u002Fpage-list","docs\u002F2.components\u002Fpage-list","A vertical list layout for displaying content in a stacked format.",{"title":673,"path":674,"stem":675,"framework":16,"category":190,"description":676},"PageLogos","\u002Fdocs\u002Fcomponents\u002Fpage-logos","docs\u002F2.components\u002Fpage-logos","A list of logos or images to display on your pages.",{"title":678,"path":679,"stem":680,"framework":16,"category":190,"description":681},"PageSection","\u002Fdocs\u002Fcomponents\u002Fpage-section","docs\u002F2.components\u002Fpage-section","A responsive section for your pages.",{"title":683,"path":684,"stem":685,"framework":16,"category":226,"description":686},"Pagination","\u002Fdocs\u002Fcomponents\u002Fpagination","docs\u002F2.components\u002Fpagination","A list of buttons or links to navigate through pages.",{"title":688,"path":689,"stem":690,"framework":16,"category":309,"description":691},"PinInput","\u002Fdocs\u002Fcomponents\u002Fpin-input","docs\u002F2.components\u002Fpin-input","An input element to enter a pin.",{"title":693,"path":694,"stem":695,"framework":16,"category":397,"description":696},"Popover","\u002Fdocs\u002Fcomponents\u002Fpopover","docs\u002F2.components\u002Fpopover","A non-modal dialog that floats around a trigger element.",{"title":698,"path":699,"stem":700,"framework":16,"category":190,"description":701},"PricingPlan","\u002Fdocs\u002Fcomponents\u002Fpricing-plan","docs\u002F2.components\u002Fpricing-plan","A customizable pricing plan to display in a pricing page.",{"title":703,"path":704,"stem":705,"framework":16,"category":190,"description":706},"PricingPlans","\u002Fdocs\u002Fcomponents\u002Fpricing-plans","docs\u002F2.components\u002Fpricing-plans","Display a list of pricing plans in a responsive grid layout.",{"title":708,"path":709,"stem":710,"framework":16,"category":190,"description":711},"PricingTable","\u002Fdocs\u002Fcomponents\u002Fpricing-table","docs\u002F2.components\u002Fpricing-table","A responsive pricing table component that displays tiered pricing plans with feature comparisons.",{"title":713,"path":714,"stem":715,"framework":16,"category":178,"description":716},"Progress","\u002Fdocs\u002Fcomponents\u002Fprogress","docs\u002F2.components\u002Fprogress","An indicator showing the progress of a task.",{"title":718,"path":719,"stem":720,"framework":16,"category":309,"description":721},"RadioGroup","\u002Fdocs\u002Fcomponents\u002Fradio-group","docs\u002F2.components\u002Fradio-group","A set of radio buttons to select a single option from a list.",{"title":723,"path":724,"stem":725,"framework":16,"category":172,"description":726},"ScrollArea","\u002Fdocs\u002Fcomponents\u002Fscroll-area","docs\u002F2.components\u002Fscroll-area","A flexible scroll container with virtualization support.",{"title":728,"path":729,"stem":730,"framework":16,"category":309,"description":731},"Select","\u002Fdocs\u002Fcomponents\u002Fselect","docs\u002F2.components\u002Fselect","A select element to choose from a list of options.",{"title":733,"path":734,"stem":735,"framework":16,"category":309,"description":736},"SelectMenu","\u002Fdocs\u002Fcomponents\u002Fselect-menu","docs\u002F2.components\u002Fselect-menu","An advanced searchable select element.",{"title":738,"path":739,"stem":740,"framework":16,"category":178,"description":741},"Separator","\u002Fdocs\u002Fcomponents\u002Fseparator","docs\u002F2.components\u002Fseparator","Separates content horizontally or vertically.",{"title":743,"path":744,"stem":745,"framework":16,"category":184,"description":746,"badge":294},"Sidebar","\u002Fdocs\u002Fcomponents\u002Fsidebar","docs\u002F2.components\u002Fsidebar","A collapsible sidebar with multiple visual variants.",{"title":748,"path":749,"stem":750,"framework":16,"category":178,"description":751},"Skeleton","\u002Fdocs\u002Fcomponents\u002Fskeleton","docs\u002F2.components\u002Fskeleton","A placeholder to show while content is loading.",{"title":753,"path":754,"stem":755,"framework":16,"category":397,"description":756},"Slideover","\u002Fdocs\u002Fcomponents\u002Fslideover","docs\u002F2.components\u002Fslideover","A dialog that slides in from any side of the screen.",{"title":758,"path":759,"stem":760,"framework":16,"category":309,"description":761},"Slider","\u002Fdocs\u002Fcomponents\u002Fslider","docs\u002F2.components\u002Fslider","An input to select a numeric value within a range.",{"title":763,"path":764,"stem":765,"framework":16,"category":226,"description":766},"Stepper","\u002Fdocs\u002Fcomponents\u002Fstepper","docs\u002F2.components\u002Fstepper","A set of steps that are used to indicate progress through a multi-step process.",{"title":768,"path":769,"stem":770,"framework":16,"category":309,"description":771},"Switch","\u002Fdocs\u002Fcomponents\u002Fswitch","docs\u002F2.components\u002Fswitch","A control that toggles between two states.",{"title":773,"path":774,"stem":775,"framework":16,"category":172,"description":776},"Table","\u002Fdocs\u002Fcomponents\u002Ftable","docs\u002F2.components\u002Ftable","A responsive table element to display data in rows and columns.",{"title":778,"path":779,"stem":780,"framework":16,"category":226,"description":781},"Tabs","\u002Fdocs\u002Fcomponents\u002Ftabs","docs\u002F2.components\u002Ftabs","A set of tab panels that are displayed one at a time.",{"title":783,"path":784,"stem":785,"framework":16,"category":309,"description":786},"Textarea","\u002Fdocs\u002Fcomponents\u002Ftextarea","docs\u002F2.components\u002Ftextarea","A textarea element to input multi-line text.",{"title":54,"path":788,"stem":789,"framework":16,"category":184,"description":790},"\u002Fdocs\u002Fcomponents\u002Ftheme","docs\u002F2.components\u002Ftheme","A headless component to theme child components.",{"title":792,"path":793,"stem":794,"framework":16,"category":172,"description":795},"Timeline","\u002Fdocs\u002Fcomponents\u002Ftimeline","docs\u002F2.components\u002Ftimeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":797,"path":798,"stem":799,"framework":16,"category":397,"description":800},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002F2.components\u002Ftoast","A succinct message to provide information or feedback to the user.",{"title":802,"path":803,"stem":804,"framework":16,"category":397,"description":805},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002F2.components\u002Ftooltip","A popup that reveals information when hovering over an element.",{"title":807,"path":808,"stem":809,"framework":16,"category":172,"description":810},"Tree","\u002Fdocs\u002Fcomponents\u002Ftree","docs\u002F2.components\u002Ftree","A tree view component to display and interact with hierarchical data structures.",{"title":812,"path":813,"stem":814,"framework":16,"category":172,"description":815},"User","\u002Fdocs\u002Fcomponents\u002Fuser","docs\u002F2.components\u002Fuser","Display user information with name, description and avatar.",{"title":817,"framework":16,"category":16,"description":16,"icon":818,"path":819,"stem":820,"children":821,"page":36},"Composables","i-lucide-square-function","\u002Fdocs\u002Fcomposables","docs\u002F3.composables",[822,827,832,837,842,847,852],{"title":823,"path":824,"stem":825,"framework":16,"category":16,"description":826},"defineLocale","\u002Fdocs\u002Fcomposables\u002Fdefine-locale","docs\u002F3.composables\u002Fdefine-locale","A utility to create a custom locale for your app.",{"title":828,"path":829,"stem":830,"framework":16,"category":16,"description":831},"defineShortcuts","\u002Fdocs\u002Fcomposables\u002Fdefine-shortcuts","docs\u002F3.composables\u002Fdefine-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":833,"path":834,"stem":835,"framework":16,"category":16,"description":836},"extendLocale","\u002Fdocs\u002Fcomposables\u002Fextend-locale","docs\u002F3.composables\u002Fextend-locale","A utility to extend an existing locale with custom translations.",{"title":838,"path":839,"stem":840,"framework":16,"category":16,"description":841},"extractShortcuts","\u002Fdocs\u002Fcomposables\u002Fextract-shortcuts","docs\u002F3.composables\u002Fextract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":843,"path":844,"stem":845,"framework":16,"category":16,"description":846},"useOverlay","\u002Fdocs\u002Fcomposables\u002Fuse-overlay","docs\u002F3.composables\u002Fuse-overlay","A composable to programmatically control overlays.",{"title":848,"path":849,"stem":850,"framework":16,"category":16,"description":851,"badge":294},"useScrollShadow","\u002Fdocs\u002Fcomposables\u002Fuse-scroll-shadow","docs\u002F3.composables\u002Fuse-scroll-shadow","A composable to apply scroll shadow effects on any scrollable element.",{"title":853,"path":854,"stem":855,"framework":16,"category":16,"description":856},"useToast","\u002Fdocs\u002Fcomposables\u002Fuse-toast","docs\u002F3.composables\u002Fuse-toast","A composable to display toast notifications in your app.",{"title":858,"path":859,"stem":860,"children":861,"framework":16,"category":16,"description":16,"icon":963},"Typography","\u002Fdocs\u002Ftypography","docs\u002F4.typography\u002F1.index",[862,864,869,874,879,884,889,893,898,902,907,912,917,922,927,931,936,940,944,948,954,959],{"title":15,"path":859,"stem":860,"framework":16,"category":16,"description":863},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":865,"path":866,"stem":867,"framework":16,"category":16,"description":868},"Headers and text","\u002Fdocs\u002Ftypography\u002Fheaders-and-text","docs\u002F4.typography\u002F2.headers-and-text","Beautifully styled headings, paragraphs, text formatting, and links for optimal readability.",{"title":870,"path":871,"stem":872,"framework":16,"category":16,"description":873},"Lists and tables","\u002Fdocs\u002Ftypography\u002Flists-and-tables","docs\u002F4.typography\u002F3.lists-and-tables","Organize information with styled lists and responsive tables for clear, consistent readability.",{"title":875,"path":876,"stem":877,"framework":16,"category":16,"description":878},"Images and embeds","\u002Fdocs\u002Ftypography\u002Fimages-and-embeds","docs\u002F4.typography\u002F4.images-and-embeds","Responsive images, videos, and rich media embeds to enhance and illustrate your documentation.",{"title":880,"path":881,"stem":882,"framework":16,"category":16,"description":883},"Code","\u002Fdocs\u002Ftypography\u002Fcode","docs\u002F4.typography\u002F5.code","Display inline code and syntax-highlighted code blocks with copy-to-clipboard support.",{"title":169,"path":885,"stem":886,"framework":16,"category":887,"description":888},"\u002Fdocs\u002Ftypography\u002Faccordion","docs\u002F4.typography\u002Faccordion","components","Create expandable content sections for better information organization.",{"title":203,"path":890,"stem":891,"framework":16,"category":887,"description":892},"\u002Fdocs\u002Ftypography\u002Fbadge","docs\u002F4.typography\u002Fbadge","Display version numbers, status labels, and tags within your content.",{"title":894,"path":895,"stem":896,"framework":16,"category":887,"description":897},"Callout","\u002Fdocs\u002Ftypography\u002Fcallout","docs\u002F4.typography\u002Fcallout","Highlight important information with eye-catching colored boxes and icons.",{"title":239,"path":899,"stem":900,"framework":16,"category":887,"description":901},"\u002Fdocs\u002Ftypography\u002Fcard","docs\u002F4.typography\u002Fcard","Create highlighted content blocks with optional links and navigation.",{"title":903,"path":904,"stem":905,"framework":16,"category":887,"description":906},"CardGroup","\u002Fdocs\u002Ftypography\u002Fcard-group","docs\u002F4.typography\u002Fcard-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":908,"path":909,"stem":910,"framework":16,"category":887,"description":911},"CodeCollapse","\u002Fdocs\u002Ftypography\u002Fcode-collapse","docs\u002F4.typography\u002Fcode-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":913,"path":914,"stem":915,"framework":16,"category":887,"description":916},"CodeGroup","\u002Fdocs\u002Ftypography\u002Fcode-group","docs\u002F4.typography\u002Fcode-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":918,"path":919,"stem":920,"framework":16,"category":887,"description":921},"CodePreview","\u002Fdocs\u002Ftypography\u002Fcode-preview","docs\u002F4.typography\u002Fcode-preview","Display code examples with a preview and their source for clearer documentation.",{"title":923,"path":924,"stem":925,"framework":16,"category":887,"description":926},"CodeTree","\u002Fdocs\u002Ftypography\u002Fcode-tree","docs\u002F4.typography\u002Fcode-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":322,"path":928,"stem":929,"framework":16,"category":887,"description":930},"\u002Fdocs\u002Ftypography\u002Fcollapsible","docs\u002F4.typography\u002Fcollapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":932,"path":933,"stem":934,"framework":16,"category":887,"description":935},"Field","\u002Fdocs\u002Ftypography\u002Ffield","docs\u002F4.typography\u002Ffield","Document API parameters, props, and configuration options clearly.",{"title":502,"path":937,"stem":938,"framework":16,"category":887,"description":939},"\u002Fdocs\u002Ftypography\u002Ffield-group","docs\u002F4.typography\u002Ffield-group","Group related fields together for comprehensive API documentation.",{"title":537,"path":941,"stem":942,"framework":16,"category":887,"description":943},"\u002Fdocs\u002Ftypography\u002Ficon","docs\u002F4.typography\u002Ficon","Display icons from popular icon libraries to enhance your content.",{"title":572,"path":945,"stem":946,"framework":16,"category":887,"description":947},"\u002Fdocs\u002Ftypography\u002Fkbd","docs\u002F4.typography\u002Fkbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":949,"path":950,"stem":951,"framework":16,"category":887,"description":952,"badge":953},"Prompt","\u002Fdocs\u002Ftypography\u002Fprompt","docs\u002F4.typography\u002Fprompt","Display pre-built AI prompts with one-click copy and IDE integration.","Soon",{"title":955,"path":956,"stem":957,"framework":16,"category":887,"description":958},"Steps","\u002Fdocs\u002Ftypography\u002Fsteps","docs\u002F4.typography\u002Fsteps","Transform headings into numbered step-by-step guides and tutorials.",{"title":778,"path":960,"stem":961,"framework":16,"category":887,"description":962},"\u002Fdocs\u002Ftypography\u002Ftabs","docs\u002F4.typography\u002Ftabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":965,"title":966,"body":967,"category":16,"description":46,"extension":4245,"framework":16,"index":36,"links":4246,"meta":4250,"navigation":4251,"path":44,"seo":4252,"stem":45,"__hash__":4253},"docs\u002Fdocs\u002F1.getting-started\u002F3.migration\u002F1.v4.md","Migration to v4",{"type":968,"value":969,"toc":4230},"minimark",[970,984,994,997,1002,1007,1025,1142,1346,1649,1658,1756,1765,1784,1788,1793,1855,1859,1862,1866,1878,1931,1935,1944,1971,1975,1985,2036,2054,2058,2079,2105,2124,2143,2158,2162,2167,2206,2328,2332,2343,2356,2359,2396,2400,2414,2440,2600,2611,2729,2740,2832,2837,2898,2920,3071,4205,4215,4226],[971,972,973,974,978,979,983],"p",{},"Nuxt UI v4 marks a major milestone: ",[975,976,977],"strong",{},"Nuxt UI and Nuxt UI Pro are now unified into a single, fully open-source and free library",". You now have access to 125+ production-ready components, all available in the ",[980,981,982],"code",{},"@nuxt\u002Fui"," package.",[985,986,987],"note",{},[971,988,989,990,993],{},"Nuxt UI v4 requires ",[975,991,992],{},"Nuxt 4"," due to some dependencies. Make sure to upgrade to Nuxt 4 before migrating to Nuxt UI v4.",[971,995,996],{},"This guide provides step-by-step instructions to migrate your application from v3 to v4.",[998,999,1001],"h2",{"id":1000},"migrate-your-project","Migrate your project",[1003,1004,1006],"h3",{"id":1005},"from-nuxt-ui-pro","From Nuxt UI Pro",[1008,1009,1010],"ol",{},[1011,1012,1013,1014,1017,1018,1020,1021,1024],"li",{},"Replace ",[980,1015,1016],{},"@nuxt\u002Fui-pro"," with ",[980,1019,982],{}," in your ",[980,1022,1023],{},"package.json",":",[1026,1027,1029,1068,1092,1118],"code-group",{"sync":1028},"pm",[1030,1031,1037],"pre",{"className":1032,"code":1033,"filename":1034,"language":1035,"meta":1036,"style":1036},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm remove @nuxt\u002Fui-pro\npnpm add @nuxt\u002Fui tailwindcss\n","pnpm","bash","",[980,1038,1039,1054],{"__ignoreMap":1036},[1040,1041,1044,1047,1051],"span",{"class":1042,"line":1043},"line",1,[1040,1045,1034],{"class":1046},"sBMFI",[1040,1048,1050],{"class":1049},"sfazB"," remove",[1040,1052,1053],{"class":1049}," @nuxt\u002Fui-pro\n",[1040,1055,1057,1059,1062,1065],{"class":1042,"line":1056},2,[1040,1058,1034],{"class":1046},[1040,1060,1061],{"class":1049}," add",[1040,1063,1064],{"class":1049}," @nuxt\u002Fui",[1040,1066,1067],{"class":1049}," tailwindcss\n",[1030,1069,1072],{"className":1032,"code":1070,"filename":1071,"language":1035,"meta":1036,"style":1036},"yarn remove @nuxt\u002Fui-pro\nyarn add @nuxt\u002Fui tailwindcss\n","yarn",[980,1073,1074,1082],{"__ignoreMap":1036},[1040,1075,1076,1078,1080],{"class":1042,"line":1043},[1040,1077,1071],{"class":1046},[1040,1079,1050],{"class":1049},[1040,1081,1053],{"class":1049},[1040,1083,1084,1086,1088,1090],{"class":1042,"line":1056},[1040,1085,1071],{"class":1046},[1040,1087,1061],{"class":1049},[1040,1089,1064],{"class":1049},[1040,1091,1067],{"class":1049},[1030,1093,1096],{"className":1032,"code":1094,"filename":1095,"language":1035,"meta":1036,"style":1036},"npm uninstall @nuxt\u002Fui-pro\nnpm install @nuxt\u002Fui tailwindcss\n","npm",[980,1097,1098,1107],{"__ignoreMap":1036},[1040,1099,1100,1102,1105],{"class":1042,"line":1043},[1040,1101,1095],{"class":1046},[1040,1103,1104],{"class":1049}," uninstall",[1040,1106,1053],{"class":1049},[1040,1108,1109,1111,1114,1116],{"class":1042,"line":1056},[1040,1110,1095],{"class":1046},[1040,1112,1113],{"class":1049}," install",[1040,1115,1064],{"class":1049},[1040,1117,1067],{"class":1049},[1030,1119,1122],{"className":1032,"code":1120,"filename":1121,"language":1035,"meta":1036,"style":1036},"bun remove @nuxt\u002Fui-pro\nbun add @nuxt\u002Fui tailwindcss\n","bun",[980,1123,1124,1132],{"__ignoreMap":1036},[1040,1125,1126,1128,1130],{"class":1042,"line":1043},[1040,1127,1121],{"class":1046},[1040,1129,1050],{"class":1049},[1040,1131,1053],{"class":1049},[1040,1133,1134,1136,1138,1140],{"class":1042,"line":1056},[1040,1135,1121],{"class":1046},[1040,1137,1061],{"class":1049},[1040,1139,1064],{"class":1049},[1040,1141,1067],{"class":1049},[1143,1144,1145,1212],"framework-only",{},[1146,1147,1148],"template",{"v-slot:nuxt":1036},[1149,1150,1151,1162],"div",{},[1008,1152,1153],{"start":1056},[1011,1154,1013,1155,1017,1157,1020,1159,1024],{},[980,1156,1016],{},[980,1158,982],{},[980,1160,1161],{},"nuxt.config.ts",[1030,1163,1167],{"className":1164,"code":1165,"filename":1161,"language":1166,"meta":1036,"style":1036},"language-diff shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: [\n-   '@nuxt\u002Fui-pro',\n+   '@nuxt\u002Fui'\n  ]\n})\n","diff",[980,1168,1169,1175,1180,1191,1200,1206],{"__ignoreMap":1036},[1040,1170,1171],{"class":1042,"line":1043},[1040,1172,1174],{"class":1173},"sTEyZ","export default defineNuxtConfig({\n",[1040,1176,1177],{"class":1042,"line":1056},[1040,1178,1179],{"class":1173},"  modules: [\n",[1040,1181,1183,1187],{"class":1042,"line":1182},3,[1040,1184,1186],{"class":1185},"sMK4o","-",[1040,1188,1190],{"class":1189},"swJcz","   '@nuxt\u002Fui-pro',\n",[1040,1192,1194,1197],{"class":1042,"line":1193},4,[1040,1195,1196],{"class":1185},"+",[1040,1198,1199],{"class":1049},"   '@nuxt\u002Fui'\n",[1040,1201,1203],{"class":1042,"line":1202},5,[1040,1204,1205],{"class":1173},"  ]\n",[1040,1207,1209],{"class":1042,"line":1208},6,[1040,1210,1211],{"class":1173},"})\n",[1146,1213,1214],{"v-slot:vue":1036},[1149,1215,1216,1227],{},[1008,1217,1218],{"start":1056},[1011,1219,1013,1220,1017,1222,1020,1224,1024],{},[980,1221,1016],{},[980,1223,982],{},[980,1225,1226],{},"vite.config.ts",[1030,1228,1230],{"className":1164,"code":1229,"filename":1226,"language":1166,"meta":1036,"style":1036},"import { defineConfig } from 'vite'\nimport vue from '@vitejs\u002Fplugin-vue'\n- import uiPro from '@nuxt\u002Fui-pro\u002Fvite'\n+ import ui from '@nuxt\u002Fui\u002Fvite'\n\nexport default defineConfig({\n  plugins: [\n    vue(),\n-   uiPro({\n+   ui({\n      ui: {\n        colors: {\n          primary: 'green',\n          neutral: 'slate'\n        }\n      }\n    })\n  ]\n})\n",[980,1231,1232,1237,1242,1249,1256,1261,1266,1272,1278,1286,1294,1300,1306,1312,1318,1324,1330,1336,1341],{"__ignoreMap":1036},[1040,1233,1234],{"class":1042,"line":1043},[1040,1235,1236],{"class":1173},"import { defineConfig } from 'vite'\n",[1040,1238,1239],{"class":1042,"line":1056},[1040,1240,1241],{"class":1173},"import vue from '@vitejs\u002Fplugin-vue'\n",[1040,1243,1244,1246],{"class":1042,"line":1182},[1040,1245,1186],{"class":1185},[1040,1247,1248],{"class":1189}," import uiPro from '@nuxt\u002Fui-pro\u002Fvite'\n",[1040,1250,1251,1253],{"class":1042,"line":1193},[1040,1252,1196],{"class":1185},[1040,1254,1255],{"class":1049}," import ui from '@nuxt\u002Fui\u002Fvite'\n",[1040,1257,1258],{"class":1042,"line":1202},[1040,1259,1260],{"emptyLinePlaceholder":21},"\n",[1040,1262,1263],{"class":1042,"line":1208},[1040,1264,1265],{"class":1173},"export default defineConfig({\n",[1040,1267,1269],{"class":1042,"line":1268},7,[1040,1270,1271],{"class":1173},"  plugins: [\n",[1040,1273,1275],{"class":1042,"line":1274},8,[1040,1276,1277],{"class":1173},"    vue(),\n",[1040,1279,1281,1283],{"class":1042,"line":1280},9,[1040,1282,1186],{"class":1185},[1040,1284,1285],{"class":1189},"   uiPro({\n",[1040,1287,1289,1291],{"class":1042,"line":1288},10,[1040,1290,1196],{"class":1185},[1040,1292,1293],{"class":1049},"   ui({\n",[1040,1295,1297],{"class":1042,"line":1296},11,[1040,1298,1299],{"class":1173},"      ui: {\n",[1040,1301,1303],{"class":1042,"line":1302},12,[1040,1304,1305],{"class":1173},"        colors: {\n",[1040,1307,1309],{"class":1042,"line":1308},13,[1040,1310,1311],{"class":1173},"          primary: 'green',\n",[1040,1313,1315],{"class":1042,"line":1314},14,[1040,1316,1317],{"class":1173},"          neutral: 'slate'\n",[1040,1319,1321],{"class":1042,"line":1320},15,[1040,1322,1323],{"class":1173},"        }\n",[1040,1325,1327],{"class":1042,"line":1326},16,[1040,1328,1329],{"class":1173},"      }\n",[1040,1331,1333],{"class":1042,"line":1332},17,[1040,1334,1335],{"class":1173},"    })\n",[1040,1337,1339],{"class":1042,"line":1338},18,[1040,1340,1205],{"class":1173},[1040,1342,1344],{"class":1042,"line":1343},19,[1040,1345,1211],{"class":1173},[1143,1347,1348,1492],{},[1146,1349,1350],{"v-slot:nuxt":1036},[1149,1351,1352,1367],{},[1008,1353,1354],{"start":1182},[1011,1355,1356,1357,1360,1361,1020,1364,1024],{},"Use the ",[980,1358,1359],{},"ui"," key instead of ",[980,1362,1363],{},"uiPro",[980,1365,1366],{},"app.config.ts",[1030,1368,1371],{"className":1164,"code":1369,"filename":1370,"language":1166,"meta":1036,"style":1036},"export default defineAppConfig({\n  ui: {\n    colors: {\n      primary: 'green',\n      neutral: 'slate'\n    },\n+   pageCard: {\n+     slots: {\n+       root: 'rounded-xl',\n+     }\n+   }\n  },\n- uiPro: {\n-   pageCard: {\n-     slots: {\n-       root: 'rounded-xl',\n-     }\n-   }\n- }\n})\n","app\u002Fapp.config.ts",[980,1372,1373,1378,1383,1388,1393,1398,1403,1410,1417,1424,1431,1438,1443,1450,1456,1462,1468,1474,1480,1487],{"__ignoreMap":1036},[1040,1374,1375],{"class":1042,"line":1043},[1040,1376,1377],{"class":1173},"export default defineAppConfig({\n",[1040,1379,1380],{"class":1042,"line":1056},[1040,1381,1382],{"class":1173},"  ui: {\n",[1040,1384,1385],{"class":1042,"line":1182},[1040,1386,1387],{"class":1173},"    colors: {\n",[1040,1389,1390],{"class":1042,"line":1193},[1040,1391,1392],{"class":1173},"      primary: 'green',\n",[1040,1394,1395],{"class":1042,"line":1202},[1040,1396,1397],{"class":1173},"      neutral: 'slate'\n",[1040,1399,1400],{"class":1042,"line":1208},[1040,1401,1402],{"class":1173},"    },\n",[1040,1404,1405,1407],{"class":1042,"line":1268},[1040,1406,1196],{"class":1185},[1040,1408,1409],{"class":1049},"   pageCard: {\n",[1040,1411,1412,1414],{"class":1042,"line":1274},[1040,1413,1196],{"class":1185},[1040,1415,1416],{"class":1049},"     slots: {\n",[1040,1418,1419,1421],{"class":1042,"line":1280},[1040,1420,1196],{"class":1185},[1040,1422,1423],{"class":1049},"       root: 'rounded-xl',\n",[1040,1425,1426,1428],{"class":1042,"line":1288},[1040,1427,1196],{"class":1185},[1040,1429,1430],{"class":1049},"     }\n",[1040,1432,1433,1435],{"class":1042,"line":1296},[1040,1434,1196],{"class":1185},[1040,1436,1437],{"class":1049},"   }\n",[1040,1439,1440],{"class":1042,"line":1302},[1040,1441,1442],{"class":1173},"  },\n",[1040,1444,1445,1447],{"class":1042,"line":1308},[1040,1446,1186],{"class":1185},[1040,1448,1449],{"class":1189}," uiPro: {\n",[1040,1451,1452,1454],{"class":1042,"line":1314},[1040,1453,1186],{"class":1185},[1040,1455,1409],{"class":1189},[1040,1457,1458,1460],{"class":1042,"line":1320},[1040,1459,1186],{"class":1185},[1040,1461,1416],{"class":1189},[1040,1463,1464,1466],{"class":1042,"line":1326},[1040,1465,1186],{"class":1185},[1040,1467,1423],{"class":1189},[1040,1469,1470,1472],{"class":1042,"line":1332},[1040,1471,1186],{"class":1185},[1040,1473,1430],{"class":1189},[1040,1475,1476,1478],{"class":1042,"line":1338},[1040,1477,1186],{"class":1185},[1040,1479,1437],{"class":1189},[1040,1481,1482,1484],{"class":1042,"line":1343},[1040,1483,1186],{"class":1185},[1040,1485,1486],{"class":1189}," }\n",[1040,1488,1490],{"class":1042,"line":1489},20,[1040,1491,1211],{"class":1173},[1146,1493,1494],{"v-slot:vue":1036},[1149,1495,1496,1506],{},[1008,1497,1498],{"start":1182},[1011,1499,1356,1500,1360,1502,1020,1504,1024],{},[980,1501,1359],{},[980,1503,1363],{},[980,1505,1226],{},[1030,1507,1509],{"className":1164,"code":1508,"filename":1226,"language":1166,"meta":1036,"style":1036},"export default defineConfig({\n  plugins: [\n    vue(),\n    ui({\n      ui: {\n        colors: {\n          primary: 'green',\n          neutral: 'slate'\n        },\n+       pageCard: {\n+         slots: {\n+           root: 'rounded-xl',\n+         }\n+       }\n      },\n-     uiPro: {\n-       pageCard: {\n-         slots: {\n-           root: 'rounded-xl',\n-         }\n-       }\n-     }\n    })\n  ]\n})\n",[980,1510,1511,1515,1519,1523,1528,1532,1536,1540,1544,1549,1556,1563,1570,1577,1584,1589,1596,1602,1608,1614,1620,1627,1634,1639,1644],{"__ignoreMap":1036},[1040,1512,1513],{"class":1042,"line":1043},[1040,1514,1265],{"class":1173},[1040,1516,1517],{"class":1042,"line":1056},[1040,1518,1271],{"class":1173},[1040,1520,1521],{"class":1042,"line":1182},[1040,1522,1277],{"class":1173},[1040,1524,1525],{"class":1042,"line":1193},[1040,1526,1527],{"class":1173},"    ui({\n",[1040,1529,1530],{"class":1042,"line":1202},[1040,1531,1299],{"class":1173},[1040,1533,1534],{"class":1042,"line":1208},[1040,1535,1305],{"class":1173},[1040,1537,1538],{"class":1042,"line":1268},[1040,1539,1311],{"class":1173},[1040,1541,1542],{"class":1042,"line":1274},[1040,1543,1317],{"class":1173},[1040,1545,1546],{"class":1042,"line":1280},[1040,1547,1548],{"class":1173},"        },\n",[1040,1550,1551,1553],{"class":1042,"line":1288},[1040,1552,1196],{"class":1185},[1040,1554,1555],{"class":1049},"       pageCard: {\n",[1040,1557,1558,1560],{"class":1042,"line":1296},[1040,1559,1196],{"class":1185},[1040,1561,1562],{"class":1049},"         slots: {\n",[1040,1564,1565,1567],{"class":1042,"line":1302},[1040,1566,1196],{"class":1185},[1040,1568,1569],{"class":1049},"           root: 'rounded-xl',\n",[1040,1571,1572,1574],{"class":1042,"line":1308},[1040,1573,1196],{"class":1185},[1040,1575,1576],{"class":1049},"         }\n",[1040,1578,1579,1581],{"class":1042,"line":1314},[1040,1580,1196],{"class":1185},[1040,1582,1583],{"class":1049},"       }\n",[1040,1585,1586],{"class":1042,"line":1320},[1040,1587,1588],{"class":1173},"      },\n",[1040,1590,1591,1593],{"class":1042,"line":1326},[1040,1592,1186],{"class":1185},[1040,1594,1595],{"class":1189},"     uiPro: {\n",[1040,1597,1598,1600],{"class":1042,"line":1332},[1040,1599,1186],{"class":1185},[1040,1601,1555],{"class":1189},[1040,1603,1604,1606],{"class":1042,"line":1338},[1040,1605,1186],{"class":1185},[1040,1607,1562],{"class":1189},[1040,1609,1610,1612],{"class":1042,"line":1343},[1040,1611,1186],{"class":1185},[1040,1613,1569],{"class":1189},[1040,1615,1616,1618],{"class":1042,"line":1489},[1040,1617,1186],{"class":1185},[1040,1619,1576],{"class":1189},[1040,1621,1623,1625],{"class":1042,"line":1622},21,[1040,1624,1186],{"class":1185},[1040,1626,1583],{"class":1189},[1040,1628,1630,1632],{"class":1042,"line":1629},22,[1040,1631,1186],{"class":1185},[1040,1633,1430],{"class":1189},[1040,1635,1637],{"class":1042,"line":1636},23,[1040,1638,1335],{"class":1173},[1040,1640,1642],{"class":1042,"line":1641},24,[1040,1643,1205],{"class":1173},[1040,1645,1647],{"class":1042,"line":1646},25,[1040,1648,1211],{"class":1173},[1008,1650,1651],{"start":1193},[1011,1652,1013,1653,1017,1655,1657],{},[980,1654,1016],{},[980,1656,982],{}," in your CSS:",[1143,1659,1660,1731],{},[1146,1661,1662],{"v-slot:nuxt":1036},[1149,1663,1664,1689],{},[1030,1665,1668],{"className":1164,"code":1666,"filename":1667,"language":1166,"meta":1036,"style":1036},"@import \"tailwindcss\";\n- @import \"@nuxt\u002Fui-pro\";\n+ @import \"@nuxt\u002Fui\";\n","app\u002Fassets\u002Fcss\u002Fmain.css",[980,1669,1670,1675,1682],{"__ignoreMap":1036},[1040,1671,1672],{"class":1042,"line":1043},[1040,1673,1674],{"class":1173},"@import \"tailwindcss\";\n",[1040,1676,1677,1679],{"class":1042,"line":1056},[1040,1678,1186],{"class":1185},[1040,1680,1681],{"class":1189}," @import \"@nuxt\u002Fui-pro\";\n",[1040,1683,1684,1686],{"class":1042,"line":1182},[1040,1685,1196],{"class":1185},[1040,1687,1688],{"class":1049}," @import \"@nuxt\u002Fui\";\n",[1690,1691,1692,1699],"warning",{},[971,1693,1694,1695,1698],{},"If you are upgrading to Nuxt 4 at the same time as Nuxt UI v4, make sure to update the ",[980,1696,1697],{},"@source"," directive to match the new directory structure.",[1030,1700,1702],{"className":1164,"code":1701,"filename":1667,"language":1166,"meta":1036,"style":1036},"@import \"tailwindcss\";\n@import \"@nuxt\u002Fui\";\n\n- @source \"..\u002F..\u002Fcontent\u002F**\u002F*\";\n+ @source \"..\u002F..\u002F..\u002Fcontent\u002F**\u002F*\";\n",[980,1703,1704,1708,1713,1717,1724],{"__ignoreMap":1036},[1040,1705,1706],{"class":1042,"line":1043},[1040,1707,1674],{"class":1173},[1040,1709,1710],{"class":1042,"line":1056},[1040,1711,1712],{"class":1173},"@import \"@nuxt\u002Fui\";\n",[1040,1714,1715],{"class":1042,"line":1182},[1040,1716,1260],{"emptyLinePlaceholder":21},[1040,1718,1719,1721],{"class":1042,"line":1193},[1040,1720,1186],{"class":1185},[1040,1722,1723],{"class":1189}," @source \"..\u002F..\u002Fcontent\u002F**\u002F*\";\n",[1040,1725,1726,1728],{"class":1042,"line":1202},[1040,1727,1196],{"class":1185},[1040,1729,1730],{"class":1049}," @source \"..\u002F..\u002F..\u002Fcontent\u002F**\u002F*\";\n",[1146,1732,1733],{"v-slot:vue":1036},[1149,1734,1735],{},[1030,1736,1738],{"className":1164,"code":1666,"filename":1737,"language":1166,"meta":1036,"style":1036},"src\u002Fassets\u002Fcss\u002Fmain.css",[980,1739,1740,1744,1750],{"__ignoreMap":1036},[1040,1741,1742],{"class":1042,"line":1043},[1040,1743,1674],{"class":1173},[1040,1745,1746,1748],{"class":1042,"line":1056},[1040,1747,1186],{"class":1185},[1040,1749,1681],{"class":1189},[1040,1751,1752,1754],{"class":1042,"line":1182},[1040,1753,1196],{"class":1185},[1040,1755,1688],{"class":1049},[1008,1757,1758],{"start":1202},[1011,1759,1013,1760,1017,1762,1764],{},[980,1761,1016],{},[980,1763,982],{}," in your imports:",[1030,1766,1768],{"className":1164,"code":1767,"language":1166,"meta":1036,"style":1036},"- import type { BannerProps } from '@nuxt\u002Fui-pro'\n+ import type { BannerProps } from '@nuxt\u002Fui'\n",[980,1769,1770,1777],{"__ignoreMap":1036},[1040,1771,1772,1774],{"class":1042,"line":1043},[1040,1773,1186],{"class":1185},[1040,1775,1776],{"class":1189}," import type { BannerProps } from '@nuxt\u002Fui-pro'\n",[1040,1778,1779,1781],{"class":1042,"line":1056},[1040,1780,1196],{"class":1185},[1040,1782,1783],{"class":1049}," import type { BannerProps } from '@nuxt\u002Fui'\n",[1003,1785,1787],{"id":1786},"from-nuxt-ui","From Nuxt UI",[1008,1789,1790],{},[1011,1791,1792],{},"When upgrading from Nuxt UI v3, you simply need to update to v4:",[1026,1794,1795,1810,1825,1840],{"sync":1028},[1030,1796,1798],{"className":1032,"code":1797,"filename":1034,"language":1035,"meta":1036,"style":1036},"pnpm add @nuxt\u002Fui tailwindcss\n",[980,1799,1800],{"__ignoreMap":1036},[1040,1801,1802,1804,1806,1808],{"class":1042,"line":1043},[1040,1803,1034],{"class":1046},[1040,1805,1061],{"class":1049},[1040,1807,1064],{"class":1049},[1040,1809,1067],{"class":1049},[1030,1811,1813],{"className":1032,"code":1812,"filename":1071,"language":1035,"meta":1036,"style":1036},"yarn add @nuxt\u002Fui tailwindcss\n",[980,1814,1815],{"__ignoreMap":1036},[1040,1816,1817,1819,1821,1823],{"class":1042,"line":1043},[1040,1818,1071],{"class":1046},[1040,1820,1061],{"class":1049},[1040,1822,1064],{"class":1049},[1040,1824,1067],{"class":1049},[1030,1826,1828],{"className":1032,"code":1827,"filename":1095,"language":1035,"meta":1036,"style":1036},"npm install @nuxt\u002Fui tailwindcss\n",[980,1829,1830],{"__ignoreMap":1036},[1040,1831,1832,1834,1836,1838],{"class":1042,"line":1043},[1040,1833,1095],{"class":1046},[1040,1835,1113],{"class":1049},[1040,1837,1064],{"class":1049},[1040,1839,1067],{"class":1049},[1030,1841,1843],{"className":1032,"code":1842,"filename":1121,"language":1035,"meta":1036,"style":1036},"bun add @nuxt\u002Fui tailwindcss\n",[980,1844,1845],{"__ignoreMap":1036},[1040,1846,1847,1849,1851,1853],{"class":1042,"line":1043},[1040,1848,1121],{"class":1046},[1040,1850,1061],{"class":1049},[1040,1852,1064],{"class":1049},[1040,1854,1067],{"class":1049},[998,1856,1858],{"id":1857},"changes-from-v3","Changes from v3",[971,1860,1861],{},"After upgrading to Nuxt UI v4, please note the following important changes:",[1003,1863,1865],{"id":1864},"renamed-buttongroup","Renamed ButtonGroup",[971,1867,1868,1869,1872,1873,1024],{},"The ",[980,1870,1871],{},"ButtonGroup"," component has been renamed to ",[1874,1875,1876],"a",{"href":503},[980,1877,502],{},[1030,1879,1881],{"className":1164,"code":1880,"language":1166,"meta":1036,"style":1036},"\u003Ctemplate>\n- \u003CUButtonGroup>\n+ \u003CUFieldGroup>\n    \u003CUButton label=\"Button\" \u002F>\n    \u003CUButton icon=\"i-lucide-chevron-down\" \u002F>\n+ \u003C\u002FUFieldGroup>\n- \u003C\u002FUButtonGroup>\n\u003C\u002Ftemplate>\n",[980,1882,1883,1888,1895,1902,1907,1912,1919,1926],{"__ignoreMap":1036},[1040,1884,1885],{"class":1042,"line":1043},[1040,1886,1887],{"class":1173},"\u003Ctemplate>\n",[1040,1889,1890,1892],{"class":1042,"line":1056},[1040,1891,1186],{"class":1185},[1040,1893,1894],{"class":1189}," \u003CUButtonGroup>\n",[1040,1896,1897,1899],{"class":1042,"line":1182},[1040,1898,1196],{"class":1185},[1040,1900,1901],{"class":1049}," \u003CUFieldGroup>\n",[1040,1903,1904],{"class":1042,"line":1193},[1040,1905,1906],{"class":1173},"    \u003CUButton label=\"Button\" \u002F>\n",[1040,1908,1909],{"class":1042,"line":1202},[1040,1910,1911],{"class":1173},"    \u003CUButton icon=\"i-lucide-chevron-down\" \u002F>\n",[1040,1913,1914,1916],{"class":1042,"line":1208},[1040,1915,1196],{"class":1185},[1040,1917,1918],{"class":1049}," \u003C\u002FUFieldGroup>\n",[1040,1920,1921,1923],{"class":1042,"line":1268},[1040,1922,1186],{"class":1185},[1040,1924,1925],{"class":1189}," \u003C\u002FUButtonGroup>\n",[1040,1927,1928],{"class":1042,"line":1274},[1040,1929,1930],{"class":1173},"\u003C\u002Ftemplate>\n",[1003,1932,1934],{"id":1933},"renamed-pagemarquee","Renamed PageMarquee",[971,1936,1868,1937,1872,1940,1024],{},[980,1938,1939],{},"PageMarquee",[1874,1941,1942],{"href":594},[980,1943,593],{},[1030,1945,1947],{"className":1164,"code":1946,"language":1166,"meta":1036,"style":1036},"\u003Ctemplate>\n- \u003CUPageMarquee :items=\"items\" \u002F>\n+ \u003CUMarquee :items=\"items\" \u002F>\n\u003C\u002Ftemplate>\n",[980,1948,1949,1953,1960,1967],{"__ignoreMap":1036},[1040,1950,1951],{"class":1042,"line":1043},[1040,1952,1887],{"class":1173},[1040,1954,1955,1957],{"class":1042,"line":1056},[1040,1956,1186],{"class":1185},[1040,1958,1959],{"class":1189}," \u003CUPageMarquee :items=\"items\" \u002F>\n",[1040,1961,1962,1964],{"class":1042,"line":1182},[1040,1963,1196],{"class":1185},[1040,1965,1966],{"class":1049}," \u003CUMarquee :items=\"items\" \u002F>\n",[1040,1968,1969],{"class":1042,"line":1193},[1040,1970,1930],{"class":1173},[1003,1972,1974],{"id":1973},"removed-pageaccordion","Removed PageAccordion",[971,1976,1868,1977,1980,1981,1024],{},[980,1978,1979],{},"PageAccordion"," component has been removed in favor of ",[1874,1982,1983],{"href":170},[980,1984,169],{},[1030,1986,1988],{"className":1164,"code":1987,"language":1166,"meta":1036,"style":1036},"\u003Ctemplate>\n- \u003CUPageAccordion\n+ \u003CUAccordion\n    :items=\"items\"\n+   :unmount-on-hide=\"false\"\n+   :ui=\"{ trigger: 'text-base', body: 'text-base text-muted' }\"\n  \u002F>\n\u003C\u002Ftemplate>\n",[980,1989,1990,1994,2001,2008,2013,2020,2027,2032],{"__ignoreMap":1036},[1040,1991,1992],{"class":1042,"line":1043},[1040,1993,1887],{"class":1173},[1040,1995,1996,1998],{"class":1042,"line":1056},[1040,1997,1186],{"class":1185},[1040,1999,2000],{"class":1189}," \u003CUPageAccordion\n",[1040,2002,2003,2005],{"class":1042,"line":1182},[1040,2004,1196],{"class":1185},[1040,2006,2007],{"class":1049}," \u003CUAccordion\n",[1040,2009,2010],{"class":1042,"line":1193},[1040,2011,2012],{"class":1173},"    :items=\"items\"\n",[1040,2014,2015,2017],{"class":1042,"line":1202},[1040,2016,1196],{"class":1185},[1040,2018,2019],{"class":1049},"   :unmount-on-hide=\"false\"\n",[1040,2021,2022,2024],{"class":1042,"line":1208},[1040,2023,1196],{"class":1185},[1040,2025,2026],{"class":1049},"   :ui=\"{ trigger: 'text-base', body: 'text-base text-muted' }\"\n",[1040,2028,2029],{"class":1042,"line":1268},[1040,2030,2031],{"class":1173},"  \u002F>\n",[1040,2033,2034],{"class":1042,"line":1274},[1040,2035,1930],{"class":1173},[985,2037,2038],{},[971,2039,1868,2040,2042,2043,2046,2047,2050,2051,2053],{},[980,2041,1979],{}," component was a wrapper that set ",[980,2044,2045],{},"unmount-on-hide"," to ",[980,2048,2049],{},"false"," and customized the ",[980,2052,1359],{}," prop.",[1003,2055,2057],{"id":2056},"renamed-model-modifiers","Renamed model modifiers",[971,2059,1868,2060,2063,2064,2068,2069,2073,2074,2078],{},[980,2061,2062],{},"modelModifiers"," shape used by ",[1874,2065,2066],{"href":543},[980,2067,542],{},", ",[1874,2070,2071],{"href":558},[980,2072,557],{}," and ",[1874,2075,2076],{"href":784},[980,2077,783],{}," has changed in v4:",[1008,2080,2081,2095],{},[1011,2082,1868,2083,2086,2087,2090,2091,2094],{},[980,2084,2085],{},"nullify"," modifier was renamed to ",[980,2088,2089],{},"nullable"," (it converts empty\u002Fblank values to ",[980,2092,2093],{},"null",").",[1011,2096,2097,2098,2101,2102,2094],{},"A new ",[980,2099,2100],{},"optional"," modifier was added (it converts empty\u002Fblank values to ",[980,2103,2104],{},"undefined",[1030,2106,2108],{"className":1164,"code":2107,"language":1166,"meta":1036,"style":1036},"- \u003CUInput v-model.nullify=\"value\" \u002F>\n+ \u003CUInput v-model.nullable=\"value\" \u002F>\n",[980,2109,2110,2117],{"__ignoreMap":1036},[1040,2111,2112,2114],{"class":1042,"line":1043},[1040,2113,1186],{"class":1185},[1040,2115,2116],{"class":1189}," \u003CUInput v-model.nullify=\"value\" \u002F>\n",[1040,2118,2119,2121],{"class":1042,"line":1056},[1040,2120,1196],{"class":1185},[1040,2122,2123],{"class":1049}," \u003CUInput v-model.nullable=\"value\" \u002F>\n",[1030,2125,2127],{"className":1164,"code":2126,"language":1166,"meta":1036,"style":1036},"- \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullify: true }\" \u002F>\n+ \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullable: true }\" \u002F>\n",[980,2128,2129,2136],{"__ignoreMap":1036},[1040,2130,2131,2133],{"class":1042,"line":1043},[1040,2132,1186],{"class":1185},[1040,2134,2135],{"class":1189}," \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullify: true }\" \u002F>\n",[1040,2137,2138,2140],{"class":1042,"line":1056},[1040,2139,1196],{"class":1185},[1040,2141,2142],{"class":1049}," \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullable: true }\" \u002F>\n",[971,2144,2145,2146,2148,2149,2151,2152,2154,2155,2157],{},"Use ",[980,2147,2089],{}," when you want empty values as ",[980,2150,2093],{},", and ",[980,2153,2100],{}," when you prefer ",[980,2156,2104],{}," for absent values.",[1003,2159,2161],{"id":2160},"changes-to-form-component","Changes to Form component",[971,2163,1868,2164,2166],{},[980,2165,522],{}," component has been improved in v4 with better state management and nested form handling. Here are the key changes you need to be aware of:",[1008,2168,2169,2183,2193],{},[1011,2170,2171,2172,2175,2176,2182],{},"Schema ",[975,2173,2174],{},"transformations will only"," be applied to the ",[975,2177,2178,2181],{},[980,2179,2180],{},"@submit"," data"," and will no longer mutate the form's state. This provides better predictability and prevents unexpected state mutations.",[1011,2184,2185,2188,2189,2192],{},[975,2186,2187],{},"Nested forms must be enabled explicitly"," using the ",[980,2190,2191],{},"nested"," prop. This makes the component behavior more explicit and prevents accidental nested form creation.",[1011,2194,2195,2201,2202,2205],{},[975,2196,2197,2198],{},"Nested forms should now provide a ",[980,2199,2200],{},"name"," prop (similar to ",[980,2203,2204],{},"UFormField",") and will automatically inherit their state from their parent form.",[1030,2207,2209],{"className":1164,"code":2208,"language":1166,"meta":1036,"style":1036},"\u003Ctemplate>\n  \u003CUForm :state=\"state\" :schema=\"schema\" @submit=\"onSubmit\">\n    \u003CUFormField label=\"Customer\" name=\"customer\">\n      \u003CUInput v-model=\"state.customer\" placeholder=\"Wonka Industries\" \u002F>\n    \u003C\u002FUFormField>\n\n    \u003Cdiv v-for=\"(item, index) in state.items\" :key=\"index\">\n      \u003CUForm\n-       :state=\"item\"\n+       :name=\"`items.${index}`\"\n        :schema=\"itemSchema\"\n+       nested\n      >\n        \u003CUFormField :label=\"!index ? 'Description' : undefined\" name=\"description\">\n          \u003CUInput v-model=\"item.description\" \u002F>\n        \u003C\u002FUFormField>\n        \u003CUFormField :label=\"!index ? 'Price' : undefined\" name=\"price\">\n          \u003CUInput v-model=\"item.price\" type=\"number\" \u002F>\n        \u003C\u002FUFormField>\n      \u003C\u002FUForm>\n    \u003C\u002Fdiv>\n  \u003C\u002FUForm>\n\u003C\u002Ftemplate>\n",[980,2210,2211,2215,2220,2225,2230,2235,2239,2244,2249,2256,2263,2268,2275,2280,2285,2290,2295,2300,2305,2309,2314,2319,2324],{"__ignoreMap":1036},[1040,2212,2213],{"class":1042,"line":1043},[1040,2214,1887],{"class":1173},[1040,2216,2217],{"class":1042,"line":1056},[1040,2218,2219],{"class":1173},"  \u003CUForm :state=\"state\" :schema=\"schema\" @submit=\"onSubmit\">\n",[1040,2221,2222],{"class":1042,"line":1182},[1040,2223,2224],{"class":1173},"    \u003CUFormField label=\"Customer\" name=\"customer\">\n",[1040,2226,2227],{"class":1042,"line":1193},[1040,2228,2229],{"class":1173},"      \u003CUInput v-model=\"state.customer\" placeholder=\"Wonka Industries\" \u002F>\n",[1040,2231,2232],{"class":1042,"line":1202},[1040,2233,2234],{"class":1173},"    \u003C\u002FUFormField>\n",[1040,2236,2237],{"class":1042,"line":1208},[1040,2238,1260],{"emptyLinePlaceholder":21},[1040,2240,2241],{"class":1042,"line":1268},[1040,2242,2243],{"class":1173},"    \u003Cdiv v-for=\"(item, index) in state.items\" :key=\"index\">\n",[1040,2245,2246],{"class":1042,"line":1274},[1040,2247,2248],{"class":1173},"      \u003CUForm\n",[1040,2250,2251,2253],{"class":1042,"line":1280},[1040,2252,1186],{"class":1185},[1040,2254,2255],{"class":1189},"       :state=\"item\"\n",[1040,2257,2258,2260],{"class":1042,"line":1288},[1040,2259,1196],{"class":1185},[1040,2261,2262],{"class":1049},"       :name=\"`items.${index}`\"\n",[1040,2264,2265],{"class":1042,"line":1296},[1040,2266,2267],{"class":1173},"        :schema=\"itemSchema\"\n",[1040,2269,2270,2272],{"class":1042,"line":1302},[1040,2271,1196],{"class":1185},[1040,2273,2274],{"class":1049},"       nested\n",[1040,2276,2277],{"class":1042,"line":1308},[1040,2278,2279],{"class":1173},"      >\n",[1040,2281,2282],{"class":1042,"line":1314},[1040,2283,2284],{"class":1173},"        \u003CUFormField :label=\"!index ? 'Description' : undefined\" name=\"description\">\n",[1040,2286,2287],{"class":1042,"line":1320},[1040,2288,2289],{"class":1173},"          \u003CUInput v-model=\"item.description\" \u002F>\n",[1040,2291,2292],{"class":1042,"line":1326},[1040,2293,2294],{"class":1173},"        \u003C\u002FUFormField>\n",[1040,2296,2297],{"class":1042,"line":1332},[1040,2298,2299],{"class":1173},"        \u003CUFormField :label=\"!index ? 'Price' : undefined\" name=\"price\">\n",[1040,2301,2302],{"class":1042,"line":1338},[1040,2303,2304],{"class":1173},"          \u003CUInput v-model=\"item.price\" type=\"number\" \u002F>\n",[1040,2306,2307],{"class":1042,"line":1343},[1040,2308,2294],{"class":1173},[1040,2310,2311],{"class":1042,"line":1489},[1040,2312,2313],{"class":1173},"      \u003C\u002FUForm>\n",[1040,2315,2316],{"class":1042,"line":1622},[1040,2317,2318],{"class":1173},"    \u003C\u002Fdiv>\n",[1040,2320,2321],{"class":1042,"line":1629},[1040,2322,2323],{"class":1173},"  \u003C\u002FUForm>\n",[1040,2325,2326],{"class":1042,"line":1636},[1040,2327,1930],{"class":1173},[1003,2329,2331],{"id":2330},"removed-deprecated-utilities","Removed deprecated utilities",[971,2333,2334,2335,2338,2339,2342],{},"Some ",[975,2336,2337],{},"Nuxt Content utilities"," that were previously available in Nuxt UI Pro have been ",[975,2340,2341],{},"removed"," in v4:",[2344,2345,2346,2351],"ul",{},[1011,2347,2348],{},[980,2349,2350],{},"findPageBreadcrumb",[1011,2352,2353],{},[980,2354,2355],{},"findPageHeadline",[971,2357,2358],{},"These are now fully provided by Nuxt Content. Make sure to update your imports and usage accordingly.",[1030,2360,2362],{"className":1164,"code":2361,"language":1166,"meta":1036,"style":1036},"- import { findPageHeadline } from '@nuxt\u002Fui-pro\u002Futils\u002Fcontent'\n+ import { findPageHeadline } from '@nuxt\u002Fcontent\u002Futils'\n\n- import { findPageBreadcrumb } from '@nuxt\u002Fui-pro\u002Futils\u002Fcontent'\n+ import { findPageBreadcrumb } from '@nuxt\u002Fcontent\u002Futils'\n",[980,2363,2364,2371,2378,2382,2389],{"__ignoreMap":1036},[1040,2365,2366,2368],{"class":1042,"line":1043},[1040,2367,1186],{"class":1185},[1040,2369,2370],{"class":1189}," import { findPageHeadline } from '@nuxt\u002Fui-pro\u002Futils\u002Fcontent'\n",[1040,2372,2373,2375],{"class":1042,"line":1056},[1040,2374,1196],{"class":1185},[1040,2376,2377],{"class":1049}," import { findPageHeadline } from '@nuxt\u002Fcontent\u002Futils'\n",[1040,2379,2380],{"class":1042,"line":1182},[1040,2381,1260],{"emptyLinePlaceholder":21},[1040,2383,2384,2386],{"class":1042,"line":1193},[1040,2385,1186],{"class":1185},[1040,2387,2388],{"class":1189}," import { findPageBreadcrumb } from '@nuxt\u002Fui-pro\u002Futils\u002Fcontent'\n",[1040,2390,2391,2393],{"class":1042,"line":1202},[1040,2392,1196],{"class":1185},[1040,2394,2395],{"class":1049}," import { findPageBreadcrumb } from '@nuxt\u002Fcontent\u002Futils'\n",[1003,2397,2399],{"id":2398},"ai-sdk-v5-migration-optional","AI SDK v5 migration (optional)",[971,2401,2402,2403,2068,2405,2068,2407,2068,2409,2068,2411,2413],{},"This section only applies if you're using the AI SDK and chat components (",[980,2404,265],{},[980,2406,270],{},[980,2408,280],{},[980,2410,285],{},[980,2412,275],{},"). If you're not using AI features, you can skip this section.",[1008,2415,2416],{},[1011,2417,2418,2419,2073,2422,2425,2426,2428,2429,2435,2436,2439],{},"Update ",[980,2420,2421],{},"@ai-sdk\u002Fvue",[980,2423,2424],{},"ai"," dependencies in your ",[980,2427,1023],{}," and add ",[1874,2430,2434],{"href":2431,"rel":2432},"https:\u002F\u002Fcomark.dev",[2433],"nofollow","Comark"," (replaces ",[980,2437,2438],{},"@nuxtjs\u002Fmdc"," for rendering AI responses as streaming Markdown):",[1143,2441,2442,2546],{},[1146,2443,2444],{"v-slot:nuxt":1036},[1149,2445,2446,2506,2513],{},[1030,2447,2449],{"className":1164,"code":2448,"language":1166,"meta":1036,"style":1036},"{\n  \"dependencies\": {\n-   \"@ai-sdk\u002Fvue\": \"^1.2.x\",\n+   \"@ai-sdk\u002Fvue\": \"^2.0.x\",\n-   \"ai\": \"^4.3.x\",\n+   \"ai\": \"^5.0.x\",\n+   \"@comark\u002Fnuxt\": \"latest\"\n  }\n}\n",[980,2450,2451,2456,2461,2468,2475,2482,2489,2496,2501],{"__ignoreMap":1036},[1040,2452,2453],{"class":1042,"line":1043},[1040,2454,2455],{"class":1173},"{\n",[1040,2457,2458],{"class":1042,"line":1056},[1040,2459,2460],{"class":1173},"  \"dependencies\": {\n",[1040,2462,2463,2465],{"class":1042,"line":1182},[1040,2464,1186],{"class":1185},[1040,2466,2467],{"class":1189},"   \"@ai-sdk\u002Fvue\": \"^1.2.x\",\n",[1040,2469,2470,2472],{"class":1042,"line":1193},[1040,2471,1196],{"class":1185},[1040,2473,2474],{"class":1049},"   \"@ai-sdk\u002Fvue\": \"^2.0.x\",\n",[1040,2476,2477,2479],{"class":1042,"line":1202},[1040,2478,1186],{"class":1185},[1040,2480,2481],{"class":1189},"   \"ai\": \"^4.3.x\",\n",[1040,2483,2484,2486],{"class":1042,"line":1208},[1040,2485,1196],{"class":1185},[1040,2487,2488],{"class":1049},"   \"ai\": \"^5.0.x\",\n",[1040,2490,2491,2493],{"class":1042,"line":1268},[1040,2492,1196],{"class":1185},[1040,2494,2495],{"class":1049},"   \"@comark\u002Fnuxt\": \"latest\"\n",[1040,2497,2498],{"class":1042,"line":1274},[1040,2499,2500],{"class":1173},"  }\n",[1040,2502,2503],{"class":1042,"line":1280},[1040,2504,2505],{"class":1173},"}\n",[971,2507,2508,2509,2512],{},"Add ",[980,2510,2511],{},"@comark\u002Fnuxt"," to your modules:",[1030,2514,2516],{"className":1164,"code":2515,"filename":1161,"language":1166,"meta":1036,"style":1036},"export default defineNuxtConfig({\n  modules: [\n    '@nuxt\u002Fui',\n+   '@comark\u002Fnuxt'\n  ]\n})\n",[980,2517,2518,2522,2526,2531,2538,2542],{"__ignoreMap":1036},[1040,2519,2520],{"class":1042,"line":1043},[1040,2521,1174],{"class":1173},[1040,2523,2524],{"class":1042,"line":1056},[1040,2525,1179],{"class":1173},[1040,2527,2528],{"class":1042,"line":1182},[1040,2529,2530],{"class":1173},"    '@nuxt\u002Fui',\n",[1040,2532,2533,2535],{"class":1042,"line":1193},[1040,2534,1196],{"class":1185},[1040,2536,2537],{"class":1049},"   '@comark\u002Fnuxt'\n",[1040,2539,2540],{"class":1042,"line":1202},[1040,2541,1205],{"class":1173},[1040,2543,2544],{"class":1042,"line":1208},[1040,2545,1211],{"class":1173},[1146,2547,2548],{"v-slot:vue":1036},[1030,2549,2551],{"className":1164,"code":2550,"language":1166,"meta":1036,"style":1036},"{\n  \"dependencies\": {\n-   \"@ai-sdk\u002Fvue\": \"^1.2.x\",\n+   \"@ai-sdk\u002Fvue\": \"^2.0.x\",\n-   \"ai\": \"^4.3.x\",\n+   \"ai\": \"^5.0.x\",\n+   \"@comark\u002Fvue\": \"latest\"\n  }\n}\n",[980,2552,2553,2557,2561,2567,2573,2579,2585,2592,2596],{"__ignoreMap":1036},[1040,2554,2555],{"class":1042,"line":1043},[1040,2556,2455],{"class":1173},[1040,2558,2559],{"class":1042,"line":1056},[1040,2560,2460],{"class":1173},[1040,2562,2563,2565],{"class":1042,"line":1182},[1040,2564,1186],{"class":1185},[1040,2566,2467],{"class":1189},[1040,2568,2569,2571],{"class":1042,"line":1193},[1040,2570,1196],{"class":1185},[1040,2572,2474],{"class":1049},[1040,2574,2575,2577],{"class":1042,"line":1202},[1040,2576,1186],{"class":1185},[1040,2578,2481],{"class":1189},[1040,2580,2581,2583],{"class":1042,"line":1208},[1040,2582,1196],{"class":1185},[1040,2584,2488],{"class":1049},[1040,2586,2587,2589],{"class":1042,"line":1268},[1040,2588,1196],{"class":1185},[1040,2590,2591],{"class":1049},"   \"@comark\u002Fvue\": \"latest\"\n",[1040,2593,2594],{"class":1042,"line":1274},[1040,2595,2500],{"class":1173},[1040,2597,2598],{"class":1042,"line":1280},[1040,2599,2505],{"class":1173},[1008,2601,2602],{"start":1056},[1011,2603,2604,2607,2608,2610],{},[980,2605,2606],{},"useChat"," composable has been replaced with the new ",[980,2609,259],{}," class:",[1030,2612,2614],{"className":1164,"code":2613,"language":1166,"meta":1036,"style":1036},"\u003Cscript setup lang=\"ts\">\n- import { useChat } from '@ai-sdk\u002Fvue'\n+ import { Chat } from '@ai-sdk\u002Fvue'\n+ import type { UIMessage } from 'ai'\n\n- const { messages, input, handleSubmit, status, error, reload, setMessages } = useChat()\n+ const messages: UIMessage[] = []\n+ const input = ref('')\n+\n+ const chat = new Chat({\n+   messages\n+ })\n+\n+ function handleSubmit() {\n+   chat.sendMessage({ text: input.value })\n+   input.value = ''\n+ }\n\u003C\u002Fscript>\n",[980,2615,2616,2621,2628,2635,2642,2646,2653,2660,2667,2672,2679,2686,2693,2697,2704,2711,2718,2724],{"__ignoreMap":1036},[1040,2617,2618],{"class":1042,"line":1043},[1040,2619,2620],{"class":1173},"\u003Cscript setup lang=\"ts\">\n",[1040,2622,2623,2625],{"class":1042,"line":1056},[1040,2624,1186],{"class":1185},[1040,2626,2627],{"class":1189}," import { useChat } from '@ai-sdk\u002Fvue'\n",[1040,2629,2630,2632],{"class":1042,"line":1182},[1040,2631,1196],{"class":1185},[1040,2633,2634],{"class":1049}," import { Chat } from '@ai-sdk\u002Fvue'\n",[1040,2636,2637,2639],{"class":1042,"line":1193},[1040,2638,1196],{"class":1185},[1040,2640,2641],{"class":1049}," import type { UIMessage } from 'ai'\n",[1040,2643,2644],{"class":1042,"line":1202},[1040,2645,1260],{"emptyLinePlaceholder":21},[1040,2647,2648,2650],{"class":1042,"line":1208},[1040,2649,1186],{"class":1185},[1040,2651,2652],{"class":1189}," const { messages, input, handleSubmit, status, error, reload, setMessages } = useChat()\n",[1040,2654,2655,2657],{"class":1042,"line":1268},[1040,2656,1196],{"class":1185},[1040,2658,2659],{"class":1049}," const messages: UIMessage[] = []\n",[1040,2661,2662,2664],{"class":1042,"line":1274},[1040,2663,1196],{"class":1185},[1040,2665,2666],{"class":1049}," const input = ref('')\n",[1040,2668,2669],{"class":1042,"line":1280},[1040,2670,2671],{"class":1185},"+\n",[1040,2673,2674,2676],{"class":1042,"line":1288},[1040,2675,1196],{"class":1185},[1040,2677,2678],{"class":1049}," const chat = new Chat({\n",[1040,2680,2681,2683],{"class":1042,"line":1296},[1040,2682,1196],{"class":1185},[1040,2684,2685],{"class":1049},"   messages\n",[1040,2687,2688,2690],{"class":1042,"line":1302},[1040,2689,1196],{"class":1185},[1040,2691,2692],{"class":1049}," })\n",[1040,2694,2695],{"class":1042,"line":1308},[1040,2696,2671],{"class":1185},[1040,2698,2699,2701],{"class":1042,"line":1314},[1040,2700,1196],{"class":1185},[1040,2702,2703],{"class":1049}," function handleSubmit() {\n",[1040,2705,2706,2708],{"class":1042,"line":1320},[1040,2707,1196],{"class":1185},[1040,2709,2710],{"class":1049},"   chat.sendMessage({ text: input.value })\n",[1040,2712,2713,2715],{"class":1042,"line":1326},[1040,2714,1196],{"class":1185},[1040,2716,2717],{"class":1049},"   input.value = ''\n",[1040,2719,2720,2722],{"class":1042,"line":1332},[1040,2721,1196],{"class":1185},[1040,2723,1486],{"class":1049},[1040,2725,2726],{"class":1042,"line":1338},[1040,2727,2728],{"class":1173},"\u003C\u002Fscript>\n",[1008,2730,2731],{"start":1182},[1011,2732,2733,2734,2737,2738,1024],{},"Messages now use ",[980,2735,2736],{},"parts"," instead of ",[980,2739,371],{},[1030,2741,2743],{"className":1164,"code":2742,"language":1166,"meta":1036,"style":1036},"\u002F\u002F When manually creating messages\n- setMessages([{\n+ messages.push({\n  id: '1',\n  role: 'user',\n- content: 'Hello world'\n+ parts: [{ type: 'text', text: 'Hello world' }]\n- }])\n+ })\n\n\u002F\u002F In templates\n\u003Ctemplate>\n- \u003CUChatMessage :content=\"message.content\" \u002F>\n+ \u003CUChatMessage :parts=\"message.parts\" \u002F>\n\u003C\u002Ftemplate>\n",[980,2744,2745,2750,2757,2764,2769,2774,2781,2788,2795,2801,2805,2810,2814,2821,2828],{"__ignoreMap":1036},[1040,2746,2747],{"class":1042,"line":1043},[1040,2748,2749],{"class":1173},"\u002F\u002F When manually creating messages\n",[1040,2751,2752,2754],{"class":1042,"line":1056},[1040,2753,1186],{"class":1185},[1040,2755,2756],{"class":1189}," setMessages([{\n",[1040,2758,2759,2761],{"class":1042,"line":1182},[1040,2760,1196],{"class":1185},[1040,2762,2763],{"class":1049}," messages.push({\n",[1040,2765,2766],{"class":1042,"line":1193},[1040,2767,2768],{"class":1173},"  id: '1',\n",[1040,2770,2771],{"class":1042,"line":1202},[1040,2772,2773],{"class":1173},"  role: 'user',\n",[1040,2775,2776,2778],{"class":1042,"line":1208},[1040,2777,1186],{"class":1185},[1040,2779,2780],{"class":1189}," content: 'Hello world'\n",[1040,2782,2783,2785],{"class":1042,"line":1268},[1040,2784,1196],{"class":1185},[1040,2786,2787],{"class":1049}," parts: [{ type: 'text', text: 'Hello world' }]\n",[1040,2789,2790,2792],{"class":1042,"line":1274},[1040,2791,1186],{"class":1185},[1040,2793,2794],{"class":1189}," }])\n",[1040,2796,2797,2799],{"class":1042,"line":1280},[1040,2798,1196],{"class":1185},[1040,2800,2692],{"class":1049},[1040,2802,2803],{"class":1042,"line":1288},[1040,2804,1260],{"emptyLinePlaceholder":21},[1040,2806,2807],{"class":1042,"line":1296},[1040,2808,2809],{"class":1173},"\u002F\u002F In templates\n",[1040,2811,2812],{"class":1042,"line":1302},[1040,2813,1887],{"class":1173},[1040,2815,2816,2818],{"class":1042,"line":1308},[1040,2817,1186],{"class":1185},[1040,2819,2820],{"class":1189}," \u003CUChatMessage :content=\"message.content\" \u002F>\n",[1040,2822,2823,2825],{"class":1042,"line":1314},[1040,2824,1196],{"class":1185},[1040,2826,2827],{"class":1049}," \u003CUChatMessage :parts=\"message.parts\" \u002F>\n",[1040,2829,2830],{"class":1042,"line":1320},[1040,2831,1930],{"class":1173},[1008,2833,2834],{"start":1193},[1011,2835,2836],{},"Some methods have been renamed:",[1030,2838,2840],{"className":1164,"code":2839,"language":1166,"meta":1036,"style":1036},"\u002F\u002F Regenerate the last message\n- reload()\n+ chat.regenerate()\n\n\u002F\u002F Access chat state\n- :messages=\"messages\"\n- :status=\"status\"\n+ :messages=\"chat.messages\"\n+ :status=\"chat.status\"\n",[980,2841,2842,2847,2854,2861,2865,2870,2877,2884,2891],{"__ignoreMap":1036},[1040,2843,2844],{"class":1042,"line":1043},[1040,2845,2846],{"class":1173},"\u002F\u002F Regenerate the last message\n",[1040,2848,2849,2851],{"class":1042,"line":1056},[1040,2850,1186],{"class":1185},[1040,2852,2853],{"class":1189}," reload()\n",[1040,2855,2856,2858],{"class":1042,"line":1182},[1040,2857,1196],{"class":1185},[1040,2859,2860],{"class":1049}," chat.regenerate()\n",[1040,2862,2863],{"class":1042,"line":1193},[1040,2864,1260],{"emptyLinePlaceholder":21},[1040,2866,2867],{"class":1042,"line":1202},[1040,2868,2869],{"class":1173},"\u002F\u002F Access chat state\n",[1040,2871,2872,2874],{"class":1042,"line":1208},[1040,2873,1186],{"class":1185},[1040,2875,2876],{"class":1189}," :messages=\"messages\"\n",[1040,2878,2879,2881],{"class":1042,"line":1268},[1040,2880,1186],{"class":1185},[1040,2882,2883],{"class":1189}," :status=\"status\"\n",[1040,2885,2886,2888],{"class":1042,"line":1274},[1040,2887,1196],{"class":1185},[1040,2889,2890],{"class":1049}," :messages=\"chat.messages\"\n",[1040,2892,2893,2895],{"class":1042,"line":1280},[1040,2894,1196],{"class":1185},[1040,2896,2897],{"class":1049}," :status=\"chat.status\"\n",[1008,2899,2900],{"start":1202},[1011,2901,1013,2902,1017,2905,2908,2909,2911,2912,2915,2916,2919],{},[980,2903,2904],{},"\u003CMDC>",[980,2906,2907],{},"\u003CComark>"," for parts-based rendering. The ",[980,2910,2434],{}," component is purpose-built for streaming Markdown, it incrementally renders tokens as they arrive from the AI. Use AI SDK helpers and the ",[980,2913,2914],{},"isPartStreaming"," utility from ",[980,2917,2918],{},"@nuxt\u002Fui\u002Futils\u002Fai",".",[985,2921,2922,2929],{},[971,2923,2924,2925,2928],{},"When using the ",[980,2926,2927],{},"highlight"," plugin, add the following CSS to your stylesheet for dark mode support:",[1030,2930,2935],{"className":2931,"code":2932,"filename":2933,"language":2934,"meta":1036,"style":1036},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","html.dark .shiki span {\n  color: var(--shiki-dark) !important;\n  background-color: var(--shiki-dark-bg) !important;\n  font-style: var(--shiki-dark-font-style) !important;\n  font-weight: var(--shiki-dark-font-weight) !important;\n  text-decoration: var(--shiki-dark-text-decoration) !important;\n}\n","main.css","css",[980,2936,2937,2959,2987,3007,3027,3047,3067],{"__ignoreMap":1036},[1040,2938,2939,2942,2944,2947,2950,2953,2956],{"class":1042,"line":1043},[1040,2940,2941],{"class":1046},"html",[1040,2943,2919],{"class":1185},[1040,2945,2946],{"class":1046},"dark",[1040,2948,2949],{"class":1185}," .",[1040,2951,2952],{"class":1046},"shiki",[1040,2954,2955],{"class":1046}," span",[1040,2957,2958],{"class":1185}," {\n",[1040,2960,2961,2965,2967,2971,2974,2977,2980,2984],{"class":1042,"line":1056},[1040,2962,2964],{"class":2963},"sqsOY","  color",[1040,2966,1024],{"class":1185},[1040,2968,2970],{"class":2969},"s2Zo4"," var",[1040,2972,2973],{"class":1185},"(",[1040,2975,2976],{"class":1173},"--shiki-dark",[1040,2978,2979],{"class":1185},")",[1040,2981,2983],{"class":2982},"sbssI"," !important",[1040,2985,2986],{"class":1185},";\n",[1040,2988,2989,2992,2994,2996,2998,3001,3003,3005],{"class":1042,"line":1182},[1040,2990,2991],{"class":2963},"  background-color",[1040,2993,1024],{"class":1185},[1040,2995,2970],{"class":2969},[1040,2997,2973],{"class":1185},[1040,2999,3000],{"class":1173},"--shiki-dark-bg",[1040,3002,2979],{"class":1185},[1040,3004,2983],{"class":2982},[1040,3006,2986],{"class":1185},[1040,3008,3009,3012,3014,3016,3018,3021,3023,3025],{"class":1042,"line":1193},[1040,3010,3011],{"class":2963},"  font-style",[1040,3013,1024],{"class":1185},[1040,3015,2970],{"class":2969},[1040,3017,2973],{"class":1185},[1040,3019,3020],{"class":1173},"--shiki-dark-font-style",[1040,3022,2979],{"class":1185},[1040,3024,2983],{"class":2982},[1040,3026,2986],{"class":1185},[1040,3028,3029,3032,3034,3036,3038,3041,3043,3045],{"class":1042,"line":1202},[1040,3030,3031],{"class":2963},"  font-weight",[1040,3033,1024],{"class":1185},[1040,3035,2970],{"class":2969},[1040,3037,2973],{"class":1185},[1040,3039,3040],{"class":1173},"--shiki-dark-font-weight",[1040,3042,2979],{"class":1185},[1040,3044,2983],{"class":2982},[1040,3046,2986],{"class":1185},[1040,3048,3049,3052,3054,3056,3058,3061,3063,3065],{"class":1042,"line":1208},[1040,3050,3051],{"class":2963},"  text-decoration",[1040,3053,1024],{"class":1185},[1040,3055,2970],{"class":2969},[1040,3057,2973],{"class":1185},[1040,3059,3060],{"class":1173},"--shiki-dark-text-decoration",[1040,3062,2979],{"class":1185},[1040,3064,2983],{"class":2982},[1040,3066,2986],{"class":1185},[1040,3068,3069],{"class":1042,"line":1268},[1040,3070,2505],{"class":1185},[1143,3072,3073,3678],{},[1146,3074,3075],{"v-slot:nuxt":1036},[1030,3076,3079],{"className":3077,"code":3078,"language":34,"meta":1036,"style":1036},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { isReasoningUIPart, isTextUIPart } from 'ai'\nimport { isPartStreaming } from '@nuxt\u002Fui\u002Futils\u002Fai'\nimport highlight from '@comark\u002Fnuxt\u002Fplugins\u002Fhighlight'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUChatMessages :messages=\"chat.messages\" :status=\"chat.status\">\n    \u003Ctemplate #content=\"{ message }\">\n      \u003Ctemplate v-for=\"(part, index) in message.parts\" :key=\"`${message.id}-${part.type}-${index}`\">\n        \u003CUChatReasoning\n          v-if=\"isReasoningUIPart(part)\"\n          :text=\"part.text\"\n          :streaming=\"isPartStreaming(part)\"\n        >\n          \u003CComark\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n        \u003C\u002FUChatReasoning>\n\n        \u003Ctemplate v-else-if=\"isTextUIPart(part)\">\n          \u003CComark\n            v-if=\"message.role === 'assistant'\"\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n          \u003Cp v-else-if=\"message.role === 'user'\" class=\"whitespace-pre-wrap\">\n            {{ part.text }}\n          \u003C\u002Fp>\n        \u003C\u002Ftemplate>\n      \u003C\u002Ftemplate>\n    \u003C\u002Ftemplate>\n  \u003C\u002FUChatMessages>\n\u003C\u002Ftemplate>\n",[980,3080,3081,3110,3142,3161,3178,3187,3191,3199,3233,3262,3344,3352,3367,3381,3395,3400,3408,3421,3434,3448,3462,3467,3477,3481,3504,3510,3525,3538,3551,3564,3577,3582,3614,3620,3630,3639,3649,3659,3669],{"__ignoreMap":1036},[1040,3082,3083,3086,3089,3093,3096,3099,3102,3105,3107],{"class":1042,"line":1043},[1040,3084,3085],{"class":1185},"\u003C",[1040,3087,3088],{"class":1189},"script",[1040,3090,3092],{"class":3091},"spNyl"," setup",[1040,3094,3095],{"class":3091}," lang",[1040,3097,3098],{"class":1185},"=",[1040,3100,3101],{"class":1185},"\"",[1040,3103,3104],{"class":1049},"ts",[1040,3106,3101],{"class":1185},[1040,3108,3109],{"class":1185},">\n",[1040,3111,3112,3116,3119,3122,3125,3128,3131,3134,3137,3139],{"class":1042,"line":1056},[1040,3113,3115],{"class":3114},"s7zQu","import",[1040,3117,3118],{"class":1185}," {",[1040,3120,3121],{"class":1173}," isReasoningUIPart",[1040,3123,3124],{"class":1185},",",[1040,3126,3127],{"class":1173}," isTextUIPart",[1040,3129,3130],{"class":1185}," }",[1040,3132,3133],{"class":3114}," from",[1040,3135,3136],{"class":1185}," '",[1040,3138,2424],{"class":1049},[1040,3140,3141],{"class":1185},"'\n",[1040,3143,3144,3146,3148,3151,3153,3155,3157,3159],{"class":1042,"line":1182},[1040,3145,3115],{"class":3114},[1040,3147,3118],{"class":1185},[1040,3149,3150],{"class":1173}," isPartStreaming",[1040,3152,3130],{"class":1185},[1040,3154,3133],{"class":3114},[1040,3156,3136],{"class":1185},[1040,3158,2918],{"class":1049},[1040,3160,3141],{"class":1185},[1040,3162,3163,3165,3168,3171,3173,3176],{"class":1042,"line":1193},[1040,3164,3115],{"class":3114},[1040,3166,3167],{"class":1173}," highlight ",[1040,3169,3170],{"class":3114},"from",[1040,3172,3136],{"class":1185},[1040,3174,3175],{"class":1049},"@comark\u002Fnuxt\u002Fplugins\u002Fhighlight",[1040,3177,3141],{"class":1185},[1040,3179,3180,3183,3185],{"class":1042,"line":1202},[1040,3181,3182],{"class":1185},"\u003C\u002F",[1040,3184,3088],{"class":1189},[1040,3186,3109],{"class":1185},[1040,3188,3189],{"class":1042,"line":1208},[1040,3190,1260],{"emptyLinePlaceholder":21},[1040,3192,3193,3195,3197],{"class":1042,"line":1268},[1040,3194,3085],{"class":1185},[1040,3196,1146],{"class":1189},[1040,3198,3109],{"class":1185},[1040,3200,3201,3204,3207,3210,3212,3214,3217,3219,3222,3224,3226,3229,3231],{"class":1042,"line":1274},[1040,3202,3203],{"class":1185},"  \u003C",[1040,3205,3206],{"class":1189},"UChatMessages",[1040,3208,3209],{"class":3091}," :messages",[1040,3211,3098],{"class":1185},[1040,3213,3101],{"class":1185},[1040,3215,3216],{"class":1049},"chat.messages",[1040,3218,3101],{"class":1185},[1040,3220,3221],{"class":3091}," :status",[1040,3223,3098],{"class":1185},[1040,3225,3101],{"class":1185},[1040,3227,3228],{"class":1049},"chat.status",[1040,3230,3101],{"class":1185},[1040,3232,3109],{"class":1185},[1040,3234,3235,3238,3240,3243,3245,3247,3249,3252,3255,3258,3260],{"class":1042,"line":1280},[1040,3236,3237],{"class":1185},"    \u003C",[1040,3239,1146],{"class":1189},[1040,3241,3242],{"class":1185}," #",[1040,3244,371],{"class":3091},[1040,3246,3098],{"class":1185},[1040,3248,3101],{"class":1185},[1040,3250,3251],{"class":1185},"{",[1040,3253,3254],{"class":1173}," message ",[1040,3256,3257],{"class":1185},"}",[1040,3259,3101],{"class":1185},[1040,3261,3109],{"class":1185},[1040,3263,3264,3267,3269,3272,3274,3276,3279,3281,3284,3287,3290,3292,3294,3296,3299,3302,3304,3307,3310,3312,3315,3317,3319,3322,3325,3327,3330,3332,3334,3336,3339,3342],{"class":1042,"line":1288},[1040,3265,3266],{"class":1185},"      \u003C",[1040,3268,1146],{"class":1189},[1040,3270,3271],{"class":3114}," v-for",[1040,3273,3098],{"class":1185},[1040,3275,3101],{"class":1185},[1040,3277,3278],{"class":1173},"(part",[1040,3280,3124],{"class":1185},[1040,3282,3283],{"class":1173}," index) ",[1040,3285,3286],{"class":1185},"in",[1040,3288,3289],{"class":1173}," message",[1040,3291,2919],{"class":1185},[1040,3293,2736],{"class":1173},[1040,3295,3101],{"class":1185},[1040,3297,3298],{"class":1185}," :",[1040,3300,3301],{"class":3091},"key",[1040,3303,3098],{"class":1185},[1040,3305,3306],{"class":1185},"\"`${",[1040,3308,3309],{"class":1173},"message",[1040,3311,2919],{"class":1185},[1040,3313,3314],{"class":1173},"id",[1040,3316,3257],{"class":1185},[1040,3318,1186],{"class":1049},[1040,3320,3321],{"class":1185},"${",[1040,3323,3324],{"class":1173},"part",[1040,3326,2919],{"class":1185},[1040,3328,3329],{"class":1173},"type",[1040,3331,3257],{"class":1185},[1040,3333,1186],{"class":1049},[1040,3335,3321],{"class":1185},[1040,3337,3338],{"class":1173},"index",[1040,3340,3341],{"class":1185},"}`\"",[1040,3343,3109],{"class":1185},[1040,3345,3346,3349],{"class":1042,"line":1296},[1040,3347,3348],{"class":1185},"        \u003C",[1040,3350,3351],{"class":1189},"UChatReasoning\n",[1040,3353,3354,3357,3359,3361,3364],{"class":1042,"line":1302},[1040,3355,3356],{"class":3091},"          v-if",[1040,3358,3098],{"class":1185},[1040,3360,3101],{"class":1185},[1040,3362,3363],{"class":1049},"isReasoningUIPart(part)",[1040,3365,3366],{"class":1185},"\"\n",[1040,3368,3369,3372,3374,3376,3379],{"class":1042,"line":1308},[1040,3370,3371],{"class":3091},"          :text",[1040,3373,3098],{"class":1185},[1040,3375,3101],{"class":1185},[1040,3377,3378],{"class":1049},"part.text",[1040,3380,3366],{"class":1185},[1040,3382,3383,3386,3388,3390,3393],{"class":1042,"line":1314},[1040,3384,3385],{"class":3091},"          :streaming",[1040,3387,3098],{"class":1185},[1040,3389,3101],{"class":1185},[1040,3391,3392],{"class":1049},"isPartStreaming(part)",[1040,3394,3366],{"class":1185},[1040,3396,3397],{"class":1042,"line":1320},[1040,3398,3399],{"class":1185},"        >\n",[1040,3401,3402,3405],{"class":1042,"line":1326},[1040,3403,3404],{"class":1185},"          \u003C",[1040,3406,3407],{"class":1189},"Comark\n",[1040,3409,3410,3413,3415,3417,3419],{"class":1042,"line":1332},[1040,3411,3412],{"class":3091},"            :markdown",[1040,3414,3098],{"class":1185},[1040,3416,3101],{"class":1185},[1040,3418,3378],{"class":1049},[1040,3420,3366],{"class":1185},[1040,3422,3423,3426,3428,3430,3432],{"class":1042,"line":1338},[1040,3424,3425],{"class":3091},"            :streaming",[1040,3427,3098],{"class":1185},[1040,3429,3101],{"class":1185},[1040,3431,3392],{"class":1049},[1040,3433,3366],{"class":1185},[1040,3435,3436,3439,3441,3443,3446],{"class":1042,"line":1343},[1040,3437,3438],{"class":3091},"            :plugins",[1040,3440,3098],{"class":1185},[1040,3442,3101],{"class":1185},[1040,3444,3445],{"class":1049},"[highlight()]",[1040,3447,3366],{"class":1185},[1040,3449,3450,3453,3455,3457,3460],{"class":1042,"line":1489},[1040,3451,3452],{"class":3091},"            class",[1040,3454,3098],{"class":1185},[1040,3456,3101],{"class":1185},[1040,3458,3459],{"class":1049},"*:first:mt-0 *:last:mb-0",[1040,3461,3366],{"class":1185},[1040,3463,3464],{"class":1042,"line":1622},[1040,3465,3466],{"class":1185},"          \u002F>\n",[1040,3468,3469,3472,3475],{"class":1042,"line":1629},[1040,3470,3471],{"class":1185},"        \u003C\u002F",[1040,3473,3474],{"class":1189},"UChatReasoning",[1040,3476,3109],{"class":1185},[1040,3478,3479],{"class":1042,"line":1636},[1040,3480,1260],{"emptyLinePlaceholder":21},[1040,3482,3483,3485,3487,3490,3492,3494,3497,3500,3502],{"class":1042,"line":1641},[1040,3484,3348],{"class":1185},[1040,3486,1146],{"class":1189},[1040,3488,3489],{"class":3114}," v-else-if",[1040,3491,3098],{"class":1185},[1040,3493,3101],{"class":1185},[1040,3495,3496],{"class":2969},"isTextUIPart",[1040,3498,3499],{"class":1173},"(part)",[1040,3501,3101],{"class":1185},[1040,3503,3109],{"class":1185},[1040,3505,3506,3508],{"class":1042,"line":1646},[1040,3507,3404],{"class":1185},[1040,3509,3407],{"class":1189},[1040,3511,3513,3516,3518,3520,3523],{"class":1042,"line":3512},26,[1040,3514,3515],{"class":3091},"            v-if",[1040,3517,3098],{"class":1185},[1040,3519,3101],{"class":1185},[1040,3521,3522],{"class":1049},"message.role === 'assistant'",[1040,3524,3366],{"class":1185},[1040,3526,3528,3530,3532,3534,3536],{"class":1042,"line":3527},27,[1040,3529,3412],{"class":3091},[1040,3531,3098],{"class":1185},[1040,3533,3101],{"class":1185},[1040,3535,3378],{"class":1049},[1040,3537,3366],{"class":1185},[1040,3539,3541,3543,3545,3547,3549],{"class":1042,"line":3540},28,[1040,3542,3425],{"class":3091},[1040,3544,3098],{"class":1185},[1040,3546,3101],{"class":1185},[1040,3548,3392],{"class":1049},[1040,3550,3366],{"class":1185},[1040,3552,3554,3556,3558,3560,3562],{"class":1042,"line":3553},29,[1040,3555,3438],{"class":3091},[1040,3557,3098],{"class":1185},[1040,3559,3101],{"class":1185},[1040,3561,3445],{"class":1049},[1040,3563,3366],{"class":1185},[1040,3565,3567,3569,3571,3573,3575],{"class":1042,"line":3566},30,[1040,3568,3452],{"class":3091},[1040,3570,3098],{"class":1185},[1040,3572,3101],{"class":1185},[1040,3574,3459],{"class":1049},[1040,3576,3366],{"class":1185},[1040,3578,3580],{"class":1042,"line":3579},31,[1040,3581,3466],{"class":1185},[1040,3583,3585,3587,3589,3591,3593,3595,3598,3600,3603,3605,3607,3610,3612],{"class":1042,"line":3584},32,[1040,3586,3404],{"class":1185},[1040,3588,971],{"class":1189},[1040,3590,3489],{"class":3091},[1040,3592,3098],{"class":1185},[1040,3594,3101],{"class":1185},[1040,3596,3597],{"class":1049},"message.role === 'user'",[1040,3599,3101],{"class":1185},[1040,3601,3602],{"class":3091}," class",[1040,3604,3098],{"class":1185},[1040,3606,3101],{"class":1185},[1040,3608,3609],{"class":1049},"whitespace-pre-wrap",[1040,3611,3101],{"class":1185},[1040,3613,3109],{"class":1185},[1040,3615,3617],{"class":1042,"line":3616},33,[1040,3618,3619],{"class":1173},"            {{ part.text }}\n",[1040,3621,3623,3626,3628],{"class":1042,"line":3622},34,[1040,3624,3625],{"class":1185},"          \u003C\u002F",[1040,3627,971],{"class":1189},[1040,3629,3109],{"class":1185},[1040,3631,3633,3635,3637],{"class":1042,"line":3632},35,[1040,3634,3471],{"class":1185},[1040,3636,1146],{"class":1189},[1040,3638,3109],{"class":1185},[1040,3640,3642,3645,3647],{"class":1042,"line":3641},36,[1040,3643,3644],{"class":1185},"      \u003C\u002F",[1040,3646,1146],{"class":1189},[1040,3648,3109],{"class":1185},[1040,3650,3652,3655,3657],{"class":1042,"line":3651},37,[1040,3653,3654],{"class":1185},"    \u003C\u002F",[1040,3656,1146],{"class":1189},[1040,3658,3109],{"class":1185},[1040,3660,3662,3665,3667],{"class":1042,"line":3661},38,[1040,3663,3664],{"class":1185},"  \u003C\u002F",[1040,3666,3206],{"class":1189},[1040,3668,3109],{"class":1185},[1040,3670,3672,3674,3676],{"class":1042,"line":3671},39,[1040,3673,3182],{"class":1185},[1040,3675,1146],{"class":1189},[1040,3677,3109],{"class":1185},[1146,3679,3680],{"v-slot:vue":1036},[1030,3681,3683],{"className":3077,"code":3682,"language":34,"meta":1036,"style":1036},"\u003Cscript setup lang=\"ts\">\nimport { isReasoningUIPart, isTextUIPart } from 'ai'\nimport { isPartStreaming } from '@nuxt\u002Fui\u002Futils\u002Fai'\nimport { Comark } from '@comark\u002Fvue'\nimport highlight from '@comark\u002Fvue\u002Fplugins\u002Fhighlight'\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUChatMessages :messages=\"chat.messages\" :status=\"chat.status\">\n    \u003Ctemplate #content=\"{ message }\">\n      \u003Ctemplate v-for=\"(part, index) in message.parts\" :key=\"`${message.id}-${part.type}-${index}`\">\n        \u003CUChatReasoning\n          v-if=\"isReasoningUIPart(part)\"\n          :text=\"part.text\"\n          :streaming=\"isPartStreaming(part)\"\n        >\n          \u003CComark\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n        \u003C\u002FUChatReasoning>\n\n        \u003Ctemplate v-else-if=\"isTextUIPart(part)\">\n          \u003CComark\n            v-if=\"message.role === 'assistant'\"\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n          \u003Cp v-else-if=\"message.role === 'user'\" class=\"whitespace-pre-wrap\">\n            {{ part.text }}\n          \u003C\u002Fp>\n        \u003C\u002Ftemplate>\n      \u003C\u002Ftemplate>\n    \u003C\u002Ftemplate>\n  \u003C\u002FUChatMessages>\n\u003C\u002Ftemplate>\n",[980,3684,3685,3705,3727,3745,3765,3780,3788,3792,3800,3828,3852,3918,3924,3936,3948,3960,3964,3970,3982,3994,4006,4018,4022,4030,4034,4054,4060,4072,4084,4096,4108,4120,4124,4152,4156,4164,4172,4180,4188,4196],{"__ignoreMap":1036},[1040,3686,3687,3689,3691,3693,3695,3697,3699,3701,3703],{"class":1042,"line":1043},[1040,3688,3085],{"class":1185},[1040,3690,3088],{"class":1189},[1040,3692,3092],{"class":3091},[1040,3694,3095],{"class":3091},[1040,3696,3098],{"class":1185},[1040,3698,3101],{"class":1185},[1040,3700,3104],{"class":1049},[1040,3702,3101],{"class":1185},[1040,3704,3109],{"class":1185},[1040,3706,3707,3709,3711,3713,3715,3717,3719,3721,3723,3725],{"class":1042,"line":1056},[1040,3708,3115],{"class":3114},[1040,3710,3118],{"class":1185},[1040,3712,3121],{"class":1173},[1040,3714,3124],{"class":1185},[1040,3716,3127],{"class":1173},[1040,3718,3130],{"class":1185},[1040,3720,3133],{"class":3114},[1040,3722,3136],{"class":1185},[1040,3724,2424],{"class":1049},[1040,3726,3141],{"class":1185},[1040,3728,3729,3731,3733,3735,3737,3739,3741,3743],{"class":1042,"line":1182},[1040,3730,3115],{"class":3114},[1040,3732,3118],{"class":1185},[1040,3734,3150],{"class":1173},[1040,3736,3130],{"class":1185},[1040,3738,3133],{"class":3114},[1040,3740,3136],{"class":1185},[1040,3742,2918],{"class":1049},[1040,3744,3141],{"class":1185},[1040,3746,3747,3749,3751,3754,3756,3758,3760,3763],{"class":1042,"line":1193},[1040,3748,3115],{"class":3114},[1040,3750,3118],{"class":1185},[1040,3752,3753],{"class":1173}," Comark",[1040,3755,3130],{"class":1185},[1040,3757,3133],{"class":3114},[1040,3759,3136],{"class":1185},[1040,3761,3762],{"class":1049},"@comark\u002Fvue",[1040,3764,3141],{"class":1185},[1040,3766,3767,3769,3771,3773,3775,3778],{"class":1042,"line":1202},[1040,3768,3115],{"class":3114},[1040,3770,3167],{"class":1173},[1040,3772,3170],{"class":3114},[1040,3774,3136],{"class":1185},[1040,3776,3777],{"class":1049},"@comark\u002Fvue\u002Fplugins\u002Fhighlight",[1040,3779,3141],{"class":1185},[1040,3781,3782,3784,3786],{"class":1042,"line":1208},[1040,3783,3182],{"class":1185},[1040,3785,3088],{"class":1189},[1040,3787,3109],{"class":1185},[1040,3789,3790],{"class":1042,"line":1268},[1040,3791,1260],{"emptyLinePlaceholder":21},[1040,3793,3794,3796,3798],{"class":1042,"line":1274},[1040,3795,3085],{"class":1185},[1040,3797,1146],{"class":1189},[1040,3799,3109],{"class":1185},[1040,3801,3802,3804,3806,3808,3810,3812,3814,3816,3818,3820,3822,3824,3826],{"class":1042,"line":1280},[1040,3803,3203],{"class":1185},[1040,3805,3206],{"class":1189},[1040,3807,3209],{"class":3091},[1040,3809,3098],{"class":1185},[1040,3811,3101],{"class":1185},[1040,3813,3216],{"class":1049},[1040,3815,3101],{"class":1185},[1040,3817,3221],{"class":3091},[1040,3819,3098],{"class":1185},[1040,3821,3101],{"class":1185},[1040,3823,3228],{"class":1049},[1040,3825,3101],{"class":1185},[1040,3827,3109],{"class":1185},[1040,3829,3830,3832,3834,3836,3838,3840,3842,3844,3846,3848,3850],{"class":1042,"line":1288},[1040,3831,3237],{"class":1185},[1040,3833,1146],{"class":1189},[1040,3835,3242],{"class":1185},[1040,3837,371],{"class":3091},[1040,3839,3098],{"class":1185},[1040,3841,3101],{"class":1185},[1040,3843,3251],{"class":1185},[1040,3845,3254],{"class":1173},[1040,3847,3257],{"class":1185},[1040,3849,3101],{"class":1185},[1040,3851,3109],{"class":1185},[1040,3853,3854,3856,3858,3860,3862,3864,3866,3868,3870,3872,3874,3876,3878,3880,3882,3884,3886,3888,3890,3892,3894,3896,3898,3900,3902,3904,3906,3908,3910,3912,3914,3916],{"class":1042,"line":1296},[1040,3855,3266],{"class":1185},[1040,3857,1146],{"class":1189},[1040,3859,3271],{"class":3114},[1040,3861,3098],{"class":1185},[1040,3863,3101],{"class":1185},[1040,3865,3278],{"class":1173},[1040,3867,3124],{"class":1185},[1040,3869,3283],{"class":1173},[1040,3871,3286],{"class":1185},[1040,3873,3289],{"class":1173},[1040,3875,2919],{"class":1185},[1040,3877,2736],{"class":1173},[1040,3879,3101],{"class":1185},[1040,3881,3298],{"class":1185},[1040,3883,3301],{"class":3091},[1040,3885,3098],{"class":1185},[1040,3887,3306],{"class":1185},[1040,3889,3309],{"class":1173},[1040,3891,2919],{"class":1185},[1040,3893,3314],{"class":1173},[1040,3895,3257],{"class":1185},[1040,3897,1186],{"class":1049},[1040,3899,3321],{"class":1185},[1040,3901,3324],{"class":1173},[1040,3903,2919],{"class":1185},[1040,3905,3329],{"class":1173},[1040,3907,3257],{"class":1185},[1040,3909,1186],{"class":1049},[1040,3911,3321],{"class":1185},[1040,3913,3338],{"class":1173},[1040,3915,3341],{"class":1185},[1040,3917,3109],{"class":1185},[1040,3919,3920,3922],{"class":1042,"line":1302},[1040,3921,3348],{"class":1185},[1040,3923,3351],{"class":1189},[1040,3925,3926,3928,3930,3932,3934],{"class":1042,"line":1308},[1040,3927,3356],{"class":3091},[1040,3929,3098],{"class":1185},[1040,3931,3101],{"class":1185},[1040,3933,3363],{"class":1049},[1040,3935,3366],{"class":1185},[1040,3937,3938,3940,3942,3944,3946],{"class":1042,"line":1314},[1040,3939,3371],{"class":3091},[1040,3941,3098],{"class":1185},[1040,3943,3101],{"class":1185},[1040,3945,3378],{"class":1049},[1040,3947,3366],{"class":1185},[1040,3949,3950,3952,3954,3956,3958],{"class":1042,"line":1320},[1040,3951,3385],{"class":3091},[1040,3953,3098],{"class":1185},[1040,3955,3101],{"class":1185},[1040,3957,3392],{"class":1049},[1040,3959,3366],{"class":1185},[1040,3961,3962],{"class":1042,"line":1326},[1040,3963,3399],{"class":1185},[1040,3965,3966,3968],{"class":1042,"line":1332},[1040,3967,3404],{"class":1185},[1040,3969,3407],{"class":1189},[1040,3971,3972,3974,3976,3978,3980],{"class":1042,"line":1338},[1040,3973,3412],{"class":3091},[1040,3975,3098],{"class":1185},[1040,3977,3101],{"class":1185},[1040,3979,3378],{"class":1049},[1040,3981,3366],{"class":1185},[1040,3983,3984,3986,3988,3990,3992],{"class":1042,"line":1343},[1040,3985,3425],{"class":3091},[1040,3987,3098],{"class":1185},[1040,3989,3101],{"class":1185},[1040,3991,3392],{"class":1049},[1040,3993,3366],{"class":1185},[1040,3995,3996,3998,4000,4002,4004],{"class":1042,"line":1489},[1040,3997,3438],{"class":3091},[1040,3999,3098],{"class":1185},[1040,4001,3101],{"class":1185},[1040,4003,3445],{"class":1049},[1040,4005,3366],{"class":1185},[1040,4007,4008,4010,4012,4014,4016],{"class":1042,"line":1622},[1040,4009,3452],{"class":3091},[1040,4011,3098],{"class":1185},[1040,4013,3101],{"class":1185},[1040,4015,3459],{"class":1049},[1040,4017,3366],{"class":1185},[1040,4019,4020],{"class":1042,"line":1629},[1040,4021,3466],{"class":1185},[1040,4023,4024,4026,4028],{"class":1042,"line":1636},[1040,4025,3471],{"class":1185},[1040,4027,3474],{"class":1189},[1040,4029,3109],{"class":1185},[1040,4031,4032],{"class":1042,"line":1641},[1040,4033,1260],{"emptyLinePlaceholder":21},[1040,4035,4036,4038,4040,4042,4044,4046,4048,4050,4052],{"class":1042,"line":1646},[1040,4037,3348],{"class":1185},[1040,4039,1146],{"class":1189},[1040,4041,3489],{"class":3114},[1040,4043,3098],{"class":1185},[1040,4045,3101],{"class":1185},[1040,4047,3496],{"class":2969},[1040,4049,3499],{"class":1173},[1040,4051,3101],{"class":1185},[1040,4053,3109],{"class":1185},[1040,4055,4056,4058],{"class":1042,"line":3512},[1040,4057,3404],{"class":1185},[1040,4059,3407],{"class":1189},[1040,4061,4062,4064,4066,4068,4070],{"class":1042,"line":3527},[1040,4063,3515],{"class":3091},[1040,4065,3098],{"class":1185},[1040,4067,3101],{"class":1185},[1040,4069,3522],{"class":1049},[1040,4071,3366],{"class":1185},[1040,4073,4074,4076,4078,4080,4082],{"class":1042,"line":3540},[1040,4075,3412],{"class":3091},[1040,4077,3098],{"class":1185},[1040,4079,3101],{"class":1185},[1040,4081,3378],{"class":1049},[1040,4083,3366],{"class":1185},[1040,4085,4086,4088,4090,4092,4094],{"class":1042,"line":3553},[1040,4087,3425],{"class":3091},[1040,4089,3098],{"class":1185},[1040,4091,3101],{"class":1185},[1040,4093,3392],{"class":1049},[1040,4095,3366],{"class":1185},[1040,4097,4098,4100,4102,4104,4106],{"class":1042,"line":3566},[1040,4099,3438],{"class":3091},[1040,4101,3098],{"class":1185},[1040,4103,3101],{"class":1185},[1040,4105,3445],{"class":1049},[1040,4107,3366],{"class":1185},[1040,4109,4110,4112,4114,4116,4118],{"class":1042,"line":3579},[1040,4111,3452],{"class":3091},[1040,4113,3098],{"class":1185},[1040,4115,3101],{"class":1185},[1040,4117,3459],{"class":1049},[1040,4119,3366],{"class":1185},[1040,4121,4122],{"class":1042,"line":3584},[1040,4123,3466],{"class":1185},[1040,4125,4126,4128,4130,4132,4134,4136,4138,4140,4142,4144,4146,4148,4150],{"class":1042,"line":3616},[1040,4127,3404],{"class":1185},[1040,4129,971],{"class":1189},[1040,4131,3489],{"class":3091},[1040,4133,3098],{"class":1185},[1040,4135,3101],{"class":1185},[1040,4137,3597],{"class":1049},[1040,4139,3101],{"class":1185},[1040,4141,3602],{"class":3091},[1040,4143,3098],{"class":1185},[1040,4145,3101],{"class":1185},[1040,4147,3609],{"class":1049},[1040,4149,3101],{"class":1185},[1040,4151,3109],{"class":1185},[1040,4153,4154],{"class":1042,"line":3622},[1040,4155,3619],{"class":1173},[1040,4157,4158,4160,4162],{"class":1042,"line":3632},[1040,4159,3625],{"class":1185},[1040,4161,971],{"class":1189},[1040,4163,3109],{"class":1185},[1040,4165,4166,4168,4170],{"class":1042,"line":3641},[1040,4167,3471],{"class":1185},[1040,4169,1146],{"class":1189},[1040,4171,3109],{"class":1185},[1040,4173,4174,4176,4178],{"class":1042,"line":3651},[1040,4175,3644],{"class":1185},[1040,4177,1146],{"class":1189},[1040,4179,3109],{"class":1185},[1040,4181,4182,4184,4186],{"class":1042,"line":3661},[1040,4183,3654],{"class":1185},[1040,4185,1146],{"class":1189},[1040,4187,3109],{"class":1185},[1040,4189,4190,4192,4194],{"class":1042,"line":3671},[1040,4191,3664],{"class":1185},[1040,4193,3206],{"class":1189},[1040,4195,3109],{"class":1185},[1040,4197,4199,4201,4203],{"class":1042,"line":4198},40,[1040,4200,3182],{"class":1185},[1040,4202,1146],{"class":1189},[1040,4204,3109],{"class":1185},[985,4206,4209],{"target":4207,"to":4208},"_blank","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fmigration-guides\u002Fmigration-guide-5-0",[971,4210,4211,4212,2919],{},"For more details on AI SDK v5 changes, review the ",[975,4213,4214],{},"official AI SDK v5 migration guide",[4216,4217,4219],"tip",{"target":4207,"to":4218},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F4698",[971,4220,4221,4222,4225],{},"View all changes from AI SDK v4 to v5 ",[975,4223,4224],{},"in the upgrade PR"," for a detailed migration reference.",[4227,4228,4229],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .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 .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sqsOY, html code.shiki .sqsOY{--shiki-light:#8796B0;--shiki-default:#B2CCD6;--shiki-dark:#B2CCD6}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}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}",{"title":1036,"searchDepth":1056,"depth":1056,"links":4231},[4232,4236],{"id":1000,"depth":1056,"text":1001,"children":4233},[4234,4235],{"id":1005,"depth":1182,"text":1006},{"id":1786,"depth":1182,"text":1787},{"id":1857,"depth":1056,"text":1858,"children":4237},[4238,4239,4240,4241,4242,4243,4244],{"id":1864,"depth":1182,"text":1865},{"id":1933,"depth":1182,"text":1934},{"id":1973,"depth":1182,"text":1974},{"id":2056,"depth":1182,"text":2057},{"id":2160,"depth":1182,"text":2161},{"id":2330,"depth":1182,"text":2331},{"id":2398,"depth":1182,"text":2399},"md",[4247],{"label":4248,"to":4249,"icon":39},"Migration to v3","\u002Fdocs\u002Fgetting-started\u002Fmigration\u002Fv3",{},{"title":38,"icon":39},{"title":966,"description":46},"NtAPVuzkSNsaGfDK9B1lIOOMryFt-tz3tuHRoIUL0-4",{"data":4255,"body":4256},{},{"type":4257,"children":4258},"root",[4259],{"type":178,"tag":971,"props":4260,"children":4261},{},[4262],{"type":4263,"value":46},"text",1776437660599]