57 lines
1.3 KiB
JavaScript
57 lines
1.3 KiB
JavaScript
import BaseStyle from 'primevue/base/style';
|
|
|
|
const css = `
|
|
@layer primevue {
|
|
.p-radiobutton {
|
|
position: relative;
|
|
display: inline-flex;
|
|
user-select: none;
|
|
vertical-align: bottom;
|
|
}
|
|
|
|
.p-radiobutton-input {
|
|
cursor: pointer;
|
|
}
|
|
|
|
.p-radiobutton-box {
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
|
|
.p-radiobutton-icon {
|
|
-webkit-backface-visibility: hidden;
|
|
backface-visibility: hidden;
|
|
transform: translateZ(0) scale(.1);
|
|
border-radius: 50%;
|
|
visibility: hidden;
|
|
}
|
|
|
|
.p-radiobutton.p-highlight .p-radiobutton-icon {
|
|
transform: translateZ(0) scale(1.0, 1.0);
|
|
visibility: visible;
|
|
}
|
|
}
|
|
`;
|
|
|
|
const classes = {
|
|
root: ({ instance, props }) => [
|
|
'p-radiobutton p-component',
|
|
{
|
|
'p-highlight': instance.checked,
|
|
'p-disabled': props.disabled,
|
|
'p-invalid': props.invalid,
|
|
'p-variant-filled': props.variant ? props.variant === 'filled' : instance.$primevue.config.inputStyle === 'filled'
|
|
}
|
|
],
|
|
box: 'p-radiobutton-box',
|
|
input: 'p-radiobutton-input',
|
|
icon: 'p-radiobutton-icon'
|
|
};
|
|
|
|
export default BaseStyle.extend({
|
|
name: 'radiobutton',
|
|
css,
|
|
classes
|
|
});
|