[{"data":1,"prerenderedAt":486},["ShallowReactive",2],{"mobile-docs-navigation":3,"command-menu-docs":62,"navigation":87,"mobile-docs-page-meta":106,"docs-pages-category":123,"\u002Fdocs\u002Fcomponents\u002Fdocs-search-modal":136,"surround-\u002Fdocs\u002Fcomponents\u002Fdocs-search-modal":483},[4],{"title":5,"path":6,"stem":7,"children":8,"page":61},"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,57],{"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",{"title":58,"path":59,"stem":60},"HomeCta","\u002Fdocs\u002Fcomponents\u002Fhome-cta","docs\u002F2.components\u002F9.home-cta",false,[63,65,67,69,71,73,75,77,79,81,83,85],{"path":27,"title":26,"description":64},"Build Nuxt chat interfaces with installable shadcn-vue components you own and compose.",{"path":31,"title":30,"description":66},"Render an individual chat message bubble with AI SDK parts, actions, and layout control.",{"path":35,"title":34,"description":68},"Compose chat message lists with scrolling behavior, loading states, and action-ready assistant output.",{"path":39,"title":38,"description":70},"Build chat input flows with an auto-resizing prompt, keyboard shortcuts, and flexible slot composition.",{"path":43,"title":42,"description":72},"Handle chat submit, stop, and retry actions with a status-aware control for prompt workflows.",{"path":21,"title":20,"description":74},"Explore reusable components that complement Nuxt templates and real app workflows.",{"path":47,"title":46,"description":76},"Add a lightweight local search modal to Nuxt documentation interfaces.",{"path":59,"title":58,"description":78},"Render a centered marketing CTA section with an integrated starfield background.",{"path":17,"title":16,"description":80},"Start from templates or install individual components in your Nuxt project.",{"path":11,"title":10,"description":82},"Stackhacker UI is an open-source collection of Nuxt templates and components for the shadcn-vue community.",{"path":51,"title":50,"description":84},"Render a responsive pricing plan section from app-owned data.",{"path":55,"title":54,"description":86},"Show app-owned AI reasoning text in a compact collapsible disclosure.",[88],{"title":5,"path":6,"stem":7,"children":89,"page":61},[90,94],{"title":10,"path":11,"stem":12,"children":91},[92,93],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":95},[96,97,98,99,100,101,102,103,104,105],{"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},{"title":58,"path":59,"stem":60},[107,109,110,111,113,114,115,116,117,119,121,122],{"path":11,"category":108},"overview",{"path":17,"category":108},{"path":21,"category":108},{"path":27,"category":112},"chat",{"path":31,"category":112},{"path":35,"category":112},{"path":39,"category":112},{"path":43,"category":112},{"path":47,"category":118},"content",{"path":51,"category":120},"marketing",{"path":55,"category":112},{"path":59,"category":120},[124,125,126,127,128,129,130,131,132,133,134,135],{"path":11,"category":108},{"path":17,"category":108},{"path":21,"category":108},{"path":27,"category":112},{"path":31,"category":112},{"path":35,"category":112},{"path":39,"category":112},{"path":43,"category":112},{"path":47,"category":118},{"path":51,"category":120},{"path":55,"category":112},{"path":59,"category":120},{"id":137,"title":46,"body":138,"category":118,"description":76,"extension":478,"meta":479,"navigation":480,"path":47,"seo":481,"stem":48,"__hash__":482},"docs\u002Fdocs\u002F2.components\u002F6.docs-search-modal.md",{"type":139,"value":140,"toc":462},"minimark",[141,145,149,160,164,172,176,182,189,197,200,204,209,211,215,219,385,389,418,422,452,456],[142,143],"component-preview",{"name":144},"DocsSearchModalDemo",[146,147,16],"h2",{"id":148},"installation",[150,151,157],"pre",{"className":152,"code":154,"language":155,"meta":156},[153],"language-bash","npx shadcn-vue@latest add \"https:\u002F\u002Fui.stackhacker.io\u002Fr\u002Fdocs-search-modal.json\"\n","bash","",[158,159,154],"code",{"__ignoreMap":156},[146,161,163],{"id":162},"usage","Usage",[150,165,170],{"className":166,"code":168,"language":169,"meta":156},[167],"language-vue","\u003Cscript setup lang=\"ts\">\nimport { DocsSearchModal, type DocsSearchItem } from '@\u002Fcomponents\u002Fdocs-search-modal'\n\nconst open = ref(false)\n\nconst items: DocsSearchItem[] = [\n  {\n    title: 'Introduction',\n    description: 'Start here to understand the docs structure.',\n    href: '\u002Fdocs\u002Fintroduction',\n    section: 'Getting Started',\n    content: 'overview installation usage'\n  }\n]\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003Cbutton type=\"button\" @click=\"open = true\">\n    Search\n  \u003C\u002Fbutton>\n\n  \u003CDocsSearchModal v-model:open=\"open\" :items=\"items\" \u002F>\n\u003C\u002Ftemplate>\n","vue",[158,171,168],{"__ignoreMap":156},[146,173,175],{"id":174},"app-owned-data","App-Owned Data",[177,178,179,181],"p",{},[158,180,46],{}," owns the modal UI, keyboard shortcut, local filtering, and result rendering boundary. Your app owns the search data.",[177,183,184,185,188],{},"Map static docs, Nuxt Content results, or any other source into ",[158,186,187],{},"DocsSearchItem[]"," before passing it to the component.",[150,190,195],{"className":191,"code":193,"language":194,"meta":156},[192],"language-ts","import type { DocsSearchItem } from '@\u002Fcomponents\u002Fdocs-search-modal'\n\nconst items: DocsSearchItem[] = pages.map(page => ({\n  title: page.title,\n  description: page.description,\n  href: page.path,\n  section: page.category,\n  content: page.bodyText\n}))\n","ts",[158,196,193],{"__ignoreMap":156},[177,198,199],{},"The component intentionally does not crawl pages, query Nuxt Content, call a search provider, rank results, or persist recent searches.",[146,201,203],{"id":202},"examples","Examples",[205,206,208],"h3",{"id":207},"default","Default",[142,210],{"name":144},[146,212,214],{"id":213},"api-reference","API Reference",[205,216,218],{"id":217},"props","Props",[220,221,222,240],"table",{},[223,224,225],"thead",{},[226,227,228,232,235,237],"tr",{},[229,230,231],"th",{},"Prop",[229,233,234],{},"Type",[229,236,208],{},[229,238,239],{},"Description",[241,242,243,263,283,302,321,340,368],"tbody",{},[226,244,245,251,255,260],{},[246,247,248],"td",{},[158,249,250],{},"items",[246,252,253],{},[158,254,187],{},[246,256,257],{},[158,258,259],{},"[]",[246,261,262],{},"Searchable items supplied by your app.",[226,264,265,270,275,280],{},[246,266,267],{},[158,268,269],{},"placeholder",[246,271,272],{},[158,273,274],{},"string",[246,276,277],{},[158,278,279],{},"'Search documentation...'",[246,281,282],{},"Search input placeholder.",[226,284,285,290,294,299],{},[246,286,287],{},[158,288,289],{},"searchLabel",[246,291,292],{},[158,293,274],{},[246,295,296],{},[158,297,298],{},"'Search documentation'",[246,300,301],{},"Accessible label for the dialog and search input.",[226,303,304,309,313,318],{},[246,305,306],{},[158,307,308],{},"emptyText",[246,310,311],{},[158,312,274],{},[246,314,315],{},[158,316,317],{},"'No pages available.'",[246,319,320],{},"Text shown when no query is entered and there are no items.",[226,322,323,328,332,337],{},[246,324,325],{},[158,326,327],{},"noResultsText",[246,329,330],{},[158,331,274],{},[246,333,334],{},[158,335,336],{},"'No results found.'",[246,338,339],{},"Text shown when a query has no matches.",[226,341,342,347,352,357],{},[246,343,344],{},[158,345,346],{},"shortcut",[246,348,349],{},[158,350,351],{},"boolean",[246,353,354],{},[158,355,356],{},"true",[246,358,359,360,363,364,367],{},"Enable ",[158,361,362],{},"Cmd+K"," \u002F ",[158,365,366],{},"Ctrl+K"," to open the modal.",[226,369,370,375,379,382],{},[246,371,372],{},[158,373,374],{},"class",[246,376,377],{},[158,378,274],{},[246,380,381],{},"—",[246,383,384],{},"Additional CSS classes for the modal panel.",[205,386,388],{"id":387},"models","Models",[220,390,391,402],{},[223,392,393],{},[226,394,395,398,400],{},[229,396,397],{},"Model",[229,399,234],{},[229,401,239],{},[241,403,404],{},[226,405,406,411,415],{},[246,407,408],{},[158,409,410],{},"open",[246,412,413],{},[158,414,351],{},[246,416,417],{},"Controls whether the modal is open.",[205,419,421],{"id":420},"slots","Slots",[220,423,424,435],{},[223,425,426],{},[226,427,428,431,433],{},[229,429,430],{},"Slot",[229,432,218],{},[229,434,239],{},[241,436,437],{},[226,438,439,444,449],{},[246,440,441],{},[158,442,443],{},"item",[246,445,446],{},[158,447,448],{},"{ item, query }",[246,450,451],{},"Custom result renderer.",[205,453,455],{"id":454},"types","Types",[150,457,460],{"className":458,"code":459,"language":194,"meta":156},[192],"interface DocsSearchItem {\n  title: string\n  href: string\n  description?: string\n  section?: string\n  content?: string\n}\n",[158,461,459],{"__ignoreMap":156},{"title":156,"searchDepth":463,"depth":463,"links":464},2,[465,466,467,468,472],{"id":148,"depth":463,"text":16},{"id":162,"depth":463,"text":163},{"id":174,"depth":463,"text":175},{"id":202,"depth":463,"text":203,"children":469},[470],{"id":207,"depth":471,"text":208},3,{"id":213,"depth":463,"text":214,"children":473},[474,475,476,477],{"id":217,"depth":471,"text":218},{"id":387,"depth":471,"text":388},{"id":420,"depth":471,"text":421},{"id":454,"depth":471,"text":455},"md",{},true,{"title":46,"description":76},"PrAa06gN3jJafoX_OoQOFi42BIYFo7LJHFKWCvUlPT0",[484,485],{"title":42,"path":43,"stem":44,"children":-1},{"title":50,"path":51,"stem":52,"children":-1},1782381874054]