/**
 * Copyright (c) HashiCorp, Inc.
 * SPDX-License-Identifier: MPL-2.0
 */

.tippy-box[data-theme~='tooltip'] {
  & {
    @extend %tooltip-bubble;
  }
  .tippy-content {
    @extend %tooltip-content;
  }
  .tippy-arrow {
    @extend %tooltip-tail;
  }
  &[data-placement^='bottom'] > .tippy-arrow {
    @extend %tooltip-tail-bottom;
  }
  &[data-placement^='top'] > .tippy-arrow {
    @extend %tooltip-tail-top;
  }
  &[data-placement^='left'] > .tippy-arrow {
    @extend %tooltip-tail-left;
  }
  &[data-placement^='right'] > .tippy-arrow {
    @extend %tooltip-tail-right;
  }
}
%tooltip-content {
  @extend %body-100-regular;
  padding: 12px;
  max-width: 224px;
  position: relative;
  z-index: 1;
}

%tooltip-bubble {
  & {
    background-color: var(--token-color-foreground-faint);
    color: var(--token-color-surface-primary);
  }
}
%tooltip-tail {
  --size: 5px;
  & {
    color: var(--token-color-foreground-faint);
    width: calc(var(--size) * 2);
    height: calc(var(--size) * 2);
  }
  &::before {
    border-color: transparent;
    border-style: solid;
  }
}

%tooltip-tail-top {
  &::before {
    border-width: var(--size) var(--size) 0;
    border-top-color: initial;
  }
}
%tooltip-tail-bottom {
  &::before {
    border-width: 0 var(--size) var(--size);
    border-bottom-color: initial;
  }
}
%tooltip-tail-left {
  &::before {
    border-width: var(--size) 0 var(--size) var(--size);
    border-left-color: initial;
  }
}
%tooltip-tail-right {
  &::before {
    border-width: var(--size) var(--size) var(--size) 0;
    border-right-color: initial;
  }
}
