@import '../page_bundles/mixins_and_variables_and_functions';
/**
 * Styles the GitLab application with a specific color theme
 */
@mixin gitlab-theme(
  $search-and-nav-links,
  $accent,
  $border-and-box-shadow,
  $sidebar-text,
  $nav-svg-color,
  $color-alternate
) {
  // Set custom properties

  --gl-theme-accent: #{$accent};

  // Header

  .navbar-gitlab {
    background-color: $nav-svg-color;

    .navbar-collapse {
      color: $search-and-nav-links;
    }

    .container-fluid {
      .navbar-toggler {
        border-left: 1px solid lighten($border-and-box-shadow, 10%);
        color: $search-and-nav-links;
      }
    }

    .navbar-sub-nav,
    .navbar-nav {
      > li {
        > a,
        > button {
          &:hover,
          &:focus {
            background-color: rgba($search-and-nav-links, 0.2);
          }
        }

        &.active,
        &.dropdown.show {
          > a,
          > button {
            color: $nav-svg-color;
            background-color: $color-alternate;
          }
        }

        &.line-separator {
          border-left: 1px solid rgba($search-and-nav-links, 0.2);
        }
      }
    }

    .navbar-sub-nav {
      color: $search-and-nav-links;
    }

    .nav {
      > li {
        color: $search-and-nav-links;

        &.header-search-new {
          color: $sidebar-text;
        }

        > a {
          .notification-dot {
            border: 2px solid $nav-svg-color;
          }

          &.header-help-dropdown-toggle {
            .notification-dot {
              background-color: $search-and-nav-links;
            }
          }

          &.header-user-dropdown-toggle {
            .header-user-avatar {
              border-color: $search-and-nav-links;
            }
          }

          &:hover,
          &:focus {
            @include media-breakpoint-up(sm) {
              background-color: rgba($search-and-nav-links, 0.2);
            }

            svg {
              fill: currentColor;
            }

            .notification-dot {
              will-change: border-color, background-color;
              // stylelint-disable-next-line
              border-color: $nav-svg-color + 33;
            }

            &.header-help-dropdown-toggle .notification-dot {
              background-color: $white;
            }
          }
        }

        &.active > a,
        &.dropdown.show > a {
          color: $nav-svg-color;
          background-color: $color-alternate;

          &:hover {
            svg {
              fill: $nav-svg-color;
            }
          }

          .notification-dot {
            border-color: $white;
          }

          &.header-help-dropdown-toggle {
            .notification-dot {
              background-color: $nav-svg-color;
            }
          }
        }

        .impersonated-user,
        .impersonated-user:hover {
          svg {
            fill: $nav-svg-color;
          }
        }
      }
    }
  }

  .navbar .title {
    > a {
      &:hover,
      &:focus {
        background-color: rgba($search-and-nav-links, 0.2);
      }
    }
  }

  .header-search {
    background-color: rgba($search-and-nav-links, 0.2) !important;

    &:hover {
      background-color: rgba($search-and-nav-links, 0.3) !important;
    }

    svg.gl-search-box-by-type-search-icon {
      color: rgba($search-and-nav-links, 0.8);
    }


    input {
      background-color: transparent;
      color: rgba($search-and-nav-links, 0.8);
      box-shadow: inset 0 0 0 1px rgba($search-and-nav-links, 0.4);

      &::placeholder {
        color: rgba($search-and-nav-links, 0.8);
      }

      &:focus,
      &:active {
        &::placeholder {
          color: $gray-400;
        }
      }
    }
  }

  .search {
    form {
      background-color: rgba($search-and-nav-links, 0.2);

      &:hover {
        background-color: rgba($search-and-nav-links, 0.3);
      }
    }

    .search-input::placeholder {
      color: rgba($search-and-nav-links, 0.8);
    }

    .search-input-wrap {
      .search-icon,
      .clear-icon {
        fill: rgba($search-and-nav-links, 0.8);
      }
    }

    &.search-active {
      form {
        background-color: $white;
      }

      .search-input-wrap {
        .search-icon {
          fill: rgba($search-and-nav-links, 0.8);
        }
      }
    }
  }

  // Sidebar
  .nav-sidebar li.active > a {
    color: $sidebar-text;
  }

  .nav-sidebar {
    .fly-out-top-item {
      a,
      a:hover,
      &.active a,
      .fly-out-top-item-container {
        background-color: var(--gray-100, $gray-50);
        color: var(--gray-900, $gray-900);
      }
    }
  }

  .branch-header-title {
    color: $border-and-box-shadow;
  }

  .ide-sidebar-link {
    &.active {
      color: $border-and-box-shadow;

      &.is-right {
        box-shadow: inset -3px 0 $border-and-box-shadow;
      }
    }
  }
}
