[{"data":1,"prerenderedAt":1015},["ShallowReactive",2],{"navigation":3,"$fMW9jOOkNpZriWVK3P_bZYNOyYR2IEPvrHsC7cDBlJJc":404,"/docs/components/input-group":417,"surround-/docs/components/input-group":1012},[4],{"title":5,"path":6,"stem":7,"children":8,"page":18},"Docs","/docs","docs",[9,273,299,317,330,356],{"title":10,"path":11,"stem":12,"children":13,"new":18,"type":272},"Components","/docs/components","docs/02.components",[14,20,24,28,32,36,40,44,48,52,56,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188,192,196,200,204,208,212,216,220,224,228,232,236,240,244,248,252,256,260,264,268],{"title":15,"path":16,"stem":17,"new":18,"type":19,"children":-1},"Accordion","/docs/components/accordion","docs/components/accordion",false,"component",{"title":21,"path":22,"stem":23,"new":18,"type":19,"children":-1},"Alert","/docs/components/alert","docs/components/alert",{"title":25,"path":26,"stem":27,"new":18,"type":19,"children":-1},"Alert Dialog","/docs/components/alert-dialog","docs/components/alert-dialog",{"title":29,"path":30,"stem":31,"new":18,"type":19,"children":-1},"Aspect Ratio","/docs/components/aspect-ratio","docs/components/aspect-ratio",{"title":33,"path":34,"stem":35,"new":18,"type":19,"children":-1},"Avatar","/docs/components/avatar","docs/components/avatar",{"title":37,"path":38,"stem":39,"new":18,"type":19,"children":-1},"Badge","/docs/components/badge","docs/components/badge",{"title":41,"path":42,"stem":43,"new":18,"type":19,"children":-1},"Breadcrumb","/docs/components/breadcrumb","docs/components/breadcrumb",{"title":45,"path":46,"stem":47,"new":18,"type":19,"children":-1},"Button","/docs/components/button","docs/components/button",{"title":49,"path":50,"stem":51,"new":18,"type":19,"children":-1},"Button Group","/docs/components/button-group","docs/components/button-group",{"title":53,"path":54,"stem":55,"new":18,"type":19,"children":-1},"Calendar","/docs/components/calendar","docs/components/calendar",{"title":57,"path":58,"stem":59,"new":18,"type":19,"children":-1},"Card","/docs/components/card","docs/components/card",{"title":61,"path":62,"stem":63,"new":18,"type":19,"children":-1},"Carousel","/docs/components/carousel","docs/components/carousel",{"title":65,"path":66,"stem":67,"new":18,"type":19,"children":-1},"Chart","/docs/components/chart","docs/components/chart",{"title":69,"path":70,"stem":71,"new":18,"type":19,"children":-1},"Checkbox","/docs/components/checkbox","docs/components/checkbox",{"title":73,"path":74,"stem":75,"new":18,"type":19,"children":-1},"Collapsible","/docs/components/collapsible","docs/components/collapsible",{"title":77,"path":78,"stem":79,"new":18,"type":19,"children":-1},"Combobox","/docs/components/combobox","docs/components/combobox",{"title":81,"path":82,"stem":83,"new":18,"type":19,"children":-1},"Command","/docs/components/command","docs/components/command",{"title":85,"path":86,"stem":87,"new":18,"type":19,"children":-1},"Context Menu","/docs/components/context-menu","docs/components/context-menu",{"title":89,"path":90,"stem":91,"new":18,"type":19,"children":-1},"Data Table","/docs/components/data-table","docs/components/data-table",{"title":93,"path":94,"stem":95,"new":18,"type":19,"children":-1},"Date Picker","/docs/components/date-picker","docs/components/date-picker",{"title":97,"path":98,"stem":99,"new":18,"type":19,"children":-1},"Dialog","/docs/components/dialog","docs/components/dialog",{"title":101,"path":102,"stem":103,"new":18,"type":19,"children":-1},"Drawer","/docs/components/drawer","docs/components/drawer",{"title":105,"path":106,"stem":107,"new":18,"type":19,"children":-1},"Dropdown Menu","/docs/components/dropdown-menu","docs/components/dropdown-menu",{"title":109,"path":110,"stem":111,"new":18,"type":19,"children":-1},"Empty","/docs/components/empty","docs/components/empty",{"title":113,"path":114,"stem":115,"new":18,"type":19,"children":-1},"Field","/docs/components/field","docs/components/field",{"title":117,"path":118,"stem":119,"new":18,"type":19,"children":-1},"Form","/docs/components/form","docs/components/form",{"title":121,"path":122,"stem":123,"new":18,"type":19,"children":-1},"Hover Card","/docs/components/hover-card","docs/components/hover-card",{"title":125,"path":126,"stem":127,"new":18,"type":19,"children":-1},"Input","/docs/components/input","docs/components/input",{"title":129,"path":130,"stem":131,"new":18,"type":19,"children":-1},"Input Group","/docs/components/input-group","docs/components/input-group",{"title":133,"path":134,"stem":135,"new":18,"type":19,"children":-1},"Input OTP","/docs/components/input-otp","docs/components/input-otp",{"title":137,"path":138,"stem":139,"new":18,"type":19,"children":-1},"Item","/docs/components/item","docs/components/item",{"title":141,"path":142,"stem":143,"new":18,"type":19,"children":-1},"Kbd","/docs/components/kbd","docs/components/kbd",{"title":145,"path":146,"stem":147,"new":18,"type":19,"children":-1},"Label","/docs/components/label","docs/components/label",{"title":149,"path":150,"stem":151,"new":18,"type":19,"children":-1},"Menubar","/docs/components/menubar","docs/components/menubar",{"title":153,"path":154,"stem":155,"new":18,"type":19,"children":-1},"Native Select","/docs/components/native-select","docs/components/native-select",{"title":157,"path":158,"stem":159,"new":18,"type":19,"children":-1},"Navigation Menu","/docs/components/navigation-menu","docs/components/navigation-menu",{"title":161,"path":162,"stem":163,"new":18,"type":19,"children":-1},"Number Field","/docs/components/number-field","docs/components/number-field",{"title":165,"path":166,"stem":167,"new":18,"type":19,"children":-1},"Pagination","/docs/components/pagination","docs/components/pagination",{"title":169,"path":170,"stem":171,"new":18,"type":19,"children":-1},"Pin Input","/docs/components/pin-input","docs/components/pin-input",{"title":173,"path":174,"stem":175,"new":18,"type":19,"children":-1},"Popover","/docs/components/popover","docs/components/popover",{"title":177,"path":178,"stem":179,"new":18,"type":19,"children":-1},"Progress","/docs/components/progress","docs/components/progress",{"title":181,"path":182,"stem":183,"new":18,"type":19,"children":-1},"Radio Group","/docs/components/radio-group","docs/components/radio-group",{"title":185,"path":186,"stem":187,"new":18,"type":19,"children":-1},"Range Calendar","/docs/components/range-calendar","docs/components/range-calendar",{"title":189,"path":190,"stem":191,"new":18,"type":19,"children":-1},"Resizable","/docs/components/resizable","docs/components/resizable",{"title":193,"path":194,"stem":195,"new":18,"type":19,"children":-1},"Scroll Area","/docs/components/scroll-area","docs/components/scroll-area",{"title":197,"path":198,"stem":199,"new":18,"type":19,"children":-1},"Select","/docs/components/select","docs/components/select",{"title":201,"path":202,"stem":203,"new":18,"type":19,"children":-1},"Separator","/docs/components/separator","docs/components/separator",{"title":205,"path":206,"stem":207,"new":18,"type":19,"children":-1},"Sheet","/docs/components/sheet","docs/components/sheet",{"title":209,"path":210,"stem":211,"new":18,"type":19,"children":-1},"Sidebar","/docs/components/sidebar","docs/components/sidebar",{"title":213,"path":214,"stem":215,"new":18,"type":19,"children":-1},"Skeleton","/docs/components/skeleton","docs/components/skeleton",{"title":217,"path":218,"stem":219,"new":18,"type":19,"children":-1},"Slider","/docs/components/slider","docs/components/slider",{"title":221,"path":222,"stem":223,"new":18,"type":19,"children":-1},"Sonner","/docs/components/sonner","docs/components/sonner",{"title":225,"path":226,"stem":227,"new":18,"type":19,"children":-1},"Spinner","/docs/components/spinner","docs/components/spinner",{"title":229,"path":230,"stem":231,"new":18,"type":19,"children":-1},"Stepper","/docs/components/stepper","docs/components/stepper",{"title":233,"path":234,"stem":235,"new":18,"type":19,"children":-1},"Switch","/docs/components/switch","docs/components/switch",{"title":237,"path":238,"stem":239,"new":18,"type":19,"children":-1},"Table","/docs/components/table","docs/components/table",{"title":241,"path":242,"stem":243,"new":18,"type":19,"children":-1},"Tabs","/docs/components/tabs","docs/components/tabs",{"title":245,"path":246,"stem":247,"new":18,"type":19,"children":-1},"Tags Input","/docs/components/tags-input","docs/components/tags-input",{"title":249,"path":250,"stem":251,"new":18,"type":19,"children":-1},"Textarea","/docs/components/textarea","docs/components/textarea",{"title":253,"path":254,"stem":255,"new":18,"type":19,"children":-1},"Toast","/docs/components/toast","docs/components/toast",{"title":257,"path":258,"stem":259,"new":18,"type":19,"children":-1},"Toggle","/docs/components/toggle","docs/components/toggle",{"title":261,"path":262,"stem":263,"new":18,"type":19,"children":-1},"Toggle Group","/docs/components/toggle-group","docs/components/toggle-group",{"title":265,"path":266,"stem":267,"new":18,"type":19,"children":-1},"Tooltip","/docs/components/tooltip","docs/components/tooltip",{"title":269,"path":270,"stem":271,"new":18,"type":19,"children":-1},"Typography","/docs/components/typography","docs/components/typography","group",{"title":274,"path":275,"stem":276,"children":277,"new":18,"type":272},"Installation","/docs/installation","docs/02.installation",[278,283,287,291,295],{"title":279,"path":280,"stem":281,"new":18,"type":282,"children":-1},"Vite","/docs/installation/vite","docs/installation/01.vite","page",{"title":284,"path":285,"stem":286,"new":18,"type":282,"children":-1},"Nuxt","/docs/installation/nuxt","docs/installation/02.nuxt",{"title":288,"path":289,"stem":290,"new":18,"type":282,"children":-1},"Astro","/docs/installation/astro","docs/installation/03.astro",{"title":292,"path":293,"stem":294,"new":18,"type":282,"children":-1},"Laravel","/docs/installation/laravel","docs/installation/04.laravel",{"title":296,"path":297,"stem":298,"new":18,"type":282,"children":-1},"Manual Installation","/docs/installation/manual","docs/installation/05.manual",{"title":300,"path":301,"stem":302,"children":303,"new":18,"type":272},"Dark Mode","/docs/dark-mode","docs/05.dark-mode",[304,307,310,314],{"title":279,"path":305,"stem":306,"new":18,"type":282,"children":-1},"/docs/dark-mode/vite","docs/dark-mode/01.vite",{"title":284,"path":308,"stem":309,"new":18,"type":282,"children":-1},"/docs/dark-mode/nuxt","docs/dark-mode/02.nuxt",{"title":311,"path":312,"stem":313,"new":18,"type":282,"children":-1},"Vitepress","/docs/dark-mode/vitepress","docs/dark-mode/03.vitepress",{"title":288,"path":315,"stem":316,"new":18,"type":282,"children":-1},"/docs/dark-mode/astro","docs/dark-mode/04.astro",{"title":318,"path":319,"stem":320,"children":321,"new":18,"type":272},"Forms","/docs/forms","docs/forms",[322,326],{"title":323,"path":324,"stem":325,"new":18,"type":282,"children":-1},"VeeValidate","/docs/forms/vee-validate","docs/forms/01.vee-validate",{"title":327,"path":328,"stem":329,"new":18,"type":282,"children":-1},"TanStack Form","/docs/forms/tanstack-form","docs/forms/02.tanstack-form",{"title":331,"path":332,"stem":333,"children":334,"new":18,"type":272},"Registry","/docs/registry","docs/registry/index",[335,336,340,344,348,352],{"title":331,"path":332,"stem":333,"new":18,"type":282,"children":-1},{"title":337,"path":338,"stem":339,"new":18,"type":282,"children":-1},"Examples","/docs/registry/examples","docs/registry/examples",{"title":341,"path":342,"stem":343,"new":18,"type":282,"children":-1},"FAQ","/docs/registry/faq","docs/registry/faq",{"title":345,"path":346,"stem":347,"new":18,"type":282,"children":-1},"Getting Started","/docs/registry/getting-started","docs/registry/getting-started",{"title":349,"path":350,"stem":351,"new":18,"type":282,"children":-1},"registry-item.json","/docs/registry/registry-item-json","docs/registry/registry-item-json",{"title":353,"path":354,"stem":355,"new":18,"type":282,"children":-1},"registry.json","/docs/registry/registry-json","docs/registry/registry-json",{"path":6,"stem":7,"title":357,"type":272,"children":358},"Get Started",[359,363,370,374,378,384,388,392,396,400],{"title":360,"path":361,"stem":362,"new":18,"type":282,"children":-1},"Introduction","/docs/introduction","docs/01.introduction",{"title":274,"path":275,"stem":276,"children":364,"new":18,"type":272},[365,366,367,368,369],{"title":279,"path":280,"stem":281,"new":18,"type":282,"children":-1},{"title":284,"path":285,"stem":286,"new":18,"type":282,"children":-1},{"title":288,"path":289,"stem":290,"new":18,"type":282,"children":-1},{"title":292,"path":293,"stem":294,"new":18,"type":282,"children":-1},{"title":296,"path":297,"stem":298,"new":18,"type":282,"children":-1},{"title":371,"path":372,"stem":373,"new":18,"type":282,"children":-1},"components.json","/docs/components-json","docs/03.components-json",{"title":375,"path":376,"stem":377,"new":18,"type":282,"children":-1},"Theming","/docs/theming","docs/04.theming",{"title":300,"path":301,"stem":302,"children":379,"new":18,"type":272},[380,381,382,383],{"title":279,"path":305,"stem":306,"new":18,"type":282,"children":-1},{"title":284,"path":308,"stem":309,"new":18,"type":282,"children":-1},{"title":311,"path":312,"stem":313,"new":18,"type":282,"children":-1},{"title":288,"path":315,"stem":316,"new":18,"type":282,"children":-1},{"title":385,"path":386,"stem":387,"new":18,"type":282,"children":-1},"CLI","/docs/cli","docs/06.cli",{"title":389,"path":390,"stem":391,"new":18,"type":282,"children":-1},"JavaScript","/docs/javascript","docs/07.javascript",{"title":393,"path":394,"stem":395,"new":18,"type":282,"children":-1},"Figma","/docs/figma","docs/09.figma",{"title":397,"path":398,"stem":399,"new":18,"type":282,"children":-1},"Changelog","/docs/changelog","docs/10.changelog",{"title":401,"path":402,"stem":403,"new":18,"type":282,"children":-1},"Legacy Docs","/docs/legacy","docs/11.legacy",{"repo":405},{"id":406,"name":407,"repo":408,"description":409,"createdAt":410,"updatedAt":411,"pushedAt":412,"stars":413,"watchers":414,"forks":415,"defaultBranch":416},658791894,"shadcn-vue","unovue/shadcn-vue","Vue port of shadcn-ui","2023-06-26T13:53:23Z","2026-04-14T10:18:37Z","2026-04-13T06:37:16Z",9755,38,638,"dev",{"id":418,"title":129,"body":419,"description":1004,"extension":1005,"links":1006,"meta":1007,"navigation":1008,"new":18,"path":130,"rawbody":1009,"seo":1010,"stem":131,"__hash__":1011},"content/docs/components/input-group.md",{"type":420,"value":421,"toc":979},"minimark",[422,428,432,500,504,513,516,521,525,529,532,536,539,542,546,549,552,556,559,570,574,577,580,584,587,590,594,598,601,605,608,611,615,619,626,633,638,644,648,652,655,691,697,701,704,718,760,766,791,801,807,810,813,873,879,883,893,919,925,931,935,943,969,973],[423,424],"component-preview",{"className":425,"name":427},[426],"[&_.preview]:p-4","InputGroupDemo",[429,430,274],"h2",{"id":431},"installation",[433,434,435,451,465],"code-tabs",{},[436,437,438,445],"tabs-list",{},[439,440,442],"tabs-trigger",{"value":441},"cli",[443,444,385],"p",{},[439,446,448],{"value":447},"manual",[443,449,450],{},"Manual",[452,453,454],"tabs-content",{"value":441},[455,456,462],"pre",{"className":457,"code":459,"language":460,"meta":461},[458],"language-bash","npx shadcn-vue@latest add input-group\n","bash","",[463,464,459],"code",{"__ignoreMap":461},[452,466,467],{"value":447},[468,469,470,476,482,495],"steps",{},[471,472,473],"step",{},[443,474,475],{},"Install the following dependencies:",[455,477,480],{"className":478,"code":479,"language":460,"meta":461},[458],"npm install reka-ui\n",[463,481,479],{"__ignoreMap":461},[471,483,484],{},[443,485,486,487,494],{},"Copy and paste the ",[488,489,493],"a",{"href":490,"rel":491},"https://github.com/unovue/shadcn-vue/tree/dev/apps/v4/registry/new-york-v4/ui/input-group",[492],"nofollow","GitHub source code"," into your project.",[471,496,497],{},[443,498,499],{},"Update the import paths to match your project setup.",[429,501,503],{"id":502},"usage","Usage",[455,505,511],{"className":506,"code":508,"language":509,"meta":510},[507],"language-vue","\u003Cscript setup lang=\"ts\">\nimport {\n  InputGroup,\n  InputGroupAddon,\n  InputGroupButton,\n  InputGroupInput,\n  InputGroupText,\n  InputGroupTextarea,\n} from '@/components/ui/input-group'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CInputGroup>\n    \u003CInputGroupInput placeholder=\"Search...\" />\n    \u003CInputGroupAddon>\n      \u003CSearchIcon />\n    \u003C/InputGroupAddon>\n    \u003CInputGroupAddon align=\"inline-end\">\n      \u003CInputGroupButton>Search\u003C/InputGroupButton>\n    \u003C/InputGroupAddon>\n  \u003C/InputGroup>\n\u003C/template>\n","vue","showLineNumbers",[463,512,508],{"__ignoreMap":461},[429,514,337],{"id":515},"examples",[517,518,520],"h3",{"id":519},"icon","Icon",[423,522],{"className":523,"name":524},[426],"InputGroupWithIcon",[517,526,528],{"id":527},"text","Text",[443,530,531],{},"Display additional text information alongside inputs.",[423,533],{"className":534,"name":535},[426],"InputGroupWithText",[517,537,45],{"id":538},"button",[443,540,541],{},"Add buttons to perform actions within the input group.",[423,543],{"className":544,"name":545},[426],"InputGroupWithButton",[517,547,265],{"id":548},"tooltip",[443,550,551],{},"Add tooltips to provide additional context or help.",[423,553],{"className":554,"name":555},[426],"InputGroupWithTooltip",[517,557,249],{"id":558},"textarea",[443,560,561,562,565,566,569],{},"Input groups also work with textarea components. Use ",[463,563,564],{},"block-start"," or ",[463,567,568],{},"block-end"," for alignment.",[423,571],{"className":572,"name":573},[426],"InputGroupWithTextarea",[517,575,225],{"id":576},"spinner",[443,578,579],{},"Show loading indicators while processing input.",[423,581],{"className":582,"name":583},[426],"InputGroupWithSpinner",[517,585,145],{"id":586},"label",[443,588,589],{},"Add labels within input groups to improve accessibility.",[423,591],{"className":592,"name":593},[426],"InputGroupWithLabel",[517,595,597],{"id":596},"dropdown","Dropdown",[443,599,600],{},"Pair input groups with dropdown menus for complex interactions.",[423,602],{"className":603,"name":604},[426],"InputGroupWithDropdown",[517,606,49],{"id":607},"button-group",[443,609,610],{},"Wrap input groups with button groups to create prefixes and suffixes.",[423,612],{"className":613,"name":614},[426],"InputGroupWithButtonGroup",[517,616,618],{"id":617},"custom-input","Custom Input",[443,620,621,622,625],{},"Add the ",[463,623,624],{},"data-slot=\"input-group-control\""," attribute to your custom input for automatic behavior and focus state handling.",[443,627,628,629,632],{},"No style is applied to the custom input. Apply your own styles using the ",[463,630,631],{},"class"," prop.",[423,634],{"className":635,"name":637},[636,426],"!mb-4","InputGroupWithCustomInput",[455,639,642],{"className":640,"code":641,"language":509,"meta":510},[507],"\u003Cscript setup lang=\"ts\">\nimport { InputGroup, InputGroupAddon, InputGroupButton } from '@/components/ui/input-group'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"grid w-full max-w-sm gap-6\">\n    \u003CInputGroup>\n      \u003Ctextarea\n        data-slot=\"input-group-control\"\n        class=\"flex field-sizing-content min-h-16 w-full resize-none rounded-md bg-transparent px-3 py-2.5 text-base transition-[color,box-shadow] outline-none md:text-sm\"\n        placeholder=\"Autoresize textarea...\"\n      />\n      \u003CInputGroupAddon align=\"block-end\">\n        \u003CInputGroupButton class=\"ml-auto\" size=\"sm\" variant=\"default\">\n          Submit\n        \u003C/InputGroupButton>\n      \u003C/InputGroupAddon>\n    \u003C/InputGroup>\n  \u003C/div>\n\u003C/template>\n",[463,643,641],{"__ignoreMap":461},[429,645,647],{"id":646},"api-reference","API Reference",[517,649,651],{"id":650},"inputgroup","InputGroup",[443,653,654],{},"The main component that wraps inputs and addons.",[656,657,658,674],"table",{},[659,660,661],"thead",{},[662,663,664,668,671],"tr",{},[665,666,667],"th",{},"Prop",[665,669,670],{},"Type",[665,672,673],{},"Default",[675,676,677],"tbody",{},[662,678,679,684,689],{},[680,681,682],"td",{},[463,683,631],{},[680,685,686],{},[463,687,688],{},"string",[680,690],{},[455,692,695],{"className":693,"code":694,"language":509,"meta":461},[507],"\u003CInputGroup>\n  \u003CInputGroupInput />\n  \u003CInputGroupAddon />\n\u003C/InputGroup>\n",[463,696,694],{"__ignoreMap":461},[517,698,700],{"id":699},"inputgroupaddon","InputGroupAddon",[443,702,703],{},"Displays icons, text, buttons, or other content alongside inputs.",[705,706,708],"callout",{"title":707},"Focus Navigation",[443,709,710,711,713,714,717],{},"For proper focus navigation, the ",[463,712,700],{}," component should be placed\nafter the input. Set the ",[463,715,716],{},"align"," prop to position the addon.",[656,719,720,730],{},[659,721,722],{},[662,723,724,726,728],{},[665,725,667],{},[665,727,670],{},[665,729,673],{},[675,731,732,748],{},[662,733,734,738,743],{},[680,735,736],{},[463,737,716],{},[680,739,740],{},[463,741,742],{},"\"inline-start\" | \"inline-end\" | \"block-start\" | \"block-end\"",[680,744,745],{},[463,746,747],{},"\"inline-start\"",[662,749,750,754,758],{},[680,751,752],{},[463,753,631],{},[680,755,756],{},[463,757,688],{},[680,759],{},[455,761,764],{"className":762,"code":763,"language":509,"meta":461},[507],"\u003CInputGroupAddon align=\"inline-end\">\n  \u003CSearchIcon />\n\u003C/InputGroupAddon>\n",[463,765,763],{"__ignoreMap":461},[443,767,768],{},[769,770,771,772,775,776,565,779,782,783,775,786,565,788,790],"strong",{},"For ",[463,773,774],{},"\u003CInputGroupInput />",", use the ",[463,777,778],{},"inline-start",[463,780,781],{},"inline-end"," alignment. For ",[463,784,785],{},"\u003CInputGroupTextarea />",[463,787,564],{},[463,789,568],{}," alignment.",[443,792,793,794,796,797,800],{},"The ",[463,795,700],{}," component can have multiple ",[463,798,799],{},"InputGroupButton"," components and icons.",[455,802,805],{"className":803,"code":804,"language":509,"meta":461},[507],"\u003CInputGroupAddon>\n  \u003CInputGroupButton>Button\u003C/InputGroupButton>\n  \u003CInputGroupButton>Button\u003C/InputGroupButton>\n\u003C/InputGroupAddon>\n",[463,806,804],{"__ignoreMap":461},[517,808,799],{"id":809},"inputgroupbutton",[443,811,812],{},"Displays buttons within input groups.",[656,814,815,825],{},[659,816,817],{},[662,818,819,821,823],{},[665,820,667],{},[665,822,670],{},[665,824,673],{},[675,826,827,844,861],{},[662,828,829,834,839],{},[680,830,831],{},[463,832,833],{},"size",[680,835,836],{},[463,837,838],{},"\"xs\" | \"icon-xs\" | \"sm\" | \"icon-sm\"",[680,840,841],{},[463,842,843],{},"\"xs\"",[662,845,846,851,856],{},[680,847,848],{},[463,849,850],{},"variant",[680,852,853],{},[463,854,855],{},"\"default\" | \"destructive\" | \"outline\" | \"secondary\" | \"ghost\" | \"link\"",[680,857,858],{},[463,859,860],{},"\"ghost\"",[662,862,863,867,871],{},[680,864,865],{},[463,866,631],{},[680,868,869],{},[463,870,688],{},[680,872],{},[455,874,877],{"className":875,"code":876,"language":509,"meta":461},[507],"\u003CInputGroupButton>\nButton\n\u003C/InputGroupButton>\n\n\u003CInputGroupButton size=\"icon-xs\" aria-label=\"Copy\">\n  \u003CCopyIcon />\n\u003C/InputGroupButton>\n",[463,878,876],{"__ignoreMap":461},[517,880,882],{"id":881},"inputgroupinput","InputGroupInput",[443,884,885,886,889,890,892],{},"Replacement for ",[463,887,888],{},"\u003CInput />"," when building input groups. This component has the input group styles pre-applied and uses the unified ",[463,891,624],{}," for focus state handling.",[656,894,895,905],{},[659,896,897],{},[662,898,899,901,903],{},[665,900,667],{},[665,902,670],{},[665,904,673],{},[675,906,907],{},[662,908,909,913,917],{},[680,910,911],{},[463,912,631],{},[680,914,915],{},[463,916,688],{},[680,918],{},[443,920,921,922,924],{},"All other props are passed through to the underlying ",[463,923,888],{}," component.",[455,926,929],{"className":927,"code":928,"language":509,"meta":461},[507],"\u003CInputGroup>\n  \u003CInputGroupInput placeholder=\"Enter text...\" />\n  \u003CInputGroupAddon>\n    \u003CSearchIcon />\n  \u003C/InputGroupAddon>\n\u003C/InputGroup>\n",[463,930,928],{"__ignoreMap":461},[517,932,934],{"id":933},"inputgrouptextarea","InputGroupTextarea",[443,936,885,937,940,941,892],{},[463,938,939],{},"\u003CTextarea />"," when building input groups. This component has the textarea group styles pre-applied and uses the unified ",[463,942,624],{},[656,944,945,955],{},[659,946,947],{},[662,948,949,951,953],{},[665,950,667],{},[665,952,670],{},[665,954,673],{},[675,956,957],{},[662,958,959,963,967],{},[680,960,961],{},[463,962,631],{},[680,964,965],{},[463,966,688],{},[680,968],{},[443,970,921,971,924],{},[463,972,939],{},[455,974,977],{"className":975,"code":976,"language":509,"meta":461},[507],"\u003CInputGroup>\n  \u003CInputGroupTextarea placeholder=\"Enter message...\" />\n  \u003CInputGroupAddon align=\"block-end\">\n    \u003CInputGroupButton>Send\u003C/InputGroupButton>\n  \u003C/InputGroupAddon>\n\u003C/InputGroup>\n",[463,978,976],{"__ignoreMap":461},{"title":461,"searchDepth":980,"depth":980,"links":981},2,[982,983,984,997],{"id":431,"depth":980,"text":274},{"id":502,"depth":980,"text":503},{"id":515,"depth":980,"text":337,"children":985},[986,988,989,990,991,992,993,994,995,996],{"id":519,"depth":987,"text":520},3,{"id":527,"depth":987,"text":528},{"id":538,"depth":987,"text":45},{"id":548,"depth":987,"text":265},{"id":558,"depth":987,"text":249},{"id":576,"depth":987,"text":225},{"id":586,"depth":987,"text":145},{"id":596,"depth":987,"text":597},{"id":607,"depth":987,"text":49},{"id":617,"depth":987,"text":618},{"id":646,"depth":980,"text":647,"children":998},[999,1000,1001,1002,1003],{"id":650,"depth":987,"text":651},{"id":699,"depth":987,"text":700},{"id":809,"depth":987,"text":799},{"id":881,"depth":987,"text":882},{"id":933,"depth":987,"text":934},"Display additional information or actions to an input or textarea.","md",null,{"component":1008},true,"---\ntitle: Input Group\ndescription: Display additional information or actions to an input or textarea.\ncomponent: true\n---\n\n::component-preview\n---\nname: InputGroupDemo\nclass: '[&_.preview]:p-4'\n---\n::\n\n## Installation\n\n::code-tabs\n\n::tabs-list\n\n  ::tabs-trigger{value=\"cli\"}\n  CLI\n  ::\n\n  ::tabs-trigger{value=\"manual\"}\n  Manual\n  ::\n\n::\n\n::tabs-content{value=\"cli\"}\n\n```bash\nnpx shadcn-vue@latest add input-group\n```\n\n::\n\n::tabs-content{value=\"manual\"}\n  ::steps\n    ::step\n    Install the following dependencies:\n    ::\n\n    ```bash\n    npm install reka-ui\n    ```\n\n    ::step\n    Copy and paste the [GitHub source code](https://github.com/unovue/shadcn-vue/tree/dev/apps/v4/registry/new-york-v4/ui/input-group) into your project.\n    ::\n\n    ::step\n    Update the import paths to match your project setup.\n    ::\n  ::\n::\n\n::\n\n## Usage\n\n```vue showLineNumbers\n\u003Cscript setup lang=\"ts\">\nimport {\n  InputGroup,\n  InputGroupAddon,\n  InputGroupButton,\n  InputGroupInput,\n  InputGroupText,\n  InputGroupTextarea,\n} from '@/components/ui/input-group'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CInputGroup>\n    \u003CInputGroupInput placeholder=\"Search...\" />\n    \u003CInputGroupAddon>\n      \u003CSearchIcon />\n    \u003C/InputGroupAddon>\n    \u003CInputGroupAddon align=\"inline-end\">\n      \u003CInputGroupButton>Search\u003C/InputGroupButton>\n    \u003C/InputGroupAddon>\n  \u003C/InputGroup>\n\u003C/template>\n```\n\n## Examples\n\n### Icon\n\n::component-preview\n---\nname: InputGroupWithIcon\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Text\n\nDisplay additional text information alongside inputs.\n\n::component-preview\n---\nname: InputGroupWithText\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Button\n\nAdd buttons to perform actions within the input group.\n\n::component-preview\n---\nname: InputGroupWithButton\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Tooltip\n\nAdd tooltips to provide additional context or help.\n\n::component-preview\n---\nname: InputGroupWithTooltip\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Textarea\n\nInput groups also work with textarea components. Use `block-start` or `block-end` for alignment.\n\n::component-preview\n---\nname: InputGroupWithTextarea\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Spinner\n\nShow loading indicators while processing input.\n\n::component-preview\n---\nname: InputGroupWithSpinner\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Label\n\nAdd labels within input groups to improve accessibility.\n\n::component-preview\n---\nname: InputGroupWithLabel\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Dropdown\n\nPair input groups with dropdown menus for complex interactions.\n\n::component-preview\n---\nname: InputGroupWithDropdown\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Button Group\n\nWrap input groups with button groups to create prefixes and suffixes.\n\n::component-preview\n---\nname: InputGroupWithButtonGroup\nclass: '[&_.preview]:p-4'\n---\n::\n\n### Custom Input\n\nAdd the `data-slot=\"input-group-control\"` attribute to your custom input for automatic behavior and focus state handling.\n\nNo style is applied to the custom input. Apply your own styles using the `class` prop.\n\n::component-preview\n---\nname: InputGroupWithCustomInput\nclass: '!mb-4 [&_.preview]:p-4'\n---\n::\n\n```vue showLineNumbers\n\u003Cscript setup lang=\"ts\">\nimport { InputGroup, InputGroupAddon, InputGroupButton } from '@/components/ui/input-group'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003Cdiv class=\"grid w-full max-w-sm gap-6\">\n    \u003CInputGroup>\n      \u003Ctextarea\n        data-slot=\"input-group-control\"\n        class=\"flex field-sizing-content min-h-16 w-full resize-none rounded-md bg-transparent px-3 py-2.5 text-base transition-[color,box-shadow] outline-none md:text-sm\"\n        placeholder=\"Autoresize textarea...\"\n      />\n      \u003CInputGroupAddon align=\"block-end\">\n        \u003CInputGroupButton class=\"ml-auto\" size=\"sm\" variant=\"default\">\n          Submit\n        \u003C/InputGroupButton>\n      \u003C/InputGroupAddon>\n    \u003C/InputGroup>\n  \u003C/div>\n\u003C/template>\n```\n\n## API Reference\n\n### InputGroup\n\nThe main component that wraps inputs and addons.\n\n| Prop        | Type     | Default |\n| ----------- | -------- | ------- |\n| `class` | `string` |         |\n\n```vue\n\u003CInputGroup>\n  \u003CInputGroupInput />\n  \u003CInputGroupAddon />\n\u003C/InputGroup>\n```\n\n### InputGroupAddon\n\nDisplays icons, text, buttons, or other content alongside inputs.\n\n::callout{title=\"Focus Navigation\"}\nFor proper focus navigation, the `InputGroupAddon` component should be placed\nafter the input. Set the `align` prop to position the addon.\n::\n\n| Prop        | Type                                                             | Default          |\n| ----------- | ---------------------------------------------------------------- | ---------------- |\n| `align`     | `\"inline-start\" \\| \"inline-end\" \\| \"block-start\" \\| \"block-end\"` | `\"inline-start\"` |\n| `class` | `string`                                                         |                  |\n\n```vue\n\u003CInputGroupAddon align=\"inline-end\">\n  \u003CSearchIcon />\n\u003C/InputGroupAddon>\n```\n\n**For `\u003CInputGroupInput />`, use the `inline-start` or `inline-end` alignment. For `\u003CInputGroupTextarea />`, use the `block-start` or `block-end` alignment.**\n\nThe `InputGroupAddon` component can have multiple `InputGroupButton` components and icons.\n\n```vue\n\u003CInputGroupAddon>\n  \u003CInputGroupButton>Button\u003C/InputGroupButton>\n  \u003CInputGroupButton>Button\u003C/InputGroupButton>\n\u003C/InputGroupAddon>\n```\n\n### InputGroupButton\n\nDisplays buttons within input groups.\n\n| Prop        | Type                                                                          | Default   |\n| ----------- | ----------------------------------------------------------------------------- | --------- |\n| `size`      | `\"xs\" \\| \"icon-xs\" \\| \"sm\" \\| \"icon-sm\"`                                      | `\"xs\"`    |\n| `variant`   | `\"default\" \\| \"destructive\" \\| \"outline\" \\| \"secondary\" \\| \"ghost\" \\| \"link\"` | `\"ghost\"` |\n| `class` | `string`                                                                      |           |\n\n```vue\n\u003CInputGroupButton>\nButton\n\u003C/InputGroupButton>\n\n\u003CInputGroupButton size=\"icon-xs\" aria-label=\"Copy\">\n  \u003CCopyIcon />\n\u003C/InputGroupButton>\n```\n\n### InputGroupInput\n\nReplacement for `\u003CInput />` when building input groups. This component has the input group styles pre-applied and uses the unified `data-slot=\"input-group-control\"` for focus state handling.\n\n| Prop        | Type     | Default |\n| ----------- | -------- | ------- |\n| `class` | `string` |         |\n\nAll other props are passed through to the underlying `\u003CInput />` component.\n\n```vue\n\u003CInputGroup>\n  \u003CInputGroupInput placeholder=\"Enter text...\" />\n  \u003CInputGroupAddon>\n    \u003CSearchIcon />\n  \u003C/InputGroupAddon>\n\u003C/InputGroup>\n```\n\n### InputGroupTextarea\n\nReplacement for `\u003CTextarea />` when building input groups. This component has the textarea group styles pre-applied and uses the unified `data-slot=\"input-group-control\"` for focus state handling.\n\n| Prop        | Type     | Default |\n| ----------- | -------- | ------- |\n| `class` | `string` |         |\n\nAll other props are passed through to the underlying `\u003CTextarea />` component.\n\n```vue\n\u003CInputGroup>\n  \u003CInputGroupTextarea placeholder=\"Enter message...\" />\n  \u003CInputGroupAddon align=\"block-end\">\n    \u003CInputGroupButton>Send\u003C/InputGroupButton>\n  \u003C/InputGroupAddon>\n\u003C/InputGroup>\n```\n",{"title":129,"description":1004},"0MbaPwgJv1YeLNahpQsZtqGnq5XCnS8MjGeiQnYN6Vs",[1013,1014],{"title":125,"path":126,"stem":127,"children":-1},{"title":133,"path":134,"stem":135,"children":-1},1776258642529]