@salla.sa/twilight-components 2.14.596 → 2.14.597

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 (541) hide show
  1. package/dist/cjs/{filepond-MMeFYRaC.js → filepond-Dw1N5qBB.js} +1 -1
  2. package/dist/cjs/{filepond-plugin-file-poster-Dd1aobB-.js → filepond-plugin-file-poster-C1ipzdpz.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-validate-size-Be46s5wp.js → filepond-plugin-file-validate-size-DbTJ1H8k.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-type-Cf3OjTHE.js → filepond-plugin-file-validate-type-CDOD2WKz.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-image-edit-BDX5qgng.js → filepond-plugin-image-edit-CP7JkpKx.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-exif-orientation-ilZNc8J4.js → filepond-plugin-image-exif-orientation-Bm5i6zMO.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-preview-C9c7tVEB.js → filepond-plugin-image-preview-INllb63L.js} +1 -1
  8. package/dist/cjs/{index-zv0p1Eys.js → index-DIEWuq3M.js} +2 -2
  9. package/dist/cjs/{intlTelInput-C8hiSJ_i.js → intlTelInput-bnpl10H7.js} +1 -1
  10. package/dist/cjs/loader.cjs.js +2 -2
  11. package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
  12. package/dist/cjs/salla-accordion_6.cjs.entry.js +10 -18
  13. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +37 -15
  14. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  15. package/dist/cjs/salla-alert_2.cjs.entry.js +26 -20
  16. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  17. package/dist/cjs/salla-applied-filters.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-apps-icons.cjs.entry.js +7 -2
  19. package/dist/cjs/salla-attachment-view_9.cjs.entry.js +50 -36
  20. package/dist/cjs/salla-badge.cjs.entry.js +1 -1
  21. package/dist/cjs/salla-basket-gap.cjs.entry.js +1 -1
  22. package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +2 -2
  23. package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
  24. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +12 -5
  25. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-comment-form_9.cjs.entry.js +44 -23
  29. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-contacts.cjs.entry.js +10 -3
  31. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-count-down.cjs.entry.js +17 -12
  33. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-filters-widget.cjs.entry.js +7 -4
  37. package/dist/cjs/salla-filters.cjs.entry.js +10 -5
  38. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  39. package/dist/cjs/salla-gift-card-redeem_2.cjs.entry.js +1 -1
  40. package/dist/cjs/salla-gifting.cjs.entry.js +12 -7
  41. package/dist/cjs/salla-hook.cjs.entry.js +2 -2
  42. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +7 -2
  43. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  44. package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
  45. package/dist/cjs/salla-localization-modal.cjs.entry.js +14 -2
  46. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  47. package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +1 -1
  48. package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +1 -1
  49. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  50. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
  51. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  52. package/dist/cjs/salla-loyalty.cjs.entry.js +12 -5
  53. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
  54. package/dist/cjs/salla-map_3.cjs.entry.js +39 -15
  55. package/dist/cjs/salla-menu.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  57. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +1 -1
  58. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +1 -1
  60. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-notification-item_2.cjs.entry.js +7 -2
  62. package/dist/cjs/salla-offer-modal.cjs.entry.js +14 -7
  63. package/dist/cjs/salla-offer.cjs.entry.js +14 -9
  64. package/dist/cjs/salla-order-branch.cjs.entry.js +42 -4
  65. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  66. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  67. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
  69. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +1 -1
  71. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  72. package/dist/cjs/salla-order-options-modal.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
  74. package/dist/cjs/salla-order-summary.cjs.entry.js +7 -4
  75. package/dist/cjs/salla-order-totals-card.cjs.entry.js +2 -2
  76. package/dist/cjs/salla-orders.cjs.entry.js +10 -6
  77. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  78. package/dist/cjs/salla-placeholder.cjs.entry.js +10 -3
  79. package/dist/cjs/salla-price-range.cjs.entry.js +7 -4
  80. package/dist/cjs/salla-product-card-embed.cjs.entry.js +1 -1
  81. package/dist/cjs/salla-product-card.cjs.entry.js +14 -9
  82. package/dist/cjs/salla-product-size-guide.cjs.entry.js +9 -4
  83. package/dist/cjs/salla-products-list.cjs.entry.js +5 -4
  84. package/dist/cjs/salla-products-slider.cjs.entry.js +1 -1
  85. package/dist/cjs/salla-quick-order.cjs.entry.js +7 -2
  86. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
  87. package/dist/cjs/salla-rating-modal.cjs.entry.js +9 -3
  88. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +1 -1
  89. package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
  90. package/dist/cjs/salla-scopes.cjs.entry.js +9 -2
  91. package/dist/cjs/salla-search-product-card.cjs.entry.js +1 -1
  92. package/dist/cjs/salla-search.cjs.entry.js +1 -1
  93. package/dist/cjs/salla-skeleton.cjs.entry.js +8 -8
  94. package/dist/cjs/salla-social-share.cjs.entry.js +1 -1
  95. package/dist/cjs/salla-social.cjs.entry.js +8 -3
  96. package/dist/cjs/salla-tab-content_3.cjs.entry.js +4 -4
  97. package/dist/cjs/salla-tiered-offer.cjs.entry.js +7 -2
  98. package/dist/cjs/salla-trust-badges.cjs.entry.js +8 -4
  99. package/dist/cjs/salla-user-menu.cjs.entry.js +7 -1
  100. package/dist/cjs/salla-user-profile.cjs.entry.js +7 -3
  101. package/dist/cjs/salla-user-settings.cjs.entry.js +8 -3
  102. package/dist/cjs/salla-verify.cjs.entry.js +13 -6
  103. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  104. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +1 -1
  105. package/dist/cjs/salla-wishlist-summary.cjs.entry.js +1 -1
  106. package/dist/cjs/translate-Cvomt6Jh.js +58 -0
  107. package/dist/cjs/twilight.cjs.js +2 -2
  108. package/dist/cjs/{vanilla-picker-DRrOfZz0.js → vanilla-picker-BaSDLxjI.js} +1 -1
  109. package/dist/collection/Helpers/translate.js +36 -0
  110. package/dist/collection/components/salla-add-product-button/salla-add-product-button.js +7 -2
  111. package/dist/collection/components/salla-alert/salla-alert.js +5 -5
  112. package/dist/collection/components/salla-apps-icons/salla-apps-icons.js +6 -1
  113. package/dist/collection/components/salla-booking-field/salla-booking-field.js +10 -4
  114. package/dist/collection/components/salla-bottom-alert/salla-bottom-alert.js +23 -17
  115. package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.css +2 -0
  116. package/dist/collection/components/salla-button/salla-button.js +19 -27
  117. package/dist/collection/components/salla-cart-item-offers/salla-cart-item-offers.js +10 -3
  118. package/dist/collection/components/salla-cart-summary/salla-cart-summary.js +2 -2
  119. package/dist/collection/components/salla-comment-form/salla-comment-form.js +10 -5
  120. package/dist/collection/components/salla-comments/salla-comment-item.js +8 -2
  121. package/dist/collection/components/salla-comments/salla-comments.js +9 -3
  122. package/dist/collection/components/salla-contacts/salla-contacts.js +9 -2
  123. package/dist/collection/components/salla-count-down/salla-count-down.js +23 -18
  124. package/dist/collection/components/salla-custom-fields/salla-custom-fields.js +4 -0
  125. package/dist/collection/components/salla-file-upload/salla-file-upload.js +8 -4
  126. package/dist/collection/components/salla-filters/salla-filters.js +10 -5
  127. package/dist/collection/components/salla-filters-widget/salla-filters-widget.js +6 -3
  128. package/dist/collection/components/salla-gifting/salla-gifting.js +11 -6
  129. package/dist/collection/components/salla-hook/salla-hook.js +5 -1
  130. package/dist/collection/components/salla-infinite-scroll/salla-infinite-scroll.js +6 -1
  131. package/dist/collection/components/salla-localization-modal/salla-localization-modal.js +15 -2
  132. package/dist/collection/components/salla-loyalty/salla-loyalty.js +12 -5
  133. package/dist/collection/components/salla-map/salla-map.js +12 -7
  134. package/dist/collection/components/salla-notifications/salla-notifications.js +6 -1
  135. package/dist/collection/components/salla-offer/salla-offer.js +12 -7
  136. package/dist/collection/components/salla-offer-modal/salla-offer-modal.js +13 -6
  137. package/dist/collection/components/salla-order-branch/salla-order-branch.css +35 -0
  138. package/dist/collection/components/salla-order-branch/salla-order-branch.js +40 -2
  139. package/dist/collection/components/salla-order-summary/salla-order-summary.js +6 -3
  140. package/dist/collection/components/salla-order-totals-card/salla-order-totals-card.js +1 -1
  141. package/dist/collection/components/salla-orders/salla-orders.js +9 -5
  142. package/dist/collection/components/salla-placeholder/salla-placeholder.js +10 -3
  143. package/dist/collection/components/salla-price-range/salla-price-range.js +6 -3
  144. package/dist/collection/components/salla-product-availability/salla-product-availability.js +16 -7
  145. package/dist/collection/components/salla-product-card/salla-product-card.js +22 -17
  146. package/dist/collection/components/salla-product-options/salla-product-options.js +9 -6
  147. package/dist/collection/components/salla-product-size-guide/salla-product-size-guide.js +8 -3
  148. package/dist/collection/components/salla-products-list/salla-products-list.js +4 -3
  149. package/dist/collection/components/salla-progress-bar/salla-progress-bar.js +20 -4
  150. package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +6 -1
  151. package/dist/collection/components/salla-quick-order/salla-quick-order.js +6 -1
  152. package/dist/collection/components/salla-rating-modal/salla-rating-modal.js +8 -2
  153. package/dist/collection/components/salla-rating-stars/salla-rating-stars.js +16 -16
  154. package/dist/collection/components/salla-review-card/salla-review-card.js +5 -1
  155. package/dist/collection/components/salla-reviews/salla-reviews.js +6 -1
  156. package/dist/collection/components/salla-scopes/salla-scopes.js +9 -2
  157. package/dist/collection/components/salla-skeleton/salla-skeleton.js +10 -10
  158. package/dist/collection/components/salla-slider/salla-slider.js +6 -3
  159. package/dist/collection/components/salla-social/salla-social.js +7 -2
  160. package/dist/collection/components/salla-tabs/salla-tab-header.js +3 -3
  161. package/dist/collection/components/salla-tel-input/salla-tel-input.js +24 -19
  162. package/dist/collection/components/salla-tiered-offer/salla-tiered-offer.js +6 -1
  163. package/dist/collection/components/salla-trust-badges/salla-trust-badges.js +7 -3
  164. package/dist/collection/components/salla-user-menu/salla-user-menu.js +6 -0
  165. package/dist/collection/components/salla-user-profile/salla-user-profile.js +6 -2
  166. package/dist/collection/components/salla-user-settings/salla-user-settings.js +7 -2
  167. package/dist/collection/components/salla-verify/salla-verify.js +13 -6
  168. package/dist/components/index.js +2 -2
  169. package/dist/components/salla-add-product-button2.js +7 -2
  170. package/dist/components/salla-alert.js +2 -2
  171. package/dist/components/salla-apps-icons.js +6 -1
  172. package/dist/components/salla-booking-field2.js +10 -4
  173. package/dist/components/salla-bottom-alert.js +23 -17
  174. package/dist/components/salla-bullet-delivery.js +1 -1
  175. package/dist/components/salla-button2.js +9 -17
  176. package/dist/components/salla-cart-item-offers.js +10 -3
  177. package/dist/components/salla-cart-summary.js +1 -1
  178. package/dist/components/salla-comment-form2.js +10 -5
  179. package/dist/components/salla-comment-item2.js +8 -2
  180. package/dist/components/salla-comments.js +9 -3
  181. package/dist/components/salla-contacts.js +9 -2
  182. package/dist/components/salla-count-down2.js +16 -11
  183. package/dist/components/salla-file-upload2.js +8 -4
  184. package/dist/components/salla-filters-widget2.js +6 -3
  185. package/dist/components/salla-filters.js +9 -4
  186. package/dist/components/salla-gifting.js +11 -6
  187. package/dist/components/salla-hook.js +1 -1
  188. package/dist/components/salla-infinite-scroll.js +6 -1
  189. package/dist/components/salla-localization-modal.js +15 -2
  190. package/dist/components/salla-loyalty.js +12 -5
  191. package/dist/components/salla-map2.js +12 -7
  192. package/dist/components/salla-notifications.js +6 -1
  193. package/dist/components/salla-offer-modal.js +13 -6
  194. package/dist/components/salla-offer.js +12 -7
  195. package/dist/components/salla-order-branch.js +41 -3
  196. package/dist/components/salla-order-summary.js +6 -3
  197. package/dist/components/salla-order-totals-card.js +1 -1
  198. package/dist/components/salla-orders.js +9 -5
  199. package/dist/components/salla-placeholder2.js +10 -3
  200. package/dist/components/salla-price-range2.js +6 -3
  201. package/dist/components/salla-product-availability2.js +16 -7
  202. package/dist/components/salla-product-card2.js +13 -8
  203. package/dist/components/salla-product-options2.js +9 -6
  204. package/dist/components/salla-product-size-guide.js +8 -3
  205. package/dist/components/salla-products-list2.js +4 -3
  206. package/dist/components/salla-progress-bar2.js +20 -4
  207. package/dist/components/salla-quick-buy2.js +6 -1
  208. package/dist/components/salla-quick-order.js +6 -1
  209. package/dist/components/salla-rating-modal2.js +8 -2
  210. package/dist/components/salla-rating-stars2.js +10 -10
  211. package/dist/components/salla-review-card2.js +1 -1
  212. package/dist/components/salla-reviews.js +6 -1
  213. package/dist/components/salla-scopes.js +9 -2
  214. package/dist/components/salla-skeleton2.js +7 -7
  215. package/dist/components/salla-slider2.js +6 -3
  216. package/dist/components/salla-social.js +7 -2
  217. package/dist/components/salla-tab-header2.js +3 -3
  218. package/dist/components/salla-tel-input2.js +24 -19
  219. package/dist/components/salla-tiered-offer.js +6 -1
  220. package/dist/components/salla-trust-badges.js +7 -3
  221. package/dist/components/salla-user-menu.js +6 -0
  222. package/dist/components/salla-user-profile.js +6 -2
  223. package/dist/components/salla-user-settings.js +7 -2
  224. package/dist/components/salla-verify.js +13 -6
  225. package/dist/components/translate.js +37 -1
  226. package/dist/docs.json +44 -44
  227. package/dist/esm/{filepond-okemUEVJ.js → filepond-DfLkIBAw.js} +1 -1
  228. package/dist/esm/{filepond-plugin-file-poster-He-1QDcm.js → filepond-plugin-file-poster-D3ie06bz.js} +1 -1
  229. package/dist/esm/{filepond-plugin-file-validate-size-BoQ9OZHK.js → filepond-plugin-file-validate-size-C_S_eFQe.js} +1 -1
  230. package/dist/esm/{filepond-plugin-file-validate-type-BVxE-7xU.js → filepond-plugin-file-validate-type-BE7nqQRE.js} +1 -1
  231. package/dist/esm/{filepond-plugin-image-edit-DJnNmArQ.js → filepond-plugin-image-edit-C6jDcMnX.js} +1 -1
  232. package/dist/esm/{filepond-plugin-image-exif-orientation-CgkqV9g5.js → filepond-plugin-image-exif-orientation-nKXdF-ae.js} +1 -1
  233. package/dist/esm/{filepond-plugin-image-preview-DxbixTNR.js → filepond-plugin-image-preview-Dzl44GI1.js} +1 -1
  234. package/dist/esm/{index-C1mBhG6Z.js → index-BmRQjBRH.js} +2 -2
  235. package/dist/esm/{intlTelInput-wxpsRy0u.js → intlTelInput-dGrU4Iu9.js} +1 -1
  236. package/dist/esm/loader.js +3 -3
  237. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  238. package/dist/esm/salla-accordion_6.entry.js +10 -18
  239. package/dist/esm/salla-add-product-button_5.entry.js +37 -15
  240. package/dist/esm/salla-advertisement.entry.js +1 -1
  241. package/dist/esm/salla-alert_2.entry.js +26 -20
  242. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  243. package/dist/esm/salla-applied-filters.entry.js +1 -1
  244. package/dist/esm/salla-apps-icons.entry.js +7 -2
  245. package/dist/esm/salla-attachment-view_9.entry.js +50 -36
  246. package/dist/esm/salla-badge.entry.js +1 -1
  247. package/dist/esm/salla-basket-gap.entry.js +1 -1
  248. package/dist/esm/salla-bullet-delivery_3.entry.js +2 -2
  249. package/dist/esm/salla-cart-coupons.entry.js +1 -1
  250. package/dist/esm/salla-cart-item-offers_2.entry.js +12 -5
  251. package/dist/esm/salla-cart-summary-card.entry.js +1 -1
  252. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  253. package/dist/esm/salla-comment-factors.entry.js +1 -1
  254. package/dist/esm/salla-comment-form_9.entry.js +44 -23
  255. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  256. package/dist/esm/salla-contacts.entry.js +10 -3
  257. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  258. package/dist/esm/salla-count-down.entry.js +17 -12
  259. package/dist/esm/salla-custom-fields.entry.js +1 -1
  260. package/dist/esm/salla-delivery-promise.entry.js +1 -1
  261. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  262. package/dist/esm/salla-filters-widget.entry.js +7 -4
  263. package/dist/esm/salla-filters.entry.js +10 -5
  264. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  265. package/dist/esm/salla-gift-card-redeem_2.entry.js +1 -1
  266. package/dist/esm/salla-gifting.entry.js +12 -7
  267. package/dist/esm/salla-hook.entry.js +2 -2
  268. package/dist/esm/salla-infinite-scroll.entry.js +7 -2
  269. package/dist/esm/salla-installment.entry.js +1 -1
  270. package/dist/esm/salla-list-tile.entry.js +1 -1
  271. package/dist/esm/salla-localization-modal.entry.js +14 -2
  272. package/dist/esm/salla-login-modal.entry.js +1 -1
  273. package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
  274. package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
  275. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  276. package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
  277. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  278. package/dist/esm/salla-loyalty.entry.js +12 -5
  279. package/dist/esm/salla-maintenance-alert.entry.js +1 -1
  280. package/dist/esm/salla-map_3.entry.js +39 -15
  281. package/dist/esm/salla-menu.entry.js +1 -1
  282. package/dist/esm/salla-metadata.entry.js +1 -1
  283. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
  284. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
  285. package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
  286. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  287. package/dist/esm/salla-notification-item_2.entry.js +7 -2
  288. package/dist/esm/salla-offer-modal.entry.js +14 -7
  289. package/dist/esm/salla-offer.entry.js +14 -9
  290. package/dist/esm/salla-order-branch.entry.js +42 -4
  291. package/dist/esm/salla-order-cancel.entry.js +1 -1
  292. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  293. package/dist/esm/salla-order-details-options.entry.js +1 -1
  294. package/dist/esm/salla-order-details.entry.js +1 -1
  295. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  296. package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
  297. package/dist/esm/salla-order-edit.entry.js +1 -1
  298. package/dist/esm/salla-order-options-modal.entry.js +1 -1
  299. package/dist/esm/salla-order-shipments.entry.js +1 -1
  300. package/dist/esm/salla-order-summary.entry.js +7 -4
  301. package/dist/esm/salla-order-totals-card.entry.js +2 -2
  302. package/dist/esm/salla-orders.entry.js +10 -6
  303. package/dist/esm/salla-payments.entry.js +1 -1
  304. package/dist/esm/salla-placeholder.entry.js +10 -3
  305. package/dist/esm/salla-price-range.entry.js +7 -4
  306. package/dist/esm/salla-product-card-embed.entry.js +1 -1
  307. package/dist/esm/salla-product-card.entry.js +14 -9
  308. package/dist/esm/salla-product-size-guide.entry.js +9 -4
  309. package/dist/esm/salla-products-list.entry.js +5 -4
  310. package/dist/esm/salla-products-slider.entry.js +1 -1
  311. package/dist/esm/salla-quick-order.entry.js +7 -2
  312. package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
  313. package/dist/esm/salla-rating-modal.entry.js +9 -3
  314. package/dist/esm/salla-review-factors-tags.entry.js +1 -1
  315. package/dist/esm/salla-review-order-item.entry.js +1 -1
  316. package/dist/esm/salla-scopes.entry.js +9 -2
  317. package/dist/esm/salla-search-product-card.entry.js +1 -1
  318. package/dist/esm/salla-search.entry.js +1 -1
  319. package/dist/esm/salla-skeleton.entry.js +8 -8
  320. package/dist/esm/salla-social-share.entry.js +1 -1
  321. package/dist/esm/salla-social.entry.js +8 -3
  322. package/dist/esm/salla-tab-content_3.entry.js +4 -4
  323. package/dist/esm/salla-tiered-offer.entry.js +7 -2
  324. package/dist/esm/salla-trust-badges.entry.js +8 -4
  325. package/dist/esm/salla-user-menu.entry.js +7 -1
  326. package/dist/esm/salla-user-profile.entry.js +7 -3
  327. package/dist/esm/salla-user-settings.entry.js +8 -3
  328. package/dist/esm/salla-verify.entry.js +13 -6
  329. package/dist/esm/salla-wallet.entry.js +1 -1
  330. package/dist/esm/salla-wishlist-actions.entry.js +1 -1
  331. package/dist/esm/salla-wishlist-summary.entry.js +1 -1
  332. package/dist/esm/translate-CxrJQ3Jf.js +54 -0
  333. package/dist/esm/twilight.js +3 -3
  334. package/dist/esm/{vanilla-picker-CQEJbE9K.js → vanilla-picker-DRghK0RD.js} +1 -1
  335. package/dist/twilight/p-00e1f5fd.entry.js +4 -0
  336. package/dist/twilight/{p-da9bd7f6.entry.js → p-12338d19.entry.js} +1 -1
  337. package/dist/twilight/p-1557d0ca.entry.js +4 -0
  338. package/dist/twilight/{p-160476f0.entry.js → p-15ab81d6.entry.js} +1 -1
  339. package/dist/twilight/p-182d7bab.entry.js +4 -0
  340. package/dist/twilight/p-1908ab44.entry.js +4 -0
  341. package/dist/twilight/p-19592be3.entry.js +4 -0
  342. package/dist/twilight/{p-c82f46a9.entry.js → p-1a8c7481.entry.js} +1 -1
  343. package/dist/twilight/p-1c8bf883.entry.js +4 -0
  344. package/dist/twilight/{p-d6d72996.entry.js → p-1c8dde1a.entry.js} +1 -1
  345. package/dist/twilight/p-1f2844db.entry.js +4 -0
  346. package/dist/twilight/{p-3a465851.entry.js → p-2cf7eb3b.entry.js} +1 -1
  347. package/dist/twilight/p-2de4c351.entry.js +4 -0
  348. package/dist/twilight/{p-fd787b30.entry.js → p-2de666d8.entry.js} +1 -1
  349. package/dist/twilight/p-33e769b3.entry.js +4 -0
  350. package/dist/twilight/{p-f8aa1b23.entry.js → p-3745be6d.entry.js} +1 -1
  351. package/dist/twilight/p-39a16468.entry.js +4 -0
  352. package/dist/twilight/{p-8eb75cf8.entry.js → p-3a996401.entry.js} +1 -1
  353. package/dist/twilight/{p-81596b48.entry.js → p-3bf933f6.entry.js} +1 -1
  354. package/dist/twilight/p-3d1842e4.entry.js +4 -0
  355. package/dist/twilight/p-3f373f1e.entry.js +4 -0
  356. package/dist/twilight/{p-b3abf071.entry.js → p-3f66f717.entry.js} +1 -1
  357. package/dist/twilight/p-3fdaf198.entry.js +4 -0
  358. package/dist/twilight/p-41248f5f.entry.js +4 -0
  359. package/dist/twilight/{p-ca7593c0.entry.js → p-4235b3c2.entry.js} +1 -1
  360. package/dist/twilight/{p-caee5b0d.entry.js → p-4aa07eca.entry.js} +1 -1
  361. package/dist/twilight/{p-1080831a.entry.js → p-4b111d7a.entry.js} +1 -1
  362. package/dist/twilight/{p-d75157e0.entry.js → p-51694dd2.entry.js} +1 -1
  363. package/dist/twilight/{p-8513fec2.entry.js → p-55b5158c.entry.js} +1 -1
  364. package/dist/twilight/{p-e4589779.entry.js → p-5617656f.entry.js} +1 -1
  365. package/dist/twilight/{p-ac20a6de.entry.js → p-58dcc966.entry.js} +1 -1
  366. package/dist/twilight/p-5f35b46a.entry.js +4 -0
  367. package/dist/twilight/{p-62653d93.entry.js → p-60e1fb1a.entry.js} +1 -1
  368. package/dist/twilight/{p-7ac91ace.entry.js → p-61956814.entry.js} +1 -1
  369. package/dist/twilight/p-6854e982.entry.js +4 -0
  370. package/dist/twilight/{p-fac4da2b.entry.js → p-68919916.entry.js} +1 -1
  371. package/dist/twilight/p-6b0d6b9b.entry.js +4 -0
  372. package/dist/twilight/p-71cbf7a4.entry.js +4 -0
  373. package/dist/twilight/{p-c28395c6.entry.js → p-730101ff.entry.js} +1 -1
  374. package/dist/twilight/p-737b93c2.entry.js +4 -0
  375. package/dist/twilight/p-74ccf675.entry.js +4 -0
  376. package/dist/twilight/{p-f47a1351.entry.js → p-7aa15258.entry.js} +1 -1
  377. package/dist/twilight/{p-d6508494.entry.js → p-7c7648d7.entry.js} +1 -1
  378. package/dist/twilight/p-7dfe99e6.entry.js +4 -0
  379. package/dist/twilight/{p-54bc613c.entry.js → p-7e724019.entry.js} +1 -1
  380. package/dist/twilight/p-8248cecd.entry.js +4 -0
  381. package/dist/twilight/p-844ebeb6.entry.js +4 -0
  382. package/dist/twilight/{p-8ec0fc03.entry.js → p-87cedb04.entry.js} +1 -1
  383. package/dist/twilight/p-8b21158b.entry.js +4 -0
  384. package/dist/twilight/{p-844176cb.entry.js → p-8c10cb85.entry.js} +1 -1
  385. package/dist/twilight/p-8e2488fe.entry.js +4 -0
  386. package/dist/twilight/{p-c89282b0.entry.js → p-9108e712.entry.js} +1 -1
  387. package/dist/twilight/p-91326a74.entry.js +4 -0
  388. package/dist/twilight/{p-60d06105.entry.js → p-96f9eb1f.entry.js} +1 -1
  389. package/dist/twilight/p-99463d58.entry.js +4 -0
  390. package/dist/twilight/p-9e196eb0.entry.js +4 -0
  391. package/dist/twilight/{p-CtcjG32v.js → p-B4fbRnFh.js} +1 -1
  392. package/dist/twilight/{p-BB23a2fo.js → p-BIToxPOg.js} +1 -1
  393. package/dist/twilight/{p-C1mBhG6Z.js → p-BmRQjBRH.js} +1 -1
  394. package/dist/twilight/{p-E2n9kJc8.js → p-C1XjCBHg.js} +1 -1
  395. package/dist/twilight/{p-DiU9tYvl.js → p-C48Rktr4.js} +1 -1
  396. package/dist/twilight/{p-Bm1ywp6t.js → p-CWismw4I.js} +1 -1
  397. package/dist/twilight/p-CxrJQ3Jf.js +4 -0
  398. package/dist/twilight/{p-CJPWrlxL.js → p-DYEGhE1O.js} +1 -1
  399. package/dist/twilight/{p-Gxv67UlH.js → p-DnZfyhH5.js} +1 -1
  400. package/dist/twilight/{p-pzi0Osm7.js → p-OCGvfvVA.js} +1 -1
  401. package/dist/twilight/{p-672a709e.entry.js → p-a80acba3.entry.js} +1 -1
  402. package/dist/twilight/{p-474997dd.entry.js → p-ab1d320f.entry.js} +1 -1
  403. package/dist/twilight/{p-dbc1e40c.entry.js → p-ac7d45b6.entry.js} +1 -1
  404. package/dist/twilight/{p-e43c49e9.entry.js → p-aeafb519.entry.js} +1 -1
  405. package/dist/twilight/p-b5499627.entry.js +4 -0
  406. package/dist/twilight/{p-e98835e3.entry.js → p-b5829615.entry.js} +1 -1
  407. package/dist/twilight/p-b6c5435e.entry.js +4 -0
  408. package/dist/twilight/{p-5e426c78.entry.js → p-baaa3e72.entry.js} +1 -1
  409. package/dist/twilight/{p-5e099f96.entry.js → p-bfdde3db.entry.js} +1 -1
  410. package/dist/twilight/p-c22ea75b.entry.js +4 -0
  411. package/dist/twilight/{p-1a5d0b25.entry.js → p-c3d33aee.entry.js} +1 -1
  412. package/dist/twilight/{p-f130c67f.entry.js → p-c5d4f71c.entry.js} +1 -1
  413. package/dist/twilight/{p-a11b77df.entry.js → p-cc46f297.entry.js} +1 -1
  414. package/dist/twilight/p-cca10a34.entry.js +4 -0
  415. package/dist/twilight/p-cdbb6758.entry.js +4 -0
  416. package/dist/twilight/{p-f643bf2f.entry.js → p-cf1cc0d1.entry.js} +1 -1
  417. package/dist/twilight/{p-67d3ee58.entry.js → p-d034a3ba.entry.js} +1 -1
  418. package/dist/twilight/{p-dcb5ceda.entry.js → p-d307d40a.entry.js} +1 -1
  419. package/dist/twilight/p-d37e6c2f.entry.js +4 -0
  420. package/dist/twilight/{p-21ba0eac.entry.js → p-d3be7885.entry.js} +1 -1
  421. package/dist/twilight/{p-9d434410.entry.js → p-d542e647.entry.js} +1 -1
  422. package/dist/twilight/{p-f3985cfd.entry.js → p-db9994c2.entry.js} +1 -1
  423. package/dist/twilight/p-dd4bcce0.entry.js +4 -0
  424. package/dist/twilight/{p-de55326d.entry.js → p-de3c5f91.entry.js} +1 -1
  425. package/dist/twilight/{p-342b31ba.entry.js → p-e2d1d888.entry.js} +1 -1
  426. package/dist/twilight/{p-6602a61a.entry.js → p-e6bc3cf4.entry.js} +1 -1
  427. package/dist/twilight/{p-12a2b743.entry.js → p-e8d94147.entry.js} +1 -1
  428. package/dist/twilight/{p-e00ed6c9.entry.js → p-e9319448.entry.js} +1 -1
  429. package/dist/twilight/{p-4bde9c4e.entry.js → p-ec1589cf.entry.js} +1 -1
  430. package/dist/twilight/{p-58058ae9.entry.js → p-ece1fecd.entry.js} +1 -1
  431. package/dist/twilight/{p-97bb12a6.entry.js → p-f0180034.entry.js} +1 -1
  432. package/dist/twilight/{p-4b0eaa16.entry.js → p-f348601d.entry.js} +1 -1
  433. package/dist/twilight/{p-c28c53c3.entry.js → p-f5afeed8.entry.js} +1 -1
  434. package/dist/twilight/p-f70fa2e9.entry.js +4 -0
  435. package/dist/twilight/{p-80699771.entry.js → p-f76349b3.entry.js} +1 -1
  436. package/dist/twilight/{p-5babb989.entry.js → p-fa600113.entry.js} +1 -1
  437. package/dist/twilight/p-fde4cf31.entry.js +4 -0
  438. package/dist/twilight/{p-cb770a9e.entry.js → p-fe3645b0.entry.js} +1 -1
  439. package/dist/twilight/{p-8bdb7f71.entry.js → p-feb068a2.entry.js} +1 -1
  440. package/dist/twilight/{p-C57CqqgQ.js → p-imI5he7m.js} +1 -1
  441. package/dist/twilight/twilight.esm.js +1 -1
  442. package/dist/types/Helpers/translate.d.ts +17 -0
  443. package/dist/types/components/salla-add-product-button/salla-add-product-button.d.ts +2 -1
  444. package/dist/types/components/salla-alert/salla-alert.d.ts +3 -3
  445. package/dist/types/components/salla-apps-icons/salla-apps-icons.d.ts +3 -0
  446. package/dist/types/components/salla-booking-field/salla-booking-field.d.ts +3 -0
  447. package/dist/types/components/salla-bottom-alert/salla-bottom-alert.d.ts +3 -1
  448. package/dist/types/components/salla-button/salla-button.d.ts +10 -18
  449. package/dist/types/components/salla-cart-item-offers/salla-cart-item-offers.d.ts +3 -0
  450. package/dist/types/components/salla-cart-summary/salla-cart-summary.d.ts +2 -2
  451. package/dist/types/components/salla-comment-form/salla-comment-form.d.ts +3 -0
  452. package/dist/types/components/salla-comments/salla-comment-item.d.ts +3 -1
  453. package/dist/types/components/salla-comments/salla-comments.d.ts +3 -0
  454. package/dist/types/components/salla-contacts/salla-contacts.d.ts +4 -0
  455. package/dist/types/components/salla-count-down/salla-count-down.d.ts +17 -14
  456. package/dist/types/components/salla-custom-fields/salla-custom-fields.d.ts +4 -0
  457. package/dist/types/components/salla-file-upload/salla-file-upload.d.ts +2 -0
  458. package/dist/types/components/salla-filters/salla-filters.d.ts +4 -1
  459. package/dist/types/components/salla-filters-widget/salla-filters-widget.d.ts +2 -0
  460. package/dist/types/components/salla-gifting/salla-gifting.d.ts +3 -0
  461. package/dist/types/components/salla-hook/salla-hook.d.ts +4 -0
  462. package/dist/types/components/salla-infinite-scroll/salla-infinite-scroll.d.ts +3 -0
  463. package/dist/types/components/salla-localization-modal/salla-localization-modal.d.ts +4 -0
  464. package/dist/types/components/salla-loyalty/salla-loyalty.d.ts +3 -0
  465. package/dist/types/components/salla-map/salla-map.d.ts +3 -0
  466. package/dist/types/components/salla-notifications/salla-notifications.d.ts +3 -1
  467. package/dist/types/components/salla-offer/salla-offer.d.ts +3 -0
  468. package/dist/types/components/salla-offer-modal/salla-offer-modal.d.ts +3 -0
  469. package/dist/types/components/salla-order-branch/interfaces.d.ts +1 -0
  470. package/dist/types/components/salla-order-branch/salla-order-branch.d.ts +10 -1
  471. package/dist/types/components/salla-order-summary/salla-order-summary.d.ts +2 -0
  472. package/dist/types/components/salla-order-totals-card/interfaces.d.ts +1 -0
  473. package/dist/types/components/salla-orders/salla-orders.d.ts +3 -1
  474. package/dist/types/components/salla-placeholder/salla-placeholder.d.ts +3 -1
  475. package/dist/types/components/salla-price-range/salla-price-range.d.ts +2 -0
  476. package/dist/types/components/salla-product-availability/salla-product-availability.d.ts +4 -0
  477. package/dist/types/components/salla-product-card/salla-product-card.d.ts +12 -9
  478. package/dist/types/components/salla-product-options/salla-product-options.d.ts +2 -0
  479. package/dist/types/components/salla-product-size-guide/salla-product-size-guide.d.ts +3 -0
  480. package/dist/types/components/salla-products-list/salla-products-list.d.ts +1 -0
  481. package/dist/types/components/salla-progress-bar/salla-progress-bar.d.ts +5 -0
  482. package/dist/types/components/salla-quick-buy/salla-quick-buy.d.ts +3 -1
  483. package/dist/types/components/salla-quick-order/salla-quick-order.d.ts +3 -0
  484. package/dist/types/components/salla-rating-modal/salla-rating-modal.d.ts +3 -0
  485. package/dist/types/components/salla-rating-stars/salla-rating-stars.d.ts +14 -14
  486. package/dist/types/components/salla-review-card/salla-review-card.d.ts +4 -0
  487. package/dist/types/components/salla-reviews/salla-reviews.d.ts +3 -0
  488. package/dist/types/components/salla-scopes/salla-scopes.d.ts +3 -0
  489. package/dist/types/components/salla-skeleton/salla-skeleton.d.ts +6 -6
  490. package/dist/types/components/salla-slider/salla-slider.d.ts +2 -0
  491. package/dist/types/components/salla-social/salla-social.d.ts +3 -0
  492. package/dist/types/components/salla-tabs/salla-tab-header.d.ts +2 -2
  493. package/dist/types/components/salla-tel-input/salla-tel-input.d.ts +3 -1
  494. package/dist/types/components/salla-tiered-offer/salla-tiered-offer.d.ts +3 -1
  495. package/dist/types/components/salla-trust-badges/salla-trust-badges.d.ts +3 -1
  496. package/dist/types/components/salla-user-menu/salla-user-menu.d.ts +3 -0
  497. package/dist/types/components/salla-user-profile/salla-user-profile.d.ts +3 -1
  498. package/dist/types/components/salla-user-settings/salla-user-settings.d.ts +3 -0
  499. package/dist/types/components/salla-verify/salla-verify.d.ts +3 -0
  500. package/dist/types/components.d.ts +128 -80
  501. package/package.json +5 -5
  502. package/dist/cjs/translate-BeU1QX_r.js +0 -20
  503. package/dist/esm/translate-CrSV-tno.js +0 -18
  504. package/dist/twilight/p-020eb2a1.entry.js +0 -4
  505. package/dist/twilight/p-06799084.entry.js +0 -4
  506. package/dist/twilight/p-0a3abfd4.entry.js +0 -4
  507. package/dist/twilight/p-0ef388be.entry.js +0 -4
  508. package/dist/twilight/p-1f99db23.entry.js +0 -4
  509. package/dist/twilight/p-232c39e9.entry.js +0 -4
  510. package/dist/twilight/p-305ed224.entry.js +0 -4
  511. package/dist/twilight/p-3a4cf66c.entry.js +0 -4
  512. package/dist/twilight/p-3c4702bb.entry.js +0 -4
  513. package/dist/twilight/p-3dcb5129.entry.js +0 -4
  514. package/dist/twilight/p-43d0c80e.entry.js +0 -4
  515. package/dist/twilight/p-50bbbd18.entry.js +0 -4
  516. package/dist/twilight/p-51c26ce7.entry.js +0 -4
  517. package/dist/twilight/p-54054ab9.entry.js +0 -4
  518. package/dist/twilight/p-5c1a36ab.entry.js +0 -4
  519. package/dist/twilight/p-5cf3929c.entry.js +0 -4
  520. package/dist/twilight/p-8028be6f.entry.js +0 -4
  521. package/dist/twilight/p-82939afe.entry.js +0 -4
  522. package/dist/twilight/p-85cff524.entry.js +0 -4
  523. package/dist/twilight/p-8dfdd6c9.entry.js +0 -4
  524. package/dist/twilight/p-92f6aa52.entry.js +0 -4
  525. package/dist/twilight/p-CrSV-tno.js +0 -4
  526. package/dist/twilight/p-a4aac112.entry.js +0 -4
  527. package/dist/twilight/p-a52bfa57.entry.js +0 -4
  528. package/dist/twilight/p-a9aadc0b.entry.js +0 -4
  529. package/dist/twilight/p-bc26490f.entry.js +0 -4
  530. package/dist/twilight/p-bef93c52.entry.js +0 -4
  531. package/dist/twilight/p-c30bfc0b.entry.js +0 -4
  532. package/dist/twilight/p-cbcca1ff.entry.js +0 -4
  533. package/dist/twilight/p-d81bcfb3.entry.js +0 -4
  534. package/dist/twilight/p-e67b2aa8.entry.js +0 -4
  535. package/dist/twilight/p-e9ce8dec.entry.js +0 -4
  536. package/dist/twilight/p-eb718f6b.entry.js +0 -4
  537. package/dist/twilight/p-ec361a66.entry.js +0 -4
  538. package/dist/twilight/p-f32de457.entry.js +0 -4
  539. package/dist/twilight/p-f626ef96.entry.js +0 -4
  540. package/dist/twilight/p-f6df7f8a.entry.js +0 -4
  541. package/dist/twilight/p-fd3bb3f2.entry.js +0 -4
