component(
ref="formEl"
:is="formRegister ? 'w-form-element' : 'div'"
v-bind="formRegister && { validators, inputValue: rating, disabled: isDisabled, readonly: isReadonly, noBlurValidation }"
v-model:valid="valid"
@reset="$emit('update:modelValue', rating = null);$emit('input', null)"
:class="classes")
input(:id="inputId" :name="inputName" type="hidden" :value="rating")
template(v-for="i in max" :key="i")
slot(v-if="$slots.item" name="item" :index="i + 1")
button.w-rating__button(
:disabled="isDisabled || isReadonly"
@mouseenter="hover = i"
@mouseleave="hover = 0"
@click="onButtonClick(i)"
@focus="onFocus"
@blur="onBlur"
@keydown="onKeydown"
:class="buttonClasses(i)"
type="button"
:tabindex="i === 1 ? 0 : -1")
i.w-icon(
v-if="i - 1 === ~~rating && rating - ~~rating"
role="icon"
:class="`${icon} ${color}`"
aria-hidden="true"
:style="halfStarStyle")