@trellixio/roaster-coffee
Version:
Beans' product component library
80 lines (74 loc) • 1.92 kB
JavaScript
;
var React = require('react');
var react = require('@floating-ui/react');
var useTooltip = require('./useTooltip.js');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
for (var k in e) {
n[k] = e[k];
}
}
n.default = e;
return Object.freeze(n);
}
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
const Tooltip = React__namespace.forwardRef((props, ref) => {
const {
children,
position,
refProp = "ref",
label,
opened,
offset = 5,
width,
events = { hover: true, focus: false, touch: false },
zIndex,
onClick,
onMouseEnter,
onMouseLeave,
inline
} = props;
const tooltip = useTooltip.useTooltip({
position,
opened,
events,
offset,
inline
});
const targetRef = react.useMergeRefs([tooltip.setReference, children.ref, ref]);
return /* @__PURE__ */ React__namespace.createElement(React__namespace.Fragment, null, tooltip.opened && /* @__PURE__ */ React__namespace.createElement(react.FloatingPortal, null, /* @__PURE__ */ React__namespace.createElement(
"sub",
{
ref: tooltip.setFloating,
...tooltip.getFloatingProps({
// ref: tooltip.floating,
className: "tooltip",
style: {
zIndex,
width,
display: "block",
top: tooltip.y ?? 0,
left: tooltip.x ?? 0
}
})
},
label
)), React__namespace.cloneElement(
children,
tooltip.getReferenceProps({
onClick,
onMouseEnter,
onMouseLeave,
onMouseMove: props.onMouseMove,
onPointerDown: props.onPointerDown,
onPointerEnter: props.onPointerEnter,
[refProp]: targetRef,
className: children.props.className,
...children.props
})
));
});
Tooltip.displayName = "Tooltip";
exports.Tooltip = Tooltip;
//# sourceMappingURL=Tooltip.js.map