[{"data":1,"prerenderedAt":5742},["ShallowReactive",2],{"navigation":3,"-docs-components-chat":964,"-docs-components-chat-description":5732},[4],{"title":5,"path":6,"stem":7,"children":8,"page":36},"Docs","\u002Fdocs","docs",[9,163,816,857],{"title":10,"path":11,"stem":12,"children":13,"framework":16,"category":16,"description":16,"icon":30},"Get Started","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[14,19,37,47,53,76,141],{"title":15,"path":11,"stem":12,"framework":16,"category":16,"description":17,"icon":18},"Introduction",null,"Nuxt UI is a comprehensive Vue UI component library (Nuxt optional), offering 125+ accessible, Tailwind CSS components for building modern web applications.","i-lucide-house",{"title":20,"framework":16,"category":16,"description":16,"shadow":21,"path":22,"stem":23,"children":24,"page":36},"Installation",true,"\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",[25,31],{"title":20,"path":26,"stem":27,"framework":28,"category":16,"description":29,"icon":30},"\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fnuxt","docs\u002F1.getting-started\u002F2.installation\u002F1.nuxt","nuxt","Learn how to install and configure Nuxt UI in your Nuxt application.","i-lucide-square-play",{"title":20,"path":32,"stem":33,"framework":34,"category":16,"description":35,"icon":30},"\u002Fdocs\u002Fgetting-started\u002Finstallation\u002Fvue","docs\u002F1.getting-started\u002F2.installation\u002F2.vue","vue","Learn how to install and configure Nuxt UI in your Vue application, compatible with both plain Vite and Inertia.",false,{"title":38,"framework":16,"category":16,"description":16,"icon":39,"shadow":21,"path":40,"stem":41,"children":42,"page":36},"Migration","i-lucide-arrow-right-left","\u002Fdocs\u002Fgetting-started\u002Fmigration","docs\u002F1.getting-started\u002F3.migration",[43],{"title":38,"path":44,"stem":45,"framework":16,"category":16,"description":46,"icon":39},"\u002Fdocs\u002Fgetting-started\u002Fmigration\u002Fv4","docs\u002F1.getting-started\u002F3.migration\u002F1.v4","A comprehensive guide to migrate your application from Nuxt UI v3 to Nuxt UI v4.",{"title":48,"path":49,"stem":50,"framework":16,"category":16,"description":51,"icon":52},"Contribution","\u002Fdocs\u002Fgetting-started\u002Fcontribution","docs\u002F1.getting-started\u002F4.contribution","A comprehensive guide on contributing to Nuxt UI, including project structure, development workflow, and best practices.","i-lucide-handshake",{"title":54,"path":55,"stem":56,"children":57,"page":36},"Theme","\u002Fdocs\u002Fgetting-started\u002Ftheme","docs\u002F1.getting-started\u002F5.theme",[58,64,70],{"title":59,"path":60,"stem":61,"framework":16,"category":16,"description":62,"icon":63},"Design System","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fdesign-system","docs\u002F1.getting-started\u002F5.theme\u002F1.design-system","Nuxt UI's design system uses Tailwind CSS for simple theming and easy customization.","i-lucide-palette",{"title":65,"path":66,"stem":67,"framework":16,"category":16,"description":68,"icon":69},"CSS Variables","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fcss-variables","docs\u002F1.getting-started\u002F5.theme\u002F2.css-variables","Nuxt UI uses CSS variables as design tokens for flexible, consistent theming with built-in light and dark mode support.","i-lucide-swatch-book",{"title":71,"path":72,"stem":73,"framework":16,"category":16,"description":74,"icon":75},"Components","\u002Fdocs\u002Fgetting-started\u002Ftheme\u002Fcomponents","docs\u002F1.getting-started\u002F5.theme\u002F3.components","Learn how to customize Nuxt UI components with the Tailwind Variants API for advanced, flexible, and maintainable styling.","i-lucide-layout-grid",{"title":77,"framework":16,"category":16,"description":16,"path":78,"stem":79,"children":80,"page":36},"Integrations","\u002Fdocs\u002Fgetting-started\u002Fintegrations","docs\u002F1.getting-started\u002F6.integrations",[81,95,101,115,129,135],{"title":82,"framework":16,"category":16,"description":16,"shadow":21,"path":83,"stem":84,"children":85,"page":36},"Icons","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons",[86,91],{"title":82,"path":87,"stem":88,"framework":28,"category":16,"description":89,"icon":90},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons\u002F1.nuxt","Nuxt UI integrates with Nuxt Icon to access over 200,000+ icons from Iconify.","i-lucide-smile",{"title":82,"path":92,"stem":93,"framework":34,"category":16,"description":94,"icon":90},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ficons\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F1.icons\u002F2.vue","Nuxt UI integrates with Iconify to access over 200,000+ icons.",{"title":96,"path":97,"stem":98,"framework":28,"category":16,"description":99,"icon":100},"Fonts","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Ffonts","docs\u002F1.getting-started\u002F6.integrations\u002F2.fonts","Nuxt UI integrates with Nuxt Fonts to provide plug-and-play font optimization.","i-lucide-a-large-small",{"title":102,"framework":16,"category":16,"description":16,"shadow":21,"path":103,"stem":104,"children":105,"page":36},"Color Mode","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode",[106,111],{"title":102,"path":107,"stem":108,"framework":28,"category":16,"description":109,"icon":110},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode\u002F1.nuxt","Nuxt UI integrates with Nuxt Color Mode to allow for easy switching between light and dark themes.","i-lucide-sun-moon",{"title":102,"path":112,"stem":113,"framework":34,"category":16,"description":114,"icon":110},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcolor-mode\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F3.color-mode\u002F2.vue","Nuxt UI integrates with VueUse to allow for easy switching between light and dark themes.",{"title":116,"framework":16,"category":16,"description":16,"shadow":21,"path":117,"stem":118,"children":119,"page":36},"I18n","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n",[120,126],{"title":121,"path":122,"stem":123,"framework":28,"category":16,"description":124,"icon":125},"Internationalization (i18n)","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n\u002Fnuxt","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n\u002F1.nuxt","Nuxt UI supports 50+ locales and multi-directional (LTR\u002FRTL) internationalization.","i-lucide-languages",{"title":121,"path":127,"stem":128,"framework":34,"category":16,"description":124,"icon":125},"\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fi18n\u002Fvue","docs\u002F1.getting-started\u002F6.integrations\u002F4.i18n\u002F2.vue",{"title":130,"path":131,"stem":132,"framework":28,"category":16,"description":133,"icon":134},"Content","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fcontent","docs\u002F1.getting-started\u002F6.integrations\u002F5.content","Nuxt UI integrates with Nuxt Content to deliver beautiful typography and consistent component styling.","i-simple-icons-markdown",{"title":136,"path":137,"stem":138,"framework":34,"category":16,"description":139,"icon":140},"SSR","\u002Fdocs\u002Fgetting-started\u002Fintegrations\u002Fssr","docs\u002F1.getting-started\u002F6.integrations\u002F6.ssr","Nuxt UI has first-party support for Vue SSR. This guide will help you have it fully enabled.","i-lucide-server",{"title":142,"framework":16,"category":16,"description":16,"path":143,"stem":144,"children":145,"page":36},"Agents","\u002Fdocs\u002Fgetting-started\u002Fai","docs\u002F1.getting-started\u002F7.ai",[146,151,157],{"title":147,"path":148,"stem":149,"framework":16,"category":16,"description":150,"icon":140},"MCP Server","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fmcp","docs\u002F1.getting-started\u002F7.ai\u002F1.mcp","Use Nuxt UI components in your AI assistants with Model Context Protocol support.",{"title":152,"path":153,"stem":154,"framework":16,"category":16,"description":155,"icon":156},"LLMs.txt","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fllms-txt","docs\u002F1.getting-started\u002F7.ai\u002F2.llms-txt","How to get AI tools like Cursor, Windsurf, GitHub Copilot, ChatGPT, and Claude to understand Nuxt UI components, theming, and best practices.","i-lucide-bot",{"title":158,"path":159,"stem":160,"framework":16,"category":16,"description":161,"icon":162},"Skills","\u002Fdocs\u002Fgetting-started\u002Fai\u002Fskills","docs\u002F1.getting-started\u002F7.ai\u002F3.skills","Install Nuxt UI skills to give AI coding agents deep knowledge of components, theming, and best practices.","i-lucide-sparkles",{"title":71,"framework":16,"category":16,"description":16,"icon":164,"path":165,"stem":166,"children":167,"page":36},"i-lucide-square-code","\u002Fdocs\u002Fcomponents","docs\u002F2.components",[168,174,180,186,192,197,202,207,212,217,222,228,233,238,243,248,253,258,264,269,274,279,284,289,295,300,305,311,316,321,326,332,337,342,347,352,357,362,367,373,378,383,388,393,399,405,410,415,420,425,430,435,440,445,450,455,460,466,471,476,481,486,491,496,501,506,511,516,521,526,531,536,541,546,551,556,561,566,571,576,581,587,592,597,602,607,612,617,622,627,632,637,642,647,652,657,662,667,672,677,682,687,692,697,702,707,712,717,722,727,732,737,742,747,752,757,762,767,772,777,782,787,791,796,801,806,811],{"title":169,"path":170,"stem":171,"framework":16,"category":172,"description":173},"Accordion","\u002Fdocs\u002Fcomponents\u002Faccordion","docs\u002F2.components\u002Faccordion","data","A stacked set of collapsible panels.",{"title":175,"path":176,"stem":177,"framework":16,"category":178,"description":179},"Alert","\u002Fdocs\u002Fcomponents\u002Falert","docs\u002F2.components\u002Falert","element","A callout to draw user's attention.",{"title":181,"path":182,"stem":183,"framework":16,"category":184,"description":185},"App","\u002Fdocs\u002Fcomponents\u002Fapp","docs\u002F2.components\u002Fapp","layout","Wraps your app to provide global configurations and more.",{"title":187,"path":188,"stem":189,"framework":16,"category":190,"description":191},"AuthForm","\u002Fdocs\u002Fcomponents\u002Fauth-form","docs\u002F2.components\u002Fauth-form","page","A customizable Form to create login, register or password reset forms.",{"title":193,"path":194,"stem":195,"framework":16,"category":178,"description":196},"Avatar","\u002Fdocs\u002Fcomponents\u002Favatar","docs\u002F2.components\u002Favatar","An img element with fallback and Nuxt Image support.",{"title":198,"path":199,"stem":200,"framework":16,"category":178,"description":201},"AvatarGroup","\u002Fdocs\u002Fcomponents\u002Favatar-group","docs\u002F2.components\u002Favatar-group","Stack multiple avatars in a group.",{"title":203,"path":204,"stem":205,"framework":16,"category":178,"description":206},"Badge","\u002Fdocs\u002Fcomponents\u002Fbadge","docs\u002F2.components\u002Fbadge","A short text to represent a status or a category.",{"title":208,"path":209,"stem":210,"framework":16,"category":178,"description":211},"Banner","\u002Fdocs\u002Fcomponents\u002Fbanner","docs\u002F2.components\u002Fbanner","Display a banner at the top of your website to inform users about important information.",{"title":213,"path":214,"stem":215,"framework":16,"category":190,"description":216},"BlogPost","\u002Fdocs\u002Fcomponents\u002Fblog-post","docs\u002F2.components\u002Fblog-post","A customizable article to display in a blog page.",{"title":218,"path":219,"stem":220,"framework":16,"category":190,"description":221},"BlogPosts","\u002Fdocs\u002Fcomponents\u002Fblog-posts","docs\u002F2.components\u002Fblog-posts","Display a list of blog posts in a responsive grid layout.",{"title":223,"path":224,"stem":225,"framework":16,"category":226,"description":227},"Breadcrumb","\u002Fdocs\u002Fcomponents\u002Fbreadcrumb","docs\u002F2.components\u002Fbreadcrumb","navigation","A hierarchy of links to navigate through a website.",{"title":229,"path":230,"stem":231,"framework":16,"category":178,"description":232},"Button","\u002Fdocs\u002Fcomponents\u002Fbutton","docs\u002F2.components\u002Fbutton","A button element that can act as a link or trigger an action.",{"title":234,"path":235,"stem":236,"framework":16,"category":178,"description":237},"Calendar","\u002Fdocs\u002Fcomponents\u002Fcalendar","docs\u002F2.components\u002Fcalendar","A calendar component for selecting single dates, multiple dates or date ranges.",{"title":239,"path":240,"stem":241,"framework":16,"category":178,"description":242},"Card","\u002Fdocs\u002Fcomponents\u002Fcard","docs\u002F2.components\u002Fcard","Display content in a card with a header, body and footer.",{"title":244,"path":245,"stem":246,"framework":16,"category":172,"description":247},"Carousel","\u002Fdocs\u002Fcomponents\u002Fcarousel","docs\u002F2.components\u002Fcarousel","A carousel with motion and swipe built using Embla.",{"title":249,"path":250,"stem":251,"framework":16,"category":190,"description":252},"ChangelogVersion","\u002Fdocs\u002Fcomponents\u002Fchangelog-version","docs\u002F2.components\u002Fchangelog-version","A customizable article to display in a changelog.",{"title":254,"path":255,"stem":256,"framework":16,"category":190,"description":257},"ChangelogVersions","\u002Fdocs\u002Fcomponents\u002Fchangelog-versions","docs\u002F2.components\u002Fchangelog-versions","Display a list of changelog versions in a timeline.",{"title":259,"path":260,"stem":261,"framework":16,"category":262,"description":263},"Chat","\u002Fdocs\u002Fcomponents\u002Fchat","docs\u002F2.components\u002Fchat","chat","Build AI chat interfaces with streaming, reasoning, and tool calling.",{"title":265,"path":266,"stem":267,"framework":16,"category":262,"description":268},"ChatMessage","\u002Fdocs\u002Fcomponents\u002Fchat-message","docs\u002F2.components\u002Fchat-message","Display a chat message with icon, avatar, and actions.",{"title":270,"path":271,"stem":272,"framework":16,"category":262,"description":273},"ChatMessages","\u002Fdocs\u002Fcomponents\u002Fchat-messages","docs\u002F2.components\u002Fchat-messages","Display a list of chat messages, designed to work seamlessly with Vercel AI SDK.",{"title":275,"path":276,"stem":277,"framework":16,"category":262,"description":278},"ChatPalette","\u002Fdocs\u002Fcomponents\u002Fchat-palette","docs\u002F2.components\u002Fchat-palette","A chat palette to create a chatbot interface inside an overlay.",{"title":280,"path":281,"stem":282,"framework":16,"category":262,"description":283},"ChatPrompt","\u002Fdocs\u002Fcomponents\u002Fchat-prompt","docs\u002F2.components\u002Fchat-prompt","An enhanced Textarea for submitting prompts in AI chat interfaces.",{"title":285,"path":286,"stem":287,"framework":16,"category":262,"description":288},"ChatPromptSubmit","\u002Fdocs\u002Fcomponents\u002Fchat-prompt-submit","docs\u002F2.components\u002Fchat-prompt-submit","A Button for submitting chat prompts with automatic status handling.",{"title":290,"path":291,"stem":292,"framework":16,"category":262,"description":293,"badge":294},"ChatReasoning","\u002Fdocs\u002Fcomponents\u002Fchat-reasoning","docs\u002F2.components\u002Fchat-reasoning","Display a collapsible AI reasoning or thinking process.","New",{"title":296,"path":297,"stem":298,"framework":16,"category":262,"description":299,"badge":294},"ChatShimmer","\u002Fdocs\u002Fcomponents\u002Fchat-shimmer","docs\u002F2.components\u002Fchat-shimmer","Display a text shimmer animation effect.",{"title":301,"path":302,"stem":303,"framework":16,"category":262,"description":304,"badge":294},"ChatTool","\u002Fdocs\u002Fcomponents\u002Fchat-tool","docs\u002F2.components\u002Fchat-tool","Display a collapsible AI tool invocation status.",{"title":306,"path":307,"stem":308,"framework":16,"category":309,"description":310},"Checkbox","\u002Fdocs\u002Fcomponents\u002Fcheckbox","docs\u002F2.components\u002Fcheckbox","form","An input element to toggle between checked and unchecked states.",{"title":312,"path":313,"stem":314,"framework":16,"category":309,"description":315},"CheckboxGroup","\u002Fdocs\u002Fcomponents\u002Fcheckbox-group","docs\u002F2.components\u002Fcheckbox-group","A set of checklist buttons to select multiple option from a list.",{"title":317,"path":318,"stem":319,"framework":16,"category":178,"description":320},"Chip","\u002Fdocs\u002Fcomponents\u002Fchip","docs\u002F2.components\u002Fchip","An indicator of a numeric value or a state.",{"title":322,"path":323,"stem":324,"framework":16,"category":178,"description":325},"Collapsible","\u002Fdocs\u002Fcomponents\u002Fcollapsible","docs\u002F2.components\u002Fcollapsible","A collapsible element to toggle visibility of its content.",{"title":327,"path":328,"stem":329,"framework":16,"category":330,"description":331},"ColorModeAvatar","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-avatar","docs\u002F2.components\u002Fcolor-mode-avatar","color-mode","An Avatar with a different source for light and dark mode.",{"title":333,"path":334,"stem":335,"framework":16,"category":330,"description":336},"ColorModeButton","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-button","docs\u002F2.components\u002Fcolor-mode-button","A Button to switch between light and dark mode.",{"title":338,"path":339,"stem":340,"framework":16,"category":330,"description":341},"ColorModeImage","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-image","docs\u002F2.components\u002Fcolor-mode-image","An image element with a different source for light and dark mode.",{"title":343,"path":344,"stem":345,"framework":16,"category":330,"description":346},"ColorModeSelect","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-select","docs\u002F2.components\u002Fcolor-mode-select","A Select to switch between system, dark & light mode.",{"title":348,"path":349,"stem":350,"framework":16,"category":330,"description":351},"ColorModeSwitch","\u002Fdocs\u002Fcomponents\u002Fcolor-mode-switch","docs\u002F2.components\u002Fcolor-mode-switch","A switch to toggle between light and dark mode.",{"title":353,"path":354,"stem":355,"framework":16,"category":309,"description":356},"ColorPicker","\u002Fdocs\u002Fcomponents\u002Fcolor-picker","docs\u002F2.components\u002Fcolor-picker","A component to select a color.",{"title":358,"path":359,"stem":360,"framework":16,"category":226,"description":361},"CommandPalette","\u002Fdocs\u002Fcomponents\u002Fcommand-palette","docs\u002F2.components\u002Fcommand-palette","A command palette with full-text search powered by Fuse.js for efficient fuzzy matching.",{"title":363,"path":364,"stem":365,"framework":16,"category":184,"description":366},"Container","\u002Fdocs\u002Fcomponents\u002Fcontainer","docs\u002F2.components\u002Fcontainer","A container lets you center and constrain the width of your content.",{"title":368,"path":369,"stem":370,"framework":28,"category":371,"description":372},"ContentNavigation","\u002Fdocs\u002Fcomponents\u002Fcontent-navigation","docs\u002F2.components\u002Fcontent-navigation","content","An accordion-style navigation component for organizing page links.",{"title":374,"path":375,"stem":376,"framework":28,"category":371,"description":377},"ContentSearch","\u002Fdocs\u002Fcomponents\u002Fcontent-search","docs\u002F2.components\u002Fcontent-search","A ready to use CommandPalette to add to your documentation.",{"title":379,"path":380,"stem":381,"framework":28,"category":371,"description":382},"ContentSearchButton","\u002Fdocs\u002Fcomponents\u002Fcontent-search-button","docs\u002F2.components\u002Fcontent-search-button","A pre-styled Button to open the ContentSearch modal.",{"title":384,"path":385,"stem":386,"framework":28,"category":371,"description":387},"ContentSurround","\u002Fdocs\u002Fcomponents\u002Fcontent-surround","docs\u002F2.components\u002Fcontent-surround","A pair of prev and next links to navigate between pages.",{"title":389,"path":390,"stem":391,"framework":28,"category":371,"description":392},"ContentToc","\u002Fdocs\u002Fcomponents\u002Fcontent-toc","docs\u002F2.components\u002Fcontent-toc","A sticky Table of Contents with automatic active anchor link highlighting.",{"title":394,"path":395,"stem":396,"framework":16,"category":397,"description":398},"ContextMenu","\u002Fdocs\u002Fcomponents\u002Fcontext-menu","docs\u002F2.components\u002Fcontext-menu","overlay","A menu to display actions when right-clicking on an element.",{"title":400,"path":401,"stem":402,"framework":16,"category":403,"description":404},"DashboardGroup","\u002Fdocs\u002Fcomponents\u002Fdashboard-group","docs\u002F2.components\u002Fdashboard-group","dashboard","A fixed layout component that provides context for dashboard components with sidebar state management and persistence.",{"title":406,"path":407,"stem":408,"framework":16,"category":403,"description":409},"DashboardNavbar","\u002Fdocs\u002Fcomponents\u002Fdashboard-navbar","docs\u002F2.components\u002Fdashboard-navbar","A responsive navbar to display in a dashboard.",{"title":411,"path":412,"stem":413,"framework":16,"category":403,"description":414},"DashboardPanel","\u002Fdocs\u002Fcomponents\u002Fdashboard-panel","docs\u002F2.components\u002Fdashboard-panel","A resizable panel to display in a dashboard.",{"title":416,"path":417,"stem":418,"framework":16,"category":403,"description":419},"DashboardResizeHandle","\u002Fdocs\u002Fcomponents\u002Fdashboard-resize-handle","docs\u002F2.components\u002Fdashboard-resize-handle","A handle to resize a sidebar or panel.",{"title":421,"path":422,"stem":423,"framework":16,"category":403,"description":424},"DashboardSearch","\u002Fdocs\u002Fcomponents\u002Fdashboard-search","docs\u002F2.components\u002Fdashboard-search","A ready to use CommandPalette to add to your dashboard.",{"title":426,"path":427,"stem":428,"framework":16,"category":403,"description":429},"DashboardSearchButton","\u002Fdocs\u002Fcomponents\u002Fdashboard-search-button","docs\u002F2.components\u002Fdashboard-search-button","A pre-styled Button to open the DashboardSearch modal.",{"title":431,"path":432,"stem":433,"framework":16,"category":403,"description":434},"DashboardSidebar","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar","docs\u002F2.components\u002Fdashboard-sidebar","A resizable and collapsible sidebar to display in a dashboard.",{"title":436,"path":437,"stem":438,"framework":16,"category":403,"description":439},"DashboardSidebarCollapse","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar-collapse","docs\u002F2.components\u002Fdashboard-sidebar-collapse","A Button to collapse the sidebar on desktop.",{"title":441,"path":442,"stem":443,"framework":16,"category":403,"description":444},"DashboardSidebarToggle","\u002Fdocs\u002Fcomponents\u002Fdashboard-sidebar-toggle","docs\u002F2.components\u002Fdashboard-sidebar-toggle","A Button to toggle the sidebar on mobile.",{"title":446,"path":447,"stem":448,"framework":16,"category":403,"description":449},"DashboardToolbar","\u002Fdocs\u002Fcomponents\u002Fdashboard-toolbar","docs\u002F2.components\u002Fdashboard-toolbar","A toolbar to display under the navbar in a dashboard.",{"title":451,"path":452,"stem":453,"framework":16,"category":397,"description":454},"Drawer","\u002Fdocs\u002Fcomponents\u002Fdrawer","docs\u002F2.components\u002Fdrawer","A drawer that smoothly slides in & out of the screen.",{"title":456,"path":457,"stem":458,"framework":16,"category":397,"description":459},"DropdownMenu","\u002Fdocs\u002Fcomponents\u002Fdropdown-menu","docs\u002F2.components\u002Fdropdown-menu","A menu to display actions when clicking on an element.",{"title":461,"path":462,"stem":463,"framework":16,"category":464,"description":465},"Editor","\u002Fdocs\u002Fcomponents\u002Feditor","docs\u002F2.components\u002Feditor","editor","A rich text editor component based on TipTap with support for markdown, HTML, and JSON content types.",{"title":467,"path":468,"stem":469,"framework":16,"category":464,"description":470},"EditorDragHandle","\u002Fdocs\u002Fcomponents\u002Feditor-drag-handle","docs\u002F2.components\u002Feditor-drag-handle","A draggable handle for reordering and selecting blocks in the editor.",{"title":472,"path":473,"stem":474,"framework":16,"category":464,"description":475},"EditorEmojiMenu","\u002Fdocs\u002Fcomponents\u002Feditor-emoji-menu","docs\u002F2.components\u002Feditor-emoji-menu","An emoji picker menu that displays emoji suggestions when typing the : character in the editor.",{"title":477,"path":478,"stem":479,"framework":16,"category":464,"description":480},"EditorMentionMenu","\u002Fdocs\u002Fcomponents\u002Feditor-mention-menu","docs\u002F2.components\u002Feditor-mention-menu","A mention menu that displays user suggestions when typing a trigger character in the editor.",{"title":482,"path":483,"stem":484,"framework":16,"category":464,"description":485},"EditorSuggestionMenu","\u002Fdocs\u002Fcomponents\u002Feditor-suggestion-menu","docs\u002F2.components\u002Feditor-suggestion-menu","A command menu that displays formatting and action suggestions when typing the \u002F character in the editor.",{"title":487,"path":488,"stem":489,"framework":16,"category":464,"description":490},"EditorToolbar","\u002Fdocs\u002Fcomponents\u002Feditor-toolbar","docs\u002F2.components\u002Feditor-toolbar","A customizable toolbar for editor actions that can be displayed as fixed, bubble, or floating menu.",{"title":492,"path":493,"stem":494,"framework":16,"category":172,"description":495},"Empty","\u002Fdocs\u002Fcomponents\u002Fempty","docs\u002F2.components\u002Fempty","A component to display an empty state.",{"title":497,"path":498,"stem":499,"framework":16,"category":184,"description":500},"Error","\u002Fdocs\u002Fcomponents\u002Ferror","docs\u002F2.components\u002Ferror","A pre-built error component with NuxtError support.",{"title":502,"path":503,"stem":504,"framework":16,"category":178,"description":505},"FieldGroup","\u002Fdocs\u002Fcomponents\u002Ffield-group","docs\u002F2.components\u002Ffield-group","Group multiple button-like elements together.",{"title":507,"path":508,"stem":509,"framework":16,"category":309,"description":510},"FileUpload","\u002Fdocs\u002Fcomponents\u002Ffile-upload","docs\u002F2.components\u002Ffile-upload","An input element to upload files.",{"title":512,"path":513,"stem":514,"framework":16,"category":184,"description":515},"Footer","\u002Fdocs\u002Fcomponents\u002Ffooter","docs\u002F2.components\u002Ffooter","A responsive footer component.",{"title":517,"path":518,"stem":519,"framework":16,"category":226,"description":520},"FooterColumns","\u002Fdocs\u002Fcomponents\u002Ffooter-columns","docs\u002F2.components\u002Ffooter-columns","A list of links as columns to display in your Footer.",{"title":522,"path":523,"stem":524,"framework":16,"category":309,"description":525},"Form","\u002Fdocs\u002Fcomponents\u002Fform","docs\u002F2.components\u002Fform","A form component with built-in validation and submission handling.",{"title":527,"path":528,"stem":529,"framework":16,"category":309,"description":530},"FormField","\u002Fdocs\u002Fcomponents\u002Fform-field","docs\u002F2.components\u002Fform-field","A wrapper for form elements that provides validation and error handling.",{"title":532,"path":533,"stem":534,"framework":16,"category":184,"description":535},"Header","\u002Fdocs\u002Fcomponents\u002Fheader","docs\u002F2.components\u002Fheader","A responsive header component.",{"title":537,"path":538,"stem":539,"framework":16,"category":178,"description":540},"Icon","\u002Fdocs\u002Fcomponents\u002Ficon","docs\u002F2.components\u002Ficon","A component to display any icon from Iconify or another component.",{"title":542,"path":543,"stem":544,"framework":16,"category":309,"description":545},"Input","\u002Fdocs\u002Fcomponents\u002Finput","docs\u002F2.components\u002Finput","An input element to enter text.",{"title":547,"path":548,"stem":549,"framework":16,"category":309,"description":550},"InputDate","\u002Fdocs\u002Fcomponents\u002Finput-date","docs\u002F2.components\u002Finput-date","An input component for date selection.",{"title":552,"path":553,"stem":554,"framework":16,"category":309,"description":555},"InputMenu","\u002Fdocs\u002Fcomponents\u002Finput-menu","docs\u002F2.components\u002Finput-menu","An autocomplete input with real-time suggestions.",{"title":557,"path":558,"stem":559,"framework":16,"category":309,"description":560},"InputNumber","\u002Fdocs\u002Fcomponents\u002Finput-number","docs\u002F2.components\u002Finput-number","An input for numerical values with a customizable range.",{"title":562,"path":563,"stem":564,"framework":16,"category":309,"description":565},"InputTags","\u002Fdocs\u002Fcomponents\u002Finput-tags","docs\u002F2.components\u002Finput-tags","An input element that displays interactive tags.",{"title":567,"path":568,"stem":569,"framework":16,"category":309,"description":570},"InputTime","\u002Fdocs\u002Fcomponents\u002Finput-time","docs\u002F2.components\u002Finput-time","An input for selecting a time.",{"title":572,"path":573,"stem":574,"framework":16,"category":178,"description":575},"Kbd","\u002Fdocs\u002Fcomponents\u002Fkbd","docs\u002F2.components\u002Fkbd","A kbd element to display a keyboard key.",{"title":577,"path":578,"stem":579,"framework":16,"category":226,"description":580},"Link","\u002Fdocs\u002Fcomponents\u002Flink","docs\u002F2.components\u002Flink","A wrapper around \u003CNuxtLink> with extra props.",{"title":582,"path":583,"stem":584,"framework":16,"category":585,"description":586},"LocaleSelect","\u002Fdocs\u002Fcomponents\u002Flocale-select","docs\u002F2.components\u002Flocale-select","i18n","A Select to switch between locales.",{"title":588,"path":589,"stem":590,"framework":16,"category":184,"description":591},"Main","\u002Fdocs\u002Fcomponents\u002Fmain","docs\u002F2.components\u002Fmain","A main element that fills the available viewport height.",{"title":593,"path":594,"stem":595,"framework":16,"category":172,"description":596},"Marquee","\u002Fdocs\u002Fcomponents\u002Fmarquee","docs\u002F2.components\u002Fmarquee","A component to create infinite scrolling content.",{"title":598,"path":599,"stem":600,"framework":16,"category":397,"description":601},"Modal","\u002Fdocs\u002Fcomponents\u002Fmodal","docs\u002F2.components\u002Fmodal","A dialog window that can be used to display a message or request user input.",{"title":603,"path":604,"stem":605,"framework":16,"category":226,"description":606},"NavigationMenu","\u002Fdocs\u002Fcomponents\u002Fnavigation-menu","docs\u002F2.components\u002Fnavigation-menu","A list of links that can be displayed horizontally or vertically.",{"title":608,"path":609,"stem":610,"framework":16,"category":190,"description":611},"Page","\u002Fdocs\u002Fcomponents\u002Fpage","docs\u002F2.components\u002Fpage","A grid layout for your pages with left and right columns.",{"title":613,"path":614,"stem":615,"framework":16,"category":190,"description":616},"PageAnchors","\u002Fdocs\u002Fcomponents\u002Fpage-anchors","docs\u002F2.components\u002Fpage-anchors","A list of anchors to be displayed in the page.",{"title":618,"path":619,"stem":620,"framework":16,"category":190,"description":621},"PageAside","\u002Fdocs\u002Fcomponents\u002Fpage-aside","docs\u002F2.components\u002Fpage-aside","A sticky aside to display your page navigation.",{"title":623,"path":624,"stem":625,"framework":16,"category":190,"description":626},"PageBody","\u002Fdocs\u002Fcomponents\u002Fpage-body","docs\u002F2.components\u002Fpage-body","The main content of your page.",{"title":628,"path":629,"stem":630,"framework":16,"category":190,"description":631},"PageCard","\u002Fdocs\u002Fcomponents\u002Fpage-card","docs\u002F2.components\u002Fpage-card","A pre-styled card component that displays a title, description and optional link.",{"title":633,"path":634,"stem":635,"framework":16,"category":190,"description":636},"PageColumns","\u002Fdocs\u002Fcomponents\u002Fpage-columns","docs\u002F2.components\u002Fpage-columns","A responsive multi-column layout system for organizing content side-by-side.",{"title":638,"path":639,"stem":640,"framework":16,"category":190,"description":641},"PageCTA","\u002Fdocs\u002Fcomponents\u002Fpage-cta","docs\u002F2.components\u002Fpage-cta","A call to action section to display in your pages.",{"title":643,"path":644,"stem":645,"framework":16,"category":190,"description":646},"PageFeature","\u002Fdocs\u002Fcomponents\u002Fpage-feature","docs\u002F2.components\u002Fpage-feature","A component to showcase key features of your application.",{"title":648,"path":649,"stem":650,"framework":16,"category":190,"description":651},"PageGrid","\u002Fdocs\u002Fcomponents\u002Fpage-grid","docs\u002F2.components\u002Fpage-grid","A responsive grid system for displaying content in a flexible layout.",{"title":653,"path":654,"stem":655,"framework":16,"category":190,"description":656},"PageHeader","\u002Fdocs\u002Fcomponents\u002Fpage-header","docs\u002F2.components\u002Fpage-header","A responsive header for your pages.",{"title":658,"path":659,"stem":660,"framework":16,"category":190,"description":661},"PageHero","\u002Fdocs\u002Fcomponents\u002Fpage-hero","docs\u002F2.components\u002Fpage-hero","A responsive hero for your pages.",{"title":663,"path":664,"stem":665,"framework":16,"category":190,"description":666},"PageLinks","\u002Fdocs\u002Fcomponents\u002Fpage-links","docs\u002F2.components\u002Fpage-links","A list of links to be displayed in the page.",{"title":668,"path":669,"stem":670,"framework":16,"category":190,"description":671},"PageList","\u002Fdocs\u002Fcomponents\u002Fpage-list","docs\u002F2.components\u002Fpage-list","A vertical list layout for displaying content in a stacked format.",{"title":673,"path":674,"stem":675,"framework":16,"category":190,"description":676},"PageLogos","\u002Fdocs\u002Fcomponents\u002Fpage-logos","docs\u002F2.components\u002Fpage-logos","A list of logos or images to display on your pages.",{"title":678,"path":679,"stem":680,"framework":16,"category":190,"description":681},"PageSection","\u002Fdocs\u002Fcomponents\u002Fpage-section","docs\u002F2.components\u002Fpage-section","A responsive section for your pages.",{"title":683,"path":684,"stem":685,"framework":16,"category":226,"description":686},"Pagination","\u002Fdocs\u002Fcomponents\u002Fpagination","docs\u002F2.components\u002Fpagination","A list of buttons or links to navigate through pages.",{"title":688,"path":689,"stem":690,"framework":16,"category":309,"description":691},"PinInput","\u002Fdocs\u002Fcomponents\u002Fpin-input","docs\u002F2.components\u002Fpin-input","An input element to enter a pin.",{"title":693,"path":694,"stem":695,"framework":16,"category":397,"description":696},"Popover","\u002Fdocs\u002Fcomponents\u002Fpopover","docs\u002F2.components\u002Fpopover","A non-modal dialog that floats around a trigger element.",{"title":698,"path":699,"stem":700,"framework":16,"category":190,"description":701},"PricingPlan","\u002Fdocs\u002Fcomponents\u002Fpricing-plan","docs\u002F2.components\u002Fpricing-plan","A customizable pricing plan to display in a pricing page.",{"title":703,"path":704,"stem":705,"framework":16,"category":190,"description":706},"PricingPlans","\u002Fdocs\u002Fcomponents\u002Fpricing-plans","docs\u002F2.components\u002Fpricing-plans","Display a list of pricing plans in a responsive grid layout.",{"title":708,"path":709,"stem":710,"framework":16,"category":190,"description":711},"PricingTable","\u002Fdocs\u002Fcomponents\u002Fpricing-table","docs\u002F2.components\u002Fpricing-table","A responsive pricing table component that displays tiered pricing plans with feature comparisons.",{"title":713,"path":714,"stem":715,"framework":16,"category":178,"description":716},"Progress","\u002Fdocs\u002Fcomponents\u002Fprogress","docs\u002F2.components\u002Fprogress","An indicator showing the progress of a task.",{"title":718,"path":719,"stem":720,"framework":16,"category":309,"description":721},"RadioGroup","\u002Fdocs\u002Fcomponents\u002Fradio-group","docs\u002F2.components\u002Fradio-group","A set of radio buttons to select a single option from a list.",{"title":723,"path":724,"stem":725,"framework":16,"category":172,"description":726},"ScrollArea","\u002Fdocs\u002Fcomponents\u002Fscroll-area","docs\u002F2.components\u002Fscroll-area","A flexible scroll container with virtualization support.",{"title":728,"path":729,"stem":730,"framework":16,"category":309,"description":731},"Select","\u002Fdocs\u002Fcomponents\u002Fselect","docs\u002F2.components\u002Fselect","A select element to choose from a list of options.",{"title":733,"path":734,"stem":735,"framework":16,"category":309,"description":736},"SelectMenu","\u002Fdocs\u002Fcomponents\u002Fselect-menu","docs\u002F2.components\u002Fselect-menu","An advanced searchable select element.",{"title":738,"path":739,"stem":740,"framework":16,"category":178,"description":741},"Separator","\u002Fdocs\u002Fcomponents\u002Fseparator","docs\u002F2.components\u002Fseparator","Separates content horizontally or vertically.",{"title":743,"path":744,"stem":745,"framework":16,"category":184,"description":746,"badge":294},"Sidebar","\u002Fdocs\u002Fcomponents\u002Fsidebar","docs\u002F2.components\u002Fsidebar","A collapsible sidebar with multiple visual variants.",{"title":748,"path":749,"stem":750,"framework":16,"category":178,"description":751},"Skeleton","\u002Fdocs\u002Fcomponents\u002Fskeleton","docs\u002F2.components\u002Fskeleton","A placeholder to show while content is loading.",{"title":753,"path":754,"stem":755,"framework":16,"category":397,"description":756},"Slideover","\u002Fdocs\u002Fcomponents\u002Fslideover","docs\u002F2.components\u002Fslideover","A dialog that slides in from any side of the screen.",{"title":758,"path":759,"stem":760,"framework":16,"category":309,"description":761},"Slider","\u002Fdocs\u002Fcomponents\u002Fslider","docs\u002F2.components\u002Fslider","An input to select a numeric value within a range.",{"title":763,"path":764,"stem":765,"framework":16,"category":226,"description":766},"Stepper","\u002Fdocs\u002Fcomponents\u002Fstepper","docs\u002F2.components\u002Fstepper","A set of steps that are used to indicate progress through a multi-step process.",{"title":768,"path":769,"stem":770,"framework":16,"category":309,"description":771},"Switch","\u002Fdocs\u002Fcomponents\u002Fswitch","docs\u002F2.components\u002Fswitch","A control that toggles between two states.",{"title":773,"path":774,"stem":775,"framework":16,"category":172,"description":776},"Table","\u002Fdocs\u002Fcomponents\u002Ftable","docs\u002F2.components\u002Ftable","A responsive table element to display data in rows and columns.",{"title":778,"path":779,"stem":780,"framework":16,"category":226,"description":781},"Tabs","\u002Fdocs\u002Fcomponents\u002Ftabs","docs\u002F2.components\u002Ftabs","A set of tab panels that are displayed one at a time.",{"title":783,"path":784,"stem":785,"framework":16,"category":309,"description":786},"Textarea","\u002Fdocs\u002Fcomponents\u002Ftextarea","docs\u002F2.components\u002Ftextarea","A textarea element to input multi-line text.",{"title":54,"path":788,"stem":789,"framework":16,"category":184,"description":790},"\u002Fdocs\u002Fcomponents\u002Ftheme","docs\u002F2.components\u002Ftheme","A headless component to theme child components.",{"title":792,"path":793,"stem":794,"framework":16,"category":172,"description":795},"Timeline","\u002Fdocs\u002Fcomponents\u002Ftimeline","docs\u002F2.components\u002Ftimeline","A component that displays a sequence of events with dates, titles, icons or avatars.",{"title":797,"path":798,"stem":799,"framework":16,"category":397,"description":800},"Toast","\u002Fdocs\u002Fcomponents\u002Ftoast","docs\u002F2.components\u002Ftoast","A succinct message to provide information or feedback to the user.",{"title":802,"path":803,"stem":804,"framework":16,"category":397,"description":805},"Tooltip","\u002Fdocs\u002Fcomponents\u002Ftooltip","docs\u002F2.components\u002Ftooltip","A popup that reveals information when hovering over an element.",{"title":807,"path":808,"stem":809,"framework":16,"category":172,"description":810},"Tree","\u002Fdocs\u002Fcomponents\u002Ftree","docs\u002F2.components\u002Ftree","A tree view component to display and interact with hierarchical data structures.",{"title":812,"path":813,"stem":814,"framework":16,"category":172,"description":815},"User","\u002Fdocs\u002Fcomponents\u002Fuser","docs\u002F2.components\u002Fuser","Display user information with name, description and avatar.",{"title":817,"framework":16,"category":16,"description":16,"icon":818,"path":819,"stem":820,"children":821,"page":36},"Composables","i-lucide-square-function","\u002Fdocs\u002Fcomposables","docs\u002F3.composables",[822,827,832,837,842,847,852],{"title":823,"path":824,"stem":825,"framework":16,"category":16,"description":826},"defineLocale","\u002Fdocs\u002Fcomposables\u002Fdefine-locale","docs\u002F3.composables\u002Fdefine-locale","A utility to create a custom locale for your app.",{"title":828,"path":829,"stem":830,"framework":16,"category":16,"description":831},"defineShortcuts","\u002Fdocs\u002Fcomposables\u002Fdefine-shortcuts","docs\u002F3.composables\u002Fdefine-shortcuts","A composable to define keyboard shortcuts in your app.",{"title":833,"path":834,"stem":835,"framework":16,"category":16,"description":836},"extendLocale","\u002Fdocs\u002Fcomposables\u002Fextend-locale","docs\u002F3.composables\u002Fextend-locale","A utility to extend an existing locale with custom translations.",{"title":838,"path":839,"stem":840,"framework":16,"category":16,"description":841},"extractShortcuts","\u002Fdocs\u002Fcomposables\u002Fextract-shortcuts","docs\u002F3.composables\u002Fextract-shortcuts","A utility to extract keyboard shortcuts from menu items.",{"title":843,"path":844,"stem":845,"framework":16,"category":16,"description":846},"useOverlay","\u002Fdocs\u002Fcomposables\u002Fuse-overlay","docs\u002F3.composables\u002Fuse-overlay","A composable to programmatically control overlays.",{"title":848,"path":849,"stem":850,"framework":16,"category":16,"description":851,"badge":294},"useScrollShadow","\u002Fdocs\u002Fcomposables\u002Fuse-scroll-shadow","docs\u002F3.composables\u002Fuse-scroll-shadow","A composable to apply scroll shadow effects on any scrollable element.",{"title":853,"path":854,"stem":855,"framework":16,"category":16,"description":856},"useToast","\u002Fdocs\u002Fcomposables\u002Fuse-toast","docs\u002F3.composables\u002Fuse-toast","A composable to display toast notifications in your app.",{"title":858,"path":859,"stem":860,"children":861,"framework":16,"category":16,"description":16,"icon":963},"Typography","\u002Fdocs\u002Ftypography","docs\u002F4.typography\u002F1.index",[862,864,869,874,879,884,889,893,898,902,907,912,917,922,927,931,936,940,944,948,954,959],{"title":15,"path":859,"stem":860,"framework":16,"category":16,"description":863},"Beautiful typography components and utilities to style your content with Nuxt UI.",{"title":865,"path":866,"stem":867,"framework":16,"category":16,"description":868},"Headers and text","\u002Fdocs\u002Ftypography\u002Fheaders-and-text","docs\u002F4.typography\u002F2.headers-and-text","Beautifully styled headings, paragraphs, text formatting, and links for optimal readability.",{"title":870,"path":871,"stem":872,"framework":16,"category":16,"description":873},"Lists and tables","\u002Fdocs\u002Ftypography\u002Flists-and-tables","docs\u002F4.typography\u002F3.lists-and-tables","Organize information with styled lists and responsive tables for clear, consistent readability.",{"title":875,"path":876,"stem":877,"framework":16,"category":16,"description":878},"Images and embeds","\u002Fdocs\u002Ftypography\u002Fimages-and-embeds","docs\u002F4.typography\u002F4.images-and-embeds","Responsive images, videos, and rich media embeds to enhance and illustrate your documentation.",{"title":880,"path":881,"stem":882,"framework":16,"category":16,"description":883},"Code","\u002Fdocs\u002Ftypography\u002Fcode","docs\u002F4.typography\u002F5.code","Display inline code and syntax-highlighted code blocks with copy-to-clipboard support.",{"title":169,"path":885,"stem":886,"framework":16,"category":887,"description":888},"\u002Fdocs\u002Ftypography\u002Faccordion","docs\u002F4.typography\u002Faccordion","components","Create expandable content sections for better information organization.",{"title":203,"path":890,"stem":891,"framework":16,"category":887,"description":892},"\u002Fdocs\u002Ftypography\u002Fbadge","docs\u002F4.typography\u002Fbadge","Display version numbers, status labels, and tags within your content.",{"title":894,"path":895,"stem":896,"framework":16,"category":887,"description":897},"Callout","\u002Fdocs\u002Ftypography\u002Fcallout","docs\u002F4.typography\u002Fcallout","Highlight important information with eye-catching colored boxes and icons.",{"title":239,"path":899,"stem":900,"framework":16,"category":887,"description":901},"\u002Fdocs\u002Ftypography\u002Fcard","docs\u002F4.typography\u002Fcard","Create highlighted content blocks with optional links and navigation.",{"title":903,"path":904,"stem":905,"framework":16,"category":887,"description":906},"CardGroup","\u002Fdocs\u002Ftypography\u002Fcard-group","docs\u002F4.typography\u002Fcard-group","Organize multiple cards in responsive grid layouts for better content presentation.",{"title":908,"path":909,"stem":910,"framework":16,"category":887,"description":911},"CodeCollapse","\u002Fdocs\u002Ftypography\u002Fcode-collapse","docs\u002F4.typography\u002Fcode-collapse","Make long code blocks collapsible to save space and improve readability.",{"title":913,"path":914,"stem":915,"framework":16,"category":887,"description":916},"CodeGroup","\u002Fdocs\u002Ftypography\u002Fcode-group","docs\u002F4.typography\u002Fcode-group","Group multiple code examples in tabbed interfaces for easy comparison.",{"title":918,"path":919,"stem":920,"framework":16,"category":887,"description":921},"CodePreview","\u002Fdocs\u002Ftypography\u002Fcode-preview","docs\u002F4.typography\u002Fcode-preview","Display code examples with a preview and their source for clearer documentation.",{"title":923,"path":924,"stem":925,"framework":16,"category":887,"description":926},"CodeTree","\u002Fdocs\u002Ftypography\u002Fcode-tree","docs\u002F4.typography\u002Fcode-tree","Visualize file and folder structures with syntax-highlighted code.",{"title":322,"path":928,"stem":929,"framework":16,"category":887,"description":930},"\u002Fdocs\u002Ftypography\u002Fcollapsible","docs\u002F4.typography\u002Fcollapsible","Toggle content visibility with smooth expand and collapse animations.",{"title":932,"path":933,"stem":934,"framework":16,"category":887,"description":935},"Field","\u002Fdocs\u002Ftypography\u002Ffield","docs\u002F4.typography\u002Ffield","Document API parameters, props, and configuration options clearly.",{"title":502,"path":937,"stem":938,"framework":16,"category":887,"description":939},"\u002Fdocs\u002Ftypography\u002Ffield-group","docs\u002F4.typography\u002Ffield-group","Group related fields together for comprehensive API documentation.",{"title":537,"path":941,"stem":942,"framework":16,"category":887,"description":943},"\u002Fdocs\u002Ftypography\u002Ficon","docs\u002F4.typography\u002Ficon","Display icons from popular icon libraries to enhance your content.",{"title":572,"path":945,"stem":946,"framework":16,"category":887,"description":947},"\u002Fdocs\u002Ftypography\u002Fkbd","docs\u002F4.typography\u002Fkbd","Display keyboard shortcuts and key combinations with proper styling.",{"title":949,"path":950,"stem":951,"framework":16,"category":887,"description":952,"badge":953},"Prompt","\u002Fdocs\u002Ftypography\u002Fprompt","docs\u002F4.typography\u002Fprompt","Display pre-built AI prompts with one-click copy and IDE integration.","Soon",{"title":955,"path":956,"stem":957,"framework":16,"category":887,"description":958},"Steps","\u002Fdocs\u002Ftypography\u002Fsteps","docs\u002F4.typography\u002Fsteps","Transform headings into numbered step-by-step guides and tutorials.",{"title":778,"path":960,"stem":961,"framework":16,"category":887,"description":962},"\u002Fdocs\u002Ftypography\u002Ftabs","docs\u002F4.typography\u002Ftabs","Organize related content in interactive tabbed interfaces.","i-lucide-square-pilcrow",{"id":965,"title":259,"body":966,"category":262,"description":263,"extension":5723,"framework":16,"index":21,"links":5724,"meta":5729,"navigation":16,"path":260,"seo":5730,"stem":261,"__hash__":5731},"docs\u002Fdocs\u002F2.components\u002Fchat.md",{"type":967,"value":968,"toc":5713},"minimark",[969,981,1005,1008,1100,1103,1117,1120,1595,1599,1616,1837,1842,1871,2241,2245,2260,2965,2969,2982,2985,3027,3030,3437,3441,3451,5339,5553,5698,5709],[970,971,972,973,980],"p",{},"Nuxt UI provides a set of components designed to build AI-powered chat interfaces. They integrate seamlessly with the ",[974,975,979],"a",{"href":976,"rel":977},"https:\u002F\u002Fai-sdk.dev\u002F",[978],"nofollow","Vercel AI SDK"," for streaming responses, reasoning, tool calling, and more.",[982,983,985],"callout",{"icon":984},"i-simple-icons-github",[970,986,987,988,996,997,1004],{},"Check out the ",[974,989,992],{"href":990,"rel":991},"https:\u002F\u002Fgithub.com\u002Fnuxt-ui-templates\u002Fchat",[978],[993,994,995],"code",{},"Nuxt"," and ",[974,998,1001],{"href":999,"rel":1000},"https:\u002F\u002Fgithub.com\u002Fnuxt-ui-templates\u002Fchat-vue",[978],[993,1002,1003],{},"Vue"," AI Chat templates on GitHub for production-ready implementations.",[1006,1007,71],"h2",{"id":887},[1009,1010,1011,1024],"table",{},[1012,1013,1014],"thead",{},[1015,1016,1017,1021],"tr",{},[1018,1019,1020],"th",{},"Component",[1018,1022,1023],{},"Description",[1025,1026,1027,1037,1046,1055,1064,1073,1082,1091],"tbody",{},[1015,1028,1029,1034],{},[1030,1031,1032],"td",{},[974,1033,270],{"href":271},[1030,1035,1036],{},"Scrollable message list with auto-scroll and loading indicator.",[1015,1038,1039,1043],{},[1030,1040,1041],{},[974,1042,265],{"href":266},[1030,1044,1045],{},"Individual message bubble with avatar, actions, and slots.",[1015,1047,1048,1052],{},[1030,1049,1050],{},[974,1051,280],{"href":281},[1030,1053,1054],{},"Enhanced textarea for submitting prompts.",[1015,1056,1057,1061],{},[1030,1058,1059],{},[974,1060,285],{"href":286},[1030,1062,1063],{},"Submit button with automatic status handling.",[1015,1065,1066,1070],{},[1030,1067,1068],{},[974,1069,290],{"href":291},[1030,1071,1072],{},"Collapsible block for AI reasoning \u002F thinking process.",[1015,1074,1075,1079],{},[1030,1076,1077],{},[974,1078,301],{"href":302},[1030,1080,1081],{},"Collapsible block for AI tool invocation status.",[1015,1083,1084,1088],{},[1030,1085,1086],{},[974,1087,296],{"href":297},[1030,1089,1090],{},"Text shimmer animation for streaming states.",[1015,1092,1093,1097],{},[1030,1094,1095],{},[974,1096,275],{"href":276},[1030,1098,1099],{},"Layout wrapper for embedding chat in modals or drawers.",[1006,1101,20],{"id":1102},"installation",[970,1104,1105,1106,1109,1110,1116],{},"The Chat components are designed to be used with the ",[974,1107,979],{"href":976,"rel":1108},[978],", specifically the ",[974,1111,1114],{"href":1112,"rel":1113},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Freference\u002Fai-sdk-ui\u002Fuse-chat",[978],[993,1115,259],{}," class for managing chat state and streaming responses.",[970,1118,1119],{},"Install the required dependencies:",[1121,1122,1123,1337],"framework-only",{},[1124,1125,1127],"template",{"v-slot:nuxt":1126},"",[1128,1129,1130,1228,1235,1317],"div",{},[1131,1132,1134,1167,1187,1208],"code-group",{"sync":1133},"pm",[1135,1136,1141],"pre",{"className":1137,"code":1138,"filename":1139,"language":1140,"meta":1126,"style":1126},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","pnpm add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fnuxt\n","pnpm","bash",[993,1142,1143],{"__ignoreMap":1126},[1144,1145,1148,1151,1155,1158,1161,1164],"span",{"class":1146,"line":1147},"line",1,[1144,1149,1139],{"class":1150},"sBMFI",[1144,1152,1154],{"class":1153},"sfazB"," add",[1144,1156,1157],{"class":1153}," ai",[1144,1159,1160],{"class":1153}," @ai-sdk\u002Fgateway",[1144,1162,1163],{"class":1153}," @ai-sdk\u002Fvue",[1144,1165,1166],{"class":1153}," @comark\u002Fnuxt\n",[1135,1168,1171],{"className":1137,"code":1169,"filename":1170,"language":1140,"meta":1126,"style":1126},"yarn add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fnuxt\n","yarn",[993,1172,1173],{"__ignoreMap":1126},[1144,1174,1175,1177,1179,1181,1183,1185],{"class":1146,"line":1147},[1144,1176,1170],{"class":1150},[1144,1178,1154],{"class":1153},[1144,1180,1157],{"class":1153},[1144,1182,1160],{"class":1153},[1144,1184,1163],{"class":1153},[1144,1186,1166],{"class":1153},[1135,1188,1191],{"className":1137,"code":1189,"filename":1190,"language":1140,"meta":1126,"style":1126},"npm install ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fnuxt\n","npm",[993,1192,1193],{"__ignoreMap":1126},[1144,1194,1195,1197,1200,1202,1204,1206],{"class":1146,"line":1147},[1144,1196,1190],{"class":1150},[1144,1198,1199],{"class":1153}," install",[1144,1201,1157],{"class":1153},[1144,1203,1160],{"class":1153},[1144,1205,1163],{"class":1153},[1144,1207,1166],{"class":1153},[1135,1209,1212],{"className":1137,"code":1210,"filename":1211,"language":1140,"meta":1126,"style":1126},"bun add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fnuxt\n","bun",[993,1213,1214],{"__ignoreMap":1126},[1144,1215,1216,1218,1220,1222,1224,1226],{"class":1146,"line":1147},[1144,1217,1211],{"class":1150},[1144,1219,1154],{"class":1153},[1144,1221,1157],{"class":1153},[1144,1223,1160],{"class":1153},[1144,1225,1163],{"class":1153},[1144,1227,1166],{"class":1153},[970,1229,1230,1231,1234],{},"Add ",[993,1232,1233],{},"@comark\u002Fnuxt"," to your modules:",[1135,1236,1241],{"className":1237,"code":1238,"filename":1239,"language":1240,"meta":1126,"style":1126},"language-ts shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","export default defineNuxtConfig({\n  modules: [\n    '@nuxt\u002Fui',\n    '@comark\u002Fnuxt'\n  ]\n})\n","nuxt.config.ts","ts",[993,1242,1243,1264,1277,1292,1302,1308],{"__ignoreMap":1126},[1144,1244,1245,1249,1252,1256,1260],{"class":1146,"line":1147},[1144,1246,1248],{"class":1247},"s7zQu","export",[1144,1250,1251],{"class":1247}," default",[1144,1253,1255],{"class":1254},"s2Zo4"," defineNuxtConfig",[1144,1257,1259],{"class":1258},"sTEyZ","(",[1144,1261,1263],{"class":1262},"sMK4o","{\n",[1144,1265,1267,1271,1274],{"class":1146,"line":1266},2,[1144,1268,1270],{"class":1269},"swJcz","  modules",[1144,1272,1273],{"class":1262},":",[1144,1275,1276],{"class":1258}," [\n",[1144,1278,1280,1283,1286,1289],{"class":1146,"line":1279},3,[1144,1281,1282],{"class":1262},"    '",[1144,1284,1285],{"class":1153},"@nuxt\u002Fui",[1144,1287,1288],{"class":1262},"'",[1144,1290,1291],{"class":1262},",\n",[1144,1293,1295,1297,1299],{"class":1146,"line":1294},4,[1144,1296,1282],{"class":1262},[1144,1298,1233],{"class":1153},[1144,1300,1301],{"class":1262},"'\n",[1144,1303,1305],{"class":1146,"line":1304},5,[1144,1306,1307],{"class":1258},"  ]\n",[1144,1309,1311,1314],{"class":1146,"line":1310},6,[1144,1312,1313],{"class":1262},"}",[1144,1315,1316],{"class":1258},")\n",[1318,1319,1320],"note",{},[970,1321,1322,1328,1329,1332,1333,1336],{},[974,1323,1326],{"href":1324,"rel":1325},"https:\u002F\u002Fcomark.dev\u002Frendering\u002Fnuxt",[978],[993,1327,1233],{}," provides the ",[993,1330,1331],{},"Comark"," component used to render AI responses as streaming Markdown, it incrementally renders tokens as they arrive, avoiding the flicker and re-parsing that traditional Markdown renderers cause. It also automatically enables Nuxt UI's ",[974,1334,1335],{"href":859},"prose components"," so your content is styled to match your theme.",[1124,1338,1339],{"v-slot:vue":1126},[1128,1340,1341,1420],{},[1131,1342,1343,1363,1382,1401],{"sync":1133},[1135,1344,1346],{"className":1137,"code":1345,"filename":1139,"language":1140,"meta":1126,"style":1126},"pnpm add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fvue\n",[993,1347,1348],{"__ignoreMap":1126},[1144,1349,1350,1352,1354,1356,1358,1360],{"class":1146,"line":1147},[1144,1351,1139],{"class":1150},[1144,1353,1154],{"class":1153},[1144,1355,1157],{"class":1153},[1144,1357,1160],{"class":1153},[1144,1359,1163],{"class":1153},[1144,1361,1362],{"class":1153}," @comark\u002Fvue\n",[1135,1364,1366],{"className":1137,"code":1365,"filename":1170,"language":1140,"meta":1126,"style":1126},"yarn add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fvue\n",[993,1367,1368],{"__ignoreMap":1126},[1144,1369,1370,1372,1374,1376,1378,1380],{"class":1146,"line":1147},[1144,1371,1170],{"class":1150},[1144,1373,1154],{"class":1153},[1144,1375,1157],{"class":1153},[1144,1377,1160],{"class":1153},[1144,1379,1163],{"class":1153},[1144,1381,1362],{"class":1153},[1135,1383,1385],{"className":1137,"code":1384,"filename":1190,"language":1140,"meta":1126,"style":1126},"npm install ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fvue\n",[993,1386,1387],{"__ignoreMap":1126},[1144,1388,1389,1391,1393,1395,1397,1399],{"class":1146,"line":1147},[1144,1390,1190],{"class":1150},[1144,1392,1199],{"class":1153},[1144,1394,1157],{"class":1153},[1144,1396,1160],{"class":1153},[1144,1398,1163],{"class":1153},[1144,1400,1362],{"class":1153},[1135,1402,1404],{"className":1137,"code":1403,"filename":1211,"language":1140,"meta":1126,"style":1126},"bun add ai @ai-sdk\u002Fgateway @ai-sdk\u002Fvue @comark\u002Fvue\n",[993,1405,1406],{"__ignoreMap":1126},[1144,1407,1408,1410,1412,1414,1416,1418],{"class":1146,"line":1147},[1144,1409,1211],{"class":1150},[1144,1411,1154],{"class":1153},[1144,1413,1157],{"class":1153},[1144,1415,1160],{"class":1153},[1144,1417,1163],{"class":1153},[1144,1419,1362],{"class":1153},[1318,1421,1422,1450],{},[970,1423,1424,1328,1431,1433,1434,1437,1439,1440,1442,1443,1446,1447,1273],{},[974,1425,1428],{"href":1426,"rel":1427},"https:\u002F\u002Fcomark.dev\u002Frendering\u002Fvue",[978],[993,1429,1430],{},"@comark\u002Fvue",[993,1432,1331],{}," component used to render AI responses as streaming Markdown, it incrementally renders tokens as they arrive, avoiding the flicker and re-parsing that traditional Markdown renderers cause.\n",[1435,1436],"br",{},[1435,1438],{},"To use Nuxt UI's ",[974,1441,1335],{"href":859}," with Comark, enable the ",[993,1444,1445],{},"prose"," option in your ",[993,1448,1449],{},"vite.config.ts",[1135,1451,1455],{"className":1237,"code":1452,"filename":1449,"highlights":1453,"language":1240,"meta":1126,"style":1126},"import { defineConfig } from 'vite'\nimport vue from '@vitejs\u002Fplugin-vue'\nimport ui from '@nuxt\u002Fui\u002Fvite'\n\nexport default defineConfig({\n  plugins: [\n    vue(),\n    ui({\n      prose: true\n    })\n  ]\n})\n",[1454],9,[993,1456,1457,1482,1499,1515,1520,1532,1541,1552,1562,1575,1583,1588],{"__ignoreMap":1126},[1144,1458,1459,1462,1465,1468,1471,1474,1477,1480],{"class":1146,"line":1147},[1144,1460,1461],{"class":1247},"import",[1144,1463,1464],{"class":1262}," {",[1144,1466,1467],{"class":1258}," defineConfig",[1144,1469,1470],{"class":1262}," }",[1144,1472,1473],{"class":1247}," from",[1144,1475,1476],{"class":1262}," '",[1144,1478,1479],{"class":1153},"vite",[1144,1481,1301],{"class":1262},[1144,1483,1484,1486,1489,1492,1494,1497],{"class":1146,"line":1266},[1144,1485,1461],{"class":1247},[1144,1487,1488],{"class":1258}," vue ",[1144,1490,1491],{"class":1247},"from",[1144,1493,1476],{"class":1262},[1144,1495,1496],{"class":1153},"@vitejs\u002Fplugin-vue",[1144,1498,1301],{"class":1262},[1144,1500,1501,1503,1506,1508,1510,1513],{"class":1146,"line":1279},[1144,1502,1461],{"class":1247},[1144,1504,1505],{"class":1258}," ui ",[1144,1507,1491],{"class":1247},[1144,1509,1476],{"class":1262},[1144,1511,1512],{"class":1153},"@nuxt\u002Fui\u002Fvite",[1144,1514,1301],{"class":1262},[1144,1516,1517],{"class":1146,"line":1294},[1144,1518,1519],{"emptyLinePlaceholder":21},"\n",[1144,1521,1522,1524,1526,1528,1530],{"class":1146,"line":1304},[1144,1523,1248],{"class":1247},[1144,1525,1251],{"class":1247},[1144,1527,1467],{"class":1254},[1144,1529,1259],{"class":1258},[1144,1531,1263],{"class":1262},[1144,1533,1534,1537,1539],{"class":1146,"line":1310},[1144,1535,1536],{"class":1269},"  plugins",[1144,1538,1273],{"class":1262},[1144,1540,1276],{"class":1258},[1144,1542,1544,1547,1550],{"class":1146,"line":1543},7,[1144,1545,1546],{"class":1254},"    vue",[1144,1548,1549],{"class":1258},"()",[1144,1551,1291],{"class":1262},[1144,1553,1555,1558,1560],{"class":1146,"line":1554},8,[1144,1556,1557],{"class":1254},"    ui",[1144,1559,1259],{"class":1258},[1144,1561,1263],{"class":1262},[1144,1563,1566,1569,1571],{"class":1564,"line":1454},[1146,1565],"highlight",[1144,1567,1568],{"class":1269},"      prose",[1144,1570,1273],{"class":1262},[1144,1572,1574],{"class":1573},"sfNiH"," true\n",[1144,1576,1578,1581],{"class":1146,"line":1577},10,[1144,1579,1580],{"class":1262},"    }",[1144,1582,1316],{"class":1258},[1144,1584,1586],{"class":1146,"line":1585},11,[1144,1587,1307],{"class":1258},[1144,1589,1591,1593],{"class":1146,"line":1590},12,[1144,1592,1313],{"class":1262},[1144,1594,1316],{"class":1258},[1006,1596,1598],{"id":1597},"server-setup","Server Setup",[970,1600,1601,1602,1609,1610,1615],{},"Create a server API endpoint to handle chat requests using ",[974,1603,1606],{"href":1604,"rel":1605},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Freference\u002Fai-sdk-core\u002Fstream-text",[978],[993,1607,1608],{},"streamText",". You can use the ",[974,1611,1614],{"href":1612,"rel":1613},"https:\u002F\u002Fvercel.com\u002Fai-gateway",[978],"Vercel AI Gateway"," to access AI models through a centralized endpoint:",[1135,1617,1620],{"className":1237,"code":1618,"filename":1619,"language":1240,"meta":1126,"style":1126},"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",[993,1621,1622,1648,1668,1672,1703,1730,1734,1745,1767,1780,1796,1814,1830],{"__ignoreMap":1126},[1144,1623,1624,1626,1628,1631,1634,1637,1639,1641,1643,1646],{"class":1146,"line":1147},[1144,1625,1461],{"class":1247},[1144,1627,1464],{"class":1262},[1144,1629,1630],{"class":1258}," streamText",[1144,1632,1633],{"class":1262},",",[1144,1635,1636],{"class":1258}," convertToModelMessages",[1144,1638,1470],{"class":1262},[1144,1640,1473],{"class":1247},[1144,1642,1476],{"class":1262},[1144,1644,1645],{"class":1153},"ai",[1144,1647,1301],{"class":1262},[1144,1649,1650,1652,1654,1657,1659,1661,1663,1666],{"class":1146,"line":1266},[1144,1651,1461],{"class":1247},[1144,1653,1464],{"class":1262},[1144,1655,1656],{"class":1258}," gateway",[1144,1658,1470],{"class":1262},[1144,1660,1473],{"class":1247},[1144,1662,1476],{"class":1262},[1144,1664,1665],{"class":1153},"@ai-sdk\u002Fgateway",[1144,1667,1301],{"class":1262},[1144,1669,1670],{"class":1146,"line":1279},[1144,1671,1519],{"emptyLinePlaceholder":21},[1144,1673,1674,1676,1678,1681,1683,1687,1690,1694,1697,1700],{"class":1146,"line":1294},[1144,1675,1248],{"class":1247},[1144,1677,1251],{"class":1247},[1144,1679,1680],{"class":1254}," defineEventHandler",[1144,1682,1259],{"class":1258},[1144,1684,1686],{"class":1685},"spNyl","async",[1144,1688,1689],{"class":1262}," (",[1144,1691,1693],{"class":1692},"sHdIc","event",[1144,1695,1696],{"class":1262},")",[1144,1698,1699],{"class":1685}," =>",[1144,1701,1702],{"class":1262}," {\n",[1144,1704,1705,1708,1710,1713,1715,1718,1721,1724,1726,1728],{"class":1146,"line":1304},[1144,1706,1707],{"class":1685},"  const",[1144,1709,1464],{"class":1262},[1144,1711,1712],{"class":1258}," messages",[1144,1714,1470],{"class":1262},[1144,1716,1717],{"class":1262}," =",[1144,1719,1720],{"class":1247}," await",[1144,1722,1723],{"class":1254}," readBody",[1144,1725,1259],{"class":1269},[1144,1727,1693],{"class":1258},[1144,1729,1316],{"class":1269},[1144,1731,1732],{"class":1146,"line":1310},[1144,1733,1519],{"emptyLinePlaceholder":21},[1144,1735,1736,1739,1741,1743],{"class":1146,"line":1543},[1144,1737,1738],{"class":1247},"  return",[1144,1740,1630],{"class":1254},[1144,1742,1259],{"class":1269},[1144,1744,1263],{"class":1262},[1144,1746,1747,1750,1752,1754,1756,1758,1761,1763,1765],{"class":1146,"line":1554},[1144,1748,1749],{"class":1269},"    model",[1144,1751,1273],{"class":1262},[1144,1753,1656],{"class":1254},[1144,1755,1259],{"class":1269},[1144,1757,1288],{"class":1262},[1144,1759,1760],{"class":1153},"anthropic\u002Fclaude-sonnet-4.6",[1144,1762,1288],{"class":1262},[1144,1764,1696],{"class":1269},[1144,1766,1291],{"class":1262},[1144,1768,1769,1772,1774,1778],{"class":1146,"line":1454},[1144,1770,1771],{"class":1269},"    maxOutputTokens",[1144,1773,1273],{"class":1262},[1144,1775,1777],{"class":1776},"sbssI"," 10000",[1144,1779,1291],{"class":1262},[1144,1781,1782,1785,1787,1789,1792,1794],{"class":1146,"line":1577},[1144,1783,1784],{"class":1269},"    system",[1144,1786,1273],{"class":1262},[1144,1788,1476],{"class":1262},[1144,1790,1791],{"class":1153},"You are a helpful assistant.",[1144,1793,1288],{"class":1262},[1144,1795,1291],{"class":1262},[1144,1797,1798,1801,1803,1805,1807,1809,1812],{"class":1146,"line":1585},[1144,1799,1800],{"class":1269},"    messages",[1144,1802,1273],{"class":1262},[1144,1804,1720],{"class":1247},[1144,1806,1636],{"class":1254},[1144,1808,1259],{"class":1269},[1144,1810,1811],{"class":1258},"messages",[1144,1813,1316],{"class":1269},[1144,1815,1816,1819,1821,1824,1827],{"class":1146,"line":1590},[1144,1817,1818],{"class":1262},"  }",[1144,1820,1696],{"class":1269},[1144,1822,1823],{"class":1262},".",[1144,1825,1826],{"class":1254},"toUIMessageStreamResponse",[1144,1828,1829],{"class":1269},"()\n",[1144,1831,1833,1835],{"class":1146,"line":1832},13,[1144,1834,1313],{"class":1262},[1144,1836,1316],{"class":1258},[1838,1839,1841],"h3",{"id":1840},"reasoning","Reasoning",[970,1843,1844,1845,1849,1850,1853,1854,1859,1860,1859,1865,1870],{},"To enable ",[974,1846,1840],{"href":1847,"rel":1848},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-ui\u002Fchatbot#reasoning",[978],", configure ",[993,1851,1852],{},"providerOptions"," for your provider (",[974,1855,1858],{"href":1856,"rel":1857},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fguides\u002Fproviders\u002Fanthropic#reasoning",[978],"Anthropic",", ",[974,1861,1864],{"href":1862,"rel":1863},"https:\u002F\u002Fai-sdk.dev\u002Fproviders\u002Fai-sdk-providers\u002Fgoogle-generative-ai#thinking",[978],"Google",[974,1866,1869],{"href":1867,"rel":1868},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fguides\u002Fproviders\u002Fopenai#reasoning",[978],"OpenAI","):",[1135,1872,1874],{"className":1237,"code":1873,"filename":1619,"language":1240,"meta":1126,"style":1126},"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",[993,1875,1876,1898,1916,1920,1942,1964,1968,1978,1998,2008,2022,2040,2049,2058,2068,2083,2089,2104,2110,2120,2130,2143,2157,2163,2168,2178,2194,2209,2215,2221,2234],{"__ignoreMap":1126},[1144,1877,1878,1880,1882,1884,1886,1888,1890,1892,1894,1896],{"class":1146,"line":1147},[1144,1879,1461],{"class":1247},[1144,1881,1464],{"class":1262},[1144,1883,1630],{"class":1258},[1144,1885,1633],{"class":1262},[1144,1887,1636],{"class":1258},[1144,1889,1470],{"class":1262},[1144,1891,1473],{"class":1247},[1144,1893,1476],{"class":1262},[1144,1895,1645],{"class":1153},[1144,1897,1301],{"class":1262},[1144,1899,1900,1902,1904,1906,1908,1910,1912,1914],{"class":1146,"line":1266},[1144,1901,1461],{"class":1247},[1144,1903,1464],{"class":1262},[1144,1905,1656],{"class":1258},[1144,1907,1470],{"class":1262},[1144,1909,1473],{"class":1247},[1144,1911,1476],{"class":1262},[1144,1913,1665],{"class":1153},[1144,1915,1301],{"class":1262},[1144,1917,1918],{"class":1146,"line":1279},[1144,1919,1519],{"emptyLinePlaceholder":21},[1144,1921,1922,1924,1926,1928,1930,1932,1934,1936,1938,1940],{"class":1146,"line":1294},[1144,1923,1248],{"class":1247},[1144,1925,1251],{"class":1247},[1144,1927,1680],{"class":1254},[1144,1929,1259],{"class":1258},[1144,1931,1686],{"class":1685},[1144,1933,1689],{"class":1262},[1144,1935,1693],{"class":1692},[1144,1937,1696],{"class":1262},[1144,1939,1699],{"class":1685},[1144,1941,1702],{"class":1262},[1144,1943,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962],{"class":1146,"line":1304},[1144,1945,1707],{"class":1685},[1144,1947,1464],{"class":1262},[1144,1949,1712],{"class":1258},[1144,1951,1470],{"class":1262},[1144,1953,1717],{"class":1262},[1144,1955,1720],{"class":1247},[1144,1957,1723],{"class":1254},[1144,1959,1259],{"class":1269},[1144,1961,1693],{"class":1258},[1144,1963,1316],{"class":1269},[1144,1965,1966],{"class":1146,"line":1310},[1144,1967,1519],{"emptyLinePlaceholder":21},[1144,1969,1970,1972,1974,1976],{"class":1146,"line":1543},[1144,1971,1738],{"class":1247},[1144,1973,1630],{"class":1254},[1144,1975,1259],{"class":1269},[1144,1977,1263],{"class":1262},[1144,1979,1980,1982,1984,1986,1988,1990,1992,1994,1996],{"class":1146,"line":1554},[1144,1981,1749],{"class":1269},[1144,1983,1273],{"class":1262},[1144,1985,1656],{"class":1254},[1144,1987,1259],{"class":1269},[1144,1989,1288],{"class":1262},[1144,1991,1760],{"class":1153},[1144,1993,1288],{"class":1262},[1144,1995,1696],{"class":1269},[1144,1997,1291],{"class":1262},[1144,1999,2000,2002,2004,2006],{"class":1146,"line":1454},[1144,2001,1771],{"class":1269},[1144,2003,1273],{"class":1262},[1144,2005,1777],{"class":1776},[1144,2007,1291],{"class":1262},[1144,2009,2010,2012,2014,2016,2018,2020],{"class":1146,"line":1577},[1144,2011,1784],{"class":1269},[1144,2013,1273],{"class":1262},[1144,2015,1476],{"class":1262},[1144,2017,1791],{"class":1153},[1144,2019,1288],{"class":1262},[1144,2021,1291],{"class":1262},[1144,2023,2024,2026,2028,2030,2032,2034,2036,2038],{"class":1146,"line":1585},[1144,2025,1800],{"class":1269},[1144,2027,1273],{"class":1262},[1144,2029,1720],{"class":1247},[1144,2031,1636],{"class":1254},[1144,2033,1259],{"class":1269},[1144,2035,1811],{"class":1258},[1144,2037,1696],{"class":1269},[1144,2039,1291],{"class":1262},[1144,2041,2042,2045,2047],{"class":1146,"line":1590},[1144,2043,2044],{"class":1269},"    providerOptions",[1144,2046,1273],{"class":1262},[1144,2048,1702],{"class":1262},[1144,2050,2051,2054,2056],{"class":1146,"line":1832},[1144,2052,2053],{"class":1269},"      anthropic",[1144,2055,1273],{"class":1262},[1144,2057,1702],{"class":1262},[1144,2059,2061,2064,2066],{"class":1146,"line":2060},14,[1144,2062,2063],{"class":1269},"        thinking",[1144,2065,1273],{"class":1262},[1144,2067,1702],{"class":1262},[1144,2069,2071,2074,2076,2078,2081],{"class":1146,"line":2070},15,[1144,2072,2073],{"class":1269},"          type",[1144,2075,1273],{"class":1262},[1144,2077,1476],{"class":1262},[1144,2079,2080],{"class":1153},"adaptive",[1144,2082,1301],{"class":1262},[1144,2084,2086],{"class":1146,"line":2085},16,[1144,2087,2088],{"class":1262},"        },\n",[1144,2090,2092,2095,2097,2099,2102],{"class":1146,"line":2091},17,[1144,2093,2094],{"class":1269},"        effort",[1144,2096,1273],{"class":1262},[1144,2098,1476],{"class":1262},[1144,2100,2101],{"class":1153},"low",[1144,2103,1301],{"class":1262},[1144,2105,2107],{"class":1146,"line":2106},18,[1144,2108,2109],{"class":1262},"      },\n",[1144,2111,2113,2116,2118],{"class":1146,"line":2112},19,[1144,2114,2115],{"class":1269},"      google",[1144,2117,1273],{"class":1262},[1144,2119,1702],{"class":1262},[1144,2121,2123,2126,2128],{"class":1146,"line":2122},20,[1144,2124,2125],{"class":1269},"        thinkingConfig",[1144,2127,1273],{"class":1262},[1144,2129,1702],{"class":1262},[1144,2131,2133,2136,2138,2141],{"class":1146,"line":2132},21,[1144,2134,2135],{"class":1269},"          includeThoughts",[1144,2137,1273],{"class":1262},[1144,2139,2140],{"class":1573}," true",[1144,2142,1291],{"class":1262},[1144,2144,2146,2149,2151,2153,2155],{"class":1146,"line":2145},22,[1144,2147,2148],{"class":1269},"          thinkingLevel",[1144,2150,1273],{"class":1262},[1144,2152,1476],{"class":1262},[1144,2154,2101],{"class":1153},[1144,2156,1301],{"class":1262},[1144,2158,2160],{"class":1146,"line":2159},23,[1144,2161,2162],{"class":1262},"        }\n",[1144,2164,2166],{"class":1146,"line":2165},24,[1144,2167,2109],{"class":1262},[1144,2169,2171,2174,2176],{"class":1146,"line":2170},25,[1144,2172,2173],{"class":1269},"      openai",[1144,2175,1273],{"class":1262},[1144,2177,1702],{"class":1262},[1144,2179,2181,2184,2186,2188,2190,2192],{"class":1146,"line":2180},26,[1144,2182,2183],{"class":1269},"        reasoningEffort",[1144,2185,1273],{"class":1262},[1144,2187,1476],{"class":1262},[1144,2189,2101],{"class":1153},[1144,2191,1288],{"class":1262},[1144,2193,1291],{"class":1262},[1144,2195,2197,2200,2202,2204,2207],{"class":1146,"line":2196},27,[1144,2198,2199],{"class":1269},"        reasoningSummary",[1144,2201,1273],{"class":1262},[1144,2203,1476],{"class":1262},[1144,2205,2206],{"class":1153},"detailed",[1144,2208,1301],{"class":1262},[1144,2210,2212],{"class":1146,"line":2211},28,[1144,2213,2214],{"class":1262},"      }\n",[1144,2216,2218],{"class":1146,"line":2217},29,[1144,2219,2220],{"class":1262},"    }\n",[1144,2222,2224,2226,2228,2230,2232],{"class":1146,"line":2223},30,[1144,2225,1818],{"class":1262},[1144,2227,1696],{"class":1269},[1144,2229,1823],{"class":1262},[1144,2231,1826],{"class":1254},[1144,2233,1829],{"class":1269},[1144,2235,2237,2239],{"class":1146,"line":2236},31,[1144,2238,1313],{"class":1262},[1144,2240,1316],{"class":1258},[1838,2242,2244],{"id":2243},"web-search","Web Search",[970,2246,2247,2248,1859,2252,1859,2256,1823],{},"Some providers offer built-in web search tools: ",[974,2249,1858],{"href":2250,"rel":2251},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fguides\u002Fproviders\u002Fanthropic#web-search-tool",[978],[974,2253,1864],{"href":2254,"rel":2255},"https:\u002F\u002Fai-sdk.dev\u002Fproviders\u002Fai-sdk-providers\u002Fgoogle-generative-ai#google-search",[978],[974,2257,1869],{"href":2258,"rel":2259},"https:\u002F\u002Fai-sdk.dev\u002Fproviders\u002Fai-sdk-providers\u002Fopenai#web-search-tool",[978],[1131,2261,2262,2498,2732],{},[1135,2263,2265],{"className":1237,"code":2264,"filename":1858,"language":1240,"meta":1126,"style":1126},"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",[993,2266,2267,2289,2309,2327,2331,2353,2375,2379,2389,2409,2423,2441,2450,2476,2480,2492],{"__ignoreMap":1126},[1144,2268,2269,2271,2273,2275,2277,2279,2281,2283,2285,2287],{"class":1146,"line":1147},[1144,2270,1461],{"class":1247},[1144,2272,1464],{"class":1262},[1144,2274,1630],{"class":1258},[1144,2276,1633],{"class":1262},[1144,2278,1636],{"class":1258},[1144,2280,1470],{"class":1262},[1144,2282,1473],{"class":1247},[1144,2284,1476],{"class":1262},[1144,2286,1645],{"class":1153},[1144,2288,1301],{"class":1262},[1144,2290,2291,2293,2295,2298,2300,2302,2304,2307],{"class":1146,"line":1266},[1144,2292,1461],{"class":1247},[1144,2294,1464],{"class":1262},[1144,2296,2297],{"class":1258}," anthropic",[1144,2299,1470],{"class":1262},[1144,2301,1473],{"class":1247},[1144,2303,1476],{"class":1262},[1144,2305,2306],{"class":1153},"@ai-sdk\u002Fanthropic",[1144,2308,1301],{"class":1262},[1144,2310,2311,2313,2315,2317,2319,2321,2323,2325],{"class":1146,"line":1279},[1144,2312,1461],{"class":1247},[1144,2314,1464],{"class":1262},[1144,2316,1656],{"class":1258},[1144,2318,1470],{"class":1262},[1144,2320,1473],{"class":1247},[1144,2322,1476],{"class":1262},[1144,2324,1665],{"class":1153},[1144,2326,1301],{"class":1262},[1144,2328,2329],{"class":1146,"line":1294},[1144,2330,1519],{"emptyLinePlaceholder":21},[1144,2332,2333,2335,2337,2339,2341,2343,2345,2347,2349,2351],{"class":1146,"line":1304},[1144,2334,1248],{"class":1247},[1144,2336,1251],{"class":1247},[1144,2338,1680],{"class":1254},[1144,2340,1259],{"class":1258},[1144,2342,1686],{"class":1685},[1144,2344,1689],{"class":1262},[1144,2346,1693],{"class":1692},[1144,2348,1696],{"class":1262},[1144,2350,1699],{"class":1685},[1144,2352,1702],{"class":1262},[1144,2354,2355,2357,2359,2361,2363,2365,2367,2369,2371,2373],{"class":1146,"line":1310},[1144,2356,1707],{"class":1685},[1144,2358,1464],{"class":1262},[1144,2360,1712],{"class":1258},[1144,2362,1470],{"class":1262},[1144,2364,1717],{"class":1262},[1144,2366,1720],{"class":1247},[1144,2368,1723],{"class":1254},[1144,2370,1259],{"class":1269},[1144,2372,1693],{"class":1258},[1144,2374,1316],{"class":1269},[1144,2376,2377],{"class":1146,"line":1543},[1144,2378,1519],{"emptyLinePlaceholder":21},[1144,2380,2381,2383,2385,2387],{"class":1146,"line":1554},[1144,2382,1738],{"class":1247},[1144,2384,1630],{"class":1254},[1144,2386,1259],{"class":1269},[1144,2388,1263],{"class":1262},[1144,2390,2391,2393,2395,2397,2399,2401,2403,2405,2407],{"class":1146,"line":1454},[1144,2392,1749],{"class":1269},[1144,2394,1273],{"class":1262},[1144,2396,1656],{"class":1254},[1144,2398,1259],{"class":1269},[1144,2400,1288],{"class":1262},[1144,2402,1760],{"class":1153},[1144,2404,1288],{"class":1262},[1144,2406,1696],{"class":1269},[1144,2408,1291],{"class":1262},[1144,2410,2411,2413,2415,2417,2419,2421],{"class":1146,"line":1577},[1144,2412,1784],{"class":1269},[1144,2414,1273],{"class":1262},[1144,2416,1476],{"class":1262},[1144,2418,1791],{"class":1153},[1144,2420,1288],{"class":1262},[1144,2422,1291],{"class":1262},[1144,2424,2425,2427,2429,2431,2433,2435,2437,2439],{"class":1146,"line":1585},[1144,2426,1800],{"class":1269},[1144,2428,1273],{"class":1262},[1144,2430,1720],{"class":1247},[1144,2432,1636],{"class":1254},[1144,2434,1259],{"class":1269},[1144,2436,1811],{"class":1258},[1144,2438,1696],{"class":1269},[1144,2440,1291],{"class":1262},[1144,2442,2443,2446,2448],{"class":1146,"line":1590},[1144,2444,2445],{"class":1269},"    tools",[1144,2447,1273],{"class":1262},[1144,2449,1702],{"class":1262},[1144,2451,2452,2455,2457,2459,2461,2464,2466,2469,2471,2474],{"class":1146,"line":1832},[1144,2453,2454],{"class":1269},"      web_search",[1144,2456,1273],{"class":1262},[1144,2458,2297],{"class":1258},[1144,2460,1823],{"class":1262},[1144,2462,2463],{"class":1258},"tools",[1144,2465,1823],{"class":1262},[1144,2467,2468],{"class":1254},"webSearch_20250305",[1144,2470,1259],{"class":1269},[1144,2472,2473],{"class":1262},"{}",[1144,2475,1316],{"class":1269},[1144,2477,2478],{"class":1146,"line":2060},[1144,2479,2220],{"class":1262},[1144,2481,2482,2484,2486,2488,2490],{"class":1146,"line":2070},[1144,2483,1818],{"class":1262},[1144,2485,1696],{"class":1269},[1144,2487,1823],{"class":1262},[1144,2489,1826],{"class":1254},[1144,2491,1829],{"class":1269},[1144,2493,2494,2496],{"class":1146,"line":2085},[1144,2495,1313],{"class":1262},[1144,2497,1316],{"class":1258},[1135,2499,2501],{"className":1237,"code":2500,"filename":1864,"language":1240,"meta":1126,"style":1126},"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",[993,2502,2503,2525,2545,2563,2567,2589,2611,2615,2625,2646,2660,2678,2686,2710,2714,2726],{"__ignoreMap":1126},[1144,2504,2505,2507,2509,2511,2513,2515,2517,2519,2521,2523],{"class":1146,"line":1147},[1144,2506,1461],{"class":1247},[1144,2508,1464],{"class":1262},[1144,2510,1630],{"class":1258},[1144,2512,1633],{"class":1262},[1144,2514,1636],{"class":1258},[1144,2516,1470],{"class":1262},[1144,2518,1473],{"class":1247},[1144,2520,1476],{"class":1262},[1144,2522,1645],{"class":1153},[1144,2524,1301],{"class":1262},[1144,2526,2527,2529,2531,2534,2536,2538,2540,2543],{"class":1146,"line":1266},[1144,2528,1461],{"class":1247},[1144,2530,1464],{"class":1262},[1144,2532,2533],{"class":1258}," google",[1144,2535,1470],{"class":1262},[1144,2537,1473],{"class":1247},[1144,2539,1476],{"class":1262},[1144,2541,2542],{"class":1153},"@ai-sdk\u002Fgoogle",[1144,2544,1301],{"class":1262},[1144,2546,2547,2549,2551,2553,2555,2557,2559,2561],{"class":1146,"line":1279},[1144,2548,1461],{"class":1247},[1144,2550,1464],{"class":1262},[1144,2552,1656],{"class":1258},[1144,2554,1470],{"class":1262},[1144,2556,1473],{"class":1247},[1144,2558,1476],{"class":1262},[1144,2560,1665],{"class":1153},[1144,2562,1301],{"class":1262},[1144,2564,2565],{"class":1146,"line":1294},[1144,2566,1519],{"emptyLinePlaceholder":21},[1144,2568,2569,2571,2573,2575,2577,2579,2581,2583,2585,2587],{"class":1146,"line":1304},[1144,2570,1248],{"class":1247},[1144,2572,1251],{"class":1247},[1144,2574,1680],{"class":1254},[1144,2576,1259],{"class":1258},[1144,2578,1686],{"class":1685},[1144,2580,1689],{"class":1262},[1144,2582,1693],{"class":1692},[1144,2584,1696],{"class":1262},[1144,2586,1699],{"class":1685},[1144,2588,1702],{"class":1262},[1144,2590,2591,2593,2595,2597,2599,2601,2603,2605,2607,2609],{"class":1146,"line":1310},[1144,2592,1707],{"class":1685},[1144,2594,1464],{"class":1262},[1144,2596,1712],{"class":1258},[1144,2598,1470],{"class":1262},[1144,2600,1717],{"class":1262},[1144,2602,1720],{"class":1247},[1144,2604,1723],{"class":1254},[1144,2606,1259],{"class":1269},[1144,2608,1693],{"class":1258},[1144,2610,1316],{"class":1269},[1144,2612,2613],{"class":1146,"line":1543},[1144,2614,1519],{"emptyLinePlaceholder":21},[1144,2616,2617,2619,2621,2623],{"class":1146,"line":1554},[1144,2618,1738],{"class":1247},[1144,2620,1630],{"class":1254},[1144,2622,1259],{"class":1269},[1144,2624,1263],{"class":1262},[1144,2626,2627,2629,2631,2633,2635,2637,2640,2642,2644],{"class":1146,"line":1454},[1144,2628,1749],{"class":1269},[1144,2630,1273],{"class":1262},[1144,2632,1656],{"class":1254},[1144,2634,1259],{"class":1269},[1144,2636,1288],{"class":1262},[1144,2638,2639],{"class":1153},"google\u002Fgemini-3-flash",[1144,2641,1288],{"class":1262},[1144,2643,1696],{"class":1269},[1144,2645,1291],{"class":1262},[1144,2647,2648,2650,2652,2654,2656,2658],{"class":1146,"line":1577},[1144,2649,1784],{"class":1269},[1144,2651,1273],{"class":1262},[1144,2653,1476],{"class":1262},[1144,2655,1791],{"class":1153},[1144,2657,1288],{"class":1262},[1144,2659,1291],{"class":1262},[1144,2661,2662,2664,2666,2668,2670,2672,2674,2676],{"class":1146,"line":1585},[1144,2663,1800],{"class":1269},[1144,2665,1273],{"class":1262},[1144,2667,1720],{"class":1247},[1144,2669,1636],{"class":1254},[1144,2671,1259],{"class":1269},[1144,2673,1811],{"class":1258},[1144,2675,1696],{"class":1269},[1144,2677,1291],{"class":1262},[1144,2679,2680,2682,2684],{"class":1146,"line":1590},[1144,2681,2445],{"class":1269},[1144,2683,1273],{"class":1262},[1144,2685,1702],{"class":1262},[1144,2687,2688,2691,2693,2695,2697,2699,2701,2704,2706,2708],{"class":1146,"line":1832},[1144,2689,2690],{"class":1269},"      google_search",[1144,2692,1273],{"class":1262},[1144,2694,2533],{"class":1258},[1144,2696,1823],{"class":1262},[1144,2698,2463],{"class":1258},[1144,2700,1823],{"class":1262},[1144,2702,2703],{"class":1254},"googleSearch",[1144,2705,1259],{"class":1269},[1144,2707,2473],{"class":1262},[1144,2709,1316],{"class":1269},[1144,2711,2712],{"class":1146,"line":2060},[1144,2713,2220],{"class":1262},[1144,2715,2716,2718,2720,2722,2724],{"class":1146,"line":2070},[1144,2717,1818],{"class":1262},[1144,2719,1696],{"class":1269},[1144,2721,1823],{"class":1262},[1144,2723,1826],{"class":1254},[1144,2725,1829],{"class":1269},[1144,2727,2728,2730],{"class":1146,"line":2085},[1144,2729,1313],{"class":1262},[1144,2731,1316],{"class":1258},[1135,2733,2735],{"className":1237,"code":2734,"filename":1869,"language":1240,"meta":1126,"style":1126},"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",[993,2736,2737,2759,2779,2797,2801,2823,2845,2849,2859,2880,2894,2912,2920,2943,2947,2959],{"__ignoreMap":1126},[1144,2738,2739,2741,2743,2745,2747,2749,2751,2753,2755,2757],{"class":1146,"line":1147},[1144,2740,1461],{"class":1247},[1144,2742,1464],{"class":1262},[1144,2744,1630],{"class":1258},[1144,2746,1633],{"class":1262},[1144,2748,1636],{"class":1258},[1144,2750,1470],{"class":1262},[1144,2752,1473],{"class":1247},[1144,2754,1476],{"class":1262},[1144,2756,1645],{"class":1153},[1144,2758,1301],{"class":1262},[1144,2760,2761,2763,2765,2768,2770,2772,2774,2777],{"class":1146,"line":1266},[1144,2762,1461],{"class":1247},[1144,2764,1464],{"class":1262},[1144,2766,2767],{"class":1258}," openai",[1144,2769,1470],{"class":1262},[1144,2771,1473],{"class":1247},[1144,2773,1476],{"class":1262},[1144,2775,2776],{"class":1153},"@ai-sdk\u002Fopenai",[1144,2778,1301],{"class":1262},[1144,2780,2781,2783,2785,2787,2789,2791,2793,2795],{"class":1146,"line":1279},[1144,2782,1461],{"class":1247},[1144,2784,1464],{"class":1262},[1144,2786,1656],{"class":1258},[1144,2788,1470],{"class":1262},[1144,2790,1473],{"class":1247},[1144,2792,1476],{"class":1262},[1144,2794,1665],{"class":1153},[1144,2796,1301],{"class":1262},[1144,2798,2799],{"class":1146,"line":1294},[1144,2800,1519],{"emptyLinePlaceholder":21},[1144,2802,2803,2805,2807,2809,2811,2813,2815,2817,2819,2821],{"class":1146,"line":1304},[1144,2804,1248],{"class":1247},[1144,2806,1251],{"class":1247},[1144,2808,1680],{"class":1254},[1144,2810,1259],{"class":1258},[1144,2812,1686],{"class":1685},[1144,2814,1689],{"class":1262},[1144,2816,1693],{"class":1692},[1144,2818,1696],{"class":1262},[1144,2820,1699],{"class":1685},[1144,2822,1702],{"class":1262},[1144,2824,2825,2827,2829,2831,2833,2835,2837,2839,2841,2843],{"class":1146,"line":1310},[1144,2826,1707],{"class":1685},[1144,2828,1464],{"class":1262},[1144,2830,1712],{"class":1258},[1144,2832,1470],{"class":1262},[1144,2834,1717],{"class":1262},[1144,2836,1720],{"class":1247},[1144,2838,1723],{"class":1254},[1144,2840,1259],{"class":1269},[1144,2842,1693],{"class":1258},[1144,2844,1316],{"class":1269},[1144,2846,2847],{"class":1146,"line":1543},[1144,2848,1519],{"emptyLinePlaceholder":21},[1144,2850,2851,2853,2855,2857],{"class":1146,"line":1554},[1144,2852,1738],{"class":1247},[1144,2854,1630],{"class":1254},[1144,2856,1259],{"class":1269},[1144,2858,1263],{"class":1262},[1144,2860,2861,2863,2865,2867,2869,2871,2874,2876,2878],{"class":1146,"line":1454},[1144,2862,1749],{"class":1269},[1144,2864,1273],{"class":1262},[1144,2866,1656],{"class":1254},[1144,2868,1259],{"class":1269},[1144,2870,1288],{"class":1262},[1144,2872,2873],{"class":1153},"openai\u002Fgpt-5-nano",[1144,2875,1288],{"class":1262},[1144,2877,1696],{"class":1269},[1144,2879,1291],{"class":1262},[1144,2881,2882,2884,2886,2888,2890,2892],{"class":1146,"line":1577},[1144,2883,1784],{"class":1269},[1144,2885,1273],{"class":1262},[1144,2887,1476],{"class":1262},[1144,2889,1791],{"class":1153},[1144,2891,1288],{"class":1262},[1144,2893,1291],{"class":1262},[1144,2895,2896,2898,2900,2902,2904,2906,2908,2910],{"class":1146,"line":1585},[1144,2897,1800],{"class":1269},[1144,2899,1273],{"class":1262},[1144,2901,1720],{"class":1247},[1144,2903,1636],{"class":1254},[1144,2905,1259],{"class":1269},[1144,2907,1811],{"class":1258},[1144,2909,1696],{"class":1269},[1144,2911,1291],{"class":1262},[1144,2913,2914,2916,2918],{"class":1146,"line":1590},[1144,2915,2445],{"class":1269},[1144,2917,1273],{"class":1262},[1144,2919,1702],{"class":1262},[1144,2921,2922,2924,2926,2928,2930,2932,2934,2937,2939,2941],{"class":1146,"line":1832},[1144,2923,2454],{"class":1269},[1144,2925,1273],{"class":1262},[1144,2927,2767],{"class":1258},[1144,2929,1823],{"class":1262},[1144,2931,2463],{"class":1258},[1144,2933,1823],{"class":1262},[1144,2935,2936],{"class":1254},"webSearch",[1144,2938,1259],{"class":1269},[1144,2940,2473],{"class":1262},[1144,2942,1316],{"class":1269},[1144,2944,2945],{"class":1146,"line":2060},[1144,2946,2220],{"class":1262},[1144,2948,2949,2951,2953,2955,2957],{"class":1146,"line":2070},[1144,2950,1818],{"class":1262},[1144,2952,1696],{"class":1269},[1144,2954,1823],{"class":1262},[1144,2956,1826],{"class":1254},[1144,2958,1829],{"class":1269},[1144,2960,2961,2963],{"class":1146,"line":2085},[1144,2962,1313],{"class":1262},[1144,2964,1316],{"class":1258},[1838,2966,2968],{"id":2967},"mcp-client","MCP Client",[970,2970,2971,2972,2977,2978,2981],{},"Empower your chatbot with advanced tool-calling features using the ",[974,2973,2976],{"href":2974,"rel":2975},"https:\u002F\u002Fai-sdk.dev\u002Fdocs\u002Fai-sdk-core\u002Fmcp-tools",[978],"Model Context Protocol (MCP)"," from ",[993,2979,2980],{},"@ai-sdk\u002Fmcp",". MCP enables your AI to perform dynamic actions, such as searching your documentation or executing custom tasks, to provide more relevant and accurate responses.",[970,2983,2984],{},"To get started, install the MCP package:",[1131,2986,2987,3001,3014],{},[1135,2988,2990],{"className":1137,"code":2989,"filename":1190,"language":1140,"meta":1126,"style":1126},"npm install @ai-sdk\u002Fmcp\n",[993,2991,2992],{"__ignoreMap":1126},[1144,2993,2994,2996,2998],{"class":1146,"line":1147},[1144,2995,1190],{"class":1150},[1144,2997,1199],{"class":1153},[1144,2999,3000],{"class":1153}," @ai-sdk\u002Fmcp\n",[1135,3002,3004],{"className":1137,"code":3003,"filename":1139,"language":1140,"meta":1126,"style":1126},"pnpm add @ai-sdk\u002Fmcp\n",[993,3005,3006],{"__ignoreMap":1126},[1144,3007,3008,3010,3012],{"class":1146,"line":1147},[1144,3009,1139],{"class":1150},[1144,3011,1154],{"class":1153},[1144,3013,3000],{"class":1153},[1135,3015,3017],{"className":1137,"code":3016,"filename":1170,"language":1140,"meta":1126,"style":1126},"yarn add @ai-sdk\u002Fmcp\n",[993,3018,3019],{"__ignoreMap":1126},[1144,3020,3021,3023,3025],{"class":1146,"line":1147},[1144,3022,1170],{"class":1150},[1144,3024,1154],{"class":1153},[1144,3026,3000],{"class":1153},[970,3028,3029],{},"Then, configure your server endpoint to use MCP tools:",[1135,3031,3033],{"className":1237,"code":3032,"filename":1619,"language":1240,"meta":1126,"style":1126},"import { streamText, convertToModelMessages, stepCountIs } from 'ai'\nimport { 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 httpClient = await createMCPClient({\n    transport: { type: 'http', url: 'https:\u002F\u002Fyour-app.com\u002Fmcp' }\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",[993,3034,3035,3062,3081,3099,3103,3125,3147,3151,3168,3206,3212,3231,3235,3245,3265,3275,3290,3308,3326,3332,3349,3363,3368,3388,3403,3415,3419,3431],{"__ignoreMap":1126},[1144,3036,3037,3039,3041,3043,3045,3047,3049,3052,3054,3056,3058,3060],{"class":1146,"line":1147},[1144,3038,1461],{"class":1247},[1144,3040,1464],{"class":1262},[1144,3042,1630],{"class":1258},[1144,3044,1633],{"class":1262},[1144,3046,1636],{"class":1258},[1144,3048,1633],{"class":1262},[1144,3050,3051],{"class":1258}," stepCountIs",[1144,3053,1470],{"class":1262},[1144,3055,1473],{"class":1247},[1144,3057,1476],{"class":1262},[1144,3059,1645],{"class":1153},[1144,3061,1301],{"class":1262},[1144,3063,3064,3066,3068,3071,3073,3075,3077,3079],{"class":1146,"line":1266},[1144,3065,1461],{"class":1247},[1144,3067,1464],{"class":1262},[1144,3069,3070],{"class":1258}," createMCPClient",[1144,3072,1470],{"class":1262},[1144,3074,1473],{"class":1247},[1144,3076,1476],{"class":1262},[1144,3078,2980],{"class":1153},[1144,3080,1301],{"class":1262},[1144,3082,3083,3085,3087,3089,3091,3093,3095,3097],{"class":1146,"line":1279},[1144,3084,1461],{"class":1247},[1144,3086,1464],{"class":1262},[1144,3088,1656],{"class":1258},[1144,3090,1470],{"class":1262},[1144,3092,1473],{"class":1247},[1144,3094,1476],{"class":1262},[1144,3096,1665],{"class":1153},[1144,3098,1301],{"class":1262},[1144,3100,3101],{"class":1146,"line":1294},[1144,3102,1519],{"emptyLinePlaceholder":21},[1144,3104,3105,3107,3109,3111,3113,3115,3117,3119,3121,3123],{"class":1146,"line":1304},[1144,3106,1248],{"class":1247},[1144,3108,1251],{"class":1247},[1144,3110,1680],{"class":1254},[1144,3112,1259],{"class":1258},[1144,3114,1686],{"class":1685},[1144,3116,1689],{"class":1262},[1144,3118,1693],{"class":1692},[1144,3120,1696],{"class":1262},[1144,3122,1699],{"class":1685},[1144,3124,1702],{"class":1262},[1144,3126,3127,3129,3131,3133,3135,3137,3139,3141,3143,3145],{"class":1146,"line":1310},[1144,3128,1707],{"class":1685},[1144,3130,1464],{"class":1262},[1144,3132,1712],{"class":1258},[1144,3134,1470],{"class":1262},[1144,3136,1717],{"class":1262},[1144,3138,1720],{"class":1247},[1144,3140,1723],{"class":1254},[1144,3142,1259],{"class":1269},[1144,3144,1693],{"class":1258},[1144,3146,1316],{"class":1269},[1144,3148,3149],{"class":1146,"line":1543},[1144,3150,1519],{"emptyLinePlaceholder":21},[1144,3152,3153,3155,3158,3160,3162,3164,3166],{"class":1146,"line":1554},[1144,3154,1707],{"class":1685},[1144,3156,3157],{"class":1258}," httpClient",[1144,3159,1717],{"class":1262},[1144,3161,1720],{"class":1247},[1144,3163,3070],{"class":1254},[1144,3165,1259],{"class":1269},[1144,3167,1263],{"class":1262},[1144,3169,3170,3173,3175,3177,3180,3182,3184,3187,3189,3191,3194,3196,3198,3201,3203],{"class":1146,"line":1454},[1144,3171,3172],{"class":1269},"    transport",[1144,3174,1273],{"class":1262},[1144,3176,1464],{"class":1262},[1144,3178,3179],{"class":1269}," type",[1144,3181,1273],{"class":1262},[1144,3183,1476],{"class":1262},[1144,3185,3186],{"class":1153},"http",[1144,3188,1288],{"class":1262},[1144,3190,1633],{"class":1262},[1144,3192,3193],{"class":1269}," url",[1144,3195,1273],{"class":1262},[1144,3197,1476],{"class":1262},[1144,3199,3200],{"class":1153},"https:\u002F\u002Fyour-app.com\u002Fmcp",[1144,3202,1288],{"class":1262},[1144,3204,3205],{"class":1262}," }\n",[1144,3207,3208,3210],{"class":1146,"line":1577},[1144,3209,1818],{"class":1262},[1144,3211,1316],{"class":1269},[1144,3213,3214,3216,3219,3221,3223,3225,3227,3229],{"class":1146,"line":1585},[1144,3215,1707],{"class":1685},[1144,3217,3218],{"class":1258}," tools",[1144,3220,1717],{"class":1262},[1144,3222,1720],{"class":1247},[1144,3224,3157],{"class":1258},[1144,3226,1823],{"class":1262},[1144,3228,2463],{"class":1254},[1144,3230,1829],{"class":1269},[1144,3232,3233],{"class":1146,"line":1590},[1144,3234,1519],{"emptyLinePlaceholder":21},[1144,3236,3237,3239,3241,3243],{"class":1146,"line":1832},[1144,3238,1738],{"class":1247},[1144,3240,1630],{"class":1254},[1144,3242,1259],{"class":1269},[1144,3244,1263],{"class":1262},[1144,3246,3247,3249,3251,3253,3255,3257,3259,3261,3263],{"class":1146,"line":2060},[1144,3248,1749],{"class":1269},[1144,3250,1273],{"class":1262},[1144,3252,1656],{"class":1254},[1144,3254,1259],{"class":1269},[1144,3256,1288],{"class":1262},[1144,3258,1760],{"class":1153},[1144,3260,1288],{"class":1262},[1144,3262,1696],{"class":1269},[1144,3264,1291],{"class":1262},[1144,3266,3267,3269,3271,3273],{"class":1146,"line":2070},[1144,3268,1771],{"class":1269},[1144,3270,1273],{"class":1262},[1144,3272,1777],{"class":1776},[1144,3274,1291],{"class":1262},[1144,3276,3277,3279,3281,3283,3286,3288],{"class":1146,"line":2085},[1144,3278,1784],{"class":1269},[1144,3280,1273],{"class":1262},[1144,3282,1476],{"class":1262},[1144,3284,3285],{"class":1153},"You are a helpful assistant. Use your tools to search for relevant information before answering questions.",[1144,3287,1288],{"class":1262},[1144,3289,1291],{"class":1262},[1144,3291,3292,3294,3296,3298,3300,3302,3304,3306],{"class":1146,"line":2091},[1144,3293,1800],{"class":1269},[1144,3295,1273],{"class":1262},[1144,3297,1720],{"class":1247},[1144,3299,1636],{"class":1254},[1144,3301,1259],{"class":1269},[1144,3303,1811],{"class":1258},[1144,3305,1696],{"class":1269},[1144,3307,1291],{"class":1262},[1144,3309,3310,3313,3315,3317,3319,3322,3324],{"class":1146,"line":2106},[1144,3311,3312],{"class":1269},"    stopWhen",[1144,3314,1273],{"class":1262},[1144,3316,3051],{"class":1254},[1144,3318,1259],{"class":1269},[1144,3320,3321],{"class":1776},"6",[1144,3323,1696],{"class":1269},[1144,3325,1291],{"class":1262},[1144,3327,3328,3330],{"class":1146,"line":2112},[1144,3329,2445],{"class":1258},[1144,3331,1291],{"class":1262},[1144,3333,3334,3337,3339,3342,3345,3347],{"class":1146,"line":2122},[1144,3335,3336],{"class":1254},"    onFinish",[1144,3338,1273],{"class":1262},[1144,3340,3341],{"class":1685}," async",[1144,3343,3344],{"class":1262}," ()",[1144,3346,1699],{"class":1685},[1144,3348,1702],{"class":1262},[1144,3350,3351,3354,3356,3358,3361],{"class":1146,"line":2132},[1144,3352,3353],{"class":1247},"      await",[1144,3355,3157],{"class":1258},[1144,3357,1823],{"class":1262},[1144,3359,3360],{"class":1254},"close",[1144,3362,1829],{"class":1269},[1144,3364,3365],{"class":1146,"line":2145},[1144,3366,3367],{"class":1262},"    },\n",[1144,3369,3370,3373,3375,3377,3379,3382,3384,3386],{"class":1146,"line":2159},[1144,3371,3372],{"class":1254},"    onError",[1144,3374,1273],{"class":1262},[1144,3376,3341],{"class":1685},[1144,3378,1689],{"class":1262},[1144,3380,3381],{"class":1692},"error",[1144,3383,1696],{"class":1262},[1144,3385,1699],{"class":1685},[1144,3387,1702],{"class":1262},[1144,3389,3390,3393,3395,3397,3399,3401],{"class":1146,"line":2165},[1144,3391,3392],{"class":1258},"      console",[1144,3394,1823],{"class":1262},[1144,3396,3381],{"class":1254},[1144,3398,1259],{"class":1269},[1144,3400,3381],{"class":1258},[1144,3402,1316],{"class":1269},[1144,3404,3405,3407,3409,3411,3413],{"class":1146,"line":2170},[1144,3406,3353],{"class":1247},[1144,3408,3157],{"class":1258},[1144,3410,1823],{"class":1262},[1144,3412,3360],{"class":1254},[1144,3414,1829],{"class":1269},[1144,3416,3417],{"class":1146,"line":2180},[1144,3418,2220],{"class":1262},[1144,3420,3421,3423,3425,3427,3429],{"class":1146,"line":2196},[1144,3422,1818],{"class":1262},[1144,3424,1696],{"class":1269},[1144,3426,1823],{"class":1262},[1144,3428,1826],{"class":1254},[1144,3430,1829],{"class":1269},[1144,3432,3433,3435],{"class":1146,"line":2211},[1144,3434,1313],{"class":1262},[1144,3436,1316],{"class":1258},[1006,3438,3440],{"id":3439},"client-setup","Client Setup",[970,3442,3443,3444,3446,3447,3450],{},"Use the ",[993,3445,259],{}," class from ",[993,3448,3449],{},"@ai-sdk\u002Fvue"," to manage chat state and connect to your server endpoint:",[1121,3452,3453,4462],{},[1124,3454,3455],{"v-slot:nuxt":1126},[1135,3456,3459],{"className":3457,"code":3458,"language":34,"meta":1126,"style":1126},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\">\nimport { isReasoningUIPart, isTextUIPart, isToolUIPart, getToolName } from 'ai'\nimport { Chat } from '@ai-sdk\u002Fvue'\nimport { isPartStreaming, isToolStreaming } from '@nuxt\u002Fui\u002Futils\u002Fai'\nimport highlight from '@comark\u002Fnuxt\u002Fplugins\u002Fhighlight'\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=\"isPartStreaming(part)\"\n        >\n          \u003CComark\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n        \u003C\u002FUChatReasoning>\n\n        \u003CUChatTool\n          v-else-if=\"isToolUIPart(part)\"\n          :text=\"getToolName(part)\"\n          :streaming=\"isToolStreaming(part)\"\n        \u002F>\n\n        \u003Ctemplate v-else-if=\"isTextUIPart(part)\">\n          \u003CComark\n            v-if=\"message.role === 'assistant'\"\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n          \u003Cp v-else-if=\"message.role === 'user'\" class=\"whitespace-pre-wrap\">\n            {{ part.text }}\n          \u003C\u002Fp>\n        \u003C\u002Ftemplate>\n      \u003C\u002Ftemplate>\n    \u003C\u002Ftemplate>\n  \u003C\u002FUChatMessages>\n\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",[993,3460,3461,3488,3522,3541,3566,3582,3586,3606,3610,3628,3641,3656,3661,3667,3671,3683,3715,3719,3733,3738,3747,3751,3759,3767,3782,3796,3801,3828,3836,3866,3915,3920,3929,3944,3959,3974,3980,3989,4003,4017,4032,4047,4053,4064,4069,4077,4092,4106,4120,4126,4131,4155,4162,4177,4190,4203,4216,4229,4234,4266,4272,4282,4291,4301,4311,4322,4327,4335,4350,4365,4380,4385,4393,4407,4422,4437,4443,4453],{"__ignoreMap":1126},[1144,3462,3463,3466,3469,3472,3475,3478,3481,3483,3485],{"class":1146,"line":1147},[1144,3464,3465],{"class":1262},"\u003C",[1144,3467,3468],{"class":1269},"script",[1144,3470,3471],{"class":1685}," setup",[1144,3473,3474],{"class":1685}," lang",[1144,3476,3477],{"class":1262},"=",[1144,3479,3480],{"class":1262},"\"",[1144,3482,1240],{"class":1153},[1144,3484,3480],{"class":1262},[1144,3486,3487],{"class":1262},">\n",[1144,3489,3490,3492,3494,3497,3499,3502,3504,3507,3509,3512,3514,3516,3518,3520],{"class":1146,"line":1266},[1144,3491,1461],{"class":1247},[1144,3493,1464],{"class":1262},[1144,3495,3496],{"class":1258}," isReasoningUIPart",[1144,3498,1633],{"class":1262},[1144,3500,3501],{"class":1258}," isTextUIPart",[1144,3503,1633],{"class":1262},[1144,3505,3506],{"class":1258}," isToolUIPart",[1144,3508,1633],{"class":1262},[1144,3510,3511],{"class":1258}," getToolName",[1144,3513,1470],{"class":1262},[1144,3515,1473],{"class":1247},[1144,3517,1476],{"class":1262},[1144,3519,1645],{"class":1153},[1144,3521,1301],{"class":1262},[1144,3523,3524,3526,3528,3531,3533,3535,3537,3539],{"class":1146,"line":1279},[1144,3525,1461],{"class":1247},[1144,3527,1464],{"class":1262},[1144,3529,3530],{"class":1258}," Chat",[1144,3532,1470],{"class":1262},[1144,3534,1473],{"class":1247},[1144,3536,1476],{"class":1262},[1144,3538,3449],{"class":1153},[1144,3540,1301],{"class":1262},[1144,3542,3543,3545,3547,3550,3552,3555,3557,3559,3561,3564],{"class":1146,"line":1294},[1144,3544,1461],{"class":1247},[1144,3546,1464],{"class":1262},[1144,3548,3549],{"class":1258}," isPartStreaming",[1144,3551,1633],{"class":1262},[1144,3553,3554],{"class":1258}," isToolStreaming",[1144,3556,1470],{"class":1262},[1144,3558,1473],{"class":1247},[1144,3560,1476],{"class":1262},[1144,3562,3563],{"class":1153},"@nuxt\u002Fui\u002Futils\u002Fai",[1144,3565,1301],{"class":1262},[1144,3567,3568,3570,3573,3575,3577,3580],{"class":1146,"line":1304},[1144,3569,1461],{"class":1247},[1144,3571,3572],{"class":1258}," highlight ",[1144,3574,1491],{"class":1247},[1144,3576,1476],{"class":1262},[1144,3578,3579],{"class":1153},"@comark\u002Fnuxt\u002Fplugins\u002Fhighlight",[1144,3581,1301],{"class":1262},[1144,3583,3584],{"class":1146,"line":1310},[1144,3585,1519],{"emptyLinePlaceholder":21},[1144,3587,3588,3591,3594,3596,3599,3601,3604],{"class":1146,"line":1543},[1144,3589,3590],{"class":1685},"const",[1144,3592,3593],{"class":1258}," input ",[1144,3595,3477],{"class":1262},[1144,3597,3598],{"class":1254}," ref",[1144,3600,1259],{"class":1258},[1144,3602,3603],{"class":1262},"''",[1144,3605,1316],{"class":1258},[1144,3607,3608],{"class":1146,"line":1554},[1144,3609,1519],{"emptyLinePlaceholder":21},[1144,3611,3612,3614,3617,3619,3622,3624,3626],{"class":1146,"line":1454},[1144,3613,3590],{"class":1685},[1144,3615,3616],{"class":1258}," chat ",[1144,3618,3477],{"class":1262},[1144,3620,3621],{"class":1262}," new",[1144,3623,3530],{"class":1254},[1144,3625,1259],{"class":1258},[1144,3627,1263],{"class":1262},[1144,3629,3630,3633,3635,3637,3639],{"class":1146,"line":1577},[1144,3631,3632],{"class":1269},"  onError",[1144,3634,1259],{"class":1262},[1144,3636,3381],{"class":1692},[1144,3638,1696],{"class":1262},[1144,3640,1702],{"class":1262},[1144,3642,3643,3646,3648,3650,3652,3654],{"class":1146,"line":1585},[1144,3644,3645],{"class":1258},"    console",[1144,3647,1823],{"class":1262},[1144,3649,3381],{"class":1254},[1144,3651,1259],{"class":1269},[1144,3653,3381],{"class":1258},[1144,3655,1316],{"class":1269},[1144,3657,3658],{"class":1146,"line":1590},[1144,3659,3660],{"class":1262},"  }\n",[1144,3662,3663,3665],{"class":1146,"line":1832},[1144,3664,1313],{"class":1262},[1144,3666,1316],{"class":1258},[1144,3668,3669],{"class":1146,"line":2060},[1144,3670,1519],{"emptyLinePlaceholder":21},[1144,3672,3673,3676,3679,3681],{"class":1146,"line":2070},[1144,3674,3675],{"class":1685},"function",[1144,3677,3678],{"class":1254}," onSubmit",[1144,3680,1549],{"class":1262},[1144,3682,1702],{"class":1262},[1144,3684,3685,3688,3690,3693,3695,3698,3701,3703,3706,3708,3711,3713],{"class":1146,"line":2085},[1144,3686,3687],{"class":1258},"  chat",[1144,3689,1823],{"class":1262},[1144,3691,3692],{"class":1254},"sendMessage",[1144,3694,1259],{"class":1269},[1144,3696,3697],{"class":1262},"{",[1144,3699,3700],{"class":1269}," text",[1144,3702,1273],{"class":1262},[1144,3704,3705],{"class":1258}," input",[1144,3707,1823],{"class":1262},[1144,3709,3710],{"class":1258},"value",[1144,3712,1470],{"class":1262},[1144,3714,1316],{"class":1269},[1144,3716,3717],{"class":1146,"line":2091},[1144,3718,1519],{"emptyLinePlaceholder":21},[1144,3720,3721,3724,3726,3728,3730],{"class":1146,"line":2106},[1144,3722,3723],{"class":1258},"  input",[1144,3725,1823],{"class":1262},[1144,3727,3710],{"class":1258},[1144,3729,1717],{"class":1262},[1144,3731,3732],{"class":1262}," ''\n",[1144,3734,3735],{"class":1146,"line":2112},[1144,3736,3737],{"class":1262},"}\n",[1144,3739,3740,3743,3745],{"class":1146,"line":2122},[1144,3741,3742],{"class":1262},"\u003C\u002F",[1144,3744,3468],{"class":1269},[1144,3746,3487],{"class":1262},[1144,3748,3749],{"class":1146,"line":2132},[1144,3750,1519],{"emptyLinePlaceholder":21},[1144,3752,3753,3755,3757],{"class":1146,"line":2145},[1144,3754,3465],{"class":1262},[1144,3756,1124],{"class":1269},[1144,3758,3487],{"class":1262},[1144,3760,3761,3764],{"class":1146,"line":2159},[1144,3762,3763],{"class":1262},"  \u003C",[1144,3765,3766],{"class":1269},"UChatMessages\n",[1144,3768,3769,3772,3774,3776,3779],{"class":1146,"line":2165},[1144,3770,3771],{"class":1685},"    :messages",[1144,3773,3477],{"class":1262},[1144,3775,3480],{"class":1262},[1144,3777,3778],{"class":1153},"chat.messages",[1144,3780,3781],{"class":1262},"\"\n",[1144,3783,3784,3787,3789,3791,3794],{"class":1146,"line":2170},[1144,3785,3786],{"class":1685},"    :status",[1144,3788,3477],{"class":1262},[1144,3790,3480],{"class":1262},[1144,3792,3793],{"class":1153},"chat.status",[1144,3795,3781],{"class":1262},[1144,3797,3798],{"class":1146,"line":2180},[1144,3799,3800],{"class":1262},"  >\n",[1144,3802,3803,3806,3808,3811,3813,3815,3817,3819,3822,3824,3826],{"class":1146,"line":2196},[1144,3804,3805],{"class":1262},"    \u003C",[1144,3807,1124],{"class":1269},[1144,3809,3810],{"class":1262}," #",[1144,3812,371],{"class":1685},[1144,3814,3477],{"class":1262},[1144,3816,3480],{"class":1262},[1144,3818,3697],{"class":1262},[1144,3820,3821],{"class":1258}," message ",[1144,3823,1313],{"class":1262},[1144,3825,3480],{"class":1262},[1144,3827,3487],{"class":1262},[1144,3829,3830,3833],{"class":1146,"line":2211},[1144,3831,3832],{"class":1262},"      \u003C",[1144,3834,3835],{"class":1269},"template\n",[1144,3837,3838,3841,3843,3845,3848,3850,3853,3856,3859,3861,3864],{"class":1146,"line":2217},[1144,3839,3840],{"class":1247},"        v-for",[1144,3842,3477],{"class":1262},[1144,3844,3480],{"class":1262},[1144,3846,3847],{"class":1258},"(part",[1144,3849,1633],{"class":1262},[1144,3851,3852],{"class":1258}," index) ",[1144,3854,3855],{"class":1262},"in",[1144,3857,3858],{"class":1258}," message",[1144,3860,1823],{"class":1262},[1144,3862,3863],{"class":1258},"parts",[1144,3865,3781],{"class":1262},[1144,3867,3868,3871,3874,3876,3879,3882,3884,3887,3889,3892,3895,3898,3900,3903,3905,3907,3909,3912],{"class":1146,"line":2223},[1144,3869,3870],{"class":1262},"        :",[1144,3872,3873],{"class":1685},"key",[1144,3875,3477],{"class":1262},[1144,3877,3878],{"class":1262},"\"`${",[1144,3880,3881],{"class":1258},"message",[1144,3883,1823],{"class":1262},[1144,3885,3886],{"class":1258},"id",[1144,3888,1313],{"class":1262},[1144,3890,3891],{"class":1153},"-",[1144,3893,3894],{"class":1262},"${",[1144,3896,3897],{"class":1258},"part",[1144,3899,1823],{"class":1262},[1144,3901,3902],{"class":1258},"type",[1144,3904,1313],{"class":1262},[1144,3906,3891],{"class":1153},[1144,3908,3894],{"class":1262},[1144,3910,3911],{"class":1258},"index",[1144,3913,3914],{"class":1262},"}`\"\n",[1144,3916,3917],{"class":1146,"line":2236},[1144,3918,3919],{"class":1262},"      >\n",[1144,3921,3923,3926],{"class":1146,"line":3922},32,[1144,3924,3925],{"class":1262},"        \u003C",[1144,3927,3928],{"class":1269},"UChatReasoning\n",[1144,3930,3932,3935,3937,3939,3942],{"class":1146,"line":3931},33,[1144,3933,3934],{"class":1685},"          v-if",[1144,3936,3477],{"class":1262},[1144,3938,3480],{"class":1262},[1144,3940,3941],{"class":1153},"isReasoningUIPart(part)",[1144,3943,3781],{"class":1262},[1144,3945,3947,3950,3952,3954,3957],{"class":1146,"line":3946},34,[1144,3948,3949],{"class":1685},"          :text",[1144,3951,3477],{"class":1262},[1144,3953,3480],{"class":1262},[1144,3955,3956],{"class":1153},"part.text",[1144,3958,3781],{"class":1262},[1144,3960,3962,3965,3967,3969,3972],{"class":1146,"line":3961},35,[1144,3963,3964],{"class":1685},"          :streaming",[1144,3966,3477],{"class":1262},[1144,3968,3480],{"class":1262},[1144,3970,3971],{"class":1153},"isPartStreaming(part)",[1144,3973,3781],{"class":1262},[1144,3975,3977],{"class":1146,"line":3976},36,[1144,3978,3979],{"class":1262},"        >\n",[1144,3981,3983,3986],{"class":1146,"line":3982},37,[1144,3984,3985],{"class":1262},"          \u003C",[1144,3987,3988],{"class":1269},"Comark\n",[1144,3990,3992,3995,3997,3999,4001],{"class":1146,"line":3991},38,[1144,3993,3994],{"class":1685},"            :markdown",[1144,3996,3477],{"class":1262},[1144,3998,3480],{"class":1262},[1144,4000,3956],{"class":1153},[1144,4002,3781],{"class":1262},[1144,4004,4006,4009,4011,4013,4015],{"class":1146,"line":4005},39,[1144,4007,4008],{"class":1685},"            :streaming",[1144,4010,3477],{"class":1262},[1144,4012,3480],{"class":1262},[1144,4014,3971],{"class":1153},[1144,4016,3781],{"class":1262},[1144,4018,4020,4023,4025,4027,4030],{"class":1146,"line":4019},40,[1144,4021,4022],{"class":1685},"            :plugins",[1144,4024,3477],{"class":1262},[1144,4026,3480],{"class":1262},[1144,4028,4029],{"class":1153},"[highlight()]",[1144,4031,3781],{"class":1262},[1144,4033,4035,4038,4040,4042,4045],{"class":1146,"line":4034},41,[1144,4036,4037],{"class":1685},"            class",[1144,4039,3477],{"class":1262},[1144,4041,3480],{"class":1262},[1144,4043,4044],{"class":1153},"*:first:mt-0 *:last:mb-0",[1144,4046,3781],{"class":1262},[1144,4048,4050],{"class":1146,"line":4049},42,[1144,4051,4052],{"class":1262},"          \u002F>\n",[1144,4054,4056,4059,4062],{"class":1146,"line":4055},43,[1144,4057,4058],{"class":1262},"        \u003C\u002F",[1144,4060,4061],{"class":1269},"UChatReasoning",[1144,4063,3487],{"class":1262},[1144,4065,4067],{"class":1146,"line":4066},44,[1144,4068,1519],{"emptyLinePlaceholder":21},[1144,4070,4072,4074],{"class":1146,"line":4071},45,[1144,4073,3925],{"class":1262},[1144,4075,4076],{"class":1269},"UChatTool\n",[1144,4078,4080,4083,4085,4087,4090],{"class":1146,"line":4079},46,[1144,4081,4082],{"class":1685},"          v-else-if",[1144,4084,3477],{"class":1262},[1144,4086,3480],{"class":1262},[1144,4088,4089],{"class":1153},"isToolUIPart(part)",[1144,4091,3781],{"class":1262},[1144,4093,4095,4097,4099,4101,4104],{"class":1146,"line":4094},47,[1144,4096,3949],{"class":1685},[1144,4098,3477],{"class":1262},[1144,4100,3480],{"class":1262},[1144,4102,4103],{"class":1153},"getToolName(part)",[1144,4105,3781],{"class":1262},[1144,4107,4109,4111,4113,4115,4118],{"class":1146,"line":4108},48,[1144,4110,3964],{"class":1685},[1144,4112,3477],{"class":1262},[1144,4114,3480],{"class":1262},[1144,4116,4117],{"class":1153},"isToolStreaming(part)",[1144,4119,3781],{"class":1262},[1144,4121,4123],{"class":1146,"line":4122},49,[1144,4124,4125],{"class":1262},"        \u002F>\n",[1144,4127,4129],{"class":1146,"line":4128},50,[1144,4130,1519],{"emptyLinePlaceholder":21},[1144,4132,4134,4136,4138,4141,4143,4145,4148,4151,4153],{"class":1146,"line":4133},51,[1144,4135,3925],{"class":1262},[1144,4137,1124],{"class":1269},[1144,4139,4140],{"class":1247}," v-else-if",[1144,4142,3477],{"class":1262},[1144,4144,3480],{"class":1262},[1144,4146,4147],{"class":1254},"isTextUIPart",[1144,4149,4150],{"class":1258},"(part)",[1144,4152,3480],{"class":1262},[1144,4154,3487],{"class":1262},[1144,4156,4158,4160],{"class":1146,"line":4157},52,[1144,4159,3985],{"class":1262},[1144,4161,3988],{"class":1269},[1144,4163,4165,4168,4170,4172,4175],{"class":1146,"line":4164},53,[1144,4166,4167],{"class":1685},"            v-if",[1144,4169,3477],{"class":1262},[1144,4171,3480],{"class":1262},[1144,4173,4174],{"class":1153},"message.role === 'assistant'",[1144,4176,3781],{"class":1262},[1144,4178,4180,4182,4184,4186,4188],{"class":1146,"line":4179},54,[1144,4181,3994],{"class":1685},[1144,4183,3477],{"class":1262},[1144,4185,3480],{"class":1262},[1144,4187,3956],{"class":1153},[1144,4189,3781],{"class":1262},[1144,4191,4193,4195,4197,4199,4201],{"class":1146,"line":4192},55,[1144,4194,4008],{"class":1685},[1144,4196,3477],{"class":1262},[1144,4198,3480],{"class":1262},[1144,4200,3971],{"class":1153},[1144,4202,3781],{"class":1262},[1144,4204,4206,4208,4210,4212,4214],{"class":1146,"line":4205},56,[1144,4207,4022],{"class":1685},[1144,4209,3477],{"class":1262},[1144,4211,3480],{"class":1262},[1144,4213,4029],{"class":1153},[1144,4215,3781],{"class":1262},[1144,4217,4219,4221,4223,4225,4227],{"class":1146,"line":4218},57,[1144,4220,4037],{"class":1685},[1144,4222,3477],{"class":1262},[1144,4224,3480],{"class":1262},[1144,4226,4044],{"class":1153},[1144,4228,3781],{"class":1262},[1144,4230,4232],{"class":1146,"line":4231},58,[1144,4233,4052],{"class":1262},[1144,4235,4237,4239,4241,4243,4245,4247,4250,4252,4255,4257,4259,4262,4264],{"class":1146,"line":4236},59,[1144,4238,3985],{"class":1262},[1144,4240,970],{"class":1269},[1144,4242,4140],{"class":1685},[1144,4244,3477],{"class":1262},[1144,4246,3480],{"class":1262},[1144,4248,4249],{"class":1153},"message.role === 'user'",[1144,4251,3480],{"class":1262},[1144,4253,4254],{"class":1685}," class",[1144,4256,3477],{"class":1262},[1144,4258,3480],{"class":1262},[1144,4260,4261],{"class":1153},"whitespace-pre-wrap",[1144,4263,3480],{"class":1262},[1144,4265,3487],{"class":1262},[1144,4267,4269],{"class":1146,"line":4268},60,[1144,4270,4271],{"class":1258},"            {{ part.text }}\n",[1144,4273,4275,4278,4280],{"class":1146,"line":4274},61,[1144,4276,4277],{"class":1262},"          \u003C\u002F",[1144,4279,970],{"class":1269},[1144,4281,3487],{"class":1262},[1144,4283,4285,4287,4289],{"class":1146,"line":4284},62,[1144,4286,4058],{"class":1262},[1144,4288,1124],{"class":1269},[1144,4290,3487],{"class":1262},[1144,4292,4294,4297,4299],{"class":1146,"line":4293},63,[1144,4295,4296],{"class":1262},"      \u003C\u002F",[1144,4298,1124],{"class":1269},[1144,4300,3487],{"class":1262},[1144,4302,4304,4307,4309],{"class":1146,"line":4303},64,[1144,4305,4306],{"class":1262},"    \u003C\u002F",[1144,4308,1124],{"class":1269},[1144,4310,3487],{"class":1262},[1144,4312,4314,4317,4320],{"class":1146,"line":4313},65,[1144,4315,4316],{"class":1262},"  \u003C\u002F",[1144,4318,4319],{"class":1269},"UChatMessages",[1144,4321,3487],{"class":1262},[1144,4323,4325],{"class":1146,"line":4324},66,[1144,4326,1519],{"emptyLinePlaceholder":21},[1144,4328,4330,4332],{"class":1146,"line":4329},67,[1144,4331,3763],{"class":1262},[1144,4333,4334],{"class":1269},"UChatPrompt\n",[1144,4336,4338,4341,4343,4345,4348],{"class":1146,"line":4337},68,[1144,4339,4340],{"class":1685},"    v-model",[1144,4342,3477],{"class":1262},[1144,4344,3480],{"class":1262},[1144,4346,4347],{"class":1153},"input",[1144,4349,3781],{"class":1262},[1144,4351,4353,4356,4358,4360,4363],{"class":1146,"line":4352},69,[1144,4354,4355],{"class":1685},"    :error",[1144,4357,3477],{"class":1262},[1144,4359,3480],{"class":1262},[1144,4361,4362],{"class":1153},"chat.error",[1144,4364,3781],{"class":1262},[1144,4366,4368,4371,4373,4375,4378],{"class":1146,"line":4367},70,[1144,4369,4370],{"class":1685},"    @submit",[1144,4372,3477],{"class":1262},[1144,4374,3480],{"class":1262},[1144,4376,4377],{"class":1153},"onSubmit",[1144,4379,3781],{"class":1262},[1144,4381,4383],{"class":1146,"line":4382},71,[1144,4384,3800],{"class":1262},[1144,4386,4388,4390],{"class":1146,"line":4387},72,[1144,4389,3805],{"class":1262},[1144,4391,4392],{"class":1269},"UChatPromptSubmit\n",[1144,4394,4396,4399,4401,4403,4405],{"class":1146,"line":4395},73,[1144,4397,4398],{"class":1685},"      :status",[1144,4400,3477],{"class":1262},[1144,4402,3480],{"class":1262},[1144,4404,3793],{"class":1153},[1144,4406,3781],{"class":1262},[1144,4408,4410,4413,4415,4417,4420],{"class":1146,"line":4409},74,[1144,4411,4412],{"class":1685},"      @stop",[1144,4414,3477],{"class":1262},[1144,4416,3480],{"class":1262},[1144,4418,4419],{"class":1153},"chat.stop()",[1144,4421,3781],{"class":1262},[1144,4423,4425,4428,4430,4432,4435],{"class":1146,"line":4424},75,[1144,4426,4427],{"class":1685},"      @reload",[1144,4429,3477],{"class":1262},[1144,4431,3480],{"class":1262},[1144,4433,4434],{"class":1153},"chat.regenerate()",[1144,4436,3781],{"class":1262},[1144,4438,4440],{"class":1146,"line":4439},76,[1144,4441,4442],{"class":1262},"    \u002F>\n",[1144,4444,4446,4448,4451],{"class":1146,"line":4445},77,[1144,4447,4316],{"class":1262},[1144,4449,4450],{"class":1269},"UChatPrompt",[1144,4452,3487],{"class":1262},[1144,4454,4456,4458,4460],{"class":1146,"line":4455},78,[1144,4457,3742],{"class":1262},[1144,4459,1124],{"class":1269},[1144,4461,3487],{"class":1262},[1124,4463,4464],{"v-slot:vue":1126},[1135,4465,4467],{"className":3457,"code":4466,"language":34,"meta":1126,"style":1126},"\u003Cscript setup lang=\"ts\">\nimport { ref } from 'vue'\nimport { isReasoningUIPart, isTextUIPart, isToolUIPart, getToolName } from 'ai'\nimport { Chat } from '@ai-sdk\u002Fvue'\nimport { isPartStreaming, isToolStreaming } from '@nuxt\u002Fui\u002Futils\u002Fai'\nimport { Comark } from '@comark\u002Fvue'\nimport highlight from '@comark\u002Fvue\u002Fplugins\u002Fhighlight'\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=\"isPartStreaming(part)\"\n        >\n          \u003CComark\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n        \u003C\u002FUChatReasoning>\n\n        \u003CUChatTool\n          v-else-if=\"isToolUIPart(part)\"\n          :text=\"getToolName(part)\"\n          :streaming=\"isToolStreaming(part)\"\n        \u002F>\n\n        \u003Ctemplate v-else-if=\"isTextUIPart(part)\">\n          \u003CComark\n            v-if=\"message.role === 'assistant'\"\n            :markdown=\"part.text\"\n            :streaming=\"isPartStreaming(part)\"\n            :plugins=\"[highlight()]\"\n            class=\"*:first:mt-0 *:last:mb-0\"\n          \u002F>\n          \u003Cp v-else-if=\"message.role === 'user'\" class=\"whitespace-pre-wrap\">\n            {{ part.text }}\n          \u003C\u002Fp>\n        \u003C\u002Ftemplate>\n      \u003C\u002Ftemplate>\n    \u003C\u002Ftemplate>\n  \u003C\u002FUChatMessages>\n\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",[993,4468,4469,4489,4507,4537,4555,4577,4596,4611,4615,4631,4635,4651,4663,4677,4681,4687,4691,4701,4727,4731,4743,4747,4755,4759,4767,4773,4785,4797,4801,4825,4831,4855,4893,4897,4903,4915,4927,4939,4943,4949,4961,4973,4985,4997,5001,5009,5013,5019,5031,5043,5055,5059,5063,5083,5089,5101,5113,5125,5137,5149,5153,5181,5185,5193,5201,5209,5217,5225,5229,5235,5247,5259,5271,5275,5281,5293,5305,5317,5321,5330],{"__ignoreMap":1126},[1144,4470,4471,4473,4475,4477,4479,4481,4483,4485,4487],{"class":1146,"line":1147},[1144,4472,3465],{"class":1262},[1144,4474,3468],{"class":1269},[1144,4476,3471],{"class":1685},[1144,4478,3474],{"class":1685},[1144,4480,3477],{"class":1262},[1144,4482,3480],{"class":1262},[1144,4484,1240],{"class":1153},[1144,4486,3480],{"class":1262},[1144,4488,3487],{"class":1262},[1144,4490,4491,4493,4495,4497,4499,4501,4503,4505],{"class":1146,"line":1266},[1144,4492,1461],{"class":1247},[1144,4494,1464],{"class":1262},[1144,4496,3598],{"class":1258},[1144,4498,1470],{"class":1262},[1144,4500,1473],{"class":1247},[1144,4502,1476],{"class":1262},[1144,4504,34],{"class":1153},[1144,4506,1301],{"class":1262},[1144,4508,4509,4511,4513,4515,4517,4519,4521,4523,4525,4527,4529,4531,4533,4535],{"class":1146,"line":1279},[1144,4510,1461],{"class":1247},[1144,4512,1464],{"class":1262},[1144,4514,3496],{"class":1258},[1144,4516,1633],{"class":1262},[1144,4518,3501],{"class":1258},[1144,4520,1633],{"class":1262},[1144,4522,3506],{"class":1258},[1144,4524,1633],{"class":1262},[1144,4526,3511],{"class":1258},[1144,4528,1470],{"class":1262},[1144,4530,1473],{"class":1247},[1144,4532,1476],{"class":1262},[1144,4534,1645],{"class":1153},[1144,4536,1301],{"class":1262},[1144,4538,4539,4541,4543,4545,4547,4549,4551,4553],{"class":1146,"line":1294},[1144,4540,1461],{"class":1247},[1144,4542,1464],{"class":1262},[1144,4544,3530],{"class":1258},[1144,4546,1470],{"class":1262},[1144,4548,1473],{"class":1247},[1144,4550,1476],{"class":1262},[1144,4552,3449],{"class":1153},[1144,4554,1301],{"class":1262},[1144,4556,4557,4559,4561,4563,4565,4567,4569,4571,4573,4575],{"class":1146,"line":1304},[1144,4558,1461],{"class":1247},[1144,4560,1464],{"class":1262},[1144,4562,3549],{"class":1258},[1144,4564,1633],{"class":1262},[1144,4566,3554],{"class":1258},[1144,4568,1470],{"class":1262},[1144,4570,1473],{"class":1247},[1144,4572,1476],{"class":1262},[1144,4574,3563],{"class":1153},[1144,4576,1301],{"class":1262},[1144,4578,4579,4581,4583,4586,4588,4590,4592,4594],{"class":1146,"line":1310},[1144,4580,1461],{"class":1247},[1144,4582,1464],{"class":1262},[1144,4584,4585],{"class":1258}," Comark",[1144,4587,1470],{"class":1262},[1144,4589,1473],{"class":1247},[1144,4591,1476],{"class":1262},[1144,4593,1430],{"class":1153},[1144,4595,1301],{"class":1262},[1144,4597,4598,4600,4602,4604,4606,4609],{"class":1146,"line":1543},[1144,4599,1461],{"class":1247},[1144,4601,3572],{"class":1258},[1144,4603,1491],{"class":1247},[1144,4605,1476],{"class":1262},[1144,4607,4608],{"class":1153},"@comark\u002Fvue\u002Fplugins\u002Fhighlight",[1144,4610,1301],{"class":1262},[1144,4612,4613],{"class":1146,"line":1554},[1144,4614,1519],{"emptyLinePlaceholder":21},[1144,4616,4617,4619,4621,4623,4625,4627,4629],{"class":1146,"line":1454},[1144,4618,3590],{"class":1685},[1144,4620,3593],{"class":1258},[1144,4622,3477],{"class":1262},[1144,4624,3598],{"class":1254},[1144,4626,1259],{"class":1258},[1144,4628,3603],{"class":1262},[1144,4630,1316],{"class":1258},[1144,4632,4633],{"class":1146,"line":1577},[1144,4634,1519],{"emptyLinePlaceholder":21},[1144,4636,4637,4639,4641,4643,4645,4647,4649],{"class":1146,"line":1585},[1144,4638,3590],{"class":1685},[1144,4640,3616],{"class":1258},[1144,4642,3477],{"class":1262},[1144,4644,3621],{"class":1262},[1144,4646,3530],{"class":1254},[1144,4648,1259],{"class":1258},[1144,4650,1263],{"class":1262},[1144,4652,4653,4655,4657,4659,4661],{"class":1146,"line":1590},[1144,4654,3632],{"class":1269},[1144,4656,1259],{"class":1262},[1144,4658,3381],{"class":1692},[1144,4660,1696],{"class":1262},[1144,4662,1702],{"class":1262},[1144,4664,4665,4667,4669,4671,4673,4675],{"class":1146,"line":1832},[1144,4666,3645],{"class":1258},[1144,4668,1823],{"class":1262},[1144,4670,3381],{"class":1254},[1144,4672,1259],{"class":1269},[1144,4674,3381],{"class":1258},[1144,4676,1316],{"class":1269},[1144,4678,4679],{"class":1146,"line":2060},[1144,4680,3660],{"class":1262},[1144,4682,4683,4685],{"class":1146,"line":2070},[1144,4684,1313],{"class":1262},[1144,4686,1316],{"class":1258},[1144,4688,4689],{"class":1146,"line":2085},[1144,4690,1519],{"emptyLinePlaceholder":21},[1144,4692,4693,4695,4697,4699],{"class":1146,"line":2091},[1144,4694,3675],{"class":1685},[1144,4696,3678],{"class":1254},[1144,4698,1549],{"class":1262},[1144,4700,1702],{"class":1262},[1144,4702,4703,4705,4707,4709,4711,4713,4715,4717,4719,4721,4723,4725],{"class":1146,"line":2106},[1144,4704,3687],{"class":1258},[1144,4706,1823],{"class":1262},[1144,4708,3692],{"class":1254},[1144,4710,1259],{"class":1269},[1144,4712,3697],{"class":1262},[1144,4714,3700],{"class":1269},[1144,4716,1273],{"class":1262},[1144,4718,3705],{"class":1258},[1144,4720,1823],{"class":1262},[1144,4722,3710],{"class":1258},[1144,4724,1470],{"class":1262},[1144,4726,1316],{"class":1269},[1144,4728,4729],{"class":1146,"line":2112},[1144,4730,1519],{"emptyLinePlaceholder":21},[1144,4732,4733,4735,4737,4739,4741],{"class":1146,"line":2122},[1144,4734,3723],{"class":1258},[1144,4736,1823],{"class":1262},[1144,4738,3710],{"class":1258},[1144,4740,1717],{"class":1262},[1144,4742,3732],{"class":1262},[1144,4744,4745],{"class":1146,"line":2132},[1144,4746,3737],{"class":1262},[1144,4748,4749,4751,4753],{"class":1146,"line":2145},[1144,4750,3742],{"class":1262},[1144,4752,3468],{"class":1269},[1144,4754,3487],{"class":1262},[1144,4756,4757],{"class":1146,"line":2159},[1144,4758,1519],{"emptyLinePlaceholder":21},[1144,4760,4761,4763,4765],{"class":1146,"line":2165},[1144,4762,3465],{"class":1262},[1144,4764,1124],{"class":1269},[1144,4766,3487],{"class":1262},[1144,4768,4769,4771],{"class":1146,"line":2170},[1144,4770,3763],{"class":1262},[1144,4772,3766],{"class":1269},[1144,4774,4775,4777,4779,4781,4783],{"class":1146,"line":2180},[1144,4776,3771],{"class":1685},[1144,4778,3477],{"class":1262},[1144,4780,3480],{"class":1262},[1144,4782,3778],{"class":1153},[1144,4784,3781],{"class":1262},[1144,4786,4787,4789,4791,4793,4795],{"class":1146,"line":2196},[1144,4788,3786],{"class":1685},[1144,4790,3477],{"class":1262},[1144,4792,3480],{"class":1262},[1144,4794,3793],{"class":1153},[1144,4796,3781],{"class":1262},[1144,4798,4799],{"class":1146,"line":2211},[1144,4800,3800],{"class":1262},[1144,4802,4803,4805,4807,4809,4811,4813,4815,4817,4819,4821,4823],{"class":1146,"line":2217},[1144,4804,3805],{"class":1262},[1144,4806,1124],{"class":1269},[1144,4808,3810],{"class":1262},[1144,4810,371],{"class":1685},[1144,4812,3477],{"class":1262},[1144,4814,3480],{"class":1262},[1144,4816,3697],{"class":1262},[1144,4818,3821],{"class":1258},[1144,4820,1313],{"class":1262},[1144,4822,3480],{"class":1262},[1144,4824,3487],{"class":1262},[1144,4826,4827,4829],{"class":1146,"line":2223},[1144,4828,3832],{"class":1262},[1144,4830,3835],{"class":1269},[1144,4832,4833,4835,4837,4839,4841,4843,4845,4847,4849,4851,4853],{"class":1146,"line":2236},[1144,4834,3840],{"class":1247},[1144,4836,3477],{"class":1262},[1144,4838,3480],{"class":1262},[1144,4840,3847],{"class":1258},[1144,4842,1633],{"class":1262},[1144,4844,3852],{"class":1258},[1144,4846,3855],{"class":1262},[1144,4848,3858],{"class":1258},[1144,4850,1823],{"class":1262},[1144,4852,3863],{"class":1258},[1144,4854,3781],{"class":1262},[1144,4856,4857,4859,4861,4863,4865,4867,4869,4871,4873,4875,4877,4879,4881,4883,4885,4887,4889,4891],{"class":1146,"line":3922},[1144,4858,3870],{"class":1262},[1144,4860,3873],{"class":1685},[1144,4862,3477],{"class":1262},[1144,4864,3878],{"class":1262},[1144,4866,3881],{"class":1258},[1144,4868,1823],{"class":1262},[1144,4870,3886],{"class":1258},[1144,4872,1313],{"class":1262},[1144,4874,3891],{"class":1153},[1144,4876,3894],{"class":1262},[1144,4878,3897],{"class":1258},[1144,4880,1823],{"class":1262},[1144,4882,3902],{"class":1258},[1144,4884,1313],{"class":1262},[1144,4886,3891],{"class":1153},[1144,4888,3894],{"class":1262},[1144,4890,3911],{"class":1258},[1144,4892,3914],{"class":1262},[1144,4894,4895],{"class":1146,"line":3931},[1144,4896,3919],{"class":1262},[1144,4898,4899,4901],{"class":1146,"line":3946},[1144,4900,3925],{"class":1262},[1144,4902,3928],{"class":1269},[1144,4904,4905,4907,4909,4911,4913],{"class":1146,"line":3961},[1144,4906,3934],{"class":1685},[1144,4908,3477],{"class":1262},[1144,4910,3480],{"class":1262},[1144,4912,3941],{"class":1153},[1144,4914,3781],{"class":1262},[1144,4916,4917,4919,4921,4923,4925],{"class":1146,"line":3976},[1144,4918,3949],{"class":1685},[1144,4920,3477],{"class":1262},[1144,4922,3480],{"class":1262},[1144,4924,3956],{"class":1153},[1144,4926,3781],{"class":1262},[1144,4928,4929,4931,4933,4935,4937],{"class":1146,"line":3982},[1144,4930,3964],{"class":1685},[1144,4932,3477],{"class":1262},[1144,4934,3480],{"class":1262},[1144,4936,3971],{"class":1153},[1144,4938,3781],{"class":1262},[1144,4940,4941],{"class":1146,"line":3991},[1144,4942,3979],{"class":1262},[1144,4944,4945,4947],{"class":1146,"line":4005},[1144,4946,3985],{"class":1262},[1144,4948,3988],{"class":1269},[1144,4950,4951,4953,4955,4957,4959],{"class":1146,"line":4019},[1144,4952,3994],{"class":1685},[1144,4954,3477],{"class":1262},[1144,4956,3480],{"class":1262},[1144,4958,3956],{"class":1153},[1144,4960,3781],{"class":1262},[1144,4962,4963,4965,4967,4969,4971],{"class":1146,"line":4034},[1144,4964,4008],{"class":1685},[1144,4966,3477],{"class":1262},[1144,4968,3480],{"class":1262},[1144,4970,3971],{"class":1153},[1144,4972,3781],{"class":1262},[1144,4974,4975,4977,4979,4981,4983],{"class":1146,"line":4049},[1144,4976,4022],{"class":1685},[1144,4978,3477],{"class":1262},[1144,4980,3480],{"class":1262},[1144,4982,4029],{"class":1153},[1144,4984,3781],{"class":1262},[1144,4986,4987,4989,4991,4993,4995],{"class":1146,"line":4055},[1144,4988,4037],{"class":1685},[1144,4990,3477],{"class":1262},[1144,4992,3480],{"class":1262},[1144,4994,4044],{"class":1153},[1144,4996,3781],{"class":1262},[1144,4998,4999],{"class":1146,"line":4066},[1144,5000,4052],{"class":1262},[1144,5002,5003,5005,5007],{"class":1146,"line":4071},[1144,5004,4058],{"class":1262},[1144,5006,4061],{"class":1269},[1144,5008,3487],{"class":1262},[1144,5010,5011],{"class":1146,"line":4079},[1144,5012,1519],{"emptyLinePlaceholder":21},[1144,5014,5015,5017],{"class":1146,"line":4094},[1144,5016,3925],{"class":1262},[1144,5018,4076],{"class":1269},[1144,5020,5021,5023,5025,5027,5029],{"class":1146,"line":4108},[1144,5022,4082],{"class":1685},[1144,5024,3477],{"class":1262},[1144,5026,3480],{"class":1262},[1144,5028,4089],{"class":1153},[1144,5030,3781],{"class":1262},[1144,5032,5033,5035,5037,5039,5041],{"class":1146,"line":4122},[1144,5034,3949],{"class":1685},[1144,5036,3477],{"class":1262},[1144,5038,3480],{"class":1262},[1144,5040,4103],{"class":1153},[1144,5042,3781],{"class":1262},[1144,5044,5045,5047,5049,5051,5053],{"class":1146,"line":4128},[1144,5046,3964],{"class":1685},[1144,5048,3477],{"class":1262},[1144,5050,3480],{"class":1262},[1144,5052,4117],{"class":1153},[1144,5054,3781],{"class":1262},[1144,5056,5057],{"class":1146,"line":4133},[1144,5058,4125],{"class":1262},[1144,5060,5061],{"class":1146,"line":4157},[1144,5062,1519],{"emptyLinePlaceholder":21},[1144,5064,5065,5067,5069,5071,5073,5075,5077,5079,5081],{"class":1146,"line":4164},[1144,5066,3925],{"class":1262},[1144,5068,1124],{"class":1269},[1144,5070,4140],{"class":1247},[1144,5072,3477],{"class":1262},[1144,5074,3480],{"class":1262},[1144,5076,4147],{"class":1254},[1144,5078,4150],{"class":1258},[1144,5080,3480],{"class":1262},[1144,5082,3487],{"class":1262},[1144,5084,5085,5087],{"class":1146,"line":4179},[1144,5086,3985],{"class":1262},[1144,5088,3988],{"class":1269},[1144,5090,5091,5093,5095,5097,5099],{"class":1146,"line":4192},[1144,5092,4167],{"class":1685},[1144,5094,3477],{"class":1262},[1144,5096,3480],{"class":1262},[1144,5098,4174],{"class":1153},[1144,5100,3781],{"class":1262},[1144,5102,5103,5105,5107,5109,5111],{"class":1146,"line":4205},[1144,5104,3994],{"class":1685},[1144,5106,3477],{"class":1262},[1144,5108,3480],{"class":1262},[1144,5110,3956],{"class":1153},[1144,5112,3781],{"class":1262},[1144,5114,5115,5117,5119,5121,5123],{"class":1146,"line":4218},[1144,5116,4008],{"class":1685},[1144,5118,3477],{"class":1262},[1144,5120,3480],{"class":1262},[1144,5122,3971],{"class":1153},[1144,5124,3781],{"class":1262},[1144,5126,5127,5129,5131,5133,5135],{"class":1146,"line":4231},[1144,5128,4022],{"class":1685},[1144,5130,3477],{"class":1262},[1144,5132,3480],{"class":1262},[1144,5134,4029],{"class":1153},[1144,5136,3781],{"class":1262},[1144,5138,5139,5141,5143,5145,5147],{"class":1146,"line":4236},[1144,5140,4037],{"class":1685},[1144,5142,3477],{"class":1262},[1144,5144,3480],{"class":1262},[1144,5146,4044],{"class":1153},[1144,5148,3781],{"class":1262},[1144,5150,5151],{"class":1146,"line":4268},[1144,5152,4052],{"class":1262},[1144,5154,5155,5157,5159,5161,5163,5165,5167,5169,5171,5173,5175,5177,5179],{"class":1146,"line":4274},[1144,5156,3985],{"class":1262},[1144,5158,970],{"class":1269},[1144,5160,4140],{"class":1685},[1144,5162,3477],{"class":1262},[1144,5164,3480],{"class":1262},[1144,5166,4249],{"class":1153},[1144,5168,3480],{"class":1262},[1144,5170,4254],{"class":1685},[1144,5172,3477],{"class":1262},[1144,5174,3480],{"class":1262},[1144,5176,4261],{"class":1153},[1144,5178,3480],{"class":1262},[1144,5180,3487],{"class":1262},[1144,5182,5183],{"class":1146,"line":4284},[1144,5184,4271],{"class":1258},[1144,5186,5187,5189,5191],{"class":1146,"line":4293},[1144,5188,4277],{"class":1262},[1144,5190,970],{"class":1269},[1144,5192,3487],{"class":1262},[1144,5194,5195,5197,5199],{"class":1146,"line":4303},[1144,5196,4058],{"class":1262},[1144,5198,1124],{"class":1269},[1144,5200,3487],{"class":1262},[1144,5202,5203,5205,5207],{"class":1146,"line":4313},[1144,5204,4296],{"class":1262},[1144,5206,1124],{"class":1269},[1144,5208,3487],{"class":1262},[1144,5210,5211,5213,5215],{"class":1146,"line":4324},[1144,5212,4306],{"class":1262},[1144,5214,1124],{"class":1269},[1144,5216,3487],{"class":1262},[1144,5218,5219,5221,5223],{"class":1146,"line":4329},[1144,5220,4316],{"class":1262},[1144,5222,4319],{"class":1269},[1144,5224,3487],{"class":1262},[1144,5226,5227],{"class":1146,"line":4337},[1144,5228,1519],{"emptyLinePlaceholder":21},[1144,5230,5231,5233],{"class":1146,"line":4352},[1144,5232,3763],{"class":1262},[1144,5234,4334],{"class":1269},[1144,5236,5237,5239,5241,5243,5245],{"class":1146,"line":4367},[1144,5238,4340],{"class":1685},[1144,5240,3477],{"class":1262},[1144,5242,3480],{"class":1262},[1144,5244,4347],{"class":1153},[1144,5246,3781],{"class":1262},[1144,5248,5249,5251,5253,5255,5257],{"class":1146,"line":4382},[1144,5250,4355],{"class":1685},[1144,5252,3477],{"class":1262},[1144,5254,3480],{"class":1262},[1144,5256,4362],{"class":1153},[1144,5258,3781],{"class":1262},[1144,5260,5261,5263,5265,5267,5269],{"class":1146,"line":4387},[1144,5262,4370],{"class":1685},[1144,5264,3477],{"class":1262},[1144,5266,3480],{"class":1262},[1144,5268,4377],{"class":1153},[1144,5270,3781],{"class":1262},[1144,5272,5273],{"class":1146,"line":4395},[1144,5274,3800],{"class":1262},[1144,5276,5277,5279],{"class":1146,"line":4409},[1144,5278,3805],{"class":1262},[1144,5280,4392],{"class":1269},[1144,5282,5283,5285,5287,5289,5291],{"class":1146,"line":4424},[1144,5284,4398],{"class":1685},[1144,5286,3477],{"class":1262},[1144,5288,3480],{"class":1262},[1144,5290,3793],{"class":1153},[1144,5292,3781],{"class":1262},[1144,5294,5295,5297,5299,5301,5303],{"class":1146,"line":4439},[1144,5296,4412],{"class":1685},[1144,5298,3477],{"class":1262},[1144,5300,3480],{"class":1262},[1144,5302,4419],{"class":1153},[1144,5304,3781],{"class":1262},[1144,5306,5307,5309,5311,5313,5315],{"class":1146,"line":4445},[1144,5308,4427],{"class":1685},[1144,5310,3477],{"class":1262},[1144,5312,3480],{"class":1262},[1144,5314,4434],{"class":1153},[1144,5316,3781],{"class":1262},[1144,5318,5319],{"class":1146,"line":4455},[1144,5320,4442],{"class":1262},[1144,5322,5324,5326,5328],{"class":1146,"line":5323},79,[1144,5325,4316],{"class":1262},[1144,5327,4450],{"class":1269},[1144,5329,3487],{"class":1262},[1144,5331,5333,5335,5337],{"class":1146,"line":5332},80,[1144,5334,3742],{"class":1262},[1144,5336,1124],{"class":1269},[1144,5338,3487],{"class":1262},[5340,5341,5342,5353],"tip",{},[970,5343,5344,5345,5352],{},"For reusable Comark configuration (plugins, class, etc.), use ",[974,5346,5349],{"href":5347,"rel":5348},"https:\u002F\u002Fcomark.dev\u002Frendering\u002Fvue#code-definecomarkcomponent",[978],[993,5350,5351],{},"defineComarkComponent"," to create a custom component instead of passing props inline each time.",[1121,5354,5355,5449],{},[1124,5356,5357],{"v-slot:nuxt":1126},[1128,5358,5361],{"className":5359},[5360],"*:my-0",[1135,5362,5365],{"className":1237,"code":5363,"filename":5364,"language":1240,"meta":1126,"style":1126},"import highlight from '@comark\u002Fnuxt\u002Fplugins\u002Fhighlight'\n\nexport default defineComarkComponent({\n  name: 'ChatComark',\n  plugins: [highlight()],\n  class: '*:first:mt-0 *:last:mb-0'\n})\n","components\u002Fchat\u002FComark.ts",[993,5366,5367,5381,5385,5398,5414,5430,5443],{"__ignoreMap":1126},[1144,5368,5369,5371,5373,5375,5377,5379],{"class":1146,"line":1147},[1144,5370,1461],{"class":1247},[1144,5372,3572],{"class":1258},[1144,5374,1491],{"class":1247},[1144,5376,1476],{"class":1262},[1144,5378,3579],{"class":1153},[1144,5380,1301],{"class":1262},[1144,5382,5383],{"class":1146,"line":1266},[1144,5384,1519],{"emptyLinePlaceholder":21},[1144,5386,5387,5389,5391,5394,5396],{"class":1146,"line":1279},[1144,5388,1248],{"class":1247},[1144,5390,1251],{"class":1247},[1144,5392,5393],{"class":1254}," defineComarkComponent",[1144,5395,1259],{"class":1258},[1144,5397,1263],{"class":1262},[1144,5399,5400,5403,5405,5407,5410,5412],{"class":1146,"line":1294},[1144,5401,5402],{"class":1269},"  name",[1144,5404,1273],{"class":1262},[1144,5406,1476],{"class":1262},[1144,5408,5409],{"class":1153},"ChatComark",[1144,5411,1288],{"class":1262},[1144,5413,1291],{"class":1262},[1144,5415,5416,5418,5420,5423,5425,5428],{"class":1146,"line":1304},[1144,5417,1536],{"class":1269},[1144,5419,1273],{"class":1262},[1144,5421,5422],{"class":1258}," [",[1144,5424,1565],{"class":1254},[1144,5426,5427],{"class":1258},"()]",[1144,5429,1291],{"class":1262},[1144,5431,5432,5435,5437,5439,5441],{"class":1146,"line":1310},[1144,5433,5434],{"class":1269},"  class",[1144,5436,1273],{"class":1262},[1144,5438,1476],{"class":1262},[1144,5440,4044],{"class":1153},[1144,5442,1301],{"class":1262},[1144,5444,5445,5447],{"class":1146,"line":1543},[1144,5446,1313],{"class":1262},[1144,5448,1316],{"class":1258},[1124,5450,5451],{"v-slot:vue":1126},[1128,5452,5454],{"className":5453},[5360],[1135,5455,5457],{"className":1237,"code":5456,"filename":5364,"language":1240,"meta":1126,"style":1126},"import { defineComarkComponent } from '@comark\u002Fvue'\nimport highlight from '@comark\u002Fvue\u002Fplugins\u002Fhighlight'\n\nexport default defineComarkComponent({\n  name: 'ChatComark',\n  plugins: [highlight()],\n  class: '*:first:mt-0 *:last:mb-0'\n})\n",[993,5458,5459,5477,5491,5495,5507,5521,5535,5547],{"__ignoreMap":1126},[1144,5460,5461,5463,5465,5467,5469,5471,5473,5475],{"class":1146,"line":1147},[1144,5462,1461],{"class":1247},[1144,5464,1464],{"class":1262},[1144,5466,5393],{"class":1258},[1144,5468,1470],{"class":1262},[1144,5470,1473],{"class":1247},[1144,5472,1476],{"class":1262},[1144,5474,1430],{"class":1153},[1144,5476,1301],{"class":1262},[1144,5478,5479,5481,5483,5485,5487,5489],{"class":1146,"line":1266},[1144,5480,1461],{"class":1247},[1144,5482,3572],{"class":1258},[1144,5484,1491],{"class":1247},[1144,5486,1476],{"class":1262},[1144,5488,4608],{"class":1153},[1144,5490,1301],{"class":1262},[1144,5492,5493],{"class":1146,"line":1279},[1144,5494,1519],{"emptyLinePlaceholder":21},[1144,5496,5497,5499,5501,5503,5505],{"class":1146,"line":1294},[1144,5498,1248],{"class":1247},[1144,5500,1251],{"class":1247},[1144,5502,5393],{"class":1254},[1144,5504,1259],{"class":1258},[1144,5506,1263],{"class":1262},[1144,5508,5509,5511,5513,5515,5517,5519],{"class":1146,"line":1304},[1144,5510,5402],{"class":1269},[1144,5512,1273],{"class":1262},[1144,5514,1476],{"class":1262},[1144,5516,5409],{"class":1153},[1144,5518,1288],{"class":1262},[1144,5520,1291],{"class":1262},[1144,5522,5523,5525,5527,5529,5531,5533],{"class":1146,"line":1310},[1144,5524,1536],{"class":1269},[1144,5526,1273],{"class":1262},[1144,5528,5422],{"class":1258},[1144,5530,1565],{"class":1254},[1144,5532,5427],{"class":1258},[1144,5534,1291],{"class":1262},[1144,5536,5537,5539,5541,5543,5545],{"class":1146,"line":1543},[1144,5538,5434],{"class":1269},[1144,5540,1273],{"class":1262},[1144,5542,1476],{"class":1262},[1144,5544,4044],{"class":1153},[1144,5546,1301],{"class":1262},[1144,5548,5549,5551],{"class":1146,"line":1554},[1144,5550,1313],{"class":1262},[1144,5552,1316],{"class":1258},[1318,5554,5555,5561],{},[970,5556,5557,5558,5560],{},"When using the ",[993,5559,1565],{}," plugin, add the following CSS to your stylesheet to support dark mode:",[1135,5562,5567],{"className":5563,"code":5564,"filename":5565,"language":5566,"meta":1126,"style":1126},"language-css shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","html.dark .shiki span {\n  color: var(--shiki-dark) !important;\n  background-color: var(--shiki-dark-bg) !important;\n  font-style: var(--shiki-dark-font-style) !important;\n  font-weight: var(--shiki-dark-font-weight) !important;\n  text-decoration: var(--shiki-dark-text-decoration) !important;\n}\n","main.css","css",[993,5568,5569,5590,5614,5634,5654,5674,5694],{"__ignoreMap":1126},[1144,5570,5571,5574,5576,5579,5582,5585,5588],{"class":1146,"line":1147},[1144,5572,5573],{"class":1150},"html",[1144,5575,1823],{"class":1262},[1144,5577,5578],{"class":1150},"dark",[1144,5580,5581],{"class":1262}," .",[1144,5583,5584],{"class":1150},"shiki",[1144,5586,5587],{"class":1150}," span",[1144,5589,1702],{"class":1262},[1144,5591,5592,5596,5598,5601,5603,5606,5608,5611],{"class":1146,"line":1266},[1144,5593,5595],{"class":5594},"sqsOY","  color",[1144,5597,1273],{"class":1262},[1144,5599,5600],{"class":1254}," var",[1144,5602,1259],{"class":1262},[1144,5604,5605],{"class":1258},"--shiki-dark",[1144,5607,1696],{"class":1262},[1144,5609,5610],{"class":1776}," !important",[1144,5612,5613],{"class":1262},";\n",[1144,5615,5616,5619,5621,5623,5625,5628,5630,5632],{"class":1146,"line":1279},[1144,5617,5618],{"class":5594},"  background-color",[1144,5620,1273],{"class":1262},[1144,5622,5600],{"class":1254},[1144,5624,1259],{"class":1262},[1144,5626,5627],{"class":1258},"--shiki-dark-bg",[1144,5629,1696],{"class":1262},[1144,5631,5610],{"class":1776},[1144,5633,5613],{"class":1262},[1144,5635,5636,5639,5641,5643,5645,5648,5650,5652],{"class":1146,"line":1294},[1144,5637,5638],{"class":5594},"  font-style",[1144,5640,1273],{"class":1262},[1144,5642,5600],{"class":1254},[1144,5644,1259],{"class":1262},[1144,5646,5647],{"class":1258},"--shiki-dark-font-style",[1144,5649,1696],{"class":1262},[1144,5651,5610],{"class":1776},[1144,5653,5613],{"class":1262},[1144,5655,5656,5659,5661,5663,5665,5668,5670,5672],{"class":1146,"line":1304},[1144,5657,5658],{"class":5594},"  font-weight",[1144,5660,1273],{"class":1262},[1144,5662,5600],{"class":1254},[1144,5664,1259],{"class":1262},[1144,5666,5667],{"class":1258},"--shiki-dark-font-weight",[1144,5669,1696],{"class":1262},[1144,5671,5610],{"class":1776},[1144,5673,5613],{"class":1262},[1144,5675,5676,5679,5681,5683,5685,5688,5690,5692],{"class":1146,"line":1310},[1144,5677,5678],{"class":5594},"  text-decoration",[1144,5680,1273],{"class":1262},[1144,5682,5600],{"class":1254},[1144,5684,1259],{"class":1262},[1144,5686,5687],{"class":1258},"--shiki-dark-text-decoration",[1144,5689,1696],{"class":1262},[1144,5691,5610],{"class":1776},[1144,5693,5613],{"class":1262},[1144,5695,5696],{"class":1146,"line":1543},[1144,5697,3737],{"class":1262},[1318,5699,5701],{"to":5700},"\u002Fblog\u002Fhow-to-build-an-ai-chat",[970,5702,5703,5704,5708],{},"Read the full ",[5705,5706,5707],"strong",{},"Build an AI Chatbot"," tutorial for a step-by-step guide.",[5710,5711,5712],"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 .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}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 .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sqsOY, html code.shiki .sqsOY{--shiki-light:#8796B0;--shiki-default:#B2CCD6;--shiki-dark:#B2CCD6}",{"title":1126,"searchDepth":1266,"depth":1266,"links":5714},[5715,5716,5717,5722],{"id":887,"depth":1266,"text":71},{"id":1102,"depth":1266,"text":20},{"id":1597,"depth":1266,"text":1598,"children":5718},[5719,5720,5721],{"id":1840,"depth":1279,"text":1841},{"id":2243,"depth":1279,"text":2244},{"id":2967,"depth":1279,"text":2968},{"id":3439,"depth":1266,"text":3440},"md",[5725],{"label":5726,"icon":5727,"to":976,"target":5728},"AI SDK","i-simple-icons-vercel","_blank",{},{"title":259,"description":263},"RYXrHDoIBtgwJlJHoA09yE8tszODW4Dp3vui7V4P9d0",{"data":5733,"body":5734},{},{"type":5735,"children":5736},"root",[5737],{"type":178,"tag":970,"props":5738,"children":5739},{},[5740],{"type":5741,"value":263},"text",1776682572685]