@use 'sass:math';
@use '../../_styles/variables' as *;
@use "pkg:@ohu-mobile/styles" as *;
@use '../../_styles/mixins' as *;

$listItemPrefixClass: #{$listPrefixClass}-item;

.#{$listItemPrefixClass} {
  display: flex;
  flex-flow: row nowrap;
  align-items: center;
  border-width: 0;
  border-style: solid;
  border-color: $listItemBorderColor;
  padding: $listItemPadding;
  font-size: $listItemFontSize;
  line-height: math.div(44, 32) * 1em;
  color: $listItemColor;
  &.has-divider {
    @include hair-border(inherit, bottom);
  }
  &.has-divider-padding {
    &:after {
      margin-left: $listItemPadding;
      margin-right: $listItemPadding;
    }
  }
  &.has-action {
    justify-content: space-between;
  }
  &.is-button {
    @include tap-component;
    &:active {
      background: $listItemButtonActiveColor;
    }
  }
  &.is-disabled {
    cursor: not-allowed;
    opacity: .4;
    &:active {
      background: unset;
    }
  }
  &__main {
    flex-grow: 1;
    display: inline-flex;
    flex-flow: row nowrap;
    align-items: center;
    justify-content: flex-start;
  }
  &-thumb {
    flex-grow: 0;
    flex-shrink: 0;
    margin-right: $listItemThumbMargin;
    .#{$prefix}image {
      display: block;
    }
  }
  &.is-reverse {
    .#{$listItemPrefixClass}__main {
      flex-direction: row-reverse;
      justify-content: space-between;
    }
    .#{$listItemPrefixClass}-thumb {
      margin-right: unset;
      margin-left: $listItemThumbMargin;
    }
    .#{$listItemPrefixClass}-icon {
      .is-group-item {
        margin-right: unset;
      }
      > .#{$prefix}icon {
        margin-right: unset;
      }
    }
  }
  &-avatar {
    flex-grow: 0;
    flex-shrink: 0;
    align-self: flex-start;
    font-size: $listItemAvatarSize;
    min-width: $listItemAvatarMinWidth;
    display: flex;
    flex-flow: row nowrap;
    align-items: flex-start;
    img {
      display: block;
      width: $listItemAvatarSize;
    }
  }
  &-icon {
    flex-grow: 0;
    flex-shrink: 0;
    font-size: 34px;
    .is-group-item {
      margin-right: 1em;
    }
    > .#{$prefix}icon {
      font-size: $listItemIconSize;
      margin-right: 1em;
    }
  }
  &-text {
    &__minor {
      margin: 0;
      font-size: $listItemMinorTextFontSize;
      line-height: $listItemMinorTextLineHeight;
      color: $listItemMinorTextColor;
    }
    &__primary {
      font-size: $listItemFontSize;
      color: $listItemColor;
      line-height: $listItemTextLineHeight;
      ~ .#{$listItemPrefixClass}-text__minor {
        margin-top: .3846em;
      }
    }
  }
  &-action {
    flex-grow: 0;
    flex-shrink: 0;
    padding: 0 0 0 .8333333em;
    font-size: $listItemActionSize;
    width: 1.3333333em;
    height: 1.333333em;
    > label.is-group-item {
      font-size: $listItenActionCheckSize;
      margin-right: 0;
    }
  }
}
