[{"data":1,"prerenderedAt":397},["ShallowReactive",2],{"command-menu-docs":3,"mobile-docs-navigation":116,"navigation":183,"mobile-docs-page-meta":218,"docs-pages-category":252,"\u002Fdocs\u002Fgetting-started":281,"surround-\u002Fdocs\u002Fgetting-started":394},[4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112],{"path":5,"title":6,"description":7},"\u002Fdocs\u002Fcomponents\u002Fblog-post-grid","BlogPostGrid","Render responsive blog and content teaser grids from display-ready post data.",{"path":9,"title":10,"description":11},"\u002Fdocs\u002Fcomponents\u002Fchangelog-timeline","ChangelogTimeline","Render a release timeline from app-owned changelog data with optional rich body slots.",{"path":13,"title":14,"description":15},"\u002Fdocs\u002Fcomponents\u002Fchat","Chat","Build Nuxt chat interfaces with installable shadcn-vue components you own and compose.",{"path":17,"title":18,"description":19},"\u002Fdocs\u002Fcomponents\u002Fchat-message","ChatMessage","Render an individual chat message bubble with AI SDK parts, actions, and layout control.",{"path":21,"title":22,"description":23},"\u002Fdocs\u002Fcomponents\u002Fchat-messages","ChatMessages","Compose chat message lists with scrolling behavior, loading states, and action-ready assistant output.",{"path":25,"title":26,"description":27},"\u002Fdocs\u002Fcomponents\u002Fchat-prompt","ChatPrompt","Build chat input flows with an auto-resizing prompt, keyboard shortcuts, and flexible slot composition.",{"path":29,"title":30,"description":31},"\u002Fdocs\u002Fcomponents\u002Fchat-prompt-submit","ChatPromptSubmit","Handle chat submit, stop, and retry actions with a status-aware control for prompt workflows.",{"path":33,"title":34,"description":35},"\u002Fdocs\u002Fcomponents","Components","Explore reusable components that complement Nuxt templates and real app workflows.",{"path":37,"title":38,"description":39},"\u002Fdocs\u002Fcomponents\u002Fdocs-pager","DocsPager","Render previous and next documentation links from app-owned page data.",{"path":41,"title":42,"description":43},"\u002Fdocs\u002Fcomponents\u002Fdocs-search-modal","DocsSearchModal","Add a lightweight local search modal to Nuxt documentation interfaces.",{"path":45,"title":46,"description":47},"\u002Fdocs\u002Fcomponents\u002Ffaq-tabs","FaqTabs","Render categorized FAQ sections while keeping answer content in your app.",{"path":49,"title":50,"description":51},"\u002Fdocs\u002Fcomponents\u002Ffeature-card","FeatureCard","Render a reusable feature, content, or navigation card with optional link and icon slot.",{"path":53,"title":54,"description":55},"\u002Fdocs\u002Fcomponents\u002Ffeature-grid","FeatureGrid","Render a complete feature section from app-owned feature data.",{"path":57,"title":58,"description":59},"\u002Fdocs\u002Fcomponents\u002Ffeature-split","FeatureSplit","Render alternating split feature sections with app-owned media and icon slots.",{"path":61,"title":62,"description":63},"\u002Fdocs\u002Fcomponents\u002Ffile-attachment","FileAttachment","Render display-only file attachment UI while your app owns upload behavior.",{"path":65,"title":66,"description":67},"\u002Fdocs\u002Fcomponents\u002Fform","Form","Validate app-owned form state and distribute errors to named fields.",{"path":69,"title":70,"description":71},"\u002Fdocs\u002Fcomponents\u002Fform-field","FormField","Wrap form controls with labels, descriptions, help text, and validation errors.",{"path":73,"title":74,"description":75},"\u002Fdocs\u002Fcomponents\u002Fhome-cta","HomeCta","Render a centered marketing CTA section with an integrated starfield background.",{"path":77,"title":78,"description":79},"\u002Fdocs\u002Fgetting-started\u002Finstallation","Installation","Start from templates or install individual components in your Nuxt project.",{"path":81,"title":82,"description":83},"\u002Fdocs\u002Fgetting-started","Introduction","Stackhacker UI is an open-source collection of Nuxt templates and components for the shadcn-vue community.",{"path":85,"title":86,"description":87},"\u002Fdocs\u002Fcomponents\u002Fmetrics-grid","MetricsGrid","Render a responsive marketing metrics section from app-owned data.",{"path":89,"title":90,"description":91},"\u002Fdocs\u002Fcomponents\u002Fmodel-picker","ModelPicker","Render a controlled model selector from app-owned model\u002Fprovider data.",{"path":93,"title":94,"description":95},"\u002Fdocs\u002Fcomponents\u002Fpage-toc","PageToc","Render an on-page table of contents from app-supplied heading links.",{"path":97,"title":98,"description":99},"\u002Fdocs\u002Fcomponents\u002Fpolaroid-card","PolaroidCard","Render a tilted photo card with app-owned image data and explicit presentation controls.",{"path":101,"title":102,"description":103},"\u002Fdocs\u002Fcomponents\u002Fpricing-plans","PricingPlans","Render a responsive pricing plan section from app-owned data.",{"path":105,"title":106,"description":107},"\u002Fdocs\u002Fcomponents\u002Freasoning-disclosure","ReasoningDisclosure","Show app-owned AI reasoning text in a compact collapsible disclosure.",{"path":109,"title":110,"description":111},"\u002Fdocs\u002Fcomponents\u002Ftestimonials","Testimonials","Render a responsive social-proof section from app-owned testimonial data.",{"path":113,"title":114,"description":115},"\u002Fdocs\u002Fcomponents\u002Fwork-experience","WorkExperience","Render compact work-history and resume lists from app-owned experience data.",[117],{"title":118,"path":119,"stem":120,"children":121,"page":182},"Docs","\u002Fdocs","docs",[122,128],{"title":82,"path":81,"stem":123,"children":124},"docs\u002F1.getting-started\u002F1.index",[125,126],{"title":82,"path":81,"stem":123},{"title":78,"path":77,"stem":127},"docs\u002F1.getting-started\u002F2.installation",{"title":34,"path":33,"stem":129,"children":130},"docs\u002F2.components\u002F0.index",[131,132,134,136,138,140,142,144,146,148,150,152,154,156,158,160,162,164,166,168,170,172,174,176,178,180],{"title":34,"path":33,"stem":129},{"title":14,"path":13,"stem":133},"docs\u002F2.components\u002F1.chat",{"title":98,"path":97,"stem":135},"docs\u002F2.components\u002F10.polaroid-card",{"title":50,"path":49,"stem":137},"docs\u002F2.components\u002F11.feature-card",{"title":10,"path":9,"stem":139},"docs\u002F2.components\u002F12.changelog-timeline",{"title":86,"path":85,"stem":141},"docs\u002F2.components\u002F13.metrics-grid",{"title":110,"path":109,"stem":143},"docs\u002F2.components\u002F13.testimonials",{"title":54,"path":53,"stem":145},"docs\u002F2.components\u002F14.feature-grid",{"title":46,"path":45,"stem":147},"docs\u002F2.components\u002F15.faq-tabs",{"title":6,"path":5,"stem":149},"docs\u002F2.components\u002F16.blog-post-grid",{"title":58,"path":57,"stem":151},"docs\u002F2.components\u002F17.feature-split",{"title":62,"path":61,"stem":153},"docs\u002F2.components\u002F17.file-attachment",{"title":90,"path":89,"stem":155},"docs\u002F2.components\u002F17.model-picker",{"title":114,"path":113,"stem":157},"docs\u002F2.components\u002F17.work-experience",{"title":66,"path":65,"stem":159},"docs\u002F2.components\u002F18.form",{"title":70,"path":69,"stem":161},"docs\u002F2.components\u002F19.form-field",{"title":18,"path":17,"stem":163},"docs\u002F2.components\u002F2.chat-message",{"title":22,"path":21,"stem":165},"docs\u002F2.components\u002F3.chat-messages",{"title":26,"path":25,"stem":167},"docs\u002F2.components\u002F4.chat-prompt",{"title":30,"path":29,"stem":169},"docs\u002F2.components\u002F5.chat-prompt-submit",{"title":42,"path":41,"stem":171},"docs\u002F2.components\u002F6.docs-search-modal",{"title":102,"path":101,"stem":173},"docs\u002F2.components\u002F7.pricing-plans",{"title":94,"path":93,"stem":175},"docs\u002F2.components\u002F8.page-toc",{"title":106,"path":105,"stem":177},"docs\u002F2.components\u002F8.reasoning-disclosure",{"title":38,"path":37,"stem":179},"docs\u002F2.components\u002F9.docs-pager",{"title":74,"path":73,"stem":181},"docs\u002F2.components\u002F9.home-cta",false,[184],{"title":118,"path":119,"stem":120,"children":185,"page":182},[186,190],{"title":82,"path":81,"stem":123,"children":187},[188,189],{"title":82,"path":81,"stem":123},{"title":78,"path":77,"stem":127},{"title":34,"path":33,"stem":129,"children":191},[192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217],{"title":34,"path":33,"stem":129},{"title":14,"path":13,"stem":133},{"title":98,"path":97,"stem":135},{"title":50,"path":49,"stem":137},{"title":10,"path":9,"stem":139},{"title":86,"path":85,"stem":141},{"title":110,"path":109,"stem":143},{"title":54,"path":53,"stem":145},{"title":46,"path":45,"stem":147},{"title":6,"path":5,"stem":149},{"title":58,"path":57,"stem":151},{"title":62,"path":61,"stem":153},{"title":90,"path":89,"stem":155},{"title":114,"path":113,"stem":157},{"title":66,"path":65,"stem":159},{"title":70,"path":69,"stem":161},{"title":18,"path":17,"stem":163},{"title":22,"path":21,"stem":165},{"title":26,"path":25,"stem":167},{"title":30,"path":29,"stem":169},{"title":42,"path":41,"stem":171},{"title":102,"path":101,"stem":173},{"title":94,"path":93,"stem":175},{"title":106,"path":105,"stem":177},{"title":38,"path":37,"stem":179},{"title":74,"path":73,"stem":181},[219,221,222,223,225,227,229,230,231,232,233,234,235,236,237,238,239,241,242,243,244,245,246,247,248,249,250,251],{"path":81,"category":220},"overview",{"path":77,"category":220},{"path":33,"category":220},{"path":13,"category":224},"chat",{"path":97,"category":226},"content",{"path":49,"category":228},"marketing",{"path":9,"category":226},{"path":85,"category":228},{"path":109,"category":228},{"path":53,"category":228},{"path":45,"category":228},{"path":5,"category":226},{"path":57,"category":228},{"path":61,"category":224},{"path":89,"category":224},{"path":113,"category":226},{"path":65,"category":240},"form",{"path":69,"category":240},{"path":17,"category":224},{"path":21,"category":224},{"path":25,"category":224},{"path":29,"category":224},{"path":41,"category":226},{"path":101,"category":228},{"path":93,"category":226},{"path":105,"category":224},{"path":37,"category":226},{"path":73,"category":228},[253,254,255,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280],{"path":81,"category":220},{"path":77,"category":220},{"path":33,"category":220},{"path":13,"category":224},{"path":97,"category":226},{"path":49,"category":228},{"path":9,"category":226},{"path":85,"category":228},{"path":109,"category":228},{"path":53,"category":228},{"path":45,"category":228},{"path":5,"category":226},{"path":57,"category":228},{"path":61,"category":224},{"path":89,"category":224},{"path":113,"category":226},{"path":65,"category":240},{"path":69,"category":240},{"path":17,"category":224},{"path":21,"category":224},{"path":25,"category":224},{"path":29,"category":224},{"path":41,"category":226},{"path":101,"category":228},{"path":93,"category":226},{"path":105,"category":224},{"path":37,"category":226},{"path":73,"category":228},{"id":282,"title":82,"body":283,"category":220,"description":83,"extension":389,"meta":390,"navigation":391,"path":81,"seo":392,"stem":123,"__hash__":393},"docs\u002Fdocs\u002F1.getting-started\u002F1.index.md",{"type":284,"value":285,"toc":380},"minimark",[286,291,300,303,307,310,313,329,333,336,339,343,357,361,364],[287,288,290],"h2",{"id":289},"what-is-stackhacker-ui","What is Stackhacker UI?",[292,293,294,295,299],"p",{},"Stackhacker UI (",[296,297,298],"code",{},"stackhacker-ui",") is an open-source project for Nuxt developers using shadcn-vue.",[292,301,302],{},"It adds practical templates and reusable components to make implementation easier in real Nuxt projects.",[287,304,306],{"id":305},"why-shadcn-approach","Why shadcn approach",[292,308,309],{},"With the shadcn approach, components are added as source code directly to your project.",[292,311,312],{},"That means you can:",[314,315,316,320,323,326],"ul",{},[317,318,319],"li",{},"Own the code and customize deeply.",[317,321,322],{},"Avoid vendor lock-in.",[317,324,325],{},"Keep design and behavior aligned with your product.",[317,327,328],{},"Move fast with copyable, composable building blocks.",[287,330,332],{"id":331},"community-driven-templates","Community-driven templates",[292,334,335],{},"Templates are built from real implementation needs and shared back to the community.\nSome templates include full-stack foundations so you can start from a working base and adapt to your project.",[292,337,338],{},"Coverage will continue to expand over time.",[287,340,342],{"id":341},"what-you-get","What you get",[314,344,345,348,351,354],{},[317,346,347],{},"More implementation options for Nuxt developers using shadcn-vue.",[317,349,350],{},"Ready-to-use templates for practical app scenarios.",[317,352,353],{},"Reusable components you can install independently.",[317,355,356],{},"A growing set of templates and components, starting with AI Chat-focused blocks.",[287,358,360],{"id":359},"how-to-start","How to start",[292,362,363],{},"Choose your path based on your goal.",[314,365,366,375],{},[317,367,368,369,374],{},"If you want the fastest path, start with ",[370,371,373],"a",{"href":372},"\u002Ftemplates","Templates",".",[317,376,377,378,374],{},"If you only need specific building blocks, go to ",[370,379,34],{"href":33},{"title":381,"searchDepth":382,"depth":382,"links":383},"",2,[384,385,386,387,388],{"id":289,"depth":382,"text":290},{"id":305,"depth":382,"text":306},{"id":331,"depth":382,"text":332},{"id":341,"depth":382,"text":342},{"id":359,"depth":382,"text":360},"md",{},true,{"title":82,"description":83},"iqjpmrTZjTc7AMn1WDv0vAjRA3HIezhcz-k3K-h0ZNY",[395,396],null,{"title":78,"path":77,"stem":127,"children":-1},1782820037088]