{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "popover",
  "type": "registry:ui",
  "title": "Popover",
  "description": "Popover built on Base UI with seam overlay-depth entrance.",
  "dependencies": [
    "@base-ui/react",
    "motion"
  ],
  "registryDependencies": [
    "https://seamui.dev/r/utils.json",
    "https://seamui.dev/r/motion.json"
  ],
  "files": [
    {
      "path": "registry/seam/ui/popover.tsx",
      "content": "\"use client\"\n\nimport type * as React from \"react\"\nimport { Popover as BasePopover } from \"@base-ui/react/popover\"\n\nimport { cn } from \"@/lib/utils\"\nimport { condense } from \"@/lib/motion\"\n\nfunction Popover(props: React.ComponentProps<typeof BasePopover.Root>) {\n  return <BasePopover.Root {...props} />\n}\n\nfunction PopoverTrigger(\n  props: React.ComponentProps<typeof BasePopover.Trigger>\n) {\n  return <BasePopover.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n  className,\n  sideOffset = 8,\n  align = \"center\",\n  children,\n  ...props\n}: React.ComponentProps<typeof BasePopover.Popup> & {\n  sideOffset?: number\n  align?: \"start\" | \"center\" | \"end\"\n}) {\n  return (\n    <BasePopover.Portal>\n      <BasePopover.Positioner sideOffset={sideOffset} align={align}>\n        <BasePopover.Popup\n          data-slot=\"popover-content\"\n          // seam condense: the surface rises out of its anchor and fades in;\n          // on dismiss it falls back and fades (Base UI awaits the CSS exit).\n          className={cn(\n            \"bg-popover text-popover-foreground z-50 w-72 rounded-lg squircle border p-4 shadow-overlay outline-none\",\n            condense.surface,\n            className\n          )}\n          {...props}\n        >\n          {children}\n        </BasePopover.Popup>\n      </BasePopover.Positioner>\n    </BasePopover.Portal>\n  )\n}\n\nfunction PopoverClose(props: React.ComponentProps<typeof BasePopover.Close>) {\n  return <BasePopover.Close data-slot=\"popover-close\" {...props} />\n}\n\nfunction PopoverTitle({\n  className,\n  ...props\n}: React.ComponentProps<typeof BasePopover.Title>) {\n  return (\n    <BasePopover.Title\n      data-slot=\"popover-title\"\n      className={cn(\"text-sm font-semibold\", className)}\n      {...props}\n    />\n  )\n}\n\nfunction PopoverDescription({\n  className,\n  ...props\n}: React.ComponentProps<typeof BasePopover.Description>) {\n  return (\n    <BasePopover.Description\n      data-slot=\"popover-description\"\n      className={cn(\"text-muted-foreground text-sm\", className)}\n      {...props}\n    />\n  )\n}\n\nexport {\n  Popover,\n  PopoverTrigger,\n  PopoverContent,\n  PopoverClose,\n  PopoverTitle,\n  PopoverDescription,\n}\n",
      "type": "registry:ui",
      "target": "components/ui/popover.tsx"
    }
  ]
}