{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "components-buttons-flip",
  "title": "Flip Button",
  "description": "A button that flips between two states on hover.",
  "dependencies": [
    "class-variance-authority"
  ],
  "registryDependencies": [
    "@animate-ui/components-buttons-button",
    "@animate-ui/primitives-buttons-flip"
  ],
  "files": [
    {
      "path": "registry/components/buttons/flip/index.tsx",
      "content": "import * as React from 'react';\nimport { type VariantProps } from 'class-variance-authority';\n\nimport {\n  FlipButton as FlipButtonPrimitive,\n  FlipButtonFront as FlipButtonFrontPrimitive,\n  FlipButtonBack as FlipButtonBackPrimitive,\n  type FlipButtonProps as FlipButtonPrimitiveProps,\n  type FlipButtonFrontProps as FlipButtonFrontPrimitiveProps,\n  type FlipButtonBackProps as FlipButtonBackPrimitiveProps,\n} from '@/components/animate-ui/primitives/buttons/flip';\nimport { getStrictContext } from '@/lib/get-strict-context';\nimport { buttonVariants } from '@/components/animate-ui/components/buttons/button';\nimport { cn } from '@/lib/utils';\n\ntype FlipButtonContextType = VariantProps<typeof buttonVariants>;\n\nconst [FlipButtonProvider, useFlipButton] =\n  getStrictContext<FlipButtonContextType>('FlipButtonContext');\n\ntype FlipButtonProps = FlipButtonPrimitiveProps &\n  VariantProps<typeof buttonVariants>;\n\nfunction FlipButton({ variant, size, ...props }: FlipButtonProps) {\n  return (\n    <FlipButtonProvider value={{ variant, size }}>\n      <FlipButtonPrimitive {...props} />\n    </FlipButtonProvider>\n  );\n}\n\ntype FlipButtonFrontProps = FlipButtonFrontPrimitiveProps &\n  VariantProps<typeof buttonVariants>;\n\nfunction FlipButtonFront({\n  variant,\n  size,\n  className,\n  ...props\n}: FlipButtonFrontProps) {\n  const { variant: buttonVariant, size: buttonSize } = useFlipButton();\n  return (\n    <FlipButtonFrontPrimitive\n      className={cn(\n        buttonVariants({\n          variant: variant ?? buttonVariant,\n          size: size ?? buttonSize,\n          className,\n        }),\n      )}\n      {...props}\n    />\n  );\n}\n\ntype FlipButtonBackProps = FlipButtonBackPrimitiveProps &\n  VariantProps<typeof buttonVariants>;\n\nfunction FlipButtonBack({\n  variant,\n  size,\n  className,\n  ...props\n}: FlipButtonBackProps) {\n  const { variant: buttonVariant, size: buttonSize } = useFlipButton();\n  return (\n    <FlipButtonBackPrimitive\n      className={cn(\n        buttonVariants({\n          variant: variant ?? buttonVariant,\n          size: size ?? buttonSize,\n          className,\n        }),\n      )}\n      {...props}\n    />\n  );\n}\n\nexport {\n  FlipButton,\n  FlipButtonFront,\n  FlipButtonBack,\n  type FlipButtonProps,\n  type FlipButtonFrontProps,\n  type FlipButtonBackProps,\n};\n",
      "type": "registry:ui",
      "target": "components/animate-ui/components/buttons/flip.tsx"
    }
  ],
  "type": "registry:ui"
}