@wener/console
Version:
Base console UI toolkit
30 lines (29 loc) • 1.8 kB
JavaScript
import { Tooltip as BaseTooltip } from "@base-ui/react/tooltip";
import { cn } from "../utils/cn.js";
(function (Tooltip) {
Tooltip.Provider = BaseTooltip.Provider;
function Composite(param) {
var children = param.children, content = param.content, _param_portal = param.portal, portal = _param_portal === void 0 ? false : _param_portal, _param_placement = param.placement, placement = _param_placement === void 0 ? "top" : _param_placement, className = param.className, _param_disabled = param.disabled, disabled = _param_disabled === void 0 ? false : _param_disabled, delay = param.delay;
// SSR 不支持
if (typeof window === "undefined")
return children;
// 没有内容或禁用时直接返回子元素
if (!content || disabled)
return children;
return /*#__PURE__*/ React.createElement(BaseTooltip.Root, null, /*#__PURE__*/ React.createElement(BaseTooltip.Trigger, {
render: children
}), /*#__PURE__*/ React.createElement(BaseTooltip.Portal, {
container: portal ? undefined : null
}, /*#__PURE__*/ React.createElement(BaseTooltip.Positioner, {
side: placement,
sideOffset: 4,
className: "z-50"
}, /*#__PURE__*/ React.createElement(BaseTooltip.Popup, {
className: cn("Tooltip bg-neutral text-neutral-content max-w-xs rounded px-2 py-1 text-sm shadow-lg", "animate-in fade-in-0 zoom-in-95", "data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95", className)
}, content, /*#__PURE__*/ React.createElement(BaseTooltip.Arrow, {
className: "fill-neutral"
})))));
}
Tooltip.Composite = Composite;
})(Tooltip || (Tooltip = {}));
export var Tooltip;