UNPKG

@wener/console

Version:

Base console UI toolkit

36 lines (35 loc) 1.38 kB
import React, { cloneElement, Fragment } from "react"; import { FloatingPortal } from "@floating-ui/react"; import { cn } from "../tw/cn.js"; import { usePopover } from "./usePopover.js"; export const Tooltip = ({ children, content, portal, click = false, // dismiss = true, // hover = true, // focus = false, // role = 'tooltip', placement = "top", className, // style, ...props }) => { // not works in SSR if (typeof window === "undefined") return children; const { refs, getReferenceProps, getFloatingProps, floatingStyles, open, context } = usePopover({ hover: true, click, placement }); if (!content) return children; const trigger = /*#__PURE__*/ cloneElement(children, getReferenceProps({ ref: refs.setReference, ...children.props, ...getReferenceProps() })); const Wrapper = portal ? FloatingPortal : Fragment; return /*#__PURE__*/ React.createElement(React.Fragment, null, trigger, open && /*#__PURE__*/ React.createElement(Wrapper, null, /*#__PURE__*/ React.createElement("div", { role: "tooltip", className: cn("Tooltip max-w-xs rounded bg-neutral px-2 py-1 text-sm text-neutral-content", className), ref: refs.setFloating, ...getFloatingProps(), style: floatingStyles }, content))); }; //# sourceMappingURL=Tooltip.js.map