@wener/console
Version:
Base console UI toolkit
36 lines (35 loc) • 1.38 kB
JavaScript
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