/* ==================================
   #EMBER POWER SELECT
   https://ember-power-select.com/
   ================================== */

/* Variables
   ========================================================================== */

// ember-basic-dropdown
$ember-basic-dropdown-content-background-color: #fff !default;
$ember-basic-dropdown-overlay-background: rgba($au-gray-900, 0.5) !default;
$ember-basic-dropdown-content-background-color: var(--au-white) !default;

// Backgrounds
$ember-power-select-background-color: $ember-basic-dropdown-content-background-color !default;
$ember-power-select-disabled-background-color: var(--au-gray-100) !default;
$ember-power-select-multiple-selection-background-color: var(
  --au-gray-200
) !default;
$ember-power-select-highlighted-background: var(--au-gray-200) !default;
$ember-power-select-selected-background: var(--au-gray-200) !default;

// Texts
$ember-power-select-text-color: inherit !default;
$ember-power-select-placeholder-color: var(--au-gray-700) !default;
$ember-power-select-highlighted-color: var(--au-blue-700) !default;
$ember-power-select-disabled-option-color: var(--au-gray-200) !default;
$ember-power-select-multiple-selection-color: var(--au-gray-900) !default;

// Borders
$ember-power-select-border-color: var(--au-gray-300) !default;
$ember-power-select-focus-border-color: var(--au-outline-color) !default;
$ember-power-select-default-border: 0.1rem solid
  $ember-power-select-border-color;
$ember-power-select-default-focus-border: 0.1rem solid
  $ember-power-select-focus-border-color;

$ember-power-select-trigger-border: $ember-power-select-default-border;
$ember-power-select-trigger-border-top: $ember-power-select-trigger-border;
$ember-power-select-trigger-border-bottom: $ember-power-select-trigger-border;
$ember-power-select-trigger-border-right: $ember-power-select-trigger-border;
$ember-power-select-trigger-border-left: $ember-power-select-trigger-border;
$ember-power-select-active-trigger-border: $ember-power-select-default-focus-border;
$ember-power-select-active-trigger-border-top: $ember-power-select-active-trigger-border;
$ember-power-select-active-trigger-border-bottom: $ember-power-select-active-trigger-border;
$ember-power-select-active-trigger-border-right: $ember-power-select-active-trigger-border;
$ember-power-select-active-trigger-border-left: $ember-power-select-active-trigger-border;
$ember-power-select-dropdown-border: $ember-power-select-default-border;
$ember-power-select-search-field-border: $ember-power-select-default-border;
$ember-power-select-search-field-focus-border: $ember-power-select-default-focus-border;

$ember-power-select-dropdown-top-border: $ember-power-select-dropdown-border;
$ember-power-select-dropdown-right-border: $ember-power-select-dropdown-border;
$ember-power-select-dropdown-bottom-border: $ember-power-select-dropdown-border;
$ember-power-select-dropdown-left-border: $ember-power-select-dropdown-border;

$ember-power-select-dropdown-contiguous-border: none;

$ember-power-select-multiple-option-border-color: var(--au-gray-300);
$ember-power-select-multiple-option-border: 0.1rem solid
  $ember-power-select-multiple-option-border-color;

// Borders radius
$ember-power-select-default-border-radius: 0.3rem; // General border radius
$ember-power-select-trigger-default-border-radius: $ember-power-select-default-border-radius;
$ember-power-select-dropdown-default-border-radius: $ember-power-select-default-border-radius;

$ember-power-select-opened-border-radius: 0; // Border radius of the side of the dropdown and the trigger where they touch

$ember-power-select-search-input-border-radius: 0.3rem;
$ember-power-select-multiple-option-border-radius: $ember-power-select-default-border-radius;

// Z-index
$ember-power-select-dropdown-z-index: 10000; // Z-index of the dropdown when it is not rendered in place (needs to be higher then z-index of the modal component)

// Other
$ember-power-select-focus-box-shadow: none;
$ember-power-select-dropdown-margin: 0; // Margin between the dropdown and the trigger
$ember-power-select-dropdown-box-shadow:
  0 0 12px rgba($au-gray-900, 0.15),
  0 0 2px rgba($au-gray-900, 0.1);
