* 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';
.@{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;
}
}