[{"data":1,"prerenderedAt":4052},["ShallowReactive",2],{"navigation":3,"-docs-components-chat":959,"-docs-components-chat-description":4042},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,163,817,858],{"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,792,797,802,807,812],{"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.","Soon",{"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,"badge":791},"\u002Fdocs\u002Fcomponents\u002Ftheme","docs\u002F2.components\u002Ftheme","A headless component to theme child components.","New",{"title":793,"path":794,"stem":795,"framework":16,"category":172,"description":796},"Timeline","\u002Fdocs\u002Fcomponents\u002Ftimeline","docs\u002F2.components\u002Ftimeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":798,"path":799,"stem":800,"framework":16,"category":397,"description":801},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002F2.components\u002Ftoast","A succinct message to provide information or feedback to the user.",{"title":803,"path":804,"stem":805,"framework":16,"category":397,"description":806},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002F2.components\u002Ftooltip","A popup that reveals information when hovering over an element.",{"title":808,"path":809,"stem":810,"framework":16,"category":172,"description":811},"Tree","\u002Fdocs\u002Fcomponents\u002Ftree","docs\u002F2.components\u002Ftree","A tree view component to display and interact with hierarchical data structures.",{"title":813,"path":814,"stem":815,"framework":16,"category":172,"description":816},"User","\u002Fdocs\u002Fcomponents\u002Fuser","docs\u002F2.components\u002Fuser","Display user information with name, description and avatar.",{"title":818,"framework":16,"category":16,"description":16,"icon":819,"path":820,"stem":821,"children":822,"page":36},"Composables","i-lucide-square-function","\u002Fdocs\u002Fcomposables","docs\u002F3.composables",[823,828,833,838,843,848,853],{"title":824,"path":825,"stem":826,"framework":16,"category":16,"description":827},"defineLocale","\u002Fdocs\u002Fcomposables\u002Fdefine-locale","docs\u002F3.composables\u002Fdefine-locale","A utility to create a custom locale for your app.",{"title":829,"path":830,"stem":831,"framework":16,"category":16,"description":832},"defineShortcuts","\u002Fdocs\u002Fcomposables\u002Fdefine-shortcuts","docs\u002F3.composables\u002Fdefine-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":834,"path":835,"stem":836,"framework":16,"category":16,"description":837},"extendLocale","\u002Fdocs\u002Fcomposables\u002Fextend-locale","docs\u002F3.composables\u002Fextend-locale","A utility to extend an existing locale with custom translations.",{"title":839,"path":840,"stem":841,"framework":16,"category":16,"description":842},"extractShortcuts","\u002Fdocs\u002Fcomposables\u002Fextract-shortcuts","docs\u002F3.composables\u002Fextract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":844,"path":845,"stem":846,"framework":16,"category":16,"description":847},"useOverlay","\u002Fdocs\u002Fcomposables\u002Fuse-overlay","docs\u002F3.composables\u002Fuse-overlay","A composable to programmatically control overlays.",{"title":849,"path":850,"stem":851,"framework":16,"category":16,"description":852,"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":854,"path":855,"stem":856,"framework":16,"category":16,"description":857},"useToast","\u002Fdocs\u002Fcomposables\u002Fuse-toast","docs\u002F3.composables\u002Fuse-toast","A composable to display toast notifications in your app.",{"title":859,"path":860,"stem":861,"children":862,"framework":28,"category":16,"description":16,"icon":958},"Typography","\u002Fdocs\u002Ftypography","docs\u002F4.typography\u002F1.index",[863,865,870,875,880,885,890,894,899,903,908,913,918,923,928,932,937,941,945,949,954],{"title":15,"path":860,"stem":861,"framework":28,"category":16,"description":864},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":866,"path":867,"stem":868,"framework":28,"category":16,"description":869},"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":871,"path":872,"stem":873,"framework":28,"category":16,"description":874},"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":876,"path":877,"stem":878,"framework":28,"category":16,"description":879},"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":881,"path":882,"stem":883,"framework":28,"category":16,"description":884},"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":886,"stem":887,"framework":28,"category":888,"description":889},"\u002Fdocs\u002Ftypography\u002Faccordion","docs\u002F4.typography\u002Faccordion","components","Create expandable content sections for better information organization.",{"title":203,"path":891,"stem":892,"framework":28,"category":888,"description":893},"\u002Fdocs\u002Ftypography\u002Fbadge","docs\u002F4.typography\u002Fbadge","Display version numbers, status labels, and tags within your content.",{"title":895,"path":896,"stem":897,"framework":28,"category":888,"description":898},"Callout","\u002Fdocs\u002Ftypography\u002Fcallout","docs\u002F4.typography\u002Fcallout","Highlight important information with eye-catching colored boxes and icons.",{"title":239,"path":900,"stem":901,"framework":28,"category":888,"description":902},"\u002Fdocs\u002Ftypography\u002Fcard","docs\u002F4.typography\u002Fcard","Create highlighted content blocks with optional links and navigation.",{"title":904,"path":905,"stem":906,"framework":28,"category":888,"description":907},"CardGroup","\u002Fdocs\u002Ftypography\u002Fcard-group","docs\u002F4.typography\u002Fcard-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":909,"path":910,"stem":911,"framework":28,"category":888,"description":912},"CodeCollapse","\u002Fdocs\u002Ftypography\u002Fcode-collapse","docs\u002F4.typography\u002Fcode-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":914,"path":915,"stem":916,"framework":28,"category":888,"description":917},"CodeGroup","\u002Fdocs\u002Ftypography\u002Fcode-group","docs\u002F4.typography\u002Fcode-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":919,"path":920,"stem":921,"framework":28,"category":888,"description":922},"CodePreview","\u002Fdocs\u002Ftypography\u002Fcode-preview","docs\u002F4.typography\u002Fcode-preview","Display code examples with a preview and their source for clearer documentation.",{"title":924,"path":925,"stem":926,"framework":28,"category":888,"description":927},"CodeTree","\u002Fdocs\u002Ftypography\u002Fcode-tree","docs\u002F4.typography\u002Fcode-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":322,"path":929,"stem":930,"framework":28,"category":888,"description":931},"\u002Fdocs\u002Ftypography\u002Fcollapsible","docs\u002F4.typography\u002Fcollapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":933,"path":934,"stem":935,"framework":28,"category":888,"description":936},"Field","\u002Fdocs\u002Ftypography\u002Ffield","docs\u002F4.typography\u002Ffield","Document API parameters, props, and configuration options clearly.",{"title":502,"path":938,"stem":939,"framework":28,"category":888,"description":940},"\u002Fdocs\u002Ftypography\u002Ffield-group","docs\u002F4.typography\u002Ffield-group","Group related fields together for comprehensive API documentation.",{"title":537,"path":942,"stem":943,"framework":28,"category":888,"description":944},"\u002Fdocs\u002Ftypography\u002Ficon","docs\u002F4.typography\u002Ficon","Display icons from popular icon libraries to enhance your content.",{"title":572,"path":946,"stem":947,"framework":28,"category":888,"description":948},"\u002Fdocs\u002Ftypography\u002Fkbd","docs\u002F4.typography\u002Fkbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":950,"path":951,"stem":952,"framework":28,"category":888,"description":953},"Steps","\u002Fdocs\u002Ftypography\u002Fsteps","docs\u002F4.typography\u002Fsteps","Transform headings into numbered step-by-step guides and tutorials.",{"title":778,"path":955,"stem":956,"framework":28,"category":888,"description":957},"\u002Fdocs\u002Ftypography\u002Ftabs","docs\u002F4.typography\u002Ftabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":960,"title":259,"body":961,"category":262,"description":263,"extension":4034,"framework":16,"index":21,"links":4035,"meta":4039,"navigation":16,"path":260,"seo":4040,"stem":261,"__hash__":4041},"docs\u002Fdocs\u002F2.components\u002Fchat.md",{"type":962,"value":963,"toc":4024},"minimark",[964,976,1001,1004,1096,1099,1113,1116,1206,1210,1227,1482,1487,1516,1887,1891,1906,2611,2615,2627,3068,3072,3082,3990,4008,4020],[965,966,967,968,975],"p",{},"Nuxt UI provides a set of components designed to build AI-powered chat interfaces. They integrate seamlessly with the ",[969,970,974],"a",{"href":971,"rel":972},"https:\u002F\u002Fai-sdk.dev\u002F",[973],"nofollow","Vercel AI SDK"," for streaming responses, reasoning, tool calling, and more.",[977,978,980],"callout",{"icon":979},"i-simple-icons-github",[965,981,982,983,992,993,1000],{},"Check out the ",[969,984,988],{"href":985,"rel":986,"target":987},"https:\u002F\u002Fgithub.com\u002Fnuxt-ui-templates\u002Fchat",[973],"_blank",[989,990,991],"code",{},"Nuxt"," and ",[969,994,997],{"href":995,"rel":996,"target":987},"https:\u002F\u002Fgithub.com\u002Fnuxt-ui-templates\u002Fchat-vue",[973],[989,998,999],{},"Vue"," AI Chat templates on GitHub for production-ready implementations.",[1002,1003,71],"h2",{"id":888},[1005,1006,1007,1020],"table",{},[1008,1009,1010],"thead",{},[1011,1012,1013,1017],"tr",{},[1014,1015,1016],"th",{},"Component",[1014,1018,1019],{},"Description",[1021,1022,1023,1033,1042,1051,1060,1069,1078,1087],"tbody",{},[1011,1024,1025,1030],{},[1026,1027,1028],"td",{},[969,1029,270],{"href":271},[1026,1031,1032],{},"Scrollable message list with auto-scroll and loading indicator.",[1011,1034,1035,1039],{},[1026,1036,1037],{},[969,1038,265],{"href":266},[1026,1040,1041],{},"Individual message bubble with avatar, actions, and slots.",[1011,1043,1044,1048],{},[1026,1045,1046],{},[969,1047,280],{"href":281},[1026,1049,1050],{},"Enhanced textarea for submitting prompts.",[1011,1052,1053,1057],{},[1026,1054,1055],{},[969,1056,285],{"href":286},[1026,1058,1059],{},"Submit button with automatic status handling.",[1011,1061,1062,1066],{},[1026,1063,1064],{},[969,1065,290],{"href":291},[1026,1067,1068],{},"Collapsible block for AI reasoning \u002F thinking process.",[1011,1070,1071,1075],{},[1026,1072,1073],{},[969,1074,301],{"href":302},[1026,1076,1077],{},"Collapsible block for AI tool invocation status.",[1011,1079,1080,1084],{},[1026,1081,1082],{},[969,1083,296],{"href":297},[1026,1085,1086],{},"Text shimmer animation for streaming states.",[1011,1088,1089,1093],{},[1026,1090,1091],{},[969,1092,275],{"href":276},[1026,1094,1095],{},"Layout wrapper for embedding chat in modals or drawers.",[1002,1097,20],{"id":1098},"installation",[965,1100,1101,1102,1105,1106,1112],{},"The Chat components are designed to be used with the ",[969,1103,974],{"href":971,"rel":1104},[973],", specifically the ",[969,1107,1110],{"href":1108,"rel":1109},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Freference\u002Fai-sdk-ui\u002Fuse-chat",[973],[989,1111,259],{}," class for managing chat state and streaming responses.",[965,1114,1115],{},"Install the required dependencies:",[1117,1118,1120,1151,1169,1188],"code-group",{"sync":1119},"pm",[1121,1122,1128],"pre",{"className":1123,"code":1124,"filename":1125,"language":1126,"meta":1127,"style":1127},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue\n","pnpm","bash","",[989,1129,1130],{"__ignoreMap":1127},[1131,1132,1135,1138,1142,1145,1148],"span",{"class":1133,"line":1134},"line",1,[1131,1136,1125],{"class":1137},"sBMFI",[1131,1139,1141],{"class":1140},"sfazB"," add",[1131,1143,1144],{"class":1140}," ai",[1131,1146,1147],{"class":1140}," @ai-sdk\u002Fgateway",[1131,1149,1150],{"class":1140}," @ai-sdk\u002Fvue\n",[1121,1152,1155],{"className":1123,"code":1153,"filename":1154,"language":1126,"meta":1127,"style":1127},"yarn add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue\n","yarn",[989,1156,1157],{"__ignoreMap":1127},[1131,1158,1159,1161,1163,1165,1167],{"class":1133,"line":1134},[1131,1160,1154],{"class":1137},[1131,1162,1141],{"class":1140},[1131,1164,1144],{"class":1140},[1131,1166,1147],{"class":1140},[1131,1168,1150],{"class":1140},[1121,1170,1173],{"className":1123,"code":1171,"filename":1172,"language":1126,"meta":1127,"style":1127},"npm install ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue\n","npm",[989,1174,1175],{"__ignoreMap":1127},[1131,1176,1177,1179,1182,1184,1186],{"class":1133,"line":1134},[1131,1178,1172],{"class":1137},[1131,1180,1181],{"class":1140}," install",[1131,1183,1144],{"class":1140},[1131,1185,1147],{"class":1140},[1131,1187,1150],{"class":1140},[1121,1189,1192],{"className":1123,"code":1190,"filename":1191,"language":1126,"meta":1127,"style":1127},"bun add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue\n","bun",[989,1193,1194],{"__ignoreMap":1127},[1131,1195,1196,1198,1200,1202,1204],{"class":1133,"line":1134},[1131,1197,1191],{"class":1137},[1131,1199,1141],{"class":1140},[1131,1201,1144],{"class":1140},[1131,1203,1147],{"class":1140},[1131,1205,1150],{"class":1140},[1002,1207,1209],{"id":1208},"server-setup","Server Setup",[965,1211,1212,1213,1220,1221,1226],{},"Create a server API endpoint to handle chat requests using ",[969,1214,1217],{"href":1215,"rel":1216},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Freference\u002Fai-sdk-core\u002Fstream-text",[973],[989,1218,1219],{},"streamText",". You can use the ",[969,1222,1225],{"href":1223,"rel":1224},"https:\u002F\u002Fvercel.com\u002Fai-gateway",[973],"Vercel AI Gateway"," to access AI models through a centralized endpoint:",[1121,1228,1233],{"className":1229,"code":1230,"filename":1231,"language":1232,"meta":1127,"style":1127},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","import { streamText, convertToModelMessages } from 'ai'\nimport { gateway } from '@ai-sdk\u002Fgateway'\n\nexport default defineEventHandler(async (event) => {\n  const { messages } = await readBody(event)\n\n  return streamText({\n    model: gateway('anthropic\u002Fclaude-sonnet-4.6'),\n    maxOutputTokens: 10000,\n    system: 'You are a helpful assistant.',\n    messages: await convertToModelMessages(messages)\n  }).toUIMessageStreamResponse()\n})\n","server\u002Fapi\u002Fchat.post.ts","ts",[989,1234,1235,1270,1291,1297,1333,1363,1368,1381,1407,1421,1438,1457,1474],{"__ignoreMap":1127},[1131,1236,1237,1241,1245,1249,1252,1255,1258,1261,1264,1267],{"class":1133,"line":1134},[1131,1238,1240],{"class":1239},"s7zQu","import",[1131,1242,1244],{"class":1243},"sMK4o"," {",[1131,1246,1248],{"class":1247},"sTEyZ"," streamText",[1131,1250,1251],{"class":1243},",",[1131,1253,1254],{"class":1247}," convertToModelMessages",[1131,1256,1257],{"class":1243}," }",[1131,1259,1260],{"class":1239}," from",[1131,1262,1263],{"class":1243}," '",[1131,1265,1266],{"class":1140},"ai",[1131,1268,1269],{"class":1243},"'\n",[1131,1271,1273,1275,1277,1280,1282,1284,1286,1289],{"class":1133,"line":1272},2,[1131,1274,1240],{"class":1239},[1131,1276,1244],{"class":1243},[1131,1278,1279],{"class":1247}," gateway",[1131,1281,1257],{"class":1243},[1131,1283,1260],{"class":1239},[1131,1285,1263],{"class":1243},[1131,1287,1288],{"class":1140},"@ai-sdk\u002Fgateway",[1131,1290,1269],{"class":1243},[1131,1292,1294],{"class":1133,"line":1293},3,[1131,1295,1296],{"emptyLinePlaceholder":21},"\n",[1131,1298,1300,1303,1306,1310,1313,1317,1320,1324,1327,1330],{"class":1133,"line":1299},4,[1131,1301,1302],{"class":1239},"export",[1131,1304,1305],{"class":1239}," default",[1131,1307,1309],{"class":1308},"s2Zo4"," defineEventHandler",[1131,1311,1312],{"class":1247},"(",[1131,1314,1316],{"class":1315},"spNyl","async",[1131,1318,1319],{"class":1243}," (",[1131,1321,1323],{"class":1322},"sHdIc","event",[1131,1325,1326],{"class":1243},")",[1131,1328,1329],{"class":1315}," =>",[1131,1331,1332],{"class":1243}," {\n",[1131,1334,1336,1339,1341,1344,1346,1349,1352,1355,1358,1360],{"class":1133,"line":1335},5,[1131,1337,1338],{"class":1315},"  const",[1131,1340,1244],{"class":1243},[1131,1342,1343],{"class":1247}," messages",[1131,1345,1257],{"class":1243},[1131,1347,1348],{"class":1243}," =",[1131,1350,1351],{"class":1239}," await",[1131,1353,1354],{"class":1308}," readBody",[1131,1356,1312],{"class":1357},"swJcz",[1131,1359,1323],{"class":1247},[1131,1361,1362],{"class":1357},")\n",[1131,1364,1366],{"class":1133,"line":1365},6,[1131,1367,1296],{"emptyLinePlaceholder":21},[1131,1369,1371,1374,1376,1378],{"class":1133,"line":1370},7,[1131,1372,1373],{"class":1239},"  return",[1131,1375,1248],{"class":1308},[1131,1377,1312],{"class":1357},[1131,1379,1380],{"class":1243},"{\n",[1131,1382,1384,1387,1390,1392,1394,1397,1400,1402,1404],{"class":1133,"line":1383},8,[1131,1385,1386],{"class":1357},"    model",[1131,1388,1389],{"class":1243},":",[1131,1391,1279],{"class":1308},[1131,1393,1312],{"class":1357},[1131,1395,1396],{"class":1243},"'",[1131,1398,1399],{"class":1140},"anthropic\u002Fclaude-sonnet-4.6",[1131,1401,1396],{"class":1243},[1131,1403,1326],{"class":1357},[1131,1405,1406],{"class":1243},",\n",[1131,1408,1410,1413,1415,1419],{"class":1133,"line":1409},9,[1131,1411,1412],{"class":1357},"    maxOutputTokens",[1131,1414,1389],{"class":1243},[1131,1416,1418],{"class":1417},"sbssI"," 10000",[1131,1420,1406],{"class":1243},[1131,1422,1424,1427,1429,1431,1434,1436],{"class":1133,"line":1423},10,[1131,1425,1426],{"class":1357},"    system",[1131,1428,1389],{"class":1243},[1131,1430,1263],{"class":1243},[1131,1432,1433],{"class":1140},"You are a helpful assistant.",[1131,1435,1396],{"class":1243},[1131,1437,1406],{"class":1243},[1131,1439,1441,1444,1446,1448,1450,1452,1455],{"class":1133,"line":1440},11,[1131,1442,1443],{"class":1357},"    messages",[1131,1445,1389],{"class":1243},[1131,1447,1351],{"class":1239},[1131,1449,1254],{"class":1308},[1131,1451,1312],{"class":1357},[1131,1453,1454],{"class":1247},"messages",[1131,1456,1362],{"class":1357},[1131,1458,1460,1463,1465,1468,1471],{"class":1133,"line":1459},12,[1131,1461,1462],{"class":1243},"  }",[1131,1464,1326],{"class":1357},[1131,1466,1467],{"class":1243},".",[1131,1469,1470],{"class":1308},"toUIMessageStreamResponse",[1131,1472,1473],{"class":1357},"()\n",[1131,1475,1477,1480],{"class":1133,"line":1476},13,[1131,1478,1479],{"class":1243},"}",[1131,1481,1362],{"class":1247},[1483,1484,1486],"h3",{"id":1485},"reasoning","Reasoning",[965,1488,1489,1490,1494,1495,1498,1499,1504,1505,1504,1510,1515],{},"To enable ",[969,1491,1485],{"href":1492,"rel":1493},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-ui\u002Fchatbot#reasoning",[973],", configure ",[989,1496,1497],{},"providerOptions"," for your provider (",[969,1500,1503],{"href":1501,"rel":1502},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fguides\u002Fproviders\u002Fanthropic#reasoning",[973],"Anthropic",", ",[969,1506,1509],{"href":1507,"rel":1508},"https:\u002F\u002Fai-sdk.dev\u002Fproviders\u002Fai-sdk-providers\u002Fgoogle-generative-ai#thinking",[973],"Google",[969,1511,1514],{"href":1512,"rel":1513},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fguides\u002Fproviders\u002Fopenai#reasoning",[973],"OpenAI","):",[1121,1517,1519],{"className":1229,"code":1518,"filename":1231,"language":1232,"meta":1127,"style":1127},"import { streamText, convertToModelMessages } from 'ai'\nimport { gateway } from '@ai-sdk\u002Fgateway'\n\nexport default defineEventHandler(async (event) => {\n  const { messages } = await readBody(event)\n\n  return streamText({\n    model: gateway('anthropic\u002Fclaude-sonnet-4.6'),\n    maxOutputTokens: 10000,\n    system: 'You are a helpful assistant.',\n    messages: await convertToModelMessages(messages),\n    providerOptions: {\n      anthropic: {\n        thinking: {\n          type: 'adaptive'\n        },\n        effort: 'low'\n      },\n      google: {\n        thinkingConfig: {\n          includeThoughts: true,\n          thinkingLevel: 'low'\n        }\n      },\n      openai: {\n        reasoningEffort: 'low',\n        reasoningSummary: 'detailed'\n      }\n    }\n  }).toUIMessageStreamResponse()\n})\n",[989,1520,1521,1543,1561,1565,1587,1609,1613,1623,1643,1653,1667,1685,1694,1703,1713,1728,1734,1749,1755,1765,1775,1789,1803,1809,1814,1824,1840,1855,1861,1867,1880],{"__ignoreMap":1127},[1131,1522,1523,1525,1527,1529,1531,1533,1535,1537,1539,1541],{"class":1133,"line":1134},[1131,1524,1240],{"class":1239},[1131,1526,1244],{"class":1243},[1131,1528,1248],{"class":1247},[1131,1530,1251],{"class":1243},[1131,1532,1254],{"class":1247},[1131,1534,1257],{"class":1243},[1131,1536,1260],{"class":1239},[1131,1538,1263],{"class":1243},[1131,1540,1266],{"class":1140},[1131,1542,1269],{"class":1243},[1131,1544,1545,1547,1549,1551,1553,1555,1557,1559],{"class":1133,"line":1272},[1131,1546,1240],{"class":1239},[1131,1548,1244],{"class":1243},[1131,1550,1279],{"class":1247},[1131,1552,1257],{"class":1243},[1131,1554,1260],{"class":1239},[1131,1556,1263],{"class":1243},[1131,1558,1288],{"class":1140},[1131,1560,1269],{"class":1243},[1131,1562,1563],{"class":1133,"line":1293},[1131,1564,1296],{"emptyLinePlaceholder":21},[1131,1566,1567,1569,1571,1573,1575,1577,1579,1581,1583,1585],{"class":1133,"line":1299},[1131,1568,1302],{"class":1239},[1131,1570,1305],{"class":1239},[1131,1572,1309],{"class":1308},[1131,1574,1312],{"class":1247},[1131,1576,1316],{"class":1315},[1131,1578,1319],{"class":1243},[1131,1580,1323],{"class":1322},[1131,1582,1326],{"class":1243},[1131,1584,1329],{"class":1315},[1131,1586,1332],{"class":1243},[1131,1588,1589,1591,1593,1595,1597,1599,1601,1603,1605,1607],{"class":1133,"line":1335},[1131,1590,1338],{"class":1315},[1131,1592,1244],{"class":1243},[1131,1594,1343],{"class":1247},[1131,1596,1257],{"class":1243},[1131,1598,1348],{"class":1243},[1131,1600,1351],{"class":1239},[1131,1602,1354],{"class":1308},[1131,1604,1312],{"class":1357},[1131,1606,1323],{"class":1247},[1131,1608,1362],{"class":1357},[1131,1610,1611],{"class":1133,"line":1365},[1131,1612,1296],{"emptyLinePlaceholder":21},[1131,1614,1615,1617,1619,1621],{"class":1133,"line":1370},[1131,1616,1373],{"class":1239},[1131,1618,1248],{"class":1308},[1131,1620,1312],{"class":1357},[1131,1622,1380],{"class":1243},[1131,1624,1625,1627,1629,1631,1633,1635,1637,1639,1641],{"class":1133,"line":1383},[1131,1626,1386],{"class":1357},[1131,1628,1389],{"class":1243},[1131,1630,1279],{"class":1308},[1131,1632,1312],{"class":1357},[1131,1634,1396],{"class":1243},[1131,1636,1399],{"class":1140},[1131,1638,1396],{"class":1243},[1131,1640,1326],{"class":1357},[1131,1642,1406],{"class":1243},[1131,1644,1645,1647,1649,1651],{"class":1133,"line":1409},[1131,1646,1412],{"class":1357},[1131,1648,1389],{"class":1243},[1131,1650,1418],{"class":1417},[1131,1652,1406],{"class":1243},[1131,1654,1655,1657,1659,1661,1663,1665],{"class":1133,"line":1423},[1131,1656,1426],{"class":1357},[1131,1658,1389],{"class":1243},[1131,1660,1263],{"class":1243},[1131,1662,1433],{"class":1140},[1131,1664,1396],{"class":1243},[1131,1666,1406],{"class":1243},[1131,1668,1669,1671,1673,1675,1677,1679,1681,1683],{"class":1133,"line":1440},[1131,1670,1443],{"class":1357},[1131,1672,1389],{"class":1243},[1131,1674,1351],{"class":1239},[1131,1676,1254],{"class":1308},[1131,1678,1312],{"class":1357},[1131,1680,1454],{"class":1247},[1131,1682,1326],{"class":1357},[1131,1684,1406],{"class":1243},[1131,1686,1687,1690,1692],{"class":1133,"line":1459},[1131,1688,1689],{"class":1357},"    providerOptions",[1131,1691,1389],{"class":1243},[1131,1693,1332],{"class":1243},[1131,1695,1696,1699,1701],{"class":1133,"line":1476},[1131,1697,1698],{"class":1357},"      anthropic",[1131,1700,1389],{"class":1243},[1131,1702,1332],{"class":1243},[1131,1704,1706,1709,1711],{"class":1133,"line":1705},14,[1131,1707,1708],{"class":1357},"        thinking",[1131,1710,1389],{"class":1243},[1131,1712,1332],{"class":1243},[1131,1714,1716,1719,1721,1723,1726],{"class":1133,"line":1715},15,[1131,1717,1718],{"class":1357},"          type",[1131,1720,1389],{"class":1243},[1131,1722,1263],{"class":1243},[1131,1724,1725],{"class":1140},"adaptive",[1131,1727,1269],{"class":1243},[1131,1729,1731],{"class":1133,"line":1730},16,[1131,1732,1733],{"class":1243},"        },\n",[1131,1735,1737,1740,1742,1744,1747],{"class":1133,"line":1736},17,[1131,1738,1739],{"class":1357},"        effort",[1131,1741,1389],{"class":1243},[1131,1743,1263],{"class":1243},[1131,1745,1746],{"class":1140},"low",[1131,1748,1269],{"class":1243},[1131,1750,1752],{"class":1133,"line":1751},18,[1131,1753,1754],{"class":1243},"      },\n",[1131,1756,1758,1761,1763],{"class":1133,"line":1757},19,[1131,1759,1760],{"class":1357},"      google",[1131,1762,1389],{"class":1243},[1131,1764,1332],{"class":1243},[1131,1766,1768,1771,1773],{"class":1133,"line":1767},20,[1131,1769,1770],{"class":1357},"        thinkingConfig",[1131,1772,1389],{"class":1243},[1131,1774,1332],{"class":1243},[1131,1776,1778,1781,1783,1787],{"class":1133,"line":1777},21,[1131,1779,1780],{"class":1357},"          includeThoughts",[1131,1782,1389],{"class":1243},[1131,1784,1786],{"class":1785},"sfNiH"," true",[1131,1788,1406],{"class":1243},[1131,1790,1792,1795,1797,1799,1801],{"class":1133,"line":1791},22,[1131,1793,1794],{"class":1357},"          thinkingLevel",[1131,1796,1389],{"class":1243},[1131,1798,1263],{"class":1243},[1131,1800,1746],{"class":1140},[1131,1802,1269],{"class":1243},[1131,1804,1806],{"class":1133,"line":1805},23,[1131,1807,1808],{"class":1243},"        }\n",[1131,1810,1812],{"class":1133,"line":1811},24,[1131,1813,1754],{"class":1243},[1131,1815,1817,1820,1822],{"class":1133,"line":1816},25,[1131,1818,1819],{"class":1357},"      openai",[1131,1821,1389],{"class":1243},[1131,1823,1332],{"class":1243},[1131,1825,1827,1830,1832,1834,1836,1838],{"class":1133,"line":1826},26,[1131,1828,1829],{"class":1357},"        reasoningEffort",[1131,1831,1389],{"class":1243},[1131,1833,1263],{"class":1243},[1131,1835,1746],{"class":1140},[1131,1837,1396],{"class":1243},[1131,1839,1406],{"class":1243},[1131,1841,1843,1846,1848,1850,1853],{"class":1133,"line":1842},27,[1131,1844,1845],{"class":1357},"        reasoningSummary",[1131,1847,1389],{"class":1243},[1131,1849,1263],{"class":1243},[1131,1851,1852],{"class":1140},"detailed",[1131,1854,1269],{"class":1243},[1131,1856,1858],{"class":1133,"line":1857},28,[1131,1859,1860],{"class":1243},"      }\n",[1131,1862,1864],{"class":1133,"line":1863},29,[1131,1865,1866],{"class":1243},"    }\n",[1131,1868,1870,1872,1874,1876,1878],{"class":1133,"line":1869},30,[1131,1871,1462],{"class":1243},[1131,1873,1326],{"class":1357},[1131,1875,1467],{"class":1243},[1131,1877,1470],{"class":1308},[1131,1879,1473],{"class":1357},[1131,1881,1883,1885],{"class":1133,"line":1882},31,[1131,1884,1479],{"class":1243},[1131,1886,1362],{"class":1247},[1483,1888,1890],{"id":1889},"web-search","Web Search",[965,1892,1893,1894,1504,1898,1504,1902,1467],{},"Some providers offer built-in web search tools: ",[969,1895,1503],{"href":1896,"rel":1897},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fguides\u002Fproviders\u002Fanthropic#web-search-tool",[973],[969,1899,1509],{"href":1900,"rel":1901},"https:\u002F\u002Fai-sdk.dev\u002Fproviders\u002Fai-sdk-providers\u002Fgoogle-generative-ai#google-search",[973],[969,1903,1514],{"href":1904,"rel":1905},"https:\u002F\u002Fai-sdk.dev\u002Fproviders\u002Fai-sdk-providers\u002Fopenai#web-search-tool",[973],[1117,1907,1908,2144,2378],{},[1121,1909,1911],{"className":1229,"code":1910,"filename":1503,"language":1232,"meta":1127,"style":1127},"import { streamText, convertToModelMessages } from 'ai'\nimport { anthropic } from '@ai-sdk\u002Fanthropic'\nimport { gateway } from '@ai-sdk\u002Fgateway'\n\nexport default defineEventHandler(async (event) => {\n  const { messages } = await readBody(event)\n\n  return streamText({\n    model: gateway('anthropic\u002Fclaude-sonnet-4.6'),\n    system: 'You are a helpful assistant.',\n    messages: await convertToModelMessages(messages),\n    tools: {\n      web_search: anthropic.tools.webSearch_20250305({})\n    }\n  }).toUIMessageStreamResponse()\n})\n",[989,1912,1913,1935,1955,1973,1977,1999,2021,2025,2035,2055,2069,2087,2096,2122,2126,2138],{"__ignoreMap":1127},[1131,1914,1915,1917,1919,1921,1923,1925,1927,1929,1931,1933],{"class":1133,"line":1134},[1131,1916,1240],{"class":1239},[1131,1918,1244],{"class":1243},[1131,1920,1248],{"class":1247},[1131,1922,1251],{"class":1243},[1131,1924,1254],{"class":1247},[1131,1926,1257],{"class":1243},[1131,1928,1260],{"class":1239},[1131,1930,1263],{"class":1243},[1131,1932,1266],{"class":1140},[1131,1934,1269],{"class":1243},[1131,1936,1937,1939,1941,1944,1946,1948,1950,1953],{"class":1133,"line":1272},[1131,1938,1240],{"class":1239},[1131,1940,1244],{"class":1243},[1131,1942,1943],{"class":1247}," anthropic",[1131,1945,1257],{"class":1243},[1131,1947,1260],{"class":1239},[1131,1949,1263],{"class":1243},[1131,1951,1952],{"class":1140},"@ai-sdk\u002Fanthropic",[1131,1954,1269],{"class":1243},[1131,1956,1957,1959,1961,1963,1965,1967,1969,1971],{"class":1133,"line":1293},[1131,1958,1240],{"class":1239},[1131,1960,1244],{"class":1243},[1131,1962,1279],{"class":1247},[1131,1964,1257],{"class":1243},[1131,1966,1260],{"class":1239},[1131,1968,1263],{"class":1243},[1131,1970,1288],{"class":1140},[1131,1972,1269],{"class":1243},[1131,1974,1975],{"class":1133,"line":1299},[1131,1976,1296],{"emptyLinePlaceholder":21},[1131,1978,1979,1981,1983,1985,1987,1989,1991,1993,1995,1997],{"class":1133,"line":1335},[1131,1980,1302],{"class":1239},[1131,1982,1305],{"class":1239},[1131,1984,1309],{"class":1308},[1131,1986,1312],{"class":1247},[1131,1988,1316],{"class":1315},[1131,1990,1319],{"class":1243},[1131,1992,1323],{"class":1322},[1131,1994,1326],{"class":1243},[1131,1996,1329],{"class":1315},[1131,1998,1332],{"class":1243},[1131,2000,2001,2003,2005,2007,2009,2011,2013,2015,2017,2019],{"class":1133,"line":1365},[1131,2002,1338],{"class":1315},[1131,2004,1244],{"class":1243},[1131,2006,1343],{"class":1247},[1131,2008,1257],{"class":1243},[1131,2010,1348],{"class":1243},[1131,2012,1351],{"class":1239},[1131,2014,1354],{"class":1308},[1131,2016,1312],{"class":1357},[1131,2018,1323],{"class":1247},[1131,2020,1362],{"class":1357},[1131,2022,2023],{"class":1133,"line":1370},[1131,2024,1296],{"emptyLinePlaceholder":21},[1131,2026,2027,2029,2031,2033],{"class":1133,"line":1383},[1131,2028,1373],{"class":1239},[1131,2030,1248],{"class":1308},[1131,2032,1312],{"class":1357},[1131,2034,1380],{"class":1243},[1131,2036,2037,2039,2041,2043,2045,2047,2049,2051,2053],{"class":1133,"line":1409},[1131,2038,1386],{"class":1357},[1131,2040,1389],{"class":1243},[1131,2042,1279],{"class":1308},[1131,2044,1312],{"class":1357},[1131,2046,1396],{"class":1243},[1131,2048,1399],{"class":1140},[1131,2050,1396],{"class":1243},[1131,2052,1326],{"class":1357},[1131,2054,1406],{"class":1243},[1131,2056,2057,2059,2061,2063,2065,2067],{"class":1133,"line":1423},[1131,2058,1426],{"class":1357},[1131,2060,1389],{"class":1243},[1131,2062,1263],{"class":1243},[1131,2064,1433],{"class":1140},[1131,2066,1396],{"class":1243},[1131,2068,1406],{"class":1243},[1131,2070,2071,2073,2075,2077,2079,2081,2083,2085],{"class":1133,"line":1440},[1131,2072,1443],{"class":1357},[1131,2074,1389],{"class":1243},[1131,2076,1351],{"class":1239},[1131,2078,1254],{"class":1308},[1131,2080,1312],{"class":1357},[1131,2082,1454],{"class":1247},[1131,2084,1326],{"class":1357},[1131,2086,1406],{"class":1243},[1131,2088,2089,2092,2094],{"class":1133,"line":1459},[1131,2090,2091],{"class":1357},"    tools",[1131,2093,1389],{"class":1243},[1131,2095,1332],{"class":1243},[1131,2097,2098,2101,2103,2105,2107,2110,2112,2115,2117,2120],{"class":1133,"line":1476},[1131,2099,2100],{"class":1357},"      web_search",[1131,2102,1389],{"class":1243},[1131,2104,1943],{"class":1247},[1131,2106,1467],{"class":1243},[1131,2108,2109],{"class":1247},"tools",[1131,2111,1467],{"class":1243},[1131,2113,2114],{"class":1308},"webSearch_20250305",[1131,2116,1312],{"class":1357},[1131,2118,2119],{"class":1243},"{}",[1131,2121,1362],{"class":1357},[1131,2123,2124],{"class":1133,"line":1705},[1131,2125,1866],{"class":1243},[1131,2127,2128,2130,2132,2134,2136],{"class":1133,"line":1715},[1131,2129,1462],{"class":1243},[1131,2131,1326],{"class":1357},[1131,2133,1467],{"class":1243},[1131,2135,1470],{"class":1308},[1131,2137,1473],{"class":1357},[1131,2139,2140,2142],{"class":1133,"line":1730},[1131,2141,1479],{"class":1243},[1131,2143,1362],{"class":1247},[1121,2145,2147],{"className":1229,"code":2146,"filename":1509,"language":1232,"meta":1127,"style":1127},"import { streamText, convertToModelMessages } from 'ai'\nimport { google } from '@ai-sdk\u002Fgoogle'\nimport { gateway } from '@ai-sdk\u002Fgateway'\n\nexport default defineEventHandler(async (event) => {\n  const { messages } = await readBody(event)\n\n  return streamText({\n    model: gateway('google\u002Fgemini-3-flash'),\n    system: 'You are a helpful assistant.',\n    messages: await convertToModelMessages(messages),\n    tools: {\n      google_search: google.tools.googleSearch({})\n    }\n  }).toUIMessageStreamResponse()\n})\n",[989,2148,2149,2171,2191,2209,2213,2235,2257,2261,2271,2292,2306,2324,2332,2356,2360,2372],{"__ignoreMap":1127},[1131,2150,2151,2153,2155,2157,2159,2161,2163,2165,2167,2169],{"class":1133,"line":1134},[1131,2152,1240],{"class":1239},[1131,2154,1244],{"class":1243},[1131,2156,1248],{"class":1247},[1131,2158,1251],{"class":1243},[1131,2160,1254],{"class":1247},[1131,2162,1257],{"class":1243},[1131,2164,1260],{"class":1239},[1131,2166,1263],{"class":1243},[1131,2168,1266],{"class":1140},[1131,2170,1269],{"class":1243},[1131,2172,2173,2175,2177,2180,2182,2184,2186,2189],{"class":1133,"line":1272},[1131,2174,1240],{"class":1239},[1131,2176,1244],{"class":1243},[1131,2178,2179],{"class":1247}," google",[1131,2181,1257],{"class":1243},[1131,2183,1260],{"class":1239},[1131,2185,1263],{"class":1243},[1131,2187,2188],{"class":1140},"@ai-sdk\u002Fgoogle",[1131,2190,1269],{"class":1243},[1131,2192,2193,2195,2197,2199,2201,2203,2205,2207],{"class":1133,"line":1293},[1131,2194,1240],{"class":1239},[1131,2196,1244],{"class":1243},[1131,2198,1279],{"class":1247},[1131,2200,1257],{"class":1243},[1131,2202,1260],{"class":1239},[1131,2204,1263],{"class":1243},[1131,2206,1288],{"class":1140},[1131,2208,1269],{"class":1243},[1131,2210,2211],{"class":1133,"line":1299},[1131,2212,1296],{"emptyLinePlaceholder":21},[1131,2214,2215,2217,2219,2221,2223,2225,2227,2229,2231,2233],{"class":1133,"line":1335},[1131,2216,1302],{"class":1239},[1131,2218,1305],{"class":1239},[1131,2220,1309],{"class":1308},[1131,2222,1312],{"class":1247},[1131,2224,1316],{"class":1315},[1131,2226,1319],{"class":1243},[1131,2228,1323],{"class":1322},[1131,2230,1326],{"class":1243},[1131,2232,1329],{"class":1315},[1131,2234,1332],{"class":1243},[1131,2236,2237,2239,2241,2243,2245,2247,2249,2251,2253,2255],{"class":1133,"line":1365},[1131,2238,1338],{"class":1315},[1131,2240,1244],{"class":1243},[1131,2242,1343],{"class":1247},[1131,2244,1257],{"class":1243},[1131,2246,1348],{"class":1243},[1131,2248,1351],{"class":1239},[1131,2250,1354],{"class":1308},[1131,2252,1312],{"class":1357},[1131,2254,1323],{"class":1247},[1131,2256,1362],{"class":1357},[1131,2258,2259],{"class":1133,"line":1370},[1131,2260,1296],{"emptyLinePlaceholder":21},[1131,2262,2263,2265,2267,2269],{"class":1133,"line":1383},[1131,2264,1373],{"class":1239},[1131,2266,1248],{"class":1308},[1131,2268,1312],{"class":1357},[1131,2270,1380],{"class":1243},[1131,2272,2273,2275,2277,2279,2281,2283,2286,2288,2290],{"class":1133,"line":1409},[1131,2274,1386],{"class":1357},[1131,2276,1389],{"class":1243},[1131,2278,1279],{"class":1308},[1131,2280,1312],{"class":1357},[1131,2282,1396],{"class":1243},[1131,2284,2285],{"class":1140},"google\u002Fgemini-3-flash",[1131,2287,1396],{"class":1243},[1131,2289,1326],{"class":1357},[1131,2291,1406],{"class":1243},[1131,2293,2294,2296,2298,2300,2302,2304],{"class":1133,"line":1423},[1131,2295,1426],{"class":1357},[1131,2297,1389],{"class":1243},[1131,2299,1263],{"class":1243},[1131,2301,1433],{"class":1140},[1131,2303,1396],{"class":1243},[1131,2305,1406],{"class":1243},[1131,2307,2308,2310,2312,2314,2316,2318,2320,2322],{"class":1133,"line":1440},[1131,2309,1443],{"class":1357},[1131,2311,1389],{"class":1243},[1131,2313,1351],{"class":1239},[1131,2315,1254],{"class":1308},[1131,2317,1312],{"class":1357},[1131,2319,1454],{"class":1247},[1131,2321,1326],{"class":1357},[1131,2323,1406],{"class":1243},[1131,2325,2326,2328,2330],{"class":1133,"line":1459},[1131,2327,2091],{"class":1357},[1131,2329,1389],{"class":1243},[1131,2331,1332],{"class":1243},[1131,2333,2334,2337,2339,2341,2343,2345,2347,2350,2352,2354],{"class":1133,"line":1476},[1131,2335,2336],{"class":1357},"      google_search",[1131,2338,1389],{"class":1243},[1131,2340,2179],{"class":1247},[1131,2342,1467],{"class":1243},[1131,2344,2109],{"class":1247},[1131,2346,1467],{"class":1243},[1131,2348,2349],{"class":1308},"googleSearch",[1131,2351,1312],{"class":1357},[1131,2353,2119],{"class":1243},[1131,2355,1362],{"class":1357},[1131,2357,2358],{"class":1133,"line":1705},[1131,2359,1866],{"class":1243},[1131,2361,2362,2364,2366,2368,2370],{"class":1133,"line":1715},[1131,2363,1462],{"class":1243},[1131,2365,1326],{"class":1357},[1131,2367,1467],{"class":1243},[1131,2369,1470],{"class":1308},[1131,2371,1473],{"class":1357},[1131,2373,2374,2376],{"class":1133,"line":1730},[1131,2375,1479],{"class":1243},[1131,2377,1362],{"class":1247},[1121,2379,2381],{"className":1229,"code":2380,"filename":1514,"language":1232,"meta":1127,"style":1127},"import { streamText, convertToModelMessages } from 'ai'\nimport { openai } from '@ai-sdk\u002Fopenai'\nimport { gateway } from '@ai-sdk\u002Fgateway'\n\nexport default defineEventHandler(async (event) => {\n  const { messages } = await readBody(event)\n\n  return streamText({\n    model: gateway('openai\u002Fgpt-5-nano'),\n    system: 'You are a helpful assistant.',\n    messages: await convertToModelMessages(messages),\n    tools: {\n      web_search: openai.tools.webSearch({})\n    }\n  }).toUIMessageStreamResponse()\n})\n",[989,2382,2383,2405,2425,2443,2447,2469,2491,2495,2505,2526,2540,2558,2566,2589,2593,2605],{"__ignoreMap":1127},[1131,2384,2385,2387,2389,2391,2393,2395,2397,2399,2401,2403],{"class":1133,"line":1134},[1131,2386,1240],{"class":1239},[1131,2388,1244],{"class":1243},[1131,2390,1248],{"class":1247},[1131,2392,1251],{"class":1243},[1131,2394,1254],{"class":1247},[1131,2396,1257],{"class":1243},[1131,2398,1260],{"class":1239},[1131,2400,1263],{"class":1243},[1131,2402,1266],{"class":1140},[1131,2404,1269],{"class":1243},[1131,2406,2407,2409,2411,2414,2416,2418,2420,2423],{"class":1133,"line":1272},[1131,2408,1240],{"class":1239},[1131,2410,1244],{"class":1243},[1131,2412,2413],{"class":1247}," openai",[1131,2415,1257],{"class":1243},[1131,2417,1260],{"class":1239},[1131,2419,1263],{"class":1243},[1131,2421,2422],{"class":1140},"@ai-sdk\u002Fopenai",[1131,2424,1269],{"class":1243},[1131,2426,2427,2429,2431,2433,2435,2437,2439,2441],{"class":1133,"line":1293},[1131,2428,1240],{"class":1239},[1131,2430,1244],{"class":1243},[1131,2432,1279],{"class":1247},[1131,2434,1257],{"class":1243},[1131,2436,1260],{"class":1239},[1131,2438,1263],{"class":1243},[1131,2440,1288],{"class":1140},[1131,2442,1269],{"class":1243},[1131,2444,2445],{"class":1133,"line":1299},[1131,2446,1296],{"emptyLinePlaceholder":21},[1131,2448,2449,2451,2453,2455,2457,2459,2461,2463,2465,2467],{"class":1133,"line":1335},[1131,2450,1302],{"class":1239},[1131,2452,1305],{"class":1239},[1131,2454,1309],{"class":1308},[1131,2456,1312],{"class":1247},[1131,2458,1316],{"class":1315},[1131,2460,1319],{"class":1243},[1131,2462,1323],{"class":1322},[1131,2464,1326],{"class":1243},[1131,2466,1329],{"class":1315},[1131,2468,1332],{"class":1243},[1131,2470,2471,2473,2475,2477,2479,2481,2483,2485,2487,2489],{"class":1133,"line":1365},[1131,2472,1338],{"class":1315},[1131,2474,1244],{"class":1243},[1131,2476,1343],{"class":1247},[1131,2478,1257],{"class":1243},[1131,2480,1348],{"class":1243},[1131,2482,1351],{"class":1239},[1131,2484,1354],{"class":1308},[1131,2486,1312],{"class":1357},[1131,2488,1323],{"class":1247},[1131,2490,1362],{"class":1357},[1131,2492,2493],{"class":1133,"line":1370},[1131,2494,1296],{"emptyLinePlaceholder":21},[1131,2496,2497,2499,2501,2503],{"class":1133,"line":1383},[1131,2498,1373],{"class":1239},[1131,2500,1248],{"class":1308},[1131,2502,1312],{"class":1357},[1131,2504,1380],{"class":1243},[1131,2506,2507,2509,2511,2513,2515,2517,2520,2522,2524],{"class":1133,"line":1409},[1131,2508,1386],{"class":1357},[1131,2510,1389],{"class":1243},[1131,2512,1279],{"class":1308},[1131,2514,1312],{"class":1357},[1131,2516,1396],{"class":1243},[1131,2518,2519],{"class":1140},"openai\u002Fgpt-5-nano",[1131,2521,1396],{"class":1243},[1131,2523,1326],{"class":1357},[1131,2525,1406],{"class":1243},[1131,2527,2528,2530,2532,2534,2536,2538],{"class":1133,"line":1423},[1131,2529,1426],{"class":1357},[1131,2531,1389],{"class":1243},[1131,2533,1263],{"class":1243},[1131,2535,1433],{"class":1140},[1131,2537,1396],{"class":1243},[1131,2539,1406],{"class":1243},[1131,2541,2542,2544,2546,2548,2550,2552,2554,2556],{"class":1133,"line":1440},[1131,2543,1443],{"class":1357},[1131,2545,1389],{"class":1243},[1131,2547,1351],{"class":1239},[1131,2549,1254],{"class":1308},[1131,2551,1312],{"class":1357},[1131,2553,1454],{"class":1247},[1131,2555,1326],{"class":1357},[1131,2557,1406],{"class":1243},[1131,2559,2560,2562,2564],{"class":1133,"line":1459},[1131,2561,2091],{"class":1357},[1131,2563,1389],{"class":1243},[1131,2565,1332],{"class":1243},[1131,2567,2568,2570,2572,2574,2576,2578,2580,2583,2585,2587],{"class":1133,"line":1476},[1131,2569,2100],{"class":1357},[1131,2571,1389],{"class":1243},[1131,2573,2413],{"class":1247},[1131,2575,1467],{"class":1243},[1131,2577,2109],{"class":1247},[1131,2579,1467],{"class":1243},[1131,2581,2582],{"class":1308},"webSearch",[1131,2584,1312],{"class":1357},[1131,2586,2119],{"class":1243},[1131,2588,1362],{"class":1357},[1131,2590,2591],{"class":1133,"line":1705},[1131,2592,1866],{"class":1243},[1131,2594,2595,2597,2599,2601,2603],{"class":1133,"line":1715},[1131,2596,1462],{"class":1243},[1131,2598,1326],{"class":1357},[1131,2600,1467],{"class":1243},[1131,2602,1470],{"class":1308},[1131,2604,1473],{"class":1357},[1131,2606,2607,2609],{"class":1133,"line":1730},[1131,2608,1479],{"class":1243},[1131,2610,1362],{"class":1247},[1483,2612,2614],{"id":2613},"tool-calling-mcp","Tool Calling (MCP)",[965,2616,2617,2618,1319,2623,2626],{},"You can enhance your chatbot with tool calling capabilities using the ",[969,2619,2622],{"href":2620,"rel":2621},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Fmcp-tools",[973],"Model Context Protocol",[989,2624,2625],{},"@ai-sdk\u002Fmcp","). This allows the AI to search your documentation or perform other actions:",[1121,2628,2630],{"className":1229,"code":2629,"filename":1231,"language":1232,"meta":1127,"style":1127},"import { StreamableHTTPClientTransport } from '@modelcontextprotocol\u002Fsdk\u002Fclient\u002FstreamableHttp.js'\nimport { streamText, convertToModelMessages, stepCountIs } from 'ai'\nimport { experimental_createMCPClient } from '@ai-sdk\u002Fmcp'\nimport { gateway } from '@ai-sdk\u002Fgateway'\n\nexport default defineEventHandler(async (event) => {\n  const { messages } = await readBody(event)\n\n  const httpTransport = new StreamableHTTPClientTransport(\n    new URL('https:\u002F\u002Fyour-app.com\u002Fmcp')\n  )\n  const httpClient = await experimental_createMCPClient({\n    transport: httpTransport\n  })\n  const tools = await httpClient.tools()\n\n  return streamText({\n    model: gateway('anthropic\u002Fclaude-sonnet-4.6'),\n    maxOutputTokens: 10000,\n    system: 'You are a helpful assistant. Use your tools to search for relevant information before answering questions.',\n    messages: await convertToModelMessages(messages),\n    stopWhen: stepCountIs(6),\n    tools,\n    onFinish: async () => {\n      await httpClient.close()\n    },\n    onError: async (error) => {\n      console.error(error)\n      await httpClient.close()\n    }\n  }).toUIMessageStreamResponse()\n})\n",[989,2631,2632,2652,2679,2698,2716,2720,2742,2764,2768,2785,2804,2809,2826,2836,2842,2861,2865,2875,2895,2905,2920,2938,2956,2962,2979,2993,2998,3018,3033,3045,3049,3061],{"__ignoreMap":1127},[1131,2633,2634,2636,2638,2641,2643,2645,2647,2650],{"class":1133,"line":1134},[1131,2635,1240],{"class":1239},[1131,2637,1244],{"class":1243},[1131,2639,2640],{"class":1247}," StreamableHTTPClientTransport",[1131,2642,1257],{"class":1243},[1131,2644,1260],{"class":1239},[1131,2646,1263],{"class":1243},[1131,2648,2649],{"class":1140},"@modelcontextprotocol\u002Fsdk\u002Fclient\u002FstreamableHttp.js",[1131,2651,1269],{"class":1243},[1131,2653,2654,2656,2658,2660,2662,2664,2666,2669,2671,2673,2675,2677],{"class":1133,"line":1272},[1131,2655,1240],{"class":1239},[1131,2657,1244],{"class":1243},[1131,2659,1248],{"class":1247},[1131,2661,1251],{"class":1243},[1131,2663,1254],{"class":1247},[1131,2665,1251],{"class":1243},[1131,2667,2668],{"class":1247}," stepCountIs",[1131,2670,1257],{"class":1243},[1131,2672,1260],{"class":1239},[1131,2674,1263],{"class":1243},[1131,2676,1266],{"class":1140},[1131,2678,1269],{"class":1243},[1131,2680,2681,2683,2685,2688,2690,2692,2694,2696],{"class":1133,"line":1293},[1131,2682,1240],{"class":1239},[1131,2684,1244],{"class":1243},[1131,2686,2687],{"class":1247}," experimental_createMCPClient",[1131,2689,1257],{"class":1243},[1131,2691,1260],{"class":1239},[1131,2693,1263],{"class":1243},[1131,2695,2625],{"class":1140},[1131,2697,1269],{"class":1243},[1131,2699,2700,2702,2704,2706,2708,2710,2712,2714],{"class":1133,"line":1299},[1131,2701,1240],{"class":1239},[1131,2703,1244],{"class":1243},[1131,2705,1279],{"class":1247},[1131,2707,1257],{"class":1243},[1131,2709,1260],{"class":1239},[1131,2711,1263],{"class":1243},[1131,2713,1288],{"class":1140},[1131,2715,1269],{"class":1243},[1131,2717,2718],{"class":1133,"line":1335},[1131,2719,1296],{"emptyLinePlaceholder":21},[1131,2721,2722,2724,2726,2728,2730,2732,2734,2736,2738,2740],{"class":1133,"line":1365},[1131,2723,1302],{"class":1239},[1131,2725,1305],{"class":1239},[1131,2727,1309],{"class":1308},[1131,2729,1312],{"class":1247},[1131,2731,1316],{"class":1315},[1131,2733,1319],{"class":1243},[1131,2735,1323],{"class":1322},[1131,2737,1326],{"class":1243},[1131,2739,1329],{"class":1315},[1131,2741,1332],{"class":1243},[1131,2743,2744,2746,2748,2750,2752,2754,2756,2758,2760,2762],{"class":1133,"line":1370},[1131,2745,1338],{"class":1315},[1131,2747,1244],{"class":1243},[1131,2749,1343],{"class":1247},[1131,2751,1257],{"class":1243},[1131,2753,1348],{"class":1243},[1131,2755,1351],{"class":1239},[1131,2757,1354],{"class":1308},[1131,2759,1312],{"class":1357},[1131,2761,1323],{"class":1247},[1131,2763,1362],{"class":1357},[1131,2765,2766],{"class":1133,"line":1383},[1131,2767,1296],{"emptyLinePlaceholder":21},[1131,2769,2770,2772,2775,2777,2780,2782],{"class":1133,"line":1409},[1131,2771,1338],{"class":1315},[1131,2773,2774],{"class":1247}," httpTransport",[1131,2776,1348],{"class":1243},[1131,2778,2779],{"class":1243}," new",[1131,2781,2640],{"class":1308},[1131,2783,2784],{"class":1357},"(\n",[1131,2786,2787,2790,2793,2795,2797,2800,2802],{"class":1133,"line":1423},[1131,2788,2789],{"class":1243},"    new",[1131,2791,2792],{"class":1308}," URL",[1131,2794,1312],{"class":1357},[1131,2796,1396],{"class":1243},[1131,2798,2799],{"class":1140},"https:\u002F\u002Fyour-app.com\u002Fmcp",[1131,2801,1396],{"class":1243},[1131,2803,1362],{"class":1357},[1131,2805,2806],{"class":1133,"line":1440},[1131,2807,2808],{"class":1357},"  )\n",[1131,2810,2811,2813,2816,2818,2820,2822,2824],{"class":1133,"line":1459},[1131,2812,1338],{"class":1315},[1131,2814,2815],{"class":1247}," httpClient",[1131,2817,1348],{"class":1243},[1131,2819,1351],{"class":1239},[1131,2821,2687],{"class":1308},[1131,2823,1312],{"class":1357},[1131,2825,1380],{"class":1243},[1131,2827,2828,2831,2833],{"class":1133,"line":1476},[1131,2829,2830],{"class":1357},"    transport",[1131,2832,1389],{"class":1243},[1131,2834,2835],{"class":1247}," httpTransport\n",[1131,2837,2838,2840],{"class":1133,"line":1705},[1131,2839,1462],{"class":1243},[1131,2841,1362],{"class":1357},[1131,2843,2844,2846,2849,2851,2853,2855,2857,2859],{"class":1133,"line":1715},[1131,2845,1338],{"class":1315},[1131,2847,2848],{"class":1247}," tools",[1131,2850,1348],{"class":1243},[1131,2852,1351],{"class":1239},[1131,2854,2815],{"class":1247},[1131,2856,1467],{"class":1243},[1131,2858,2109],{"class":1308},[1131,2860,1473],{"class":1357},[1131,2862,2863],{"class":1133,"line":1730},[1131,2864,1296],{"emptyLinePlaceholder":21},[1131,2866,2867,2869,2871,2873],{"class":1133,"line":1736},[1131,2868,1373],{"class":1239},[1131,2870,1248],{"class":1308},[1131,2872,1312],{"class":1357},[1131,2874,1380],{"class":1243},[1131,2876,2877,2879,2881,2883,2885,2887,2889,2891,2893],{"class":1133,"line":1751},[1131,2878,1386],{"class":1357},[1131,2880,1389],{"class":1243},[1131,2882,1279],{"class":1308},[1131,2884,1312],{"class":1357},[1131,2886,1396],{"class":1243},[1131,2888,1399],{"class":1140},[1131,2890,1396],{"class":1243},[1131,2892,1326],{"class":1357},[1131,2894,1406],{"class":1243},[1131,2896,2897,2899,2901,2903],{"class":1133,"line":1757},[1131,2898,1412],{"class":1357},[1131,2900,1389],{"class":1243},[1131,2902,1418],{"class":1417},[1131,2904,1406],{"class":1243},[1131,2906,2907,2909,2911,2913,2916,2918],{"class":1133,"line":1767},[1131,2908,1426],{"class":1357},[1131,2910,1389],{"class":1243},[1131,2912,1263],{"class":1243},[1131,2914,2915],{"class":1140},"You are a helpful assistant. Use your tools to search for relevant information before answering questions.",[1131,2917,1396],{"class":1243},[1131,2919,1406],{"class":1243},[1131,2921,2922,2924,2926,2928,2930,2932,2934,2936],{"class":1133,"line":1777},[1131,2923,1443],{"class":1357},[1131,2925,1389],{"class":1243},[1131,2927,1351],{"class":1239},[1131,2929,1254],{"class":1308},[1131,2931,1312],{"class":1357},[1131,2933,1454],{"class":1247},[1131,2935,1326],{"class":1357},[1131,2937,1406],{"class":1243},[1131,2939,2940,2943,2945,2947,2949,2952,2954],{"class":1133,"line":1791},[1131,2941,2942],{"class":1357},"    stopWhen",[1131,2944,1389],{"class":1243},[1131,2946,2668],{"class":1308},[1131,2948,1312],{"class":1357},[1131,2950,2951],{"class":1417},"6",[1131,2953,1326],{"class":1357},[1131,2955,1406],{"class":1243},[1131,2957,2958,2960],{"class":1133,"line":1805},[1131,2959,2091],{"class":1247},[1131,2961,1406],{"class":1243},[1131,2963,2964,2967,2969,2972,2975,2977],{"class":1133,"line":1811},[1131,2965,2966],{"class":1308},"    onFinish",[1131,2968,1389],{"class":1243},[1131,2970,2971],{"class":1315}," async",[1131,2973,2974],{"class":1243}," ()",[1131,2976,1329],{"class":1315},[1131,2978,1332],{"class":1243},[1131,2980,2981,2984,2986,2988,2991],{"class":1133,"line":1816},[1131,2982,2983],{"class":1239},"      await",[1131,2985,2815],{"class":1247},[1131,2987,1467],{"class":1243},[1131,2989,2990],{"class":1308},"close",[1131,2992,1473],{"class":1357},[1131,2994,2995],{"class":1133,"line":1826},[1131,2996,2997],{"class":1243},"    },\n",[1131,2999,3000,3003,3005,3007,3009,3012,3014,3016],{"class":1133,"line":1842},[1131,3001,3002],{"class":1308},"    onError",[1131,3004,1389],{"class":1243},[1131,3006,2971],{"class":1315},[1131,3008,1319],{"class":1243},[1131,3010,3011],{"class":1322},"error",[1131,3013,1326],{"class":1243},[1131,3015,1329],{"class":1315},[1131,3017,1332],{"class":1243},[1131,3019,3020,3023,3025,3027,3029,3031],{"class":1133,"line":1857},[1131,3021,3022],{"class":1247},"      console",[1131,3024,1467],{"class":1243},[1131,3026,3011],{"class":1308},[1131,3028,1312],{"class":1357},[1131,3030,3011],{"class":1247},[1131,3032,1362],{"class":1357},[1131,3034,3035,3037,3039,3041,3043],{"class":1133,"line":1863},[1131,3036,2983],{"class":1239},[1131,3038,2815],{"class":1247},[1131,3040,1467],{"class":1243},[1131,3042,2990],{"class":1308},[1131,3044,1473],{"class":1357},[1131,3046,3047],{"class":1133,"line":1869},[1131,3048,1866],{"class":1243},[1131,3050,3051,3053,3055,3057,3059],{"class":1133,"line":1882},[1131,3052,1462],{"class":1243},[1131,3054,1326],{"class":1357},[1131,3056,1467],{"class":1243},[1131,3058,1470],{"class":1308},[1131,3060,1473],{"class":1357},[1131,3062,3064,3066],{"class":1133,"line":3063},32,[1131,3065,1479],{"class":1243},[1131,3067,1362],{"class":1247},[1002,3069,3071],{"id":3070},"client-setup","Client Setup",[965,3073,3074,3075,3077,3078,3081],{},"Use the ",[989,3076,259],{}," class from ",[989,3079,3080],{},"@ai-sdk\u002Fvue"," to manage chat state and connect to your server endpoint:",[1121,3083,3086],{"className":3084,"code":3085,"language":34,"meta":1127,"style":1127},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport type { UIMessage } from 'ai'\nimport { isReasoningUIPart, isTextUIPart, isToolUIPart, getToolName } from 'ai'\nimport { Chat } from '@ai-sdk\u002Fvue'\nimport { isReasoningStreaming, isToolStreaming } from '@nuxt\u002Fui\u002Futils\u002Fai'\n\nconst input = ref('')\n\nconst chat = new Chat({\n  onError(error) {\n    console.error(error)\n  }\n})\n\nfunction onSubmit() {\n  chat.sendMessage({ text: input.value })\n\n  input.value = ''\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CUChatMessages\n    :messages=\"chat.messages\"\n    :status=\"chat.status\"\n  >\n    \u003Ctemplate #content=\"{ message }\">\n      \u003Ctemplate\n        v-for=\"(part, index) in message.parts\"\n        :key=\"`${message.id}-${part.type}-${index}`\"\n      >\n        \u003CUChatReasoning\n          v-if=\"isReasoningUIPart(part)\"\n          :text=\"part.text\"\n          :streaming=\"isReasoningStreaming(message, index, chat)\"\n        >\n          \u003CMDC\n            :value=\"part.text\"\n            :cache-key=\"`reasoning-${message.id}-${index}`\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n        \u003C\u002FUChatReasoning>\n\n        \u003CUChatTool\n          v-else-if=\"isToolUIPart(part)\"\n          :text=\"getToolName(part)\"\n          :streaming=\"isToolStreaming(part)\"\n        \u002F>\n\n        \u003CMDC\n          v-else-if=\"isTextUIPart(part)\"\n          :value=\"part.text\"\n          :cache-key=\"`${message.id}-${index}`\"\n          class=\"*:first:mt-0 *:last:mb-0\"\n        \u002F>\n      \u003C\u002Ftemplate>\n    \u003C\u002Ftemplate>\n  \u003C\u002FUChatMessages>\n\n  \u003CUChatPrompt\n    v-model=\"input\"\n    :error=\"chat.error\"\n    @submit=\"onSubmit\"\n  >\n    \u003CUChatPromptSubmit\n      :status=\"chat.status\"\n      @stop=\"chat.stop()\"\n      @reload=\"chat.regenerate()\"\n    \u002F>\n  \u003C\u002FUChatPrompt>\n\u003C\u002Ftemplate>\n",[989,3087,3088,3115,3137,3171,3190,3215,3219,3239,3243,3260,3273,3288,3293,3299,3303,3316,3348,3352,3366,3371,3380,3384,3393,3401,3416,3430,3435,3462,3470,3500,3549,3554,3562,3577,3592,3607,3613,3622,3636,3651,3666,3672,3683,3688,3696,3711,3725,3739,3745,3750,3757,3771,3785,3800,3814,3819,3829,3839,3850,3855,3863,3878,3893,3908,3913,3921,3935,3950,3965,3971,3981],{"__ignoreMap":1127},[1131,3089,3090,3093,3096,3099,3102,3105,3108,3110,3112],{"class":1133,"line":1134},[1131,3091,3092],{"class":1243},"\u003C",[1131,3094,3095],{"class":1357},"script",[1131,3097,3098],{"class":1315}," setup",[1131,3100,3101],{"class":1315}," lang",[1131,3103,3104],{"class":1243},"=",[1131,3106,3107],{"class":1243},"\"",[1131,3109,1232],{"class":1140},[1131,3111,3107],{"class":1243},[1131,3113,3114],{"class":1243},">\n",[1131,3116,3117,3119,3122,3124,3127,3129,3131,3133,3135],{"class":1133,"line":1272},[1131,3118,1240],{"class":1239},[1131,3120,3121],{"class":1239}," type",[1131,3123,1244],{"class":1243},[1131,3125,3126],{"class":1247}," UIMessage",[1131,3128,1257],{"class":1243},[1131,3130,1260],{"class":1239},[1131,3132,1263],{"class":1243},[1131,3134,1266],{"class":1140},[1131,3136,1269],{"class":1243},[1131,3138,3139,3141,3143,3146,3148,3151,3153,3156,3158,3161,3163,3165,3167,3169],{"class":1133,"line":1293},[1131,3140,1240],{"class":1239},[1131,3142,1244],{"class":1243},[1131,3144,3145],{"class":1247}," isReasoningUIPart",[1131,3147,1251],{"class":1243},[1131,3149,3150],{"class":1247}," isTextUIPart",[1131,3152,1251],{"class":1243},[1131,3154,3155],{"class":1247}," isToolUIPart",[1131,3157,1251],{"class":1243},[1131,3159,3160],{"class":1247}," getToolName",[1131,3162,1257],{"class":1243},[1131,3164,1260],{"class":1239},[1131,3166,1263],{"class":1243},[1131,3168,1266],{"class":1140},[1131,3170,1269],{"class":1243},[1131,3172,3173,3175,3177,3180,3182,3184,3186,3188],{"class":1133,"line":1299},[1131,3174,1240],{"class":1239},[1131,3176,1244],{"class":1243},[1131,3178,3179],{"class":1247}," Chat",[1131,3181,1257],{"class":1243},[1131,3183,1260],{"class":1239},[1131,3185,1263],{"class":1243},[1131,3187,3080],{"class":1140},[1131,3189,1269],{"class":1243},[1131,3191,3192,3194,3196,3199,3201,3204,3206,3208,3210,3213],{"class":1133,"line":1335},[1131,3193,1240],{"class":1239},[1131,3195,1244],{"class":1243},[1131,3197,3198],{"class":1247}," isReasoningStreaming",[1131,3200,1251],{"class":1243},[1131,3202,3203],{"class":1247}," isToolStreaming",[1131,3205,1257],{"class":1243},[1131,3207,1260],{"class":1239},[1131,3209,1263],{"class":1243},[1131,3211,3212],{"class":1140},"@nuxt\u002Fui\u002Futils\u002Fai",[1131,3214,1269],{"class":1243},[1131,3216,3217],{"class":1133,"line":1365},[1131,3218,1296],{"emptyLinePlaceholder":21},[1131,3220,3221,3224,3227,3229,3232,3234,3237],{"class":1133,"line":1370},[1131,3222,3223],{"class":1315},"const",[1131,3225,3226],{"class":1247}," input ",[1131,3228,3104],{"class":1243},[1131,3230,3231],{"class":1308}," ref",[1131,3233,1312],{"class":1247},[1131,3235,3236],{"class":1243},"''",[1131,3238,1362],{"class":1247},[1131,3240,3241],{"class":1133,"line":1383},[1131,3242,1296],{"emptyLinePlaceholder":21},[1131,3244,3245,3247,3250,3252,3254,3256,3258],{"class":1133,"line":1409},[1131,3246,3223],{"class":1315},[1131,3248,3249],{"class":1247}," chat ",[1131,3251,3104],{"class":1243},[1131,3253,2779],{"class":1243},[1131,3255,3179],{"class":1308},[1131,3257,1312],{"class":1247},[1131,3259,1380],{"class":1243},[1131,3261,3262,3265,3267,3269,3271],{"class":1133,"line":1423},[1131,3263,3264],{"class":1357},"  onError",[1131,3266,1312],{"class":1243},[1131,3268,3011],{"class":1322},[1131,3270,1326],{"class":1243},[1131,3272,1332],{"class":1243},[1131,3274,3275,3278,3280,3282,3284,3286],{"class":1133,"line":1440},[1131,3276,3277],{"class":1247},"    console",[1131,3279,1467],{"class":1243},[1131,3281,3011],{"class":1308},[1131,3283,1312],{"class":1357},[1131,3285,3011],{"class":1247},[1131,3287,1362],{"class":1357},[1131,3289,3290],{"class":1133,"line":1459},[1131,3291,3292],{"class":1243},"  }\n",[1131,3294,3295,3297],{"class":1133,"line":1476},[1131,3296,1479],{"class":1243},[1131,3298,1362],{"class":1247},[1131,3300,3301],{"class":1133,"line":1705},[1131,3302,1296],{"emptyLinePlaceholder":21},[1131,3304,3305,3308,3311,3314],{"class":1133,"line":1715},[1131,3306,3307],{"class":1315},"function",[1131,3309,3310],{"class":1308}," onSubmit",[1131,3312,3313],{"class":1243},"()",[1131,3315,1332],{"class":1243},[1131,3317,3318,3321,3323,3326,3328,3331,3334,3336,3339,3341,3344,3346],{"class":1133,"line":1730},[1131,3319,3320],{"class":1247},"  chat",[1131,3322,1467],{"class":1243},[1131,3324,3325],{"class":1308},"sendMessage",[1131,3327,1312],{"class":1357},[1131,3329,3330],{"class":1243},"{",[1131,3332,3333],{"class":1357}," text",[1131,3335,1389],{"class":1243},[1131,3337,3338],{"class":1247}," input",[1131,3340,1467],{"class":1243},[1131,3342,3343],{"class":1247},"value",[1131,3345,1257],{"class":1243},[1131,3347,1362],{"class":1357},[1131,3349,3350],{"class":1133,"line":1736},[1131,3351,1296],{"emptyLinePlaceholder":21},[1131,3353,3354,3357,3359,3361,3363],{"class":1133,"line":1751},[1131,3355,3356],{"class":1247},"  input",[1131,3358,1467],{"class":1243},[1131,3360,3343],{"class":1247},[1131,3362,1348],{"class":1243},[1131,3364,3365],{"class":1243}," ''\n",[1131,3367,3368],{"class":1133,"line":1757},[1131,3369,3370],{"class":1243},"}\n",[1131,3372,3373,3376,3378],{"class":1133,"line":1767},[1131,3374,3375],{"class":1243},"\u003C\u002F",[1131,3377,3095],{"class":1357},[1131,3379,3114],{"class":1243},[1131,3381,3382],{"class":1133,"line":1777},[1131,3383,1296],{"emptyLinePlaceholder":21},[1131,3385,3386,3388,3391],{"class":1133,"line":1791},[1131,3387,3092],{"class":1243},[1131,3389,3390],{"class":1357},"template",[1131,3392,3114],{"class":1243},[1131,3394,3395,3398],{"class":1133,"line":1805},[1131,3396,3397],{"class":1243},"  \u003C",[1131,3399,3400],{"class":1357},"UChatMessages\n",[1131,3402,3403,3406,3408,3410,3413],{"class":1133,"line":1811},[1131,3404,3405],{"class":1315},"    :messages",[1131,3407,3104],{"class":1243},[1131,3409,3107],{"class":1243},[1131,3411,3412],{"class":1140},"chat.messages",[1131,3414,3415],{"class":1243},"\"\n",[1131,3417,3418,3421,3423,3425,3428],{"class":1133,"line":1816},[1131,3419,3420],{"class":1315},"    :status",[1131,3422,3104],{"class":1243},[1131,3424,3107],{"class":1243},[1131,3426,3427],{"class":1140},"chat.status",[1131,3429,3415],{"class":1243},[1131,3431,3432],{"class":1133,"line":1826},[1131,3433,3434],{"class":1243},"  >\n",[1131,3436,3437,3440,3442,3445,3447,3449,3451,3453,3456,3458,3460],{"class":1133,"line":1842},[1131,3438,3439],{"class":1243},"    \u003C",[1131,3441,3390],{"class":1357},[1131,3443,3444],{"class":1243}," #",[1131,3446,371],{"class":1315},[1131,3448,3104],{"class":1243},[1131,3450,3107],{"class":1243},[1131,3452,3330],{"class":1243},[1131,3454,3455],{"class":1247}," message ",[1131,3457,1479],{"class":1243},[1131,3459,3107],{"class":1243},[1131,3461,3114],{"class":1243},[1131,3463,3464,3467],{"class":1133,"line":1857},[1131,3465,3466],{"class":1243},"      \u003C",[1131,3468,3469],{"class":1357},"template\n",[1131,3471,3472,3475,3477,3479,3482,3484,3487,3490,3493,3495,3498],{"class":1133,"line":1863},[1131,3473,3474],{"class":1239},"        v-for",[1131,3476,3104],{"class":1243},[1131,3478,3107],{"class":1243},[1131,3480,3481],{"class":1247},"(part",[1131,3483,1251],{"class":1243},[1131,3485,3486],{"class":1247}," index) ",[1131,3488,3489],{"class":1243},"in",[1131,3491,3492],{"class":1247}," message",[1131,3494,1467],{"class":1243},[1131,3496,3497],{"class":1247},"parts",[1131,3499,3415],{"class":1243},[1131,3501,3502,3505,3508,3510,3513,3516,3518,3521,3523,3526,3529,3532,3534,3537,3539,3541,3543,3546],{"class":1133,"line":1869},[1131,3503,3504],{"class":1243},"        :",[1131,3506,3507],{"class":1315},"key",[1131,3509,3104],{"class":1243},[1131,3511,3512],{"class":1243},"\"`${",[1131,3514,3515],{"class":1247},"message",[1131,3517,1467],{"class":1243},[1131,3519,3520],{"class":1247},"id",[1131,3522,1479],{"class":1243},[1131,3524,3525],{"class":1140},"-",[1131,3527,3528],{"class":1243},"${",[1131,3530,3531],{"class":1247},"part",[1131,3533,1467],{"class":1243},[1131,3535,3536],{"class":1247},"type",[1131,3538,1479],{"class":1243},[1131,3540,3525],{"class":1140},[1131,3542,3528],{"class":1243},[1131,3544,3545],{"class":1247},"index",[1131,3547,3548],{"class":1243},"}`\"\n",[1131,3550,3551],{"class":1133,"line":1882},[1131,3552,3553],{"class":1243},"      >\n",[1131,3555,3556,3559],{"class":1133,"line":3063},[1131,3557,3558],{"class":1243},"        \u003C",[1131,3560,3561],{"class":1357},"UChatReasoning\n",[1131,3563,3565,3568,3570,3572,3575],{"class":1133,"line":3564},33,[1131,3566,3567],{"class":1315},"          v-if",[1131,3569,3104],{"class":1243},[1131,3571,3107],{"class":1243},[1131,3573,3574],{"class":1140},"isReasoningUIPart(part)",[1131,3576,3415],{"class":1243},[1131,3578,3580,3583,3585,3587,3590],{"class":1133,"line":3579},34,[1131,3581,3582],{"class":1315},"          :text",[1131,3584,3104],{"class":1243},[1131,3586,3107],{"class":1243},[1131,3588,3589],{"class":1140},"part.text",[1131,3591,3415],{"class":1243},[1131,3593,3595,3598,3600,3602,3605],{"class":1133,"line":3594},35,[1131,3596,3597],{"class":1315},"          :streaming",[1131,3599,3104],{"class":1243},[1131,3601,3107],{"class":1243},[1131,3603,3604],{"class":1140},"isReasoningStreaming(message, index, chat)",[1131,3606,3415],{"class":1243},[1131,3608,3610],{"class":1133,"line":3609},36,[1131,3611,3612],{"class":1243},"        >\n",[1131,3614,3616,3619],{"class":1133,"line":3615},37,[1131,3617,3618],{"class":1243},"          \u003C",[1131,3620,3621],{"class":1357},"MDC\n",[1131,3623,3625,3628,3630,3632,3634],{"class":1133,"line":3624},38,[1131,3626,3627],{"class":1315},"            :value",[1131,3629,3104],{"class":1243},[1131,3631,3107],{"class":1243},[1131,3633,3589],{"class":1140},[1131,3635,3415],{"class":1243},[1131,3637,3639,3642,3644,3646,3649],{"class":1133,"line":3638},39,[1131,3640,3641],{"class":1315},"            :cache-key",[1131,3643,3104],{"class":1243},[1131,3645,3107],{"class":1243},[1131,3647,3648],{"class":1140},"`reasoning-${message.id}-${index}`",[1131,3650,3415],{"class":1243},[1131,3652,3654,3657,3659,3661,3664],{"class":1133,"line":3653},40,[1131,3655,3656],{"class":1315},"            class",[1131,3658,3104],{"class":1243},[1131,3660,3107],{"class":1243},[1131,3662,3663],{"class":1140},"*:first:mt-0 *:last:mb-0",[1131,3665,3415],{"class":1243},[1131,3667,3669],{"class":1133,"line":3668},41,[1131,3670,3671],{"class":1243},"          \u002F>\n",[1131,3673,3675,3678,3681],{"class":1133,"line":3674},42,[1131,3676,3677],{"class":1243},"        \u003C\u002F",[1131,3679,3680],{"class":1357},"UChatReasoning",[1131,3682,3114],{"class":1243},[1131,3684,3686],{"class":1133,"line":3685},43,[1131,3687,1296],{"emptyLinePlaceholder":21},[1131,3689,3691,3693],{"class":1133,"line":3690},44,[1131,3692,3558],{"class":1243},[1131,3694,3695],{"class":1357},"UChatTool\n",[1131,3697,3699,3702,3704,3706,3709],{"class":1133,"line":3698},45,[1131,3700,3701],{"class":1315},"          v-else-if",[1131,3703,3104],{"class":1243},[1131,3705,3107],{"class":1243},[1131,3707,3708],{"class":1140},"isToolUIPart(part)",[1131,3710,3415],{"class":1243},[1131,3712,3714,3716,3718,3720,3723],{"class":1133,"line":3713},46,[1131,3715,3582],{"class":1315},[1131,3717,3104],{"class":1243},[1131,3719,3107],{"class":1243},[1131,3721,3722],{"class":1140},"getToolName(part)",[1131,3724,3415],{"class":1243},[1131,3726,3728,3730,3732,3734,3737],{"class":1133,"line":3727},47,[1131,3729,3597],{"class":1315},[1131,3731,3104],{"class":1243},[1131,3733,3107],{"class":1243},[1131,3735,3736],{"class":1140},"isToolStreaming(part)",[1131,3738,3415],{"class":1243},[1131,3740,3742],{"class":1133,"line":3741},48,[1131,3743,3744],{"class":1243},"        \u002F>\n",[1131,3746,3748],{"class":1133,"line":3747},49,[1131,3749,1296],{"emptyLinePlaceholder":21},[1131,3751,3753,3755],{"class":1133,"line":3752},50,[1131,3754,3558],{"class":1243},[1131,3756,3621],{"class":1357},[1131,3758,3760,3762,3764,3766,3769],{"class":1133,"line":3759},51,[1131,3761,3701],{"class":1315},[1131,3763,3104],{"class":1243},[1131,3765,3107],{"class":1243},[1131,3767,3768],{"class":1140},"isTextUIPart(part)",[1131,3770,3415],{"class":1243},[1131,3772,3774,3777,3779,3781,3783],{"class":1133,"line":3773},52,[1131,3775,3776],{"class":1315},"          :value",[1131,3778,3104],{"class":1243},[1131,3780,3107],{"class":1243},[1131,3782,3589],{"class":1140},[1131,3784,3415],{"class":1243},[1131,3786,3788,3791,3793,3795,3798],{"class":1133,"line":3787},53,[1131,3789,3790],{"class":1315},"          :cache-key",[1131,3792,3104],{"class":1243},[1131,3794,3107],{"class":1243},[1131,3796,3797],{"class":1140},"`${message.id}-${index}`",[1131,3799,3415],{"class":1243},[1131,3801,3803,3806,3808,3810,3812],{"class":1133,"line":3802},54,[1131,3804,3805],{"class":1315},"          class",[1131,3807,3104],{"class":1243},[1131,3809,3107],{"class":1243},[1131,3811,3663],{"class":1140},[1131,3813,3415],{"class":1243},[1131,3815,3817],{"class":1133,"line":3816},55,[1131,3818,3744],{"class":1243},[1131,3820,3822,3825,3827],{"class":1133,"line":3821},56,[1131,3823,3824],{"class":1243},"      \u003C\u002F",[1131,3826,3390],{"class":1357},[1131,3828,3114],{"class":1243},[1131,3830,3832,3835,3837],{"class":1133,"line":3831},57,[1131,3833,3834],{"class":1243},"    \u003C\u002F",[1131,3836,3390],{"class":1357},[1131,3838,3114],{"class":1243},[1131,3840,3842,3845,3848],{"class":1133,"line":3841},58,[1131,3843,3844],{"class":1243},"  \u003C\u002F",[1131,3846,3847],{"class":1357},"UChatMessages",[1131,3849,3114],{"class":1243},[1131,3851,3853],{"class":1133,"line":3852},59,[1131,3854,1296],{"emptyLinePlaceholder":21},[1131,3856,3858,3860],{"class":1133,"line":3857},60,[1131,3859,3397],{"class":1243},[1131,3861,3862],{"class":1357},"UChatPrompt\n",[1131,3864,3866,3869,3871,3873,3876],{"class":1133,"line":3865},61,[1131,3867,3868],{"class":1315},"    v-model",[1131,3870,3104],{"class":1243},[1131,3872,3107],{"class":1243},[1131,3874,3875],{"class":1140},"input",[1131,3877,3415],{"class":1243},[1131,3879,3881,3884,3886,3888,3891],{"class":1133,"line":3880},62,[1131,3882,3883],{"class":1315},"    :error",[1131,3885,3104],{"class":1243},[1131,3887,3107],{"class":1243},[1131,3889,3890],{"class":1140},"chat.error",[1131,3892,3415],{"class":1243},[1131,3894,3896,3899,3901,3903,3906],{"class":1133,"line":3895},63,[1131,3897,3898],{"class":1315},"    @submit",[1131,3900,3104],{"class":1243},[1131,3902,3107],{"class":1243},[1131,3904,3905],{"class":1140},"onSubmit",[1131,3907,3415],{"class":1243},[1131,3909,3911],{"class":1133,"line":3910},64,[1131,3912,3434],{"class":1243},[1131,3914,3916,3918],{"class":1133,"line":3915},65,[1131,3917,3439],{"class":1243},[1131,3919,3920],{"class":1357},"UChatPromptSubmit\n",[1131,3922,3924,3927,3929,3931,3933],{"class":1133,"line":3923},66,[1131,3925,3926],{"class":1315},"      :status",[1131,3928,3104],{"class":1243},[1131,3930,3107],{"class":1243},[1131,3932,3427],{"class":1140},[1131,3934,3415],{"class":1243},[1131,3936,3938,3941,3943,3945,3948],{"class":1133,"line":3937},67,[1131,3939,3940],{"class":1315},"      @stop",[1131,3942,3104],{"class":1243},[1131,3944,3107],{"class":1243},[1131,3946,3947],{"class":1140},"chat.stop()",[1131,3949,3415],{"class":1243},[1131,3951,3953,3956,3958,3960,3963],{"class":1133,"line":3952},68,[1131,3954,3955],{"class":1315},"      @reload",[1131,3957,3104],{"class":1243},[1131,3959,3107],{"class":1243},[1131,3961,3962],{"class":1140},"chat.regenerate()",[1131,3964,3415],{"class":1243},[1131,3966,3968],{"class":1133,"line":3967},69,[1131,3969,3970],{"class":1243},"    \u002F>\n",[1131,3972,3974,3976,3979],{"class":1133,"line":3973},70,[1131,3975,3844],{"class":1243},[1131,3977,3978],{"class":1357},"UChatPrompt",[1131,3980,3114],{"class":1243},[1131,3982,3984,3986,3988],{"class":1133,"line":3983},71,[1131,3985,3375],{"class":1243},[1131,3987,3390],{"class":1357},[1131,3989,3114],{"class":1243},[3991,3992,3993],"note",{},[965,3994,3995,3996,3999,4000,4007],{},"In this example, we use the ",[989,3997,3998],{},"MDC"," component from ",[969,4001,4004],{"href":4002,"rel":4003},"https:\u002F\u002Fgithub.com\u002Fnuxt-modules\u002Fmdc",[973],[989,4005,4006],{},"@nuxtjs\u002Fmdc"," to render messages as Markdown. As Nuxt UI provides pre-styled prose components, your content will be automatically styled.",[4009,4010,4012],"tip",{"to":4011},"\u002Fblog\u002Fhow-to-build-an-ai-chat",[965,4013,4014,4015,4019],{},"Read the full ",[4016,4017,4018],"strong",{},"Build an AI Chatbot"," tutorial for a step-by-step guide.",[4021,4022,4023],"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 .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":1127,"searchDepth":1272,"depth":1272,"links":4025},[4026,4027,4028,4033],{"id":888,"depth":1272,"text":71},{"id":1098,"depth":1272,"text":20},{"id":1208,"depth":1272,"text":1209,"children":4029},[4030,4031,4032],{"id":1485,"depth":1293,"text":1486},{"id":1889,"depth":1293,"text":1890},{"id":2613,"depth":1293,"text":2614},{"id":3070,"depth":1272,"text":3071},"md",[4036],{"label":4037,"icon":4038,"to":971,"target":987},"AI SDK","i-simple-icons-vercel",{},{"title":259,"description":263},"oDTcsTRwlCCFIGLsilcD7iBNrhxHalt_BxhC3fgIrEQ",{"data":4043,"body":4044},{},{"type":4045,"children":4046},"root",[4047],{"type":178,"tag":965,"props":4048,"children":4049},{},[4050],{"type":4051,"value":263},"text",1773878061515]