$ember-power-select-line-height: 1.75;
$ember-power-select-trigger-icon-color: $ember-power-select-border-color;
$ember-power-select-clear-btn-margin: $au-unit + $au-unit-tiny;
$ember-power-select-option-padding: $au-unit-tiny;
$ember-power-select-number-of-visible-options: 7;
$ember-power-select-focus-outline: null;
$ember-power-select-trigger-ltr-padding: 0 16px 0 0;
$ember-power-select-trigger-rtl-padding: 0 0 0 16px;
$ember-power-select-multiple-option-padding: 0 4px;
$ember-power-select-multiple-option-line-height: 1.45;

/* Ember basic dropdown
   ========================================================================== */

.ember-basic-dropdown {
  position: relative;
}

.ember-basic-dropdown,
.ember-basic-dropdown-content,
.ember-basic-dropdown-content * {
  box-sizing: border-box;
}

.ember-basic-dropdown-content {
  position: absolute;
  width: auto;
  z-index: 99;
  background-color: $ember-basic-dropdown-content-background-color;
}

.ember-basic-dropdown-content--left {
  left: 0;
}

.ember-basic-dropdown-content--right {
  right: 0;
}

.ember-basic-dropdown-overlay {
  position: fixed;
  background: $ember-basic-dropdown-overlay-background;
  width: 100%;
  height: 100%;
  z-index: 9;
  top: 0;
  left: 0;
  pointer-events: none;
}

.ember-basic-dropdown-content-wormhole-origin {
  display: inline;
}

/* Ember power select
   ========================================================================== */

.ember-power-select-dropdown * {
  box-sizing: border-box;
  font-family: var(--au-font);
}

// Trigger
.ember-power-select-trigger {
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--au-h6);
  line-height: 1.25;
  min-height: $au-unit-large - $au-unit-small;
  padding: $au-unit-tiny * 1.2 $au-unit-tiny * 5 $au-unit-tiny * 1.2
    $au-unit-tiny !important;
  user-select: none;
  color: $ember-power-select-text-color;
  background-color: $ember-power-select-background-color;
  border-top: $ember-power-select-trigger-border-top;
  border-bottom: $ember-power-select-trigger-border-bottom;
  border-right: $ember-power-select-trigger-border-right;
  border-left: $ember-power-select-trigger-border-left;
  border-radius: $ember-power-select-trigger-default-border-radius;
}

.ember-power-select-trigger:focus,
.ember-power-select-trigger--active {
  &:not(.ember-power-select-trigger[aria-disabled="true"]) {
    outline: none;
    border-width: 0.1rem !important; // Temporary webuniversum override
    border-color: var(
      --au-outline-color
    ) !important; // Temporary webuniversum override
    box-shadow: inset 0 0 0 0.2rem var(--au-outline-color) !important; // Temporary webuniversum override
  }
}

.ember-basic-dropdown-trigger--below.ember-power-select-trigger[aria-expanded="true"],
.ember-basic-dropdown-trigger--in-place.ember-power-select-trigger[aria-expanded="true"] {
  border-bottom-left-radius: $ember-power-select-opened-border-radius;
  border-bottom-right-radius: $ember-power-select-opened-border-radius;
}

.ember-basic-dropdown-trigger--above.ember-power-select-trigger[aria-expanded="true"] {
  border-top-left-radius: $ember-power-select-opened-border-radius;
  border-top-right-radius: $ember-power-select-opened-border-radius;
}

.ember-power-select-placeholder {
  color: $ember-power-select-placeholder-color;
  display: block;
  overflow: hidden;
  white-space: nowrap;
  text-overflow: ellipsis;
}

.ember-power-select-status-icon {
  position: absolute;
  display: block;
  top: 0;
  bottom: 0;
  margin: auto;
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"><g class="nav-down"><path d="M12 17L3 8.429 4.5 7l7.5 7.143L19.5 7 21 8.429 12 17z" class="Vector"/></g></svg>');
  background-size: contain;
  height: $au-unit-small;
  width: $au-unit-small;
  transform: rotate(0deg) !important; // Temporary Webuniversum override

  &:after {
    display: none;
  }

  .ember-basic-dropdown-trigger[aria-expanded="true"] & {
    transform: rotate(180deg) !important; // Temporary Webuniversum override
  }
}

