{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "button-group",
  "files": [
    {
      "path": "ui/button-group/ButtonGroup.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/button-group/ButtonGroup.astro directly.\n/**\n * @component ButtonGroup\n * @title Button Group\n * @description A set of related buttons grouped together, with support for horizontal or vertical layouts.\n * @figmaUrl https://www.figma.com/design/koxai7zw5vIuBzuVxe5T2l/bejamas-ui?node-id=2621-2972&t=YFStJ3V8fXEO8QD8-4\n *\n * @preview\n *\n * <ButtonGroup>\n *   <Button variant=\"outline\">Left</Button>\n *   <Button variant=\"outline\">Middle</Button>\n *   <Button variant=\"outline\">Right</Button>\n * </ButtonGroup>\n *\n * @usage\n *\n * ```astro nocollapse\n * ---\n * import { ButtonGroup } from '@bejamas/ui/components/button-group';\n * import { Button } from '@bejamas/ui/components/button';\n * ---\n * <ButtonGroup>\n *   <Button>One</Button>\n *   <Button>Two</Button>\n *   <Button>Three</Button>\n * </ButtonGroup>\n * ```\n *\n * @props\n * - orientation?: \"horizontal\" | \"vertical\" — Default: \"horizontal\".\n * - class?: string — Additional classes for the container.\n *\n * @examples\n *\n * ### Orientation\n *\n * <ButtonGroup orientation=\"vertical\" aria-label=\"Media controls\" class=\"h-fit\">\n *   <Button variant=\"outline\" size=\"icon\">\n *     <PlusIcon />\n *   </Button>\n *   <Button variant=\"outline\" size=\"icon\">\n *     <MinusIcon />\n *   </Button>\n * </ButtonGroup>\n *\n * ### Size\n *\n * <div class=\"flex flex-col items-start gap-8\">\n *   <ButtonGroup>\n *     <Button variant=\"outline\" size=\"sm\">\n *       Small\n *     </Button>\n *     <Button variant=\"outline\" size=\"sm\">\n *       Button\n *     </Button>\n *     <Button variant=\"outline\" size=\"sm\">\n *       Group\n *     </Button>\n *     <Button variant=\"outline\" size=\"icon-sm\">\n *       <PlusIcon />\n *      </Button>\n *   </ButtonGroup>\n *   <ButtonGroup>\n *     <Button variant=\"outline\">Default</Button>\n *     <Button variant=\"outline\">Button</Button>\n *     <Button variant=\"outline\">Group</Button>\n *     <Button variant=\"outline\" size=\"icon\">\n *       <PlusIcon />\n *     </Button>\n *   </ButtonGroup>\n *   <ButtonGroup>\n *     <Button variant=\"outline\" size=\"lg\">\n *       Large\n *     </Button>\n *     <Button variant=\"outline\" size=\"lg\">\n *       Button\n *     </Button>\n *     <Button variant=\"outline\" size=\"lg\">\n *       Group\n *     </Button>\n *     <Button variant=\"outline\" size=\"icon-lg\">\n *       <PlusIcon />\n *     </Button>\n *   </ButtonGroup>\n * </div>\n */\n\nimport type { HTMLAttributes } from \"astro/types\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\n\ninterface Props\n  extends VariantProps<typeof buttonGroupVariants>, HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst {\n  orientation = \"horizontal\",\n  class: className = \"\",\n  ...props\n} = Astro.props as Props;\n\nexport const buttonGroupVariants = cva(\n  \"flex w-fit items-stretch *:focus-visible:relative *:focus-visible:z-10 has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-e-lg [&>[data-slot=select-trigger]:not([class*='w-'])]:w-fit [&>input]:flex-1\",\n  {\n    variants: {\n      orientation: {\n        horizontal:\n          \"*:data-slot:rounded-e-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-e-lg! [&>[data-slot]~[data-slot]]:border-s-0 [&>[data-slot]~[data-slot]]:rounded-s-none [&>[data-slot]~[data-slot]_[data-slot]]:border-s-0 [&>[data-slot]~[data-slot]_[data-slot]]:rounded-s-none\",\n        vertical:\n          \"flex-col *:data-slot:rounded-b-none [&>[data-slot]:not(:has(~[data-slot]))]:rounded-b-lg! [&>[data-slot]~[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]]:border-t-0 [&>[data-slot]~[data-slot]_[data-slot]]:rounded-t-none [&>[data-slot]~[data-slot]_[data-slot]]:border-t-0\",\n      },\n    },\n    defaultVariants: {\n      orientation: \"horizontal\",\n    },\n  },\n);\n---\n\n<div\n  role=\"group\"\n  data-slot=\"button-group\"\n  data-orientation={orientation}\n  class={cn(\"has-[>[data-slot=button-group]]:gap-2 has-[select[aria-hidden=true]:last-child]:[&>[data-slot=select-trigger]:last-of-type]:rounded-r-md\", buttonGroupVariants({ orientation }), className)}\n  {...props}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/button-group/ButtonGroupSeparator.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/button-group/ButtonGroupSeparator.astro directly.\nimport type { HTMLAttributes } from \"astro/types\";\nimport { cn } from \"@/lib/utils\";\nimport Separator from \"../separator/Separator.astro\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n  orientation?: \"horizontal\" | \"vertical\";\n  decorative?: boolean;\n}\n\nconst {\n  class: className = \"\",\n  orientation = \"vertical\",\n  decorative = true,\n  ...rest\n} = Astro.props as Props;\n---\n\n<Separator\n  {...rest}\n  decorative={decorative}\n  data-slot=\"button-group-separator\"\n  data-orientation={orientation}\n  orientation={orientation}\n  class={cn(\n    \"bg-input relative self-stretch data-[orientation=horizontal]:mx-px data-[orientation=horizontal]:w-auto data-[orientation=vertical]:my-px data-[orientation=vertical]:h-auto\",\n    className,\n  )}\n/>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/button-group/ButtonGroupText.astro",
      "content": "---\n// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/button-group/ButtonGroupText.astro directly.\nimport type { HTMLAttributes } from \"astro/types\";\nimport { cn } from \"@/lib/utils\";\n\ninterface Props extends HTMLAttributes<\"div\"> {\n  class?: string;\n}\n\nconst { class: className = \"\", ...rest } = Astro.props as Props;\n---\n\n<div\n  {...rest}\n  data-slot=\"button-group-text\"\n  class={cn(\n    \"bg-muted gap-2 rounded-md border px-2.5 text-sm font-medium shadow-xs [&_svg:not([class*='size-'])]:size-4\",\n    \"bg-muted flex items-center gap-2 rounded-lg border px-2.5 text-sm font-medium [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none\",\n    className,\n  )}\n>\n  <slot />\n</div>\n",
      "type": "registry:ui"
    },
    {
      "path": "ui/button-group/index.ts",
      "content": "// Generated from bejamas-juno style registry. Do not edit packages/ui/src/components/button-group/index.ts directly.\nexport { default as ButtonGroup } from \"./ButtonGroup.astro\";\nexport { buttonGroupVariants } from \"./ButtonGroup.astro\";\nexport { default as ButtonGroupSeparator } from \"./ButtonGroupSeparator.astro\";\nexport { default as ButtonGroupText } from \"./ButtonGroupText.astro\";\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}