{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "caption",
  "title": "Caption",
  "description": "A text field for adding captions to media elements.",
  "dependencies": [
    "@udecode/cn",
    "@platejs/caption"
  ],
  "registryDependencies": [
    "button"
  ],
  "files": [
    {
      "path": "src/registry/ui/caption.tsx",
      "content": "'use client';\n\nimport * as React from 'react';\n\nimport type { VariantProps } from 'class-variance-authority';\n\nimport {\n  Caption as CaptionPrimitive,\n  CaptionTextarea as CaptionTextareaPrimitive,\n  useCaptionButton,\n  useCaptionButtonState,\n} from '@platejs/caption/react';\nimport { createPrimitiveComponent } from '@udecode/cn';\nimport { cva } from 'class-variance-authority';\n\nimport { Button } from '@/components/ui/button';\nimport { cn } from '@/lib/utils';\n\nconst captionVariants = cva('max-w-full', {\n  defaultVariants: {\n    align: 'center',\n  },\n  variants: {\n    align: {\n      center: 'mx-auto',\n      left: 'mr-auto',\n      right: 'ml-auto',\n    },\n  },\n});\n\nexport function Caption({\n  align,\n  className,\n  ...props\n}: React.ComponentProps<typeof CaptionPrimitive> &\n  VariantProps<typeof captionVariants>) {\n  return (\n    <CaptionPrimitive\n      {...props}\n      className={cn(captionVariants({ align }), className)}\n    />\n  );\n}\n\nexport function CaptionTextarea(\n  props: React.ComponentProps<typeof CaptionTextareaPrimitive>\n) {\n  return (\n    <CaptionTextareaPrimitive\n      {...props}\n      className={cn(\n        'mt-2 w-full resize-none border-none bg-inherit p-0 font-[inherit] text-inherit',\n        'focus:outline-none focus:[&::placeholder]:opacity-0',\n        'text-center print:placeholder:text-transparent',\n        props.className\n      )}\n    />\n  );\n}\n\nexport const CaptionButton = createPrimitiveComponent(Button)({\n  propsHook: useCaptionButton,\n  stateHook: useCaptionButtonState,\n});\n",
      "type": "registry:ui"
    }
  ],
  "meta": {
    "docs": [
      {
        "route": "/docs/caption"
      },
      {
        "route": "https://pro.platejs.org/docs/components/caption"
      }
    ],
    "examples": [
      "media-demo"
    ]
  },
  "type": "registry:ui"
}