var _excluded = ["bottom", "children", "left", "position", "right", "title", "top", "width"];
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import React from 'react';
import { TOOLTIP_POSITION } from '.';
import { StyledTooltip } from './partials/StyledTooltip';
import { StyledContent } from './partials/StyledContent';
import { StyledTitle } from './partials/StyledTitle';
import { StyledMessage } from './partials/StyledMessage';
import { useExternalId } from '../../hooks/useExternalId';
export var Tooltip = function Tooltip(_ref) {
  var bottom = _ref.bottom,
    children = _ref.children,
    left = _ref.left,
    _ref$position = _ref.position,
    position = _ref$position === void 0 ? TOOLTIP_POSITION.ABOVE : _ref$position,
    right = _ref.right,
    title = _ref.title,
    top = _ref.top,
    width = _ref.width,
    rest = _objectWithoutProperties(_ref, _excluded);
  var contentId = useExternalId('tooltip-content');
  var titleId = useExternalId('tooltip-title');
  return /*#__PURE__*/React.createElement(StyledTooltip, _extends({
    $bottom: bottom,
    $left: left,
    $right: right,
    $top: top,
    $width: width,
    "aria-describedby": contentId,
    "aria-labelledby": title ? titleId : undefined,
    role: "tooltip"
  }, rest), /*#__PURE__*/React.createElement(StyledContent, {
    $position: position
  }, title && /*#__PURE__*/React.createElement(StyledTitle, {
    id: titleId
  }, title), children && /*#__PURE__*/React.createElement(StyledMessage, {
    id: contentId
  }, children)));
};
Tooltip.displayName = 'Tooltip';