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