[{"data":1,"prerenderedAt":4258},["ShallowReactive",2],{"navigation":3,"-docs-getting-started-migration-v4":958,"-docs-getting-started-migration-v4-description":4248},[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":957},"Typography","\u002Fdocs\u002Ftypography","docs\u002F4.typography\u002F1.index",[862,864,869,874,879,884,889,893,898,902,907,912,917,922,927,931,936,940,944,948,953],{"title":15,"path":859,"stem":860,"framework":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},"Steps","\u002Fdocs\u002Ftypography\u002Fsteps","docs\u002F4.typography\u002Fsteps","Transform headings into numbered step-by-step guides and tutorials.",{"title":778,"path":954,"stem":955,"framework":16,"category":887,"description":956},"\u002Fdocs\u002Ftypography\u002Ftabs","docs\u002F4.typography\u002Ftabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":959,"title":960,"body":961,"category":16,"description":46,"extension":4239,"framework":16,"index":36,"links":4240,"meta":4244,"navigation":4245,"path":44,"seo":4246,"stem":45,"__hash__":4247},"docs\u002Fdocs\u002F1.getting-started\u002F3.migration\u002F1.v4.md","Migration to v4",{"type":962,"value":963,"toc":4224},"minimark",[964,978,988,991,996,1001,1019,1136,1340,1643,1652,1750,1759,1778,1782,1787,1849,1853,1856,1860,1872,1925,1929,1938,1965,1969,1979,2030,2048,2052,2073,2099,2118,2137,2152,2156,2161,2200,2322,2326,2337,2350,2353,2390,2394,2408,2434,2594,2605,2723,2734,2826,2831,2892,2914,3065,4199,4209,4220],[965,966,967,968,972,973,977],"p",{},"Nuxt UI v4 marks a major milestone: ",[969,970,971],"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 ",[974,975,976],"code",{},"@nuxt\u002Fui"," package.",[979,980,981],"note",{},[965,982,983,984,987],{},"Nuxt UI v4 requires ",[969,985,986],{},"Nuxt 4"," due to some dependencies. Make sure to upgrade to Nuxt 4 before migrating to Nuxt UI v4.",[965,989,990],{},"This guide provides step-by-step instructions to migrate your application from v3 to v4.",[992,993,995],"h2",{"id":994},"migrate-your-project","Migrate your project",[997,998,1000],"h3",{"id":999},"from-nuxt-ui-pro","From Nuxt UI Pro",[1002,1003,1004],"ol",{},[1005,1006,1007,1008,1011,1012,1014,1015,1018],"li",{},"Replace ",[974,1009,1010],{},"@nuxt\u002Fui-pro"," with ",[974,1013,976],{}," in your ",[974,1016,1017],{},"package.json",":",[1020,1021,1023,1062,1086,1112],"code-group",{"sync":1022},"pm",[1024,1025,1031],"pre",{"className":1026,"code":1027,"filename":1028,"language":1029,"meta":1030,"style":1030},"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","",[974,1032,1033,1048],{"__ignoreMap":1030},[1034,1035,1038,1041,1045],"span",{"class":1036,"line":1037},"line",1,[1034,1039,1028],{"class":1040},"sBMFI",[1034,1042,1044],{"class":1043},"sfazB"," remove",[1034,1046,1047],{"class":1043}," @nuxt\u002Fui-pro\n",[1034,1049,1051,1053,1056,1059],{"class":1036,"line":1050},2,[1034,1052,1028],{"class":1040},[1034,1054,1055],{"class":1043}," add",[1034,1057,1058],{"class":1043}," @nuxt\u002Fui",[1034,1060,1061],{"class":1043}," tailwindcss\n",[1024,1063,1066],{"className":1026,"code":1064,"filename":1065,"language":1029,"meta":1030,"style":1030},"yarn remove @nuxt\u002Fui-pro\nyarn add @nuxt\u002Fui tailwindcss\n","yarn",[974,1067,1068,1076],{"__ignoreMap":1030},[1034,1069,1070,1072,1074],{"class":1036,"line":1037},[1034,1071,1065],{"class":1040},[1034,1073,1044],{"class":1043},[1034,1075,1047],{"class":1043},[1034,1077,1078,1080,1082,1084],{"class":1036,"line":1050},[1034,1079,1065],{"class":1040},[1034,1081,1055],{"class":1043},[1034,1083,1058],{"class":1043},[1034,1085,1061],{"class":1043},[1024,1087,1090],{"className":1026,"code":1088,"filename":1089,"language":1029,"meta":1030,"style":1030},"npm uninstall @nuxt\u002Fui-pro\nnpm install @nuxt\u002Fui tailwindcss\n","npm",[974,1091,1092,1101],{"__ignoreMap":1030},[1034,1093,1094,1096,1099],{"class":1036,"line":1037},[1034,1095,1089],{"class":1040},[1034,1097,1098],{"class":1043}," uninstall",[1034,1100,1047],{"class":1043},[1034,1102,1103,1105,1108,1110],{"class":1036,"line":1050},[1034,1104,1089],{"class":1040},[1034,1106,1107],{"class":1043}," install",[1034,1109,1058],{"class":1043},[1034,1111,1061],{"class":1043},[1024,1113,1116],{"className":1026,"code":1114,"filename":1115,"language":1029,"meta":1030,"style":1030},"bun remove @nuxt\u002Fui-pro\nbun add @nuxt\u002Fui tailwindcss\n","bun",[974,1117,1118,1126],{"__ignoreMap":1030},[1034,1119,1120,1122,1124],{"class":1036,"line":1037},[1034,1121,1115],{"class":1040},[1034,1123,1044],{"class":1043},[1034,1125,1047],{"class":1043},[1034,1127,1128,1130,1132,1134],{"class":1036,"line":1050},[1034,1129,1115],{"class":1040},[1034,1131,1055],{"class":1043},[1034,1133,1058],{"class":1043},[1034,1135,1061],{"class":1043},[1137,1138,1139,1206],"framework-only",{},[1140,1141,1142],"template",{"v-slot:nuxt":1030},[1143,1144,1145,1156],"div",{},[1002,1146,1147],{"start":1050},[1005,1148,1007,1149,1011,1151,1014,1153,1018],{},[974,1150,1010],{},[974,1152,976],{},[974,1154,1155],{},"nuxt.config.ts",[1024,1157,1161],{"className":1158,"code":1159,"filename":1155,"language":1160,"meta":1030,"style":1030},"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",[974,1162,1163,1169,1174,1185,1194,1200],{"__ignoreMap":1030},[1034,1164,1165],{"class":1036,"line":1037},[1034,1166,1168],{"class":1167},"sTEyZ","export default defineNuxtConfig({\n",[1034,1170,1171],{"class":1036,"line":1050},[1034,1172,1173],{"class":1167},"  modules: [\n",[1034,1175,1177,1181],{"class":1036,"line":1176},3,[1034,1178,1180],{"class":1179},"sMK4o","-",[1034,1182,1184],{"class":1183},"swJcz","   '@nuxt\u002Fui-pro',\n",[1034,1186,1188,1191],{"class":1036,"line":1187},4,[1034,1189,1190],{"class":1179},"+",[1034,1192,1193],{"class":1043},"   '@nuxt\u002Fui'\n",[1034,1195,1197],{"class":1036,"line":1196},5,[1034,1198,1199],{"class":1167},"  ]\n",[1034,1201,1203],{"class":1036,"line":1202},6,[1034,1204,1205],{"class":1167},"})\n",[1140,1207,1208],{"v-slot:vue":1030},[1143,1209,1210,1221],{},[1002,1211,1212],{"start":1050},[1005,1213,1007,1214,1011,1216,1014,1218,1018],{},[974,1215,1010],{},[974,1217,976],{},[974,1219,1220],{},"vite.config.ts",[1024,1222,1224],{"className":1158,"code":1223,"filename":1220,"language":1160,"meta":1030,"style":1030},"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",[974,1225,1226,1231,1236,1243,1250,1255,1260,1266,1272,1280,1288,1294,1300,1306,1312,1318,1324,1330,1335],{"__ignoreMap":1030},[1034,1227,1228],{"class":1036,"line":1037},[1034,1229,1230],{"class":1167},"import { defineConfig } from 'vite'\n",[1034,1232,1233],{"class":1036,"line":1050},[1034,1234,1235],{"class":1167},"import vue from '@vitejs\u002Fplugin-vue'\n",[1034,1237,1238,1240],{"class":1036,"line":1176},[1034,1239,1180],{"class":1179},[1034,1241,1242],{"class":1183}," import uiPro from '@nuxt\u002Fui-pro\u002Fvite'\n",[1034,1244,1245,1247],{"class":1036,"line":1187},[1034,1246,1190],{"class":1179},[1034,1248,1249],{"class":1043}," import ui from '@nuxt\u002Fui\u002Fvite'\n",[1034,1251,1252],{"class":1036,"line":1196},[1034,1253,1254],{"emptyLinePlaceholder":21},"\n",[1034,1256,1257],{"class":1036,"line":1202},[1034,1258,1259],{"class":1167},"export default defineConfig({\n",[1034,1261,1263],{"class":1036,"line":1262},7,[1034,1264,1265],{"class":1167},"  plugins: [\n",[1034,1267,1269],{"class":1036,"line":1268},8,[1034,1270,1271],{"class":1167},"    vue(),\n",[1034,1273,1275,1277],{"class":1036,"line":1274},9,[1034,1276,1180],{"class":1179},[1034,1278,1279],{"class":1183},"   uiPro({\n",[1034,1281,1283,1285],{"class":1036,"line":1282},10,[1034,1284,1190],{"class":1179},[1034,1286,1287],{"class":1043},"   ui({\n",[1034,1289,1291],{"class":1036,"line":1290},11,[1034,1292,1293],{"class":1167},"      ui: {\n",[1034,1295,1297],{"class":1036,"line":1296},12,[1034,1298,1299],{"class":1167},"        colors: {\n",[1034,1301,1303],{"class":1036,"line":1302},13,[1034,1304,1305],{"class":1167},"          primary: 'green',\n",[1034,1307,1309],{"class":1036,"line":1308},14,[1034,1310,1311],{"class":1167},"          neutral: 'slate'\n",[1034,1313,1315],{"class":1036,"line":1314},15,[1034,1316,1317],{"class":1167},"        }\n",[1034,1319,1321],{"class":1036,"line":1320},16,[1034,1322,1323],{"class":1167},"      }\n",[1034,1325,1327],{"class":1036,"line":1326},17,[1034,1328,1329],{"class":1167},"    })\n",[1034,1331,1333],{"class":1036,"line":1332},18,[1034,1334,1199],{"class":1167},[1034,1336,1338],{"class":1036,"line":1337},19,[1034,1339,1205],{"class":1167},[1137,1341,1342,1486],{},[1140,1343,1344],{"v-slot:nuxt":1030},[1143,1345,1346,1361],{},[1002,1347,1348],{"start":1176},[1005,1349,1350,1351,1354,1355,1014,1358,1018],{},"Use the ",[974,1352,1353],{},"ui"," key instead of ",[974,1356,1357],{},"uiPro",[974,1359,1360],{},"app.config.ts",[1024,1362,1365],{"className":1158,"code":1363,"filename":1364,"language":1160,"meta":1030,"style":1030},"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",[974,1366,1367,1372,1377,1382,1387,1392,1397,1404,1411,1418,1425,1432,1437,1444,1450,1456,1462,1468,1474,1481],{"__ignoreMap":1030},[1034,1368,1369],{"class":1036,"line":1037},[1034,1370,1371],{"class":1167},"export default defineAppConfig({\n",[1034,1373,1374],{"class":1036,"line":1050},[1034,1375,1376],{"class":1167},"  ui: {\n",[1034,1378,1379],{"class":1036,"line":1176},[1034,1380,1381],{"class":1167},"    colors: {\n",[1034,1383,1384],{"class":1036,"line":1187},[1034,1385,1386],{"class":1167},"      primary: 'green',\n",[1034,1388,1389],{"class":1036,"line":1196},[1034,1390,1391],{"class":1167},"      neutral: 'slate'\n",[1034,1393,1394],{"class":1036,"line":1202},[1034,1395,1396],{"class":1167},"    },\n",[1034,1398,1399,1401],{"class":1036,"line":1262},[1034,1400,1190],{"class":1179},[1034,1402,1403],{"class":1043},"   pageCard: {\n",[1034,1405,1406,1408],{"class":1036,"line":1268},[1034,1407,1190],{"class":1179},[1034,1409,1410],{"class":1043},"     slots: {\n",[1034,1412,1413,1415],{"class":1036,"line":1274},[1034,1414,1190],{"class":1179},[1034,1416,1417],{"class":1043},"       root: 'rounded-xl',\n",[1034,1419,1420,1422],{"class":1036,"line":1282},[1034,1421,1190],{"class":1179},[1034,1423,1424],{"class":1043},"     }\n",[1034,1426,1427,1429],{"class":1036,"line":1290},[1034,1428,1190],{"class":1179},[1034,1430,1431],{"class":1043},"   }\n",[1034,1433,1434],{"class":1036,"line":1296},[1034,1435,1436],{"class":1167},"  },\n",[1034,1438,1439,1441],{"class":1036,"line":1302},[1034,1440,1180],{"class":1179},[1034,1442,1443],{"class":1183}," uiPro: {\n",[1034,1445,1446,1448],{"class":1036,"line":1308},[1034,1447,1180],{"class":1179},[1034,1449,1403],{"class":1183},[1034,1451,1452,1454],{"class":1036,"line":1314},[1034,1453,1180],{"class":1179},[1034,1455,1410],{"class":1183},[1034,1457,1458,1460],{"class":1036,"line":1320},[1034,1459,1180],{"class":1179},[1034,1461,1417],{"class":1183},[1034,1463,1464,1466],{"class":1036,"line":1326},[1034,1465,1180],{"class":1179},[1034,1467,1424],{"class":1183},[1034,1469,1470,1472],{"class":1036,"line":1332},[1034,1471,1180],{"class":1179},[1034,1473,1431],{"class":1183},[1034,1475,1476,1478],{"class":1036,"line":1337},[1034,1477,1180],{"class":1179},[1034,1479,1480],{"class":1183}," }\n",[1034,1482,1484],{"class":1036,"line":1483},20,[1034,1485,1205],{"class":1167},[1140,1487,1488],{"v-slot:vue":1030},[1143,1489,1490,1500],{},[1002,1491,1492],{"start":1176},[1005,1493,1350,1494,1354,1496,1014,1498,1018],{},[974,1495,1353],{},[974,1497,1357],{},[974,1499,1220],{},[1024,1501,1503],{"className":1158,"code":1502,"filename":1220,"language":1160,"meta":1030,"style":1030},"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",[974,1504,1505,1509,1513,1517,1522,1526,1530,1534,1538,1543,1550,1557,1564,1571,1578,1583,1590,1596,1602,1608,1614,1621,1628,1633,1638],{"__ignoreMap":1030},[1034,1506,1507],{"class":1036,"line":1037},[1034,1508,1259],{"class":1167},[1034,1510,1511],{"class":1036,"line":1050},[1034,1512,1265],{"class":1167},[1034,1514,1515],{"class":1036,"line":1176},[1034,1516,1271],{"class":1167},[1034,1518,1519],{"class":1036,"line":1187},[1034,1520,1521],{"class":1167},"    ui({\n",[1034,1523,1524],{"class":1036,"line":1196},[1034,1525,1293],{"class":1167},[1034,1527,1528],{"class":1036,"line":1202},[1034,1529,1299],{"class":1167},[1034,1531,1532],{"class":1036,"line":1262},[1034,1533,1305],{"class":1167},[1034,1535,1536],{"class":1036,"line":1268},[1034,1537,1311],{"class":1167},[1034,1539,1540],{"class":1036,"line":1274},[1034,1541,1542],{"class":1167},"        },\n",[1034,1544,1545,1547],{"class":1036,"line":1282},[1034,1546,1190],{"class":1179},[1034,1548,1549],{"class":1043},"       pageCard: {\n",[1034,1551,1552,1554],{"class":1036,"line":1290},[1034,1553,1190],{"class":1179},[1034,1555,1556],{"class":1043},"         slots: {\n",[1034,1558,1559,1561],{"class":1036,"line":1296},[1034,1560,1190],{"class":1179},[1034,1562,1563],{"class":1043},"           root: 'rounded-xl',\n",[1034,1565,1566,1568],{"class":1036,"line":1302},[1034,1567,1190],{"class":1179},[1034,1569,1570],{"class":1043},"         }\n",[1034,1572,1573,1575],{"class":1036,"line":1308},[1034,1574,1190],{"class":1179},[1034,1576,1577],{"class":1043},"       }\n",[1034,1579,1580],{"class":1036,"line":1314},[1034,1581,1582],{"class":1167},"      },\n",[1034,1584,1585,1587],{"class":1036,"line":1320},[1034,1586,1180],{"class":1179},[1034,1588,1589],{"class":1183},"     uiPro: {\n",[1034,1591,1592,1594],{"class":1036,"line":1326},[1034,1593,1180],{"class":1179},[1034,1595,1549],{"class":1183},[1034,1597,1598,1600],{"class":1036,"line":1332},[1034,1599,1180],{"class":1179},[1034,1601,1556],{"class":1183},[1034,1603,1604,1606],{"class":1036,"line":1337},[1034,1605,1180],{"class":1179},[1034,1607,1563],{"class":1183},[1034,1609,1610,1612],{"class":1036,"line":1483},[1034,1611,1180],{"class":1179},[1034,1613,1570],{"class":1183},[1034,1615,1617,1619],{"class":1036,"line":1616},21,[1034,1618,1180],{"class":1179},[1034,1620,1577],{"class":1183},[1034,1622,1624,1626],{"class":1036,"line":1623},22,[1034,1625,1180],{"class":1179},[1034,1627,1424],{"class":1183},[1034,1629,1631],{"class":1036,"line":1630},23,[1034,1632,1329],{"class":1167},[1034,1634,1636],{"class":1036,"line":1635},24,[1034,1637,1199],{"class":1167},[1034,1639,1641],{"class":1036,"line":1640},25,[1034,1642,1205],{"class":1167},[1002,1644,1645],{"start":1187},[1005,1646,1007,1647,1011,1649,1651],{},[974,1648,1010],{},[974,1650,976],{}," in your CSS:",[1137,1653,1654,1725],{},[1140,1655,1656],{"v-slot:nuxt":1030},[1143,1657,1658,1683],{},[1024,1659,1662],{"className":1158,"code":1660,"filename":1661,"language":1160,"meta":1030,"style":1030},"@import \"tailwindcss\";\n- @import \"@nuxt\u002Fui-pro\";\n+ @import \"@nuxt\u002Fui\";\n","app\u002Fassets\u002Fcss\u002Fmain.css",[974,1663,1664,1669,1676],{"__ignoreMap":1030},[1034,1665,1666],{"class":1036,"line":1037},[1034,1667,1668],{"class":1167},"@import \"tailwindcss\";\n",[1034,1670,1671,1673],{"class":1036,"line":1050},[1034,1672,1180],{"class":1179},[1034,1674,1675],{"class":1183}," @import \"@nuxt\u002Fui-pro\";\n",[1034,1677,1678,1680],{"class":1036,"line":1176},[1034,1679,1190],{"class":1179},[1034,1681,1682],{"class":1043}," @import \"@nuxt\u002Fui\";\n",[1684,1685,1686,1693],"warning",{},[965,1687,1688,1689,1692],{},"If you are upgrading to Nuxt 4 at the same time as Nuxt UI v4, make sure to update the ",[974,1690,1691],{},"@source"," directive to match the new directory structure.",[1024,1694,1696],{"className":1158,"code":1695,"filename":1661,"language":1160,"meta":1030,"style":1030},"@import \"tailwindcss\";\n@import \"@nuxt\u002Fui\";\n\n- @source \"..\u002F..\u002Fcontent\u002F**\u002F*\";\n+ @source \"..\u002F..\u002F..\u002Fcontent\u002F**\u002F*\";\n",[974,1697,1698,1702,1707,1711,1718],{"__ignoreMap":1030},[1034,1699,1700],{"class":1036,"line":1037},[1034,1701,1668],{"class":1167},[1034,1703,1704],{"class":1036,"line":1050},[1034,1705,1706],{"class":1167},"@import \"@nuxt\u002Fui\";\n",[1034,1708,1709],{"class":1036,"line":1176},[1034,1710,1254],{"emptyLinePlaceholder":21},[1034,1712,1713,1715],{"class":1036,"line":1187},[1034,1714,1180],{"class":1179},[1034,1716,1717],{"class":1183}," @source \"..\u002F..\u002Fcontent\u002F**\u002F*\";\n",[1034,1719,1720,1722],{"class":1036,"line":1196},[1034,1721,1190],{"class":1179},[1034,1723,1724],{"class":1043}," @source \"..\u002F..\u002F..\u002Fcontent\u002F**\u002F*\";\n",[1140,1726,1727],{"v-slot:vue":1030},[1143,1728,1729],{},[1024,1730,1732],{"className":1158,"code":1660,"filename":1731,"language":1160,"meta":1030,"style":1030},"src\u002Fassets\u002Fcss\u002Fmain.css",[974,1733,1734,1738,1744],{"__ignoreMap":1030},[1034,1735,1736],{"class":1036,"line":1037},[1034,1737,1668],{"class":1167},[1034,1739,1740,1742],{"class":1036,"line":1050},[1034,1741,1180],{"class":1179},[1034,1743,1675],{"class":1183},[1034,1745,1746,1748],{"class":1036,"line":1176},[1034,1747,1190],{"class":1179},[1034,1749,1682],{"class":1043},[1002,1751,1752],{"start":1196},[1005,1753,1007,1754,1011,1756,1758],{},[974,1755,1010],{},[974,1757,976],{}," in your imports:",[1024,1760,1762],{"className":1158,"code":1761,"language":1160,"meta":1030,"style":1030},"- import type { BannerProps } from '@nuxt\u002Fui-pro'\n+ import type { BannerProps } from '@nuxt\u002Fui'\n",[974,1763,1764,1771],{"__ignoreMap":1030},[1034,1765,1766,1768],{"class":1036,"line":1037},[1034,1767,1180],{"class":1179},[1034,1769,1770],{"class":1183}," import type { BannerProps } from '@nuxt\u002Fui-pro'\n",[1034,1772,1773,1775],{"class":1036,"line":1050},[1034,1774,1190],{"class":1179},[1034,1776,1777],{"class":1043}," import type { BannerProps } from '@nuxt\u002Fui'\n",[997,1779,1781],{"id":1780},"from-nuxt-ui","From Nuxt UI",[1002,1783,1784],{},[1005,1785,1786],{},"When upgrading from Nuxt UI v3, you simply need to update to v4:",[1020,1788,1789,1804,1819,1834],{"sync":1022},[1024,1790,1792],{"className":1026,"code":1791,"filename":1028,"language":1029,"meta":1030,"style":1030},"pnpm add @nuxt\u002Fui tailwindcss\n",[974,1793,1794],{"__ignoreMap":1030},[1034,1795,1796,1798,1800,1802],{"class":1036,"line":1037},[1034,1797,1028],{"class":1040},[1034,1799,1055],{"class":1043},[1034,1801,1058],{"class":1043},[1034,1803,1061],{"class":1043},[1024,1805,1807],{"className":1026,"code":1806,"filename":1065,"language":1029,"meta":1030,"style":1030},"yarn add @nuxt\u002Fui tailwindcss\n",[974,1808,1809],{"__ignoreMap":1030},[1034,1810,1811,1813,1815,1817],{"class":1036,"line":1037},[1034,1812,1065],{"class":1040},[1034,1814,1055],{"class":1043},[1034,1816,1058],{"class":1043},[1034,1818,1061],{"class":1043},[1024,1820,1822],{"className":1026,"code":1821,"filename":1089,"language":1029,"meta":1030,"style":1030},"npm install @nuxt\u002Fui tailwindcss\n",[974,1823,1824],{"__ignoreMap":1030},[1034,1825,1826,1828,1830,1832],{"class":1036,"line":1037},[1034,1827,1089],{"class":1040},[1034,1829,1107],{"class":1043},[1034,1831,1058],{"class":1043},[1034,1833,1061],{"class":1043},[1024,1835,1837],{"className":1026,"code":1836,"filename":1115,"language":1029,"meta":1030,"style":1030},"bun add @nuxt\u002Fui tailwindcss\n",[974,1838,1839],{"__ignoreMap":1030},[1034,1840,1841,1843,1845,1847],{"class":1036,"line":1037},[1034,1842,1115],{"class":1040},[1034,1844,1055],{"class":1043},[1034,1846,1058],{"class":1043},[1034,1848,1061],{"class":1043},[992,1850,1852],{"id":1851},"changes-from-v3","Changes from v3",[965,1854,1855],{},"After upgrading to Nuxt UI v4, please note the following important changes:",[997,1857,1859],{"id":1858},"renamed-buttongroup","Renamed ButtonGroup",[965,1861,1862,1863,1866,1867,1018],{},"The ",[974,1864,1865],{},"ButtonGroup"," component has been renamed to ",[1868,1869,1870],"a",{"href":503},[974,1871,502],{},[1024,1873,1875],{"className":1158,"code":1874,"language":1160,"meta":1030,"style":1030},"\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",[974,1876,1877,1882,1889,1896,1901,1906,1913,1920],{"__ignoreMap":1030},[1034,1878,1879],{"class":1036,"line":1037},[1034,1880,1881],{"class":1167},"\u003Ctemplate>\n",[1034,1883,1884,1886],{"class":1036,"line":1050},[1034,1885,1180],{"class":1179},[1034,1887,1888],{"class":1183}," \u003CUButtonGroup>\n",[1034,1890,1891,1893],{"class":1036,"line":1176},[1034,1892,1190],{"class":1179},[1034,1894,1895],{"class":1043}," \u003CUFieldGroup>\n",[1034,1897,1898],{"class":1036,"line":1187},[1034,1899,1900],{"class":1167},"    \u003CUButton label=\"Button\" \u002F>\n",[1034,1902,1903],{"class":1036,"line":1196},[1034,1904,1905],{"class":1167},"    \u003CUButton icon=\"i-lucide-chevron-down\" \u002F>\n",[1034,1907,1908,1910],{"class":1036,"line":1202},[1034,1909,1190],{"class":1179},[1034,1911,1912],{"class":1043}," \u003C\u002FUFieldGroup>\n",[1034,1914,1915,1917],{"class":1036,"line":1262},[1034,1916,1180],{"class":1179},[1034,1918,1919],{"class":1183}," \u003C\u002FUButtonGroup>\n",[1034,1921,1922],{"class":1036,"line":1268},[1034,1923,1924],{"class":1167},"\u003C\u002Ftemplate>\n",[997,1926,1928],{"id":1927},"renamed-pagemarquee","Renamed PageMarquee",[965,1930,1862,1931,1866,1934,1018],{},[974,1932,1933],{},"PageMarquee",[1868,1935,1936],{"href":594},[974,1937,593],{},[1024,1939,1941],{"className":1158,"code":1940,"language":1160,"meta":1030,"style":1030},"\u003Ctemplate>\n- \u003CUPageMarquee :items=\"items\" \u002F>\n+ \u003CUMarquee :items=\"items\" \u002F>\n\u003C\u002Ftemplate>\n",[974,1942,1943,1947,1954,1961],{"__ignoreMap":1030},[1034,1944,1945],{"class":1036,"line":1037},[1034,1946,1881],{"class":1167},[1034,1948,1949,1951],{"class":1036,"line":1050},[1034,1950,1180],{"class":1179},[1034,1952,1953],{"class":1183}," \u003CUPageMarquee :items=\"items\" \u002F>\n",[1034,1955,1956,1958],{"class":1036,"line":1176},[1034,1957,1190],{"class":1179},[1034,1959,1960],{"class":1043}," \u003CUMarquee :items=\"items\" \u002F>\n",[1034,1962,1963],{"class":1036,"line":1187},[1034,1964,1924],{"class":1167},[997,1966,1968],{"id":1967},"removed-pageaccordion","Removed PageAccordion",[965,1970,1862,1971,1974,1975,1018],{},[974,1972,1973],{},"PageAccordion"," component has been removed in favor of ",[1868,1976,1977],{"href":170},[974,1978,169],{},[1024,1980,1982],{"className":1158,"code":1981,"language":1160,"meta":1030,"style":1030},"\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",[974,1983,1984,1988,1995,2002,2007,2014,2021,2026],{"__ignoreMap":1030},[1034,1985,1986],{"class":1036,"line":1037},[1034,1987,1881],{"class":1167},[1034,1989,1990,1992],{"class":1036,"line":1050},[1034,1991,1180],{"class":1179},[1034,1993,1994],{"class":1183}," \u003CUPageAccordion\n",[1034,1996,1997,1999],{"class":1036,"line":1176},[1034,1998,1190],{"class":1179},[1034,2000,2001],{"class":1043}," \u003CUAccordion\n",[1034,2003,2004],{"class":1036,"line":1187},[1034,2005,2006],{"class":1167},"    :items=\"items\"\n",[1034,2008,2009,2011],{"class":1036,"line":1196},[1034,2010,1190],{"class":1179},[1034,2012,2013],{"class":1043},"   :unmount-on-hide=\"false\"\n",[1034,2015,2016,2018],{"class":1036,"line":1202},[1034,2017,1190],{"class":1179},[1034,2019,2020],{"class":1043},"   :ui=\"{ trigger: 'text-base', body: 'text-base text-muted' }\"\n",[1034,2022,2023],{"class":1036,"line":1262},[1034,2024,2025],{"class":1167},"  \u002F>\n",[1034,2027,2028],{"class":1036,"line":1268},[1034,2029,1924],{"class":1167},[979,2031,2032],{},[965,2033,1862,2034,2036,2037,2040,2041,2044,2045,2047],{},[974,2035,1973],{}," component was a wrapper that set ",[974,2038,2039],{},"unmount-on-hide"," to ",[974,2042,2043],{},"false"," and customized the ",[974,2046,1353],{}," prop.",[997,2049,2051],{"id":2050},"renamed-model-modifiers","Renamed model modifiers",[965,2053,1862,2054,2057,2058,2062,2063,2067,2068,2072],{},[974,2055,2056],{},"modelModifiers"," shape used by ",[1868,2059,2060],{"href":543},[974,2061,542],{},", ",[1868,2064,2065],{"href":558},[974,2066,557],{}," and ",[1868,2069,2070],{"href":784},[974,2071,783],{}," has changed in v4:",[1002,2074,2075,2089],{},[1005,2076,1862,2077,2080,2081,2084,2085,2088],{},[974,2078,2079],{},"nullify"," modifier was renamed to ",[974,2082,2083],{},"nullable"," (it converts empty\u002Fblank values to ",[974,2086,2087],{},"null",").",[1005,2090,2091,2092,2095,2096,2088],{},"A new ",[974,2093,2094],{},"optional"," modifier was added (it converts empty\u002Fblank values to ",[974,2097,2098],{},"undefined",[1024,2100,2102],{"className":1158,"code":2101,"language":1160,"meta":1030,"style":1030},"- \u003CUInput v-model.nullify=\"value\" \u002F>\n+ \u003CUInput v-model.nullable=\"value\" \u002F>\n",[974,2103,2104,2111],{"__ignoreMap":1030},[1034,2105,2106,2108],{"class":1036,"line":1037},[1034,2107,1180],{"class":1179},[1034,2109,2110],{"class":1183}," \u003CUInput v-model.nullify=\"value\" \u002F>\n",[1034,2112,2113,2115],{"class":1036,"line":1050},[1034,2114,1190],{"class":1179},[1034,2116,2117],{"class":1043}," \u003CUInput v-model.nullable=\"value\" \u002F>\n",[1024,2119,2121],{"className":1158,"code":2120,"language":1160,"meta":1030,"style":1030},"- \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullify: true }\" \u002F>\n+ \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullable: true }\" \u002F>\n",[974,2122,2123,2130],{"__ignoreMap":1030},[1034,2124,2125,2127],{"class":1036,"line":1037},[1034,2126,1180],{"class":1179},[1034,2128,2129],{"class":1183}," \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullify: true }\" \u002F>\n",[1034,2131,2132,2134],{"class":1036,"line":1050},[1034,2133,1190],{"class":1179},[1034,2135,2136],{"class":1043}," \u003CUTextarea v-model=\"value\" :model-modifiers=\"{ nullable: true }\" \u002F>\n",[965,2138,2139,2140,2142,2143,2145,2146,2148,2149,2151],{},"Use ",[974,2141,2083],{}," when you want empty values as ",[974,2144,2087],{},", and ",[974,2147,2094],{}," when you prefer ",[974,2150,2098],{}," for absent values.",[997,2153,2155],{"id":2154},"changes-to-form-component","Changes to Form component",[965,2157,1862,2158,2160],{},[974,2159,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:",[1002,2162,2163,2177,2187],{},[1005,2164,2165,2166,2169,2170,2176],{},"Schema ",[969,2167,2168],{},"transformations will only"," be applied to the ",[969,2171,2172,2175],{},[974,2173,2174],{},"@submit"," data"," and will no longer mutate the form's state. This provides better predictability and prevents unexpected state mutations.",[1005,2178,2179,2182,2183,2186],{},[969,2180,2181],{},"Nested forms must be enabled explicitly"," using the ",[974,2184,2185],{},"nested"," prop. This makes the component behavior more explicit and prevents accidental nested form creation.",[1005,2188,2189,2195,2196,2199],{},[969,2190,2191,2192],{},"Nested forms should now provide a ",[974,2193,2194],{},"name"," prop (similar to ",[974,2197,2198],{},"UFormField",") and will automatically inherit their state from their parent form.",[1024,2201,2203],{"className":1158,"code":2202,"language":1160,"meta":1030,"style":1030},"\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",[974,2204,2205,2209,2214,2219,2224,2229,2233,2238,2243,2250,2257,2262,2269,2274,2279,2284,2289,2294,2299,2303,2308,2313,2318],{"__ignoreMap":1030},[1034,2206,2207],{"class":1036,"line":1037},[1034,2208,1881],{"class":1167},[1034,2210,2211],{"class":1036,"line":1050},[1034,2212,2213],{"class":1167},"  \u003CUForm :state=\"state\" :schema=\"schema\" @submit=\"onSubmit\">\n",[1034,2215,2216],{"class":1036,"line":1176},[1034,2217,2218],{"class":1167},"    \u003CUFormField label=\"Customer\" name=\"customer\">\n",[1034,2220,2221],{"class":1036,"line":1187},[1034,2222,2223],{"class":1167},"      \u003CUInput v-model=\"state.customer\" placeholder=\"Wonka Industries\" \u002F>\n",[1034,2225,2226],{"class":1036,"line":1196},[1034,2227,2228],{"class":1167},"    \u003C\u002FUFormField>\n",[1034,2230,2231],{"class":1036,"line":1202},[1034,2232,1254],{"emptyLinePlaceholder":21},[1034,2234,2235],{"class":1036,"line":1262},[1034,2236,2237],{"class":1167},"    \u003Cdiv v-for=\"(item, index) in state.items\" :key=\"index\">\n",[1034,2239,2240],{"class":1036,"line":1268},[1034,2241,2242],{"class":1167},"      \u003CUForm\n",[1034,2244,2245,2247],{"class":1036,"line":1274},[1034,2246,1180],{"class":1179},[1034,2248,2249],{"class":1183},"       :state=\"item\"\n",[1034,2251,2252,2254],{"class":1036,"line":1282},[1034,2253,1190],{"class":1179},[1034,2255,2256],{"class":1043},"       :name=\"`items.${index}`\"\n",[1034,2258,2259],{"class":1036,"line":1290},[1034,2260,2261],{"class":1167},"        :schema=\"itemSchema\"\n",[1034,2263,2264,2266],{"class":1036,"line":1296},[1034,2265,1190],{"class":1179},[1034,2267,2268],{"class":1043},"       nested\n",[1034,2270,2271],{"class":1036,"line":1302},[1034,2272,2273],{"class":1167},"      >\n",[1034,2275,2276],{"class":1036,"line":1308},[1034,2277,2278],{"class":1167},"        \u003CUFormField :label=\"!index ? 'Description' : undefined\" name=\"description\">\n",[1034,2280,2281],{"class":1036,"line":1314},[1034,2282,2283],{"class":1167},"          \u003CUInput v-model=\"item.description\" \u002F>\n",[1034,2285,2286],{"class":1036,"line":1320},[1034,2287,2288],{"class":1167},"        \u003C\u002FUFormField>\n",[1034,2290,2291],{"class":1036,"line":1326},[1034,2292,2293],{"class":1167},"        \u003CUFormField :label=\"!index ? 'Price' : undefined\" name=\"price\">\n",[1034,2295,2296],{"class":1036,"line":1332},[1034,2297,2298],{"class":1167},"          \u003CUInput v-model=\"item.price\" type=\"number\" \u002F>\n",[1034,2300,2301],{"class":1036,"line":1337},[1034,2302,2288],{"class":1167},[1034,2304,2305],{"class":1036,"line":1483},[1034,2306,2307],{"class":1167},"      \u003C\u002FUForm>\n",[1034,2309,2310],{"class":1036,"line":1616},[1034,2311,2312],{"class":1167},"    \u003C\u002Fdiv>\n",[1034,2314,2315],{"class":1036,"line":1623},[1034,2316,2317],{"class":1167},"  \u003C\u002FUForm>\n",[1034,2319,2320],{"class":1036,"line":1630},[1034,2321,1924],{"class":1167},[997,2323,2325],{"id":2324},"removed-deprecated-utilities","Removed deprecated utilities",[965,2327,2328,2329,2332,2333,2336],{},"Some ",[969,2330,2331],{},"Nuxt Content utilities"," that were previously available in Nuxt UI Pro have been ",[969,2334,2335],{},"removed"," in v4:",[2338,2339,2340,2345],"ul",{},[1005,2341,2342],{},[974,2343,2344],{},"findPageBreadcrumb",[1005,2346,2347],{},[974,2348,2349],{},"findPageHeadline",[965,2351,2352],{},"These are now fully provided by Nuxt Content. Make sure to update your imports and usage accordingly.",[1024,2354,2356],{"className":1158,"code":2355,"language":1160,"meta":1030,"style":1030},"- 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",[974,2357,2358,2365,2372,2376,2383],{"__ignoreMap":1030},[1034,2359,2360,2362],{"class":1036,"line":1037},[1034,2361,1180],{"class":1179},[1034,2363,2364],{"class":1183}," import { findPageHeadline } from '@nuxt\u002Fui-pro\u002Futils\u002Fcontent'\n",[1034,2366,2367,2369],{"class":1036,"line":1050},[1034,2368,1190],{"class":1179},[1034,2370,2371],{"class":1043}," import { findPageHeadline } from '@nuxt\u002Fcontent\u002Futils'\n",[1034,2373,2374],{"class":1036,"line":1176},[1034,2375,1254],{"emptyLinePlaceholder":21},[1034,2377,2378,2380],{"class":1036,"line":1187},[1034,2379,1180],{"class":1179},[1034,2381,2382],{"class":1183}," import { findPageBreadcrumb } from '@nuxt\u002Fui-pro\u002Futils\u002Fcontent'\n",[1034,2384,2385,2387],{"class":1036,"line":1196},[1034,2386,1190],{"class":1179},[1034,2388,2389],{"class":1043}," import { findPageBreadcrumb } from '@nuxt\u002Fcontent\u002Futils'\n",[997,2391,2393],{"id":2392},"ai-sdk-v5-migration-optional","AI SDK v5 migration (optional)",[965,2395,2396,2397,2062,2399,2062,2401,2062,2403,2062,2405,2407],{},"This section only applies if you're using the AI SDK and chat components (",[974,2398,265],{},[974,2400,270],{},[974,2402,280],{},[974,2404,285],{},[974,2406,275],{},"). If you're not using AI features, you can skip this section.",[1002,2409,2410],{},[1005,2411,2412,2413,2067,2416,2419,2420,2422,2423,2429,2430,2433],{},"Update ",[974,2414,2415],{},"@ai-sdk\u002Fvue",[974,2417,2418],{},"ai"," dependencies in your ",[974,2421,1017],{}," and add ",[1868,2424,2428],{"href":2425,"rel":2426},"https:\u002F\u002Fcomark.dev",[2427],"nofollow","Comark"," (replaces ",[974,2431,2432],{},"@nuxtjs\u002Fmdc"," for rendering AI responses as streaming Markdown):",[1137,2435,2436,2540],{},[1140,2437,2438],{"v-slot:nuxt":1030},[1143,2439,2440,2500,2507],{},[1024,2441,2443],{"className":1158,"code":2442,"language":1160,"meta":1030,"style":1030},"{\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",[974,2444,2445,2450,2455,2462,2469,2476,2483,2490,2495],{"__ignoreMap":1030},[1034,2446,2447],{"class":1036,"line":1037},[1034,2448,2449],{"class":1167},"{\n",[1034,2451,2452],{"class":1036,"line":1050},[1034,2453,2454],{"class":1167},"  \"dependencies\": {\n",[1034,2456,2457,2459],{"class":1036,"line":1176},[1034,2458,1180],{"class":1179},[1034,2460,2461],{"class":1183},"   \"@ai-sdk\u002Fvue\": \"^1.2.x\",\n",[1034,2463,2464,2466],{"class":1036,"line":1187},[1034,2465,1190],{"class":1179},[1034,2467,2468],{"class":1043},"   \"@ai-sdk\u002Fvue\": \"^2.0.x\",\n",[1034,2470,2471,2473],{"class":1036,"line":1196},[1034,2472,1180],{"class":1179},[1034,2474,2475],{"class":1183},"   \"ai\": \"^4.3.x\",\n",[1034,2477,2478,2480],{"class":1036,"line":1202},[1034,2479,1190],{"class":1179},[1034,2481,2482],{"class":1043},"   \"ai\": \"^5.0.x\",\n",[1034,2484,2485,2487],{"class":1036,"line":1262},[1034,2486,1190],{"class":1179},[1034,2488,2489],{"class":1043},"   \"@comark\u002Fnuxt\": \"latest\"\n",[1034,2491,2492],{"class":1036,"line":1268},[1034,2493,2494],{"class":1167},"  }\n",[1034,2496,2497],{"class":1036,"line":1274},[1034,2498,2499],{"class":1167},"}\n",[965,2501,2502,2503,2506],{},"Add ",[974,2504,2505],{},"@comark\u002Fnuxt"," to your modules:",[1024,2508,2510],{"className":1158,"code":2509,"filename":1155,"language":1160,"meta":1030,"style":1030},"export default defineNuxtConfig({\n  modules: [\n    '@nuxt\u002Fui',\n+   '@comark\u002Fnuxt'\n  ]\n})\n",[974,2511,2512,2516,2520,2525,2532,2536],{"__ignoreMap":1030},[1034,2513,2514],{"class":1036,"line":1037},[1034,2515,1168],{"class":1167},[1034,2517,2518],{"class":1036,"line":1050},[1034,2519,1173],{"class":1167},[1034,2521,2522],{"class":1036,"line":1176},[1034,2523,2524],{"class":1167},"    '@nuxt\u002Fui',\n",[1034,2526,2527,2529],{"class":1036,"line":1187},[1034,2528,1190],{"class":1179},[1034,2530,2531],{"class":1043},"   '@comark\u002Fnuxt'\n",[1034,2533,2534],{"class":1036,"line":1196},[1034,2535,1199],{"class":1167},[1034,2537,2538],{"class":1036,"line":1202},[1034,2539,1205],{"class":1167},[1140,2541,2542],{"v-slot:vue":1030},[1024,2543,2545],{"className":1158,"code":2544,"language":1160,"meta":1030,"style":1030},"{\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",[974,2546,2547,2551,2555,2561,2567,2573,2579,2586,2590],{"__ignoreMap":1030},[1034,2548,2549],{"class":1036,"line":1037},[1034,2550,2449],{"class":1167},[1034,2552,2553],{"class":1036,"line":1050},[1034,2554,2454],{"class":1167},[1034,2556,2557,2559],{"class":1036,"line":1176},[1034,2558,1180],{"class":1179},[1034,2560,2461],{"class":1183},[1034,2562,2563,2565],{"class":1036,"line":1187},[1034,2564,1190],{"class":1179},[1034,2566,2468],{"class":1043},[1034,2568,2569,2571],{"class":1036,"line":1196},[1034,2570,1180],{"class":1179},[1034,2572,2475],{"class":1183},[1034,2574,2575,2577],{"class":1036,"line":1202},[1034,2576,1190],{"class":1179},[1034,2578,2482],{"class":1043},[1034,2580,2581,2583],{"class":1036,"line":1262},[1034,2582,1190],{"class":1179},[1034,2584,2585],{"class":1043},"   \"@comark\u002Fvue\": \"latest\"\n",[1034,2587,2588],{"class":1036,"line":1268},[1034,2589,2494],{"class":1167},[1034,2591,2592],{"class":1036,"line":1274},[1034,2593,2499],{"class":1167},[1002,2595,2596],{"start":1050},[1005,2597,2598,2601,2602,2604],{},[974,2599,2600],{},"useChat"," composable has been replaced with the new ",[974,2603,259],{}," class:",[1024,2606,2608],{"className":1158,"code":2607,"language":1160,"meta":1030,"style":1030},"\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",[974,2609,2610,2615,2622,2629,2636,2640,2647,2654,2661,2666,2673,2680,2687,2691,2698,2705,2712,2718],{"__ignoreMap":1030},[1034,2611,2612],{"class":1036,"line":1037},[1034,2613,2614],{"class":1167},"\u003Cscript setup lang=\"ts\">\n",[1034,2616,2617,2619],{"class":1036,"line":1050},[1034,2618,1180],{"class":1179},[1034,2620,2621],{"class":1183}," import { useChat } from '@ai-sdk\u002Fvue'\n",[1034,2623,2624,2626],{"class":1036,"line":1176},[1034,2625,1190],{"class":1179},[1034,2627,2628],{"class":1043}," import { Chat } from '@ai-sdk\u002Fvue'\n",[1034,2630,2631,2633],{"class":1036,"line":1187},[1034,2632,1190],{"class":1179},[1034,2634,2635],{"class":1043}," import type { UIMessage } from 'ai'\n",[1034,2637,2638],{"class":1036,"line":1196},[1034,2639,1254],{"emptyLinePlaceholder":21},[1034,2641,2642,2644],{"class":1036,"line":1202},[1034,2643,1180],{"class":1179},[1034,2645,2646],{"class":1183}," const { messages, input, handleSubmit, status, error, reload, setMessages } = useChat()\n",[1034,2648,2649,2651],{"class":1036,"line":1262},[1034,2650,1190],{"class":1179},[1034,2652,2653],{"class":1043}," const messages: UIMessage[] = []\n",[1034,2655,2656,2658],{"class":1036,"line":1268},[1034,2657,1190],{"class":1179},[1034,2659,2660],{"class":1043}," const input = ref('')\n",[1034,2662,2663],{"class":1036,"line":1274},[1034,2664,2665],{"class":1179},"+\n",[1034,2667,2668,2670],{"class":1036,"line":1282},[1034,2669,1190],{"class":1179},[1034,2671,2672],{"class":1043}," const chat = new Chat({\n",[1034,2674,2675,2677],{"class":1036,"line":1290},[1034,2676,1190],{"class":1179},[1034,2678,2679],{"class":1043},"   messages\n",[1034,2681,2682,2684],{"class":1036,"line":1296},[1034,2683,1190],{"class":1179},[1034,2685,2686],{"class":1043}," })\n",[1034,2688,2689],{"class":1036,"line":1302},[1034,2690,2665],{"class":1179},[1034,2692,2693,2695],{"class":1036,"line":1308},[1034,2694,1190],{"class":1179},[1034,2696,2697],{"class":1043}," function handleSubmit() {\n",[1034,2699,2700,2702],{"class":1036,"line":1314},[1034,2701,1190],{"class":1179},[1034,2703,2704],{"class":1043},"   chat.sendMessage({ text: input.value })\n",[1034,2706,2707,2709],{"class":1036,"line":1320},[1034,2708,1190],{"class":1179},[1034,2710,2711],{"class":1043},"   input.value = ''\n",[1034,2713,2714,2716],{"class":1036,"line":1326},[1034,2715,1190],{"class":1179},[1034,2717,1480],{"class":1043},[1034,2719,2720],{"class":1036,"line":1332},[1034,2721,2722],{"class":1167},"\u003C\u002Fscript>\n",[1002,2724,2725],{"start":1176},[1005,2726,2727,2728,2731,2732,1018],{},"Messages now use ",[974,2729,2730],{},"parts"," instead of ",[974,2733,371],{},[1024,2735,2737],{"className":1158,"code":2736,"language":1160,"meta":1030,"style":1030},"\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",[974,2738,2739,2744,2751,2758,2763,2768,2775,2782,2789,2795,2799,2804,2808,2815,2822],{"__ignoreMap":1030},[1034,2740,2741],{"class":1036,"line":1037},[1034,2742,2743],{"class":1167},"\u002F\u002F When manually creating messages\n",[1034,2745,2746,2748],{"class":1036,"line":1050},[1034,2747,1180],{"class":1179},[1034,2749,2750],{"class":1183}," setMessages([{\n",[1034,2752,2753,2755],{"class":1036,"line":1176},[1034,2754,1190],{"class":1179},[1034,2756,2757],{"class":1043}," messages.push({\n",[1034,2759,2760],{"class":1036,"line":1187},[1034,2761,2762],{"class":1167},"  id: '1',\n",[1034,2764,2765],{"class":1036,"line":1196},[1034,2766,2767],{"class":1167},"  role: 'user',\n",[1034,2769,2770,2772],{"class":1036,"line":1202},[1034,2771,1180],{"class":1179},[1034,2773,2774],{"class":1183}," content: 'Hello world'\n",[1034,2776,2777,2779],{"class":1036,"line":1262},[1034,2778,1190],{"class":1179},[1034,2780,2781],{"class":1043}," parts: [{ type: 'text', text: 'Hello world' }]\n",[1034,2783,2784,2786],{"class":1036,"line":1268},[1034,2785,1180],{"class":1179},[1034,2787,2788],{"class":1183}," }])\n",[1034,2790,2791,2793],{"class":1036,"line":1274},[1034,2792,1190],{"class":1179},[1034,2794,2686],{"class":1043},[1034,2796,2797],{"class":1036,"line":1282},[1034,2798,1254],{"emptyLinePlaceholder":21},[1034,2800,2801],{"class":1036,"line":1290},[1034,2802,2803],{"class":1167},"\u002F\u002F In templates\n",[1034,2805,2806],{"class":1036,"line":1296},[1034,2807,1881],{"class":1167},[1034,2809,2810,2812],{"class":1036,"line":1302},[1034,2811,1180],{"class":1179},[1034,2813,2814],{"class":1183}," \u003CUChatMessage :content=\"message.content\" \u002F>\n",[1034,2816,2817,2819],{"class":1036,"line":1308},[1034,2818,1190],{"class":1179},[1034,2820,2821],{"class":1043}," \u003CUChatMessage :parts=\"message.parts\" \u002F>\n",[1034,2823,2824],{"class":1036,"line":1314},[1034,2825,1924],{"class":1167},[1002,2827,2828],{"start":1187},[1005,2829,2830],{},"Some methods have been renamed:",[1024,2832,2834],{"className":1158,"code":2833,"language":1160,"meta":1030,"style":1030},"\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",[974,2835,2836,2841,2848,2855,2859,2864,2871,2878,2885],{"__ignoreMap":1030},[1034,2837,2838],{"class":1036,"line":1037},[1034,2839,2840],{"class":1167},"\u002F\u002F Regenerate the last message\n",[1034,2842,2843,2845],{"class":1036,"line":1050},[1034,2844,1180],{"class":1179},[1034,2846,2847],{"class":1183}," reload()\n",[1034,2849,2850,2852],{"class":1036,"line":1176},[1034,2851,1190],{"class":1179},[1034,2853,2854],{"class":1043}," chat.regenerate()\n",[1034,2856,2857],{"class":1036,"line":1187},[1034,2858,1254],{"emptyLinePlaceholder":21},[1034,2860,2861],{"class":1036,"line":1196},[1034,2862,2863],{"class":1167},"\u002F\u002F Access chat state\n",[1034,2865,2866,2868],{"class":1036,"line":1202},[1034,2867,1180],{"class":1179},[1034,2869,2870],{"class":1183}," :messages=\"messages\"\n",[1034,2872,2873,2875],{"class":1036,"line":1262},[1034,2874,1180],{"class":1179},[1034,2876,2877],{"class":1183}," :status=\"status\"\n",[1034,2879,2880,2882],{"class":1036,"line":1268},[1034,2881,1190],{"class":1179},[1034,2883,2884],{"class":1043}," :messages=\"chat.messages\"\n",[1034,2886,2887,2889],{"class":1036,"line":1274},[1034,2888,1190],{"class":1179},[1034,2890,2891],{"class":1043}," :status=\"chat.status\"\n",[1002,2893,2894],{"start":1196},[1005,2895,1007,2896,1011,2899,2902,2903,2905,2906,2909,2910,2913],{},[974,2897,2898],{},"\u003CMDC>",[974,2900,2901],{},"\u003CComark>"," for parts-based rendering. The ",[974,2904,2428],{}," component is purpose-built for streaming Markdown, it incrementally renders tokens as they arrive from the AI. Use AI SDK helpers and the ",[974,2907,2908],{},"isPartStreaming"," utility from ",[974,2911,2912],{},"@nuxt\u002Fui\u002Futils\u002Fai",".",[979,2915,2916,2923],{},[965,2917,2918,2919,2922],{},"When using the ",[974,2920,2921],{},"highlight"," plugin, add the following CSS to your stylesheet for dark mode support:",[1024,2924,2929],{"className":2925,"code":2926,"filename":2927,"language":2928,"meta":1030,"style":1030},"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",[974,2930,2931,2953,2981,3001,3021,3041,3061],{"__ignoreMap":1030},[1034,2932,2933,2936,2938,2941,2944,2947,2950],{"class":1036,"line":1037},[1034,2934,2935],{"class":1040},"html",[1034,2937,2913],{"class":1179},[1034,2939,2940],{"class":1040},"dark",[1034,2942,2943],{"class":1179}," .",[1034,2945,2946],{"class":1040},"shiki",[1034,2948,2949],{"class":1040}," span",[1034,2951,2952],{"class":1179}," {\n",[1034,2954,2955,2959,2961,2965,2968,2971,2974,2978],{"class":1036,"line":1050},[1034,2956,2958],{"class":2957},"sqsOY","  color",[1034,2960,1018],{"class":1179},[1034,2962,2964],{"class":2963},"s2Zo4"," var",[1034,2966,2967],{"class":1179},"(",[1034,2969,2970],{"class":1167},"--shiki-dark",[1034,2972,2973],{"class":1179},")",[1034,2975,2977],{"class":2976},"sbssI"," !important",[1034,2979,2980],{"class":1179},";\n",[1034,2982,2983,2986,2988,2990,2992,2995,2997,2999],{"class":1036,"line":1176},[1034,2984,2985],{"class":2957},"  background-color",[1034,2987,1018],{"class":1179},[1034,2989,2964],{"class":2963},[1034,2991,2967],{"class":1179},[1034,2993,2994],{"class":1167},"--shiki-dark-bg",[1034,2996,2973],{"class":1179},[1034,2998,2977],{"class":2976},[1034,3000,2980],{"class":1179},[1034,3002,3003,3006,3008,3010,3012,3015,3017,3019],{"class":1036,"line":1187},[1034,3004,3005],{"class":2957},"  font-style",[1034,3007,1018],{"class":1179},[1034,3009,2964],{"class":2963},[1034,3011,2967],{"class":1179},[1034,3013,3014],{"class":1167},"--shiki-dark-font-style",[1034,3016,2973],{"class":1179},[1034,3018,2977],{"class":2976},[1034,3020,2980],{"class":1179},[1034,3022,3023,3026,3028,3030,3032,3035,3037,3039],{"class":1036,"line":1196},[1034,3024,3025],{"class":2957},"  font-weight",[1034,3027,1018],{"class":1179},[1034,3029,2964],{"class":2963},[1034,3031,2967],{"class":1179},[1034,3033,3034],{"class":1167},"--shiki-dark-font-weight",[1034,3036,2973],{"class":1179},[1034,3038,2977],{"class":2976},[1034,3040,2980],{"class":1179},[1034,3042,3043,3046,3048,3050,3052,3055,3057,3059],{"class":1036,"line":1202},[1034,3044,3045],{"class":2957},"  text-decoration",[1034,3047,1018],{"class":1179},[1034,3049,2964],{"class":2963},[1034,3051,2967],{"class":1179},[1034,3053,3054],{"class":1167},"--shiki-dark-text-decoration",[1034,3056,2973],{"class":1179},[1034,3058,2977],{"class":2976},[1034,3060,2980],{"class":1179},[1034,3062,3063],{"class":1036,"line":1262},[1034,3064,2499],{"class":1179},[1137,3066,3067,3672],{},[1140,3068,3069],{"v-slot:nuxt":1030},[1024,3070,3073],{"className":3071,"code":3072,"language":34,"meta":1030,"style":1030},"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",[974,3074,3075,3104,3136,3155,3172,3181,3185,3193,3227,3256,3338,3346,3361,3375,3389,3394,3402,3415,3428,3442,3456,3461,3471,3475,3498,3504,3519,3532,3545,3558,3571,3576,3608,3614,3624,3633,3643,3653,3663],{"__ignoreMap":1030},[1034,3076,3077,3080,3083,3087,3090,3093,3096,3099,3101],{"class":1036,"line":1037},[1034,3078,3079],{"class":1179},"\u003C",[1034,3081,3082],{"class":1183},"script",[1034,3084,3086],{"class":3085},"spNyl"," setup",[1034,3088,3089],{"class":3085}," lang",[1034,3091,3092],{"class":1179},"=",[1034,3094,3095],{"class":1179},"\"",[1034,3097,3098],{"class":1043},"ts",[1034,3100,3095],{"class":1179},[1034,3102,3103],{"class":1179},">\n",[1034,3105,3106,3110,3113,3116,3119,3122,3125,3128,3131,3133],{"class":1036,"line":1050},[1034,3107,3109],{"class":3108},"s7zQu","import",[1034,3111,3112],{"class":1179}," {",[1034,3114,3115],{"class":1167}," isReasoningUIPart",[1034,3117,3118],{"class":1179},",",[1034,3120,3121],{"class":1167}," isTextUIPart",[1034,3123,3124],{"class":1179}," }",[1034,3126,3127],{"class":3108}," from",[1034,3129,3130],{"class":1179}," '",[1034,3132,2418],{"class":1043},[1034,3134,3135],{"class":1179},"'\n",[1034,3137,3138,3140,3142,3145,3147,3149,3151,3153],{"class":1036,"line":1176},[1034,3139,3109],{"class":3108},[1034,3141,3112],{"class":1179},[1034,3143,3144],{"class":1167}," isPartStreaming",[1034,3146,3124],{"class":1179},[1034,3148,3127],{"class":3108},[1034,3150,3130],{"class":1179},[1034,3152,2912],{"class":1043},[1034,3154,3135],{"class":1179},[1034,3156,3157,3159,3162,3165,3167,3170],{"class":1036,"line":1187},[1034,3158,3109],{"class":3108},[1034,3160,3161],{"class":1167}," highlight ",[1034,3163,3164],{"class":3108},"from",[1034,3166,3130],{"class":1179},[1034,3168,3169],{"class":1043},"@comark\u002Fnuxt\u002Fplugins\u002Fhighlight",[1034,3171,3135],{"class":1179},[1034,3173,3174,3177,3179],{"class":1036,"line":1196},[1034,3175,3176],{"class":1179},"\u003C\u002F",[1034,3178,3082],{"class":1183},[1034,3180,3103],{"class":1179},[1034,3182,3183],{"class":1036,"line":1202},[1034,3184,1254],{"emptyLinePlaceholder":21},[1034,3186,3187,3189,3191],{"class":1036,"line":1262},[1034,3188,3079],{"class":1179},[1034,3190,1140],{"class":1183},[1034,3192,3103],{"class":1179},[1034,3194,3195,3198,3201,3204,3206,3208,3211,3213,3216,3218,3220,3223,3225],{"class":1036,"line":1268},[1034,3196,3197],{"class":1179},"  \u003C",[1034,3199,3200],{"class":1183},"UChatMessages",[1034,3202,3203],{"class":3085}," :messages",[1034,3205,3092],{"class":1179},[1034,3207,3095],{"class":1179},[1034,3209,3210],{"class":1043},"chat.messages",[1034,3212,3095],{"class":1179},[1034,3214,3215],{"class":3085}," :status",[1034,3217,3092],{"class":1179},[1034,3219,3095],{"class":1179},[1034,3221,3222],{"class":1043},"chat.status",[1034,3224,3095],{"class":1179},[1034,3226,3103],{"class":1179},[1034,3228,3229,3232,3234,3237,3239,3241,3243,3246,3249,3252,3254],{"class":1036,"line":1274},[1034,3230,3231],{"class":1179},"    \u003C",[1034,3233,1140],{"class":1183},[1034,3235,3236],{"class":1179}," #",[1034,3238,371],{"class":3085},[1034,3240,3092],{"class":1179},[1034,3242,3095],{"class":1179},[1034,3244,3245],{"class":1179},"{",[1034,3247,3248],{"class":1167}," message ",[1034,3250,3251],{"class":1179},"}",[1034,3253,3095],{"class":1179},[1034,3255,3103],{"class":1179},[1034,3257,3258,3261,3263,3266,3268,3270,3273,3275,3278,3281,3284,3286,3288,3290,3293,3296,3298,3301,3304,3306,3309,3311,3313,3316,3319,3321,3324,3326,3328,3330,3333,3336],{"class":1036,"line":1282},[1034,3259,3260],{"class":1179},"      \u003C",[1034,3262,1140],{"class":1183},[1034,3264,3265],{"class":3108}," v-for",[1034,3267,3092],{"class":1179},[1034,3269,3095],{"class":1179},[1034,3271,3272],{"class":1167},"(part",[1034,3274,3118],{"class":1179},[1034,3276,3277],{"class":1167}," index) ",[1034,3279,3280],{"class":1179},"in",[1034,3282,3283],{"class":1167}," message",[1034,3285,2913],{"class":1179},[1034,3287,2730],{"class":1167},[1034,3289,3095],{"class":1179},[1034,3291,3292],{"class":1179}," :",[1034,3294,3295],{"class":3085},"key",[1034,3297,3092],{"class":1179},[1034,3299,3300],{"class":1179},"\"`${",[1034,3302,3303],{"class":1167},"message",[1034,3305,2913],{"class":1179},[1034,3307,3308],{"class":1167},"id",[1034,3310,3251],{"class":1179},[1034,3312,1180],{"class":1043},[1034,3314,3315],{"class":1179},"${",[1034,3317,3318],{"class":1167},"part",[1034,3320,2913],{"class":1179},[1034,3322,3323],{"class":1167},"type",[1034,3325,3251],{"class":1179},[1034,3327,1180],{"class":1043},[1034,3329,3315],{"class":1179},[1034,3331,3332],{"class":1167},"index",[1034,3334,3335],{"class":1179},"}`\"",[1034,3337,3103],{"class":1179},[1034,3339,3340,3343],{"class":1036,"line":1290},[1034,3341,3342],{"class":1179},"        \u003C",[1034,3344,3345],{"class":1183},"UChatReasoning\n",[1034,3347,3348,3351,3353,3355,3358],{"class":1036,"line":1296},[1034,3349,3350],{"class":3085},"          v-if",[1034,3352,3092],{"class":1179},[1034,3354,3095],{"class":1179},[1034,3356,3357],{"class":1043},"isReasoningUIPart(part)",[1034,3359,3360],{"class":1179},"\"\n",[1034,3362,3363,3366,3368,3370,3373],{"class":1036,"line":1302},[1034,3364,3365],{"class":3085},"          :text",[1034,3367,3092],{"class":1179},[1034,3369,3095],{"class":1179},[1034,3371,3372],{"class":1043},"part.text",[1034,3374,3360],{"class":1179},[1034,3376,3377,3380,3382,3384,3387],{"class":1036,"line":1308},[1034,3378,3379],{"class":3085},"          :streaming",[1034,3381,3092],{"class":1179},[1034,3383,3095],{"class":1179},[1034,3385,3386],{"class":1043},"isPartStreaming(part)",[1034,3388,3360],{"class":1179},[1034,3390,3391],{"class":1036,"line":1314},[1034,3392,3393],{"class":1179},"        >\n",[1034,3395,3396,3399],{"class":1036,"line":1320},[1034,3397,3398],{"class":1179},"          \u003C",[1034,3400,3401],{"class":1183},"Comark\n",[1034,3403,3404,3407,3409,3411,3413],{"class":1036,"line":1326},[1034,3405,3406],{"class":3085},"            :markdown",[1034,3408,3092],{"class":1179},[1034,3410,3095],{"class":1179},[1034,3412,3372],{"class":1043},[1034,3414,3360],{"class":1179},[1034,3416,3417,3420,3422,3424,3426],{"class":1036,"line":1332},[1034,3418,3419],{"class":3085},"            :streaming",[1034,3421,3092],{"class":1179},[1034,3423,3095],{"class":1179},[1034,3425,3386],{"class":1043},[1034,3427,3360],{"class":1179},[1034,3429,3430,3433,3435,3437,3440],{"class":1036,"line":1337},[1034,3431,3432],{"class":3085},"            :plugins",[1034,3434,3092],{"class":1179},[1034,3436,3095],{"class":1179},[1034,3438,3439],{"class":1043},"[highlight()]",[1034,3441,3360],{"class":1179},[1034,3443,3444,3447,3449,3451,3454],{"class":1036,"line":1483},[1034,3445,3446],{"class":3085},"            class",[1034,3448,3092],{"class":1179},[1034,3450,3095],{"class":1179},[1034,3452,3453],{"class":1043},"*:first:mt-0 *:last:mb-0",[1034,3455,3360],{"class":1179},[1034,3457,3458],{"class":1036,"line":1616},[1034,3459,3460],{"class":1179},"          \u002F>\n",[1034,3462,3463,3466,3469],{"class":1036,"line":1623},[1034,3464,3465],{"class":1179},"        \u003C\u002F",[1034,3467,3468],{"class":1183},"UChatReasoning",[1034,3470,3103],{"class":1179},[1034,3472,3473],{"class":1036,"line":1630},[1034,3474,1254],{"emptyLinePlaceholder":21},[1034,3476,3477,3479,3481,3484,3486,3488,3491,3494,3496],{"class":1036,"line":1635},[1034,3478,3342],{"class":1179},[1034,3480,1140],{"class":1183},[1034,3482,3483],{"class":3108}," v-else-if",[1034,3485,3092],{"class":1179},[1034,3487,3095],{"class":1179},[1034,3489,3490],{"class":2963},"isTextUIPart",[1034,3492,3493],{"class":1167},"(part)",[1034,3495,3095],{"class":1179},[1034,3497,3103],{"class":1179},[1034,3499,3500,3502],{"class":1036,"line":1640},[1034,3501,3398],{"class":1179},[1034,3503,3401],{"class":1183},[1034,3505,3507,3510,3512,3514,3517],{"class":1036,"line":3506},26,[1034,3508,3509],{"class":3085},"            v-if",[1034,3511,3092],{"class":1179},[1034,3513,3095],{"class":1179},[1034,3515,3516],{"class":1043},"message.role === 'assistant'",[1034,3518,3360],{"class":1179},[1034,3520,3522,3524,3526,3528,3530],{"class":1036,"line":3521},27,[1034,3523,3406],{"class":3085},[1034,3525,3092],{"class":1179},[1034,3527,3095],{"class":1179},[1034,3529,3372],{"class":1043},[1034,3531,3360],{"class":1179},[1034,3533,3535,3537,3539,3541,3543],{"class":1036,"line":3534},28,[1034,3536,3419],{"class":3085},[1034,3538,3092],{"class":1179},[1034,3540,3095],{"class":1179},[1034,3542,3386],{"class":1043},[1034,3544,3360],{"class":1179},[1034,3546,3548,3550,3552,3554,3556],{"class":1036,"line":3547},29,[1034,3549,3432],{"class":3085},[1034,3551,3092],{"class":1179},[1034,3553,3095],{"class":1179},[1034,3555,3439],{"class":1043},[1034,3557,3360],{"class":1179},[1034,3559,3561,3563,3565,3567,3569],{"class":1036,"line":3560},30,[1034,3562,3446],{"class":3085},[1034,3564,3092],{"class":1179},[1034,3566,3095],{"class":1179},[1034,3568,3453],{"class":1043},[1034,3570,3360],{"class":1179},[1034,3572,3574],{"class":1036,"line":3573},31,[1034,3575,3460],{"class":1179},[1034,3577,3579,3581,3583,3585,3587,3589,3592,3594,3597,3599,3601,3604,3606],{"class":1036,"line":3578},32,[1034,3580,3398],{"class":1179},[1034,3582,965],{"class":1183},[1034,3584,3483],{"class":3085},[1034,3586,3092],{"class":1179},[1034,3588,3095],{"class":1179},[1034,3590,3591],{"class":1043},"message.role === 'user'",[1034,3593,3095],{"class":1179},[1034,3595,3596],{"class":3085}," class",[1034,3598,3092],{"class":1179},[1034,3600,3095],{"class":1179},[1034,3602,3603],{"class":1043},"whitespace-pre-wrap",[1034,3605,3095],{"class":1179},[1034,3607,3103],{"class":1179},[1034,3609,3611],{"class":1036,"line":3610},33,[1034,3612,3613],{"class":1167},"            {{ part.text }}\n",[1034,3615,3617,3620,3622],{"class":1036,"line":3616},34,[1034,3618,3619],{"class":1179},"          \u003C\u002F",[1034,3621,965],{"class":1183},[1034,3623,3103],{"class":1179},[1034,3625,3627,3629,3631],{"class":1036,"line":3626},35,[1034,3628,3465],{"class":1179},[1034,3630,1140],{"class":1183},[1034,3632,3103],{"class":1179},[1034,3634,3636,3639,3641],{"class":1036,"line":3635},36,[1034,3637,3638],{"class":1179},"      \u003C\u002F",[1034,3640,1140],{"class":1183},[1034,3642,3103],{"class":1179},[1034,3644,3646,3649,3651],{"class":1036,"line":3645},37,[1034,3647,3648],{"class":1179},"    \u003C\u002F",[1034,3650,1140],{"class":1183},[1034,3652,3103],{"class":1179},[1034,3654,3656,3659,3661],{"class":1036,"line":3655},38,[1034,3657,3658],{"class":1179},"  \u003C\u002F",[1034,3660,3200],{"class":1183},[1034,3662,3103],{"class":1179},[1034,3664,3666,3668,3670],{"class":1036,"line":3665},39,[1034,3667,3176],{"class":1179},[1034,3669,1140],{"class":1183},[1034,3671,3103],{"class":1179},[1140,3673,3674],{"v-slot:vue":1030},[1024,3675,3677],{"className":3071,"code":3676,"language":34,"meta":1030,"style":1030},"\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",[974,3678,3679,3699,3721,3739,3759,3774,3782,3786,3794,3822,3846,3912,3918,3930,3942,3954,3958,3964,3976,3988,4000,4012,4016,4024,4028,4048,4054,4066,4078,4090,4102,4114,4118,4146,4150,4158,4166,4174,4182,4190],{"__ignoreMap":1030},[1034,3680,3681,3683,3685,3687,3689,3691,3693,3695,3697],{"class":1036,"line":1037},[1034,3682,3079],{"class":1179},[1034,3684,3082],{"class":1183},[1034,3686,3086],{"class":3085},[1034,3688,3089],{"class":3085},[1034,3690,3092],{"class":1179},[1034,3692,3095],{"class":1179},[1034,3694,3098],{"class":1043},[1034,3696,3095],{"class":1179},[1034,3698,3103],{"class":1179},[1034,3700,3701,3703,3705,3707,3709,3711,3713,3715,3717,3719],{"class":1036,"line":1050},[1034,3702,3109],{"class":3108},[1034,3704,3112],{"class":1179},[1034,3706,3115],{"class":1167},[1034,3708,3118],{"class":1179},[1034,3710,3121],{"class":1167},[1034,3712,3124],{"class":1179},[1034,3714,3127],{"class":3108},[1034,3716,3130],{"class":1179},[1034,3718,2418],{"class":1043},[1034,3720,3135],{"class":1179},[1034,3722,3723,3725,3727,3729,3731,3733,3735,3737],{"class":1036,"line":1176},[1034,3724,3109],{"class":3108},[1034,3726,3112],{"class":1179},[1034,3728,3144],{"class":1167},[1034,3730,3124],{"class":1179},[1034,3732,3127],{"class":3108},[1034,3734,3130],{"class":1179},[1034,3736,2912],{"class":1043},[1034,3738,3135],{"class":1179},[1034,3740,3741,3743,3745,3748,3750,3752,3754,3757],{"class":1036,"line":1187},[1034,3742,3109],{"class":3108},[1034,3744,3112],{"class":1179},[1034,3746,3747],{"class":1167}," Comark",[1034,3749,3124],{"class":1179},[1034,3751,3127],{"class":3108},[1034,3753,3130],{"class":1179},[1034,3755,3756],{"class":1043},"@comark\u002Fvue",[1034,3758,3135],{"class":1179},[1034,3760,3761,3763,3765,3767,3769,3772],{"class":1036,"line":1196},[1034,3762,3109],{"class":3108},[1034,3764,3161],{"class":1167},[1034,3766,3164],{"class":3108},[1034,3768,3130],{"class":1179},[1034,3770,3771],{"class":1043},"@comark\u002Fvue\u002Fplugins\u002Fhighlight",[1034,3773,3135],{"class":1179},[1034,3775,3776,3778,3780],{"class":1036,"line":1202},[1034,3777,3176],{"class":1179},[1034,3779,3082],{"class":1183},[1034,3781,3103],{"class":1179},[1034,3783,3784],{"class":1036,"line":1262},[1034,3785,1254],{"emptyLinePlaceholder":21},[1034,3787,3788,3790,3792],{"class":1036,"line":1268},[1034,3789,3079],{"class":1179},[1034,3791,1140],{"class":1183},[1034,3793,3103],{"class":1179},[1034,3795,3796,3798,3800,3802,3804,3806,3808,3810,3812,3814,3816,3818,3820],{"class":1036,"line":1274},[1034,3797,3197],{"class":1179},[1034,3799,3200],{"class":1183},[1034,3801,3203],{"class":3085},[1034,3803,3092],{"class":1179},[1034,3805,3095],{"class":1179},[1034,3807,3210],{"class":1043},[1034,3809,3095],{"class":1179},[1034,3811,3215],{"class":3085},[1034,3813,3092],{"class":1179},[1034,3815,3095],{"class":1179},[1034,3817,3222],{"class":1043},[1034,3819,3095],{"class":1179},[1034,3821,3103],{"class":1179},[1034,3823,3824,3826,3828,3830,3832,3834,3836,3838,3840,3842,3844],{"class":1036,"line":1282},[1034,3825,3231],{"class":1179},[1034,3827,1140],{"class":1183},[1034,3829,3236],{"class":1179},[1034,3831,371],{"class":3085},[1034,3833,3092],{"class":1179},[1034,3835,3095],{"class":1179},[1034,3837,3245],{"class":1179},[1034,3839,3248],{"class":1167},[1034,3841,3251],{"class":1179},[1034,3843,3095],{"class":1179},[1034,3845,3103],{"class":1179},[1034,3847,3848,3850,3852,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],{"class":1036,"line":1290},[1034,3849,3260],{"class":1179},[1034,3851,1140],{"class":1183},[1034,3853,3265],{"class":3108},[1034,3855,3092],{"class":1179},[1034,3857,3095],{"class":1179},[1034,3859,3272],{"class":1167},[1034,3861,3118],{"class":1179},[1034,3863,3277],{"class":1167},[1034,3865,3280],{"class":1179},[1034,3867,3283],{"class":1167},[1034,3869,2913],{"class":1179},[1034,3871,2730],{"class":1167},[1034,3873,3095],{"class":1179},[1034,3875,3292],{"class":1179},[1034,3877,3295],{"class":3085},[1034,3879,3092],{"class":1179},[1034,3881,3300],{"class":1179},[1034,3883,3303],{"class":1167},[1034,3885,2913],{"class":1179},[1034,3887,3308],{"class":1167},[1034,3889,3251],{"class":1179},[1034,3891,1180],{"class":1043},[1034,3893,3315],{"class":1179},[1034,3895,3318],{"class":1167},[1034,3897,2913],{"class":1179},[1034,3899,3323],{"class":1167},[1034,3901,3251],{"class":1179},[1034,3903,1180],{"class":1043},[1034,3905,3315],{"class":1179},[1034,3907,3332],{"class":1167},[1034,3909,3335],{"class":1179},[1034,3911,3103],{"class":1179},[1034,3913,3914,3916],{"class":1036,"line":1296},[1034,3915,3342],{"class":1179},[1034,3917,3345],{"class":1183},[1034,3919,3920,3922,3924,3926,3928],{"class":1036,"line":1302},[1034,3921,3350],{"class":3085},[1034,3923,3092],{"class":1179},[1034,3925,3095],{"class":1179},[1034,3927,3357],{"class":1043},[1034,3929,3360],{"class":1179},[1034,3931,3932,3934,3936,3938,3940],{"class":1036,"line":1308},[1034,3933,3365],{"class":3085},[1034,3935,3092],{"class":1179},[1034,3937,3095],{"class":1179},[1034,3939,3372],{"class":1043},[1034,3941,3360],{"class":1179},[1034,3943,3944,3946,3948,3950,3952],{"class":1036,"line":1314},[1034,3945,3379],{"class":3085},[1034,3947,3092],{"class":1179},[1034,3949,3095],{"class":1179},[1034,3951,3386],{"class":1043},[1034,3953,3360],{"class":1179},[1034,3955,3956],{"class":1036,"line":1320},[1034,3957,3393],{"class":1179},[1034,3959,3960,3962],{"class":1036,"line":1326},[1034,3961,3398],{"class":1179},[1034,3963,3401],{"class":1183},[1034,3965,3966,3968,3970,3972,3974],{"class":1036,"line":1332},[1034,3967,3406],{"class":3085},[1034,3969,3092],{"class":1179},[1034,3971,3095],{"class":1179},[1034,3973,3372],{"class":1043},[1034,3975,3360],{"class":1179},[1034,3977,3978,3980,3982,3984,3986],{"class":1036,"line":1337},[1034,3979,3419],{"class":3085},[1034,3981,3092],{"class":1179},[1034,3983,3095],{"class":1179},[1034,3985,3386],{"class":1043},[1034,3987,3360],{"class":1179},[1034,3989,3990,3992,3994,3996,3998],{"class":1036,"line":1483},[1034,3991,3432],{"class":3085},[1034,3993,3092],{"class":1179},[1034,3995,3095],{"class":1179},[1034,3997,3439],{"class":1043},[1034,3999,3360],{"class":1179},[1034,4001,4002,4004,4006,4008,4010],{"class":1036,"line":1616},[1034,4003,3446],{"class":3085},[1034,4005,3092],{"class":1179},[1034,4007,3095],{"class":1179},[1034,4009,3453],{"class":1043},[1034,4011,3360],{"class":1179},[1034,4013,4014],{"class":1036,"line":1623},[1034,4015,3460],{"class":1179},[1034,4017,4018,4020,4022],{"class":1036,"line":1630},[1034,4019,3465],{"class":1179},[1034,4021,3468],{"class":1183},[1034,4023,3103],{"class":1179},[1034,4025,4026],{"class":1036,"line":1635},[1034,4027,1254],{"emptyLinePlaceholder":21},[1034,4029,4030,4032,4034,4036,4038,4040,4042,4044,4046],{"class":1036,"line":1640},[1034,4031,3342],{"class":1179},[1034,4033,1140],{"class":1183},[1034,4035,3483],{"class":3108},[1034,4037,3092],{"class":1179},[1034,4039,3095],{"class":1179},[1034,4041,3490],{"class":2963},[1034,4043,3493],{"class":1167},[1034,4045,3095],{"class":1179},[1034,4047,3103],{"class":1179},[1034,4049,4050,4052],{"class":1036,"line":3506},[1034,4051,3398],{"class":1179},[1034,4053,3401],{"class":1183},[1034,4055,4056,4058,4060,4062,4064],{"class":1036,"line":3521},[1034,4057,3509],{"class":3085},[1034,4059,3092],{"class":1179},[1034,4061,3095],{"class":1179},[1034,4063,3516],{"class":1043},[1034,4065,3360],{"class":1179},[1034,4067,4068,4070,4072,4074,4076],{"class":1036,"line":3534},[1034,4069,3406],{"class":3085},[1034,4071,3092],{"class":1179},[1034,4073,3095],{"class":1179},[1034,4075,3372],{"class":1043},[1034,4077,3360],{"class":1179},[1034,4079,4080,4082,4084,4086,4088],{"class":1036,"line":3547},[1034,4081,3419],{"class":3085},[1034,4083,3092],{"class":1179},[1034,4085,3095],{"class":1179},[1034,4087,3386],{"class":1043},[1034,4089,3360],{"class":1179},[1034,4091,4092,4094,4096,4098,4100],{"class":1036,"line":3560},[1034,4093,3432],{"class":3085},[1034,4095,3092],{"class":1179},[1034,4097,3095],{"class":1179},[1034,4099,3439],{"class":1043},[1034,4101,3360],{"class":1179},[1034,4103,4104,4106,4108,4110,4112],{"class":1036,"line":3573},[1034,4105,3446],{"class":3085},[1034,4107,3092],{"class":1179},[1034,4109,3095],{"class":1179},[1034,4111,3453],{"class":1043},[1034,4113,3360],{"class":1179},[1034,4115,4116],{"class":1036,"line":3578},[1034,4117,3460],{"class":1179},[1034,4119,4120,4122,4124,4126,4128,4130,4132,4134,4136,4138,4140,4142,4144],{"class":1036,"line":3610},[1034,4121,3398],{"class":1179},[1034,4123,965],{"class":1183},[1034,4125,3483],{"class":3085},[1034,4127,3092],{"class":1179},[1034,4129,3095],{"class":1179},[1034,4131,3591],{"class":1043},[1034,4133,3095],{"class":1179},[1034,4135,3596],{"class":3085},[1034,4137,3092],{"class":1179},[1034,4139,3095],{"class":1179},[1034,4141,3603],{"class":1043},[1034,4143,3095],{"class":1179},[1034,4145,3103],{"class":1179},[1034,4147,4148],{"class":1036,"line":3616},[1034,4149,3613],{"class":1167},[1034,4151,4152,4154,4156],{"class":1036,"line":3626},[1034,4153,3619],{"class":1179},[1034,4155,965],{"class":1183},[1034,4157,3103],{"class":1179},[1034,4159,4160,4162,4164],{"class":1036,"line":3635},[1034,4161,3465],{"class":1179},[1034,4163,1140],{"class":1183},[1034,4165,3103],{"class":1179},[1034,4167,4168,4170,4172],{"class":1036,"line":3645},[1034,4169,3638],{"class":1179},[1034,4171,1140],{"class":1183},[1034,4173,3103],{"class":1179},[1034,4175,4176,4178,4180],{"class":1036,"line":3655},[1034,4177,3648],{"class":1179},[1034,4179,1140],{"class":1183},[1034,4181,3103],{"class":1179},[1034,4183,4184,4186,4188],{"class":1036,"line":3665},[1034,4185,3658],{"class":1179},[1034,4187,3200],{"class":1183},[1034,4189,3103],{"class":1179},[1034,4191,4193,4195,4197],{"class":1036,"line":4192},40,[1034,4194,3176],{"class":1179},[1034,4196,1140],{"class":1183},[1034,4198,3103],{"class":1179},[979,4200,4203],{"target":4201,"to":4202},"_blank","https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fmigration-guides\u002Fmigration-guide-5-0",[965,4204,4205,4206,2913],{},"For more details on AI SDK v5 changes, review the ",[969,4207,4208],{},"official AI SDK v5 migration guide",[4210,4211,4213],"tip",{"target":4201,"to":4212},"https:\u002F\u002Fgithub.com\u002Fnuxt\u002Fui\u002Fpull\u002F4698",[965,4214,4215,4216,4219],{},"View all changes from AI SDK v4 to v5 ",[969,4217,4218],{},"in the upgrade PR"," for a detailed migration reference.",[4221,4222,4223],"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":1030,"searchDepth":1050,"depth":1050,"links":4225},[4226,4230],{"id":994,"depth":1050,"text":995,"children":4227},[4228,4229],{"id":999,"depth":1176,"text":1000},{"id":1780,"depth":1176,"text":1781},{"id":1851,"depth":1050,"text":1852,"children":4231},[4232,4233,4234,4235,4236,4237,4238],{"id":1858,"depth":1176,"text":1859},{"id":1927,"depth":1176,"text":1928},{"id":1967,"depth":1176,"text":1968},{"id":2050,"depth":1176,"text":2051},{"id":2154,"depth":1176,"text":2155},{"id":2324,"depth":1176,"text":2325},{"id":2392,"depth":1176,"text":2393},"md",[4241],{"label":4242,"to":4243,"icon":39},"Migration to v3","\u002Fdocs\u002Fgetting-started\u002Fmigration\u002Fv3",{},{"title":38,"icon":39},{"title":960,"description":46},"NtAPVuzkSNsaGfDK9B1lIOOMryFt-tz3tuHRoIUL0-4",{"data":4249,"body":4250},{},{"type":4251,"children":4252},"root",[4253],{"type":178,"tag":965,"props":4254,"children":4255},{},[4256],{"type":4257,"value":46},"text",1776346334766]