[{"data":1,"prerenderedAt":913},["ShallowReactive",2],{"navigation":3,"$fMW9jOOkNpZriWVK3P_bZYNOyYR2IEPvrHsC7cDBlJJc":405,"/docs/components/button-group":418,"surround-/docs/components/button-group":910},[4],{"title":5,"path":6,"stem":7,"children":8,"page":17},"Docs","/docs","docs",[9,90,353,360,366,379],{"path":6,"stem":7,"title":10,"type":11,"children":12},"Get Started","group",[13,19,44,48,52,70,74,78,82,86],{"title":14,"path":15,"stem":16,"new":17,"type":18,"children":-1},"Introduction","/docs/introduction","docs/01.introduction",false,"page",{"title":20,"path":21,"stem":22,"children":23,"new":17,"type":11},"Installation","/docs/installation","docs/02.installation",[24,28,32,36,40],{"title":25,"path":26,"stem":27,"new":17,"type":18,"children":-1},"Vite","/docs/installation/vite","docs/installation/01.vite",{"title":29,"path":30,"stem":31,"new":17,"type":18,"children":-1},"Nuxt","/docs/installation/nuxt","docs/installation/02.nuxt",{"title":33,"path":34,"stem":35,"new":17,"type":18,"children":-1},"Astro","/docs/installation/astro","docs/installation/03.astro",{"title":37,"path":38,"stem":39,"new":17,"type":18,"children":-1},"Laravel","/docs/installation/laravel","docs/installation/04.laravel",{"title":41,"path":42,"stem":43,"new":17,"type":18,"children":-1},"Manual Installation","/docs/installation/manual","docs/installation/05.manual",{"title":45,"path":46,"stem":47,"new":17,"type":18,"children":-1},"components.json","/docs/components-json","docs/03.components-json",{"title":49,"path":50,"stem":51,"new":17,"type":18,"children":-1},"Theming","/docs/theming","docs/04.theming",{"title":53,"path":54,"stem":55,"children":56,"new":17,"type":11},"Dark Mode","/docs/dark-mode","docs/05.dark-mode",[57,60,63,67],{"title":25,"path":58,"stem":59,"new":17,"type":18,"children":-1},"/docs/dark-mode/vite","docs/dark-mode/01.vite",{"title":29,"path":61,"stem":62,"new":17,"type":18,"children":-1},"/docs/dark-mode/nuxt","docs/dark-mode/02.nuxt",{"title":64,"path":65,"stem":66,"new":17,"type":18,"children":-1},"Vitepress","/docs/dark-mode/vitepress","docs/dark-mode/03.vitepress",{"title":33,"path":68,"stem":69,"new":17,"type":18,"children":-1},"/docs/dark-mode/astro","docs/dark-mode/04.astro",{"title":71,"path":72,"stem":73,"new":17,"type":18,"children":-1},"CLI","/docs/cli","docs/06.cli",{"title":75,"path":76,"stem":77,"new":17,"type":18,"children":-1},"JavaScript","/docs/javascript","docs/07.javascript",{"title":79,"path":80,"stem":81,"new":17,"type":18,"children":-1},"Figma","/docs/figma","docs/09.figma",{"title":83,"path":84,"stem":85,"new":17,"type":18,"children":-1},"Changelog","/docs/changelog","docs/10.changelog",{"title":87,"path":88,"stem":89,"new":17,"type":18,"children":-1},"Legacy Docs","/docs/legacy","docs/11.legacy",{"title":91,"path":92,"stem":93,"children":94,"new":17,"type":11},"Components","/docs/components","docs/02.components",[95,100,104,108,112,116,120,124,128,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,265,269,273,277,281,285,289,293,297,301,305,309,313,317,321,325,329,333,337,341,345,349],{"title":96,"path":97,"stem":98,"new":17,"type":99,"children":-1},"Accordion","/docs/components/accordion","docs/components/accordion","component",{"title":101,"path":102,"stem":103,"new":17,"type":99,"children":-1},"Alert","/docs/components/alert","docs/components/alert",{"title":105,"path":106,"stem":107,"new":17,"type":99,"children":-1},"Alert Dialog","/docs/components/alert-dialog","docs/components/alert-dialog",{"title":109,"path":110,"stem":111,"new":17,"type":99,"children":-1},"Aspect Ratio","/docs/components/aspect-ratio","docs/components/aspect-ratio",{"title":113,"path":114,"stem":115,"new":17,"type":99,"children":-1},"Avatar","/docs/components/avatar","docs/components/avatar",{"title":117,"path":118,"stem":119,"new":17,"type":99,"children":-1},"Badge","/docs/components/badge","docs/components/badge",{"title":121,"path":122,"stem":123,"new":17,"type":99,"children":-1},"Breadcrumb","/docs/components/breadcrumb","docs/components/breadcrumb",{"title":125,"path":126,"stem":127,"new":17,"type":99,"children":-1},"Button","/docs/components/button","docs/components/button",{"title":129,"path":130,"stem":131,"new":132,"type":99,"children":-1},"Button Group","/docs/components/button-group","docs/components/button-group",true,{"title":134,"path":135,"stem":136,"new":17,"type":99,"children":-1},"Calendar","/docs/components/calendar","docs/components/calendar",{"title":138,"path":139,"stem":140,"new":17,"type":99,"children":-1},"Card","/docs/components/card","docs/components/card",{"title":142,"path":143,"stem":144,"new":17,"type":99,"children":-1},"Carousel","/docs/components/carousel","docs/components/carousel",{"title":146,"path":147,"stem":148,"new":17,"type":99,"children":-1},"Chart","/docs/components/chart","docs/components/chart",{"title":150,"path":151,"stem":152,"new":17,"type":99,"children":-1},"Checkbox","/docs/components/checkbox","docs/components/checkbox",{"title":154,"path":155,"stem":156,"new":17,"type":99,"children":-1},"Collapsible","/docs/components/collapsible","docs/components/collapsible",{"title":158,"path":159,"stem":160,"new":17,"type":99,"children":-1},"Combobox","/docs/components/combobox","docs/components/combobox",{"title":162,"path":163,"stem":164,"new":17,"type":99,"children":-1},"Command","/docs/components/command","docs/components/command",{"title":166,"path":167,"stem":168,"new":17,"type":99,"children":-1},"Context Menu","/docs/components/context-menu","docs/components/context-menu",{"title":170,"path":171,"stem":172,"new":17,"type":99,"children":-1},"Data Table","/docs/components/data-table","docs/components/data-table",{"title":174,"path":175,"stem":176,"new":17,"type":99,"children":-1},"Date Picker","/docs/components/date-picker","docs/components/date-picker",{"title":178,"path":179,"stem":180,"new":17,"type":99,"children":-1},"Dialog","/docs/components/dialog","docs/components/dialog",{"title":182,"path":183,"stem":184,"new":17,"type":99,"children":-1},"Drawer","/docs/components/drawer","docs/components/drawer",{"title":186,"path":187,"stem":188,"new":17,"type":99,"children":-1},"Dropdown Menu","/docs/components/dropdown-menu","docs/components/dropdown-menu",{"title":190,"path":191,"stem":192,"new":132,"type":99,"children":-1},"Empty","/docs/components/empty","docs/components/empty",{"title":194,"path":195,"stem":196,"new":132,"type":99,"children":-1},"Field","/docs/components/field","docs/components/field",{"title":198,"path":199,"stem":200,"new":17,"type":99,"children":-1},"Form","/docs/components/form","docs/components/form",{"title":202,"path":203,"stem":204,"new":17,"type":99,"children":-1},"Hover Card","/docs/components/hover-card","docs/components/hover-card",{"title":206,"path":207,"stem":208,"new":17,"type":99,"children":-1},"Input","/docs/components/input","docs/components/input",{"title":210,"path":211,"stem":212,"new":132,"type":99,"children":-1},"Input Group","/docs/components/input-group","docs/components/input-group",{"title":214,"path":215,"stem":216,"new":17,"type":99,"children":-1},"Input OTP","/docs/components/input-otp","docs/components/input-otp",{"title":218,"path":219,"stem":220,"new":132,"type":99,"children":-1},"Item","/docs/components/item","docs/components/item",{"title":222,"path":223,"stem":224,"new":132,"type":99,"children":-1},"Kbd","/docs/components/kbd","docs/components/kbd",{"title":226,"path":227,"stem":228,"new":17,"type":99,"children":-1},"Label","/docs/components/label","docs/components/label",{"title":230,"path":231,"stem":232,"new":17,"type":99,"children":-1},"Menubar","/docs/components/menubar","docs/components/menubar",{"title":234,"path":235,"stem":236,"new":132,"type":99,"children":-1},"Native Select","/docs/components/native-select","docs/components/native-select",{"title":238,"path":239,"stem":240,"new":17,"type":99,"children":-1},"Navigation Menu","/docs/components/navigation-menu","docs/components/navigation-menu",{"title":242,"path":243,"stem":244,"new":17,"type":99,"children":-1},"Number Field","/docs/components/number-field","docs/components/number-field",{"title":246,"path":247,"stem":248,"new":17,"type":99,"children":-1},"Pagination","/docs/components/pagination","docs/components/pagination",{"title":250,"path":251,"stem":252,"new":17,"type":99,"children":-1},"Pin Input","/docs/components/pin-input","docs/components/pin-input",{"title":254,"path":255,"stem":256,"new":17,"type":99,"children":-1},"Popover","/docs/components/popover","docs/components/popover",{"title":258,"path":259,"stem":260,"new":17,"type":99,"children":-1},"Progress","/docs/components/progress","docs/components/progress",{"title":262,"path":263,"stem":264,"new":17,"type":99,"children":-1},"Radio Group","/docs/components/radio-group","docs/components/radio-group",{"title":266,"path":267,"stem":268,"new":17,"type":99,"children":-1},"Range Calendar","/docs/components/range-calendar","docs/components/range-calendar",{"title":270,"path":271,"stem":272,"new":17,"type":99,"children":-1},"Resizable","/docs/components/resizable","docs/components/resizable",{"title":274,"path":275,"stem":276,"new":17,"type":99,"children":-1},"Scroll Area","/docs/components/scroll-area","docs/components/scroll-area",{"title":278,"path":279,"stem":280,"new":17,"type":99,"children":-1},"Select","/docs/components/select","docs/components/select",{"title":282,"path":283,"stem":284,"new":17,"type":99,"children":-1},"Separator","/docs/components/separator","docs/components/separator",{"title":286,"path":287,"stem":288,"new":17,"type":99,"children":-1},"Sheet","/docs/components/sheet","docs/components/sheet",{"title":290,"path":291,"stem":292,"new":17,"type":99,"children":-1},"Sidebar","/docs/components/sidebar","docs/components/sidebar",{"title":294,"path":295,"stem":296,"new":17,"type":99,"children":-1},"Skeleton","/docs/components/skeleton","docs/components/skeleton",{"title":298,"path":299,"stem":300,"new":17,"type":99,"children":-1},"Slider","/docs/components/slider","docs/components/slider",{"title":302,"path":303,"stem":304,"new":17,"type":99,"children":-1},"Sonner","/docs/components/sonner","docs/components/sonner",{"title":306,"path":307,"stem":308,"new":132,"type":99,"children":-1},"Spinner","/docs/components/spinner","docs/components/spinner",{"title":310,"path":311,"stem":312,"new":17,"type":99,"children":-1},"Stepper","/docs/components/stepper","docs/components/stepper",{"title":314,"path":315,"stem":316,"new":17,"type":99,"children":-1},"Switch","/docs/components/switch","docs/components/switch",{"title":318,"path":319,"stem":320,"new":17,"type":99,"children":-1},"Table","/docs/components/table","docs/components/table",{"title":322,"path":323,"stem":324,"new":17,"type":99,"children":-1},"Tabs","/docs/components/tabs","docs/components/tabs",{"title":326,"path":327,"stem":328,"new":17,"type":99,"children":-1},"Tags Input","/docs/components/tags-input","docs/components/tags-input",{"title":330,"path":331,"stem":332,"new":17,"type":99,"children":-1},"Textarea","/docs/components/textarea","docs/components/textarea",{"title":334,"path":335,"stem":336,"new":17,"type":99,"children":-1},"Toast","/docs/components/toast","docs/components/toast",{"title":338,"path":339,"stem":340,"new":17,"type":99,"children":-1},"Toggle","/docs/components/toggle","docs/components/toggle",{"title":342,"path":343,"stem":344,"new":17,"type":99,"children":-1},"Toggle Group","/docs/components/toggle-group","docs/components/toggle-group",{"title":346,"path":347,"stem":348,"new":17,"type":99,"children":-1},"Tooltip","/docs/components/tooltip","docs/components/tooltip",{"title":350,"path":351,"stem":352,"new":17,"type":99,"children":-1},"Typography","/docs/components/typography","docs/components/typography",{"title":20,"path":21,"stem":22,"children":354,"new":17,"type":11},[355,356,357,358,359],{"title":25,"path":26,"stem":27,"new":17,"type":18,"children":-1},{"title":29,"path":30,"stem":31,"new":17,"type":18,"children":-1},{"title":33,"path":34,"stem":35,"new":17,"type":18,"children":-1},{"title":37,"path":38,"stem":39,"new":17,"type":18,"children":-1},{"title":41,"path":42,"stem":43,"new":17,"type":18,"children":-1},{"title":53,"path":54,"stem":55,"children":361,"new":17,"type":11},[362,363,364,365],{"title":25,"path":58,"stem":59,"new":17,"type":18,"children":-1},{"title":29,"path":61,"stem":62,"new":17,"type":18,"children":-1},{"title":64,"path":65,"stem":66,"new":17,"type":18,"children":-1},{"title":33,"path":68,"stem":69,"new":17,"type":18,"children":-1},{"title":367,"path":368,"stem":369,"children":370,"new":17,"type":11},"Forms","/docs/forms","docs/forms",[371,375],{"title":372,"path":373,"stem":374,"new":17,"type":18,"children":-1},"VeeValidate","/docs/forms/vee-validate","docs/forms/01.vee-validate",{"title":376,"path":377,"stem":378,"new":17,"type":18,"children":-1},"TanStack Form","/docs/forms/tanstack-form","docs/forms/02.tanstack-form",{"title":380,"path":381,"stem":382,"children":383,"new":17,"type":11},"Registry","/docs/registry","docs/registry/index",[384,385,389,393,397,401],{"title":380,"path":381,"stem":382,"new":17,"type":18,"children":-1},{"title":386,"path":387,"stem":388,"new":17,"type":18,"children":-1},"Examples","/docs/registry/examples","docs/registry/examples",{"title":390,"path":391,"stem":392,"new":17,"type":18,"children":-1},"FAQ","/docs/registry/faq","docs/registry/faq",{"title":394,"path":395,"stem":396,"new":17,"type":18,"children":-1},"Getting Started","/docs/registry/getting-started","docs/registry/getting-started",{"title":398,"path":399,"stem":400,"new":17,"type":18,"children":-1},"registry-item.json","/docs/registry/registry-item-json","docs/registry/registry-item-json",{"title":402,"path":403,"stem":404,"new":17,"type":18,"children":-1},"registry.json","/docs/registry/registry-json","docs/registry/registry-json",{"repo":406},{"id":407,"name":408,"repo":409,"description":410,"createdAt":411,"updatedAt":412,"pushedAt":413,"stars":414,"watchers":415,"forks":416,"defaultBranch":417},658791894,"shadcn-vue","unovue/shadcn-vue","Vue port of shadcn-ui","2023-06-26T13:53:23Z","2026-04-06T17:33:41Z","2026-04-06T17:33:39Z",9706,37,634,"dev",{"id":419,"title":129,"body":420,"description":903,"extension":904,"links":905,"meta":906,"navigation":132,"new":132,"path":130,"rawbody":907,"seo":908,"stem":131,"__hash__":909},"content/docs/components/button-group.md",{"type":421,"value":422,"toc":878},"minimark",[423,429,433,501,505,513,517,552,558,562,576,579,584,590,593,597,603,606,610,616,619,622,628,635,638,642,647,650,653,659,662,665,671,674,677,684,687,690,695,698,701,706,709,713,716,721,763,769,776,782,785,789,819,825,829,832,861,867,872],[424,425],"component-preview",{"name":426,"className":427},"ButtonGroupDemo",[428],"[&_.preview]:min-h-[400px]",[430,431,20],"h2",{"id":432},"installation",[434,435,436,452,466],"code-tabs",{},[437,438,439,446],"tabs-list",{},[440,441,443],"tabs-trigger",{"value":442},"cli",[444,445,71],"p",{},[440,447,449],{"value":448},"manual",[444,450,451],{},"Manual",[453,454,455],"tabs-content",{"value":442},[456,457,463],"pre",{"className":458,"code":460,"language":461,"meta":462},[459],"language-bash","npx shadcn-vue@latest add button-group\n","bash","",[464,465,460],"code",{"__ignoreMap":462},[453,467,468],{"value":448},[469,470,471,477,483,496],"steps",{},[472,473,474],"step",{},[444,475,476],{},"Install the following dependencies:",[456,478,481],{"className":479,"code":480,"language":461,"meta":462},[459],"npm install reka-ui\n",[464,482,480],{"__ignoreMap":462},[472,484,485],{},[444,486,487,488,495],{},"Copy and paste the ",[489,490,494],"a",{"href":491,"rel":492},"https://github.com/unovue/shadcn-vue/tree/dev/apps/v4/registry/new-york-v4/ui/button-group",[493],"nofollow","GitHub source code"," into your project.",[472,497,498],{},[444,499,500],{},"Update the import paths to match your project setup.",[430,502,504],{"id":503},"usage","Usage",[456,506,511],{"className":507,"code":509,"language":510,"meta":462},[508],"language-vue","\u003Cscript setup lang=\"ts\">\nimport {\n  ButtonGroup,\n  ButtonGroupSeparator,\n  ButtonGroupText,\n} from '@/components/ui/button-group'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n","vue",[464,512,509],{"__ignoreMap":462},[430,514,516],{"id":515},"accessibility","Accessibility",[518,519,520,535,542],"ul",{},[521,522,523,524,527,528,531,532,534],"li",{},"The ",[464,525,526],{},"ButtonGroup"," component has the ",[464,529,530],{},"role"," attribute set to ",[464,533,11],{},".",[521,536,537,538,541],{},"Use ",[464,539,540],{},"Tab"," to navigate between the buttons in the group.",[521,543,537,544,547,548,551],{},[464,545,546],{},"aria-label"," or ",[464,549,550],{},"aria-labelledby"," to label the button group.",[456,553,556],{"className":554,"code":555,"language":510,"meta":462},[508],"\u003Ctemplate>\n  \u003CButtonGroup aria-label=\"Button group\">\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n",[464,557,555],{"__ignoreMap":462},[430,559,561],{"id":560},"buttongroup-vs-togglegroup","ButtonGroup vs ToggleGroup",[518,563,564,570],{},[521,565,566,567,569],{},"Use the ",[464,568,526],{}," component when you want to group buttons that perform an action.",[521,571,566,572,575],{},[464,573,574],{},"ToggleGroup"," component when you want to group buttons that toggle a state.",[430,577,386],{"id":578},"examples",[580,581,583],"h3",{"id":582},"orientation","Orientation",[444,585,586,587,589],{},"Set the ",[464,588,582],{}," prop to change the button group layout.",[424,591],{"name":592},"ButtonGroupOrientationDemo",[580,594,596],{"id":595},"size","Size",[444,598,599,600,602],{},"Control the size of buttons using the ",[464,601,595],{}," prop on individual buttons.",[424,604],{"name":605},"ButtonGroupSizeDemo",[580,607,609],{"id":608},"nested","Nested",[444,611,612,615],{},[464,613,614],{},"\u003CButtonGroup>"," components to create button groups with spacing.",[424,617],{"name":618},"ButtonGroupNestedDemo",[580,620,282],{"id":621},"separator",[444,623,523,624,627],{},[464,625,626],{},"ButtonGroupSeparator"," component visually divides buttons within a group.",[444,629,630,631,634],{},"Buttons with variant ",[464,632,633],{},"outline"," do not need a separator since they have a border. For other variants, a separator is recommended to improve the visual hierarchy.",[424,636],{"name":637},"ButtonGroupSeparatorDemo",[580,639,641],{"id":640},"split","Split",[444,643,644,645,534],{},"Create a split button group by adding two buttons separated by a ",[464,646,626],{},[424,648],{"name":649},"ButtonGroupSplitDemo",[580,651,206],{"id":652},"input",[444,654,655,656,658],{},"Wrap an ",[464,657,206],{}," component with buttons.",[424,660],{"name":661},"ButtonGroupWithInputDemo",[580,663,210],{"id":664},"input-group",[444,666,655,667,670],{},[464,668,669],{},"InputGroup"," component to create complex input layouts.",[424,672],{"name":673},"ButtonGroupInputGroupDemo",[580,675,186],{"id":676},"dropdown-menu",[444,678,679,680,683],{},"Create a split button group with a ",[464,681,682],{},"DropdownMenu"," component.",[424,685],{"name":686},"ButtonGroupWithDropdownMenuDemo",[580,688,278],{"id":689},"select",[444,691,692,693,683],{},"Pair with a ",[464,694,278],{},[424,696],{"name":697},"ButtonGroupWithSelectDemo",[580,699,254],{"id":700},"popover",[444,702,703,704,683],{},"Use with a ",[464,705,254],{},[424,707],{"name":708},"ButtonGroupWithPopoverDemo",[430,710,712],{"id":711},"api-reference","API Reference",[580,714,526],{"id":715},"buttongroup",[444,717,523,718,720],{},[464,719,526],{}," component is a container that groups related buttons together with consistent styling.",[722,723,724,740],"table",{},[725,726,727],"thead",{},[728,729,730,734,737],"tr",{},[731,732,733],"th",{},"Prop",[731,735,736],{},"Type",[731,738,739],{},"Default",[741,742,743],"tbody",{},[728,744,745,750,759],{},[746,747,748],"td",{},[464,749,582],{},[746,751,752,755,756],{},[464,753,754],{},"\"horizontal\""," | ",[464,757,758],{},"\"vertical\"",[746,760,761],{},[464,762,754],{},[456,764,767],{"className":765,"code":766,"language":510,"meta":462},[508],"\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n",[464,768,766],{"__ignoreMap":462},[444,770,771,772,775],{},"Nest multiple button groups to create complex layouts with spacing. See the ",[489,773,608],{"href":774},"#nested"," example for more details.",[456,777,780],{"className":778,"code":779,"language":510,"meta":462},[508],"\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButtonGroup />\n    \u003CButtonGroup />\n  \u003C/ButtonGroup>\n\u003C/template>\n",[464,781,779],{"__ignoreMap":462},[580,783,626],{"id":784},"buttongroupseparator",[444,786,523,787,627],{},[464,788,626],{},[722,790,791,801],{},[725,792,793],{},[728,794,795,797,799],{},[731,796,733],{},[731,798,736],{},[731,800,739],{},[741,802,803],{},[728,804,805,809,814],{},[746,806,807],{},[464,808,582],{},[746,810,811],{},[464,812,813],{},"\"horizontal\" | \"vertical\"",[746,815,816],{},[464,817,818],{},"vertical",[456,820,823],{"className":821,"code":822,"language":510,"meta":462},[508],"\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButtonGroupSeparator />\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n",[464,824,822],{"__ignoreMap":462},[580,826,828],{"id":827},"buttongrouptext","ButtonGroupText",[444,830,831],{},"Use this component to display text within a button group.",[722,833,834,844],{},[725,835,836],{},[728,837,838,840,842],{},[731,839,733],{},[731,841,736],{},[731,843,739],{},[741,845,846],{},[728,847,848,853,856],{},[746,849,850],{},[464,851,852],{},"as-child",[746,854,855],{},"boolean",[746,857,858],{},[464,859,860],{},"false",[456,862,865],{"className":863,"code":864,"language":510,"meta":462},[508],"\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButtonGroupText>Text\u003C/ButtonGroupText>\n    \u003CButton>Button\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n",[464,866,864],{"__ignoreMap":462},[444,868,566,869,871],{},[464,870,852],{}," prop to render a custom component as the text, for example a label.",[456,873,876],{"className":874,"code":875,"language":510,"meta":462},[508],"\u003Cscript setup lang=\"ts\">\nimport { ButtonGroupText } from '@/components/ui/button-group'\nimport { Label } from '@/components/ui/label'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButtonGroupText as-child>\n      \u003CLabel for=\"name\">Text\u003C/Label>\n    \u003C/ButtonGroupText>\n    \u003CInput id=\"name\" placeholder=\"Type something here...\" />\n  \u003C/ButtonGroup>\n\u003C/template>\n",[464,877,875],{"__ignoreMap":462},{"title":462,"searchDepth":879,"depth":879,"links":880},2,[881,882,883,884,885,898],{"id":432,"depth":879,"text":20},{"id":503,"depth":879,"text":504},{"id":515,"depth":879,"text":516},{"id":560,"depth":879,"text":561},{"id":578,"depth":879,"text":386,"children":886},[887,889,890,891,892,893,894,895,896,897],{"id":582,"depth":888,"text":583},3,{"id":595,"depth":888,"text":596},{"id":608,"depth":888,"text":609},{"id":621,"depth":888,"text":282},{"id":640,"depth":888,"text":641},{"id":652,"depth":888,"text":206},{"id":664,"depth":888,"text":210},{"id":676,"depth":888,"text":186},{"id":689,"depth":888,"text":278},{"id":700,"depth":888,"text":254},{"id":711,"depth":879,"text":712,"children":899},[900,901,902],{"id":715,"depth":888,"text":526},{"id":784,"depth":888,"text":626},{"id":827,"depth":888,"text":828},"A container that groups related buttons together with consistent styling.","md",null,{"component":132},"---\ntitle: Button Group\ndescription: A container that groups related buttons together with consistent styling.\ncomponent: true\nnew: true\n---\n\n::component-preview\n---\nname: ButtonGroupDemo\nclass: '[&_.preview]:min-h-[400px]'\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 button-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/button-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\n\u003Cscript setup lang=\"ts\">\nimport {\n  ButtonGroup,\n  ButtonGroupSeparator,\n  ButtonGroupText,\n} from '@/components/ui/button-group'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n```\n\n## Accessibility\n\n- The `ButtonGroup` component has the `role` attribute set to `group`.\n- Use `Tab` to navigate between the buttons in the group.\n- Use `aria-label` or `aria-labelledby` to label the button group.\n\n```vue\n\u003Ctemplate>\n  \u003CButtonGroup aria-label=\"Button group\">\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n```\n\n## ButtonGroup vs ToggleGroup\n\n- Use the `ButtonGroup` component when you want to group buttons that perform an action.\n- Use the `ToggleGroup` component when you want to group buttons that toggle a state.\n\n## Examples\n\n### Orientation\n\nSet the `orientation` prop to change the button group layout.\n\n::component-preview\n---\nname: ButtonGroupOrientationDemo\n---\n::\n\n### Size\n\nControl the size of buttons using the `size` prop on individual buttons.\n\n::component-preview\n---\nname: ButtonGroupSizeDemo\n---\n::\n\n### Nested\n\n`\u003CButtonGroup>` components to create button groups with spacing.\n\n::component-preview\n---\nname: ButtonGroupNestedDemo\n---\n::\n\n### Separator\n\nThe `ButtonGroupSeparator` component visually divides buttons within a group.\n\nButtons with variant `outline` do not need a separator since they have a border. For other variants, a separator is recommended to improve the visual hierarchy.\n\n::component-preview\n---\nname: ButtonGroupSeparatorDemo\n---\n::\n\n### Split\n\nCreate a split button group by adding two buttons separated by a `ButtonGroupSeparator`.\n\n::component-preview\n---\nname: ButtonGroupSplitDemo\n---\n::\n\n### Input\n\nWrap an `Input` component with buttons.\n\n::component-preview\n---\nname: ButtonGroupWithInputDemo\n---\n::\n\n### Input Group\n\nWrap an `InputGroup` component to create complex input layouts.\n\n::component-preview\n---\nname: ButtonGroupInputGroupDemo\n---\n::\n\n### Dropdown Menu\n\nCreate a split button group with a `DropdownMenu` component.\n\n::component-preview\n---\nname: ButtonGroupWithDropdownMenuDemo\n---\n::\n\n### Select\n\nPair with a `Select` component.\n\n::component-preview\n---\nname: ButtonGroupWithSelectDemo\n---\n::\n\n### Popover\n\nUse with a `Popover` component.\n\n::component-preview\n---\nname: ButtonGroupWithPopoverDemo\n---\n::\n\n## API Reference\n\n### ButtonGroup\n\nThe `ButtonGroup` component is a container that groups related buttons together with consistent styling.\n\n| Prop         | Type                             | Default   |\n| ------------ | -------------------------------- | --------- |\n| `orientation` | `\"horizontal\"` \\| `\"vertical\"`    | `\"horizontal\"` |\n\n```vue\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n```\n\nNest multiple button groups to create complex layouts with spacing. See the [nested](#nested) example for more details.\n\n```vue\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButtonGroup />\n    \u003CButtonGroup />\n  \u003C/ButtonGroup>\n\u003C/template>\n```\n\n### ButtonGroupSeparator\n\nThe `ButtonGroupSeparator` component visually divides buttons within a group.\n\n| Prop      | Type   | Default |\n| --------- | ------ | ------- |\n| `orientation`    | `\"horizontal\" \\| \"vertical\"` | `vertical`    |\n\n```vue\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButton>Button 1\u003C/Button>\n    \u003CButtonGroupSeparator />\n    \u003CButton>Button 2\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n```\n\n### ButtonGroupText\n\nUse this component to display text within a button group.\n\n| Prop      | Type   | Default |\n| --------- | ------ | ------- |\n| `as-child`    | boolean | `false`    |\n\n```vue\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButtonGroupText>Text\u003C/ButtonGroupText>\n    \u003CButton>Button\u003C/Button>\n  \u003C/ButtonGroup>\n\u003C/template>\n```\n\nUse the `as-child` prop to render a custom component as the text, for example a label.\n\n```vue\n\u003Cscript setup lang=\"ts\">\nimport { ButtonGroupText } from '@/components/ui/button-group'\nimport { Label } from '@/components/ui/label'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CButtonGroup>\n    \u003CButtonGroupText as-child>\n      \u003CLabel for=\"name\">Text\u003C/Label>\n    \u003C/ButtonGroupText>\n    \u003CInput id=\"name\" placeholder=\"Type something here...\" />\n  \u003C/ButtonGroup>\n\u003C/template>\n```\n",{"title":129,"description":903},"V_rUBzYEkdJyigLrQu3_Gb03oTaY8lhWJxsF899pRvI",[911,912],{"title":125,"path":126,"stem":127,"children":-1},{"title":134,"path":135,"stem":136,"children":-1},1775649981499]