UNPKG

@thinkbuff/figma-react

Version:

A Figma React UI components for creating plugins and widgets

80 lines (77 loc) 2.02 kB
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 };