DRING-VOYANT.FR ≡ Explosion Proof Lighting Music, Film And Tv February ~ Amethyst Aromatherapy
  • Messy Play & Sensory Play

  • Reversible Kids Sun Hats

Reversible Kids Sun Hats

$31.36 $48.29
Children’s sun safety has never looked this good! With your child’s comfort and safety in mind, our UV-blocking Reversible Kids Sun Hats are designed to keep your littlies safe while having fun in the sun. Reversible Kids Sun Hats for Babies and Young Children Sun protection is essential, especially for young, delicate skin. These Banz Careware reversible sun hats are packed full of awesome features. High-UV Resistant Fabric: Crafted from UV-protective, shrink-resistant polyester fabric, with a rating of UPF50 , they block up to 98% of UV rays, keeping your child’s skin safe from sunburn and long-term sun damage. Adjustable for Growth: With a Velcro closure at the back of the brim, these hats can be easily adjusted for the perfect fit as your child grows. This makes them comfortable to wear and extends the lifespan of the hat. This also provides a perfect slot to thread ponytails through. Extra-Wide Brim: The extra-wide brim provides outstanding protection against the sun’s damaging rays, covering your child’s face and sensitive neck. Wherever your child travels, whether at the beach, the park, or on a family outing, it provides portable shade. Breathable and Quick-Drying: They are breathable, lightweight and quick-drying, ensuring your child stays cool even on hot summer days. Sun Hats Colours and Sizes Fully reversible with a pattern on one side and a coordinating solid colour on the other, you get two hats for the price of one.. We have many great designs to choose from and 2 different sizes: Under 2 years – available in Botanical, Cats and Unicorns, Jungle, Rainbow, Space and Transport 2-5 years – available in Botanical, Butterfly, Cats and Unicorns, Hibiscus, Jungle, Rainbow, Space and Transport Protecting your child from the sun’s harmful effects is a top priority, and these Reversible Kids Sun Hats make it easier and more stylish than ever. Team them with a pair of our top quality, fun, comfortable and durable kids sunglasses to ensure your littlies eyes are protected against harmful UVA and UVB sun rays. /5 = 4"> <div class="rvx-rating-badge rvx-bg-green-500 rvx-flex rvx-items-center rvx-rounded-sm rvx-w-[123px]" style="clip-path: polygon(0 0, 100% 0%, 88% 100%, 0% 100%)"> <span class="material-symbols-rounded rvx-fill-white rvx-text-white rvx-rating-badge__icon"> grade </span> <span class="rvx-rating-badge__text rvx-text-white !rvx-text-[15.38px] rvx-font-nunito rvx-font-normal rvx-leading-[24.168px]"> Very Good </span> </div> </template> </div> <template x-if="reviewAggregationData?.data?.aggregation.total_avg_review"> <div x-data="{ reviewAverage: reviewAggregationData?.data?.aggregation.total_avg_review, totalRating: 5 }" class="review rvx-flex rvx-gap-2 rvx-mb-2"> <template x-for="star in totalRating" :key="star"> <div> <!-- Full star --> <template x-if="isFullStar(star, reviewAverage)"> <svg class="rvx-aggregation-summary__star-active" width="24px" height="24px" viewBox="0 0 24 24"> <path :fill="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Partial star --> <template x-if="isHalfStar(star, reviewAverage)"> <svg class="rvx-aggregation-summary__star-active-half" width="24" height="24" viewBox="0 0 24 24"> <defs> <linearGradient :id="`grad-${star}`"> <!-- dynamic offset --> <stop :offset="`${Math.floor(((reviewAverage - (star-1)) * 100))}%`" :stop-color="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" /> <stop :offset="`${Math.floor(((reviewAverage - (star-1)) * 100))}%`" stop-color="grey" /> </linearGradient> </defs> <path :fill="`url(#grad-${star})`" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Empty star --> <template x-if="isFullEmptyStar(star, reviewAverage)"> <svg class="rvx-aggregation-summary__star-inactive rvx-fill-neutral-600" fill="none" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> </div> </template> </div> </template> <p class="rvx-total-review !rvx-text-[16px] rvx-font-normal rvx-leading-[28.562px] !rvx-font-nunito rvx-text-neutral-800"> <span>Total</span> <span x-text="reviewAggregationData?.data?.aggregation?.total_reviews"></span> reviews </p> </div> <div class="rvx-h-[1px] rvx-line-separator rvx-w-[155px] !rvx-bg-neutral-300" style="transform: rotate(90deg)"></div> <table class="rvx-w-full rvx-table !rvx-border-none"> <tbody class=""> <template x-for="(stat, i) in formatAggregations"> <tr class="rvx-aggregation__row !rvx-font-nunito !rvx-border-none !rvx-bg-transparent !rvx-leading-normal"> <td class="rvx-text-[14px] rvx-flex rvx-gap-space5 rvx-items-center rvx-align-middle !rvx-p-0 !rvx-pb-space8 !rvx-pr-space8 rvx-aggregation__rating !rvx-bg-transparent !rvx-border-none"> <span x-text="stat.rating" class="rvx-text-[14px] rvx-pt-[2px] rvx-font-nunito rvx-text-neutral-800 rvx-font-semibold"></span> <svg class="rvx-aggregation__rating-icon" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" fill="none"> <mask id="mask0_2499_19750" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="20"> <rect width="20" height="20" fill="#D9D9D9"/> </mask> <g mask="url(#mask0_2499_19750)"> <path d="M9.99909 14.0627L6.58242 16.1043C6.42964 16.1877 6.28034 16.2224 6.13451 16.2085C5.98867 16.1946 5.8602 16.146 5.74909 16.0627C5.63798 15.9793 5.55464 15.8647 5.49909 15.7189C5.44353 15.5731 5.43659 15.4238 5.47826 15.271L6.37409 11.4585L3.35326 8.896C3.22826 8.78488 3.15187 8.65641 3.12409 8.51058C3.09631 8.36475 3.10326 8.22238 3.14492 8.0835C3.18659 7.94461 3.26298 7.83002 3.37409 7.73975C3.4852 7.64947 3.62409 7.59738 3.79076 7.5835L7.74909 7.22933L9.31159 3.60433C9.38103 3.45155 9.47826 3.33697 9.60326 3.26058C9.72826 3.18419 9.8602 3.146 9.99909 3.146C10.138 3.146 10.2699 3.18419 10.3949 3.26058C10.5199 3.33697 10.6171 3.45155 10.6866 3.60433L12.2491 7.25016L16.2074 7.5835C16.3741 7.59738 16.513 7.65294 16.6241 7.75016C16.7352 7.84739 16.8116 7.96544 16.8533 8.10433C16.8949 8.24322 16.8984 8.38211 16.8637 8.521C16.8289 8.65988 16.7491 8.78488 16.6241 8.896L13.6241 11.4585L14.5199 15.271C14.5616 15.4238 14.5546 15.5731 14.4991 15.7189C14.4435 15.8647 14.3602 15.9793 14.2491 16.0627C14.138 16.146 14.0095 16.1946 13.8637 16.2085C13.7178 16.2224 13.5685 16.1877 13.4158 16.1043L9.99909 14.0627Z" :fill="`${reviewSettingsData?.data?.setting?.widget_settings.star_color_code}`"/> </g> </svg> </td> <td class="rvx-w-full !rvx-p-0 !rvx-pb-space8 rvx-align-middle !rvx-border-none !rvx-bg-transparent "> <div class="rvx-w-full rvx-relative rvx-aggregation__progressbar"> <div class="rvx-bg-[#D9D9D9] rvx-rounded-full rvx-aggregation__progressbar-inactive" :style="{ height: `8px` }"></div> <div class="rvx-bg-primary rvx-rounded-full rvx-absolute rvx-top-0 rvx-left-0 rvx-aggregation__progressbar-active" :style="{ width: `${stat?.percent}%`, height: `8px`, background: `${reviewSettingsData?.data?.setting?.widget_settings.brand_color_code}` }"> </div> </div> </td> <td class="!rvx-p-0 !rvx-px-space8 !rvx-pb-space8 rvx-align-middle !rvx-border-none rvx-aggregation__total-rating !rvx-bg-transparent"> <span x-text="stat.total" class="rvx-font-nunito rvx-text-neutral-800 rvx-font-semibold"></span> </td> <td class="!rvx-p-0 !rvx-pb-space8 rvx-align-middle !rvx-border-none rvx-aggregation__percent !rvx-bg-transparent"> <span x-text="'(' stat?.percent '%' ')'" class="rvx-font-nunito rvx-text-neutral-800 rvx-font-semibold"></span> </td> </tr> </template> </tbody> </table> </div> <div x-show="reviewAggregationData?.data?.aggregation?.recommnendation_count" class="rvx-flex rvx-recommendation-count rvx-items-center rvx-gap-space8 rvx-bg-neutral-100 rvx-rounded-md rvx-p-space8 rvx-my-space16"> <div class="rvx-bg-white rvx-rounded-full rvx-size-[31px] rvx-grid rvx-place-items-center"> <svg class="rvx-mb-[5px]" width="18" height="18" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M11.7419 9.05682H7.23595C7.1217 9.05686 7.0106 9.01934 6.91976 8.95003C6.82893 8.88072 6.76341 8.78347 6.73328 8.67326C6.70315 8.56304 6.7101 8.44599 6.75304 8.34011C6.79598 8.23423 6.87254 8.1454 6.97093 8.08732C8.93417 6.92725 9.95395 5.57402 10.0885 3.95033C10.1354 3.38683 10.6373 2.93673 11.207 2.94418C11.7883 2.95347 12.333 3.1865 12.7409 3.60041C13.1491 4.01471 13.3741 4.56333 13.3743 5.14517V5.32041C13.3743 6.74172 12.9533 7.64796 12.1766 8.82307C12.1291 8.89492 12.0645 8.95388 11.9887 8.99467C11.9128 9.03546 11.828 9.05682 11.7419 9.05682Z" fill="#FFB159"/> <path d="M17.2642 9.64713C17.2642 8.74706 16.5319 8.01477 15.6318 8.01477H7.236C7.14271 8.01477 7.05112 8.0398 6.97087 8.08729C6.38151 8.43576 5.78643 8.72262 5.30828 8.95318C5.1415 9.03357 4.98398 9.10953 4.84071 9.18115C4.75417 9.22442 4.6814 9.29093 4.63054 9.37324C4.57967 9.45554 4.55273 9.55038 4.55273 9.64713V16.3155C4.55273 16.4122 4.57967 16.5071 4.63054 16.5894C4.6814 16.6717 4.75417 16.7382 4.84071 16.7814C6.94574 17.8338 8.69554 17.9611 10.736 17.9611C11.052 17.9611 11.3752 17.958 11.7075 17.9549C12.075 17.9514 12.455 17.9478 12.8534 17.9478H14.5003C15.4004 17.9478 16.1327 17.2156 16.1327 16.3155C16.1327 16.0128 16.0499 15.7292 15.9058 15.4859C16.3748 15.1988 16.6884 14.6817 16.6884 14.0927C16.6884 13.79 16.6056 13.5064 16.4615 13.2632C16.9305 12.976 17.2441 12.4589 17.2441 11.8699C17.2441 11.4465 17.0821 11.0603 16.8168 10.77C17.1057 10.4656 17.2642 10.0686 17.2642 9.64713Z" fill="#FFC889"/> <path d="M16.1797 5.10413H15.0683C14.7806 5.10413 14.5473 4.87086 14.5473 4.58317C14.5473 4.29547 14.7806 4.0622 15.0683 4.0622H16.1797C16.4674 4.0622 16.7006 4.29547 16.7006 4.58317C16.7006 4.87086 16.4674 5.10413 16.1797 5.10413ZM8.39994 5.10413H7.28854C7.00085 5.10413 6.76758 4.87086 6.76758 4.58317C6.76758 4.29547 7.00085 4.0622 7.28854 4.0622H8.39994C8.68763 4.0622 8.9209 4.29547 8.9209 4.58317C8.9209 4.87086 8.6877 5.10413 8.39994 5.10413ZM10.0675 2.21675C9.88746 2.21675 9.71239 2.12333 9.61592 1.9562L9.06022 0.993699C8.91636 0.744554 9.00174 0.425903 9.25088 0.282073C9.50003 0.138209 9.81868 0.223592 9.96251 0.472737L10.5182 1.43524C10.6621 1.68439 10.5767 2.00304 10.3275 2.14687C10.2485 2.19266 10.1589 2.21676 10.0675 2.21675ZM13.4007 2.21675C13.3094 2.21677 13.2197 2.19266 13.1407 2.14687C12.8916 2.003 12.8062 1.68439 12.95 1.43524L13.5057 0.472737C13.6496 0.223592 13.9682 0.13814 14.2174 0.282073C14.4665 0.425938 14.5519 0.744554 14.408 0.993699L13.8523 1.9562C13.7559 2.12333 13.5808 2.21675 13.4007 2.21675Z" fill="#29CCB1"/> <path d="M3.36419 15.2108V17.9545H2.32227V15.2108C2.32227 14.9232 2.55567 14.6898 2.84323 14.6898C3.13078 14.6898 3.36419 14.9232 3.36419 15.2108Z" fill="#6694FF"/> <path d="M16.1797 5.10413H15.0683C14.7806 5.10413 14.5473 4.87086 14.5473 4.58317C14.5473 4.29547 14.7806 4.0622 15.0683 4.0622H16.1797C16.4674 4.0622 16.7006 4.29547 16.7006 4.58317C16.7006 4.87086 16.4674 5.10413 16.1797 5.10413ZM8.39994 5.10413H7.28854C7.00085 5.10413 6.76758 4.87086 6.76758 4.58317C6.76758 4.29547 7.00085 4.0622 7.28854 4.0622H8.39994C8.68763 4.0622 8.9209 4.29547 8.9209 4.58317C8.9209 4.87086 8.6877 5.10413 8.39994 5.10413ZM10.0675 2.21675C9.88746 2.21675 9.71239 2.12333 9.61592 1.9562L9.06022 0.993699C8.91636 0.744554 9.00174 0.425903 9.25088 0.282073C9.50003 0.138209 9.81868 0.223592 9.96251 0.472737L10.5182 1.43524C10.6621 1.68439 10.5767 2.00304 10.3275 2.14687C10.2485 2.19266 10.1589 2.21676 10.0675 2.21675ZM13.4007 2.21675C13.3094 2.21677 13.2197 2.19266 13.1407 2.14687C12.8916 2.003 12.8062 1.68439 12.95 1.43524L13.5057 0.472737C13.6496 0.223592 13.9682 0.13814 14.2174 0.282073C14.4665 0.425938 14.5519 0.744554 14.408 0.993699L13.8523 1.9562C13.7559 2.12333 13.5808 2.21675 13.4007 2.21675Z" fill="#4CAF50"/> <path d="M3.36419 15.2108V17.9545H2.32227V15.2108C2.32227 14.9232 2.55567 14.6898 2.84323 14.6898C3.13078 14.6898 3.36419 14.9232 3.36419 15.2108Z" fill="#6694FF"/> <path d="M5.06612 8.01477H0.620572C0.333016 8.01477 0.0996094 8.24818 0.0996094 8.53573V17.4268C0.0996094 17.7147 0.333016 17.9478 0.620572 17.9544H3.95472C4.59341 17.9478 5.14738 17.5793 5.41517 17.0437C5.52858 16.8177 5.58746 16.5683 5.58708 16.3154V8.53573C5.58708 8.24814 5.35367 8.01477 5.06612 8.01477Z" fill="#2265FF"/> <path d="M3.36419 15.1761V17.9546H2.32227V15.1761C2.32227 14.8886 2.55567 14.6552 2.84323 14.6552C3.13078 14.6552 3.36419 14.8886 3.36419 15.1761Z" fill="#6694FF"/> </svg> </div> <p class="!rvx-text-[14px] rvx-text-neutral-800 !rvx-font-nunito"> <span x-text="reviewAggregationData?.data?.aggregation?.recommnendation_count"></span> Persons recommended this product </p> </div> <div class="rvx-w-full rvx-h-[2px] rvx-bg-neutral-100 rvx-rounded-full" :class="`${!reviewSettingsData?.data?.setting?.review_settings?.reviews?.multicriteria?.enable ? 'rvx-mb-space40' : 'rvx-mb-space12'}`"></div> <template x-if="reviewSettingsData?.data?.setting?.review_settings?.reviews?.multicriteria?.enable"> <div class="rvx-grid rvx-grid-cols-12 rvx-w-full rvx-gap-space16 rvx-mb-space16 rvx-aggregation-multicriteria"> <template x-for="criteria in formatMultiCriteriaAggregations"> <div class="rvx-col-span-4 rvx-flex rvx-gap-space16 rvx-w-full rvx-aggregation-multicriteria__row-outer"> <div class="rvx-grid rvx-grid-cols-12 rvx-gap-space8 rvx-w-full rvx-aggregation-multicriteria__row-inner"> <div class="rvx-col-span-8 rvx-w-full rvx-pb-[6px] rvx-aggregation-multicriteria__name"> <span x-text="criteria?.name" class="rvx-text-[14px] rvx-font-nunito"></span> <div class="rvx-w-full rvx-relative rvx-aggregation__progressbar"> <div class="rvx-bg-[#D9D9D9] rvx-rounded-full rvx-aggregation__progressbar-inactive" :style="{height: `12px`}"></div> <div class="rvx-bg-primary rvx-rounded-full rvx-absolute rvx-top-0 rvx-left-0 rvx-aggregation__progressbar-active" :style="{width: `${criteria?.percent}%`, height: `12px`, background: `${reviewSettingsData?.data?.setting?.widget_settings.brand_color_code}`}"> </div> </div> </div> <div class="rvx-col-span-4 rvx-flex rvx-justify-center rvx-items-center rvx-gap-space5 rvx-self-end rvx-aggregation-multicriteria__total"> <span x-text="criteria.total" class="rvx-text-[12px] rvx-font-nunito rvx-pt-[5px]"></span> <svg class="rvx-aggregation-multicriteria__star" width="16" height="16" viewBox="0 0 24 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M11.9998 17.5001L6.53314 20.7667C6.2887 20.9001 6.04981 20.9556 5.81648 20.9334C5.58314 20.9112 5.37759 20.8334 5.19981 20.7001C5.02203 20.5667 4.8887 20.3834 4.79981 20.1501C4.71092 19.9167 4.69981 19.6778 4.76648 19.4334L6.19981 13.3334L1.36648 9.23339C1.16648 9.05561 1.04426 8.85005 0.999811 8.61672C0.955367 8.38339 0.966478 8.15561 1.03314 7.93339C1.09981 7.71116 1.22203 7.52783 1.39981 7.38339C1.57759 7.23894 1.79981 7.15561 2.06648 7.13339L8.39981 6.56672L10.8998 0.76672C11.0109 0.522275 11.1665 0.338942 11.3665 0.21672C11.5665 0.0944973 11.7776 0.0333862 11.9998 0.0333862C12.222 0.0333862 12.4331 0.0944973 12.6331 0.21672C12.8331 0.338942 12.9887 0.522275 13.0998 0.76672L15.5998 6.60005L21.9331 7.13339C22.1998 7.15561 22.422 7.2445 22.5998 7.40005C22.7776 7.55561 22.8998 7.7445 22.9665 7.96672C23.0331 8.18894 23.0387 8.41116 22.9831 8.63339C22.9276 8.85561 22.7998 9.05561 22.5998 9.23339L17.7998 13.3334L19.2331 19.4334C19.2998 19.6778 19.2887 19.9167 19.1998 20.1501C19.1109 20.3834 18.9776 20.5667 18.7998 20.7001C18.622 20.8334 18.4165 20.9112 18.1831 20.9334C17.9498 20.9556 17.7109 20.9001 17.4665 20.7667L11.9998 17.5001Z" :fill="`${reviewSettingsData?.data?.setting?.widget_settings?.star_color_code}`"/> </svg> </div> </div> </div> </template> </div> </template> <div x-show="reviewSettingsData?.data?.setting?.review_settings?.reviews?.multicriteria?.enable" class="rvx-w-full rvx-h-[2px] rvx-bg-neutral-100 rvx-rounded-full rvx-mb-space40"></div> </div> </template> <template x-if="haveReviews || isFiltering"> <div> <div x-data="__rvxReviewFilterComponent__" x-init="init()" class="rvx-flex rvx-items-center rvx-justify-between rvx-box-border rvx-gap-space12 rvx-mb-space16" id="rvx-review-filter"> <div class="rvx-flex rvx-gap-space12"> <!-- Filter options--> <div class="rvx-relative rvx-inline-block rvx-text-left"> <!-- Menu Button --> <button @click="openFilterOptions = !openFilterOptions" class="rvx-outline-none focus:rvx-outline-none rvx-review-filter__button rvx-rounded-lg !rvx-border rvx-border-solid rvx-py-[9px] rvx-px-space16 rvx-leading-[22px] rvx-cursor-pointer rvx-font-nunito rvx-text-normal rvx-bg-transparent hover:rvx-bg-transparent focus:rvx-bg-transparent disabled:!rvx-cursor-not-allowed rvx-flex rvx-justify-center rvx-items-center rvx-gap-space8 !rvx-border-neutral-400 rvx-text-neutral-800 hover:rvx-text-neutral-800 focus:rvx-text-neutral-800 rvx-font-semibold hover:rvx-border-neutral-600 !rvx-font-nunito"> <span class="material-symbols-rounded rvx-review-filter__icon">filter_alt</span> Filter </button> <div class="rvx-absolute rvx-size-[20px] rvx-bg-primary rvx-text-white rvx-rounded-full rvx-text-[12px] -rvx-top-[10px] rvx-right-0 rvx-grid rvx-place-items-center rvx-px-space8" x-show="selectFilterCount" x-text="selectFilterCount">10</div> <!-- Menu Items --> <div x-show="openFilterOptions" @click.outside="openFilterOptions = false" x-transition:enter="rvx-transition rvx-ease-out rvx-duration-100" x-transition:enter-start="rvx-transform rvx-scale-95 rvx-opacity-0" x-transition:enter-end="rvx-transform rvx-scale-100 rvx-opacity-100" x-transition:leave="rvx-transition rvx-ease-in rvx-duration-75" x-transition:leave-start="rvx-transform rvx-scale-100 rvx-opacity-100" x-transition:leave-end="rvx-transform rvx-scale-95 rvx-opacity-0" class="rvx-absolute rvx-z-10 rvx-mt-2 rvx-w-[250px] rvx-origin-top-right rvx-divide-y rvx-divide-gray-100 rvx-rounded-md rvx-bg-white rvx-shadow-lg rvx-ring-1 rvx-ring-black/5 focus:rvx-outline-none rvx-review-filter-wrapper"> <div class="rvx-w-[272px] rvx-max-w-[272px] !rvx-p-space16 rvx-bg-white rvx-review-filter__wrapper-inner !rvx-border rvx-border-solid !rvx-border-[#d9d9d9]"> <p class="rvx-font-semibold rvx-review-filter-wrapper__title !rvx-font-nunito">Filter by</p> <div class="rvx-space-y-space16 rvx-mt-[8px] rvx-review-filter-wrapper__outer"> <div> <p class="rvx-flex rvx-items-center rvx-gap-space8 rvx-review-filter-wrapper__rating--text !rvx-font-nunito"> <span class="material-symbols-rounded rvx-review-filter-wrapper__rating-inner--icon">star</span> Rating </p> <div class="rvx-review-filter-wrapper__rating-wrapper rvx-space-y-space16 rvx-ml-space12"> <div class="rvx-review-filter-wrapper__rating-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-all" type="radio" value="all" x-model="selectFilterByRating"> <label for="rating-all" class="rvx-review-filter__wrapper__rating--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">All Rating</label> </div> <div class="rvx-review-filter-wrapper__rating-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-4" type="radio" value="4" x-model="selectFilterByRating"> <label for="rating-4" class="rvx-review-filter__wrapper__rating--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">4 Star & above</label> </div> <div class="rvx-review-filter-wrapper__rating-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-3" type="radio" value="3" x-model="selectFilterByRating"> <label for="rating-3" class="rvx-review-filter__wrapper__rating--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">3 Star & above</label> </div> <div class="rvx-review-filter-wrapper__rating-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-2" type="radio" value="2" x-model="selectFilterByRating"> <label for="rating-2" class="rvx-review-filter__wrapper__rating--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">2 Star & above</label> </div> <div class="rvx-review-filter-wrapper__rating-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-1" type="radio" value="1" x-model="selectFilterByRating"> <label for="rating-1" class="rvx-review-filter__wrapper__rating--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">1 Star & above</label> </div> </div> </div> <div> <p class="rvx-flex rvx-items-center rvx-gap-space8 rvx-review-filter-wrapper__attachment--text !rvx-font-nunito"> <span class="material-symbols-rounded rvx-review-filter-wrapper__attachment-inner--icon"> attach_file</span> Attachments </p> <div class="rvx-review-filter-wrapper__attachment-wrapper rvx-space-y-space16 rvx-ml-space12"> <div class="rvx-review-filter-wrapper__attachment-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="attachment-with_attachment" type="radio" value="with_attachment" x-model="selectFilterByAttachment"> <label for="attachment-with_attachment" class="rvx-review-filter__wrapper__attachment--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-o">With Attachment</label> </div> <div class="rvx-review-filter-wrapper__attachment-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="attachment-without_attachment" type="radio" value="without_attachment" x-model="selectFilterByAttachment"> <label for="attachment-without_attachment" class="rvx-review-filter__wrapper__attachment--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">Without Attachment</label> </div> <div class="rvx-review-filter-wrapper__attachment-inner rvx-flex rvx-gap-space8 rvx-items-center"> <input id="attachment-both" type="radio" value="both" x-model="selectFilterByAttachment"> <label for="attachment-both" class="rvx-review-filter__wrapper__attachment--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">Both</label> </div> </div> </div> </div> <div class="rvx-flex rvx-items-center rvx-justify-between rvx-gap-space20 rvx-mt-space24 rvx-review-filter-wrapper__footer"> <button class="rvx-border-neutral-600 rvx-text-neutral-800 rvx-font-semibold hover:rvx-text-white hover:rvx-border-neutral-400 hover:!rvx-bg-neutral-400 rvx-text-[14px] rvx-rounded-lg rvx-p-[9px] rvx-leading-[22px] rvx-cursor-pointer rvx-font-nunito disabled:!rvx-cursor-not-allowed disabled:rvx-bg-neutral-400 rvx-review-filter-wrapper__footer-reset-button !rvx-font-nunito" @click="filterResetHandler">Reset filters </button> <button @click="applyFilterHandler" class="rvx-bg-primary rvx-rounded-lg rvx-p-[9px] rvx-leading-[22px] rvx-text-white rvx-cursor-pointer rvx-font-nunito rvx-border-none hover:rvx-bg-primary disabled:!rvx-cursor-not-allowed disabled:rvx-bg-neutral-400 rvx-font-semibold rvx-text-[14px] rvx-review-filter-wrapper__footer-save-button focus:rvx-outline-none focus:rvx-bg-primary !rvx-font-nunito">Apply</button> </div> </div> </div> </div> <!-- Sort Options--> <div class="rvx-relative rvx-inline-block rvx-text-left"> <button @click="openSortOptions = !openSortOptions" class="rvx-outline-none focus:rvx-outline-none rvx-review-sort__button rvx-rounded-lg !rvx-border rvx-border-solid rvx-py-[9px] rvx-px-space16 rvx-leading-[22px] rvx-cursor-pointer rvx-font-nunito rvx-text-normal rvx-bg-transparent hover:rvx-bg-transparent focus:rvx-bg-transparent disabled:!rvx-cursor-not-allowed rvx-flex rvx-justify-center rvx-items-center rvx-gap-space8 !rvx-border-neutral-400 rvx-text-neutral-800 focus:rvx-text-neutral-800 rvx-font-semibold hover:rvx-border-neutral-600 hover:rvx-text-neutral-600"> <span class="material-symbols-rounded rvx-review-sort__icon">swap_vert</span> Sort By </button> <div x-show="openSortOptions" @click.outside="openSortOptions = false" x-transition:enter="rvx-transition rvx-ease-out rvx-duration-100" x-transition:enter-start="rvx-transform rvx-scale-95 rvx-opacity-0" x-transition:enter-end="rvx-transform rvx-scale-100 rvx-opacity-100" x-transition:leave="rvx-transition rvx-ease-in rvx-duration-75" x-transition:leave-start="rvx-transform rvx-scale-100 rvx-opacity-100" x-transition:leave-end="rvx-transform rvx-scale-95 rvx-opacity-0" class="rvx-absolute rvx-z-10 rvx-mt-2 !rvx-w-[250px] rvx-origin-top-right rvx-divide-y rvx-divide-gray-100 rvx-rounded-md rvx-bg-white rvx-shadow-lg rvx-ring-1 rvx-ring-black/5 focus:rvx-outline-none rvx-review-sort-wrapper"> <div class="rvx-space-y-space16 rvx-p-space12 rvx-review-sort-wrapper__outer !rvx-border rvx-border-solid !rvx-border-[#d9d9d9]"> <div class="rvx-review-sort-wrapper__inner"> <div class="rvx-pb-space16 rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-rating_asc" type="radio" value="rating_asc" x-model="selectSortBy"> <label for="rating-rating_asc" class="rvx-review-sort__wrapper--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">Rating Ascending</label> </div> <div class="rvx-pb-space16 rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-rating_desc" type="radio" value="rating_desc" x-model="selectSortBy"> <label for="rating-rating_desc" class="rvx-review-sort__wrapper--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">Rating Descending</label> </div> </div> <div class="rvx-review-sort-wrapper__inner"> <div class="rvx-pb-space16 rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-newest_first" type="radio" value="newest_first" x-model="selectSortBy"> <label for="rating-newest_first" class="rvx-review-sort__wrapper--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">Newest first</label> </div> <div class="rvx-pb-space16 rvx-flex rvx-gap-space8 rvx-items-center"> <input id="rating-oldest_first" type="radio" value="oldest_first" x-model="selectSortBy"> <label for="rating-oldest_first" class="rvx-review-sort__wrapper--radio-group__option-label !rvx-font-nunito !rvx-font-normal !rvx-m-0">Oldest first</label> </div> </div> </div> </div> </div> </div> <template x-if="reviewSettingsData?.data?.setting?.review_settings?.reviews?.review_submission_policy?.options.anyone"> <a href="#rvx-review-form__wrapper" class="!rvx-no-underline" > <button :style="`background: ${reviewSettingsData?.data?.setting?.widget_settings?.brand_color_code}; color: ${reviewSettingsData?.data?.setting?.widget_settings?.button_font_color_code};`" class="rvx-bg-primary rvx-text-white rvx-rounded-lg rvx-py-[9px] rvx-px-space16 rvx-leading-[22px] rvx-cursor-pointer rvx-font-nunito rvx-text-normal rvx-border-none disabled:!rvx-cursor-not-allowed disabled:rvx-bg-neutral-400 rvx-font-semibold rvx-review-write__button">Write a Review</button> </a> </template> </div> </div> </template> <template x-if="fetchReviewsIsLoading"> <div class="rvx-grid rvx-grid-cols-[repeat(auto-fill,minmax(240px,1fr))] rvx-gap-space12"> <template x-for="loader in 2"> <div class="rvx-flex rvx-animate-pulse rvx-space-x-4 rvx-bg-neutral-100 rvx-p-space16 rvx-rounded-md"> <div class="rvx-flex-1 rvx-space-y-6 rvx-py-1"> <div class="rvx-space-y-3"> <div class="rvx-grid rvx-grid-cols-8 rvx-items-center rvx-gap-space12"> <div class="rvx-col-span-2 rvx-size-10 rvx-rounded-full rvx-bg-gray-200"></div> <div class="rvx-col-span-6 rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> <div class="rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> <div class="rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> <div class="rvx-space-y-3"> <div class="rvx-grid rvx-grid-cols-3 rvx-gap-4"> <div class="rvx-col-span-2 rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> <div class="rvx-col-span-1 rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> <div class="rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> </div> </div> </template> </div> </template> <template x-if="haveReviews && !fetchReviewsIsLoading && !fetchReviewsSettingsIsLoading" x-cloak> <div> <div :class="`${layoutView === 'masonry' && 'rvx-masonry-layout' } ${layoutView === 'grid' && 'rvx-grid rvx-grid-cols-[repeat(auto-fill,minmax(320px,1fr))] rvx-gap-space12'} ${layoutView === 'list' && 'rvx-space-y-space12'} rvx-review-wrapper`"> <template x-for="review in reviewsData?.data?.reviews"> <div class="rvx-rounded-md rvx-shadow-100 rvx-bg-neutral-100 rvx-columns-box rvx-review-card" :class="`${(layoutView === 'masonry' || layoutView === 'grid') ? '' : 'rvx-py-space16 rvx-pl-space16 rvx-pr-[47px]'} ${review?.is_highlighted ? 'rvx-bg-primary-10 rvx-border rvx-border-l-4 rvx-border-primary-50 rvx-border-solid' : 'rvx-bg-neutral-100'}`"> <template x-if="layoutView === 'masonry' && review?.attachments?.length"> <div class="rvx-relative"> <img x-show="getFileType(review.attachments[0]).isImage" :src="review.attachments[0]" alt="test" class="!rvx-w-full !rvx-max-h-[166px] !rvx-h-[166px] rvx-object-cover !rvx-rounded-t-lg rvx-rounded-none" /> <video x-show="getFileType(review.attachments[0]).isVideo" width="100%" height="200"> <source :src="review.attachments[0]"> </video> <template x-if="isHaveMultipleAttachment(review.attachments.length, 1)"> <div class="rvx-flex rvx-items-center rvx-gap-space5 rvx-bg-[#212121B2] rvx-rounded-md rvx-p-space5 rvx-absolute rvx-top-[10px] rvx-right-[10px] rvx-text-white rvx-cursor-pointer"> <span class="!rvx-text-[10px]"> <span x-text="review.attachments.length - 1 "></span> </span> <span class="material-symbols-rounded rvx-text-[16px]">photo_library</span> </div> </template> </div> </template> <div class="rvx-cursor-pointer rvx-review-inner rvx-p-space16"> <div class="rvx-review-card__body !rvx-break-words rvx-space-y-space12" @click="selectedReviewDetailsHandler(review)"> <div class="rvx-flex rvx-gap-space8 rvx-review-user"> <div x-show="reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <div x-data="avatarComponent({src: '', alt: review.reviewer_name})" x-show="!review.is_anonymous" class="rvx-grid rvx-place-content-center rvx-overflow-hidden rvx-size-[40px] rvx-bg-white !rvx-border-[1px] !rvx-border-neutral-300 rvx-rounded-full rvx-border-solid rvx-review-user__avatar"> <template x-if="showImage()"> <img @error="onError" :src="src" :alt="alt" class="rvx-review-user__avatar-img"> </template> <template x-if="!showImage()"> <div class="rvx-review-user__avatar-fallback rvx-flex rvx-justify-center rvx-items-center rvx-text-neutral rvx-font-nunito rvx-border"> <span x-text="alt.charAt(0).toUpperCase()"></span> </div> </template> </div> <div x-show="review.is_anonymous" class="rvx-grid rvx-place-content-center rvx-overflow-hidden rvx-size-[40px] rvx-bg-white rvx-review-user__avatar !rvx-border-[1px] !rvx-border-neutral-300 rvx-rounded-full rvx-border-solid"> <svg class="rvx-review-user__avatar-img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 36 36"><path fill="currentColor" d="M30.61 24.52a17.16 17.16 0 0 0-25.22 0a1.5 1.5 0 0 0-.39 1v6A1.5 1.5 0 0 0 6.5 33h23a1.5 1.5 0 0 0 1.5-1.5v-6a1.5 1.5 0 0 0-.39-.98" class="clr-i-solid clr-i-solid-path-1"/><circle cx="18" cy="10" r="7" fill="currentColor" class="clr-i-solid clr-i-solid-path-2"/><path fill="none" d="M0 0h36v36H0z"/></svg> </div> </div> <div x-show="!reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <div class="rvx-grid rvx-place-content-center rvx-overflow-hidden rvx-size-[40px] rvx-bg-white rvx-review-user__avatar !rvx-border-[1px] !rvx-border-neutral-300 rvx-rounded-full rvx-border-solid"> <svg class="rvx-review-user__avatar-img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 48 48"><path fill="#cfd8dc" d="M5 19h38v19H5z"/><path fill="#b0bec5" d="M5 38h38v4H5z"/><path fill="#455a64" d="M27 24h12v18H27z"/><path fill="#e3f2fd" d="M9 24h14v11H9z"/><path fill="#1e88e5" d="M10 25h12v9H10z"/><path fill="#90a4ae" d="M36.5 33.5c-.3 0-.5.2-.5.5v2c0 .3.2.5.5.5s.5-.2.5-.5v-2c0-.3-.2-.5-.5-.5"/><g fill="#558b2f"><circle cx="24" cy="19" r="3"/><circle cx="36" cy="19" r="3"/><circle cx="12" cy="19" r="3"/></g><path fill="#7cb342" d="M40 6H8c-1.1 0-2 .9-2 2v3h36V8c0-1.1-.9-2-2-2m-19 5h6v8h-6zm16 0h-5l1 8h6zm-26 0h5l-1 8H9z"/><g fill="#ffa000"><circle cx="30" cy="19" r="3"/><path d="M45 19c0 1.7-1.3 3-3 3s-3-1.3-3-3s1.3-3 3-3z"/><circle cx="18" cy="19" r="3"/><path d="M3 19c0 1.7 1.3 3 3 3s3-1.3 3-3s-1.3-3-3-3z"/></g><path fill="#ffc107" d="M32 11h-5v8h6zm10 0h-5l2 8h6zm-26 0h5v8h-6zM6 11h5l-2 8H3z"/></svg> </div> </div> <div class="rvx-w-full"> <div class="rvx-flex rvx-flex-wrap rvx-items-center rvx-justify-between rvx-font-nunito"> <div class="rvx-flex rvx-flex-wrap rvx-items-center rvx-font-nunito rvx-gap-space8"> <div x-show="reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <p x-show="!review.is_anonymous" x-text="layoutView === 'list' ? censorReviewerName({isCensor: reviewSettingsData?.data.setting?.review_settings?.reviews.censor_reviewer_name, str: review.reviewer_name}) : showDisplayReviewerName({haveVerifiedBadge: (reviewSettingsData?.data.setting?.review_settings?.reviews?.show_verified_badge && review?.is_verified), showCountryFlg: reviewSettingsData?.data.setting.review_settings.reviews.show_reviewer_country, str: review.reviewer_name, isCensor: reviewSettingsData?.data.setting?.review_settings?.reviews.censor_reviewer_name})" class="!rvx-text-[14px] rvx-font-semibold rvx-leading-[22px] rvx-text-neutral-800 rvx-review-user__name"> </p> <p x-show="review.is_anonymous" class="!rvx-text-[14px] rvx-font-semibold rvx-leading-[22px] rvx-text-neutral-800 rvx-review-user__name"> Anonymous </p> </div> <div x-show="!reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <p class="rvx-text-[14px] rvx-font-semibold rvx-leading-[22px] rvx-text-neutral-800 rvx-review-user__name"> Shopper </p> </div> <template x-if="reviewSettingsData?.data.setting.review_settings.reviews.show_reviewer_country && review?.reviewer_flag"> <div x-data="__rvxTooltipComponent__()" x-init="initial()" class="rvx-relative rvx-px-space8"> <div x-ref="tooltip" x-show="tooltipVisible" :class="{ 'rvx-top-[-15px] left-1/2 -rvx-translate-x-1/2 -rvx-mt-0.5 -rvx-translate-y-full' : tooltipPosition === 'top', 'rvx-top-1/2 -rvx-translate-y-1/2 -rvx-ml-0.5 rvx-left-0 -rvx-translate-x-full' : tooltipPosition === 'left', 'rvx-bottom-[-20px] -rvx-translate-x-1/2 -rvx-mb-0.5 rvx-translate-y-full' : tooltipPosition === 'bottom', 'rvx-top-1/2 -rvx-translate-y-1/2 -rvx-mr-0.5 rvx-right-0 rvx-translate-x-full' : tooltipPosition === 'right' }" class="rvx-absolute rvx-w-auto rvx-text-sm" x-cloak> <div x-show="tooltipVisible" x-transition class="rvx-relative rvx-px-2 rvx-py-1 rvx-text-white rvx-bg-black rvx-rounded rvx-bg-opacity-90"> <p x-text="review?.reviewer_country_short_name" class="rvx-flex-shrink-0 rvx-block rvx-text-[12px] rvx-whitespace-nowrap"></p> </div> </div> <div x-ref="content" class="rvx-leading-[0px]"> <img :src="review?.reviewer_flag" alt="flag" width="22" height="26"> </div> </div> </template> </div> <p x-show="reviewSettingsData?.data.setting?.review_settings.reviews.show_verified_badge && review?.is_verified" class="rvx-flex rvx-items-center rvx-text-success rvx-gap-space5 !rvx-text-[12px] rvx-review-user__verify"> <span class="material-symbols-rounded-fill rvx-text-[16px]"> check_circle</span> Verified </p> </div> <template x-if="Number(review.rating)"> <div x-data="{ reviewAverage: Number(review.rating), totalRating: 5 }" class="review rvx-flex rvx-gap-[4px]"> <template x-for="star in totalRating" :key="star"> <div> <!-- Full star --> <template x-if="isFullStar(star, reviewAverage)"> <svg class="rvx-reviewer__star-active" width="20px" height="20px" viewBox="0 0 24 24"> <path :fill="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Partial star --> <template x-if="isHalfStar(star, reviewAverage)"> <svg class="rvx-reviewer__star-half" width="20" height="20" viewBox="0 0 24 24"> <defs> <linearGradient :id="`grad-${star}`"> <!-- dynamic offset --> <stop :offset="`${Math.floor(((reviewAverage - (star-1)) * 100))}%`" :stop-color="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" /> <stop :offset="`${Math.floor(((reviewAverage - (star-1)) * 100))}%`" stop-color="grey" /> </linearGradient> </defs> <path :fill="`url(#grad-${star})`" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Empty star --> <template x-if="isFullEmptyStar(star, reviewAverage)"> <svg class="rvx-reviewer__star-inactive rvx-fill-neutral-600" fill="none" width="20px" height="20px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> </div> </template> </div> </template> </div> </div> <div class="rvx-font-nunito rvx-review-info"> <!-- Review Info --> <p class="!rvx-text-[12px] rvx-text-neutral-500 rvx-review-info__date" x-text="review.created_at"> </p> <p x-show="reviewSettingsData?.data?.setting?.review_settings.reviews.allow_review_titles" class="!rvx-text-[16px] rvx-text-neutral-800 rvx-font-semibold rvx-leading-[28px] rvx-mb-space12 rvx-review-info__title" x-text="review.title"> </p> <div class="rvx-space-y-space12"> <!-- feedback --> <p class="!rvx-text-[16px] rvx-leading-[32px] rvx-text-neutral-700 rvx-mb-space12 rvx-review-info__feedback" x-text="layoutView === 'list' ? review.feedback : layoutView === 'grid' ? truncateString(review.feedback, 184) : truncateString(review.feedback, 300)"></p> <!-- feedback images --> <template x-if="layoutView !== 'masonry' && review.attachments?.length"> <div class="rvx-flex rvx-gap-space16 rvx-mb-space12 rvx-flex-wrap rvx-review-info__images"> <template x-for="file in review.attachments"> <div> <img @click.stop="selectedReviewDetailsHandler(review, file)" x-show="getFileType(file).isImage" :src="file" alt="test" class="rvx-col-span-4 !rvx-rounded-md rvx-object-cover" :class="`${layoutView === 'grid' ? '!rvx-size-[48px]' : '!rvx-size-[80px]'}`" /> <video @click.stop="selectedReviewDetailsHandler(review, file)" x-show="getFileType(file).isVideo" width="80" height="80" class="rvx-col-span-4 !rvx-rounded-md rvx-object-cover" :class="`${layoutView === 'grid' ? '!rvx-size-[48px]' : '!rvx-size-[80px]'}`"> <source :src="file"> </video> </div> </template> </div> </template> <!-- owner replied --> <div x-show="review?.reply" class="rvx-mb-space20 rvx-review-owner-replay"> <div class="rvx-flex rvx-items-center rvx-gap-space5 rvx-mt-space8 rvx-mb-space8"> <span class="material-symbols-rounded rvx-text-[20px] rvx-review-owner-replay__icon"> reply </span> <div x-show="review?.shop_icon_url" class="rvx-flex rvx-justify-center rvx-items-center rvx-bg-white rvx-border-solid !rvx-border-[1px] !rvx-border-neutral-300 rvx-rounded-full rvx-size-[24px]"> <img :src="review.shop_icon_url" alt="store icon" width="16" height="16"> </div> <p class="!rvx-text-[16px] rvx-font-semibold rvx-text-neutral-700 rvx-leading-[22px] rvx-review-owner-replay__owner-name"> Shop owner <span class="rvx-leading-[22px] rvx-text-neutral-400 rvx-font-normal rvx-review-owner-replay__text"> replied </span> <span class="rvx-font-normal rvx-leading-[22px] rvx-ml-space5 rvx-review-owner-replay__date" x-text="review.replied_at"></span> </p> </div> <p class="!rvx-text-[14px] rvx-leading-[22px] rvx-review-owner-replay__feedback" x-text="truncateString(review?.reply, 300)"></p> </div> </div> </div> </div> <!-- Help info --> <div class="rvx-flex rvx-items-center rvx-gap-space8 rvx-font-nunito" :class="`${reviewSettingsData?.data?.setting?.review_settings.reviews.enable_likes_dislikes.enabled ? 'rvx-justify-between' : 'rvx-justify-end'}`"> <template x-if="reviewSettingsData?.data?.setting?.review_settings.reviews.enable_likes_dislikes.enabled"> <div x-data="reviewHelpInfoComponent()" class="rvx-flex rvx-items-center rvx-gap-space8 rvx-review-footer" style="padding-top:8px;padding-bottom:2px;"> <p class="!rvx-text-[14px] !rvx-text-neutral-600 rvx-review-footer__text"> Was this helpful</p> <template x-if="reviewSettingsData?.data?.setting?.review_settings.reviews.enable_likes_dislikes.options.allow_likes"> <p class="!rvx-text-[15px] rvx-gap-[3px] rvx-flex rvx-items-center !rvx-text-neutral-600 rvx-duration-150 rvx-review-footer__thumbs"> <svg @click="likeDislikeHandler({ uid: review.wp_unique_id, preference: 1, review: review })" class="rvx-cursor-pointer hover:rvx-bg-neutral-200 hover:rvx-rounded rvx-mb-[3px] rvx-review-footer__thumbs--like-icon " width="20" height="18" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_420_27618" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <rect y="0.948242" width="20" height="20" fill="#D9D9D9" /> </mask> <g mask="url(#mask0_420_27618)"> <path d="M17.5 7.9482C17.875 7.9482 18.2188 8.10098 18.5312 8.40654C18.8438 8.71209 19 9.05931 19 9.4482V10.6357C19 10.7468 18.9896 10.8475 18.9688 10.9378C18.9479 11.0281 18.9167 11.1218 18.875 11.219L16.3958 17.0315C16.2847 17.3093 16.1042 17.5315 15.8542 17.6982C15.6042 17.8649 15.3194 17.9482 15 17.9482H7C6.58333 17.9482 6.22917 17.8058 5.9375 17.5211C5.64583 17.2364 5.5 16.8788 5.5 16.4482V8.5732C5.5 8.36487 5.54167 8.16695 5.625 7.97945C5.70833 7.79195 5.81944 7.62876 5.95833 7.48987L10.1458 3.30237C10.3958 3.05237 10.7014 2.89265 11.0625 2.8232C11.4236 2.75376 11.7292 2.79542 11.9792 2.9482C12.2986 3.12876 12.5035 3.39265 12.5938 3.73987C12.684 4.08709 12.6944 4.42737 12.625 4.7607L12 7.9482H17.5ZM2.5 17.9482C2.09722 17.9482 1.74653 17.7989 1.44792 17.5003C1.14931 17.2017 1 16.851 1 16.4482V9.4482C1 9.04542 1.14931 8.69473 1.44792 8.39612C1.74653 8.09751 2.09722 7.9482 2.5 7.9482C2.90278 7.9482 3.25347 8.09751 3.55208 8.39612C3.85069 8.69473 4 9.04542 4 9.4482V16.4482C4 16.851 3.85069 17.2017 3.55208 17.5003C3.25347 17.7989 2.90278 17.9482 2.5 17.9482Z" :fill="review.preference?.preference === 1 ? '#757575' : '#E0E0E0'" /> </g> </svg> <span x-text="review.likes"></span> </p> </template> <template x-if="reviewSettingsData?.data?.setting?.review_settings.reviews.enable_likes_dislikes.options.allow_dislikes"> <div class="rvx-gap-[3px] rvx-flex rvx-items-center"> <p class="!rvx-text-[15px] rvx-gap-[3px] rvx-flex rvx-items-center !rvx-text-neutral-600 rvx-duration-150 rvx-review-footer__thumbs"> <svg @click="likeDislikeHandler({ uid: review.wp_unique_id, preference: 1, review: review })" class="rvx-cursor-pointer hover:rvx-bg-neutral-200 hover:rvx-rounded rvx-mb-[3px] rvx-review-footer__thumbs--like-icon " width="20" height="18" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_420_27618" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <rect y="0.948242" width="20" height="20" fill="#D9D9D9" /> </mask> <g mask="url(#mask0_420_27618)"> <path d="M17.5 7.9482C17.875 7.9482 18.2188 8.10098 18.5312 8.40654C18.8438 8.71209 19 9.05931 19 9.4482V10.6357C19 10.7468 18.9896 10.8475 18.9688 10.9378C18.9479 11.0281 18.9167 11.1218 18.875 11.219L16.3958 17.0315C16.2847 17.3093 16.1042 17.5315 15.8542 17.6982C15.6042 17.8649 15.3194 17.9482 15 17.9482H7C6.58333 17.9482 6.22917 17.8058 5.9375 17.5211C5.64583 17.2364 5.5 16.8788 5.5 16.4482V8.5732C5.5 8.36487 5.54167 8.16695 5.625 7.97945C5.70833 7.79195 5.81944 7.62876 5.95833 7.48987L10.1458 3.30237C10.3958 3.05237 10.7014 2.89265 11.0625 2.8232C11.4236 2.75376 11.7292 2.79542 11.9792 2.9482C12.2986 3.12876 12.5035 3.39265 12.5938 3.73987C12.684 4.08709 12.6944 4.42737 12.625 4.7607L12 7.9482H17.5ZM2.5 17.9482C2.09722 17.9482 1.74653 17.7989 1.44792 17.5003C1.14931 17.2017 1 16.851 1 16.4482V9.4482C1 9.04542 1.14931 8.69473 1.44792 8.39612C1.74653 8.09751 2.09722 7.9482 2.5 7.9482C2.90278 7.9482 3.25347 8.09751 3.55208 8.39612C3.85069 8.69473 4 9.04542 4 9.4482V16.4482C4 16.851 3.85069 17.2017 3.55208 17.5003C3.25347 17.7989 2.90278 17.9482 2.5 17.9482Z" :fill="review.preference?.preference === 1 ? '#757575' : '#E0E0E0'" /> </g> </svg> <span x-text="review.likes"></span> </p> <p class="!rvx-text-[14px] rvx-gap-[3px] rvx-flex rvx-items-center !rvx-text-neutral-600 rvx-review-footer__thumbs"> <svg @click="likeDislikeHandler({ uid: review.wp_unique_id, preference: 2, review: review })" class="rvx-cursor-pointer rvx-rotate-thumbs-down hover:rvx-bg-neutral-200 hover:rvx-rounded rvx-mt-[3px] rvx-review-footer__thumbs--dislike-icon" width="20" height="18" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_420_27618" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <rect y="0.948242" width="20" height="20" fill="#D9D9D9" /> </mask> <g mask="url(#mask0_420_27618)"> <path d="M17.5 7.9482C17.875 7.9482 18.2188 8.10098 18.5312 8.40654C18.8438 8.71209 19 9.05931 19 9.4482V10.6357C19 10.7468 18.9896 10.8475 18.9688 10.9378C18.9479 11.0281 18.9167 11.1218 18.875 11.219L16.3958 17.0315C16.2847 17.3093 16.1042 17.5315 15.8542 17.6982C15.6042 17.8649 15.3194 17.9482 15 17.9482H7C6.58333 17.9482 6.22917 17.8058 5.9375 17.5211C5.64583 17.2364 5.5 16.8788 5.5 16.4482V8.5732C5.5 8.36487 5.54167 8.16695 5.625 7.97945C5.70833 7.79195 5.81944 7.62876 5.95833 7.48987L10.1458 3.30237C10.3958 3.05237 10.7014 2.89265 11.0625 2.8232C11.4236 2.75376 11.7292 2.79542 11.9792 2.9482C12.2986 3.12876 12.5035 3.39265 12.5938 3.73987C12.684 4.08709 12.6944 4.42737 12.625 4.7607L12 7.9482H17.5ZM2.5 17.9482C2.09722 17.9482 1.74653 17.7989 1.44792 17.5003C1.14931 17.2017 1 16.851 1 16.4482V9.4482C1 9.04542 1.14931 8.69473 1.44792 8.39612C1.74653 8.09751 2.09722 7.9482 2.5 7.9482C2.90278 7.9482 3.25347 8.09751 3.55208 8.39612C3.85069 8.69473 4 9.04542 4 9.4482V16.4482C4 16.851 3.85069 17.2017 3.55208 17.5003C3.25347 17.7989 2.90278 17.9482 2.5 17.9482Z" :fill="review.preference?.preference === 2 ? '#757575' : '#E0E0E0'" /> </g> </svg> <span x-text="review.dislikes"></span> </p> </div> </template> </div> </template> <template x-if="reviewSettingsData?.data?.setting?.review_settings.reviews.allow_review_sharing"> <div x-data="{dropdownOpen: false, successCopy: false}" class="!rvx-leading-[0] rvx-relative"> <span @click="dropdownOpen=true" class="material-symbols-rounded rvx-cursor-pointer !rvx-text-[18px] !rvx-text-neutral-600 hover:rvx-text-neutral-800 hover:rvx-rounded">share</span> <div x-show="dropdownOpen" @click.away="dropdownOpen=false" x-transition:enter="rvx-ease-out rvx-duration-200" x-transition:enter-start="-rvx-translate-y-2" x-transition:enter-end="rvx-translate-y-0" class="rvx-absolute rvx-top-0 rvx-right-0 rvx-z-50 rvx-w-56 rvx-mt-space24" x-cloak> <div class="rvx-p-1 rvx-mt-1 rvx-text-sm rvx-bg-white rvx-border rvx-rounded-md rvx-shadow-md rvx-border-neutral-200/70 rvx-text-neutral-700"> <a :href="review.socials?.facebook" class="rvx-flex rvx-items-center rvx-gap-space5 !rvx-text-neutral-700 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M23 12C23 5.92485 18.0751 1 12 1C5.92485 1 1 5.92485 1 12C1 17.4904 5.02253 22.0411 10.2812 22.8663V15.1797H7.48827V12H10.2812V9.57654C10.2812 6.81967 11.9234 5.29687 14.4361 5.29687C15.6396 5.29687 16.8984 5.51171 16.8984 5.51171V8.21873H15.5113C14.1449 8.21873 13.7187 9.06666 13.7187 9.93656V12H16.7695L16.2818 15.1797H13.7187V22.8663C18.9774 22.0411 23 17.4904 23 12Z" fill="#424242"/> <path d="M16.2818 15.1797L16.7695 12H13.7187V9.93656C13.7187 9.06666 14.1449 8.21873 15.5113 8.21873H16.8984V5.51171C16.8984 5.51171 15.6396 5.29687 14.4361 5.29687C11.9234 5.29687 10.2812 6.81967 10.2812 9.57654V12H7.48827V15.1797H10.2812V22.8663C10.8413 22.9542 11.4153 23 12 23C12.5847 23 13.1587 22.9542 13.7187 22.8663V15.1797H16.2818Z" fill="white"/> </svg> <p> Facebook</p> </a> <a :href="review.socials?.twitter" class="rvx-flex rvx-items-center rvx-gap-space5 !rvx-text-neutral-700 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M18.3173 2.06018H21.6747L14.3414 10.4979L23 21.9397H16.1968L10.8956 15.004L4.7992 21.9397H1.44177L9.30522 12.9277L1 2.06018H7.97992L12.7952 8.42163L18.3173 2.06018ZM17.1245 19.9076H18.9799L6.96386 3.95978H4.93173L17.1245 19.9076Z" fill="#424242"/> </svg> <p> X (Twitter)</p> </a> <a :href="review.socials?.linkedin" class="rvx-flex rvx-items-center rvx-gap-space5 !rvx-text-neutral-700 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M19.745 19.6689H16.4853V14.6143C16.4853 13.409 16.4636 11.8574 14.7899 11.8574C13.0922 11.8574 12.8324 13.1706 12.8324 14.5266V19.6685H9.57269V9.2743H12.702V10.6948H12.7458C13.059 10.1646 13.5115 9.72844 14.0553 9.43276C14.599 9.13709 15.2135 8.99297 15.8334 9.01575C19.1373 9.01575 19.7464 11.1675 19.7464 13.9668L19.745 19.6689ZM5.89466 7.85348C5.52052 7.85354 5.15476 7.74376 4.84365 7.538C4.53253 7.33225 4.29003 7.03976 4.1468 6.69754C4.00356 6.35531 3.96602 5.97872 4.03895 5.61538C4.11187 5.25203 4.29198 4.91826 4.55648 4.65627C4.82099 4.39427 5.15802 4.21582 5.52495 4.14349C5.89188 4.07115 6.27223 4.10818 6.61791 4.24988C6.96359 4.39158 7.25907 4.6316 7.46698 4.93958C7.67489 5.24756 7.78591 5.60967 7.78597 5.98012C7.78602 6.22609 7.73713 6.46966 7.6421 6.69692C7.54708 6.92418 7.40779 7.13069 7.23217 7.30464C7.05654 7.4786 6.84802 7.6166 6.61853 7.71077C6.38904 7.80494 6.14307 7.85343 5.89466 7.85348ZM7.52451 19.6689H4.26141V9.2743H7.52451V19.6689ZM21.3701 1.11013H2.62341C2.19791 1.10537 1.78789 1.26808 1.48349 1.56249C1.17908 1.85689 1.00519 2.25892 1 2.68022V21.3193C1.00502 21.7408 1.1788 22.1431 1.4832 22.4379C1.78759 22.7326 2.1977 22.8956 2.62341 22.8911H21.3701C21.7967 22.8964 22.208 22.7339 22.5135 22.4391C22.8191 22.1444 22.9941 21.7417 23 21.3193V2.67888C22.9939 2.25674 22.8188 1.85426 22.5132 1.55985C22.2076 1.26545 21.7965 1.10321 21.3701 1.10878" fill="#424242"/> <path d="M19.745 19.6689H16.4853V14.6143C16.4853 13.409 16.4636 11.8574 14.7899 11.8574C13.0922 11.8574 12.8324 13.1706 12.8324 14.5266V19.6685H9.57269V9.2743H12.702V10.6948H12.7458C13.059 10.1646 13.5115 9.72844 14.0553 9.43276C14.599 9.13709 15.2135 8.99297 15.8334 9.01575C19.1373 9.01575 19.7464 11.1675 19.7464 13.9668L19.745 19.6689Z" fill="white"/> <path d="M5.89466 7.85348C5.52052 7.85354 5.15476 7.74376 4.84365 7.538C4.53253 7.33225 4.29003 7.03976 4.1468 6.69754C4.00356 6.35531 3.96602 5.97872 4.03895 5.61538C4.11187 5.25203 4.29198 4.91826 4.55648 4.65627C4.82099 4.39427 5.15802 4.21582 5.52495 4.14349C5.89188 4.07115 6.27223 4.10818 6.61791 4.24988C6.96359 4.39158 7.25907 4.6316 7.46698 4.93958C7.67489 5.24756 7.78591 5.60967 7.78597 5.98012C7.78602 6.22609 7.73713 6.46966 7.6421 6.69692C7.54708 6.92418 7.40779 7.13069 7.23217 7.30464C7.05654 7.4786 6.84802 7.6166 6.61853 7.71077C6.38904 7.80494 6.14307 7.85343 5.89466 7.85348Z" fill="white"/> <path d="M7.52451 19.6689H4.26141V9.2743H7.52451V19.6689Z" fill="white"/> </svg> <p> LinkedIn</p> </a> <a :href="review.socials?.reddit" class="rvx-flex rvx-items-center rvx-gap-space5 !rvx-text-neutral-700 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M12 1C5.92508 1 1 5.92508 1 12C1 15.0379 2.23148 17.7879 4.2218 19.7782L2.12664 21.8734C1.7107 22.2893 2.00547 23 2.59328 23H12C18.0749 23 23 18.0749 23 12C23 5.92508 18.0749 1 12 1Z" fill="#424242"/> <path d="M14.2378 6.18719C14.4286 6.99586 15.1548 7.59828 16.0219 7.59828C17.0342 7.59828 17.8549 6.77758 17.8549 5.76523C17.8549 4.75289 17.0342 3.93219 16.0219 3.93219C15.1367 3.93219 14.3985 4.55953 14.2266 5.39398C12.7442 5.55297 11.5866 6.81023 11.5866 8.33391C11.5866 8.33734 11.5866 8.33992 11.5866 8.34336C9.97445 8.41125 8.50234 8.87016 7.33359 9.59461C6.89961 9.25859 6.35477 9.05836 5.76352 9.05836C4.34469 9.05836 3.19484 10.2082 3.19484 11.627C3.19484 12.6566 3.79984 13.5434 4.67383 13.9534C4.75891 16.9354 8.0082 19.3339 12.0052 19.3339C16.0021 19.3339 19.2557 16.9328 19.3365 13.9482C20.2036 13.5357 20.8034 12.6514 20.8034 11.6279C20.8034 10.2091 19.6536 9.05922 18.2348 9.05922C17.6461 9.05922 17.1038 9.25773 16.6707 9.59117C15.4916 8.86156 14.0032 8.40266 12.3747 8.34164C12.3747 8.33906 12.3747 8.33734 12.3747 8.33476C12.3747 7.24336 13.1859 6.33758 14.2378 6.18891V6.18719ZM7.23047 13.2573C7.27344 12.3257 7.89219 11.6107 8.61148 11.6107C9.33078 11.6107 9.88078 12.3661 9.83781 13.2977C9.79484 14.2292 9.25773 14.5678 8.53758 14.5678C7.81742 14.5678 7.1875 14.1888 7.23047 13.2573ZM15.3997 11.6107C16.1198 11.6107 16.7386 12.3257 16.7807 13.2573C16.8237 14.1888 16.1929 14.5678 15.4736 14.5678C14.7543 14.5678 14.2163 14.2301 14.1734 13.2977C14.1304 12.3661 14.6795 11.6107 15.3997 11.6107ZM14.5437 15.4126C14.6787 15.4263 14.7646 15.5664 14.7122 15.6919C14.2696 16.7498 13.2246 17.4931 12.0052 17.4931C10.7857 17.4931 9.74156 16.7498 9.29812 15.6919C9.2457 15.5664 9.33164 15.4263 9.46656 15.4126C10.2572 15.3327 11.1123 15.2888 12.0052 15.2888C12.898 15.2888 13.7523 15.3327 14.5437 15.4126Z" fill="white"/> </svg> <p> Reddit</p> </a> <div x-data="copyClipboardComponent()" @click="copyClipboard(review.socials?.copylink)" class="rvx-flex rvx-items-center rvx-cursor-pointer !rvx-text-neutral-700 rvx-gap-space5 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M9 18C8.45 18 7.97917 17.8042 7.5875 17.4125C7.19583 17.0208 7 16.55 7 16V4C7 3.45 7.19583 2.97917 7.5875 2.5875C7.97917 2.19583 8.45 2 9 2H18C18.55 2 19.0208 2.19583 19.4125 2.5875C19.8042 2.97917 20 3.45 20 4V16C20 16.55 19.8042 17.0208 19.4125 17.4125C19.0208 17.8042 18.55 18 18 18H9ZM9 16H18V4H9V16ZM5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6H5V20H16V22H5Z" fill="#424242"/> </svg> <span> Copy Link</span> <div x-show="copySuccess" @click.away="copySuccess = false" class="rvx-fixed rvx-bottom-3 rvx-right-3 rvx-z-20 rvx-max-w-sm rvx-overflow-hidden rvx-bg-green-100 rvx-border rvx-border-green-300 rvx-rounded"> <p class="rvx-p-3 rvx-flex rvx-items-center rvx-justify-center rvx-text-green-600">Copied to Clipboard</p> </div> </div> </div> </div> </div> </template> </div> </div> </div> </template> </div> <div x-show="isLoadMoreReviews" class="rvx-my-space24" > <div :class="`${layoutView === 'masonry' && 'rvx-masonry-layout' } ${layoutView === 'grid' && 'rvx-grid rvx-grid-cols-[repeat(auto-fill,minmax(320px,1fr))] rvx-gap-space12'} ${layoutView === 'list' && 'rvx-space-y-space12'} rvx-review-wrapper`"> <template x-for="loader in 4"> <div class="rvx-flex rvx-animate-pulse rvx-space-x-4 rvx-bg-neutral-100 rvx-p-space16 rvx-rounded-md rvx-columns-box"> <div class="rvx-flex-1 rvx-space-y-6 rvx-py-1"> <div class="rvx-space-y-3"> <div class="rvx-grid rvx-grid-cols-8 rvx-items-center rvx-gap-space12"> <div class="rvx-col-span-2 rvx-size-10 rvx-rounded-full rvx-bg-gray-200"></div> <div class="rvx-col-span-6 rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> <div class="rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> <div class="rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> <div class="rvx-space-y-3"> <div class="rvx-grid rvx-grid-cols-3 rvx-gap-4"> <div class="rvx-col-span-2 rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> <div class="rvx-col-span-1 rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> <div class="rvx-h-2 rvx-rounded rvx-bg-gray-200"></div> </div> </div> </div> </template> </div></div> <div x-show="!isLoadMoreReviews && reviewsData?.data?.meta.next_cursor" class="rvx-grid rvx-place-content-center rvx-mt-space20"> <button class="rvx-border-neutral-600 rvx-text-neutral-800 hover:rvx-border-neutral-600 hover:rvx-text-white rvx-rounded-lg !rvx-border rvx-border-solid rvx-py-[9px] rvx-px-space16 rvx-leading-[22px] rvx-cursor-pointer rvx-font-nunito rvx-text-normal rvx-font-semibold focus:rvx-bg-transparent rvx-bg-transparent disabled:!rvx-cursor-not-allowed" @click="loadMoreReviewHandler" :loader="fetchReviewsIsLoading" :disabled="fetchReviewsIsLoading"> Load More Reviews </button> </div> <template x-if="showReviewDetailsModal"> <div x-data="reviewDetailsModal({ selectedReviewDetails })" x-show="showReviewDetailsModal" id="rvx-review-details" class="rvx-fixed rvx-top-0 rvx-left-0 rvx-z-[99] rvx-flex rvx-items-center rvx-justify-center rvx-w-screen rvx-h-screen" x-cloak> <div x-show="showReviewDetailsModal" x-transition:enter="rvx-ease-out rvx-duration-300" x-transition:enter-start="rvx-opacity-0" x-transition:enter-end="rvx-opacity-100" x-transition:leave="rvx-ease-in rvx-duration-300" x-transition:leave-start="rvx-opacity-100" x-transition:leave-end="rvx-opacity-0" @click="showReviewDetailsModal=false" class="rvx-absolute rvx-inset-0 rvx-w-full rvx-h-full rvx-bg-black rvx-bg-opacity-40"></div> <div x-show="showReviewDetailsModal" x-transition:enter="rvx-ease-out rvx-duration-300" x-transition:enter-start="rvx-opacity-0 rvx-translate-y-4 sm:rvx-translate-y-0 sm:rvx-scale-95" x-transition:enter-end="rvx-opacity-100 rvx-translate-y-0 sm:rvx-scale-100" x-transition:leave="rvx-ease-in rvx-duration-200" x-transition:leave-start="rvx-opacity-100 rvx-translate-y-0 sm:rvx-scale-100" x-transition:leave-end="rvx-opacity-0 rvx-translate-y-4 sm:rvx-translate-y-0 sm:rvx-scale-95" class="rvx-relative rvx-rounded-lg rvx-w-[360px] md:rvx-w-[980px] rvx-h-[557px] rvx-max-h-[557px] rvx-shadow-xl"> <div class="rvx-w-full rvx-h-full rvx-relative"> <div class="rvx-grid rvx-grid-cols-12 rvx-rounded-lg rvx-h-full"> <div class="rvx-col-span-12 md:rvx-col-span-5 rvx-bg-[#EFEFEF] rvx-grid rvx-place-items-center rvx-rounded-t-lg sm:rvx-rounded-t-none md:rvx-rounded-l-lg"> <template x-if="currentPreviewImage"> <span> <img x-show="currentPreviewImage && getFileType(currentPreviewImage).isImage" :src="currentPreviewImage" alt="test" class="rvx-w-full rvx-h-[150px] sm:rvx-h-auto rvx-object-cover " /> <video x-show="currentPreviewImage && getFileType(currentPreviewImage).isVideo" :key="currentPreviewImage" :src="currentPreviewImage" width="100%" height="200" controls class="rvx-h-[150px] sm:rvx-h-auto"> </video> </span> </template> <span x-show="!selectedReviewDetails?.attachments.length" class="material-symbols-rounded !rvx-text-[150px] rvx-text-neutral-700 rvx-pointer-events-none"> gallery_thumbnail</span> </div> <div class="rvx-col-span-12 md:rvx-col-span-7 rvx-flex rvx-flex-col rvx-bg-white rvx-px-space16 rvx-py-space8 sm:rvx-py-space24 rvx-relative md:rvx-rounded-r-lg"> <!-- Reviewer info --> <div class="sm:rvx-py-space12"> <div class="rvx-flex rvx-gap-space8 rvx-review-user"> <div x-show="reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <div x-data="avatarComponent({src: '', alt: selectedReviewDetails.reviewer_name})" x-show="!selectedReviewDetails.is_anonymous" class="rvx-grid rvx-place-content-center rvx-overflow-hidden rvx-size-[40px] sm:rvx-size-[56px] rvx-text-[32px] rvx-bg-white rvx-border rvx-border-solid rvx-border-neutral-400 rvx-rounded-full rvx-review-user__avatar"> <template x-if="showImage()"> <img @error="onError" :src="src" :alt="alt" class="rvx-review-user__avatar-img"> </template> <template x-if="!showImage()"> <div class="rvx-review-user__avatar-fallback rvx-flex rvx-justify-center rvx-items-center rvx-text-neutral rvx-font-nunito"> <span x-text="alt.charAt(0).toUpperCase()"></span> </div> </template> </div> <div x-show="selectedReviewDetails.is_anonymous" class="rvx-grid rvx-place-content-center rvx-overflow-hidden rvx-size-[40px] sm:rvx-size-[56px] rvx-text-[32px] rvx-bg-white rvx-border rvx-border-solid rvx-border-neutral-400 rvx-rounded-full rvx-review-user__avatar"> <svg class="rvx-review-user__avatar-img" xmlns="http://www.w3.org/2000/svg" width="36" height="36" viewBox="0 0 36 36"><path fill="currentColor" d="M30.61 24.52a17.16 17.16 0 0 0-25.22 0a1.5 1.5 0 0 0-.39 1v6A1.5 1.5 0 0 0 6.5 33h23a1.5 1.5 0 0 0 1.5-1.5v-6a1.5 1.5 0 0 0-.39-.98" class="clr-i-solid clr-i-solid-path-1"/><circle cx="18" cy="10" r="7" fill="currentColor" class="clr-i-solid clr-i-solid-path-2"/><path fill="none" d="M0 0h36v36H0z"/></svg> </div> </div> <div x-show="!reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <div class="rvx-grid rvx-place-content-center rvx-overflow-hidden rvx-size-[40px] rvx-bg-white rvx-review-user__avatar !rvx-border-[1px] !rvx-border-neutral-300 rvx-rounded-full rvx-border-solid"> <svg class="rvx-review-user__avatar-img" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 48 48"><path fill="#cfd8dc" d="M5 19h38v19H5z"/><path fill="#b0bec5" d="M5 38h38v4H5z"/><path fill="#455a64" d="M27 24h12v18H27z"/><path fill="#e3f2fd" d="M9 24h14v11H9z"/><path fill="#1e88e5" d="M10 25h12v9H10z"/><path fill="#90a4ae" d="M36.5 33.5c-.3 0-.5.2-.5.5v2c0 .3.2.5.5.5s.5-.2.5-.5v-2c0-.3-.2-.5-.5-.5"/><g fill="#558b2f"><circle cx="24" cy="19" r="3"/><circle cx="36" cy="19" r="3"/><circle cx="12" cy="19" r="3"/></g><path fill="#7cb342" d="M40 6H8c-1.1 0-2 .9-2 2v3h36V8c0-1.1-.9-2-2-2m-19 5h6v8h-6zm16 0h-5l1 8h6zm-26 0h5l-1 8H9z"/><g fill="#ffa000"><circle cx="30" cy="19" r="3"/><path d="M45 19c0 1.7-1.3 3-3 3s-3-1.3-3-3s1.3-3 3-3z"/><circle cx="18" cy="19" r="3"/><path d="M3 19c0 1.7 1.3 3 3 3s3-1.3 3-3s-1.3-3-3-3z"/></g><path fill="#ffc107" d="M32 11h-5v8h6zm10 0h-5l2 8h6zm-26 0h5v8h-6zM6 11h5l-2 8H3z"/></svg> </div> </div> <div> <div class="rvx-flex rvx-items-center rvx-gap-space12"> <div x-show="reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <p x-show="!selectedReviewDetails.is_anonymous" x-text="censorReviewerName({isCensor: reviewSettingsData?.data.setting?.review_settings?.reviews.censor_reviewer_name, str: selectedReviewDetails.reviewer_name})" class="!rvx-text-[16px] rvx-font-semibold rvx-leading-[32px] rvx-text-neutral-900 rvx-review-user__name"> </p> <p x-show="selectedReviewDetails.is_anonymous" class="!rvx-text-[20px] rvx-font-semibold rvx-leading-[32px] rvx-text-neutral-900 rvx-review-user__name"> Anonymous </p> </div> <div x-show="!reviewSettingsData?.data.setting?.review_settings?.reviews?.show_reviewer_name"> <p class="rvx-text-[20px] rvx-font-semibold rvx-leading-[32px] rvx-review-user__name"> Shopper </p> </div> <p x-show="reviewSettingsData?.data.setting?.review_settings.reviews.show_verified_badge && selectedReviewDetails?.is_verified" class="rvx-flex rvx-items-center rvx-text-success rvx-gap-space5 !rvx-text-[14px] rvx-review-user__name"> <span class="material-symbols-rounded rvx-text-[16px]">check_circle</span> Verified </p> <template x-if="reviewSettingsData?.data.setting.review_settings.reviews.show_reviewer_country && selectedReviewDetails?.reviewer_flag"> <div x-data="__rvxTooltipComponent__()" x-init="initial()" class="rvx-relative"> <div x-ref="tooltip" x-show="tooltipVisible" :class="{ 'rvx-top-[-15px] left-1/2 -rvx-translate-x-1/2 -rvx-mt-0.5 -rvx-translate-y-full' : tooltipPosition === 'top', 'rvx-top-1/2 -rvx-translate-y-1/2 -rvx-ml-0.5 rvx-left-0 -rvx-translate-x-full' : tooltipPosition === 'left', 'rvx-bottom-[-20px] -rvx-translate-x-1/2 -rvx-mb-0.5 rvx-translate-y-full' : tooltipPosition === 'bottom', 'rvx-top-1/2 -rvx-translate-y-1/2 -rvx-mr-0.5 rvx-right-0 rvx-translate-x-full' : tooltipPosition === 'right' }" class="rvx-absolute rvx-w-auto rvx-text-sm" x-cloak> <div x-show="tooltipVisible" x-transition class="rvx-relative rvx-px-2 rvx-py-1 rvx-text-white rvx-bg-black rvx-rounded rvx-bg-opacity-90"> <p x-text="selectedReviewDetails?.reviewer_country_short_name" class="rvx-flex-shrink-0 rvx-block rvx-text-xs rvx-whitespace-nowrap"></p> <div x-ref="tooltipArrow" x-show="tooltipArrow" :class="{ 'rvx-bottom-0 -rvx-translate-x-1/2 rvx-left-1/2 rvx-w-2.5 rvx-translate-y-full' : tooltipPosition == 'top', 'rvx-right-0 -rvx-translate-y-1/2 rvx-top-1/2 h-2.5 -rvx-mt-px rvx-translate-x-full' : tooltipPosition == 'left', 'rvx-top-0 -rvx-translate-x-1/2 rvx-left-1/2 rvx-w-2.5 -rvx-translate-y-full' : tooltipPosition == 'bottom', 'rvx-left-0 -rvx-translate-y-1/2 rvx-top-1/2 rvx-h-2.5 -rvx-mt-px -rvx-translate-x-full' : tooltipPosition == 'right' }" class="rvx-absolute rvx-inline-flex rvx-items-center rvx-justify-center rvx-overflow-hidden"> <div :class="{ 'rvx-origin-top-left -rvx-rotate-45' : tooltipPosition == 'top', 'rvx-origin-top-left rvx-rotate-45' : tooltipPosition == 'left', 'rvx-origin-bottom-left rvx-rotate-45' : tooltipPosition == 'bottom', 'rvx-origin-top-right -rvx-rotate-45' : tooltipPosition == 'right' }" class="rvx-w-1.5 rvx-h-1.5 rvx-transform rvx-bg-black rvx-bg-opacity-90"></div> </div> </div> </div> <div x-ref="content"> <img :src="selectedReviewDetails?.reviewer_flag" alt="flag" width="22" height="26"> </div> </div> </template> </div> <template x-if="Number(selectedReviewDetails.rating)"> <div x-data="{ reviewAverage: Number(selectedReviewDetails.rating), totalRating: 5 }" class="review rvx-flex rvx-gap-2 rvx-mb-2"> <template x-for="star in totalRating" :key="star"> <div> <!-- Full star --> <template x-if="isFullStar(star, reviewAverage)"> <svg class="rvx-reviewer__star-active" width="20px" height="20px" viewBox="0 0 24 24"> <path :fill="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Partial star --> <template x-if="isHalfStar(star, reviewAverage)"> <svg class="rvx-reviewer__star-half" width="20" height="20" viewBox="0 0 24 24"> <defs> <linearGradient :id="`grad-${star}`"> <!-- dynamic offset --> <stop :offset="`${Math.floor(((reviewAverage - (star-1)) * 100))}%`" :stop-color="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" /> <stop :offset="`${Math.floor(((reviewAverage - (star-1)) * 100))}%`" stop-color="grey" /> </linearGradient> </defs> <path :fill="`url(#grad-${star})`" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Empty star --> <template x-if="isFullEmptyStar(star, reviewAverage)"> <svg class="rvx-reviewer__star-inactive rvx-fill-neutral-600" fill="none" width="20px" height="20px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> </div> </template> </div> </template> </div> </div> <!-- Multi-Criteria --> <template x-if="reviewSettingsData?.data.setting?.review_settings.reviews.multicriteria.enable"> <div class="rvx-space-y-space12 rvx-gap-space16"> <template x-for="(rating, star) in createMultiCriteriaRatingObject({ criterias: reviewSettingsData?.data.setting.review_settings.reviews.multicriteria.criterias, criteriaStats: selectedReviewDetails.criterias, existingRating: Number(selectedReviewDetails.rating) } )" :key="rating.key"> <div class="rvx-grid rvx-grid-cols-12 rvx-gap-[26px]"> <div class="rvx-col-span-3 rvx-space-y-[20px]"> <p x-text="rating.name" class="rvx-font-semibold rvx-text-neutral-800 rvx-review-form__multicriteria--name"></p> </div> <div class="rvx-col-span-9 rvx-flex rvx-gap-space5 rvx-items-center"> <template x-for="star in 5" :key="star"> <div> <!-- Full star --> <template x-if="isFullStar(star, rating.rating)"> <svg class="rvx-review-details-modal__star-active" :fill="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Half star --> <template x-if="isHalfStar(star, rating.rating)"> <svg class="rvx-review-details-modal__star-active-half" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="24" height="24" viewBox="0 0 24 24"> <defs> <linearGradient id="grad"> <stop offset="50%" :stop-color="reviewSettingsData?.data?.setting?.widget_settings?.star_color_code" /> <stop offset="50%" stop-color="grey" /> </linearGradient> </defs> <path fill="url(#grad)" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> <!-- Empty star --> <template x-if="isFullEmptyStar(star, rating.rating)"> <svg class="rvx-review-details-modal__star-inactive" fill="none" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </template> </div> </template> </div> </div> </template> </div> </template> </div> <!-- Review info --> <div class="rvx-font-nunito rvx-h-[270px] rvx-overflow-y-auto"> <!-- Product Info --> <div class="rvx-flex rvx-justify-between rvx-items-center rvx-gap-space12 rvx-mb-space12"> <p class="!rvx-text-[20px] rvx-text-neutral-800 rvx-font-semibold rvx-leading-[32px] rvx-review-info__title" x-text="selectedReviewDetails.title"> </p> <p class="!rvx-text-[12px] rvx-text-neutral-600" x-text="selectedReviewDetails.created_at"> </p> </div> <!-- feedback --> <p class="!rvx-text-[16px] rvx-leading-[22px] rvx-text-neutral-700 rvx-review-info__feedback" x-text="selectedReviewDetails.feedback"> </p> <!-- feedback images --> <div x-show="selectedReviewDetails?.attachments?.length" class="rvx-flex rvx-gap-space12 rvx-mt-space24 rvx-mb-space16"> <template x-for="file in selectedReviewDetails?.attachments"> <div class="rvx-size-[80px]"> <img @click="previewImageHandler(file)" x-show="getFileType(file).isImage" :src="file" alt="test" class="!rvx-size-[80px] rvx-cursor-pointer rvx-object-cover !rvx-rounded-md" /> <video @click="previewImageHandler(file)" x-show="getFileType(file).isVideo" width="80" height="80" class="!rvx-size-[80px] rvx-cursor-pointer rvx-object-cover !rvx-rounded-md"> <source :src="file"> </video> </div> </template> </div> <!-- owner reply--> <div x-show="selectedReviewDetails?.reply" class="rvx-mb-space20 rvx-mt-space16 rvx-review-owner-replay"> <div class="rvx-flex rvx-gap-space5"> <span class="material-symbols-rounded rvx-text-[20px] rvx-review-owner-replay__icon"> reply </span> <p class="!rvx-text-[14px] rvx-font-semibold rvx-text-neutral-800 rvx-leading-[22px] rvx-review-owner-replay__owner-name"> Shop owner <span class="rvx-font-normal rvx-leading-[22px] rvx-review-owner-replay__text"> replied</span> <span class="rvx-font-normal rvx-leading-[22px] rvx-ml-space5 rvx-review-owner-replay__date" x-text="selectedReviewDetails.replied_at"></span> </p> </div> <p class="!rvx-text-[14px] rvx-leading-[22px] rvx-review-owner-replay__feedback" x-text="truncateString(selectedReviewDetails?.reply, 300)"></p> </div> </div> <!-- Help info --> <div class="rvx-font-nunito rvx-flex rvx-items-center rvx-gap-space8 rvx-absolute rvx-bottom-0 rvx-left-[20px] rvx-right-[20px]" :class="`${reviewSettingsData?.data?.setting?.review_settings.reviews.enable_likes_dislikes.enabled ? 'rvx-justify-between' : 'rvx-justify-end'}`"> <template x-if="reviewSettingsData?.data?.setting?.review_settings.reviews.enable_likes_dislikes.enabled"> <div x-data="reviewHelpInfoComponent()" class="rvx-flex rvx-justify-end rvx-gap-space8 rvx-items-center rvx-pr-space16 rvx-pb-space16 rvx-review-footer"> <p class="!rvx-text-[14px] !rvx-text-neutral-700 rvx-review-footer__text">Was this helpful</p> <!-- @click="storeFrontStore.likeDislikeHandler({ uid: review.wp_unique_id, preference: LIKE_DISLIKE_PREFERENCE.LIKES })"--> <p class="!rvx-text-[14px] rvx-gap-[3px] rvx-flex rvx-items-center !rvx-text-neutral-600 rvx-duration-150 rvx-review-footer__thumbs"> <svg @click="likeDislikeHandler({ uid: selectedReviewDetails.wp_unique_id, preference: 1, review: selectedReviewDetails })" class="rvx-cursor-pointer hover:rvx-bg-neutral-200 hover:rvx-rounded rvx-mb-[3px] rvx-review-footer__thumbs--like-icon " width="20" height="18" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_420_27618" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <rect y="0.948242" width="20" height="20" fill="#D9D9D9" /> </mask> <g mask="url(#mask0_420_27618)"> <path d="M17.5 7.9482C17.875 7.9482 18.2188 8.10098 18.5312 8.40654C18.8438 8.71209 19 9.05931 19 9.4482V10.6357C19 10.7468 18.9896 10.8475 18.9688 10.9378C18.9479 11.0281 18.9167 11.1218 18.875 11.219L16.3958 17.0315C16.2847 17.3093 16.1042 17.5315 15.8542 17.6982C15.6042 17.8649 15.3194 17.9482 15 17.9482H7C6.58333 17.9482 6.22917 17.8058 5.9375 17.5211C5.64583 17.2364 5.5 16.8788 5.5 16.4482V8.5732C5.5 8.36487 5.54167 8.16695 5.625 7.97945C5.70833 7.79195 5.81944 7.62876 5.95833 7.48987L10.1458 3.30237C10.3958 3.05237 10.7014 2.89265 11.0625 2.8232C11.4236 2.75376 11.7292 2.79542 11.9792 2.9482C12.2986 3.12876 12.5035 3.39265 12.5938 3.73987C12.684 4.08709 12.6944 4.42737 12.625 4.7607L12 7.9482H17.5ZM2.5 17.9482C2.09722 17.9482 1.74653 17.7989 1.44792 17.5003C1.14931 17.2017 1 16.851 1 16.4482V9.4482C1 9.04542 1.14931 8.69473 1.44792 8.39612C1.74653 8.09751 2.09722 7.9482 2.5 7.9482C2.90278 7.9482 3.25347 8.09751 3.55208 8.39612C3.85069 8.69473 4 9.04542 4 9.4482V16.4482C4 16.851 3.85069 17.2017 3.55208 17.5003C3.25347 17.7989 2.90278 17.9482 2.5 17.9482Z" :fill="selectedReviewDetails.preference?.preference === 1 ? '#757575' : '#E0E0E0'" /> </g> </svg> <span x-text="selectedReviewDetails.likes"></span> </p> <!-- @click="storeFrontStore.likeDislikeHandler({ uid: review.wp_unique_id, preference: LIKE_DISLIKE_PREFERENCE.DISLIKES })"--> <p class="!rvx-text-[14px] rvx-gap-[3px] rvx-flex rvx-items-center !rvx-text-neutral-600 rvx-review-footer__thumbs"> <svg @click="likeDislikeHandler({ uid: selectedReviewDetails.wp_unique_id, preference: 2, review: selectedReviewDetails })" class="rvx-cursor-pointer rvx-rotate-thumbs-down hover:rvx-bg-neutral-200 hover:rvx-rounded rvx-mt-[3px] rvx-review-footer__thumbs--dislike-icon" width="20" height="18" viewBox="0 0 20 21" fill="none" xmlns="http://www.w3.org/2000/svg"> <mask id="mask0_420_27618" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="0" width="20" height="21"> <rect y="0.948242" width="20" height="20" fill="#D9D9D9" /> </mask> <g mask="url(#mask0_420_27618)"> <path d="M17.5 7.9482C17.875 7.9482 18.2188 8.10098 18.5312 8.40654C18.8438 8.71209 19 9.05931 19 9.4482V10.6357C19 10.7468 18.9896 10.8475 18.9688 10.9378C18.9479 11.0281 18.9167 11.1218 18.875 11.219L16.3958 17.0315C16.2847 17.3093 16.1042 17.5315 15.8542 17.6982C15.6042 17.8649 15.3194 17.9482 15 17.9482H7C6.58333 17.9482 6.22917 17.8058 5.9375 17.5211C5.64583 17.2364 5.5 16.8788 5.5 16.4482V8.5732C5.5 8.36487 5.54167 8.16695 5.625 7.97945C5.70833 7.79195 5.81944 7.62876 5.95833 7.48987L10.1458 3.30237C10.3958 3.05237 10.7014 2.89265 11.0625 2.8232C11.4236 2.75376 11.7292 2.79542 11.9792 2.9482C12.2986 3.12876 12.5035 3.39265 12.5938 3.73987C12.684 4.08709 12.6944 4.42737 12.625 4.7607L12 7.9482H17.5ZM2.5 17.9482C2.09722 17.9482 1.74653 17.7989 1.44792 17.5003C1.14931 17.2017 1 16.851 1 16.4482V9.4482C1 9.04542 1.14931 8.69473 1.44792 8.39612C1.74653 8.09751 2.09722 7.9482 2.5 7.9482C2.90278 7.9482 3.25347 8.09751 3.55208 8.39612C3.85069 8.69473 4 9.04542 4 9.4482V16.4482C4 16.851 3.85069 17.2017 3.55208 17.5003C3.25347 17.7989 2.90278 17.9482 2.5 17.9482Z" :fill="selectedReviewDetails.preference?.preference === 2 ? '#757575' : '#E0E0E0'" /> </g> </svg> <span x-text="selectedReviewDetails.dislikes"></span> </p> </div> </template> <template x-if="reviewSettingsData?.data?.setting?.review_settings.reviews.allow_review_sharing"> <div x-data="{dropdownOpen: false}" class="rvx-relative"> <span @click="dropdownOpen=true" class="material-symbols-rounded rvx-cursor-pointer !rvx-text-[20px] !rvx-text-neutral-700 hover:rvx-bg-neutral-200 hover:rvx-rounded">share</span> <div x-show="dropdownOpen" @click.away="dropdownOpen=false" x-transition:enter="rvx-ease-out rvx-duration-200" x-transition:enter-start="-rvx-translate-y-2" x-transition:enter-end="rvx-translate-y-0" class="rvx-absolute rvx-top-0 rvx-z-50 rvx-w-56 rvx-mt-space16 -rvx-right-[50px]" x-cloak> <div class="rvx-p-1 rvx-mt-1 rvx-text-sm rvx-bg-white rvx-border rvx-rounded-md rvx-shadow-md rvx-border-neutral-200/70 rvx-text-neutral-700"> <a :href="selectedReviewDetails.socials.facebook" class="rvx-flex rvx-items-center rvx-gap-space5 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M23 12C23 5.92485 18.0751 1 12 1C5.92485 1 1 5.92485 1 12C1 17.4904 5.02253 22.0411 10.2812 22.8663V15.1797H7.48827V12H10.2812V9.57654C10.2812 6.81967 11.9234 5.29687 14.4361 5.29687C15.6396 5.29687 16.8984 5.51171 16.8984 5.51171V8.21873H15.5113C14.1449 8.21873 13.7187 9.06666 13.7187 9.93656V12H16.7695L16.2818 15.1797H13.7187V22.8663C18.9774 22.0411 23 17.4904 23 12Z" fill="#424242"/> <path d="M16.2818 15.1797L16.7695 12H13.7187V9.93656C13.7187 9.06666 14.1449 8.21873 15.5113 8.21873H16.8984V5.51171C16.8984 5.51171 15.6396 5.29687 14.4361 5.29687C11.9234 5.29687 10.2812 6.81967 10.2812 9.57654V12H7.48827V15.1797H10.2812V22.8663C10.8413 22.9542 11.4153 23 12 23C12.5847 23 13.1587 22.9542 13.7187 22.8663V15.1797H16.2818Z" fill="white"/> </svg> <p>Facebook</p> </a> <a :href="selectedReviewDetails.socials.twitter" class="rvx-flex rvx-items-center rvx-gap-space5 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M18.3173 2.06018H21.6747L14.3414 10.4979L23 21.9397H16.1968L10.8956 15.004L4.7992 21.9397H1.44177L9.30522 12.9277L1 2.06018H7.97992L12.7952 8.42163L18.3173 2.06018ZM17.1245 19.9076H18.9799L6.96386 3.95978H4.93173L17.1245 19.9076Z" fill="#424242"/> </svg> <p>X (Twitter)</p> </a> <a :href="selectedReviewDetails.socials.linkedin" class="rvx-flex rvx-items-center rvx-gap-space5 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M19.745 19.6689H16.4853V14.6143C16.4853 13.409 16.4636 11.8574 14.7899 11.8574C13.0922 11.8574 12.8324 13.1706 12.8324 14.5266V19.6685H9.57269V9.2743H12.702V10.6948H12.7458C13.059 10.1646 13.5115 9.72844 14.0553 9.43276C14.599 9.13709 15.2135 8.99297 15.8334 9.01575C19.1373 9.01575 19.7464 11.1675 19.7464 13.9668L19.745 19.6689ZM5.89466 7.85348C5.52052 7.85354 5.15476 7.74376 4.84365 7.538C4.53253 7.33225 4.29003 7.03976 4.1468 6.69754C4.00356 6.35531 3.96602 5.97872 4.03895 5.61538C4.11187 5.25203 4.29198 4.91826 4.55648 4.65627C4.82099 4.39427 5.15802 4.21582 5.52495 4.14349C5.89188 4.07115 6.27223 4.10818 6.61791 4.24988C6.96359 4.39158 7.25907 4.6316 7.46698 4.93958C7.67489 5.24756 7.78591 5.60967 7.78597 5.98012C7.78602 6.22609 7.73713 6.46966 7.6421 6.69692C7.54708 6.92418 7.40779 7.13069 7.23217 7.30464C7.05654 7.4786 6.84802 7.6166 6.61853 7.71077C6.38904 7.80494 6.14307 7.85343 5.89466 7.85348ZM7.52451 19.6689H4.26141V9.2743H7.52451V19.6689ZM21.3701 1.11013H2.62341C2.19791 1.10537 1.78789 1.26808 1.48349 1.56249C1.17908 1.85689 1.00519 2.25892 1 2.68022V21.3193C1.00502 21.7408 1.1788 22.1431 1.4832 22.4379C1.78759 22.7326 2.1977 22.8956 2.62341 22.8911H21.3701C21.7967 22.8964 22.208 22.7339 22.5135 22.4391C22.8191 22.1444 22.9941 21.7417 23 21.3193V2.67888C22.9939 2.25674 22.8188 1.85426 22.5132 1.55985C22.2076 1.26545 21.7965 1.10321 21.3701 1.10878" fill="#424242"/> <path d="M19.745 19.6689H16.4853V14.6143C16.4853 13.409 16.4636 11.8574 14.7899 11.8574C13.0922 11.8574 12.8324 13.1706 12.8324 14.5266V19.6685H9.57269V9.2743H12.702V10.6948H12.7458C13.059 10.1646 13.5115 9.72844 14.0553 9.43276C14.599 9.13709 15.2135 8.99297 15.8334 9.01575C19.1373 9.01575 19.7464 11.1675 19.7464 13.9668L19.745 19.6689Z" fill="white"/> <path d="M5.89466 7.85348C5.52052 7.85354 5.15476 7.74376 4.84365 7.538C4.53253 7.33225 4.29003 7.03976 4.1468 6.69754C4.00356 6.35531 3.96602 5.97872 4.03895 5.61538C4.11187 5.25203 4.29198 4.91826 4.55648 4.65627C4.82099 4.39427 5.15802 4.21582 5.52495 4.14349C5.89188 4.07115 6.27223 4.10818 6.61791 4.24988C6.96359 4.39158 7.25907 4.6316 7.46698 4.93958C7.67489 5.24756 7.78591 5.60967 7.78597 5.98012C7.78602 6.22609 7.73713 6.46966 7.6421 6.69692C7.54708 6.92418 7.40779 7.13069 7.23217 7.30464C7.05654 7.4786 6.84802 7.6166 6.61853 7.71077C6.38904 7.80494 6.14307 7.85343 5.89466 7.85348Z" fill="white"/> <path d="M7.52451 19.6689H4.26141V9.2743H7.52451V19.6689Z" fill="white"/> </svg> <p> LinkedIn</p> </a> <a :href="selectedReviewDetails.socials.reddit" class="rvx-flex rvx-items-center rvx-gap-space5 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M12 1C5.92508 1 1 5.92508 1 12C1 15.0379 2.23148 17.7879 4.2218 19.7782L2.12664 21.8734C1.7107 22.2893 2.00547 23 2.59328 23H12C18.0749 23 23 18.0749 23 12C23 5.92508 18.0749 1 12 1Z" fill="#424242"/> <path d="M14.2378 6.18719C14.4286 6.99586 15.1548 7.59828 16.0219 7.59828C17.0342 7.59828 17.8549 6.77758 17.8549 5.76523C17.8549 4.75289 17.0342 3.93219 16.0219 3.93219C15.1367 3.93219 14.3985 4.55953 14.2266 5.39398C12.7442 5.55297 11.5866 6.81023 11.5866 8.33391C11.5866 8.33734 11.5866 8.33992 11.5866 8.34336C9.97445 8.41125 8.50234 8.87016 7.33359 9.59461C6.89961 9.25859 6.35477 9.05836 5.76352 9.05836C4.34469 9.05836 3.19484 10.2082 3.19484 11.627C3.19484 12.6566 3.79984 13.5434 4.67383 13.9534C4.75891 16.9354 8.0082 19.3339 12.0052 19.3339C16.0021 19.3339 19.2557 16.9328 19.3365 13.9482C20.2036 13.5357 20.8034 12.6514 20.8034 11.6279C20.8034 10.2091 19.6536 9.05922 18.2348 9.05922C17.6461 9.05922 17.1038 9.25773 16.6707 9.59117C15.4916 8.86156 14.0032 8.40266 12.3747 8.34164C12.3747 8.33906 12.3747 8.33734 12.3747 8.33476C12.3747 7.24336 13.1859 6.33758 14.2378 6.18891V6.18719ZM7.23047 13.2573C7.27344 12.3257 7.89219 11.6107 8.61148 11.6107C9.33078 11.6107 9.88078 12.3661 9.83781 13.2977C9.79484 14.2292 9.25773 14.5678 8.53758 14.5678C7.81742 14.5678 7.1875 14.1888 7.23047 13.2573ZM15.3997 11.6107C16.1198 11.6107 16.7386 12.3257 16.7807 13.2573C16.8237 14.1888 16.1929 14.5678 15.4736 14.5678C14.7543 14.5678 14.2163 14.2301 14.1734 13.2977C14.1304 12.3661 14.6795 11.6107 15.3997 11.6107ZM14.5437 15.4126C14.6787 15.4263 14.7646 15.5664 14.7122 15.6919C14.2696 16.7498 13.2246 17.4931 12.0052 17.4931C10.7857 17.4931 9.74156 16.7498 9.29812 15.6919C9.2457 15.5664 9.33164 15.4263 9.46656 15.4126C10.2572 15.3327 11.1123 15.2888 12.0052 15.2888C12.898 15.2888 13.7523 15.3327 14.5437 15.4126Z" fill="white"/> </svg> <p>Reddit</p> </a> <a :href="selectedReviewDetails.socials.copylink" class="rvx-flex rvx-items-center rvx-gap-space5 rvx-px-space16 rvx-py-space8 hover:rvx-bg-[#EEF3FF] rvx-no-underline"> <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"> <path d="M9 18C8.45 18 7.97917 17.8042 7.5875 17.4125C7.19583 17.0208 7 16.55 7 16V4C7 3.45 7.19583 2.97917 7.5875 2.5875C7.97917 2.19583 8.45 2 9 2H18C18.55 2 19.0208 2.19583 19.4125 2.5875C19.8042 2.97917 20 3.45 20 4V16C20 16.55 19.8042 17.0208 19.4125 17.4125C19.0208 17.8042 18.55 18 18 18H9ZM9 16H18V4H9V16ZM5 22C4.45 22 3.97917 21.8042 3.5875 21.4125C3.19583 21.0208 3 20.55 3 20V6H5V20H16V22H5Z" fill="#424242"/> </svg> <p>Copy Link</p> </a> </div> </div> </div> </template> </div> </div> </div> <div @click="close()" class="rvx-absolute rvx-top-[10px] rvx-right-[-23px] rvx-size-space24 rvx-bg-neutral-300 rvx-rounded-sm rvx-cursor-pointer rvx-flex rvx-justify-center rvx-items-center hover:rvx-bg-neutral-200 rvx-transform"> <span class="material-symbols-rounded rvx-text-[20px] rvx-text-center rvx-w-full">close</span> </div> </div> </div> </div> </template> </div> </template> <template x-if="!haveReviews && !fetchReviewsIsLoading" x-cloak> <div class="rvx-bg-neutral-100 rvx-py-[64px] rvx-px-space24 rvx-rounded-md rvx-text-center"> <p class="!rvx-text-[18px] rvx-font-nunito rvx-font-semibold rvx-leading-[29px]"> There are no reviews yet. </p> <p class="!rvx-text-[18px] rvx-font-nunito rvx-font-semibold rvx-leading-[29px]">Be the first to review “<span x-text="reviewAggregationData?.data?.product.title"></span> ”</p> </div> </template> <!--x-init="init()" @keydown.escape.window="close" @click.away="close"--> <div x-data="__rvxReviewSuccessModalComponent__()" x-init="init()" x-cloak x-show="showReviewSuccessModal"> <!-- Modal Overlay --> <div x-show="showReviewSuccessModal" x-transition:enter="rvx-transition-opacity rvx-ease-out rvx-duration-300" x-transition:enter-start="rvx-opacity-0" x-transition:enter-end="rvx-opacity-100" x-transition:leave="rvx-transition-opacity rvx-ease-in rvx-duration-200" x-transition:leave-start="rvx-opacity-100" x-transition:leave-end="rvx-opacity-0" class="rvx-fixed rvx-inset-0 rvx-bg-black/25 rvx-z-10"></div> <!-- Modal Content --> <div x-show="showReviewSuccessModal" x-transition:enter="rvx-transition rvx-transform rvx-ease-out rvx-duration-300" x-transition:enter-start="rvx-scale-95 rvx-opacity-0" x-transition:enter-end="rvx-scale-100 rvx-opacity-100" x-transition:leave="rvx-transition rvx-transform rvx-ease-in rvx-duration-200" x-transition:leave-start="rvx-scale-100 rvx-opacity-100" x-transition:leave-end="rvx-scale-95 rvx-opacity-0" class="rvx-fixed rvx-inset-0 rvx-flex rvx-items-center rvx-justify-center rvx-z-20"> <div class="rvx-bg-white rvx-rounded-lg rvx-p-4 rvx-shadow-xl rvx-w-[548px] rvx-relative rvx-overflow-hidden"> <div class="rvx-bg-[#D9D9D9] rvx-overflow-hidden rvx-absolute rvx-top-0 rvx-left-0 rvx-w-full"> <div :style="{ width: progress '%' }" class="progress rvx-bg-primary-70 rvx-h-2"></div> </div> <div class="rvx-bg-white rvx-rounded-lg rvx-px-space12"> <div class="rvx-my-[80px] rvx-m-auto"> <svg class="rvx-text-center rvx-w-full" width="80" height="80" viewBox="0 0 18 18" fill="none" xmlns="http://www.w3.org/2000/svg"> <path d="M11.7419 9.05682H7.23595C7.1217 9.05686 7.0106 9.01934 6.91976 8.95003C6.82893 8.88072 6.76341 8.78347 6.73328 8.67326C6.70315 8.56304 6.7101 8.44599 6.75304 8.34011C6.79598 8.23423 6.87254 8.1454 6.97093 8.08732C8.93417 6.92725 9.95395 5.57402 10.0885 3.95033C10.1354 3.38683 10.6373 2.93673 11.207 2.94418C11.7883 2.95347 12.333 3.1865 12.7409 3.60041C13.1491 4.01471 13.3741 4.56333 13.3743 5.14517V5.32041C13.3743 6.74172 12.9533 7.64796 12.1766 8.82307C12.1291 8.89492 12.0645 8.95388 11.9887 8.99467C11.9128 9.03546 11.828 9.05682 11.7419 9.05682Z" fill="#FFB159"/> <path d="M17.2642 9.64713C17.2642 8.74706 16.5319 8.01477 15.6318 8.01477H7.236C7.14271 8.01477 7.05112 8.0398 6.97087 8.08729C6.38151 8.43576 5.78643 8.72262 5.30828 8.95318C5.1415 9.03357 4.98398 9.10953 4.84071 9.18115C4.75417 9.22442 4.6814 9.29093 4.63054 9.37324C4.57967 9.45554 4.55273 9.55038 4.55273 9.64713V16.3155C4.55273 16.4122 4.57967 16.5071 4.63054 16.5894C4.6814 16.6717 4.75417 16.7382 4.84071 16.7814C6.94574 17.8338 8.69554 17.9611 10.736 17.9611C11.052 17.9611 11.3752 17.958 11.7075 17.9549C12.075 17.9514 12.455 17.9478 12.8534 17.9478H14.5003C15.4004 17.9478 16.1327 17.2156 16.1327 16.3155C16.1327 16.0128 16.0499 15.7292 15.9058 15.4859C16.3748 15.1988 16.6884 14.6817 16.6884 14.0927C16.6884 13.79 16.6056 13.5064 16.4615 13.2632C16.9305 12.976 17.2441 12.4589 17.2441 11.8699C17.2441 11.4465 17.0821 11.0603 16.8168 10.77C17.1057 10.4656 17.2642 10.0686 17.2642 9.64713Z" fill="#FFC889"/> <path d="M16.1797 5.10413H15.0683C14.7806 5.10413 14.5473 4.87086 14.5473 4.58317C14.5473 4.29547 14.7806 4.0622 15.0683 4.0622H16.1797C16.4674 4.0622 16.7006 4.29547 16.7006 4.58317C16.7006 4.87086 16.4674 5.10413 16.1797 5.10413ZM8.39994 5.10413H7.28854C7.00085 5.10413 6.76758 4.87086 6.76758 4.58317C6.76758 4.29547 7.00085 4.0622 7.28854 4.0622H8.39994C8.68763 4.0622 8.9209 4.29547 8.9209 4.58317C8.9209 4.87086 8.6877 5.10413 8.39994 5.10413ZM10.0675 2.21675C9.88746 2.21675 9.71239 2.12333 9.61592 1.9562L9.06022 0.993699C8.91636 0.744554 9.00174 0.425903 9.25088 0.282073C9.50003 0.138209 9.81868 0.223592 9.96251 0.472737L10.5182 1.43524C10.6621 1.68439 10.5767 2.00304 10.3275 2.14687C10.2485 2.19266 10.1589 2.21676 10.0675 2.21675ZM13.4007 2.21675C13.3094 2.21677 13.2197 2.19266 13.1407 2.14687C12.8916 2.003 12.8062 1.68439 12.95 1.43524L13.5057 0.472737C13.6496 0.223592 13.9682 0.13814 14.2174 0.282073C14.4665 0.425938 14.5519 0.744554 14.408 0.993699L13.8523 1.9562C13.7559 2.12333 13.5808 2.21675 13.4007 2.21675Z" fill="#29CCB1"/> <path d="M3.36419 15.2108V17.9545H2.32227V15.2108C2.32227 14.9232 2.55567 14.6898 2.84323 14.6898C3.13078 14.6898 3.36419 14.9232 3.36419 15.2108Z" fill="#6694FF"/> <path d="M16.1797 5.10413H15.0683C14.7806 5.10413 14.5473 4.87086 14.5473 4.58317C14.5473 4.29547 14.7806 4.0622 15.0683 4.0622H16.1797C16.4674 4.0622 16.7006 4.29547 16.7006 4.58317C16.7006 4.87086 16.4674 5.10413 16.1797 5.10413ZM8.39994 5.10413H7.28854C7.00085 5.10413 6.76758 4.87086 6.76758 4.58317C6.76758 4.29547 7.00085 4.0622 7.28854 4.0622H8.39994C8.68763 4.0622 8.9209 4.29547 8.9209 4.58317C8.9209 4.87086 8.6877 5.10413 8.39994 5.10413ZM10.0675 2.21675C9.88746 2.21675 9.71239 2.12333 9.61592 1.9562L9.06022 0.993699C8.91636 0.744554 9.00174 0.425903 9.25088 0.282073C9.50003 0.138209 9.81868 0.223592 9.96251 0.472737L10.5182 1.43524C10.6621 1.68439 10.5767 2.00304 10.3275 2.14687C10.2485 2.19266 10.1589 2.21676 10.0675 2.21675ZM13.4007 2.21675C13.3094 2.21677 13.2197 2.19266 13.1407 2.14687C12.8916 2.003 12.8062 1.68439 12.95 1.43524L13.5057 0.472737C13.6496 0.223592 13.9682 0.13814 14.2174 0.282073C14.4665 0.425938 14.5519 0.744554 14.408 0.993699L13.8523 1.9562C13.7559 2.12333 13.5808 2.21675 13.4007 2.21675Z" fill="#4CAF50"/> <path d="M3.36419 15.2108V17.9545H2.32227V15.2108C2.32227 14.9232 2.55567 14.6898 2.84323 14.6898C3.13078 14.6898 3.36419 14.9232 3.36419 15.2108Z" fill="#6694FF"/> <path d="M5.06612 8.01477H0.620572C0.333016 8.01477 0.0996094 8.24818 0.0996094 8.53573V17.4268C0.0996094 17.7147 0.333016 17.9478 0.620572 17.9544H3.95472C4.59341 17.9478 5.14738 17.5793 5.41517 17.0437C5.52858 16.8177 5.58746 16.5683 5.58708 16.3154V8.53573C5.58708 8.24814 5.35367 8.01477 5.06612 8.01477Z" fill="#2265FF"/> <path d="M3.36419 15.1761V17.9546H2.32227V15.1761C2.32227 14.8886 2.55567 14.6552 2.84323 14.6552C3.13078 14.6552 3.36419 14.8886 3.36419 15.1761Z" fill="#6694FF"/> </svg> <!-- grade Very Good Total reviews Persons recommended this product filter_alt Filter 10 Filter by star Rating All Rating 4 Star & above 3 Star & above 2 Star & above 1 Star & above attach_file Attachments With Attachment Without Attachment Both Reset filters Apply swap_vert Sort By Rating Ascending Rating Descending Newest first Oldest first Write a Review photo_library Anonymous Shopper check_circle Verified reply Shop owner replied Was this helpful share Facebook X (Twitter) LinkedIn Reddit Copy Link Copied to Clipboard Load More Reviews gallery_thumbnail Anonymous Shopper check_circle Verified reply Shop owner replied Was this helpful share Facebook X (Twitter) LinkedIn Reddit Copy Link close There are no reviews yet. Be the first to review “ ” thumb_up--> <div class="rvx-space-y-space16 rvx-w-full rvx-text-center"> <h2 class="rvx-text-neutral-700"> Thanks for your review! </h2> <p class="rvx-text-neutral-700">Your feedback helps us improve our service.</p> </div> </div> </div> </div> </div> </div> <div x-show="!fetchReviewsIsLoading || !fetchReviewsSettingsIsLoading" x-cloak> <div id="rvx-review-form__wrapper" class="rvx-max-w-[548px] rvx-mx-auto rvx-rounded-md rvx-p-space24 rvx-bg-neutral-100 rvx-mt-space40"> <form class="rvx-mb-0 rvx-review-form" @submit.prevent="reviewSubmitHandler()"> <h2 class="!rvx-text-[24px] rvx-text-neutral-800 rvx-font-nunito rvx-font-semibold rvx-leading-[38px] !rvx-m-0 rvx-review-form__title !rvx-block" x-text="rvxAttributes.formLevelData?.write_a_review"> </h2> <div class="rvx-h-[1px] rvx-bg-neutral-300 rvx-mb-space16 rvx-mt-space8 rvx-review-form__line"></div> <div class="rvx-space-y-[20px] rvx-review-form__inner"> <div class="rvx-flex rvx-items-center rvx-gap-space16 rvx-review-form__product"> <div class=""> <img class="!rvx-size-[64px] rvx-object-cover rvx-rounded-md rvx-bg-white rvx-review-form__product--image" :src="`${reviewAggregationData?.data?.product?.image ?? 'https://cdn.reviewx.io/product_placeholder.jpg'}`" :alt="`${reviewAggregationData?.data?.product?.title ?? ''}`" /> </div> <h2 x-text="truncateString(reviewAggregationData?.data?.product.title ?? '', 40)" class="first:!rvx-block !rvx-block !rvx-text-[24px] rvx-font-nunito rvx-text-neutral-800 !rvx-m-0 rvx-font-semibold rvx-leading-[38px] rvx-review-form__product--title"> </h2> </div> <template x-if="reviewSettingsData?.data.setting?.review_settings.reviews.multicriteria.enable && multiCriteriaRatings.length"> <div class="rvx-space-y-[20px] rvx-review-form__multicriteria"> <template x-for="(rating, index) in multiCriteriaRatings" :key="rating.key"> <div class="rvx-grid rvx-grid-cols-6 rvx-gap-[26px]"> <div class="rvx-col-span-2 rvx-space-y-[20px]"> <p x-text="rating.name" class="rvx-font-semibold rvx-text-neutral-800 !rvx-font-nunito rvx-review-form__multicriteria--name rvx-text-[16px]"> </p> </div> <div class="rvx-col-span-4 rvx-flex rvx-gap-space5 rvx-items-center"> <div x-data="__rvxMultiCriteriaRatingComponent__(rating, index)" class="review rvx-flex rvx-gap-2 rvx-mb-2"> <svg @click="selectCriteriaStars(1)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"> <path :class="getCriteriaStarsClass(1)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectCriteriaStars(2)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"> <path :class="getCriteriaStarsClass(2)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectCriteriaStars(3)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"> <path :class="getCriteriaStarsClass(3)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectCriteriaStars(4)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"> <path :class="getCriteriaStarsClass(4)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectCriteriaStars(5)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24"> <path :class="getCriteriaStarsClass(5)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </div> </div> </div> </template> </div> </template> <template x-if="!reviewSettingsData?.data.setting?.review_settings.reviews.multicriteria.enable"> <div class="rvx-grid rvx-grid-cols-6 rvx-gap-[26px] rvx-review-form__rating"> <div class="rvx-col-span-2 rvx-space-y-[20px]"> <p class="rvx-font-semibold !rvx-text-neutral-800 rvx-review-form__rating--name !rvx-font-nunito rvx-text-[16px]" x-text="rvxAttributes.formLevelData?.text_rating_star_title"> </p> </div> <div class="rvx-col-span-4"> <div x-data="__rvxStarRatingComponent__()" class="review rvx-flex rvx-gap-2 rvx-mb-2"> <svg @click="selectStars(1)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path :class="getStarClass(1)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectStars(2)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path :class="getStarClass(2)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectStars(3)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path :class="getStarClass(3)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectStars(4)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path :class="getStarClass(4)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> <svg @click="selectStars(5)" class="rvx-cursor-pointer" width="24px" height="24px" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"> <path :class="getStarClass(5)" :fill="reviewSettingsData?.data?.setting?.widget_settings.star_color_code ?? 'none'" d="M22,10.1c0.1-0.5-0.3-1.1-0.8-1.1l-5.7-0.8L12.9,3c-0.1-0.2-0.2-0.3-0.4-0.4C12,2.3,11.4,2.5,11.1,3L8.6,8.2L2.9,9C2.6,9,2.4,9.1,2.3,9.3c-0.4,0.4-0.4,1,0,1.4l4.1,4l-1,5.7c0,0.2,0,0.4,0.1,0.6c0.3,0.5,0.9,0.7,1.4,0.4l5.1-2.7l5.1,2.7c0.1,0.1,0.3,0.1,0.5,0.1v0c0.1,0,0.1,0,0.2,0c0.5-0.1,0.9-0.6,0.8-1.2l-1-5.7l4.1-4C21.9,10.5,22,10.3,22,10.1z" /> </svg> </div> </div> </div> </template> <div class="rvx-grid rvx-grid-cols-6 rvx-gap-[26px] rvx-review-form__title" x-show="reviewSettingsData?.data?.setting?.review_settings.reviews.allow_review_titles"> <div class="rvx-col-span-2 rvx-space-y-[20px]"> <p class="rvx-text-[16px] !rvx-font-nunito rvx-font-semibold rvx-text-neutral-800 rvx-review-form__title--name" x-text="rvxAttributes.formLevelData?.text_review_title"> </p> </div> <div class="rvx-col-span-4"> <input x-model="newReview.title" @input="checkValidity('isValidReviewTitle')" :placeholder="rvxAttributes.formLevelData?.placeholder_review_title" id="review-title" class="rvx-review-form__title--input rvx-ui__input rvx-font-nunito rvx-w-full !rvx-py-[9px] !rvx-px-[12px] !rvx-leading-[0] !rvx-text-[16px] focus:!rvx-outline-none focus:!rvx-ring focus:!rvx-ring-primary-20 rvx-border rvx-border-solid rvx-rounded-md placeholder:rvx-text-neutral-400" :class="`${storeFrontValidation.isValidReviewTitle ? '!rvx-border-danger' : '!rvx-border-neutral-500'}`" /> <p x-show="storeFrontValidation.isValidReviewTitle" class="!rvx-text-[12px] rvx-text-danger rvx-mt-space5 !rvx-font-nunito">Please Insert Review Title</p> </div> </div> <div class="rvx-grid rvx-grid-cols-6 rvx-gap-[26px] rvx-review-form__description"> <div class="rvx-col-span-2 rvx-space-y-[20px]"> <p class="rvx-text-[16px] rvx-font-semibold rvx-text-neutral-800 rvx-review-form__description--title !rvx-font-nunito" x-text="rvxAttributes.formLevelData?.text_review_description"> </p> </div> <div class="rvx-col-span-4"> <textarea x-model="newReview.feedback" @input="checkValidity('isValidReviewFeedback')" :placeholder="rvxAttributes.formLevelData?.placeholder_review_description" class="rvx-review-form__feedback--textarea rvx-ui__textarea rvx-resize-none rvx-px-space12 rvx-py-[9px] rvx-rounded-md rvx-w-full focus:!rvx-outline-none rvx-font-nunito placeholder:rvx-text-neutral-400 focus:!rvx-ring focus:!rvx-ring-primary-20 rvx-text-[16px] rvx-h-[114px] !rvx-border !rvx-border-solid" :class="`${storeFrontValidation.isValidReviewFeedback ? '!rvx-border-danger' : '!rvx-border-neutral-500'}`" ></textarea> <p x-show="storeFrontValidation.isValidReviewFeedback" class="!rvx-text-[12px] rvx-text-danger rvx-mt-space5 !rvx-font-nunito">Please Insert Review Feedback</p> </div> </div> <template x-if="!isRvxUserLoggedIn"> <div class="rvx-grid rvx-grid-cols-6 rvx-gap-[26px] rvx-review-form__user"> <div class="rvx-col-span-2 rvx-space-y-[20px]"> <p class="rvx-font-semibold rvx-text-neutral-800 rvx-review-form__user--name !rvx-font-nunito" x-text="rvxAttributes.formLevelData?.text_full_name"> </p> </div> <div class="rvx-col-span-4"> <!-- --> <input x-model="newReview.reviewer_name" @input="checkValidity('isValidReviewerName')" :placeholder="rvxAttributes.formLevelData?.placeholder_full_name" id="full-name" class="rvx-review-form__user--input rvx-ui__input rvx-w-full !rvx-py-[9px] !rvx-px-[12px] !rvx-leading-[0] !rvx-text-[16px] focus:!rvx-outline-none focus:!rvx-ring focus:!rvx-ring-primary-20 rvx-border rvx-border-solid rvx-rounded-md rvx-font-nunito placeholder:rvx-text-neutral-400" :class="`${storeFrontValidation.isValidReviewerName ? '!rvx-border-danger' : '!rvx-border-neutral-500'}`" /> <p x-show="storeFrontValidation.isValidReviewerName" class="!rvx-text-[12px] rvx-text-danger rvx-mt-space5 !rvx-font-nunito">Please Insert Your Name</p> </div> </div> </template> <div x-show="!isRvxUserLoggedIn" class="rvx-grid rvx-grid-cols-6 rvx-gap-[26px] rvx-review-form__email"> <div class="rvx-col-span-2 rvx-space-y-[20px]"> <p class="rvx-font-semibold rvx-text-neutral-800 rvx-review-form__email--name !rvx-font-nunito" x-text="rvxAttributes.formLevelData?.text_email_name"> </p> </div> <div class="rvx-col-span-4"> <input x-model="newReview.reviewer_email" @input="checkValidity('isValidReviewerEmail')" :placeholder="rvxAttributes.formLevelData?.placeholder_email_name" id="email-address" type="email" class="rvx-review-form__email--input rvx-ui__input rvx-w-full !rvx-py-[9px] !rvx-px-[12px] !rvx-leading-[0] !rvx-text-[16px] focus:!rvx-outline-none focus:!rvx-ring focus:!rvx-ring-primary-20 !rvx-border-neutral-500 rvx-border !rvx-border-solid !rvx-rounded-md rvx-font-nunito placeholder:rvx-text-neutral-400 !rvx-shadow-none" :class="`${storeFrontValidation.isValidReviewerEmail ? '!rvx-border-danger' : '!rvx-border-neutral-500'}`" /> <p x-show="storeFrontValidation.isValidReviewerEmail" class="!rvx-text-[12px] rvx-text-danger rvx-mt-space5 !rvx-font-nunito">Please Insert Your Email</p> </div> </div> <template x-if="reviewSettingsData?.data?.setting?.review_settings?.reviews?.photo_reviews_allowed || reviewSettingsData?.data?.setting?.review_settings?.reviews?.video_reviews_allowed"> <div class="rvx-grid rvx-grid-cols-6 rvx-gap-[26px] rvx-review-form__attachment"> <div class="rvx-col-span-2 rvx-space-y-[20px]"> <p class="rvx-font-semibold rvx-text-neutral-800 rvx-review-form__attachment--name !rvx-font-nunito" x-text="rvxAttributes.formLevelData?.text_attachment_title"> </p> </div> <div class="rvx-col-span-4"> <div class="rvx-review-form__attachment--inner"> <div x-data="__rvxMediaUploadComponent__()" @notify-review-added.window="clearAll" class="rvx-flex rvx-flex-wrap rvx-gap-space16"> <label for="add-review-upload-media" class="rvx-block rvx-py-[11px] rvx-px-[9px] rvx-rounded-md rvx-cursor-pointer rvx-text-center rvx-box-border rvx-self-baseline rvx-review-form__attachment--upload rvx-border-2 rvx-border-solid rvx-border-transparent" :class="`${isDragging ? 'rvx-bg-neutral-100 !rvx-border-neutral-600 rvx-border-dashed' : 'rvx-bg-neutral-200'}`" @dragenter.prevent="dragEnterHandler" @dragover.prevent="dragEnterHandler" @dragleave.prevent="dragLeaveHandler" @drop.prevent="dropHandler"> <input type="file" @change="onUpload" :multiple="multiple" :accept="accept" :disabled="disabled" id="add-review-upload-media" class="!rvx-hidden"> <span class="material-symbols-rounded rvx-block rvx-mb-space5 rvx-review-form__attachment--upload--icon">backup</span> <span x-show="ready && (isPhotoReviewsAllowed || isVideoReviewsAllowed)" class="!rvx-text-[12px] rvx-block rvx-review-form__attachment--upload--text !rvx-font-nunito"> <span x-show="isPhotoReviewsAllowed && !isVideoReviewsAllowed"> Upload Photo </span> <span x-show="isVideoReviewsAllowed && !isPhotoReviewsAllowed"> Upload Video </span> <span x-show="isPhotoReviewsAllowed && isVideoReviewsAllowed"> Upload Photo / Video </span> </span> <span class="!rvx-text-[12px] !rvx-font-nunito rvx-block rvx-review-form__attachment--upload--count"> <span x-text="files.urls.length"></span>/<span x-text="maxFileCount"></span> </span> </label> <p x-show="maxFileCountError" class="rvx-text-[12px] rvx-text-danger !rvx-font-nunito" x-text="maxFileCountError"></p> <p x-show="maxFileSizeError" class="rvx-text-[12px] rvx-text-danger !rvx-font-nunito" x-text="maxFileSizeError"></p> <template x-for="(file, index) in files.urls"> <div class="rvx-relative"> <div x-show="file.type === 'image'"> <img class="!rvx-size-[80px] rvx-rounded-md rvx-object-cover rvx-object-top" :src="file.path ?? ''" alt="uploaded images"/> </div> <div x-show="file.type === 'video'"> <video :src="file.path" class="!rvx-size-[80px] rvx-rounded-md rvx-object-cover rvx-object-top"></video> <!-- Thanks for your review! Your feedback helps us improve our service. Please Insert Review Title Please Insert Review Feedback Please Insert Your Name Please Insert Your Email backup Upload Photo Upload Video Upload Photo / Video / delete Yes No Failed reCAPTCHA validation. Failed to Submit Review. Before Submit Review Please Accept Consent. Submit Review
Messy Play & Sensory Play

Messy Play & Sensory Play

  • Go Dough Playdough Mix
    $27.19 $45.14
  • Reversible Kids Sun Hats
    $31.36 $48.29
  • Busy Crawler Pack
    $12.77 $25.16
  • Kids Swim Pack
    $18.74 $26.24
  • Zippered Wet Bags
    $19.11 $25.03
  • Kids Swim Caps
    $22.06 $28.24
  • Reusable Water Balloons
    $25.59 $34.8
  • Little Explorer Pack
    $10.79 $17.26
  • Drawstring Wet Bags
    $29.63 $45.93
  • Kids Summer Accessories Pack
    $11.38 $17.75
  • Fleece Lined Pants
    $27.5 $47.03
  • Muddy Kids Pack
    $10.84 $21.46
  • Long Sleeve Bibs
    $24.76 $31.45

© 2026 - DRING-VOYANT.FR