@@ -53,7 +53,9 @@ export class SallaQuickOrder {
53
53
  salla.onReady(() => {
54
54
  this.productId = this.productId || salla.config.get('page.id');
55
55
  });
56
- salla.lang.onLoaded(() => {
56
+ }
57
+ connectedCallback() {
58
+ this.langUnsubscribe = salla.lang.subscribe(() => {
57
59
  this.placeHolderEmail = salla.lang.get('common.elements.email');
58
60
  this.emailOptional = salla.lang.get('common.elements.optional');
59
61
  this.agreementShowText = salla.lang.get('pages.checkout.show_full_agreement');
@@ -61,6 +63,9 @@ export class SallaQuickOrder {
61
63
  this.userNameLabel = salla.lang.get('pages.products.your_name');
62
64
  });
63
65
  }
66
+ disconnectedCallback() {
67
+ this.langUnsubscribe?.();
68
+ }
64
69
  getBtnColor() {
65
70
  return this.quickOrderStyle === 'default' ? 'light' : 'primary';
66
71
  }
@@ -10,6 +10,7 @@ import ShippingFast from "../../assets/svg/shipping-fast.svg";
10
10
  import Star from "../../assets/svg/star.svg";
11
11
  import WhatsappIcon from "../../assets/svg/whatsapp2.svg";
12
12
  import Helper from "../../Helpers/Helper";
13
+ import { setTranslationDefault } from "../../Helpers/translate";
13
14
  export class SallaRatingModal {
14
15
  constructor() {
15
16
  this.hasError = false;
@@ -85,11 +86,13 @@ export class SallaRatingModal {
85
86
  salla.onReady(() => {
86
87
  this.orderId = salla.config.get('page.id');
87
88
  });
88
- salla.lang.onLoaded(() => {
89
+ }
90
+ connectedCallback() {
91
+ this.langUnsubscribe = salla.lang.subscribe(() => {
89
92
  this.contactUsLabel = salla.lang.get('blocks.footer.social');
90
93
  const setNestedAsync = (lang, key, value) => {
91
94
  return new Promise((resolve) => {
92
- salla.helpers.setNested(salla.lang.messages[lang], key, value);
95
+ setTranslationDefault(lang, key, value);
93
96
  resolve(true);
94
97
  });
95
98
  };
@@ -139,6 +142,9 @@ export class SallaRatingModal {
139
142
  setTranslations();
140
143
  });
141
144
  }
145
+ disconnectedCallback() {
146
+ this.langUnsubscribe?.();
147
+ }
142
148
  getV2Ref() {
143
149
  return this.v2Ref ?? this.host.querySelector('salla-rating-modal-v2');
144
150
  }
@@ -11,24 +11,24 @@ export class SallaRatingStars {
11
11
  this.reviewLabel = '';
12
12
  this.selectedStar = 0;
13
13
  /**
14
- * Sets input name.
15
- */
14
+ * The name attribute for the rating input (used in forms). Default is 'rating'.
15
+ */
16
16
  this.name = 'rating';
17
17
  /**
18
- * Sets the height and width of the component. Defaults to medium.
19
- */
18
+ * The size of the star icons. Can be 'large', 'medium', 'small', or 'mini'. Default is 'medium'.
19
+ */
20
20
  this.size = 'medium';
21
21
  /**
22
- * Number of reviews to display.
23
- */
22
+ * The number of reviews to display next to the stars. Default is 0 (hidden).
23
+ */
24
24
  this.reviews = 0;
25
25
  /**
26
- * Render the description label before the stars instead of after.
27
- */
26
+ * Render the description label before the stars instead of after.
27
+ */
28
28
  this.labelBeforeStars = false;
29
29
  /**
30
- * Allows the rating to be editable.
31
- */
30
+ * Whether the rating is interactive/editable by the user. Default is false (display-only).
31
+ */
32
32
  this.editable = false;
33
33
  this.tag = true;
34
34
  }
@@ -215,7 +215,7 @@ export class SallaRatingStars {
215
215
  "optional": false,
216
216
  "docs": {
217
217
  "tags": [],
218
- "text": "Sets input name."
218
+ "text": "The name attribute for the rating input (used in forms). Default is 'rating'."
219
219
  },
220
220
  "getter": false,
221
221
  "setter": false,
@@ -235,7 +235,7 @@ export class SallaRatingStars {
235
235
  "optional": false,
236
236
  "docs": {
237
237
  "tags": [],
238
- "text": "Sets the height and width of the component. Defaults to medium."
238
+ "text": "The size of the star icons. Can be 'large', 'medium', 'small', or 'mini'. Default is 'medium'."
239
239
  },
240
240
  "getter": false,
241
241
  "setter": false,
@@ -255,7 +255,7 @@ export class SallaRatingStars {
255
255
  "optional": false,
256
256
  "docs": {
257
257
  "tags": [],
258
- "text": "The rating value."
258
+ "text": "The current rating value (0-5). Used to display filled stars."
259
259
  },
260
260
  "getter": false,
261
261
  "setter": false,
@@ -274,7 +274,7 @@ export class SallaRatingStars {
274
274
  "optional": false,
275
275
  "docs": {
276
276
  "tags": [],
277
- "text": "Number of reviews to display."
277
+ "text": "The number of reviews to display next to the stars. Default is 0 (hidden)."
278
278
  },
279
279
  "getter": false,
280
280
  "setter": false,
@@ -294,7 +294,7 @@ export class SallaRatingStars {
294
294
  "optional": false,
295
295
  "docs": {
296
296
  "tags": [],
297
- "text": "Show the description label."
297
+ "text": "Whether to show a descriptive label (e.g., \"Excellent\", \"Good\") next to the rating. Default is false."
298
298
  },
299
299
  "getter": false,
300
300
  "setter": false,
@@ -333,7 +333,7 @@ export class SallaRatingStars {
333
333
  "optional": false,
334
334
  "docs": {
335
335
  "tags": [],
336
- "text": "Allows the rating to be editable."
336
+ "text": "Whether the rating is interactive/editable by the user. Default is false (display-only)."
337
337
  },
338
338
  "getter": false,
339
339
  "setter": false,
@@ -6,6 +6,10 @@ import IconVerified from "../../assets/svg/check.svg";
6
6
  import IconStar2 from "../../assets/svg/star-02.svg";
7
7
  import IconStar2Muted from "../../assets/svg/star-02-muted.svg";
8
8
  import IconFire2 from "../../assets/svg/fire-02.svg";
9
+ /**
10
+ * The `salla-review-card` component displays a product review with images, ratings, and product info.
11
+ * Supports image carousel with swipe gestures.
12
+ */
9
13
  export class SallaReviewCard {
10
14
  constructor() {
11
15
  this.currentSlide = 0;
@@ -158,7 +162,7 @@ export class SallaReviewCard {
158
162
  return (h("a", { href: this.review?.product?.url, class: "s-review-card-product-container" }, h("img", { alt: product.image?.alt || "Product", src: product.image?.url, class: "s-review-card-product-image", width: 60, height: 60, loading: "lazy", decoding: "async", draggable: false }), h("div", { class: "s-review-card-product-details" }, h("p", { class: "s-review-card-product-details-name" }, product.name), this.showPurchaseCount ? h("p", { class: "s-review-card-product-details-purchase-count" }, h("span", { innerHTML: IconFire2 }), this.purchasedCount) : null)));
159
163
  }
160
164
  render() {
161
- return h("div", { key: '44589734c0a8ab8211a50e89e306de7dd53ad679', class: "s-review-card-container" }, this.renderSlider(), this.renderSingleImage(), renderDivider(), h("div", { key: '14e57255f40beab2e4b92724f26f171cdaaf69f4', class: "s-review-card-content" }, this.renderHeader(), h("p", { key: '8f27f7f13b5611a71164dba288f53e53e10e67f0', class: "s-review-card-review-content", innerHTML: this.review?.content }), renderDivider(), this.renderProductInfo()));
165
+ return h("div", { key: '5d214b55ba611ae39a8a3352e67c1c0c74749cae', class: "s-review-card-container" }, this.renderSlider(), this.renderSingleImage(), renderDivider(), h("div", { key: '8f761e54645173d887eaecc50bbc6e1f9664a861', class: "s-review-card-content" }, this.renderHeader(), h("p", { key: 'a75cbc58c4631f96aa112f9cd522a7ad43629b27', class: "s-review-card-review-content", innerHTML: this.review?.content }), renderDivider(), this.renderProductInfo()));
162
166
  }
163
167
  static get is() { return "salla-review-card"; }
164
168
  static get originalStyleUrls() {
@@ -52,11 +52,16 @@ export class SallaReviews {
52
52
  this.displayAllURL = salla.url.get('testimonials');
53
53
  this.isRTL = salla.config.get('theme.is_rtl', true);
54
54
  });
55
- salla.lang.onLoaded(() => {
55
+ }
56
+ connectedCallback() {
57
+ this.langUnsubscribe = salla.lang.subscribe(() => {
56
58
  this.testimonialText = salla.lang.get('blocks.home.testimonials');
57
59
  this.displayAllLinkText = salla.lang.get('blocks.home.display_all');
58
60
  });
59
61
  }
62
+ disconnectedCallback() {
63
+ this.langUnsubscribe?.();
64
+ }
60
65
  fetchReviews() {
61
66
  if (this.source === 'json') {
62
67
  return Promise.resolve(JSON.parse(this.sourceValue));
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { h, Host } from "@stencil/core";
4
+ import { h, Host, forceUpdate } from "@stencil/core";
5
5
  import StoreAlt from "../../assets/svg/store-alt.svg";
6
6
  import Search from "../../assets/svg/search.svg";
7
7
  import { ModeType } from "./interfaces";
@@ -46,10 +46,17 @@ export class SallaScopees {
46
46
  salla.event.on('scopes::open', ({ mode = null, product_id = null } = {}) => {
47
47
  this.open(mode, product_id);
48
48
  });
49
- salla.lang.onLoaded(() => {
49
+ }
50
+ connectedCallback() {
51
+ this.langUnsubscribe = salla.lang.subscribe(() => {
50
52
  this.translationLoaded = true;
53
+ // translationLoaded is already true on later calls, so force the render that refreshes the labels read in render()
54
+ forceUpdate(this);
51
55
  });
52
56
  }
57
+ disconnectedCallback() {
58
+ this.langUnsubscribe?.();
59
+ }
53
60
  /**
54
61
  * Whether to hand scope selection to the native app instead of rendering the web modal.
55
62
  * Delegates only inside the native SPA webview (Salla.mobile.isSpaWebview() — bridge live AND
@@ -5,16 +5,16 @@ import { h, Host } from "@stencil/core";
5
5
  export class SallaSkeleton {
6
6
  constructor() {
7
7
  /**
8
- * Set the shape type of the skeleton is it circle or normal
9
- */
8
+ * The shape type of the skeleton. 'circle' for circular skeletons (e.g., avatars), 'normal' for rectangular shapes. Default is 'normal'.
9
+ */
10
10
  this.type = 'normal';
11
11
  /**
12
- * Set the skeleton width
13
- */
12
+ * The width of the skeleton. Can be any CSS width value (e.g., '100%', '50px', '2rem'). Default is '100%'.
13
+ */
14
14
  this.width = '100%';
15
15
  /**
16
- * Set the skeleton height
17
- */
16
+ * The height of the skeleton. Can be any CSS height value (e.g., '100%', '50px', '2rem'). Default is '100%'.
17
+ */
18
18
  this.height = '100%';
19
19
  }
20
20
  render() {
@@ -22,7 +22,7 @@ export class SallaSkeleton {
22
22
  's-skeleton-item': true,
23
23
  's-skeleton-item-circular': this.type == 'circle',
24
24
  };
25
- return (h(Host, { key: 'b6ea2f9ba293c4c5922a5abf48f05845d02a8590', class: "s-skeleton-wrapper", style: { width: this.width, height: this.height } }, h("div", { key: '8fa3bed8b7aa80e01742d6c2496bc0578aabe7f1', class: classes }, "\u00A0")));
25
+ return (h(Host, { key: '7a1ce16742202fd5e2e37eded505d94e03079137', class: "s-skeleton-wrapper", style: { width: this.width, height: this.height } }, h("div", { key: '8fb06aebef2322b52ad83f7524f42d8908c4b5b0', class: classes }, "\u00A0")));
26
26
  }
27
27
  static get is() { return "salla-skeleton"; }
28
28
  static get originalStyleUrls() {
@@ -50,7 +50,7 @@ export class SallaSkeleton {
50
50
  "optional": false,
51
51
  "docs": {
52
52
  "tags": [],
53
- "text": "Set the shape type of the skeleton is it circle or normal"
53
+ "text": "The shape type of the skeleton. 'circle' for circular skeletons (e.g., avatars), 'normal' for rectangular shapes. Default is 'normal'."
54
54
  },
55
55
  "getter": false,
56
56
  "setter": false,
@@ -70,7 +70,7 @@ export class SallaSkeleton {
70
70
  "optional": false,
71
71
  "docs": {
72
72
  "tags": [],
73
- "text": "Set the skeleton width"
73
+ "text": "The width of the skeleton. Can be any CSS width value (e.g., '100%', '50px', '2rem'). Default is '100%'."
74
74
  },
75
75
  "getter": false,
76
76
  "setter": false,
@@ -90,7 +90,7 @@ export class SallaSkeleton {
90
90
  "optional": false,
91
91
  "docs": {
92
92
  "tags": [],
93
- "text": "Set the skeleton height"
93
+ "text": "The height of the skeleton. Can be any CSS height value (e.g., '100%', '50px', '2rem'). Default is '100%'."
94
94
  },
95
95
  "getter": false,
96
96
  "setter": false,
@@ -325,14 +325,16 @@ export class SallaSlider {
325
325
  isStaticWhenSingle() {
326
326
  return this.staticWhenSingle && this.host.querySelector('[slot="items"]')?.children?.length === 1;
327
327
  }
328
+ connectedCallback() {
329
+ this.langUnsubscribe = salla.lang.subscribe(() => {
330
+ this.displayAllTitle = salla.lang.get('blocks.home.display_all');
331
+ });
332
+ }
328
333
  async componentWillLoad() {
329
334
  if (this.isStaticWhenSingle()) {
330
335
  this.host.classList.add('s-slider-single-mode');
331
336
  return;
332
337
  }
333
- salla.lang.onLoaded(() => {
334
- this.displayAllTitle = salla.lang.get('blocks.home.display_all');
335
- });
336
338
  this.hasThumbSlot = !!this.host.querySelector('[slot="thumbs"]');
337
339
  if (this.listenToThumbnailsOption) {
338
340
  salla.event.on('product-options::change', data => {
@@ -617,6 +619,7 @@ export class SallaSlider {
617
619
  this.viewportMediaQuery.addEventListener('change', this.onViewportChange);
618
620
  }
619
621
  disconnectedCallback() {
622
+ this.langUnsubscribe?.();
620
623
  if (this.isStaticWhenSingle()) {
621
624
  return;
622
625
  }
@@ -17,10 +17,15 @@ export class SallaSocial {
17
17
  this.iconsList = { instagram, twitter, facebook, youtube, snapchat, tiktok };
18
18
  this.socialSlot = this.host.querySelector('[slot="social-item"]')?.innerHTML ||
19
19
  `<a href={link} rel="noopener" target="_blank" title={type} aria-label={type}><span class="s-social-icon">{icon}</span></a>`;
20
- salla.lang.onLoaded(() => {
20
+ }
21
+ connectedCallback() {
22
+ this.langUnsubscribe = salla.lang.subscribe(() => {
21
23
  this.links = salla.config.get('store.social');
22
24
  });
23
25
  }
26
+ disconnectedCallback() {
27
+ this.langUnsubscribe?.();
28
+ }
24
29
  getLinksArray() {
25
30
  return this.links ? Object.entries(this.links)
26
31
  .filter(([key, value]) => !!value && key !== 'whatsapp')
@@ -31,7 +36,7 @@ export class SallaSocial {
31
36
  }
32
37
  render() {
33
38
  const linksArray = this.getLinksArray();
34
- return (h(Host, { key: '4b8d92800f475d314d5637e290c1fa95c78335f5' }, h("ul", { key: 'b6134f221891e28484155c55d3bcf0182bcb967a', class: "s-social-list" }, linksArray.map((link) => (h("li", { class: "s-social-link" }, h("div", { id: "social-slot", innerHTML: this.socialSlot
39
+ return (h(Host, { key: 'ce42d3f37cc3c9b9753f9431b43267e4a49153a3' }, h("ul", { key: '515e3effaf234de3b639bc5276559f05de06e755', class: "s-social-list" }, linksArray.map((link) => (h("li", { class: "s-social-link" }, h("div", { id: "social-slot", innerHTML: this.socialSlot
35
40
  .replace(/\{icon\}/g, this.iconsList[link.type])
36
41
  .replace(/\{type\}/g, link.type)
37
42
  .replace(/\{link\}/g, link.value.toString()) })))))));
@@ -10,8 +10,8 @@ export class SallaTabHeader {
10
10
  constructor() {
11
11
  this.id = generateRandomId();
12
12
  /**
13
- * The class applied to the currently active(selected) tab
14
- */
13
+ * The class applied to the currently active(selected) tab
14
+ */
15
15
  this.activeClass = undefined;
16
16
  /**
17
17
  * Set the height of the tab bar
@@ -52,7 +52,7 @@ export class SallaTabHeader {
52
52
  's-tabs-active': this.isSelected,
53
53
  };
54
54
  return [
55
- h("div", { key: '04bb51760a3e43aed1645cf724b90e21ee2631bf', class: classes, onClick: this.onClick.bind(this) }, h("slot", { key: 'c9d5fc5dbc0a45712c9aa5e03becc613590011ea' })),
55
+ h("div", { key: '1169c14eb00246f521ccb3929f7167d605d18a7e', class: classes, onClick: this.onClick.bind(this) }, h("slot", { key: '33d608f80ee3ff772bae744c20caa70755334463' })),
56
56
  ];
57
57
  }
58
58
  static get is() { return "salla-tab-header"; }
@@ -3,23 +3,6 @@
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
5
  export class SallaTelInput {
6
- /**
7
- * Lazy load intl-tel-input library
8
- * This reduces initial bundle size by ~80-90KB
9
- */
10
- async loadTelInput() {
11
- if (this.TelInput)
12
- return;
13
- try {
14
- const telInputModule = await import('intl-tel-input');
15
- this.TelInput = telInputModule.default;
16
- }
17
- catch (error) {
18
- console.error('Failed to load Tel Input:', error);
19
- salla.notify?.error?.('Failed to load phone input. Please refresh the page.');
20
- throw error;
21
- }
22
- }
23
6
  constructor() {
24
7
  /**
25
8
  * input name
@@ -40,7 +23,26 @@ export class SallaTelInput {
40
23
  this.invalidCountryCode = salla.lang.get('common.errors.invalid_value', { attribute: this.countryCodeLabel });
41
24
  this.invalidNumber = salla.lang.get('common.errors.invalid_value', { attribute: this.mobileLabel });
42
25
  this.errorMap = [this.invalidNumber, this.invalidCountryCode, this.tooShort, this.tooLong, this.invalidNumber];
43
- salla.lang.onLoaded(() => {
26
+ }
27
+ /**
28
+ * Lazy load intl-tel-input library
29
+ * This reduces initial bundle size by ~80-90KB
30
+ */
31
+ async loadTelInput() {
32
+ if (this.TelInput)
33
+ return;
34
+ try {
35
+ const telInputModule = await import('intl-tel-input');
36
+ this.TelInput = telInputModule.default;
37
+ }
38
+ catch (error) {
39
+ console.error('Failed to load Tel Input:', error);
40
+ salla.notify?.error?.('Failed to load phone input. Please refresh the page.');
41
+ throw error;
42
+ }
43
+ }
44
+ connectedCallback() {
45
+ this.langUnsubscribe = salla.lang.subscribe(() => {
44
46
  this.mobileLabel = salla.lang.get('common.elements.mobile');
45
47
  this.countryCodeLabel = salla.lang.get('common.elements.country_code');
46
48
  this.invalidNumber = salla.lang.get('common.errors.invalid_value', { attribute: this.mobileLabel });
@@ -51,6 +53,9 @@ export class SallaTelInput {
51
53
  this.errorMap = [this.invalidNumber, this.invalidCountryCode, this.tooShort, this.tooLong, this.invalidNumber];
52
54
  });
53
55
  }
56
+ disconnectedCallback() {
57
+ this.langUnsubscribe?.();
58
+ }
54
59
  // Init is async and v26 loads the validation utils lazily; both must settle.
55
60
  async whenReady() {
56
61
  await this.initPromise;
@@ -138,7 +143,7 @@ export class SallaTelInput {
138
143
  }
139
144
  }
140
145
  render() {
141
- return (h(Host, { key: 'd03d6361922175ab55e0f58fd54cbbc09f89e5e6', class: "s-tel-input" }, h("input", { key: '69a1fea1c843d4d36d6b0dd59131fa82f0cb62b6', type: "tel", disabled: this.disabled, name: this.name, value: this.phone, onChange: (event) => this.handleCountryInput(event), ref: el => this.phoneInput = el, enterkeyhint: "next", autocomplete: "tel", class: "s-tel-input-control tel-input s-ltr" }), h("span", { key: 'd627bceaf3d7e812a8bc727a12359495350d51b8', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), h("input", { key: '013c643d29f51c5ff35cd94ab62e4fcffbb8df0c', type: "hidden", name: "country_code", value: this.countryCode, ref: el => this.countryCodeInput = el, class: "country_code" })));
146
+ return (h(Host, { key: '3b574317d312de0e81facdcc3c470adcccfa1b14', class: "s-tel-input" }, h("input", { key: '6884be98619d7c86a14ac091cbbcc8bbbf78404f', type: "tel", disabled: this.disabled, name: this.name, value: this.phone, onChange: (event) => this.handleCountryInput(event), ref: el => this.phoneInput = el, enterkeyhint: "next", autocomplete: "tel", class: "s-tel-input-control tel-input s-ltr" }), h("span", { key: '670676e296168ebd3771b50fbd1fde9d1d3e27fc', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), h("input", { key: '1c69b4e169c37a71a86cc479b06c08dc6a9d190b', type: "hidden", name: "country_code", value: this.countryCode, ref: el => this.countryCodeInput = el, class: "country_code" })));
142
147
  }
143
148
  componentDidLoad() {
144
149
  this.initPromise = this.initTelInput();
@@ -13,13 +13,18 @@ export class SallaTieredOffer {
13
13
  this.handleTabClick = (tierName) => {
14
14
  this.activeTabTier = tierName;
15
15
  };
16
- salla.lang.onLoaded(() => {
16
+ }
17
+ connectedCallback() {
18
+ this.langUnsubscribe = salla.lang.subscribe(() => {
17
19
  this.loyaltyProgramText = salla.lang.get('blocks.tiered_offer.program_title');
18
20
  this.currentTierText = salla.lang.get('blocks.tiered_offer.current_tier');
19
21
  this.discountText = salla.lang.get('blocks.tiered_offer.discount');
20
22
  this.benefitText = salla.lang.get('blocks.tiered_offer.tier_description');
21
23
  });
22
24
  }
25
+ disconnectedCallback() {
26
+ this.langUnsubscribe?.();
27
+ }
23
28
  async componentWillLoad() {
24
29
  try {
25
30
  await salla.onReady();
@@ -2,6 +2,7 @@
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
4
  import { Host, h } from "@stencil/core";
5
+ import { setTranslationDefault } from "../../Helpers/translate";
5
6
  export class SallaTrustBadges {
6
7
  constructor() {
7
8
  /**
@@ -11,18 +12,21 @@ export class SallaTrustBadges {
11
12
  this.commercialRegisterLabel = '';
12
13
  this.freelanceLabel = '';
13
14
  }
14
- componentWillLoad() {
15
+ connectedCallback() {
15
16
  this.initializeTranslations();
16
17
  }
18
+ disconnectedCallback() {
19
+ this.langUnsubscribe?.();
20
+ }
17
21
  // The badge image is a KSA-only legal requirement.
18
22
  isVisibilityEnforced() {
19
23
  return salla.config.get('store.store_country') === 'SA';
20
24
  }
21
25
  initializeTranslations() {
22
- salla.lang.onLoaded(() => {
26
+ this.langUnsubscribe = salla.lang.subscribe(() => {
23
27
  // Set translations synchronously
24
28
  const setTranslation = (lang, key, value) => {
25
- salla.helpers.setNested(salla.lang.messages[lang], key, value);
29
+ setTranslationDefault(lang, key, value);
26
30
  };
27
31
  // Add missing translations
28
32
  setTranslation('ar.trans', 'blocks.footer.commercial_register', 'السجل التجاري');
@@ -85,6 +85,12 @@ export class SallaUserMenu {
85
85
  profile: ProfileIcon
86
86
  };
87
87
  }
88
+ connectedCallback() {
89
+ this.langUnsubscribe = salla.lang.subscribe(() => this.loadTranslations());
90
+ }
91
+ disconnectedCallback() {
92
+ this.langUnsubscribe?.();
93
+ }
88
94
  async componentWillLoad() {
89
95
  await salla.onReady();
90
96
  await salla.lang.onLoaded();
@@ -20,7 +20,6 @@ import { Genders } from "./interfaces";
20
20
  * rich set of features and customization options.
21
21
  */
22
22
  export class SallaUserProfile {
23
- // Constructor
24
23
  constructor() {
25
24
  /**
26
25
  * The minimum allowed age for a user. Users with a birthdate indicating an age less than this value will be considered invalid.
@@ -48,8 +47,10 @@ export class SallaUserProfile {
48
47
  this.invalid_email_trans = salla.lang.get('pages.error.invalid_value', {
49
48
  attribute: 'email',
50
49
  });
50
+ }
51
+ connectedCallback() {
51
52
  // Localization setup when the language is loaded
52
- salla.lang.onLoaded(() => {
53
+ this.langUnsubscribe = salla.lang.subscribe(() => {
53
54
  // Assigning translated strings to state properties
54
55
  // These translations are fetched from the localization object
55
56
  this.first_name_trans = salla.lang.get('pages.profile.first_name');
@@ -71,6 +72,9 @@ export class SallaUserProfile {
71
72
  });
72
73
  });
73
74
  }
75
+ disconnectedCallback() {
76
+ this.langUnsubscribe?.();
77
+ }
74
78
  // Event handler for phone number field changes
75
79
  phoneNumberFieldEventHandler(data) {
76
80
  if (!data.detail.number) {
@@ -113,11 +113,16 @@ export class SallaUserSettings {
113
113
  });
114
114
  }
115
115
  });
116
- salla.lang.onLoaded(() => {
116
+ }
117
+ connectedCallback() {
118
+ this.langUnsubscribe = salla.lang.subscribe(() => {
117
119
  this.registerTranslationDefaults();
118
120
  this.loadTranslations();
119
121
  });
120
122
  }
123
+ disconnectedCallback() {
124
+ this.langUnsubscribe?.();
125
+ }
121
126
  getDaysUntilExecution(executionAt) {
122
127
  const executionMs = executionAt > 1e12 ? executionAt : executionAt * 1000;
123
128
  return Math.max(0, Math.ceil((executionMs - Date.now()) / 86400000));
@@ -532,7 +537,7 @@ export class SallaUserSettings {
532
537
  return (h("salla-button", { fill: "outline", color: "danger", shape: "btn", size: "medium", width: "normal", onClick: () => this.openDeleteModal() }, this.capitalizeText(this.deleteAccount)));
533
538
  }
534
539
  render() {
535
- return (h(Host, { key: '830b118e5ceabea1a2b14298d4aba796a040ec23', class: "s-user-settings-wrapper" }, this.canHideName && (h("div", { key: '3cf9e816c9757a8b60d6529091fe14df5ea32e4e', class: "s-user-settings-section" }, h("salla-list-tile", { key: '0ffb3e8f97d6b0af34fd57721f9430cc48cc67d2' }, h("div", { key: '702c5826f7f2fe9b4dcfe358f66cef306bafb5ab', slot: "icon", class: "s-user-settings-section-icon" }, h("span", { key: 'e4ed4d6b03f1df675900b6a9ea6ea53b222414de', innerHTML: UserCancel })), h("div", { key: '4f6d392cdd4080ddff359381dfaf21847fdfba13', slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.hideMyName)), h("div", { key: 'e786b26d5547e83bcab8df6dfa0c1697a1dc5727', slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.hideMyNameDesc)), h("div", { key: 'a875a59062a1ff9e600b3b2cac9e1265467d45d6', slot: "action", class: "s-user-settings-section-action" }, h("label", { key: '450801ab871d8603fc79b05a0b5b8bc4d7ce4457', class: "s-toggle" }, h("input", { key: '9b79c1e08008b3c839ffe2492bf160b0e51c30d8', class: "s-toggle-input", checked: this.isHiddenName, onChange: e => this.toggleSetting('is_hidden_name', e), type: "checkbox" }), h("div", { key: 'ca0807167186af65c389afd1f6db8487c61aa7cf', class: "s-toggle-switcher" })))))), h("div", { key: '57b71f67259053faad864b1c81a496b4cb0792f6', class: "s-user-settings-section" }, h("salla-list-tile", { key: '5f59cf890492310d734e3e3de92f5866280993c1' }, h("div", { key: 'a3d39ee7bc01fb41060e8447d566a721f0638673', slot: "icon", class: "s-user-settings-section-icon" }, h("span", { key: 'ebe6f58818f3954091ec278f7dd0d5b947e6bf01', innerHTML: Bullhorn })), h("div", { key: '68f3f48970a343238d9a221cb5581584db5695a8', slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.promotionalMsgs)), h("div", { key: '2b3edd4333a7730eae644023a021d49a57112fb9', slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.promotionalMsgsDesc)), h("div", { key: '0f406c80ed900ab42b5eaa4148b27e3db6222a0a', slot: "action", class: "s-user-settings-section-action" }, h("label", { key: 'e0b42fd7b6df963de51ca8e9ddd06a1710589760', class: "s-toggle" }, h("input", { key: 'e67b1189631ea46e58fa12228b4d357a621f4cc6', class: "s-toggle-input", checked: this.isNotifiable, onChange: e => this.toggleSetting('is_notifiable', e), type: "checkbox" }), h("div", { key: '52620a74be33301cbcb31d60d80919d99e342b2f', class: "s-toggle-switcher" }))))), this.isDeleteAccountEnabled ? (h("div", { class: "s-user-settings-section s-user-settings-section-delete-user" }, h("salla-list-tile", null, h("div", { slot: "icon", class: "s-user-settings-section-icon" }, this.renderUserDeleteIcon()), h("div", { slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.deleteAccount)), h("div", { slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.isDeletePending ? this.deleteAccountPending : this.deleteAccountDesc)), h("div", { slot: "action", class: "s-user-settings-section-action" }, this.renderDeleteSectionAction())))) : (h("div", { class: "s-user-settings-section s-user-settings-section-deactivate-user" }, h("salla-list-tile", null, h("div", { slot: "icon", class: "s-user-settings-section-icon" }, h("span", { innerHTML: UserOff })), h("div", { slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.deactivateAccount)), h("div", { slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.deactivateDesc)), h("div", { slot: "action", class: "s-user-settings-section-action" }, h("salla-button", { fill: "outline", color: "danger", shape: "btn", size: "medium", width: "normal", onClick: () => this.openDeactivateModal() }, this.capitalizeText(this.deactivateAccount)))))), this.isDeleteAccountEnabled ? (h("salla-modal", { id: "salla-user-settings-delete-modal", width: "xs", centered: true, showBack: this.currentStep === 'otp', isClosable: this.currentStep !== 'success', iconStyle: this.currentStep === 'success' ? 'success' : undefined, onModalVisibilityChanged: e => this.handleModalVisibilityChanged(e), onModalBack: () => this.goBackFromOtp(), ref: modal => (this.confirmationModal = modal) }, this.currentStep !== 'success' ? (h("span", { slot: "icon", class: "s-user-settings-delete-icon" }, this.renderUserDeleteIcon())) : null, h("div", { key: this.currentStep, class: "s-user-settings-delete-step" }, this.renderDeleteStep()))) : (h("salla-modal", { width: "sm", subTitle: this.capitalizeText(this.sorryForLeavingText), ref: modal => (this.confirmationModal = modal) }, h("span", { slot: "icon", class: "s-user-settings-confirmation-icon", innerHTML: UserOff }), h("div", { class: "s-user-settings-confirmation" }, h("div", { class: "s-user-settings-confirmation-warning" }, this.capitalizeText(this.warningText)), h("div", { class: "s-user-settings-confirmation-actions" }, h("salla-button", { width: "wide", onClick: () => this.confirmationModal.close() }, this.capitalizeText(this.keepAccount)), h("salla-button", { fill: "outline", loading: this.buttonLoading, width: "wide", onClick: () => this.confirmDeactivateAccount() }, this.capitalizeText(this.deactivateAccount))))))));
540
+ return (h(Host, { key: '371350c4fcfd92a9434000b1390cb5ab01a92cc5', class: "s-user-settings-wrapper" }, this.canHideName && (h("div", { key: '4e4ade371cc81d7e4c5750f5341f30bfcfc082a6', class: "s-user-settings-section" }, h("salla-list-tile", { key: 'fd23340814c525c686f9c94e17bc6a3d2182ac1e' }, h("div", { key: 'd0cfc9df3a6072335133ac2817ed9afa34ea489e', slot: "icon", class: "s-user-settings-section-icon" }, h("span", { key: '17546bf4c7931fafdb769168c6cb1788303a6312', innerHTML: UserCancel })), h("div", { key: '09ec636514d69b741a3cd1a91d5599d0ff34cca1', slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.hideMyName)), h("div", { key: 'f69abae297492ed509475590b2623745efb30f03', slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.hideMyNameDesc)), h("div", { key: '17c0191aae2401b8a1cd22942a5acecc0dfe1c62', slot: "action", class: "s-user-settings-section-action" }, h("label", { key: '6b55ddc3ec0a01767f870e279ae7bfad9f43663e', class: "s-toggle" }, h("input", { key: '18af334c71b48528543de61a9c3a71a73dc054b5', class: "s-toggle-input", checked: this.isHiddenName, onChange: e => this.toggleSetting('is_hidden_name', e), type: "checkbox" }), h("div", { key: 'c90548df6ff7dc5beceeb2347545923ea4de096e', class: "s-toggle-switcher" })))))), h("div", { key: 'c471b3a73abbfbc1a894e5f2c9fcb8af4ea085f5', class: "s-user-settings-section" }, h("salla-list-tile", { key: 'a906c43c0b227d6f757ec919047cfade9192cdc4' }, h("div", { key: '7e4c1375e64883c3465393f855a9faa987137bc1', slot: "icon", class: "s-user-settings-section-icon" }, h("span", { key: '5d8ee4cb69ddf765ddb6c108594c7de4cbedd078', innerHTML: Bullhorn })), h("div", { key: '4e0e5b84822e98234be621eab4150c48581e104b', slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.promotionalMsgs)), h("div", { key: 'ac8521a039e4e869cb1aeea7213df8b70ce87bb7', slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.promotionalMsgsDesc)), h("div", { key: '6caa3b3d1fe8eadc194ad44a4e2299f9a95018ea', slot: "action", class: "s-user-settings-section-action" }, h("label", { key: '37a26623047ef4cb98f7bbdb8715b515488c5ac0', class: "s-toggle" }, h("input", { key: 'f74fbb125afb8743fc981672ffa56b129c4ed2ed', class: "s-toggle-input", checked: this.isNotifiable, onChange: e => this.toggleSetting('is_notifiable', e), type: "checkbox" }), h("div", { key: '45b367693d63424e859d4dce5538a2ee37ff76a7', class: "s-toggle-switcher" }))))), this.isDeleteAccountEnabled ? (h("div", { class: "s-user-settings-section s-user-settings-section-delete-user" }, h("salla-list-tile", null, h("div", { slot: "icon", class: "s-user-settings-section-icon" }, this.renderUserDeleteIcon()), h("div", { slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.deleteAccount)), h("div", { slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.isDeletePending ? this.deleteAccountPending : this.deleteAccountDesc)), h("div", { slot: "action", class: "s-user-settings-section-action" }, this.renderDeleteSectionAction())))) : (h("div", { class: "s-user-settings-section s-user-settings-section-deactivate-user" }, h("salla-list-tile", null, h("div", { slot: "icon", class: "s-user-settings-section-icon" }, h("span", { innerHTML: UserOff })), h("div", { slot: "title", class: "s-user-settings-section-title" }, this.capitalizeText(this.deactivateAccount)), h("div", { slot: "subtitle", class: "s-user-settings-section-subtitle" }, this.capitalizeText(this.deactivateDesc)), h("div", { slot: "action", class: "s-user-settings-section-action" }, h("salla-button", { fill: "outline", color: "danger", shape: "btn", size: "medium", width: "normal", onClick: () => this.openDeactivateModal() }, this.capitalizeText(this.deactivateAccount)))))), this.isDeleteAccountEnabled ? (h("salla-modal", { id: "salla-user-settings-delete-modal", width: "xs", centered: true, showBack: this.currentStep === 'otp', isClosable: this.currentStep !== 'success', iconStyle: this.currentStep === 'success' ? 'success' : undefined, onModalVisibilityChanged: e => this.handleModalVisibilityChanged(e), onModalBack: () => this.goBackFromOtp(), ref: modal => (this.confirmationModal = modal) }, this.currentStep !== 'success' ? (h("span", { slot: "icon", class: "s-user-settings-delete-icon" }, this.renderUserDeleteIcon())) : null, h("div", { key: this.currentStep, class: "s-user-settings-delete-step" }, this.renderDeleteStep()))) : (h("salla-modal", { width: "sm", subTitle: this.capitalizeText(this.sorryForLeavingText), ref: modal => (this.confirmationModal = modal) }, h("span", { slot: "icon", class: "s-user-settings-confirmation-icon", innerHTML: UserOff }), h("div", { class: "s-user-settings-confirmation" }, h("div", { class: "s-user-settings-confirmation-warning" }, this.capitalizeText(this.warningText)), h("div", { class: "s-user-settings-confirmation-actions" }, h("salla-button", { width: "wide", onClick: () => this.confirmationModal.close() }, this.capitalizeText(this.keepAccount)), h("salla-button", { fill: "outline", loading: this.buttonLoading, width: "wide", onClick: () => this.confirmDeactivateAccount() }, this.capitalizeText(this.deactivateAccount))))))));
536
541
  }
537
542
  static get is() { return "salla-user-settings"; }
538
543
  static get originalStyleUrls() {
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { Host, h } from "@stencil/core";
4
+ import { Host, h, forceUpdate } from "@stencil/core";
5
5
  import AndroidPhoneIcon from "../../assets/svg/android-phone.svg";
6
6
  import MailIcon from "../../assets/svg/mail.svg";
7
7
  /**
@@ -32,11 +32,6 @@ export class SallaVerify {
32
32
  * to use: `salla.api.auth.verify` or `salla.profile.verify`
33
33
  */
34
34
  this.isProfileVerify = false;
35
- salla.lang.onLoaded(() => {
36
- this.translationLoaded = true;
37
- this.title = salla.lang.get('pages.profile.verify_title') + salla.lang.get('common.elements.' + this.type);
38
- this.modal?.setTitle(this.title);
39
- });
40
35
  if (this.display == 'inline') {
41
36
  this.modal = { open: () => '', close: () => '', setTitle: () => '' };
42
37
  return;
@@ -62,6 +57,18 @@ export class SallaVerify {
62
57
  this.timer.innerHTML = '30 : 00';
63
58
  });
64
59
  }
60
+ connectedCallback() {
61
+ this.langUnsubscribe = salla.lang.subscribe(() => {
62
+ this.translationLoaded = true;
63
+ this.title = salla.lang.get('pages.profile.verify_title') + salla.lang.get('common.elements.' + this.type);
64
+ this.modal?.setTitle(this.title);
65
+ // translationLoaded is already true on later calls, so force the render that refreshes the labels read in render()
66
+ forceUpdate(this);
67
+ });
68
+ }
69
+ disconnectedCallback() {
70
+ this.langUnsubscribe?.();
71
+ }
65
72
  splitNumber(e) {
66
73
  this.resetError();
67
74
  let data = e.data || e.target.value; // Chrome doesn't get the e.data, it's always empty, fallback to value then.