@thinkbuff/figma-react
Version:
A Figma React UI components for creating plugins and widgets
80 lines (77 loc) • 2.02 kB
JavaScript
import { jsx, jsxs } from 'react/jsx-runtime';
import { forwardRef } from 'react';
import * as TooltipPrimitive from '@radix-ui/react-tooltip';
import { cn } from '../../utils/cn.mjs';
const TooltipProvider = TooltipPrimitive.Provider;
const TooltipRoot = TooltipPrimitive.Root;
const TooltipTrigger = TooltipPrimitive.Trigger;
const TooltipArrow = forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx(
TooltipPrimitive.Arrow,
{
className: cn("fill-figma-bg-tooltip", className),
ref,
...props
}
));
TooltipArrow.displayName = TooltipPrimitive.Arrow.displayName;
const TooltipContent = forwardRef(
({ className, container, sideOffset = 4, ...props }, ref) => /* @__PURE__ */ jsx(TooltipPrimitive.Portal, { container, children: /* @__PURE__ */ jsx(
TooltipPrimitive.Content,
{
ref,
sideOffset,
className: cn(
"bg-figma-tooltip",
"text-figma-tooltip",
"fill-figma-icon-tooltip",
"px-3",
"rounded-0.5",
"py-2",
"z-50",
className
),
...props
}
) })
);
TooltipContent.displayName = TooltipPrimitive.Content.displayName;
const Tooltip = ({
// Root props,
open,
defaultOpen,
onOpenChange,
delayDuration,
disableHoverableContent,
// Tooltip Trigger
children,
// Tooltip Content
content,
withArrow = true,
// Tooltip Content props
...props
}) => /* @__PURE__ */ jsxs(
TooltipRoot,
{
open,
defaultOpen,
onOpenChange,
delayDuration,
disableHoverableContent,
children: [
/* @__PURE__ */ jsx(TooltipTrigger, { asChild: true, children }),
/* @__PURE__ */ jsxs(
TooltipContent,
{
...props,
asChild: false,
children: [
content,
withArrow ? /* @__PURE__ */ jsx(TooltipArrow, {}) : null
]
}
)
]
}
);
Tooltip.displayName = "Tooltip";
export { Tooltip, TooltipArrow, TooltipContent, TooltipProvider, TooltipRoot, TooltipTrigger };