{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "HoverCard",
  "dependencies": [
    "@base-ui/react",
    "cn",
    "rescript-base-ui"
  ],
  "files": [
    {
      "path": "registry/base/ui/HoverCard.res",
      "content": "@@directive(\"'use client'\")\n\nopen BaseUi.Types\n\n@module(\"cn\")\nexternal cn: (string, option<string>) => string = \"cn\"\n\n@react.componentWithProps(BaseUi.PreviewCard.Root.props)\nlet make = (props: BaseUi.PreviewCard.Root.props<'payload>) =>\n  <BaseUi.PreviewCard.Root {...props} dataSlot={props.dataSlot->Option.getOr(\"hover-card\")} />\n\nmodule Trigger = {\n  @react.componentWithProps(BaseUi.PreviewCard.Trigger.props)\n  let make = (props: BaseUi.PreviewCard.Trigger.props<'payload>) =>\n    <BaseUi.PreviewCard.Trigger\n      {...props} dataSlot={props.dataSlot->Option.getOr(\"hover-card-trigger\")}\n    />\n}\n\nmodule Content = {\n  type props = {\n    ...BaseUi.Types.BaseUIComponentProps.t,\n    align?: Align.t,\n    alignOffset?: float,\n    side?: Side.t,\n    sideOffset?: float,\n  }\n\n  let toBaseUiProps: props => BaseUi.Types.BaseUIComponentProps.t = %raw(`({align, alignOffset, side, sideOffset, ...props}) => props`)\n\n  @react.componentWithProps(props)\n  let make = (props: props) => {\n    let align = props.align->Option.getOr(Align.Center)\n    let alignOffset = props.alignOffset->Option.getOr(4.)\n    let side = props.side->Option.getOr(Side.Bottom)\n    let sideOffset = props.sideOffset->Option.getOr(4.)\n    <BaseUi.PreviewCard.Portal dataSlot=\"hover-card-portal\">\n      <BaseUi.PreviewCard.Positioner\n        align\n        alignOffset={Const(alignOffset)}\n        side\n        sideOffset={Const(sideOffset)}\n        className=\"isolate z-50\"\n      >\n        <BaseUi.PreviewCard.Popup\n          {...props->toBaseUiProps}\n          dataSlot={props.dataSlot->Option.getOr(\"hover-card-content\")}\n          className={cn(\n            \"data-[side=inline-start]:slide-in-from-right-2 data-[side=inline-end]:slide-in-from-left-2 data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-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 ring-foreground/10 bg-popover text-popover-foreground w-64 rounded-lg p-2.5 text-sm shadow-md ring-1 duration-100 z-50 origin-(--transform-origin) outline-hidden\",\n            props.className,\n          )}\n        />\n      </BaseUi.PreviewCard.Positioner>\n    </BaseUi.PreviewCard.Portal>\n  }\n}\n",
      "type": "registry:file",
      "target": "@ui/HoverCard.res"
    }
  ],
  "type": "registry:ui"
}