{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "popover",
  "dependencies": [
    "@base-ui/react"
  ],
  "files": [
    {
      "path": "registry/default/ui/popover.tsx",
      "content": "\"use client\";\n\nimport { Popover as PopoverPrimitive } from \"@base-ui/react/popover\";\nimport type React from \"react\";\nimport { cn } from \"@/registry/default/lib/utils\";\n\nexport const PopoverCreateHandle: typeof PopoverPrimitive.createHandle =\n  PopoverPrimitive.createHandle;\n\nexport const Popover: typeof PopoverPrimitive.Root = PopoverPrimitive.Root;\n\nexport function PopoverTrigger({\n  className,\n  children,\n  ...props\n}: PopoverPrimitive.Trigger.Props): React.ReactElement {\n  return (\n    <PopoverPrimitive.Trigger\n      className={className}\n      data-slot=\"popover-trigger\"\n      {...props}\n    >\n      {children}\n    </PopoverPrimitive.Trigger>\n  );\n}\n\nexport function PopoverPopup({\n  children,\n  className,\n  side = \"bottom\",\n  align = \"center\",\n  sideOffset = 4,\n  alignOffset = 0,\n  tooltipStyle = false,\n  anchor,\n  portalProps,\n  ...props\n}: PopoverPrimitive.Popup.Props & {\n  portalProps?: PopoverPrimitive.Portal.Props;\n  side?: PopoverPrimitive.Positioner.Props[\"side\"];\n  align?: PopoverPrimitive.Positioner.Props[\"align\"];\n  sideOffset?: PopoverPrimitive.Positioner.Props[\"sideOffset\"];\n  alignOffset?: PopoverPrimitive.Positioner.Props[\"alignOffset\"];\n  tooltipStyle?: boolean;\n  anchor?: PopoverPrimitive.Positioner.Props[\"anchor\"];\n}): React.ReactElement {\n  return (\n    <PopoverPrimitive.Portal {...portalProps}>\n      <PopoverPrimitive.Positioner\n        align={align}\n        alignOffset={alignOffset}\n        anchor={anchor}\n        className=\"z-50 h-(--positioner-height) w-(--positioner-width) max-w-(--available-width) transition-[top,left,right,bottom,transform] data-instant:transition-none\"\n        data-slot=\"popover-positioner\"\n        side={side}\n        sideOffset={sideOffset}\n      >\n        <PopoverPrimitive.Popup\n          className={cn(\n            \"relative flex h-(--popup-height,auto) w-(--popup-width,auto) origin-(--transform-origin) rounded-lg border bg-popover not-dark:bg-clip-padding text-popover-foreground shadow-lg/5 outline-none transition-[width,height,scale,opacity] before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] before:shadow-[0_1px_--theme(--color-black/4%)] has-data-[slot=calendar]:rounded-xl has-data-[slot=calendar]:before:rounded-[calc(var(--radius-xl)-1px)] data-starting-style:scale-98 data-starting-style:opacity-0 dark:before:shadow-[0_-1px_--theme(--color-white/6%)]\",\n            tooltipStyle &&\n              \"w-fit text-balance rounded-md text-xs shadow-md/5 before:rounded-[calc(var(--radius-md)-1px)]\",\n            className,\n          )}\n          data-slot=\"popover-popup\"\n          {...props}\n        >\n          <PopoverPrimitive.Viewport\n            className={cn(\n              \"relative size-full max-h-(--available-height) overflow-clip px-(--viewport-inline-padding) py-4 [--viewport-inline-padding:--spacing(4)] has-data-[slot=calendar]:p-2 data-instant:transition-none **:data-current:data-ending-style:opacity-0 **:data-current:data-starting-style:opacity-0 **:data-previous:data-ending-style:opacity-0 **:data-previous:data-starting-style:opacity-0 **:data-current:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding)-2px)] **:data-previous:w-[calc(var(--popup-width)-2*var(--viewport-inline-padding)-2px)] **:data-current:opacity-100 **:data-previous:opacity-100 **:data-current:transition-opacity **:data-previous:transition-opacity\",\n              tooltipStyle\n                ? \"py-1 [--viewport-inline-padding:--spacing(2)]\"\n                : \"not-data-transitioning:overflow-y-auto\",\n            )}\n            data-slot=\"popover-viewport\"\n          >\n            {children}\n          </PopoverPrimitive.Viewport>\n        </PopoverPrimitive.Popup>\n      </PopoverPrimitive.Positioner>\n    </PopoverPrimitive.Portal>\n  );\n}\n\nexport function PopoverClose({\n  ...props\n}: PopoverPrimitive.Close.Props): React.ReactElement {\n  return <PopoverPrimitive.Close data-slot=\"popover-close\" {...props} />;\n}\n\nexport function PopoverTitle({\n  className,\n  ...props\n}: PopoverPrimitive.Title.Props): React.ReactElement {\n  return (\n    <PopoverPrimitive.Title\n      className={cn(\"font-semibold text-lg leading-none\", className)}\n      data-slot=\"popover-title\"\n      {...props}\n    />\n  );\n}\n\nexport function PopoverDescription({\n  className,\n  ...props\n}: PopoverPrimitive.Description.Props): React.ReactElement {\n  return (\n    <PopoverPrimitive.Description\n      className={cn(\"text-muted-foreground text-sm\", className)}\n      data-slot=\"popover-description\"\n      {...props}\n    />\n  );\n}\n\nexport { PopoverPrimitive, PopoverPopup as PopoverContent };\n",
      "type": "registry:ui"
    }
  ],
  "type": "registry:ui"
}