55 lines
1.3 KiB
TypeScript

import * as TooltipPrimitive from "@radix-ui/react-tooltip";
import { ReactNode } from "react";
interface TooltipProps {
children: ReactNode;
content: ReactNode;
side?: "top" | "right" | "bottom" | "left";
align?: "start" | "center" | "end";
}
export function Tooltip({
children,
content,
delayDuration = 200,
side = "top",
align = "center",
width,
}: {
children: ReactNode;
content: ReactNode;
delayDuration?: number;
side?: "top" | "right" | "bottom" | "left";
align?: "start" | "center" | "end";
width?: string;
}) {
return (
<TooltipPrimitive.Provider delayDuration={delayDuration}>
<TooltipPrimitive.Root>
<TooltipPrimitive.Trigger asChild>{children}</TooltipPrimitive.Trigger>
<TooltipPrimitive.Content
side={side}
align={align}
className={`
bg-background-inverted
text-inverted
text-sm
rounded
${width}
py-1
whitespace-normal
break-words
flex
px-2
z-10
shadow-lg
`}
>
{content}
<TooltipPrimitive.Arrow className="fill-black" />
</TooltipPrimitive.Content>
</TooltipPrimitive.Root>
</TooltipPrimitive.Provider>
);
}