[{"data":1,"prerenderedAt":325},["ShallowReactive",2],{"mobile-docs-navigation":3,"command-menu-docs":54,"navigation":75,"mobile-docs-page-meta":92,"docs-pages-category":107,"\u002Fdocs\u002Fcomponents\u002Fpricing-plans":118,"surround-\u002Fdocs\u002Fcomponents\u002Fpricing-plans":322},[4],{"title":5,"path":6,"stem":7,"children":8,"page":53},"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],{"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",false,[55,57,59,61,63,65,67,69,71,73],{"path":27,"title":26,"description":56},"Build Nuxt chat interfaces with installable shadcn-vue components you own and compose.",{"path":31,"title":30,"description":58},"Render an individual chat message bubble with AI SDK parts, actions, and layout control.",{"path":35,"title":34,"description":60},"Compose chat message lists with scrolling behavior, loading states, and action-ready assistant output.",{"path":39,"title":38,"description":62},"Build chat input flows with an auto-resizing prompt, keyboard shortcuts, and flexible slot composition.",{"path":43,"title":42,"description":64},"Handle chat submit, stop, and retry actions with a status-aware control for prompt workflows.",{"path":21,"title":20,"description":66},"Explore reusable components that complement Nuxt templates and real app workflows.",{"path":47,"title":46,"description":68},"Add a lightweight local search modal to Nuxt documentation interfaces.",{"path":17,"title":16,"description":70},"Start from templates or install individual components in your Nuxt project.",{"path":11,"title":10,"description":72},"Stackhacker UI is an open-source collection of Nuxt templates and components for the shadcn-vue community.",{"path":51,"title":50,"description":74},"Render a responsive pricing plan section from app-owned data.",[76],{"title":5,"path":6,"stem":7,"children":77,"page":53},[78,82],{"title":10,"path":11,"stem":12,"children":79},[80,81],{"title":10,"path":11,"stem":12},{"title":16,"path":17,"stem":18},{"title":20,"path":21,"stem":22,"children":83},[84,85,86,87,88,89,90,91],{"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},[93,95,96,97,99,100,101,102,103,105],{"path":11,"category":94},"overview",{"path":17,"category":94},{"path":21,"category":94},{"path":27,"category":98},"chat",{"path":31,"category":98},{"path":35,"category":98},{"path":39,"category":98},{"path":43,"category":98},{"path":47,"category":104},"content",{"path":51,"category":106},"marketing",[108,109,110,111,112,113,114,115,116,117],{"path":11,"category":94},{"path":17,"category":94},{"path":21,"category":94},{"path":27,"category":98},{"path":31,"category":98},{"path":35,"category":98},{"path":39,"category":98},{"path":43,"category":98},{"path":47,"category":104},{"path":51,"category":106},{"id":119,"title":50,"body":120,"category":106,"description":74,"extension":317,"meta":318,"navigation":319,"path":51,"seo":320,"stem":52,"__hash__":321},"docs\u002Fdocs\u002F2.components\u002F7.pricing-plans.md",{"type":121,"value":122,"toc":303},"minimark",[123,127,131,142,146,154,158,164,171,175,180,182,186,190,291,295],[124,125],"component-preview",{"name":126},"PricingPlansDemo",[128,129,16],"h2",{"id":130},"installation",[132,133,139],"pre",{"className":134,"code":136,"language":137,"meta":138},[135],"language-bash","npx shadcn-vue@latest add \"https:\u002F\u002Fui.stackhacker.io\u002Fr\u002Fpricing-plans.json\"\n","bash","",[140,141,136],"code",{"__ignoreMap":138},[128,143,145],{"id":144},"usage","Usage",[132,147,152],{"className":148,"code":150,"language":151,"meta":138},[149],"language-vue","\u003Cscript setup lang=\"ts\">\nimport { PricingPlans, type PricingPlan } from '@\u002Fcomponents\u002Fpricing-plans'\n\nconst billingPeriod = ref\u003C'month' | 'year'>('month')\n\nconst plans: PricingPlan[] = [\n  {\n    title: 'Basic',\n    description: 'For solo builders.',\n    price: { month: '$9', year: '$90' },\n    cta: { label: 'Get started', href: '\u002Fsignup' },\n    features: ['1 workspace', 'Core analytics', 'Community support']\n  },\n  {\n    title: 'Standard',\n    description: 'For small teams.',\n    price: { month: '$19', year: '$190' },\n    cta: { label: 'Get started', href: '\u002Fsignup' },\n    features: ['5 workspaces', 'Priority analytics', 'Email support'],\n    highlight: true\n  }\n]\n\u003C\u002Fscript>\n\n\u003Ctemplate>\n  \u003CPricingPlans :plans=\"plans\" :billing-period=\"billingPeriod\" \u002F>\n\u003C\u002Ftemplate>\n","vue",[140,153,150],{"__ignoreMap":138},[128,155,157],{"id":156},"app-owned-billing","App-Owned Billing",[159,160,161,163],"p",{},[140,162,50],{}," renders pricing cards from the data you pass in. Your app owns billing periods, checkout links, auth, subscription state, and any pricing data source.",[159,165,166,167,170],{},"Use the ",[140,168,169],{},"billingPeriod"," prop to decide which price label to show. Keep monthly\u002Fyearly toggles, billing-provider integration, and account logic outside the component.",[128,172,174],{"id":173},"examples","Examples",[176,177,179],"h3",{"id":178},"default","Default",[124,181],{"name":126},[128,183,185],{"id":184},"api-reference","API Reference",[176,187,189],{"id":188},"props","Props",[191,192,193,211],"table",{},[194,195,196],"thead",{},[197,198,199,203,206,208],"tr",{},[200,201,202],"th",{},"Prop",[200,204,205],{},"Type",[200,207,179],{},[200,209,210],{},"Description",[212,213,214,235,254,274],"tbody",{},[197,215,216,222,227,232],{},[217,218,219],"td",{},[140,220,221],{},"plans",[217,223,224],{},[140,225,226],{},"PricingPlan[]",[217,228,229],{},[140,230,231],{},"[]",[217,233,234],{},"Pricing plans supplied by your app.",[197,236,237,241,246,251],{},[217,238,239],{},[140,240,169],{},[217,242,243],{},[140,244,245],{},"'month' | 'year'",[217,247,248],{},[140,249,250],{},"'month'",[217,252,253],{},"Selected price period to render.",[197,255,256,261,266,271],{},[217,257,258],{},[140,259,260],{},"highlightLabel",[217,262,263],{},[140,264,265],{},"string",[217,267,268],{},[140,269,270],{},"'Popular'",[217,272,273],{},"Label shown on highlighted plans. Use an empty string to hide it.",[197,275,276,281,285,288],{},[217,277,278],{},[140,279,280],{},"class",[217,282,283],{},[140,284,265],{},[217,286,287],{},"—",[217,289,290],{},"Additional CSS classes for the section.",[176,292,294],{"id":293},"types","Types",[132,296,301],{"className":297,"code":299,"language":300,"meta":138},[298],"language-ts","interface PricingPlan {\n  title: string\n  description: string\n  price: PricingPlanPrice\n  cta: PricingPlanCta\n  features: string[]\n  highlight?: boolean\n}\n\ninterface PricingPlanPrice {\n  month: string\n  year: string\n}\n\ninterface PricingPlanCta {\n  label: string\n  href: string\n}\n","ts",[140,302,299],{"__ignoreMap":138},{"title":138,"searchDepth":304,"depth":304,"links":305},2,[306,307,308,309,313],{"id":130,"depth":304,"text":16},{"id":144,"depth":304,"text":145},{"id":156,"depth":304,"text":157},{"id":173,"depth":304,"text":174,"children":310},[311],{"id":178,"depth":312,"text":179},3,{"id":184,"depth":304,"text":185,"children":314},[315,316],{"id":188,"depth":312,"text":189},{"id":293,"depth":312,"text":294},"md",{},true,{"title":50,"description":74},"diyzU9D-Z2gDbr14mQM33iAPI0njm9jReV2i_PAg8m4",[323,324],{"title":46,"path":47,"stem":48,"children":-1},null,1782359681495]