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