{
  "$schema": "https://shadcn-vue.com/schema/registry-item.json",
  "name": "hover-card",
  "title": "Hover Card",
  "type": "registry:ui",
  "files": [
    {
      "path": "packages/registry-vue/components/hover-card/HoverCard.vue",
      "content": "<script setup lang=\"ts\">\nimport type { HoverCardRootEmits, HoverCardRootProps } from 'reka-ui'\nimport { HoverCardRoot, useForwardPropsEmits } from 'reka-ui'\n\nconst props = defineProps<HoverCardRootProps>()\nconst emits = defineEmits<HoverCardRootEmits>()\n\nconst forwarded = useForwardPropsEmits(props, emits)\n</script>\n\n<template>\n  <HoverCardRoot v-slot=\"slotProps\" data-uipkge data-slot=\"hover-card\" v-bind=\"forwarded\">\n    <slot v-bind=\"slotProps\" />\n  </HoverCardRoot>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/hover-card/HoverCard.vue"
    },
    {
      "path": "packages/registry-vue/components/hover-card/HoverCardContent.vue",
      "content": "<script setup lang=\"ts\">\nimport type { HoverCardContentProps } from 'reka-ui'\nimport type { HTMLAttributes } from 'vue'\nimport { reactiveOmit } from '@vueuse/core'\nimport { HoverCardContent, HoverCardPortal, useForwardProps } from 'reka-ui'\nimport { cn } from '@/lib/utils'\n\ndefineOptions({\n  inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<HoverCardContentProps & { class?: HTMLAttributes['class'] }>(), {\n  sideOffset: 4,\n})\n\nconst delegatedProps = reactiveOmit(props, 'class')\n\nconst forwardedProps = useForwardProps(delegatedProps)\n</script>\n\n<template>\n  <HoverCardPortal>\n    <HoverCardContent\n      data-uipkge\n      data-slot=\"hover-card-content\"\n      v-bind=\"{ ...$attrs, ...forwardedProps }\"\n      :class=\"\n        cn(\n          'bg-popover text-popover-foreground motion-safe:data-[state=open]:animate-in motion-safe:data-[state=closed]:animate-out motion-safe:data-[state=closed]:fade-out-0 motion-safe:data-[state=open]:fade-in-0 motion-safe:data-[state=closed]:zoom-out-95 motion-safe:data-[state=open]:zoom-in-95 motion-safe:data-[side=bottom]:slide-in-from-top-2 motion-safe:data-[side=left]:slide-in-from-right-2 motion-safe:data-[side=right]:slide-in-from-left-2 motion-safe:data-[side=top]:slide-in-from-bottom-2 z-50 w-64 rounded-md border p-4 shadow-md outline-hidden',\n          props.class,\n        )\n      \"\n    >\n      <slot />\n    </HoverCardContent>\n  </HoverCardPortal>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/hover-card/HoverCardContent.vue"
    },
    {
      "path": "packages/registry-vue/components/hover-card/HoverCardTrigger.vue",
      "content": "<script setup lang=\"ts\">\nimport type { HoverCardTriggerProps } from 'reka-ui'\nimport { HoverCardTrigger } from 'reka-ui'\n\nconst props = defineProps<HoverCardTriggerProps>()\n</script>\n\n<template>\n  <HoverCardTrigger data-uipkge data-slot=\"hover-card-trigger\" v-bind=\"props\">\n    <slot />\n  </HoverCardTrigger>\n</template>\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/hover-card/HoverCardTrigger.vue"
    },
    {
      "path": "packages/registry-vue/components/hover-card/index.ts",
      "content": "export { default as HoverCard } from './HoverCard.vue'\nexport { default as HoverCardContent } from './HoverCardContent.vue'\nexport { default as HoverCardTrigger } from './HoverCardTrigger.vue'\n",
      "type": "registry:ui",
      "target": "~/app/components/ui/hover-card/index.ts"
    }
  ],
  "dependencies": [
    "@vueuse/core",
    "reka-ui"
  ],
  "devDependencies": [],
  "registryDependencies": [],
  "description": "Rich popover triggered by hover/focus instead of click. Use for inline previews — user cards on @mentions, link previews, KPI explanations. Built on reka-ui with a configurable open/close delay.",
  "categories": [
    "overlay"
  ]
}