@salla.sa/twilight-components 2.14.352 → 2.14.354

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (325) hide show
  1. package/dist/cjs/bell-ring-BfKPinNo.js +13 -0
  2. package/dist/cjs/{interfaces-CX9-6aLf.js → camera-DytepEoK.js} +0 -11
  3. package/dist/cjs/cancel-De6vslRA.js +13 -0
  4. package/dist/cjs/cart-s-x1Fshk.js +13 -0
  5. package/dist/cjs/check-circle2-BDvlT4_n.js +13 -0
  6. package/dist/cjs/{check-CLRvuniI.js → check-x3w3-gpj.js} +2 -2
  7. package/dist/cjs/{filepond-XtsZ6xtH.js → filepond-CuKErtOy.js} +1 -1
  8. package/dist/cjs/{filepond-plugin-file-poster-Bj84Ypvg.js → filepond-plugin-file-poster-d-8BSuST.js} +1 -1
  9. package/dist/cjs/{filepond-plugin-file-validate-size-aYfb4yYH.js → filepond-plugin-file-validate-size-zgI_JcqY.js} +1 -1
  10. package/dist/cjs/{filepond-plugin-file-validate-type-CJsd6rXl.js → filepond-plugin-file-validate-type-Cy8IgG2P.js} +1 -1
  11. package/dist/cjs/{filepond-plugin-image-edit-DRlBSg36.js → filepond-plugin-image-edit-9ZAUzCvh.js} +1 -1
  12. package/dist/cjs/{filepond-plugin-image-exif-orientation-SY8c6DzI.js → filepond-plugin-image-exif-orientation-DzNe_tY2.js} +1 -1
  13. package/dist/cjs/{filepond-plugin-image-preview-iqhJmUmU.js → filepond-plugin-image-preview-Cfna6xTB.js} +1 -1
  14. package/dist/{esm/gift-C0JNGIpa.js → cjs/gift-CJ-3Yw_x.js} +4 -2
  15. package/dist/cjs/image-BoZ6Hums.js +13 -0
  16. package/dist/cjs/{index-Z-cyrNSM.js → index-Ce40E8tZ.js} +136 -12
  17. package/dist/cjs/{index-C7-280f4.js → index-ff-xJfhj.js} +1 -1
  18. package/dist/cjs/interfaces-CRqrf5RX.js +15 -0
  19. package/dist/cjs/keyboard_arrow_down-DHJ3FFZq.js +13 -0
  20. package/dist/cjs/keyboard_arrow_right-BayM_Il2.js +21 -0
  21. package/dist/cjs/loader.cjs.js +2 -2
  22. package/dist/cjs/minus-CCryh1qf.js +21 -0
  23. package/dist/cjs/salla-accordion-body_3.cjs.entry.js +775 -0
  24. package/dist/cjs/salla-accordion_6.cjs.entry.js +768 -0
  25. package/dist/cjs/salla-add-product-button_4.cjs.entry.js +2389 -0
  26. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-alert_2.cjs.entry.js +194 -0
  28. package/dist/cjs/salla-app-install-alert.cjs.entry.js +8 -3
  29. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-booking-field_7.cjs.entry.js +1565 -0
  31. package/dist/cjs/{salla-cart-item-offers.cjs.entry.js → salla-cart-item-offers_2.cjs.entry.js} +104 -5
  32. package/dist/cjs/salla-comment-form_8.cjs.entry.js +1661 -0
  33. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-contacts.cjs.entry.js +3 -3
  35. package/dist/cjs/salla-count-down_2.cjs.entry.js +302 -0
  36. package/dist/cjs/salla-custom-fields.cjs.entry.js +4 -3
  37. package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-filters.cjs.entry.js +1 -1
  39. package/dist/cjs/salla-gifting.cjs.entry.js +488 -0
  40. package/dist/cjs/salla-hook.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +91 -0
  42. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  43. package/dist/cjs/salla-list-tile.cjs.entry.js +34 -0
  44. package/dist/cjs/salla-localization-modal.cjs.entry.js +137 -0
  45. package/dist/cjs/salla-login-modal.cjs.entry.js +320 -0
  46. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  47. package/dist/cjs/salla-loyalty-program.cjs.entry.js +3 -3
  48. package/dist/cjs/salla-loyalty.cjs.entry.js +211 -0
  49. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +40 -0
  50. package/dist/cjs/salla-menu.cjs.entry.js +139 -0
  51. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  52. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +220 -0
  53. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +598 -0
  54. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +69 -0
  55. package/dist/cjs/salla-notification-item.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  57. package/dist/cjs/salla-offer-modal.cjs.entry.js +206 -0
  58. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  60. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
  62. package/dist/cjs/salla-order-summary.cjs.entry.js +3 -3
  63. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  64. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  66. package/dist/cjs/salla-placeholder.cjs.entry.js +51 -0
  67. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-product-size-guide.cjs.entry.js +66 -0
  69. package/dist/cjs/salla-products-list.cjs.entry.js +762 -0
  70. package/dist/cjs/salla-products-slider.cjs.entry.js +115 -0
  71. package/dist/cjs/salla-progress-bar.cjs.entry.js +73 -0
  72. package/dist/cjs/salla-quick-order.cjs.entry.js +239 -0
  73. package/dist/cjs/salla-rating-modal.cjs.entry.js +453 -0
  74. package/dist/cjs/salla-scopes.cjs.entry.js +180 -0
  75. package/dist/cjs/salla-search.cjs.entry.js +153 -0
  76. package/dist/cjs/salla-skeleton.cjs.entry.js +36 -0
  77. package/dist/cjs/salla-slider.cjs.entry.js +10389 -0
  78. package/dist/cjs/salla-social-share.cjs.entry.js +165 -0
  79. package/dist/cjs/salla-social.cjs.entry.js +3 -3
  80. package/dist/cjs/salla-tab-content_3.cjs.entry.js +157 -0
  81. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  82. package/dist/cjs/salla-tooltip.cjs.entry.js +1 -1
  83. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  84. package/dist/cjs/salla-user-menu.cjs.entry.js +275 -0
  85. package/dist/cjs/salla-user-profile.cjs.entry.js +145 -0
  86. package/dist/cjs/salla-user-settings.cjs.entry.js +88 -0
  87. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  88. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  89. package/dist/cjs/search-c7Aa7lM9.js +13 -0
  90. package/dist/cjs/{special-discount-OVG_9Kf9.js → special-discount-DC2oXurL.js} +0 -8
  91. package/dist/cjs/star-DGcH7Yso.js +13 -0
  92. package/dist/cjs/star2-R146a27p.js +13 -0
  93. package/dist/cjs/twilight.cjs.js +2 -2
  94. package/dist/cjs/{vanilla-picker-Dq7F5bE1.js → vanilla-picker-zQsXQIff.js} +1 -1
  95. package/dist/cjs/{whatsapp2-D7Sbg8Ey.js → whatsapp2-BdMd5Gx1.js} +2 -2
  96. package/dist/collection/collection-manifest.json +55 -1
  97. package/dist/collection/components/salla-add-product-button/salla-add-product-button.js +18 -6
  98. package/dist/collection/components/salla-app-install-alert/salla-app-install-alert.js +7 -2
  99. package/dist/collection/components/salla-color-picker/salla-color-picker.js +39 -8
  100. package/dist/collection/components/salla-maintenance-alert/salla-maintenance-alert.js +4 -2
  101. package/dist/collection/components/salla-product-options/salla-product-options.js +36 -3
  102. package/dist/collection/components/salla-products-list/salla-products-list.js +17 -11
  103. package/dist/components/index.js +2 -2
  104. package/dist/components/salla-add-product-button2.js +18 -6
  105. package/dist/components/salla-app-install-alert.js +7 -2
  106. package/dist/components/salla-color-picker2.js +38 -7
  107. package/dist/components/salla-maintenance-alert.js +4 -2
  108. package/dist/components/salla-product-options2.js +19 -2
  109. package/dist/components/salla-products-list2.js +17 -11
  110. package/dist/esm/bell-ring-D3mWkc-3.js +11 -0
  111. package/dist/esm/{interfaces-CBT_Nxny.js → camera-C6jIkM-X.js} +1 -12
  112. package/dist/esm/cancel-BsLF_HK7.js +11 -0
  113. package/dist/esm/cart-DY4LZmNP.js +11 -0
  114. package/dist/esm/{check-uTyAzPSy.js → check-BsXh13x8.js} +2 -2
  115. package/dist/esm/check-circle2-BV4kqbdL.js +11 -0
  116. package/dist/esm/{filepond-Dg4ZKM-u.js → filepond-DEzyRrdH.js} +1 -1
  117. package/dist/esm/{filepond-plugin-file-poster-BUIjdsnA.js → filepond-plugin-file-poster-DyLcCcHM.js} +1 -1
  118. package/dist/esm/{filepond-plugin-file-validate-size-DgZMMqmi.js → filepond-plugin-file-validate-size-Cxp5Yzea.js} +1 -1
  119. package/dist/esm/{filepond-plugin-file-validate-type-DA9tDSFr.js → filepond-plugin-file-validate-type-D2qNOQP4.js} +1 -1
  120. package/dist/esm/{filepond-plugin-image-edit-dotdnN4Z.js → filepond-plugin-image-edit-DndTlA7m.js} +1 -1
  121. package/dist/esm/{filepond-plugin-image-exif-orientation-oSI8aLU-.js → filepond-plugin-image-exif-orientation-CiT1CQoK.js} +1 -1
  122. package/dist/esm/{filepond-plugin-image-preview-DEefQK61.js → filepond-plugin-image-preview-DBG7keFZ.js} +1 -1
  123. package/dist/{cjs/gift-BPDUPIY_.js → esm/gift-BChI23pG.js} +2 -4
  124. package/dist/esm/image-C-tzSDxw.js +11 -0
  125. package/dist/esm/{index-D2-TtAhI.js → index-B74h9G6a.js} +137 -13
  126. package/dist/esm/{index-B7E8Tmgi.js → index-BLw7mdtM.js} +1 -1
  127. package/dist/esm/interfaces-OF8QcbMM.js +15 -0
  128. package/dist/esm/keyboard_arrow_down-DCZbpt2a.js +11 -0
  129. package/dist/esm/keyboard_arrow_right-Vqpj4CWE.js +18 -0
  130. package/dist/esm/loader.js +3 -3
  131. package/dist/esm/minus-DfeagqF1.js +18 -0
  132. package/dist/esm/salla-accordion-body_3.entry.js +771 -0
  133. package/dist/esm/salla-accordion_6.entry.js +761 -0
  134. package/dist/esm/salla-add-product-button_4.entry.js +2384 -0
  135. package/dist/esm/salla-advertisement.entry.js +1 -1
  136. package/dist/esm/salla-alert_2.entry.js +191 -0
  137. package/dist/esm/salla-app-install-alert.entry.js +8 -3
  138. package/dist/esm/salla-apps-icons.entry.js +1 -1
  139. package/dist/esm/salla-booking-field_7.entry.js +1539 -0
  140. package/dist/esm/{salla-cart-item-offers.entry.js → salla-cart-item-offers_2.entry.js} +104 -6
  141. package/dist/esm/salla-comment-form_8.entry.js +1652 -0
  142. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  143. package/dist/esm/salla-contacts.entry.js +3 -3
  144. package/dist/esm/salla-count-down_2.entry.js +299 -0
  145. package/dist/esm/salla-custom-fields.entry.js +3 -2
  146. package/dist/esm/salla-filters-widget.entry.js +1 -1
  147. package/dist/esm/salla-filters.entry.js +1 -1
  148. package/dist/esm/salla-gifting.entry.js +486 -0
  149. package/dist/esm/salla-hook.entry.js +1 -1
  150. package/dist/esm/salla-infinite-scroll.entry.js +89 -0
  151. package/dist/esm/salla-installment.entry.js +1 -1
  152. package/dist/esm/salla-list-tile.entry.js +32 -0
  153. package/dist/esm/salla-localization-modal.entry.js +135 -0
  154. package/dist/esm/salla-login-modal.entry.js +318 -0
  155. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  156. package/dist/esm/salla-loyalty-program.entry.js +3 -3
  157. package/dist/esm/salla-loyalty.entry.js +209 -0
  158. package/dist/esm/salla-maintenance-alert.entry.js +38 -0
  159. package/dist/esm/salla-menu.entry.js +137 -0
  160. package/dist/esm/salla-metadata.entry.js +1 -1
  161. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +217 -0
  162. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +595 -0
  163. package/dist/esm/salla-multiple-bundle-product.entry.js +67 -0
  164. package/dist/esm/salla-notification-item.entry.js +1 -1
  165. package/dist/esm/salla-notifications.entry.js +1 -1
  166. package/dist/esm/salla-offer-modal.entry.js +204 -0
  167. package/dist/esm/salla-offer.entry.js +1 -1
  168. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  169. package/dist/esm/salla-order-details-options.entry.js +1 -1
  170. package/dist/esm/salla-order-details.entry.js +1 -1
  171. package/dist/esm/salla-order-summary.entry.js +3 -3
  172. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  173. package/dist/esm/salla-orders.entry.js +1 -1
  174. package/dist/esm/salla-payments.entry.js +1 -1
  175. package/dist/esm/salla-placeholder.entry.js +49 -0
  176. package/dist/esm/salla-price-range.entry.js +1 -1
  177. package/dist/esm/salla-product-size-guide.entry.js +64 -0
  178. package/dist/esm/salla-products-list.entry.js +760 -0
  179. package/dist/esm/salla-products-slider.entry.js +113 -0
  180. package/dist/esm/salla-progress-bar.entry.js +71 -0
  181. package/dist/esm/salla-quick-order.entry.js +237 -0
  182. package/dist/esm/salla-rating-modal.entry.js +451 -0
  183. package/dist/esm/salla-scopes.entry.js +178 -0
  184. package/dist/esm/salla-search.entry.js +151 -0
  185. package/dist/esm/salla-skeleton.entry.js +34 -0
  186. package/dist/esm/salla-slider.entry.js +10387 -0
  187. package/dist/esm/salla-social-share.entry.js +163 -0
  188. package/dist/esm/salla-social.entry.js +2 -2
  189. package/dist/esm/salla-tab-content_3.entry.js +153 -0
  190. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  191. package/dist/esm/salla-tooltip.entry.js +1 -1
  192. package/dist/esm/salla-trust-badges.entry.js +1 -1
  193. package/dist/esm/salla-user-menu.entry.js +273 -0
  194. package/dist/esm/salla-user-profile.entry.js +143 -0
  195. package/dist/esm/salla-user-settings.entry.js +86 -0
  196. package/dist/esm/salla-verify.entry.js +1 -1
  197. package/dist/esm/salla-wallet.entry.js +1 -1
  198. package/dist/esm/search-BscTeWDc.js +11 -0
  199. package/dist/esm/{special-discount-yRO-ZESF.js → special-discount-Ctkfc4K-.js} +1 -8
  200. package/dist/esm/star-ZT7ehBBk.js +11 -0
  201. package/dist/esm/star2-D4oPi1Ov.js +11 -0
  202. package/dist/esm/twilight.js +3 -3
  203. package/dist/esm/{vanilla-picker-DkUGzUrx.js → vanilla-picker-CtwkXTap.js} +1 -1
  204. package/dist/esm/{whatsapp2-DWksgowB.js → whatsapp2-CgR-T_ZS.js} +2 -2
  205. package/dist/twilight/{p-7b3ca138.entry.js → p-0134b4fd.entry.js} +1 -1
  206. package/dist/twilight/{p-0effc34b.entry.js → p-01daaaa6.entry.js} +1 -1
  207. package/dist/twilight/p-07da7390.entry.js +4 -0
  208. package/dist/twilight/{p-6ce3f119.entry.js → p-08badc32.entry.js} +1 -1
  209. package/dist/twilight/{p-4a594c06.entry.js → p-0aa5a12a.entry.js} +1 -1
  210. package/dist/twilight/{p-e73c28a8.entry.js → p-10dcd981.entry.js} +1 -1
  211. package/dist/twilight/{p-81df7a2e.entry.js → p-212a0710.entry.js} +1 -1
  212. package/dist/twilight/p-229275db.entry.js +4 -0
  213. package/dist/twilight/{p-fea62668.entry.js → p-232185ec.entry.js} +1 -1
  214. package/dist/twilight/{p-e5c01983.entry.js → p-2a927eac.entry.js} +1 -1
  215. package/dist/twilight/p-2d880232.entry.js +4 -0
  216. package/dist/twilight/p-2de9df64.entry.js +4 -0
  217. package/dist/twilight/p-309a0ba4.entry.js +4 -0
  218. package/dist/twilight/{p-6d886b96.entry.js → p-32732ca7.entry.js} +1 -1
  219. package/dist/twilight/{p-9d35196f.entry.js → p-32ca34ec.entry.js} +1 -1
  220. package/dist/twilight/{p-2aa0a4e2.entry.js → p-33093880.entry.js} +1 -1
  221. package/dist/twilight/p-3cffa4c9.entry.js +4 -0
  222. package/dist/twilight/p-3d0bb451.entry.js +4 -0
  223. package/dist/twilight/p-3e0d814c.entry.js +4 -0
  224. package/dist/twilight/p-4036d5dc.entry.js +4 -0
  225. package/dist/twilight/p-40fe4b01.entry.js +4 -0
  226. package/dist/twilight/p-47ac0ca5.entry.js +4 -0
  227. package/dist/twilight/{p-b9d0212c.entry.js → p-4cd9da44.entry.js} +1 -1
  228. package/dist/twilight/p-5c9281d3.entry.js +4 -0
  229. package/dist/twilight/p-5d044466.entry.js +4 -0
  230. package/dist/twilight/p-5d21334a.entry.js +4 -0
  231. package/dist/twilight/{p-e26cc25b.entry.js → p-654429df.entry.js} +1 -1
  232. package/dist/twilight/p-6b8453be.entry.js +4 -0
  233. package/dist/twilight/p-6be7bbb0.entry.js +4 -0
  234. package/dist/twilight/{p-67c327a8.entry.js → p-6c8f5c94.entry.js} +1 -1
  235. package/dist/twilight/{p-9b8f5399.entry.js → p-6fa02770.entry.js} +1 -1
  236. package/dist/twilight/p-7040ea33.entry.js +4 -0
  237. package/dist/twilight/p-8c189d76.entry.js +4 -0
  238. package/dist/twilight/p-8f1f052c.entry.js +4 -0
  239. package/dist/twilight/{p-6b0a03f6.entry.js → p-9051a540.entry.js} +1 -1
  240. package/dist/twilight/p-9f1c561f.entry.js +4 -0
  241. package/dist/twilight/{p-B0ba6Gec.js → p-B69XOH6h.js} +2 -2
  242. package/dist/twilight/{p-D2-TtAhI.js → p-B74h9G6a.js} +2 -2
  243. package/dist/twilight/{p-C0JNGIpa.js → p-BChI23pG.js} +1 -1
  244. package/dist/twilight/{p-DhcC83-2.js → p-BCxm-ISm.js} +1 -1
  245. package/dist/twilight/{p-Cmkcwiop.js → p-BPqZ249Z.js} +1 -1
  246. package/dist/twilight/p-BV4kqbdL.js +4 -0
  247. package/dist/twilight/p-BsLF_HK7.js +4 -0
  248. package/dist/twilight/{p-uTyAzPSy.js → p-BsXh13x8.js} +1 -1
  249. package/dist/twilight/p-BscTeWDc.js +4 -0
  250. package/dist/twilight/p-C-tzSDxw.js +4 -0
  251. package/dist/twilight/p-C6jIkM-X.js +4 -0
  252. package/dist/twilight/p-CO-PeZ27.js +4 -0
  253. package/dist/twilight/{p-DPqkW1aD.js → p-CQq81yb5.js} +2 -2
  254. package/dist/twilight/{p-DWksgowB.js → p-CgR-T_ZS.js} +1 -1
  255. package/dist/twilight/p-Ctkfc4K-.js +4 -0
  256. package/dist/twilight/p-D3mWkc-3.js +4 -0
  257. package/dist/twilight/p-D4oPi1Ov.js +4 -0
  258. package/dist/twilight/p-DCZbpt2a.js +4 -0
  259. package/dist/twilight/p-DY4LZmNP.js +4 -0
  260. package/dist/twilight/p-DfeagqF1.js +4 -0
  261. package/dist/twilight/{p-DJ557xys.js → p-DpsbV3x1.js} +1 -1
  262. package/dist/twilight/p-OF8QcbMM.js +4 -0
  263. package/dist/twilight/p-Vqpj4CWE.js +4 -0
  264. package/dist/twilight/p-ZT7ehBBk.js +4 -0
  265. package/dist/twilight/{p-q-O0srMP.js → p-_-aXm0Wb.js} +1 -1
  266. package/dist/twilight/p-a100bd38.entry.js +4 -0
  267. package/dist/twilight/{p-cf66ab4d.entry.js → p-a2756650.entry.js} +1 -1
  268. package/dist/twilight/{p-b1af2aca.entry.js → p-aab45a16.entry.js} +1 -1
  269. package/dist/twilight/p-aae761ff.entry.js +4 -0
  270. package/dist/twilight/p-afd61e47.entry.js +4 -0
  271. package/dist/twilight/p-b1fc6dfc.entry.js +4 -0
  272. package/dist/twilight/p-b206a0a1.entry.js +4 -0
  273. package/dist/twilight/p-b2332516.entry.js +4 -0
  274. package/dist/twilight/{p-6c2807c8.entry.js → p-b588ef46.entry.js} +1 -1
  275. package/dist/twilight/p-b71fc1b5.entry.js +4 -0
  276. package/dist/twilight/{p-_JhF_Kvb.js → p-bVqtOl1F.js} +1 -1
  277. package/dist/twilight/{p-a858523c.entry.js → p-bf65b263.entry.js} +1 -1
  278. package/dist/twilight/{p-d4faa0f6.entry.js → p-c56a47b0.entry.js} +1 -1
  279. package/dist/twilight/p-c73189e3.entry.js +4 -0
  280. package/dist/twilight/p-d1203242.entry.js +4 -0
  281. package/dist/twilight/p-d4edfed4.entry.js +4 -0
  282. package/dist/twilight/{p-f6ffc708.entry.js → p-d86ce978.entry.js} +1 -1
  283. package/dist/twilight/{p-8e7fa4a9.entry.js → p-d9e7973d.entry.js} +1 -1
  284. package/dist/twilight/p-e3e33238.entry.js +4 -0
  285. package/dist/twilight/p-e6bb7362.entry.js +4 -0
  286. package/dist/twilight/{p-30403778.entry.js → p-e7813c80.entry.js} +1 -1
  287. package/dist/twilight/p-ec2fd37e.entry.js +4 -0
  288. package/dist/twilight/{p-ed60a726.entry.js → p-ec77c523.entry.js} +1 -1
  289. package/dist/twilight/{p-b208650b.entry.js → p-efc18ce6.entry.js} +1 -1
  290. package/dist/twilight/p-f4039c40.entry.js +4 -0
  291. package/dist/twilight/p-f47b130c.entry.js +4 -0
  292. package/dist/twilight/{p-db526796.entry.js → p-f57ca123.entry.js} +1 -1
  293. package/dist/twilight/{p-933881d3.entry.js → p-f5ad6572.entry.js} +1 -1
  294. package/dist/twilight/p-fc65084f.entry.js +4 -0
  295. package/dist/twilight/p-fd81a311.entry.js +4 -0
  296. package/dist/twilight/{p-9fa5ffcf.entry.js → p-fe983809.entry.js} +1 -1
  297. package/dist/twilight/{p-Czq4p9Qp.js → p-i5J7XGS6.js} +1 -1
  298. package/dist/twilight/{p-C2bMx7q5.js → p-shFpk0H3.js} +1 -1
  299. package/dist/twilight/twilight.esm.js +1 -1
  300. package/dist/types/components/salla-add-product-button/salla-add-product-button.d.ts +5 -0
  301. package/dist/types/components/salla-app-install-alert/salla-app-install-alert.d.ts +3 -1
  302. package/dist/types/components/salla-color-picker/salla-color-picker.d.ts +10 -0
  303. package/dist/types/components/salla-product-options/salla-product-options.d.ts +8 -1
  304. package/dist/types/components/salla-products-list/salla-products-list.d.ts +2 -0
  305. package/dist/types/components.d.ts +4 -0
  306. package/package.json +5 -5
  307. package/dist/cjs/salla-accordion_62.cjs.entry.js +0 -22420
  308. package/dist/cjs/salla-review-card.cjs.entry.js +0 -183
  309. package/dist/cjs/salla-reviews-page.cjs.entry.js +0 -695
  310. package/dist/cjs/salla-reviews.cjs.entry.js +0 -106
  311. package/dist/esm/salla-accordion_62.entry.js +0 -22339
  312. package/dist/esm/salla-review-card.entry.js +0 -181
  313. package/dist/esm/salla-reviews-page.entry.js +0 -693
  314. package/dist/esm/salla-reviews.entry.js +0 -104
  315. package/dist/twilight/p-01bccbf2.entry.js +0 -4
  316. package/dist/twilight/p-22d83528.entry.js +0 -4
  317. package/dist/twilight/p-3a74b551.entry.js +0 -4
  318. package/dist/twilight/p-4e416704.entry.js +0 -4
  319. package/dist/twilight/p-5dbf4cec.entry.js +0 -4
  320. package/dist/twilight/p-CBT_Nxny.js +0 -4
  321. package/dist/twilight/p-Dz7o69vX.js +0 -4
  322. package/dist/twilight/p-a42d626d.entry.js +0 -4
  323. package/dist/twilight/p-yRO-ZESF.js +0 -4
  324. package/dist/cjs/{twitter-pOrUNjXi.js → facebook-DbXua6B9.js} +2 -2
  325. package/dist/esm/{twitter-Dz7o69vX.js → facebook-CO-PeZ27.js} +2 -2
