[{"data":1,"prerenderedAt":377},["ShallowReactive",2],{"mobile-docs-navigation":3,"command-menu-docs":58,"navigation":81,"mobile-docs-page-meta":99,"docs-pages-category":115,"\u002Fdocs\u002Fcomponents\u002Fchat-messages":127,"surround-\u002Fdocs\u002Fcomponents\u002Fchat-messages":374},[4],{"title":5,"path":6,"stem":7,"children":8,"page":57},"Docs","\u002Fdocs","docs",[9,19],{"title":10,"path":11,"stem":12,"children":13},"Introduction","\u002Fdocs\u002Fgetting-started","docs\u002F1.getting-started\u002F1.index",[14,15],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},"Installation","\u002Fdocs\u002Fgetting-started\u002Finstallation","docs\u002F1.getting-started\u002F2.installation",{"title":20,"path":21,"stem":22,"children":23},"Components","\u002Fdocs\u002Fcomponents","docs\u002F2.components\u002F0.index",[24,25,29,33,37,41,45,49,53],{"title":20,"path":21,"stem":22},{"title":26,"path":27,"stem":28},"Chat","\u002Fdocs\u002Fcomponents\u002Fchat","docs\u002F2.components\u002F1.chat",{"title":30,"path":31,"stem":32},"ChatMessage","\u002Fdocs\u002Fcomponents\u002Fchat-message","docs\u002F2.components\u002F2.chat-message",{"title":34,"path":35,"stem":36},"ChatMessages","\u002Fdocs\u002Fcomponents\u002Fchat-messages","docs\u002F2.components\u002F3.chat-messages",{"title":38,"path":39,"stem":40},"ChatPrompt","\u002Fdocs\u002Fcomponents\u002Fchat-prompt","docs\u002F2.components\u002F4.chat-prompt",{"title":42,"path":43,"stem":44},"ChatPromptSubmit","\u002Fdocs\u002Fcomponents\u002Fchat-prompt-submit","docs\u002F2.components\u002F5.chat-prompt-submit",{"title":46,"path":47,"stem":48},"DocsSearchModal","\u002Fdocs\u002Fcomponents\u002Fdocs-search-modal","docs\u002F2.components\u002F6.docs-search-modal",{"title":50,"path":51,"stem":52},"PricingPlans","\u002Fdocs\u002Fcomponents\u002Fpricing-plans","docs\u002F2.components\u002F7.pricing-plans",{"title":54,"path":55,"stem":56},"ReasoningDisclosure","\u002Fdocs\u002Fcomponents\u002Freasoning-disclosure","docs\u002F2.components\u002F8.reasoning-disclosure",false,[59,61,63,65,67,69,71,73,75,77,79],{"path":27,"title":26,"description":60},"Build Nuxt chat interfaces with installable shadcn-vue components you own and compose.",{"path":31,"title":30,"description":62},"Render an individual chat message bubble with AI SDK parts, actions, and layout control.",{"path":35,"title":34,"description":64},"Compose chat message lists with scrolling behavior, loading states, and action-ready assistant output.",{"path":39,"title":38,"description":66},"Build chat input flows with an auto-resizing prompt, keyboard shortcuts, and flexible slot composition.",{"path":43,"title":42,"description":68},"Handle chat submit, stop, and retry actions with a status-aware control for prompt workflows.",{"path":21,"title":20,"description":70},"Explore reusable components that complement Nuxt templates and real app workflows.",{"path":47,"title":46,"description":72},"Add a lightweight local search modal to Nuxt documentation interfaces.",{"path":17,"title":16,"description":74},"Start from templates or install individual components in your Nuxt project.",{"path":11,"title":10,"description":76},"Stackhacker UI is an open-source collection of Nuxt templates and components for the shadcn-vue community.",{"path":51,"title":50,"description":78},"Render a responsive pricing plan section from app-owned data.",{"path":55,"title":54,"description":80},"Show app-owned AI reasoning text in a compact collapsible disclosure.",[82],{"title":5,"path":6,"stem":7,"children":83,"page":57},[84,88],{"title":10,"path":11,"stem":12,"children":85},[86,87],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":89},[90,91,92,93,94,95,96,97,98],{"title":20,"path":21,"stem":22},{"title":26,"path":27,"stem":28},{"title":30,"path":31,"stem":32},{"title":34,"path":35,"stem":36},{"title":38,"path":39,"stem":40},{"title":42,"path":43,"stem":44},{"title":46,"path":47,"stem":48},{"title":50,"path":51,"stem":52},{"title":54,"path":55,"stem":56},[100,102,103,104,106,107,108,109,110,112,114],{"path":11,"category":101},"overview",{"path":17,"category":101},{"path":21,"category":101},{"path":27,"category":105},"chat",{"path":31,"category":105},{"path":35,"category":105},{"path":39,"category":105},{"path":43,"category":105},{"path":47,"category":111},"content",{"path":51,"category":113},"marketing",{"path":55,"category":105},[116,117,118,119,120,121,122,123,124,125,126],{"path":11,"category":101},{"path":17,"category":101},{"path":21,"category":101},{"path":27,"category":105},{"path":31,"category":105},{"path":35,"category":105},{"path":39,"category":105},{"path":43,"category":105},{"path":47,"category":111},{"path":51,"category":113},{"path":55,"category":105},{"id":128,"title":34,"body":129,"category":105,"description":64,"extension":369,"meta":370,"navigation":371,"path":35,"seo":372,"stem":36,"__hash__":373},"docs\u002Fdocs\u002F2.components\u002F3.chat-messages.md",{"type":130,"value":131,"toc":356},"minimark",[132,136,140,151,155,163,167,172,174,178,182,308,312],[133,134],"component-preview",{"name":135},"ChatMessagesDemo",[137,138,16],"h2",{"id":139},"installation",[141,142,148],"pre",{"className":143,"code":145,"language":146,"meta":147},[144],"language-bash","npx shadcn-vue@latest add \"https:\u002F\u002Fui.stackhacker.io\u002Fr\u002Fchat-messages.json\"\n","bash","",[149,150,145],"code",{"__ignoreMap":147},[137,152,154],{"id":153},"usage","Usage",[141,156,161],{"className":157,"code":159,"language":160,"meta":147},[158],"language-vue","\u003Cscript setup lang=\"ts\">\nimport { Copy } from '@lucide\u002Fvue'\nimport { ChatMessages } from '@\u002Fcomponents\u002Fchat-messages'\n\nconst assistant = {\n  actions: [{ label: 'Copy message', icon: Copy }]\n}\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CChatMessages :messages=\"messages\" :status=\"status\" :assistant=\"assistant\" should-auto-scroll \u002F>\n\u003C\u002Ftemplate>\n","vue",[149,162,159],{"__ignoreMap":147},[137,164,166],{"id":165},"examples","Examples",[168,169,171],"h3",{"id":170},"default","Default",[133,173],{"name":135},[137,175,177],{"id":176},"api-reference","API Reference",[168,179,181],{"id":180},"props","Props",[183,184,185,203],"table",{},[186,187,188],"thead",{},[189,190,191,195,198,200],"tr",{},[192,193,194],"th",{},"Prop",[192,196,197],{},"Type",[192,199,171],{},[192,201,202],{},"Description",[204,205,206,227,251,271,291],"tbody",{},[189,207,208,214,219,224],{},[209,210,211],"td",{},[149,212,213],{},"messages",[209,215,216],{},[149,217,218],{},"UIMessage[]",[209,220,221],{},[149,222,223],{},"[]",[209,225,226],{},"Array of messages to display.",[189,228,229,234,239,244],{},[209,230,231],{},[149,232,233],{},"status",[209,235,236],{},[149,237,238],{},"'ready' | 'streaming' | 'submitted' | 'error'",[209,240,241],{},[149,242,243],{},"'ready'",[209,245,246,247,250],{},"Current chat status. Shows loading indicator when ",[149,248,249],{},"submitted",".",[189,252,253,258,263,268],{},[209,254,255],{},[149,256,257],{},"shouldAutoScroll",[209,259,260],{},[149,261,262],{},"boolean",[209,264,265],{},[149,266,267],{},"false",[209,269,270],{},"Enable auto-scroll to bottom on new messages.",[189,272,273,278,283,286],{},[209,274,275],{},[149,276,277],{},"assistant",[209,279,280],{},[149,281,282],{},"{ actions?: ChatMessageAction[] }",[209,284,285],{},"—",[209,287,288,289,250],{},"Assistant-specific configuration. Action icons are Vue components passed through to ",[149,290,30],{},[189,292,293,298,303,305],{},[209,294,295],{},[149,296,297],{},"class",[209,299,300],{},[149,301,302],{},"string",[209,304,285],{},[209,306,307],{},"Additional CSS classes.",[168,309,311],{"id":310},"slots","Slots",[183,313,314,325],{},[186,315,316],{},[189,317,318,321,323],{},[192,319,320],{},"Slot",[192,322,181],{},[192,324,202],{},[204,326,327,341],{},[189,328,329,333,338],{},[209,330,331],{},[149,332,111],{},[209,334,335],{},[149,336,337],{},"{ message, index, id, role, parts }",[209,339,340],{},"Custom message content renderer.",[189,342,343,348,350],{},[209,344,345],{},[149,346,347],{},"indicator",[209,349,285],{},[209,351,352,353,355],{},"Custom loading indicator (shown when status is ",[149,354,249],{},").",{"title":147,"searchDepth":357,"depth":357,"links":358},2,[359,360,361,365],{"id":139,"depth":357,"text":16},{"id":153,"depth":357,"text":154},{"id":165,"depth":357,"text":166,"children":362},[363],{"id":170,"depth":364,"text":171},3,{"id":176,"depth":357,"text":177,"children":366},[367,368],{"id":180,"depth":364,"text":181},{"id":310,"depth":364,"text":311},"md",{},true,{"title":34,"description":64},"J7Bcy52gWvMuNNbRuKjSao1AwVBC0ycER69Eg6ovbF4",[375,376],{"title":30,"path":31,"stem":32,"children":-1},{"title":38,"path":39,"stem":40,"children":-1},1782364164323]