hover-card
Hover card with profile information.
Hover card with profile information.
Загрузка превью…
src/hover-card/c-hover-card-3.vue
<!--
Порт c-hover-card-3 ("Profile hover card") —
.agent-tmp/reui-upstream/registry-reui/bases/radix/components/hover-card/c-hover-card-3.tsx
Отличия от апстрима (docs/PORTING.md §5, §10):
- `IconPlaceholder` (иконка календаря внутри `HoverCardContent`) заменена
инлайновым `<svg>` (lucide-react v0.545.0 "calendar") — контент не
смонтирован в закрытом состоянии, диф это не проверяет, но пишем
настоящий SVG, а не оставляем блокер.
- Сетевой unsplash-аватар в триггере (всегда смонтирован) заменён
локальным 1×1 `data:` URI (`PIXEL`, та же константа, что в
`badge`/`avatar`/`block-tooltip`).
-->
<script setup lang="ts">
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"
import { HoverCard, HoverCardContent, HoverCardTrigger } from "@/components/ui/hover-card"
const PIXEL = "data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAUwAOw=="
</script>
<template>
<div class="flex min-h-[100px] items-center justify-center">
<HoverCard :open-delay="100" :close-delay="100">
<HoverCardTrigger as-child>
<div class="flex cursor-pointer items-center gap-2">
<Avatar class="size-8">
<AvatarImage :src="PIXEL" alt="Elena Soroka" />
<AvatarFallback>ES</AvatarFallback>
</Avatar>
<div>
<p class="text-sm font-medium hover:underline">Elena Soroka</p>
<p class="text-muted-foreground text-xs">@e.soroka</p>
</div>
</div>
</HoverCardTrigger>
<HoverCardContent class="w-64">
<div class="flex space-x-2">
<Avatar class="size-10 shrink-0">
<AvatarImage :src="PIXEL" alt="Elena Soroka" />
<AvatarFallback>ES</AvatarFallback>
</Avatar>
<div class="space-y-1">
<div>
<p class="text-sm font-medium hover:underline">Elena Soroka</p>
<p class="text-muted-foreground text-xs">@e.soroka</p>
</div>
<p class="text-foreground">Lead Product Designer at Vibe.</p>
<div class="flex items-center gap-1">
<svg
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="2"
stroke-linecap="round"
stroke-linejoin="round"
class="size-3.5 opacity-60"
>
<path d="M8 2v4" />
<path d="M16 2v4" />
<rect width="18" height="18" x="3" y="4" rx="2" />
<path d="M3 10h18" />
</svg>
<span class="text-muted-foreground text-xs leading-none">Joined December 2023</span>
</div>
</div>
</div>
</HoverCardContent>
</HoverCard>
</div>
</template>
Установка
npx shadcn-vue@latest add https://revueui.rootapi.dev/r/c-hover-card-3.jsonЗависимости реестра
Источник: порт из ReUI (Keenthemes, MIT)