@use '../../foundations/colors/tokens.scss' as color;
@use '../../foundations/spacing/tokens.scss' as spacing;
@use '../../foundations/focus/mixins' as focus;
@use '../../foundations/colors/mixins.scss' as colorMixin;
@use '../../foundations/borders/mixins.scss' as border;
@use '../../foundations/typography/tokens.scss' as typography;
@use '../../foundations/typography/mixins.scss' as typographyMixin;

.fudis-tab-navigation-bar {
  position: relative;

  &__button-container {
    @include colorMixin.bg-color('white');

    &--right {
      display: flex;
      position: absolute;
      top: 0;
      right: 0;
      align-items: flex-start;
      justify-content: flex-end;
      width: spacing.$spacing-xl;
      height: spacing.$tab-navigation-button-height;
    }

    &--left {
      display: flex;
      position: absolute;
      top: 0;
      left: 0;
      align-items: flex-start;
      justify-content: flex-start;
      width: spacing.$spacing-xl;
      height: spacing.$tab-navigation-button-height;
    }

    &__button {
      @include colorMixin.bg-color('white');

      position: absolute;
      top: 50%;
      transform: translate(0, -50%);
      border-style: none;
      padding: 0;
      cursor: pointer;

      &:focus {
        @include focus.focus-generic;
      }

      &--right {
        right: 0;
      }

      &--left {
        left: 0;
      }
    }
  }

  &__wrapper {
    &--primary {
      border-bottom: solid spacing.$pixel-1 color.$color-gray-dark;
    }

    &--secondary {
      @include border.border-none;

      padding-top: spacing.$spacing-xxs;
    }

    &__tab-container {
      display: flex;
      column-gap: spacing.$spacing-xs;
      overflow-x: auto;
      scrollbar-width: none;

      &--primary {
        padding-top: spacing.$pixel-3;

        &:first-child {
          padding-left: spacing.$spacing-sm;
        }

        &:last-child {
          padding-right: spacing.$spacing-sm;
        }
      }

      &--secondary {
        padding: spacing.$pixel-3;
      }
    }
  }
}

.fudis-tab-navigation-tab {
  @include colorMixin.bg-color('white');
  @include colorMixin.text-color('gray-dark');
  @include typographyMixin.tab-text;

  box-sizing: border-box;
  display: flex;
  align-items: center;
  padding-right: spacing.$spacing-sm;
  padding-left: spacing.$spacing-sm;
  text-decoration: none;
  cursor: pointer;

  &:focus-visible {
    @include focus.focus-generic;
  }

  &--primary {
    @include border.border('1px', 'solid', 'gray-dark');

    border-bottom: unset;
    border-top-left-radius: spacing.$pixel-2;
    border-top-right-radius: spacing.$pixel-2;
    height: spacing.$spacing-xl;

    &--active {
      @include colorMixin.bg-color('primary');
      @include colorMixin.text-color('white');

      border-color: color.$color-primary;
      text-decoration: underline solid;
    }
  }

  &--secondary {
    @include colorMixin.bg-color('gray-light');
    @include colorMixin.text-color('gray-dark');
    @include border.border('1px', 'solid', 'gray-light');

    border-radius: spacing.$pixel-1;
    height: spacing.$spacing-lg;

    &--active {
      @include colorMixin.bg-color('gray-dark');
      @include colorMixin.text-color('white');
      @include border.border('1px', 'solid', 'gray-dark');

      text-decoration: underline solid;
    }
  }
}
