{"$schema":"https://ui.shadcn.com/schema/registry-item.json","name":"preview-card","title":"Preview Card","description":"Anchored hover and focus preview for linked content.","dependencies":["@base-ui/react@1.7.0"],"registryDependencies":["@siteplane/base"],"files":[{"path":"packages/ui/src/components/preview-card/preview-card.tsx","content":"\"use client\";\n\nimport { PreviewCard as PreviewCardPrimitive } from \"@base-ui/react/preview-card\";\nimport type React from \"react\";\nimport { SiteplaneUIPortalScope } from \"../../system/provider/siteplane-ui-provider\";\nimport { surfaceClassNames } from \"../../system/styles/surface\";\nimport { cn, type WithStringClassName } from \"../../system/utils/cn\";\nimport { slotClass } from \"../../system/utils/slot-class\";\nexport const PreviewCard: typeof PreviewCardPrimitive.Root =\n  PreviewCardPrimitive.Root;\nexport function PreviewCardTrigger(\n  props: WithStringClassName<PreviewCardPrimitive.Trigger.Props>,\n): React.ReactElement {\n  return (\n    <PreviewCardPrimitive.Trigger\n      data-slot=\"preview-card-trigger\"\n      {...props}\n      className={cn(slotClass(\"preview-card-trigger\", props), props.className)}\n    />\n  );\n}\nexport function PreviewCardPopup({\n  className,\n  children,\n  side = \"bottom\",\n  align = \"center\",\n  sideOffset = 4,\n  alignOffset = 0,\n  anchor,\n  portalProps,\n  ...props\n}: WithStringClassName<PreviewCardPrimitive.Popup.Props> & {\n  side?: PreviewCardPrimitive.Positioner.Props[\"side\"];\n  align?: PreviewCardPrimitive.Positioner.Props[\"align\"];\n  sideOffset?: PreviewCardPrimitive.Positioner.Props[\"sideOffset\"];\n  alignOffset?: PreviewCardPrimitive.Positioner.Props[\"alignOffset\"];\n  anchor?: PreviewCardPrimitive.Positioner.Props[\"anchor\"];\n  portalProps?: WithStringClassName<PreviewCardPrimitive.Portal.Props>;\n}) {\n  return (\n    <PreviewCardPrimitive.Portal {...portalProps}>\n      <SiteplaneUIPortalScope>\n        <PreviewCardPrimitive.Positioner\n          align={align}\n          alignOffset={alignOffset}\n          anchor={anchor}\n          className=\"sp-preview-card-positioner z-50\"\n          data-slot=\"preview-card-positioner\"\n          side={side}\n          sideOffset={sideOffset}\n        >\n          <PreviewCardPrimitive.Popup\n            className={cn(\n              slotClass(\"preview-card-popup\", props),\n              surfaceClassNames.floatingOverlay,\n              \"flex w-64 origin-(--transform-origin) text-balance rounded-lg p-4 text-sm before:rounded-[inherit]\",\n              className,\n            )}\n            data-slot=\"preview-card-popup\"\n            {...props}\n          >\n            {children}\n          </PreviewCardPrimitive.Popup>\n        </PreviewCardPrimitive.Positioner>\n      </SiteplaneUIPortalScope>\n    </PreviewCardPrimitive.Portal>\n  );\n}\nexport { PreviewCardPrimitive };\n","type":"registry:ui","target":"~/src/siteplane/components/preview-card/preview-card.tsx"},{"path":"packages/ui/src/components/preview-card/index.ts","content":"export * from \"./preview-card\";\n","type":"registry:ui","target":"~/src/siteplane/components/preview-card/index.ts"}],"type":"registry:ui","docs":"https://ui.siteplane.io/docs-markdown/components/preview-card.md","categories":["Overlays & disclosure"],"meta":{"avoidWhen":["Avoid for required content or actions: the card is supplementary. Use Popover or Dialog.","Avoid when the link is not understandable without the preview."],"description":"Anchored hover and focus preview for linked content.","knownLimitations":[],"providerNotes":[],"releaseStatus":"stable","searchTerms":["preview-card","preview card","preview","card"],"useWhen":["Use to preview the destination of a link on hover or focus without leaving the page."]}}