{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "components-headless-popover",
  "title": "Popover",
  "description": "Popovers are perfect for floating panels with arbitrary content like navigation menus, mobile menus and flyout menus.",
  "registryDependencies": [
    "@animate-ui/v1/primitives-headless-popover"
  ],
  "files": [
    {
      "path": "registry/components/headless/popover/index.tsx",
      "content": "import * as React from 'react';\n\nimport {\n  Popover as PopoverPrimitive,\n  PopoverButton as PopoverButtonPrimitive,\n  PopoverPanel as PopoverPanelPrimitive,\n  PopoverBackdrop as PopoverBackdropPrimitive,\n  PopoverGroup as PopoverGroupPrimitive,\n  type PopoverProps as PopoverPrimitiveProps,\n  type PopoverButtonProps as PopoverButtonPrimitiveProps,\n  type PopoverPanelProps as PopoverPanelPrimitiveProps,\n  type PopoverBackdropProps as PopoverBackdropPrimitiveProps,\n  type PopoverGroupProps as PopoverGroupPrimitiveProps,\n} from '@/components/animate-ui/primitives/headless/popover';\nimport { cn } from '@/lib/utils';\n\ntype PopoverProps<TTag extends React.ElementType = 'div'> =\n  PopoverPrimitiveProps<TTag>;\n\nfunction Popover<TTag extends React.ElementType = 'div'>(\n  props: PopoverProps<TTag>,\n) {\n  return <PopoverPrimitive {...props} />;\n}\n\ntype PopoverButtonProps<TTag extends React.ElementType = 'button'> =\n  PopoverButtonPrimitiveProps<TTag>;\n\nfunction PopoverButton<TTag extends React.ElementType = 'button'>(\n  props: PopoverButtonProps<TTag>,\n) {\n  return <PopoverButtonPrimitive {...props} />;\n}\n\ntype PopoverPanelProps<TTag extends React.ElementType = 'div'> =\n  PopoverPanelPrimitiveProps<TTag>;\n\nfunction PopoverPanel<TTag extends React.ElementType = 'div'>({\n  className,\n  anchor = { to: 'bottom', gap: 4 },\n  ...props\n}: PopoverPanelProps<TTag>) {\n  return (\n    <PopoverPanelPrimitive\n      anchor={anchor}\n      className={cn(\n        'bg-popover text-popover-foreground z-50 w-72 rounded-md border p-4 shadow-md outline-hidden',\n        'data-[anchor=top_center]:origin-bottom data-[anchor=top_start]:origin-bottom-left data-[anchor=top_end]:origin-bottom-right',\n        'data-[anchor=bottom_center]:origin-top data-[anchor=bottom_start]:origin-top-left data-[anchor=bottom_end]:origin-top-right',\n        'data-[anchor=left_center]:origin-right data-[anchor=left_start]:origin-top-right data-[anchor=left_end]:origin-bottom-right',\n        'data-[anchor=right_center]:origin-left data-[anchor=right_start]:origin-top-left data-[anchor=right_end]:origin-bottom-left',\n        className,\n      )}\n      {...props}\n    />\n  );\n}\n\ntype PopoverBackdropProps<TTag extends React.ElementType = 'div'> =\n  PopoverBackdropPrimitiveProps<TTag>;\n\nfunction PopoverBackdrop<TTag extends React.ElementType = 'div'>(\n  props: PopoverBackdropProps<TTag>,\n) {\n  return <PopoverBackdropPrimitive {...props} />;\n}\n\ntype PopoverGroupProps<TTag extends React.ElementType = 'div'> =\n  PopoverGroupPrimitiveProps<TTag>;\n\nfunction PopoverGroup<TTag extends React.ElementType = 'div'>(\n  props: PopoverGroupProps<TTag>,\n) {\n  return <PopoverGroupPrimitive {...props} />;\n}\n\nexport {\n  Popover,\n  PopoverButton,\n  PopoverPanel,\n  PopoverBackdrop,\n  PopoverGroup,\n  type PopoverProps,\n  type PopoverButtonProps,\n  type PopoverPanelProps,\n  type PopoverBackdropProps,\n  type PopoverGroupProps,\n};\n",
      "type": "registry:ui",
      "target": "components/animate-ui/components/headless/popover.tsx"
    }
  ],
  "type": "registry:ui"
}