@import './var.less';

:root {
  --van-rate-icon-size: @rate-icon-size;
  --van-rate-icon-gutter: @rate-icon-gutter;
  --van-rate-icon-void-color: @rate-icon-void-color;
  --van-rate-icon-full-color: @rate-icon-full-color;
  --van-rate-icon-disabled-color: @rate-icon-disabled-color;
}

.van-rate {
  display: inline-flex;
  cursor: pointer;
  user-select: none;
  flex-wrap: wrap;

  &__item {
    position: relative;

    &:not(:last-child) {
      padding-right: var(--van-rate-icon-gutter);
    }
  }

  &__icon {
    display: block;
    width: 1em;
    color: var(--van-rate-icon-void-color);
    font-size: var(--van-rate-icon-size);

    &--half {
      position: absolute;
      top: 0;
      left: 0;
      overflow: hidden;
    }

    &--full {
      color: var(--van-rate-icon-full-color);
    }

    &--disabled {
      color: var(--van-rate-icon-disabled-color);
    }
  }

  &--disabled {
    cursor: not-allowed;
  }

  &--readonly {
    cursor: default;
  }
}

.van-rate-cell {
  &__content {
    display: flex;
    align-items: center;
  }

  // Rate cells follow the 5-star single-line layout defined for form rows.
  // Keep this constraint local so standalone Rate instances can still wrap.
  .van-rate {
    flex: none;
    flex-wrap: nowrap;
  }

  &--default {
    .van-cell__title {
      flex: none;
    }

    .van-rate-cell__value {
      display: flex;
      flex: none;
      min-width: auto;
      align-items: center;
      margin-left: 6px;
      overflow: visible;
      text-align: left;
    }
  }

  &__description {
    margin-left: var(--van-padding-sm);
    color: var(--van-text-color-2);
    font-size: var(--van-font-size-md);
    line-height: var(--van-cell-line-height);
    white-space: nowrap;
  }

  &--between {
    .van-rate-cell__value {
      display: flex;
      flex: none;
      min-width: auto;
      justify-content: flex-end;
      overflow: visible;
    }
  }
}
