@use 'functions/color' as *;
@use 'functions/get-var' as *;
@use 'functions/var-negative' as *;
@use 'variables' as *;

// Tooltips
.tooltip {
  position: relative;
  &::after {
    // background: rgba($dark-color, .95);
    background: color('dark-color', $alpha: 0.95);
    // border-radius: $border-radius; // old spectre.css
    border-radius: get-var('border-radius');
    bottom: 100%;
    // color: $light-color; // old spectre.css
    color: color('light-color');
    content: attr(data-tooltip);
    display: block;
    // font-size: $font-size-sm; // old spectre.css
    font-size: get-var('font-size', $suffix: 'sm');
    left: 50%;
    // max-width: $control-width-sm; // old spectre.css
    max-width: get-var('control-width', $suffix: 'sm');
    opacity: 0;
    overflow: hidden;
    // padding: $unit-1 $unit-2; // old spectre.css
    padding: get-var('unit-1') get-var('unit-2');
    pointer-events: none;
    position: absolute;
    text-overflow: ellipsis;
    // transform: translate(-50%, $unit-2); // old spectre.css
    transform: translate(-50%, get-var('unit-2'));
    // transition: opacity 0.2s, transform 0.2s; // old spectre.css
    transition: opacity get-var('transition-duration'), transform get-var('transition-duration');
    white-space: pre;
    // z-index: $zindex-3; // old spectre.css
    z-index: get-var('z-index-3');
  }
  &:focus,
  &:hover {
    &::after {
      opacity: 1;
      // transform: translate(-50%, -$unit-1); // old spectre.css
      transform: translate(-50%, var-negative(get-var('unit-1')));
    }
  }
  &[disabled],
  &.disabled {
    pointer-events: auto;
  }

  &.tooltip-right {
    &::after {
      bottom: 50%;
      left: 100%;
      // transform: translate(-$unit-1, 50%); // old spectre.css
      transform: translate(var-negative(get-var('unit-1')), 50%);
    }
    &:focus,
    &:hover {
      &::after {
        // transform: translate($unit-1, 50%); // old spectre.css
        transform: translate(get-var('unit-1'), 50%);
      }
    }
  }

  &.tooltip-bottom {
    &::after {
      bottom: auto;
      top: 100%;
      // transform: translate(-50%, -$unit-2); // old spectre.css
      transform: translate(-50%, var-negative(get-var('unit-2')));
    }
    &:focus,
    &:hover {
      &::after {
        // transform: translate(-50%, $unit-1); // old spectre.css
        transform: translate(-50%, get-var('unit-1'));
      }
    }
  }

  &.tooltip-left {
    &::after {
      bottom: 50%;
      left: auto;
      right: 100%;
      // transform: translate($unit-2, 50%); // old spectre.css
      transform: translate(get-var('unit-2'), 50%);
    }
    &:focus,
    &:hover {
      &::after {
        // transform: translate(-$unit-1, 50%); // old spectre.css
        transform: translate(var-negative(get-var('unit-1')), 50%);
      }
    }
  }
}
