{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "button-group",
  "title": "Button Group",
  "description": "Group related buttons with shared edges and radius.",
  "dependencies": ["class-variance-authority"],
  "registryDependencies": [],
  "files": [
    {
      "path": "registry/glasswave/ui/button-group.tsx",
      "content": "\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\nconst buttonGroupVariants = cva(\n  cn(\n    \"inline-flex w-fit items-stretch\",\n    // Children stay full Buttons with their own glass surface and hover/press\n    // animation, so a grouped button behaves identically to a standalone one.\n    // Lifting the hovered/focused/active segment keeps its scale, border and\n    // ring above the shared seam instead of being clipped by neighbours.\n    \"[&>*]:relative [&>*]:hover:z-10 [&>*]:focus-visible:z-10 [&>*]:active:z-10\",\n  ),\n  {\n    variants: {\n      orientation: {\n        horizontal:\n          \"flex-row [&>*:not(:first-child)]:-ml-px [&>*:not(:first-child)]:rounded-l-none [&>*:not(:last-child)]:rounded-r-none\",\n        vertical:\n          \"flex-col [&>*:not(:first-child)]:-mt-px [&>*:not(:first-child)]:rounded-t-none [&>*:not(:last-child)]:rounded-b-none\",\n      },\n    },\n    defaultVariants: {\n      orientation: \"horizontal\",\n    },\n  },\n);\n\nexport interface ButtonGroupProps\n  extends React.ComponentProps<\"div\">,\n    VariantProps<typeof buttonGroupVariants> {\n  role?: \"group\";\n}\n\nexport function ButtonGroup({\n  className,\n  orientation,\n  role = \"group\",\n  ...props\n}: ButtonGroupProps) {\n  return (\n    <div\n      data-slot=\"button-group\"\n      role={role}\n      className={cn(buttonGroupVariants({ orientation }), className)}\n      {...props}\n    />\n  );\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}
