{"$schema":"https://ui.logic2b.com/schema/registry-item.json","name":"popover","type":"registry:ui","description":"Displays rich content in a portal, triggered by a button, built on Radix Popover. Use it for non-modal floating panels such as pickers or extra details that stay open until dismissed. Parts: Popover (root), PopoverTrigger, PopoverContent, PopoverAnchor.","dependencies":["radix-ui"],"registryDependencies":["utils"],"files":[{"path":"ui/popover.tsx","type":"registry:ui","content":"\"use client\"\n\nimport * as React from \"react\"\nimport { Popover as PopoverPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n  return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n  return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n  className,\n  align = \"center\",\n  sideOffset = 4,\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n  return (\n    <PopoverPrimitive.Portal>\n      <PopoverPrimitive.Content\n        data-slot=\"popover-content\"\n        align={align}\n        sideOffset={sideOffset}\n        className={cn(\n          \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n          className\n        )}\n        {...props}\n      />\n    </PopoverPrimitive.Portal>\n  )\n}\n\nfunction PopoverAnchor({\n  ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n  return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n"}],"categories":["overlays"],"accessibility":{"support":"primitive","pattern":"non-modal dialog","primitive":"Radix Popover","keyboard":[{"keys":["Enter","Space"],"action":"Activate the focused control."},{"keys":["Escape"],"action":"Close the open surface and restore focus."}],"aria":["The trigger manages aria-expanded and aria-controls; focus can move into the portal content."],"consumer":["Label the trigger and provide an explicit close path for complex content."]},"api":{"source":"src/ui/popover.tsx","exports":[{"name":"Popover","kind":"component","propsType":"React.ComponentProps<typeof PopoverPrimitive.Root>"},{"name":"PopoverTrigger","kind":"component","propsType":"React.ComponentProps<typeof PopoverPrimitive.Trigger>"},{"name":"PopoverContent","kind":"component","propsType":"React.ComponentProps<typeof PopoverPrimitive.Content>","props":[{"name":"align","type":"\"center\" | \"end\" | \"start\"","required":false,"default":"\"center\""},{"name":"sideOffset","type":"number","required":false,"default":"4"}]},{"name":"PopoverAnchor","kind":"component","propsType":"React.ComponentProps<typeof PopoverPrimitive.Anchor>"}]}}