@use 'sass:map';
@use '../../../scss/breakpoints' as breakpoints;
@import '../../../scss/supernova/styles/colors';

.tab-list-wrapper {
  position: relative;
}

.tab-list {
  $tab-list: &;
  $colors: 'blueberry', 'neutral', 'white';

  position: relative;
  display: flex;
  flex-direction: row;
  gap: 0.25rem;
  list-style-type: none;
  white-space: nowrap;
  overflow: auto hidden;
  height: 3rem;
  margin: 0;
  background-color: var(--color-base-background-white);
  padding-left: 0.5rem;
  padding-right: 0.5rem;
  margin-bottom: -1px;
  scrollbar-width: none;

  &::-webkit-scrollbar {
    display: none; /* Safari */
  }

  @media (min-width: map.get(breakpoints.$grid-breakpoints, md)) {
    padding-left: 0;
    padding-right: 0;

    #{$tab-list}__tab {
      &--selected {
        height: 3rem;
      }
    }
  }

  @each $color in $colors {
    .tab-list__tab--selected#{$tab-list}__tab--#{$color} {
      background-color: var(--color-base-background-#{$color});
    }
  }

  &--onwhite {
    background-color: var(--color-base-background-white);
  }

  &--onblueberry {
    background-color: var(--color-base-background-blueberry);
  }

  &--onneutral {
    background-color: var(--color-base-background-neutral);
  }

  &__tab {
    display: flex;
    align-items: start;
    background-color: var(--color-base-background-white);
    height: 3rem;
    text-align: start;
    font-size: 1.25rem;
    text-decoration: none;
    padding: 0.5rem 1.5rem;
    color: var(--color-action-text-onlight);
    border: 1px solid var(--color-action-border-onlight);
    border-bottom: 0;
    border-radius: 0.5rem 0.5rem 0 0;
    position: relative;

    // Z-index brukes til å flytte tab bak/foran bottom border til tab-list__border
    z-index: 0;

    &--selected {
      overflow: visible;
      border-color: var(--color-action-border-onlight-focus);
      color: var(--color-base-text-onlight);
      background-color: var(--color-base-background-white);
      z-index: 2;
    }

    &__title-and-icon {
      display: flex;
      flex-flow: row nowrap;
      align-items: center;
      gap: 0.5rem;
      height: 2rem;
    }
  }

  .tab-list__tab {
    &:focus-visible {
      outline: 4px solid var(--color-action-border-onlight-focus);
      outline-offset: -4px;
    }
  }

  .tab-list__tab--not-selected {
    &:hover {
      background-color: var(--color-action-background-ondark-hover);

      &#{$tab-list}__tab--blueberry {
        background-color: var(--color-action-background-ondark-selected);
      }
    }

    &:active {
      background-color: var(--color-action-background-ondark-selected);
    }
  }

  &__end-wrapper,
  &__start-wrapper {
    display: flex;
    position: absolute;
    top: 0;
    z-index: 10;
  }

  &__start-wrapper {
    left: 0;
  }

  &__end-wrapper {
    right: 0;
  }

  &__button {
    border: none;
    display: flex;
    flex-wrap: wrap;
    align-items: center;

    &:focus-visible {
      outline: 4px solid var(--color-action-border-onlight-focus);
      outline-offset: -4px;
    }
  }

  &__fade-start,
  &__fade-end {
    width: 15px;
    height: 47px;
    pointer-events: none;
  }

  &__fade-start {
    mask-image: linear-gradient(to right, #000f, #0000);
  }

  &__fade-end {
    mask-image: linear-gradient(to left, #000f, #0000);
  }

  &__border {
    position: absolute;
    z-index: 1;
    pointer-events: none;
    top: 0;
    width: 100%;
    height: 100%;
    border-bottom: 1px solid var(--color-action-border-onlight-focus);
  }
}
