/**
* Copyright (c) 2022 - present TinyVue Authors.
* Copyright (c) 2022 - present Huawei Cloud Computing Technologies Co., Ltd.
*
* Use of this source code is governed by an MIT-style license.
*
* THE OPEN SOURCE SOFTWARE IN THIS PRODUCT IS DISTRIBUTED IN THE HOPE THAT IT WILL BE USEFUL,
* BUT WITHOUT ANY WARRANTY, WITHOUT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY OR FITNESS FOR
* A PARTICULAR PURPOSE. SEE THE APPLICABLE LICENSES FOR MORE DETAILS.
*
*/

@import '../custom.less';

@grid-radio-prefix-cls: ~'@{css-prefix}grid-radio';

// radio
.@{grid-radio-prefix-cls} {
  display: inline-block;
  user-select: none;
  cursor: pointer;

  > input {
    display: none;

    & + .@{grid-radio-prefix-cls}__icon {
      position: relative;
      display: inline-block;
      line-height: 1;
      vertical-align: middle;
      border-radius: 50%;
      font-size: var(--tv-Grid-font-size);

      > svg {
        fill: var(--tv-Grid-radio-icon-color);
        vertical-align: top;
        font-size: var(--tv-Grid-radio-icon-size);

        &:hover {
          fill: var(--tv-Grid-radio-icon-color-hover);
        }

        &.icon-radio-selected {
          display: none;
        }
      }
    }

    &:checked + .@{grid-radio-prefix-cls}__icon {
      position: relative;
      width: var(--tv-Grid-icon-size);
      height: var(--tv-Grid-icon-size);
      margin: 1px;
      border: 1px solid var(--tv-Grid-radio-icon-color-selected);
      border-radius: 100%;
      background: transparent;

      &::after {
        content: '';
        height: 8px;
        width: 8px;
        background: var(--tv-Grid-radio-icon-color-selected);
        position: absolute;
        border-radius: 100%;
        top: 50%;
        left: 50%;
        transform: translateX(-50%) translateY(-50%);
      }

      > svg {
        &.icon-radio {
          display: none;
        }

        &.icon-radio-selected {
          display: none;
        }

        path:last-child {
          fill: transparent;
        }
      }

      & + .@{grid-radio-prefix-cls}__label {
        color: var(--tv-Grid-text-color);
      }
    }

    &:not(:checked) + .@{grid-radio-prefix-cls}__icon {
      > svg {
        path:last-child {
          fill: transparent;
        }
      }
    }
  }

  &.is__disabled {
    cursor: not-allowed;

    > input {
      & + .@{grid-radio-prefix-cls}__icon {
        > svg {
          fill: var(--tv-Grid-radio-border-color-disabled);

          path {
            fill: var(--tv-Grid-icon-color-disabled);
          }

          path:last-child {
            fill: var(--tv-Grid-radio-icon-color-disabled);
          }
        }

        & + .@{grid-radio-prefix-cls}__label {
          color: var(--tv-Grid-text-color-disabled);
        }
      }

      &:checked + .@{grid-radio-prefix-cls}__icon {
        border-color: var(--tv-Grid-radio-border-color-disabled);

        &::after {
          background: var(--tv-Grid-radio-border-color-disabled);
        }
      }
    }
  }

  & &__label {
    padding-left: 5px;
    vertical-align: middle;
    display: inline-block;
  }

  & + & {
    margin-left: 10px;
  }
}