UNPKG

react-bootstrap

Version:

Bootstrap 5 components built with React

54 lines (53 loc) 1.67 kB
"use client"; import classNames from 'classnames'; import * as React from 'react'; import { useBootstrapPrefix, useIsRTL } from './ThemeProvider'; import { getOverlayDirection } from './helpers'; import getInitialPopperStyles from './getInitialPopperStyles'; import { jsx as _jsx } from "react/jsx-runtime"; import { jsxs as _jsxs } from "react/jsx-runtime"; const Tooltip = /*#__PURE__*/React.forwardRef(({ bsPrefix, placement = 'right', className, style, children, arrowProps, hasDoneInitialMeasure, popper, show, ...props }, ref) => { bsPrefix = useBootstrapPrefix(bsPrefix, 'tooltip'); const isRTL = useIsRTL(); const [primaryPlacement] = (placement == null ? void 0 : placement.split('-')) || []; const bsDirection = getOverlayDirection(primaryPlacement, isRTL); let computedStyle = style; if (show && !hasDoneInitialMeasure) { computedStyle = { ...style, ...getInitialPopperStyles(popper == null ? void 0 : popper.strategy) }; } return /*#__PURE__*/_jsxs("div", { ref: ref, style: computedStyle, role: "tooltip", "x-placement": primaryPlacement, className: classNames(className, bsPrefix, `bs-tooltip-${bsDirection}`), ...props, children: [/*#__PURE__*/_jsx("div", { className: "tooltip-arrow", ...arrowProps }), /*#__PURE__*/_jsx("div", { className: `${bsPrefix}-inner`, children: children })] }); }); Tooltip.displayName = 'Tooltip'; export default Object.assign(Tooltip, { // Default tooltip offset. // https://github.com/twbs/bootstrap/blob/beca2a6c7f6bc88b6449339fc76edcda832c59e5/js/src/tooltip.js#L65 TOOLTIP_OFFSET: [0, 6] });