[{"data":1,"prerenderedAt":402},["ShallowReactive",2],{"mobile-docs-navigation":3,"command-menu-docs":58,"navigation":81,"mobile-docs-page-meta":99,"docs-pages-category":115,"\u002Fdocs\u002Fcomponents\u002Fchat-message":127,"surround-\u002Fdocs\u002Fcomponents\u002Fchat-message":399},[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},"PageToc","\u002Fdocs\u002Fcomponents\u002Fpage-toc","docs\u002F2.components\u002F8.page-toc",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":55,"title":54,"description":78},"Render an on-page table of contents from app-supplied heading links.",{"path":51,"title":50,"description":80},"Render a responsive pricing plan section from app-owned data.",[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":111},[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":111},{"id":128,"title":30,"body":129,"category":105,"description":62,"extension":394,"meta":395,"navigation":396,"path":31,"seo":397,"stem":32,"__hash__":398},"docs\u002Fdocs\u002F2.components\u002F2.chat-message.md",{"type":130,"value":131,"toc":380},"minimark",[132,136,140,151,155,163,167,172,174,178,182,323,327,368,372],[133,134],"component-preview",{"name":135},"ChatMessageDemo",[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-message.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 { ChatMessage } from '@\u002Fcomponents\u002Fchat-message'\n\nconst actions = [\n  { label: 'Copy message', icon: Copy }\n]\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CChatMessage\n    id=\"1\"\n    role=\"assistant\"\n    :parts=\"[{ type: 'text', text: 'Hello!' }]\"\n    side=\"left\"\n    :actions=\"actions\"\n  \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,225,242,259,279,307],"tbody",{},[189,207,208,214,219,222],{},[209,210,211],"td",{},[149,212,213],{},"id",[209,215,216],{},[149,217,218],{},"string",[209,220,221],{},"—",[209,223,224],{},"Message ID.",[189,226,227,232,237,239],{},[209,228,229],{},[149,230,231],{},"role",[209,233,234],{},[149,235,236],{},"'user' | 'assistant' | 'system'",[209,238,221],{},[209,240,241],{},"Message role.",[189,243,244,249,254,256],{},[209,245,246],{},[149,247,248],{},"parts",[209,250,251],{},[149,252,253],{},"UIMessage['parts']",[209,255,221],{},[209,257,258],{},"Message parts from AI SDK.",[189,260,261,266,271,276],{},[209,262,263],{},[149,264,265],{},"side",[209,267,268],{},[149,269,270],{},"'left' | 'right'",[209,272,273],{},[149,274,275],{},"'left'",[209,277,278],{},"Which side to render the message.",[189,280,281,286,291,296],{},[209,282,283],{},[149,284,285],{},"actions",[209,287,288],{},[149,289,290],{},"ChatMessageAction[]",[209,292,293],{},[149,294,295],{},"[]",[209,297,298,299,302,303,306],{},"Action buttons shown on hover. Each ",[149,300,301],{},"icon"," is a Vue component and each ",[149,304,305],{},"label"," is used for the tooltip and accessible button name.",[189,308,309,314,318,320],{},[209,310,311],{},[149,312,313],{},"class",[209,315,316],{},[149,317,218],{},[209,319,221],{},[209,321,322],{},"Additional CSS classes.",[168,324,326],{"id":325},"slots","Slots",[183,328,329,340],{},[186,330,331],{},[189,332,333,336,338],{},[192,334,335],{},"Slot",[192,337,181],{},[192,339,202],{},[204,341,342,354],{},[189,343,344,349,351],{},[209,345,346],{},[149,347,348],{},"leading",[209,350,221],{},[209,352,353],{},"Content rendered before the message (e.g., avatar).",[189,355,356,360,365],{},[209,357,358],{},[149,359,111],{},[209,361,362],{},[149,363,364],{},"{ id, role, parts }",[209,366,367],{},"Custom message content renderer.",[168,369,371],{"id":370},"types","Types",[141,373,378],{"className":374,"code":376,"language":377,"meta":147},[375],"language-ts","interface ChatMessageAction {\n  label: string\n  icon: Component\n  onClick?: (e: MouseEvent, message: UIMessage) => void\n}\n","ts",[149,379,376],{"__ignoreMap":147},{"title":147,"searchDepth":381,"depth":381,"links":382},2,[383,384,385,389],{"id":139,"depth":381,"text":16},{"id":153,"depth":381,"text":154},{"id":165,"depth":381,"text":166,"children":386},[387],{"id":170,"depth":388,"text":171},3,{"id":176,"depth":381,"text":177,"children":390},[391,392,393],{"id":180,"depth":388,"text":181},{"id":325,"depth":388,"text":326},{"id":370,"depth":388,"text":371},"md",{},true,{"title":30,"description":62},"RRL_pWjkGW27EfdOGzoOMaOkfm0pKA4qi958Uyj9V0Y",[400,401],{"title":26,"path":27,"stem":28,"children":-1},{"title":34,"path":35,"stem":36,"children":-1},1782375509086]