{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "toggle-button-group",
  "dependencies": [
    "react-aria-components",
    "tailwind-variants"
  ],
  "registryDependencies": [
    "https://taki-ui.com/r/toggle-button.json"
  ],
  "files": [
    {
      "path": "registry/new-york/ui/toggle-button-group.tsx",
      "content": "\"use client\"\n\nimport React from \"react\"\nimport {\n  ToggleButton as AriaToggleButton,\n  ToggleButtonProps as AriaToggleButtonProps,\n  composeRenderProps,\n  Group,\n  GroupProps,\n} from \"react-aria-components\"\nimport { tv, type VariantProps } from \"tailwind-variants\"\n\nimport { toggleButtonVariants } from \"@/registry/new-york/ui/toggle-button\"\n\nconst ToggleButtonGroupContext = React.createContext<\n  VariantProps<typeof toggleButtonVariants>\n>({\n  size: \"default\",\n  variant: \"default\",\n})\n\nexport interface ToggleButtonGroupProps extends GroupProps {\n  variant?: \"default\" | \"outline\"\n  size?: \"default\" | \"sm\" | \"lg\"\n}\n\nconst toggleButtonGroupVariants = tv({\n  base: \"group/toggle-button-group flex w-fit items-center rounded-md\",\n  variants: {\n    variant: {\n      default: \"\",\n      outline: \"shadow-xs\",\n    },\n  },\n  defaultVariants: {\n    variant: \"default\",\n  },\n})\n\nexport function ToggleButtonGroup({\n  className,\n  variant = \"default\",\n  size = \"default\",\n  children,\n  ...props\n}: ToggleButtonGroupProps) {\n  return (\n    <Group\n      data-slot=\"toggle-button-group\"\n      data-variant={variant}\n      data-size={size}\n      className={toggleButtonGroupVariants({ variant, className })}\n      {...props}\n    >\n      <ToggleButtonGroupContext.Provider value={{ variant, size }}>\n        {children}\n      </ToggleButtonGroupContext.Provider>\n    </Group>\n  )\n}\n\nexport interface ToggleButtonGroupItemProps extends AriaToggleButtonProps {\n  variant?: \"default\" | \"outline\"\n  size?: \"default\" | \"sm\" | \"lg\"\n}\n\nconst toggleButtonGroupItemVariants = tv({\n  base: \"min-w-0 flex-1 shrink-0 rounded-none shadow-none first:rounded-l-md last:rounded-r-md focus:z-10 focus-visible:z-10\",\n  variants: {\n    variant: {\n      default: \"\",\n      outline: \"border-l-0 first:border-l\",\n    },\n  },\n})\n\nexport function ToggleButtonGroupItem({\n  className,\n  variant,\n  size,\n  ...props\n}: ToggleButtonGroupItemProps) {\n  const context = React.useContext(ToggleButtonGroupContext)\n  const finalVariant = context.variant || variant\n  const finalSize = context.size || size\n\n  return (\n    <AriaToggleButton\n      data-slot=\"toggle-button-group-item\"\n      data-variant={finalVariant}\n      data-size={finalSize}\n      {...props}\n      className={composeRenderProps(props.className, (cls, renderProps) =>\n        toggleButtonVariants({\n          ...renderProps,\n          variant: finalVariant as \"default\" | \"outline\",\n          size: finalSize as \"default\" | \"sm\" | \"lg\",\n          className: toggleButtonGroupItemVariants({\n            variant: finalVariant as \"default\" | \"outline\",\n            className: cls,\n          }),\n        })\n      )}\n    />\n  )\n}\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}