primevue-mirror/components/lib/rating/style/RatingStyle.js

68 lines
2.1 KiB
JavaScript
Raw Normal View History

import BaseStyle from 'primevue/base/style';
const theme = ({ dt }) => `
.p-rating {
position: relative;
display: flex;
align-items: center;
2024-05-07 08:58:34 +00:00
gap: ${dt('rating.gap')};
}
.p-rating-option {
display: inline-flex;
align-items: center;
cursor: pointer;
outline-color: transparent;
border-radius: 50%;
cursor: pointer;
transition: background ${dt('rating.transition.duration')}, color ${dt('rating.transition.duration')}, border-color ${dt('rating.transition.duration')}, outline-color ${dt('rating.transition.duration')}, box-shadow ${dt('rating.transition.duration')};
}
.p-rating-option.p-focus-visible {
2024-05-07 08:58:34 +00:00
box-shadow: ${dt('focus.ring.shadow')};
outline: ${dt('focus.ring.width')} ${dt('focus.ring.style')} ${dt('focus.ring.color')};
outline-offset: ${dt('focus.ring.offset')};
}
.p-rating-icon {
color: ${dt('rating.icon.color')};
transition: background ${dt('rating.transition.duration')}, color ${dt('rating.transition.duration')}, border-color ${dt('rating.transition.duration')}, outline-color ${dt('rating.transition.duration')}, box-shadow ${dt('rating.transition.duration')};
2024-05-07 08:58:34 +00:00
font-size: ${dt('rating.icon.size')};
width: ${dt('rating.icon.size')};
height: ${dt('rating.icon.size')};
}
.p-rating:not(.p-disabled):not(.p-readonly) .p-rating-option:hover .p-rating-icon {
color: ${dt('rating.icon.hover.color')};
}
.p-rating-option-active .p-rating-icon {
color: ${dt('rating.icon.active.color')};
}
`;
const classes = {
root: ({ props }) => [
'p-rating',
{
'p-readonly': props.readonly,
'p-disabled': props.disabled
}
],
option: ({ instance, props, value }) => [
2024-04-07 10:55:28 +00:00
'p-rating-option',
{
2024-04-07 10:55:28 +00:00
'p-rating-option-active': value <= props.modelValue,
2024-03-26 07:28:22 +00:00
'p-focus-visible': value === instance.focusedOptionIndex && instance.isFocusVisibleItem
}
],
2024-04-07 10:55:28 +00:00
onIcon: 'p-rating-icon p-rating-on-icon',
offIcon: 'p-rating-icon p-rating-off-icon'
};
export default BaseStyle.extend({
name: 'rating',
theme,
classes
});