/*
  POPUP
  -----

  A floating container that can anchor to any other on-screen element, and contain any content, including grid blocks or panels.
*/
////
/// @group popup
////

// Popup
/// @type Number
$popup-width: rem-calc(300) !default;
/// @type Color
$popup-background: #fff !default;
/// @type Number
$popup-border: 0 !default;
/// @type Number
$popup-radius: 0 !default;
/// @type Color
$popup-shadow: 0 0 10px rgba(#000, 0.25) !default;
///

%popup {
  position: absolute;
  z-index: 1000;
  opacity: 0;
  overflow: hidden;
  transition: opacity 0.25s ease-out;
  pointer-events: none;

  &.tether-enabled {
    opacity: 1;
    pointer-events: auto;
  }
}

@mixin popup-layout(
  $width: $popup-width
) {
  width: $popup-width;
}
@mixin popup-style(
  $background: $popup-background,
  $color: #000,
  $radius: $popup-radius,
  $shadow: $popup-shadow,
  $border: $popup-border
) {
  background: $background;
  border-radius: $radius;
  box-shadow: $shadow;
  border: $border;
}

@mixin popup(
  $width: $popup-width,
  $background: $popup-background,
  $radius: $popup-radius,
  $shadow: $popup-shadow,
  $border: $popup-border
) {
  @extend %popup;
  @include popup-layout($width);
  @include popup-style($background, isitlight($background), $radius, $shadow, $border);
}

@include exports(popup) {
  .popup {
    @include popup;

    &.dark    { @include popup-style($dark-color, #fff); }
    &.primary { @include popup-style($primary-color, isitlight($primary-color)); }
  }
}
