@use 'mixins/mixins' as *;
@use 'mixins/var' as *;
@use 'common/var' as *;
@use 'common/transition';

@include b(collapse) {
  @include set-component-css-var('collapse', $collapse);

  width: var(--sg-collapse-width);
  border-top: 1px solid var(--sg-collapse-border-color);
  border-bottom: 1px solid var(--sg-collapse-border-color);

  @include when(bordered) {
    border: 1px solid var(--sg-collapse-border-color);
  }
}

@include b(collapse-item) {
  position: relative;

  @include when(disabled) {
    .#{$namespace}-collapse-item__header {
      color: var(--sg-text-color-disabled-base);
      cursor: not-allowed;
    }
  }

  @include e(line) {
    position: absolute;
    top: 0;
    width: 100%;
    height: 5px;
    background-color: var(--sg-collapse-line-background);
  }

  @include e(header) {
    --sg-collapse-active-color: var(--sg-color-primary);

    display: flex;
    align-items: center;
    height: var(--sg-collapse-header-height);
    line-height: var(--sg-collapse-header-height);
    background-color: var(--sg-collapse-header-bg-color);
    color: var(--sg-collapse-header-text-color);
    padding: 0 46px 0 16px;
    cursor: pointer;
    border-bottom: 1px solid var(--sg-collapse-border-color);
    font-size: var(--sg-collapse-header-font-size);
    transition: border-bottom-color var(--sg-transition-duration);
    outline: none;
    // 移除默认三角形箭头
    list-style-type: none;
    &::--webkit-details-marker {
      display: none;
    }

    &::marker {
      display: none;
    }

    &::-moz-list-bullet {
      list-style-type: none;
    }

    @include e(arrow) {
      position: absolute;
      transition: transform var(--sg-transition-duration);
    }

    &.arrow-right {
      .#{$B}__arrow {
        right: 24px;
      }
    }

    &.arrow-left {
      padding: 0 16px 0 46px;

      .#{$B}__arrow {
        left: 24px;
      }
    }

    &:hover {
      color: var(--sg-collapse-active-color);
    }
  }

  @include e(content) {
    padding: var(--sg-collapse-content-padding);
    font-size: var(--sg-collapse-content-font-size);
    color: var(--sg-collapse-content-text-color);
  }

  &:last-child {
    margin-bottom: -1px;
  }

  @include when(active) {
    @include e(header) {
      color: var(--sg-collapse-active-color);

      @include e(arrow) {
        transform: rotate(90deg);
      }
    }
  }
}
