A hover-card component in neobrutalism style.
1"use client"
2
3import * as HoverCardPrimitive from "@radix-ui/react-hover-card"
4
5import * as React from "react"
6
7import { cn } from "@/lib/utils"
8
9function HoverCard({
10 ...props
11}: React.ComponentProps<typeof HoverCardPrimitive.Root>) {
12 return <HoverCardPrimitive.Root data-slot="hover-card" {...props} />
13}
14
15function HoverCardTrigger({
16 ...props
17}: React.ComponentProps<typeof HoverCardPrimitive.Trigger>) {
18 return (
19 <HoverCardPrimitive.Trigger data-slot="hover-card-trigger" {...props} />
20 )
21}
22
23function HoverCardContent({
24 className,
25 align = "center",
26 sideOffset = 4,
27 ...props
28}: React.ComponentProps<typeof HoverCardPrimitive.Content>) {
29 return (
30 <HoverCardPrimitive.Content
31 data-slot="hover-card-content"
32 align={align}
33 sideOffset={sideOffset}
34 className={cn(
35 "z-50 w-64 rounded-base border-2 border-border bg-main p-4 font-base text-main-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 origin-(--radix-hover-card-content-transform-origin)",
36 className,
37 )}
38 {...props}
39 />
40 )
41}
42
43export { HoverCard, HoverCardTrigger, HoverCardContent }
44