.ember-power-select-clear-btn {
  position: absolute;
  cursor: pointer;
  top: 50%;
  transform: translateY(-50%);
  width: 2rem;
  height: 2rem;
  line-height: 0;
  font-size: 0.1rem;
  color: transparent;
  background-color: var(--au-gray-200);
  border-radius: 100%;
  transition: opacity var(--au-transition);
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="%23545961"><polygon points="7 8.414 1.707 13.707 .293 12.293 5.586 7 .293 1.707 1.707 .293 7 5.586 12.293 .293 13.707 1.707 8.414 7 13.707 12.293 12.293 13.707" transform="translate(2 2)"/></svg>');
  background-size: 1.2rem 1.2rem;
  background-repeat: no-repeat;
  background-position: center center;
  overflow: hidden;

  &:hover {
    color: transparent;
    opacity: 0.8;
  }
}

// Multiple select
.ember-power-select-trigger-multiple-input {
  font-family: inherit;
  font-size: inherit;
  border: none;
  display: inline-block;
  line-height: inherit;
  -webkit-appearance: none;
  outline: none;
  padding: 0;
  background-color: transparent;
  text-indent: 2px;

  &:disabled {
    background-color: $ember-power-select-disabled-background-color;
  }

  /* There's a browser bug where this selectos cannot be chained with commas */
  &::placeholder {
    opacity: 1;
    color: $ember-power-select-placeholder-color;
  }

  &::-webkit-input-placeholder {
    opacity: 1;
    color: $ember-power-select-placeholder-color;
  }

  &::-moz-placeholder {
    opacity: 1;
    color: $ember-power-select-placeholder-color;
  }

  &::-ms-input-placeholder {
    opacity: 1;
    color: $ember-power-select-placeholder-color;
  }
}

.ember-power-select-multiple-options {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  padding: 0;
  margin: 0 $au-unit-tiny;
  height: 100%;
  max-height: 10rem;
  overflow: auto;
}

.ember-power-select-multiple-option {
  @include au-font-size(var(--au-base));
  display: inline-flex;
  font-family: var(--au-font);
  font-weight: var(--au-medium);
  line-height: $au-unit;
  min-height: $au-unit;
  color: var(--au-gray-700);
  background-color: var(--au-gray-200);
  border: 0.1rem solid var(--au-gray-300);
  padding: 0 $au-unit-tiny 0 $au-unit-tiny;
  border-radius: $au-unit-tiny;
  margin-right: $au-unit-tiny;
  margin-top: $au-unit-tiny * 0.5;
  margin-bottom: $au-unit-tiny * 0.5;
  gap: $au-unit-tiny;
}

.ember-power-select-multiple-remove-btn {
  position: relative;
  font-size: 0.1rem;
  font-weight: var(--au-regular);
  width: 2rem;
  cursor: pointer;
  text-align: center;
  color: transparent;
  background-color: var(--au-gray-200);
  transition: color var(--au-transition);
  padding-right: $au-unit-tiny;
  padding-left: $au-unit-tiny;
  margin-left: -$au-unit-tiny;
  border-right: 0.1rem dotted var(--au-gray-300);
  border-top-left-radius: var(--au-radius);
  border-bottom-left-radius: var(--au-radius);
  background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18" fill="%23545961"><polygon points="7 8.414 1.707 13.707 .293 12.293 5.586 7 .293 1.707 1.707 .293 7 5.586 12.293 .293 13.707 1.707 8.414 7 13.707 12.293 12.293 13.707" transform="translate(2 2)"/></svg>');
  background-size: 1.2rem 1.2rem;
  background-repeat: no-repeat;
  background-position: center center;
  overflow: hidden;

  &:hover {
    color: transparent;
    opacity: 0.8;
  }
}

// Search bar
.ember-power-select-search {
  padding: $au-unit-tiny;
}

