{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "toggle-group",
  "title": "Toggle Group",
  "description": "Provides a shared state to a series of toggle buttons.",
  "dependencies": [
    "@base-ui/react",
    "class-variance-authority"
  ],
  "registryDependencies": [
    "@lumi-ui/toggle",
    "utils"
  ],
  "files": [
    {
      "path": "registry/ui/toggle-group.tsx",
      "content": "\"use client\";\n\nimport { Toggle as BaseToggle } from \"@base-ui/react/toggle\";\nimport { ToggleGroup as BaseToggleGroup } from \"@base-ui/react/toggle-group\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"@/lib/utils\";\nimport { toggleVariants } from \"@/registry/ui/toggle\";\n\nconst toggleGroupVariants = cva(\n  \"flex items-center justify-center w-fit relative data-[orientation=horizontal]:flex-row data-[orientation=vertical]:flex-col\",\n  {\n    compoundVariants: [\n      {\n        className:\n          \"*:data-[slot=toggle-group-item]:rounded-none *:data-[slot=toggle-group-item]:only:rounded-md *:data-[slot=toggle-group-item]:data-pressed:shadow-none data-[orientation=horizontal]:*:data-[slot=toggle-group-item]:first:rounded-l-md data-[orientation=horizontal]:*:data-[slot=toggle-group-item]:last:rounded-r-md data-[orientation=vertical]:*:data-[slot=toggle-group-item]:first:rounded-t-md data-[orientation=vertical]:*:data-[slot=toggle-group-item]:last:rounded-b-md\",\n        spacing: \"none\",\n      },\n      {\n        className:\n          \"data-[orientation=horizontal]:-space-x-px data-[orientation=vertical]:-space-y-px\",\n        spacing: \"none\",\n        variant: \"outline\",\n      },\n    ],\n    defaultVariants: {\n      size: \"md\",\n      spacing: \"none\",\n      variant: \"default\",\n    },\n    variants: {\n      size: {\n        default: \"\",\n        lg: \"*:data-[slot=toggle-group-item]:h-10 *:data-[slot=toggle-group-item]:px-2.5 *:data-[slot=toggle-group-item]:min-w-10\",\n        md: \"\",\n        sm: \"*:data-[slot=toggle-group-item]:h-8 *:data-[slot=toggle-group-item]:px-1.5 *:data-[slot=toggle-group-item]:min-w-8 *:data-[slot=toggle-group-item]:text-xs\",\n        xs: \"*:data-[slot=toggle-group-item]:h-7 *:data-[slot=toggle-group-item]:px-1 *:data-[slot=toggle-group-item]:min-w-7 *:data-[slot=toggle-group-item]:text-xs\",\n      },\n      spacing: {\n        lg: \"gap-3\",\n        md: \"gap-2\",\n        none: \"gap-0\",\n        sm: \"gap-1\",\n      },\n      variant: {\n        default: \"\",\n        outline:\n          \"*:data-[slot=toggle-group-item]:border *:data-[slot=toggle-group-item]:data-pressed:border-primary/15\",\n      },\n    },\n  },\n);\n\nfunction ToggleGroup({\n  className,\n  spacing = \"none\",\n  variant,\n  size,\n  children,\n  ...props\n}: BaseToggleGroup.Props &\n  VariantProps<typeof toggleGroupVariants> &\n  VariantProps<typeof toggleVariants>) {\n  return (\n    <BaseToggleGroup\n      className={cn(toggleGroupVariants({ size, spacing, variant }), className)}\n      data-slot=\"toggle-group\"\n      {...props}\n    >\n      {children}\n    </BaseToggleGroup>\n  );\n}\n\nfunction ToggleGroupItem({\n  className,\n  children,\n  size,\n  variant,\n  ...props\n}: BaseToggle.Props & VariantProps<typeof toggleVariants>) {\n  return (\n    <BaseToggle\n      className={cn(toggleVariants({ size, variant }), className)}\n      data-slot=\"toggle-group-item\"\n      {...props}\n    >\n      {children}\n    </BaseToggle>\n  );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}