function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

/*
Copyright (c) 2018 Uber Technologies, Inc.

This source code is licensed under the MIT license found in the
LICENSE file in the root directory of this source tree.
*/
import { styled } from '../styles/index.js';
import { getBodyStyles, getArrowStyles, getInnerStyles } from '../popover/styled-components.js';
import { getEndPosition } from '../popover/utils.js';
/**
 * We want to reuse the default Popover styles and add our overrides
 * for Tooltip. Normally you could do something like
 * withStyleDeep(StyledPopoverBody, {...}), however this break the
 * ability to use $style properly–the style overrides passed in by
 * the customer will override the base styles but not the styles
 * specified here.
 *
 * We could create our own withStyleDeep that also takes the $style
 * prop into account
 */

export var Body = styled('div', function (props) {
  return _objectSpread({}, getBodyStyles(props), {
    // Tooltip
    backgroundColor: props.$theme.tooltip.backgroundColor,
    borderRadius: props.$theme.borders.radius200,
    boxShadow: props.$theme.lighting.shadow400,
    color: props.$theme.colors.mono100,
    // Reset transition property to opacity only, and static transform
    transitionProperty: 'opacity',
    transform: getEndPosition(props.$popoverOffset)
  });
});
Body.displayName = "Body";
export var Inner = styled('div', function (props) {
  return _objectSpread({}, getInnerStyles(props), {
    backgroundColor: props.$theme.tooltip.backgroundColor,
    borderRadius: props.$theme.borders.radius200,
    paddingTop: props.$theme.sizing.scale300,
    paddingBottom: props.$theme.sizing.scale300,
    paddingLeft: props.$theme.sizing.scale300,
    paddingRight: props.$theme.sizing.scale300
  }, props.$theme.typography.font250, {
    color: props.$theme.colors.background
  });
});
Inner.displayName = "Inner";
export var Arrow = styled('div', function (props) {
  return _objectSpread({}, getArrowStyles(props), {
    backgroundColor: props.$theme.tooltip.backgroundColor
  });
});
Arrow.displayName = "Arrow";