.ember-power-select-search-input {
  position: relative;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: var(--au-h6);
  line-height: $au-unit-large - $au-unit-small;
  height: $au-unit-large - $au-unit-small;
  padding: 0 $au-unit-tiny 0.1ex;
  user-select: none;
  color: $ember-power-select-text-color;
  background-color: $ember-power-select-background-color;
  border: $ember-power-select-search-field-border;
  border-radius: $ember-power-select-search-input-border-radius;
  width: 100%;

  &:focus {
    outline: none;
    border-color: var(--au-outline-color);
    box-shadow: inset 0 0 0 0.2rem var(--au-outline-color);
  }

  &::-webkit-input-placeholder {
    color: var(--au-gray-600);
    font-style: italic;
    font-weight: 300;
  }

  &::-moz-placeholder {
    color: var(--au-gray-600);
    font-style: italic;
    font-weight: 300;
  }

  &:-ms-input-placeholder {
    color: var(--au-gray-600);
    font-style: italic;
    font-weight: 300;
  }

  &:-moz-placeholder {
    color: var(--au-gray-600);
    font-style: italic;
    font-weight: 300;
  }
}

// Dropdown
.ember-power-select-dropdown {
  border-left: $ember-power-select-dropdown-left-border;
  border-right: $ember-power-select-dropdown-right-border;
  line-height: $ember-power-select-line-height;
  border-radius: $ember-power-select-dropdown-default-border-radius;
  box-shadow: $ember-power-select-dropdown-box-shadow;
  overflow: hidden;
  color: $ember-power-select-text-color;
  z-index: $ember-power-select-dropdown-z-index;
}

