{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "popover",
  "title": "Popover",
  "description": "An anchored panel for contextual settings.",
  "dependencies": [
    "@base-ui/react"
  ],
  "registryDependencies": [
    "@neumorphism-ui/utils"
  ],
  "files": [
    {
      "path": "src/components/ui/popover.tsx",
      "content": "\"use client\";\n\nimport { Popover as Primitive } from \"@base-ui/react/popover\";\nimport { mergeClassName } from \"@/lib/utils\";\n\nconst Popover = Primitive.Root;\nconst PopoverTrigger = Primitive.Trigger;\nconst PopoverClose = Primitive.Close;\n\ntype PopoverContentProps = Primitive.Popup.Props & {\n  side?: Primitive.Positioner.Props[\"side\"];\n  align?: Primitive.Positioner.Props[\"align\"];\n  sideOffset?: number;\n};\n\nfunction PopoverContent({ className, side = \"bottom\", align = \"center\", sideOffset = 10, ...props }: PopoverContentProps) {\n  return (\n    <Primitive.Portal>\n      <Primitive.Positioner side={side} align={align} sideOffset={sideOffset} className=\"z-50 outline-none\">\n        <Primitive.Popup\n          data-slot=\"popover-content\"\n          className={mergeClassName<Primitive.Popup.State>(\n            \"grid w-80 max-w-[calc(100vw-2rem)] max-h-[var(--available-height)] gap-3 overflow-y-auto rounded-[var(--neu-radius-overlay)] border border-[color:var(--neu-edge)] bg-[var(--popover)] [background-image:var(--neu-fill-raised)] p-5 text-sm text-[var(--popover-foreground)] [box-shadow:var(--neu-shadow-floating)] outline-none origin-[var(--transform-origin)] transition-[opacity,transform] duration-[var(--neu-duration)] motion-reduce:transition-none data-[starting-style]:scale-95 data-[starting-style]:opacity-0 data-[ending-style]:scale-95 data-[ending-style]:opacity-0\",\n            className,\n          )}\n          {...props}\n        />\n      </Primitive.Positioner>\n    </Primitive.Portal>\n  );\n}\n\nfunction PopoverTitle({ className, ...props }: Primitive.Title.Props) {\n  return <Primitive.Title data-slot=\"popover-title\" className={mergeClassName<Primitive.Title.State>(\"font-semibold tracking-tight text-[var(--foreground)]\", className)} {...props} />;\n}\nfunction PopoverDescription({ className, ...props }: Primitive.Description.Props) {\n  return <Primitive.Description data-slot=\"popover-description\" className={mergeClassName<Primitive.Description.State>(\"text-sm leading-relaxed text-[var(--muted-foreground)]\", className)} {...props} />;\n}\n\nexport { Popover, PopoverTrigger, PopoverClose, PopoverContent, PopoverTitle, PopoverDescription };\nexport type { PopoverContentProps };\n",
      "type": "registry:ui"
    }
  ],
  "categories": [
    "actions-overlays"
  ],
  "type": "registry:ui"
}