@@ -40,12 +40,19 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
40
40
  this.productType = 'product';
41
41
  this.selectedOptions = [];
42
42
  this.buyNowText = salla.lang.get('pages.products.buy_now');
43
+ /** Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed) */
44
+ this.isDesktopViewport = typeof window !== 'undefined' ? window.matchMedia('(min-width: 768px)').matches : true;
45
+ this.viewportMediaQuery = null;
46
+ this.onViewportChange = (e) => {
47
+ this.isDesktopViewport = e.matches;
48
+ this.btn?.setText((e.matches && !!this.passedLabel) ? this.passedLabel : this.getLabel());
49
+ };
43
50
  salla.lang.onLoaded(() => {
44
51
  this.buyNowText = salla.lang.get('pages.products.buy_now');
45
52
  });
46
53
  }
47
54
  getLabel() {
48
- if (this.productStatus === 'sale' && this.supportStickyBar && window.innerWidth <= 768 && this.showQuickBuy && this.isApplePayActive) {
55
+ if (this.productStatus === 'sale' && this.supportStickyBar && !this.isDesktopViewport && this.showQuickBuy && this.isApplePayActive) {
49
56
  return PendingOrdersIcon;
50
57
  }
51
58
  if (this.hasPreOrder) {
@@ -138,7 +145,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
138
145
  getQuickBuyBtnAttributes() {
139
146
  return {
140
147
  ...this.getBtnAttributes(),
141
- type: this.supportStickyBar && window.innerWidth <= 768 ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'
148
+ type: this.supportStickyBar && !this.isDesktopViewport ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'
142
149
  };
143
150
  }
144
151
  miniCheckoutWidget() {
@@ -161,11 +168,12 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
161
168
  && salla.config.get('store.settings.payments')?.includes('apple_pay')
162
169
  && salla.config.get('store.settings.is_salla_gateway', false);
163
170
  this.passedLabel = this.host.innerHTML.replace('<!---->', '').trim();
164
- if (!!this.passedLabel && window.innerWidth >= 768) {
171
+ if (!!this.passedLabel && this.isDesktopViewport) {
165
172
  return this.btn?.setText(this.passedLabel);
166
173
  }
167
174
  if (this.host.getAttribute('type') === 'submit' && this.supportStickyBar) {
168
- window.addEventListener('resize', () => this.btn?.setText((window.innerWidth >= 768 && !!this.passedLabel) ? this.passedLabel : this.getLabel()));
175
+ this.viewportMediaQuery = window.matchMedia('(min-width: 768px)');
176
+ this.viewportMediaQuery.addEventListener('change', this.onViewportChange);
169
177
  }
170
178
  });
171
179
  }
@@ -217,7 +225,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
217
225
  }
218
226
  componentDidRender() {
219
227
  //if label not passed, get label
220
- if (!!this.passedLabel && (!this.supportStickyBar || window.innerWidth >= 768)) {
228
+ if (!!this.passedLabel && (!this.supportStickyBar || this.isDesktopViewport)) {
221
229
  // if passed label, set it
222
230
  this.btn?.setText(this.passedLabel);
223
231
  return;
@@ -225,6 +233,9 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
225
233
  this.btn?.setText(this.getLabel());
226
234
  salla.lang.onLoaded(() => this.btn?.setText(this.getLabel()));
227
235
  }
236
+ disconnectedCallback() {
237
+ this.viewportMediaQuery?.removeEventListener('change', this.onViewportChange);
238
+ }
228
239
  get host() { return this; }
229
240
  static get style() { return sallaAddProductButtonCss; }
230
241
  }, [4, "salla-add-product-button", {
@@ -244,7 +255,8 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
244
255
  "selectedOptions": [32],
245
256
  "showQuickBuy": [32],
246
257
  "isApplePayActive": [32],
247
- "buyNowText": [32]
258
+ "buyNowText": [32],
259
+ "isDesktopViewport": [32]
248
260
  }]);
249
261
  function defineCustomElement() {
250
262
  if (typeof customElements === "undefined") {
@@ -30,12 +30,17 @@ const SallaAppInstallAlert$1 = /*@__PURE__*/ proxyCustomElement(class SallaAppIn
30
30
  }
31
31
  /**
32
32
  * Check if the website opens from mobile or tablet devices only (android/ios).
33
+ * Uses matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed).
34
+ * Guards against SSR/non-browser contexts (window, navigator, document).
33
35
  *
34
- * @param {number} screen the width of the biggest screen to be checked
36
+ * @param {number} screen the width of the biggest screen to be checked (default 1024)
35
37
  * @returns {boolean} true if it is mobile or tablet else false
36
38
  */
37
39
  isMobileOrTabletDevice(screen = 1024) {
38
- const screenWidth = window.innerWidth <= screen;
40
+ if (typeof window === 'undefined' || typeof navigator === 'undefined' || typeof document === 'undefined') {
41
+ return false;
42
+ }
43
+ const screenWidth = window.matchMedia(`(max-width: ${screen}px)`).matches;
39
44
  const userAgentCheck = /Macintosh|Android|iPhone|iPad|iPod/i.test(navigator.userAgent);
40
45
  const hasTouch = 'ontouchstart' in window ||
41
46
  'ontouchend' in document ||
@@ -43,6 +43,10 @@ const SallaColorPicker = /*@__PURE__*/ proxyCustomElement(class SallaColorPicker
43
43
  * Whether to enable adjusting the alpha channel.
44
44
  */
45
45
  this.enableAlpha = false;
46
+ this.updateViewportCache = () => {
47
+ this.cachedViewportWidth = this.getViewportWidthFromBreakpoints();
48
+ };
49
+ this.cachedViewportWidth = 0; // Will be populated in componentDidLoad via requestAnimationFrame
46
50
  }
47
51
  colorChangeHandler(color) {
48
52
  if (this.colorInput)
@@ -60,7 +64,10 @@ const SallaColorPicker = /*@__PURE__*/ proxyCustomElement(class SallaColorPicker
60
64
  this.submitted.emit(color);
61
65
  }
62
66
  popupOpenedHandler(color) {
63
- this.setPopInPosition();
67
+ // Double rAF: defer setPopInPosition (getBoundingClientRect) until after paint to avoid forced reflow
68
+ requestAnimationFrame(() => {
69
+ requestAnimationFrame(() => this.setPopInPosition());
70
+ });
64
71
  this.popupOpened.emit(color);
65
72
  }
66
73
  popupClosedHandler(color) {
@@ -133,26 +140,47 @@ const SallaColorPicker = /*@__PURE__*/ proxyCustomElement(class SallaColorPicker
133
140
  this.picker = null;
134
141
  this.pickerReady = null;
135
142
  }
143
+ disconnectedCallback() {
144
+ window.removeEventListener('resize', this.updateViewportCache);
145
+ }
136
146
  componentWillLoad() {
137
147
  salla.onReady(() => {
138
148
  this.color = this.color ? this.color : salla.config.get('theme.color.primary', '#5dd5c4');
139
149
  });
140
150
  }
151
+ /**
152
+ * Returns viewport width from matchMedia breakpoints (no layout read).
153
+ * Must match updateViewportCache breakpoints for consistency.
154
+ */
155
+ getViewportWidthFromBreakpoints() {
156
+ if (typeof window === 'undefined')
157
+ return 1024;
158
+ if (window.matchMedia('(min-width: 1200px)').matches)
159
+ return 1200;
160
+ if (window.matchMedia('(min-width: 992px)').matches)
161
+ return 992;
162
+ if (window.matchMedia('(min-width: 768px)').matches)
163
+ return 768;
164
+ return 375;
165
+ }
141
166
  setPopInPosition() {
167
+ // Use cached viewport width – reading innerWidth at popup open causes forced reflow.
168
+ // Fallback: matchMedia-based value when cache is 0 (e.g. SSR before hydration). Same breakpoints as updateViewportCache.
169
+ const viewportWidth = this.cachedViewportWidth || this.getViewportWidthFromBreakpoints();
142
170
  const popup = this.host.querySelector('.picker_wrapper');
143
171
  const widgetEl = this.host.querySelector('.s-color-picker-widget');
144
172
  if (!popup || !widgetEl)
145
173
  return;
146
174
  const widgetPosition = widgetEl.getBoundingClientRect();
147
- const widgetToWindowEq = window.innerWidth / 2 - widgetPosition.width / 2;
175
+ const widgetToWindowEq = viewportWidth / 2 - widgetPosition.width / 2;
148
176
  const widgetInLeft = widgetToWindowEq > widgetPosition.x;
149
177
  const widgetInRight = widgetToWindowEq < widgetPosition.x;
150
178
  const widgetInCenter = widgetToWindowEq === widgetPosition.x;
151
- const isMobile = window.innerWidth < 768;
179
+ const isMobile = !window.matchMedia('(min-width: 768px)').matches;
152
180
  if (isMobile && widgetInLeft) {
153
181
  popup.style.left = '0';
154
182
  }
155
- if (isMobile && (widgetInRight)) {
183
+ if (isMobile && widgetInRight) {
156
184
  popup.style.left = 'auto';
157
185
  }
158
186
  if (!isMobile || (isMobile && ((!widgetInRight && !widgetInLeft) || widgetInCenter))) {
@@ -160,7 +188,7 @@ const SallaColorPicker = /*@__PURE__*/ proxyCustomElement(class SallaColorPicker
160
188
  }
161
189
  }
162
190
  initColorPicker() {
163
- this.pickerReady = import('./vanilla-picker.js').then(function (n) { return n.v; }).then((mod) => {
191
+ this.pickerReady = import('./vanilla-picker.js').then(function (n) { return n.v; }).then(mod => {
164
192
  const Picker = mod.default;
165
193
  const picker = new Picker({
166
194
  parent: this.host,
@@ -180,14 +208,17 @@ const SallaColorPicker = /*@__PURE__*/ proxyCustomElement(class SallaColorPicker
180
208
  });
181
209
  }
182
210
  render() {
183
- return (h(Host, { key: 'f6a001611bf20e8264346028c848490cf94c686a', class: "s-color-picker-main" }, h("slot", { key: '79648d165d81f200e064c8ef56a138f6b66757ed', name: "widget" }, h("div", { key: '95e7a8b7a92f5bb8f6f05b8cd39e6c91710e52a2', class: "s-color-picker-widget" }, h("div", { key: '24813d1de9a5834cfd37edf7affd4be94608f96c', class: "s-color-picker-widget-canvas", ref: dv => this.canvas = dv }), h("span", { key: '5f29f537140bc4b74431fc33229563cb1b7ce231', innerHTML: ArrowDown }))), h("input", { key: '188a9d7233388fca9a25cd5d319c0973448b07bc', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => this.colorInput = color })));
211
+ return (h(Host, { key: 'dc90f101197031b0ec17939dc940b527cbb42764', class: "s-color-picker-main" }, h("slot", { key: '504a93f8bba3130a953dbfc1e03420d622247c0f', name: "widget" }, h("div", { key: '7eb60d1353d1fa6edefc400d7851499d083c3000', class: "s-color-picker-widget" }, h("div", { key: '01361959e0beeecd5c4b9ba0210931f3864b9273', class: "s-color-picker-widget-canvas", ref: dv => (this.canvas = dv) }), h("span", { key: '4091ba421758a3af182e7224ffbd74c5ca58166a', innerHTML: ArrowDown }))), h("input", { key: '5302b4da7dc9beaec6ab469175dee79d5b8c5dc5', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => (this.colorInput = color) })));
184
212
  }
185
213
  componentDidLoad() {
186
214
  if (this.canvas)
187
215
  this.canvas.style.backgroundColor = this.color;
188
216
  this.initColorPicker();
217
+ // Populate viewport cache in next frame (avoids forced reflow during initial render)
218
+ requestAnimationFrame(() => this.updateViewportCache());
219
+ window.addEventListener('resize', this.updateViewportCache);
189
220
  if (this.colorInput) {
190
- this.colorInput.addEventListener('invalid', (e) => {
221
+ this.colorInput.addEventListener('invalid', e => {
191
222
  this.invalidInput.emit(e);
192
223
  });
193
224
  this.colorInput.addEventListener('input', () => {
@@ -14,14 +14,16 @@ const SallaMaintenanceAlert$1 = /*@__PURE__*/ proxyCustomElement(class SallaMain
14
14
  componentWillLoad() {
15
15
  this.title = salla.config.get('maintenance_details.title');
16
16
  this.message = salla.config.get('maintenance_details.message');
17
- this.buttonTitle = window.innerWidth <= 768 ? salla.config.get('maintenance_details.button_title') : salla.config.get('maintenance_details.button_full_title');
17
+ // Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed)
18
+ const isMobile = typeof window !== 'undefined' && !window.matchMedia('(min-width: 768px)').matches;
19
+ this.buttonTitle = isMobile ? salla.config.get('maintenance_details.button_title') : salla.config.get('maintenance_details.button_full_title');
18
20
  }
19
21
  closeAlert() {
20
22
  salla.storage.set('hide_salla-maintenance-alert_at', Date.now());
21
23
  this.host.style.display = 'none';
22
24
  }
23
25
  render() {
24
- return (h(Host, { key: 'f307529d9fa1a3cfdf33cc48dea142e274eb4f72', class: "s-maintenance-alert-wrapper" }, h("button", { key: 'a8a8d3d4c03151f9fe468153d4368ab66de0ba5f', class: "s-maintenance-alert-close", innerHTML: Cancel, onClick: () => this.closeAlert() }), h("div", { key: 'f53e7ab72950f72b68eeb5ff6887203e8f6d0dbd', class: "s-maintenance-alert-content" }, h("div", { key: 'c3c69c738da0417114c87b03c49f0a8d36663558', class: "s-maintenance-alert-container" }, h("div", { key: 'af1ec8ff601873c04de610341f15775e05a5d185', class: "s-maintenance-alert-icon" }, h("img", { key: 'a1b6dd0d161749eff7f6e7d4e92fd161896b593b', src: salla.url.cdn('images/alert.png'), alt: "Alert" })), h("div", { key: 'f1f81302bbaf4d83d50770ff1f40416624bde583', class: "s-maintenance-alert-text" }, h("h2", { key: '79eab40b1cf6cf9d307d1e9bda24fe6dd8c03852' }, this.title), h("p", { key: '5bdbe219346851b9aff8c20fd41075853fe6b981' }, this.message))), h("div", { key: '8e2cd9ad611a551ee7960310f11a9f7f07668811' }, h("a", { key: '9658d9a3e82f9719c35caf362601a12a62475508', class: "s-maintenance-alert-btn", href: salla.config.get('maintenance_details.button_url') }, this.buttonTitle)))));
26
+ return (h(Host, { key: '109e687d7d6ba48ddf89cd3631f5a852d50688fd', class: "s-maintenance-alert-wrapper" }, h("button", { key: 'd70e7e53acc699336e1611589ca3bdfc704504c2', class: "s-maintenance-alert-close", innerHTML: Cancel, onClick: () => this.closeAlert() }), h("div", { key: 'b816c1a9635828c206c792d68203ccfbe8e8235b', class: "s-maintenance-alert-content" }, h("div", { key: '61e91088a5613d943b6f662f5ed44093ecf99237', class: "s-maintenance-alert-container" }, h("div", { key: '1ca223334f52bc5097677dd23433107080567894', class: "s-maintenance-alert-icon" }, h("img", { key: '22e07c7a104267cda2bed74929307d039018698d', src: salla.url.cdn('images/alert.png'), alt: "Alert" })), h("div", { key: '64d37700bc1454f5afadb55b49512bbd5b412d9c', class: "s-maintenance-alert-text" }, h("h2", { key: '7651dcd09a0ba07f14ed744758598015d4b45ecd' }, this.title), h("p", { key: '1f8d057af072466f34d0f3a13396de5144bc967f' }, this.message))), h("div", { key: '34f8471b855011b499c2038b1ac9dd24cc5e2e8b' }, h("a", { key: 'd9c4f4a9fb80ab90c13dc1dde69adcb7c4cd7e9f', class: "s-maintenance-alert-btn", href: salla.config.get('maintenance_details.button_url') }, this.buttonTitle)))));
25
27
  }
26
28
  componentDidLoad() {
27
29
  //auto-hide the alert if close button is clicked before one hour
@@ -76,6 +76,7 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
76
76
  this.disableCardValue = true;
77
77
  this.availableDigitalCardValues = [];
78
78
  this.userInitiatedValidation = false;
79
+ this.isCartMode = false;
79
80
  this.outSkus = [];
80
81
  /**
81
82
  * Avoid selection of previous default or selected card value option
@@ -557,10 +558,12 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
557
558
  return acc.concat(mappedDetails);
558
559
  }, []);
559
560
  }
560
- componentDidLoad() {
561
+ async componentDidLoad() {
561
562
  if (!this.optionsData?.length) {
562
563
  return;
563
564
  }
565
+ // Register for hooks — theme can call enterCartMode() here
566
+ await Salla.hooks.registerComponent('salla-product-options', this);
564
567
  // Handle donation options
565
568
  const selectedDonationOption = this.optionsData.find(option => option.type === DisplayType.DONATION)?.details?.find(detail => detail.is_selected);
566
569
  if (selectedDonationOption) {
@@ -572,8 +575,9 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
572
575
  }, 1000);
573
576
  }
574
577
  // Handle pre-selected options on product page
578
+ // Skip if in cart mode (enterCartMode called by hook) or on cart page
575
579
  // Call salla.product.getPrice() directly to avoid triggering form validation which causes unwanted scroll
576
- if (!salla.url.is_page("cart")) {
580
+ if (!salla.url.is_page("cart") && !this.isCartMode) {
577
581
  const pricingOptionTypes = [
578
582
  DisplayType.SINGLE_OPTION,
579
583
  DisplayType.MULTIPLE_OPTIONS,
@@ -606,6 +610,17 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
606
610
  }
607
611
  }
608
612
  }
613
+ /**
614
+ * Switch the component to cart-item mode: fill selected options,
615
+ * enable disabled-out-of-stock, and skip product price updates.
616
+ * Used by themes when treating a product page as a cart item editor.
617
+ */
618
+ async enterCartMode() {
619
+ this.isCartMode = true;
620
+ this.disableCardValue = false;
621
+ this.canDisabled = true;
622
+ this.fillSelectedOptions();
623
+ }
609
624
  /**
610
625
  * Enable user-initiated validation mode so invalid fields will scroll into view
611
626
  */
@@ -871,12 +886,14 @@ const SallaProductOptions = /*@__PURE__*/ proxyCustomElement(class SallaProductO
871
886
  "disableCardValue": [32],
872
887
  "availableDigitalCardValues": [32],
873
888
  "userInitiatedValidation": [32],
889
+ "isCartMode": [32],
874
890
  "setOptionsData": [64],
875
891
  "getSelectedOptionsData": [64],
876
892
  "reportValidity": [64],
877
893
  "hasOutOfStockOption": [64],
878
894
  "getSelectedOptions": [64],
879
895
  "getOption": [64],
896
+ "enterCartMode": [64],
880
897
  "enableUserInitiatedValidation": [64],
881
898
  "validateAndScroll": [64]
882
899
  }]);
@@ -40,6 +40,8 @@ const SallaProductsList = /*@__PURE__*/ proxyCustomElement(class SallaProductsLi
40
40
  this.prevCategoryIdKey = "prevCategoryId";
41
41
  this.isProcessing = false; // Tracks if we are processing data
42
42
  this.scrollTimeout = null;
43
+ this.boundScrollToLastViewedProduct = () => this.scrollToLastViewedProduct();
44
+ this.boundHandleScroll = () => this.handleScroll();
43
45
  this.specialPagesWithoutIds = {
44
46
  'product.index.latest': 'latest',
45
47
  'product.index.offers': 'offers',
@@ -64,11 +66,12 @@ const SallaProductsList = /*@__PURE__*/ proxyCustomElement(class SallaProductsLi
64
66
  if ("scrollRestoration" in history)
65
67
  history.scrollRestoration = "manual";
66
68
  // required for scroll restoration case when the component loads before DOM content is completed (slow internet bandwidth /low device specs)
67
- window.addEventListener('DOMContentLoaded', this.scrollToLastViewedProduct.bind(this));
69
+ window.addEventListener('DOMContentLoaded', this.boundScrollToLastViewedProduct);
68
70
  salla.event.on('salla-filters::changed', filters => this.setFilters(filters));
69
71
  }
70
72
  disconnectedCallback() {
71
- window.removeEventListener('DOMContentLoaded', this.scrollToLastViewedProduct);
73
+ window.removeEventListener('DOMContentLoaded', this.boundScrollToLastViewedProduct);
74
+ window.removeEventListener('scroll', this.boundHandleScroll);
72
75
  }
73
76
  /**
74
77
  * Set parsed filters data from URI
@@ -470,7 +473,7 @@ const SallaProductsList = /*@__PURE__*/ proxyCustomElement(class SallaProductsLi
470
473
  this.loading(true, this.autoload ? false : true);
471
474
  });
472
475
  // Manual scroll listener
473
- shouldApplyManualLoad && window.addEventListener('scroll', this.handleScroll.bind(this));
476
+ shouldApplyManualLoad && window.addEventListener('scroll', this.boundHandleScroll);
474
477
  this.infiniteScroll?.on('load', async (response) => {
475
478
  if (this.isProcessing)
476
479
  return;
@@ -523,14 +526,17 @@ const SallaProductsList = /*@__PURE__*/ proxyCustomElement(class SallaProductsLi
523
526
  return;
524
527
  this.scrollTimeout = setTimeout(() => {
525
528
  this.scrollTimeout = null;
526
- const wrapperRect = this.wrapper.getBoundingClientRect();
527
- const windowHeight = window.innerHeight;
528
- const distanceToBottom = wrapperRect.bottom - windowHeight;
529
- // Trigger only when the wrapper bottom is within 200px of the viewport bottom
530
- if (distanceToBottom <= 200 && !this.isProcessing && this.nextPage) {
531
- // Reached near the bottom of the wrapper, loading next page...
532
- this.manualLoadNextPage();
533
- }
529
+ // Defer layout reads to next frame to avoid forced reflow (Lighthouse/PageSpeed)
530
+ requestAnimationFrame(() => {
531
+ const wrapperRect = this.wrapper.getBoundingClientRect();
532
+ const windowHeight = window.innerHeight;
533
+ const distanceToBottom = wrapperRect.bottom - windowHeight;
534
+ // Trigger only when the wrapper bottom is within 200px of the viewport bottom
535
+ if (distanceToBottom <= 200 && !this.isProcessing && this.nextPage) {
536
+ // Reached near the bottom of the wrapper, loading next page...
537
+ this.manualLoadNextPage();
538
+ }
539
+ });
534
540
  }, 200);
535
541
  }
536
542
  manualLoadNextPage() {
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ var BellRing = `<!-- Generated by IcoMoon.io -->
5
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
6
+ <title>bell-ring</title>
7
+ <path d="M2.667 13.333v-4c0-2.592 0.748-5.107 2.161-7.271 0.404-0.616 0.231-1.443-0.387-1.845-0.616-0.401-1.443-0.228-1.845 0.388-1.699 2.599-2.596 5.617-2.596 8.728v4c0 0.736 0.596 1.333 1.333 1.333s1.333-0.596 1.333-1.333zM25.333 15.647v-6.313c0-5.147-4.188-9.333-9.333-9.333s-9.333 4.187-9.333 9.333v6.312l-5.157 9.027c-0.236 0.413-0.235 0.92 0.004 1.331 0.239 0.412 0.679 0.664 1.153 0.664h8c0 2.941 2.392 5.333 5.333 5.333s5.333-2.392 5.333-5.333h8c0.475 0 0.915-0.252 1.153-0.664 0.239-0.411 0.24-0.917 0.004-1.331zM16 29.333c-1.471 0-2.667-1.196-2.667-2.667h5.333c0 1.472-1.196 2.667-2.667 2.667zM4.965 24l4.193-7.339c0.113-0.2 0.175-0.429 0.175-0.661v-6.667c0-3.676 2.991-6.667 6.667-6.667s6.667 2.991 6.667 6.667v6.667c0 0.232 0.061 0.46 0.176 0.661l4.192 7.339zM29.403 0.603c-0.403-0.616-1.232-0.789-1.845-0.387-0.617 0.403-0.791 1.229-0.387 1.845 1.415 2.165 2.163 4.68 2.163 7.272v4c0 0.736 0.596 1.333 1.333 1.333s1.333-0.597 1.333-1.333v-4c0-3.112-0.899-6.132-2.597-8.731z"></path>
8
+ </svg>
9
+ `;
10
+
11
+ export { BellRing as B };
@@ -8,15 +8,4 @@ var CameraIcon = `<!-- Generated by IcoMoon.io -->
8
8
  </svg>
9
9
  `;
10
10
 
11
- var Genders;
12
- (function (Genders) {
13
- Genders["Female"] = "female";
14
- Genders["Male"] = "male";
15
- })(Genders || (Genders = {}));
16
- var FormFieldTypes;
17
- (function (FormFieldTypes) {
18
- FormFieldTypes["Photo"] = "photo";
19
- FormFieldTypes["Text"] = "Text";
20
- })(FormFieldTypes || (FormFieldTypes = {}));
21
-
22
- export { CameraIcon as C, FormFieldTypes as F, Genders as G };
11
+ export { CameraIcon as C };
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ var Cancel = `<!-- Generated by IcoMoon.io -->
5
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
6
+ <title>cancel</title>
7
+ <path d="M17.885 16l7.057-7.057c0.521-0.521 0.521-1.364 0-1.885s-1.364-0.521-1.885 0l-7.057 7.057-7.057-7.057c-0.521-0.521-1.364-0.521-1.885 0s-0.521 1.364 0 1.885l7.057 7.057-7.057 7.057c-0.521 0.521-0.521 1.364 0 1.885 0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391l7.057-7.057 7.057 7.057c0.26 0.26 0.601 0.391 0.943 0.391s0.683-0.131 0.943-0.391c0.521-0.521 0.521-1.364 0-1.885z"></path>
8
+ </svg>
9
+ `;
10
+
11
+ export { Cancel as C };
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ var PendingOrdersIcon = `<!-- Generated by IcoMoon.io -->
5
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="30" height="32" viewBox="0 0 30 32">
6
+ <title>cart</title>
7
+ <path d="M15.426 28.084c0-1.412-0.85-2.684-2.156-3.226-1.305-0.54-2.807-0.241-3.805 0.758-0.999 0.998-1.298 2.5-0.758 3.805 0.54 1.303 1.815 2.155 3.226 2.155 1.928-0.003 3.49-1.564 3.492-3.492h0.001zM10.597 28.084h0.001c0-0.54 0.326-1.027 0.825-1.235 0.498-0.206 1.074-0.091 1.455 0.29 0.383 0.382 0.497 0.957 0.29 1.456-0.208 0.5-0.695 0.825-1.235 0.825-0.355 0-0.695-0.142-0.944-0.391-0.251-0.251-0.392-0.591-0.392-0.946h-0.001l0.001 0.001zM28.23 28.084c0-1.412-0.85-2.684-2.155-3.226-1.305-0.54-2.807-0.241-3.806 0.758s-1.297 2.5-0.756 3.805c0.54 1.303 1.813 2.155 3.226 2.155 1.927-0.003 3.49-1.564 3.491-3.492zM23.401 28.084c0-0.54 0.326-1.027 0.825-1.235 0.5-0.206 1.075-0.091 1.457 0.29s0.497 0.957 0.289 1.456c-0.206 0.5-0.693 0.825-1.233 0.825-0.738 0-1.337-0.599-1.337-1.337l-0.001 0.001zM1.953 0.234l-0.342-0.059c-0.29-0.064-0.594-0.004-0.839 0.166-0.247 0.169-0.414 0.436-0.463 0.734-0.050 0.3 0.023 0.607 0.201 0.85s0.444 0.402 0.738 0.44l0.341 0.059c1.825 0.324 3.248 1.794 3.548 3.662l1.981 12.369h-0.001c0.218 1.387 0.913 2.651 1.96 3.563s2.379 1.412 3.754 1.41h14.242c0.601 0 1.088-0.498 1.088-1.112s-0.487-1.112-1.088-1.112h-14.242c-1.679-0.001-3.139-1.183-3.525-2.854h11.463c1.614 0.004 3.188-0.518 4.493-1.49 1.305-0.973 2.271-2.346 2.762-3.918l1.298-4.136c0.145-0.455 0.065-0.953-0.213-1.336-0.278-0.385-0.72-0.608-1.187-0.602h-20.467l-0.181-1.141c-0.218-1.367-0.849-2.631-1.802-3.615-0.954-0.983-2.184-1.64-3.518-1.878h-0.001zM26.946 9.096l-0.993 3.169v-0.001c-0.353 1.122-1.044 2.101-1.975 2.796s-2.056 1.067-3.208 1.067h-11.833l-1.125-7.042 19.134 0.011z"></path>
8
+ </svg>
9
+ `;
10
+
11
+ export { PendingOrdersIcon as P };
@@ -1,11 +1,11 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- var IconVerified = `<!-- Generated by IcoMoon.io -->
4
+ var iconCheck = `<!-- Generated by IcoMoon.io -->
5
5
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
6
6
  <title>check</title>
7
7
  <path d="M27.521 6.976c-0.569-0.472-1.407-0.393-1.879 0.171l-12.567 15.080-7.003-4.668c-0.615-0.411-1.441-0.244-1.849 0.369-0.409 0.612-0.244 1.441 0.369 1.849l8 5.333c0.227 0.149 0.484 0.223 0.739 0.223 0.384 0 0.763-0.165 1.027-0.48l13.333-16c0.471-0.565 0.393-1.407-0.171-1.877z"></path>
8
8
  </svg>
9
9
  `;
10
10
 
11
- export { IconVerified as I };
11
+ export { iconCheck as i };
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ var CheckCircle2 = `<!-- Generated by IcoMoon.io -->
5
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
6
+ <title>check-circle2</title>
7
+ <path d="M29.333 14.133c-0.8 0-1.333 0.533-1.333 1.333v1.2c0 6.667-5.333 12-12 12 0 0 0 0 0 0-6.667 0-12-5.333-12-12s5.333-12 12-12c0 0 0 0 0 0 1.733 0 3.333 0.4 4.933 1.067 0.667 0.267 1.467 0 1.733-0.667s0-1.467-0.667-1.733c-1.867-0.8-3.867-1.333-6-1.333 0 0 0 0 0 0-8.133 0-14.667 6.533-14.667 14.667s6.533 14.667 14.667 14.667c0 0 0 0 0 0 8.133 0 14.667-6.533 14.667-14.667v-1.2c0-0.8-0.533-1.333-1.333-1.333zM12.933 14.4c-0.533-0.533-1.333-0.533-1.867 0s-0.533 1.333 0 1.867l4 4c0.267 0.267 0.533 0.4 0.933 0.4s0.667-0.133 0.933-0.4l13.333-13.333c0.533-0.533 0.533-1.333 0-1.867s-1.333-0.533-1.867 0l-12.4 12.4-3.067-3.067z"></path>
8
+ </svg>
9
+ `;
10
+
11
+ export { CheckCircle2 as C };
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { d as getDefaultExportFromCjs } from './index-D2-TtAhI.js';
4
+ import { d as getDefaultExportFromCjs } from './index-B74h9G6a.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { d as getDefaultExportFromCjs } from './index-D2-TtAhI.js';
4
+ import { d as getDefaultExportFromCjs } from './index-B74h9G6a.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { d as getDefaultExportFromCjs } from './index-D2-TtAhI.js';
4
+ import { d as getDefaultExportFromCjs } from './index-B74h9G6a.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { d as getDefaultExportFromCjs } from './index-D2-TtAhI.js';
4
+ import { d as getDefaultExportFromCjs } from './index-B74h9G6a.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { d as getDefaultExportFromCjs } from './index-D2-TtAhI.js';
4
+ import { d as getDefaultExportFromCjs } from './index-B74h9G6a.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { d as getDefaultExportFromCjs } from './index-D2-TtAhI.js';
4
+ import { d as getDefaultExportFromCjs } from './index-B74h9G6a.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { d as getDefaultExportFromCjs } from './index-D2-TtAhI.js';
4
+ import { d as getDefaultExportFromCjs } from './index-B74h9G6a.js';
5
5
 
6
6
  function _mergeNamespaces(n, m) {
7
7
  m.forEach(function (e) {
@@ -1,13 +1,11 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- 'use strict';
5
-
6
- var GiftIcon = `<!-- Generated by IcoMoon.io -->
4
+ var loyaltyProgramIcon = `<!-- Generated by IcoMoon.io -->
7
5
  <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
8
6
  <title>gift</title>
9
7
  <path d="M30.667 8h-1.36c0.007-0.115 0.027-0.225 0.027-0.34 0-3.489-2.617-6.327-5.833-6.327-3.48 0-6.080 3.071-7.5 5.271-1.42-2.2-4.020-5.271-7.5-5.271-3.216 0-5.833 2.837-5.833 6.327 0 0.115 0.020 0.225 0.027 0.34h-1.36c-0.737 0-1.333 0.597-1.333 1.333v6.667c0 0.736 0.596 1.333 1.333 1.333v9.333c0 2.205 1.795 4 4 4h21.333c2.205 0 4-1.795 4-4v-9.333c0.737 0 1.333-0.597 1.333-1.333v-6.667c0-0.736-0.596-1.333-1.333-1.333zM23.5 4c1.747 0 3.167 1.641 3.167 3.66 0 0.115-0.017 0.227-0.025 0.34h-8.38c1.188-1.833 3.104-4 5.239-4zM8.5 4c2.124 0 4.041 2.167 5.236 4h-8.377c-0.008-0.113-0.025-0.225-0.025-0.34 0-2.019 1.42-3.66 3.167-3.66zM14.667 28h-9.333c-0.736 0-1.333-0.599-1.333-1.333v-9.333h10.667zM28 26.667c0 0.735-0.597 1.333-1.333 1.333h-9.333v-10.667h10.667zM29.333 14.667h-26.667v-4h1.592s0.003 0 0.004 0h23.477s0.003 0 0.004 0h1.589z"></path>
10
8
  </svg>
11
9
  `;
12
10
 
13
- exports.GiftIcon = GiftIcon;
11
+ export { loyaltyProgramIcon as l };
@@ -0,0 +1,11 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ var ImageIcon = `<!-- Generated by IcoMoon.io -->
5
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
6
+ <title>image</title>
7
+ <path d="M21.333 6.667c-2.205 0-4 1.795-4 4s1.795 4 4 4 4-1.795 4-4-1.795-4-4-4zM21.333 12c-0.736 0-1.333-0.599-1.333-1.333s0.597-1.333 1.333-1.333 1.333 0.599 1.333 1.333-0.597 1.333-1.333 1.333zM24 1.333h-16c-3.676 0-6.667 2.991-6.667 6.667v16c0 0.969 0.219 1.884 0.592 2.715 0.013 0.024 0.025 0.048 0.039 0.072 1.059 2.284 3.359 3.88 6.036 3.88h16c3.676 0 6.667-2.991 6.667-6.667v-16c0-3.676-2.991-6.667-6.667-6.667zM8 28c-1.376 0-2.592-0.699-3.312-1.76l7.312-9.401 8.681 11.161zM28 24c0 2.187-1.765 3.964-3.945 3.995l-11.003-14.147c-0.505-0.649-1.599-0.649-2.104 0l-6.948 8.933v-14.781c0-2.205 1.795-4 4-4h16c2.205 0 4 1.795 4 4z"></path>
8
+ </svg>
9
+ `;
10
+
11
+ export { ImageIcon as I };