.ember-power-select-dropdown.ember-basic-dropdown-content--above {
  @if ($ember-power-select-dropdown-margin != 0) {
    transform: translateY(calc(-1 * #{$ember-power-select-dropdown-margin}));
  }
  border-top: $ember-power-select-dropdown-top-border;
  border-bottom: $ember-power-select-dropdown-contiguous-border;
  border-bottom-left-radius: $ember-power-select-opened-border-radius;
  border-bottom-right-radius: $ember-power-select-opened-border-radius;
}

.ember-power-select-dropdown.ember-basic-dropdown-content--below,
.ember-power-select-dropdown.ember-basic-dropdown-content--in-place {
  @if ($ember-power-select-dropdown-margin != 0) {
    transform: translateY(#{$ember-power-select-dropdown-margin});
  }
  border-top: $ember-power-select-dropdown-contiguous-border;
  border-bottom: $ember-power-select-dropdown-bottom-border;
  border-top-left-radius: $ember-power-select-opened-border-radius;
  border-top-right-radius: $ember-power-select-opened-border-radius;
}

.ember-power-select-dropdown.ember-basic-dropdown-content--in-place {
  // Dropdown when rendered in place
  width: 100%;
  z-index: auto;
}

// Options
.ember-power-select-options {
  list-style: none;
  margin: 0;
  padding: 0;
  user-select: none;
  -webkit-user-select: none;
  border-top: 0.1rem solid var(--au-divider-color);

  &[role="listbox"] {
    overflow-y: auto; /* in firefox in windows this can cause a word-break issue. Try `overflow-y: scroll` if that happens */
    -webkit-overflow-scrolling: touch;
    @if unitless($ember-power-select-line-height) {
      max-height: #{$ember-power-select-number-of-visible-options *
        $ember-power-select-line-height}em;
    } @else {
      max-height: $ember-power-select-number-of-visible-options *
        $ember-power-select-line-height;
    }
  }
}

.ember-power-select-option {
  cursor: pointer;
  font-size: var(--au-h6);
  line-height: 2.2rem;
  padding: $au-unit-tiny $au-unit-tiny $au-unit-tiny $au-unit;
  position: relative;

  &:hover {
    text-decoration: underline;
  }
}

.ember-power-select-group[aria-disabled="true"] {
  color: $ember-power-select-disabled-option-color;
  cursor: not-allowed;
}

.ember-power-select-group[aria-disabled="true"] .ember-power-select-option,
.ember-power-select-option[aria-disabled="true"] {
  color: $ember-power-select-disabled-option-color;
  pointer-events: none;
  cursor: not-allowed;
}

.ember-power-select-option[aria-selected="true"] {
  color: $ember-power-select-highlighted-color;
  background-color: $ember-power-select-selected-background;
  text-decoration: underline;
}

.ember-power-select-option[aria-current="true"] {
  color: $ember-power-select-highlighted-color;
  background-color: $ember-power-select-highlighted-background;
  text-decoration: underline;
}

.ember-power-select-option[aria-selected="true"],
.ember-power-select-option[aria-current="true"] {
  position: relative;

  &:before {
    display: none;
  }

  &:after {
    content: "";
    position: absolute;
    top: 0;
    left: $au-unit-tiny * 0.25;
    display: block;
    background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" fill="%230E5EB8" viewBox="0 0 24 24"><g class="check"><path d="M10.695 17L5 12.553l1.424-1.872 3.796 3.042L17.102 6 19 7.404 10.695 17z" class="Vector"/></g></svg>');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    height: 100%;
    width: $au-unit-small + $au-unit-tiny;
  }
}

.ember-power-select-option--loading-message,
.ember-power-select-option--no-matches-message,
.ember-power-select-option--search-message {
  font-style: italic;
  color: var(--au-gray-600);
  padding: $au-unit-tiny 0 $au-unit-tiny $au-unit-tiny !important; // Temporary webuniversum override

  &:hover {
    text-decoration: none;
  }
}

// Groups
.ember-power-select-group-name {
  cursor: default;
  font-weight: bold;
}

// Disabled styles
.ember-power-select-trigger[aria-disabled="true"] {
  background-color: $ember-power-select-disabled-background-color;
}

// Error styles
.ember-power-select--error .ember-power-select-trigger {
  border: 0.3rem solid var(--au-red-600);
}

// Error focus styles
.ember-power-select--error .ember-power-select-trigger:focus,
.ember-power-select--error
  .ember-power-select-trigger.ember-power-select-trigger--active {
  outline: none;
  border-width: 0.1rem !important; // Temporary webuniversum override
  border-color: var(
    --au-outline-color
  ) !important; // Temporary webuniversum override
  box-shadow: inset 0 0 0 0.2rem var(--au-outline-color) !important; // Temporary webuniversum override
}

// LTR styles
.ember-power-select-trigger {
  padding: $ember-power-select-trigger-ltr-padding;
}

.ember-power-select-selected-item,
.ember-power-select-placeholder {
  margin-left: 0;
  padding-right: $au-unit;
}

.ember-power-select-status-icon {
  right: $au-unit-small;
}

.ember-power-select-clear-btn {
  right: $ember-power-select-clear-btn-margin;
}

.ember-power-select-group {
  .ember-power-select-group {
    .ember-power-select-group-name {
      padding-left: 3 * $ember-power-select-option-padding;
    }

    .ember-power-select-option {
      padding-left: 5 * $ember-power-select-option-padding;
    }
  }
  .ember-power-select-option {
    padding-left: 3 * $ember-power-select-option-padding;
  }

  .ember-power-select-group-name {
    padding-left: $ember-power-select-option-padding;
  }
}

.ember-power-select-visually-hidden {
  height: 1px;
  left: -9999px;
  overflow: hidden;
  position: absolute;
  width: 1px;
}

// RTL styles
.ember-power-select-trigger[dir="rtl"] {
  padding: $ember-power-select-trigger-rtl-padding;

  .ember-power-select-selected-item,
  .ember-power-select-placeholder {
    margin-right: 0;
  }

  .ember-power-select-multiple-option {
    float: right;
  }

  .ember-power-select-trigger-multiple-input {
    float: right;
  }

  .ember-power-select-status-icon {
    left: $au-unit-small;
    right: initial;
  }

  .ember-power-select-clear-btn {
    left: $ember-power-select-clear-btn-margin;
    right: initial;
  }
}

.ember-power-select-dropdown[dir="rtl"] {
  .ember-power-select-group {
    .ember-power-select-group {
      .ember-power-select-group-name {
        padding-right: 3 * $ember-power-select-option-padding;
      }

      .ember-power-select-option {
        padding-right: 5 * $ember-power-select-option-padding;
      }
    }

    .ember-power-select-option {
      padding-right: 3 * $ember-power-select-option-padding;
    }

    .ember-power-select-group-name {
      padding-right: $ember-power-select-option-padding;
    }
  }
}
