mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-05-05 17:30:26 +02:00
55 lines
1.3 KiB
TypeScript
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>
|
|
);
|
|
}
|