@salla.sa/twilight-components 2.14.596 → 2.14.598

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 (551) hide show
  1. package/dist/cjs/{filepond-MMeFYRaC.js → filepond-Yrcu23Ew.js} +1 -1
  2. package/dist/cjs/{filepond-plugin-file-poster-Dd1aobB-.js → filepond-plugin-file-poster-DRez16xM.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-validate-size-Be46s5wp.js → filepond-plugin-file-validate-size-H6Ijvhk2.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-type-Cf3OjTHE.js → filepond-plugin-file-validate-type-ozbX9Tb-.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-image-edit-BDX5qgng.js → filepond-plugin-image-edit-CynCgK8H.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-exif-orientation-ilZNc8J4.js → filepond-plugin-image-exif-orientation-C18fCqoh.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-preview-C9c7tVEB.js → filepond-plugin-image-preview-FiRPNiZp.js} +1 -1
  8. package/dist/cjs/{index-zv0p1Eys.js → index-CpkvCUQ3.js} +7 -7
  9. package/dist/cjs/{intlTelInput-C8hiSJ_i.js → intlTelInput-dW1ObsSS.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 +111 -37
  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 +47 -24
  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 +14 -3
  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 +11 -4
  76. package/dist/cjs/salla-orders.cjs.entry.js +41 -7
  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 +16 -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 +9 -5
  99. package/dist/cjs/salla-user-menu.cjs.entry.js +39 -2
  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-CSaDVE6R.js} +1 -1
  109. package/dist/collection/Helpers/money-text.js +37 -0
  110. package/dist/collection/Helpers/translate.js +36 -0
  111. package/dist/collection/components/salla-add-product-button/salla-add-product-button.js +7 -2
  112. package/dist/collection/components/salla-alert/salla-alert.js +5 -5
  113. package/dist/collection/components/salla-apps-icons/salla-apps-icons.js +6 -1
  114. package/dist/collection/components/salla-booking-field/salla-booking-field.js +10 -4
  115. package/dist/collection/components/salla-bottom-alert/salla-bottom-alert.js +23 -17
  116. package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.css +2 -0
  117. package/dist/collection/components/salla-button/salla-button.js +19 -27
  118. package/dist/collection/components/salla-cart-item-offers/salla-cart-item-offers.js +10 -3
  119. package/dist/collection/components/salla-cart-summary/salla-cart-summary.js +2 -2
  120. package/dist/collection/components/salla-comment-form/salla-comment-form.js +10 -5
  121. package/dist/collection/components/salla-comments/salla-comment-item.js +11 -3
  122. package/dist/collection/components/salla-comments/salla-comments.js +9 -3
  123. package/dist/collection/components/salla-contacts/salla-contacts.js +9 -2
  124. package/dist/collection/components/salla-count-down/salla-count-down.js +23 -18
  125. package/dist/collection/components/salla-custom-fields/salla-custom-fields.js +4 -0
  126. package/dist/collection/components/salla-file-upload/salla-file-upload.js +69 -5
  127. package/dist/collection/components/salla-filters/salla-filters.js +10 -5
  128. package/dist/collection/components/salla-filters-widget/salla-filters-widget.js +6 -3
  129. package/dist/collection/components/salla-gifting/salla-gifting.js +11 -6
  130. package/dist/collection/components/salla-hook/salla-hook.js +5 -1
  131. package/dist/collection/components/salla-infinite-scroll/salla-infinite-scroll.js +6 -1
  132. package/dist/collection/components/salla-localization-modal/salla-localization-modal.js +15 -2
  133. package/dist/collection/components/salla-login-modal/salla-login-modal.css +3 -0
  134. package/dist/collection/components/salla-login-modal/salla-login-modal.js +12 -1
  135. package/dist/collection/components/salla-loyalty/salla-loyalty.js +12 -5
  136. package/dist/collection/components/salla-map/salla-map.js +12 -7
  137. package/dist/collection/components/salla-notifications/salla-notifications.js +6 -1
  138. package/dist/collection/components/salla-offer/salla-offer.js +12 -7
  139. package/dist/collection/components/salla-offer-modal/salla-offer-modal.js +13 -6
  140. package/dist/collection/components/salla-order-branch/salla-order-branch.css +35 -0
  141. package/dist/collection/components/salla-order-branch/salla-order-branch.js +40 -2
  142. package/dist/collection/components/salla-order-summary/salla-order-summary.js +6 -3
  143. package/dist/collection/components/salla-order-totals-card/salla-order-totals-card.js +10 -3
  144. package/dist/collection/components/salla-orders/salla-orders.js +13 -6
  145. package/dist/collection/components/salla-placeholder/salla-placeholder.js +10 -3
  146. package/dist/collection/components/salla-price-range/salla-price-range.js +6 -3
  147. package/dist/collection/components/salla-product-availability/salla-product-availability.js +16 -7
  148. package/dist/collection/components/salla-product-card/salla-product-card.js +24 -17
  149. package/dist/collection/components/salla-product-options/salla-product-options.js +9 -6
  150. package/dist/collection/components/salla-product-size-guide/salla-product-size-guide.js +8 -3
  151. package/dist/collection/components/salla-products-list/salla-products-list.js +4 -3
  152. package/dist/collection/components/salla-progress-bar/salla-progress-bar.js +20 -4
  153. package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +6 -1
  154. package/dist/collection/components/salla-quick-order/salla-quick-order.js +6 -1
  155. package/dist/collection/components/salla-rating-modal/salla-rating-modal.js +8 -2
  156. package/dist/collection/components/salla-rating-stars/salla-rating-stars.js +16 -16
  157. package/dist/collection/components/salla-review-card/salla-review-card.js +5 -1
  158. package/dist/collection/components/salla-reviews/salla-reviews.js +6 -1
  159. package/dist/collection/components/salla-scopes/salla-scopes.js +9 -2
  160. package/dist/collection/components/salla-skeleton/salla-skeleton.js +10 -10
  161. package/dist/collection/components/salla-slider/salla-slider.js +6 -3
  162. package/dist/collection/components/salla-social/salla-social.js +7 -2
  163. package/dist/collection/components/salla-tabs/salla-tab-header.js +3 -3
  164. package/dist/collection/components/salla-tel-input/salla-tel-input.js +24 -19
  165. package/dist/collection/components/salla-tiered-offer/salla-tiered-offer.js +6 -1
  166. package/dist/collection/components/salla-trust-badges/salla-trust-badges.css +17 -12
  167. package/dist/collection/components/salla-trust-badges/salla-trust-badges.js +7 -3
  168. package/dist/collection/components/salla-user-menu/salla-user-menu.js +38 -1
  169. package/dist/collection/components/salla-user-profile/salla-user-profile.js +6 -2
  170. package/dist/collection/components/salla-user-settings/salla-user-settings.js +7 -2
  171. package/dist/collection/components/salla-verify/salla-verify.js +13 -6
  172. package/dist/components/index.js +3 -3
  173. package/dist/components/salla-add-product-button2.js +7 -2
  174. package/dist/components/salla-alert.js +2 -2
  175. package/dist/components/salla-apps-icons.js +6 -1
  176. package/dist/components/salla-booking-field2.js +10 -4
  177. package/dist/components/salla-bottom-alert.js +23 -17
  178. package/dist/components/salla-bullet-delivery.js +1 -1
  179. package/dist/components/salla-button2.js +9 -17
  180. package/dist/components/salla-cart-item-offers.js +10 -3
  181. package/dist/components/salla-cart-summary.js +1 -1
  182. package/dist/components/salla-comment-form2.js +10 -5
  183. package/dist/components/salla-comment-item2.js +11 -3
  184. package/dist/components/salla-comments.js +9 -3
  185. package/dist/components/salla-contacts.js +9 -2
  186. package/dist/components/salla-count-down2.js +16 -11
  187. package/dist/components/salla-file-upload2.js +69 -5
  188. package/dist/components/salla-filters-widget2.js +6 -3
  189. package/dist/components/salla-filters.js +9 -4
  190. package/dist/components/salla-gifting.js +11 -6
  191. package/dist/components/salla-hook.js +1 -1
  192. package/dist/components/salla-infinite-scroll.js +6 -1
  193. package/dist/components/salla-localization-modal.js +15 -2
  194. package/dist/components/salla-login-modal2.js +13 -2
  195. package/dist/components/salla-loyalty.js +12 -5
  196. package/dist/components/salla-map2.js +12 -7
  197. package/dist/components/salla-notifications.js +6 -1
  198. package/dist/components/salla-offer-modal.js +13 -6
  199. package/dist/components/salla-offer.js +12 -7
  200. package/dist/components/salla-order-branch.js +41 -3
  201. package/dist/components/salla-order-summary.js +6 -3
  202. package/dist/components/salla-order-totals-card.js +10 -3
  203. package/dist/components/salla-orders.js +40 -6
  204. package/dist/components/salla-placeholder2.js +10 -3
  205. package/dist/components/salla-price-range2.js +6 -3
  206. package/dist/components/salla-product-availability2.js +16 -7
  207. package/dist/components/salla-product-card2.js +15 -8
  208. package/dist/components/salla-product-options2.js +9 -6
  209. package/dist/components/salla-product-size-guide.js +8 -3
  210. package/dist/components/salla-products-list2.js +4 -3
  211. package/dist/components/salla-progress-bar2.js +20 -4
  212. package/dist/components/salla-quick-buy2.js +6 -1
  213. package/dist/components/salla-quick-order.js +6 -1
  214. package/dist/components/salla-rating-modal2.js +8 -2
  215. package/dist/components/salla-rating-stars2.js +10 -10
  216. package/dist/components/salla-review-card2.js +1 -1
  217. package/dist/components/salla-reviews.js +6 -1
  218. package/dist/components/salla-scopes.js +9 -2
  219. package/dist/components/salla-skeleton2.js +7 -7
  220. package/dist/components/salla-slider2.js +6 -3
  221. package/dist/components/salla-social.js +7 -2
  222. package/dist/components/salla-tab-header2.js +3 -3
  223. package/dist/components/salla-tel-input2.js +24 -19
  224. package/dist/components/salla-tiered-offer.js +6 -1
  225. package/dist/components/salla-trust-badges.js +8 -4
  226. package/dist/components/salla-user-menu.js +38 -1
  227. package/dist/components/salla-user-profile.js +6 -2
  228. package/dist/components/salla-user-settings.js +7 -2
  229. package/dist/components/salla-verify.js +13 -6
  230. package/dist/components/translate.js +37 -1
  231. package/dist/docs.json +44 -44
  232. package/dist/esm/{filepond-okemUEVJ.js → filepond-Cqatu146.js} +1 -1
  233. package/dist/esm/{filepond-plugin-file-poster-He-1QDcm.js → filepond-plugin-file-poster-DbVXhgv4.js} +1 -1
  234. package/dist/esm/{filepond-plugin-file-validate-size-BoQ9OZHK.js → filepond-plugin-file-validate-size-BpJPambh.js} +1 -1
  235. package/dist/esm/{filepond-plugin-file-validate-type-BVxE-7xU.js → filepond-plugin-file-validate-type-3Qrskyxw.js} +1 -1
  236. package/dist/esm/{filepond-plugin-image-edit-DJnNmArQ.js → filepond-plugin-image-edit-Cjy7cOV1.js} +1 -1
  237. package/dist/esm/{filepond-plugin-image-exif-orientation-CgkqV9g5.js → filepond-plugin-image-exif-orientation-DYM12Yp-.js} +1 -1
  238. package/dist/esm/{filepond-plugin-image-preview-DxbixTNR.js → filepond-plugin-image-preview-C9nMEHVX.js} +1 -1
  239. package/dist/esm/{index-C1mBhG6Z.js → index-noRE1pbw.js} +7 -7
  240. package/dist/esm/{intlTelInput-wxpsRy0u.js → intlTelInput-CiinYrbq.js} +1 -1
  241. package/dist/esm/loader.js +3 -3
  242. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  243. package/dist/esm/salla-accordion_6.entry.js +10 -18
  244. package/dist/esm/salla-add-product-button_5.entry.js +37 -15
  245. package/dist/esm/salla-advertisement.entry.js +1 -1
  246. package/dist/esm/salla-alert_2.entry.js +26 -20
  247. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  248. package/dist/esm/salla-applied-filters.entry.js +1 -1
  249. package/dist/esm/salla-apps-icons.entry.js +7 -2
  250. package/dist/esm/salla-attachment-view_9.entry.js +111 -37
  251. package/dist/esm/salla-badge.entry.js +1 -1
  252. package/dist/esm/salla-basket-gap.entry.js +1 -1
  253. package/dist/esm/salla-bullet-delivery_3.entry.js +2 -2
  254. package/dist/esm/salla-cart-coupons.entry.js +1 -1
  255. package/dist/esm/salla-cart-item-offers_2.entry.js +12 -5
  256. package/dist/esm/salla-cart-summary-card.entry.js +1 -1
  257. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  258. package/dist/esm/salla-comment-factors.entry.js +1 -1
  259. package/dist/esm/salla-comment-form_9.entry.js +47 -24
  260. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  261. package/dist/esm/salla-contacts.entry.js +10 -3
  262. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  263. package/dist/esm/salla-count-down.entry.js +17 -12
  264. package/dist/esm/salla-custom-fields.entry.js +1 -1
  265. package/dist/esm/salla-delivery-promise.entry.js +1 -1
  266. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  267. package/dist/esm/salla-filters-widget.entry.js +7 -4
  268. package/dist/esm/salla-filters.entry.js +10 -5
  269. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  270. package/dist/esm/salla-gift-card-redeem_2.entry.js +1 -1
  271. package/dist/esm/salla-gifting.entry.js +12 -7
  272. package/dist/esm/salla-hook.entry.js +2 -2
  273. package/dist/esm/salla-infinite-scroll.entry.js +7 -2
  274. package/dist/esm/salla-installment.entry.js +1 -1
  275. package/dist/esm/salla-list-tile.entry.js +1 -1
  276. package/dist/esm/salla-localization-modal.entry.js +14 -2
  277. package/dist/esm/salla-login-modal.entry.js +14 -3
  278. package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
  279. package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
  280. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  281. package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
  282. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  283. package/dist/esm/salla-loyalty.entry.js +12 -5
  284. package/dist/esm/salla-maintenance-alert.entry.js +1 -1
  285. package/dist/esm/salla-map_3.entry.js +39 -15
  286. package/dist/esm/salla-menu.entry.js +1 -1
  287. package/dist/esm/salla-metadata.entry.js +1 -1
  288. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
  289. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
  290. package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
  291. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  292. package/dist/esm/salla-notification-item_2.entry.js +7 -2
  293. package/dist/esm/salla-offer-modal.entry.js +14 -7
  294. package/dist/esm/salla-offer.entry.js +14 -9
  295. package/dist/esm/salla-order-branch.entry.js +42 -4
  296. package/dist/esm/salla-order-cancel.entry.js +1 -1
  297. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  298. package/dist/esm/salla-order-details-options.entry.js +1 -1
  299. package/dist/esm/salla-order-details.entry.js +1 -1
  300. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  301. package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
  302. package/dist/esm/salla-order-edit.entry.js +1 -1
  303. package/dist/esm/salla-order-options-modal.entry.js +1 -1
  304. package/dist/esm/salla-order-shipments.entry.js +1 -1
  305. package/dist/esm/salla-order-summary.entry.js +7 -4
  306. package/dist/esm/salla-order-totals-card.entry.js +11 -4
  307. package/dist/esm/salla-orders.entry.js +41 -7
  308. package/dist/esm/salla-payments.entry.js +1 -1
  309. package/dist/esm/salla-placeholder.entry.js +10 -3
  310. package/dist/esm/salla-price-range.entry.js +7 -4
  311. package/dist/esm/salla-product-card-embed.entry.js +1 -1
  312. package/dist/esm/salla-product-card.entry.js +16 -9
  313. package/dist/esm/salla-product-size-guide.entry.js +9 -4
  314. package/dist/esm/salla-products-list.entry.js +5 -4
  315. package/dist/esm/salla-products-slider.entry.js +1 -1
  316. package/dist/esm/salla-quick-order.entry.js +7 -2
  317. package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
  318. package/dist/esm/salla-rating-modal.entry.js +9 -3
  319. package/dist/esm/salla-review-factors-tags.entry.js +1 -1
  320. package/dist/esm/salla-review-order-item.entry.js +1 -1
  321. package/dist/esm/salla-scopes.entry.js +9 -2
  322. package/dist/esm/salla-search-product-card.entry.js +1 -1
  323. package/dist/esm/salla-search.entry.js +1 -1
  324. package/dist/esm/salla-skeleton.entry.js +8 -8
  325. package/dist/esm/salla-social-share.entry.js +1 -1
  326. package/dist/esm/salla-social.entry.js +8 -3
  327. package/dist/esm/salla-tab-content_3.entry.js +4 -4
  328. package/dist/esm/salla-tiered-offer.entry.js +7 -2
  329. package/dist/esm/salla-trust-badges.entry.js +9 -5
  330. package/dist/esm/salla-user-menu.entry.js +39 -2
  331. package/dist/esm/salla-user-profile.entry.js +7 -3
  332. package/dist/esm/salla-user-settings.entry.js +8 -3
  333. package/dist/esm/salla-verify.entry.js +13 -6
  334. package/dist/esm/salla-wallet.entry.js +1 -1
  335. package/dist/esm/salla-wishlist-actions.entry.js +1 -1
  336. package/dist/esm/salla-wishlist-summary.entry.js +1 -1
  337. package/dist/esm/translate-CxrJQ3Jf.js +54 -0
  338. package/dist/esm/twilight.js +3 -3
  339. package/dist/esm/{vanilla-picker-CQEJbE9K.js → vanilla-picker-BWBrgMJQ.js} +1 -1
  340. package/dist/twilight/{p-c28395c6.entry.js → p-03e89cb1.entry.js} +1 -1
  341. package/dist/twilight/{p-5babb989.entry.js → p-07dc637e.entry.js} +1 -1
  342. package/dist/twilight/p-0859fe23.entry.js +4 -0
  343. package/dist/twilight/p-0b54834f.entry.js +4 -0
  344. package/dist/twilight/{p-e00ed6c9.entry.js → p-0c9f5232.entry.js} +1 -1
  345. package/dist/twilight/p-0ca1a782.entry.js +4 -0
  346. package/dist/twilight/p-0cb548be.entry.js +4 -0
  347. package/dist/twilight/{p-8ec0fc03.entry.js → p-138d6214.entry.js} +1 -1
  348. package/dist/twilight/p-141218a3.entry.js +4 -0
  349. package/dist/twilight/p-15b8fa7f.entry.js +4 -0
  350. package/dist/twilight/{p-ac20a6de.entry.js → p-15f5d424.entry.js} +1 -1
  351. package/dist/twilight/{p-21ba0eac.entry.js → p-16072449.entry.js} +1 -1
  352. package/dist/twilight/{p-dcb5ceda.entry.js → p-16b2f58b.entry.js} +1 -1
  353. package/dist/twilight/{p-f643bf2f.entry.js → p-18aff2d5.entry.js} +1 -1
  354. package/dist/twilight/{p-7ac91ace.entry.js → p-1930b915.entry.js} +1 -1
  355. package/dist/twilight/p-1cbbdcea.entry.js +4 -0
  356. package/dist/twilight/{p-d75157e0.entry.js → p-1fe92c36.entry.js} +1 -1
  357. package/dist/twilight/{p-f130c67f.entry.js → p-221e47a5.entry.js} +1 -1
  358. package/dist/twilight/p-2636c473.entry.js +4 -0
  359. package/dist/twilight/p-27712ed1.entry.js +4 -0
  360. package/dist/twilight/{p-fac4da2b.entry.js → p-2eea4245.entry.js} +1 -1
  361. package/dist/twilight/{p-d6d72996.entry.js → p-3263103c.entry.js} +1 -1
  362. package/dist/twilight/{p-ca7593c0.entry.js → p-341a7ab8.entry.js} +1 -1
  363. package/dist/twilight/{p-1080831a.entry.js → p-3b4f66d3.entry.js} +1 -1
  364. package/dist/twilight/p-3c45c49f.entry.js +4 -0
  365. package/dist/twilight/{p-e98835e3.entry.js → p-3f730d01.entry.js} +1 -1
  366. package/dist/twilight/{p-12a2b743.entry.js → p-40c8b553.entry.js} +1 -1
  367. package/dist/twilight/p-4333c630.entry.js +4 -0
  368. package/dist/twilight/{p-1a5d0b25.entry.js → p-454b32f0.entry.js} +1 -1
  369. package/dist/twilight/{p-8bdb7f71.entry.js → p-475d01e2.entry.js} +1 -1
  370. package/dist/twilight/{p-f8aa1b23.entry.js → p-4962d869.entry.js} +1 -1
  371. package/dist/twilight/{p-4b0eaa16.entry.js → p-4ce97595.entry.js} +1 -1
  372. package/dist/twilight/p-4d1582f8.entry.js +4 -0
  373. package/dist/twilight/{p-5e426c78.entry.js → p-4d482ee4.entry.js} +1 -1
  374. package/dist/twilight/{p-67d3ee58.entry.js → p-5110433d.entry.js} +1 -1
  375. package/dist/twilight/p-517807b2.entry.js +4 -0
  376. package/dist/twilight/p-52a7dbb7.entry.js +4 -0
  377. package/dist/twilight/{p-160476f0.entry.js → p-5360d082.entry.js} +1 -1
  378. package/dist/twilight/p-53bf1d54.entry.js +4 -0
  379. package/dist/twilight/p-540a7588.entry.js +4 -0
  380. package/dist/twilight/{p-9d434410.entry.js → p-5a6c4fdf.entry.js} +1 -1
  381. package/dist/twilight/{p-5e099f96.entry.js → p-5ac2e6ab.entry.js} +1 -1
  382. package/dist/twilight/{p-de55326d.entry.js → p-64158678.entry.js} +1 -1
  383. package/dist/twilight/p-67ecb74a.entry.js +4 -0
  384. package/dist/twilight/{p-342b31ba.entry.js → p-6e53afc6.entry.js} +1 -1
  385. package/dist/twilight/{p-474997dd.entry.js → p-6f66a0f2.entry.js} +1 -1
  386. package/dist/twilight/p-721819ee.entry.js +4 -0
  387. package/dist/twilight/p-76d11b5c.entry.js +4 -0
  388. package/dist/twilight/p-78b86647.entry.js +4 -0
  389. package/dist/twilight/p-7f0bdf0e.entry.js +4 -0
  390. package/dist/twilight/{p-caee5b0d.entry.js → p-7f882abf.entry.js} +1 -1
  391. package/dist/twilight/{p-6602a61a.entry.js → p-826ed1c6.entry.js} +1 -1
  392. package/dist/twilight/{p-8eb75cf8.entry.js → p-82d59bf3.entry.js} +1 -1
  393. package/dist/twilight/p-856ed222.entry.js +4 -0
  394. package/dist/twilight/{p-4bde9c4e.entry.js → p-87b3c231.entry.js} +1 -1
  395. package/dist/twilight/p-87dcc9d8.entry.js +4 -0
  396. package/dist/twilight/{p-58058ae9.entry.js → p-8876efa6.entry.js} +1 -1
  397. package/dist/twilight/{p-81596b48.entry.js → p-88d64b87.entry.js} +1 -1
  398. package/dist/twilight/p-88f650da.entry.js +4 -0
  399. package/dist/twilight/p-8e248aa7.entry.js +4 -0
  400. package/dist/twilight/p-919dd049.entry.js +4 -0
  401. package/dist/twilight/{p-62653d93.entry.js → p-950634d1.entry.js} +1 -1
  402. package/dist/twilight/{p-a11b77df.entry.js → p-9ce917a6.entry.js} +1 -1
  403. package/dist/twilight/{p-672a709e.entry.js → p-9e084610.entry.js} +1 -1
  404. package/dist/twilight/{p-8513fec2.entry.js → p-9ed52621.entry.js} +1 -1
  405. package/dist/twilight/{p-60d06105.entry.js → p-9fcc7eeb.entry.js} +1 -1
  406. package/dist/twilight/{p-Gxv67UlH.js → p-B867dk1j.js} +1 -1
  407. package/dist/twilight/{p-CJPWrlxL.js → p-BT5AJCX9.js} +1 -1
  408. package/dist/twilight/{p-CtcjG32v.js → p-CADeV7A-.js} +1 -1
  409. package/dist/twilight/{p-E2n9kJc8.js → p-CbJEogz0.js} +1 -1
  410. package/dist/twilight/p-CxrJQ3Jf.js +4 -0
  411. package/dist/twilight/{p-C57CqqgQ.js → p-CyV163V_.js} +1 -1
  412. package/dist/twilight/{p-DiU9tYvl.js → p-D98H4WeK.js} +1 -1
  413. package/dist/twilight/p-DN2opqoB.js +9 -0
  414. package/dist/twilight/{p-pzi0Osm7.js → p-DWkNp24H.js} +1 -1
  415. package/dist/twilight/{p-Bm1ywp6t.js → p-DomdkzLW.js} +1 -1
  416. package/dist/twilight/{p-c28c53c3.entry.js → p-a030da8e.entry.js} +1 -1
  417. package/dist/twilight/{p-3a465851.entry.js → p-a2de7999.entry.js} +1 -1
  418. package/dist/twilight/{p-c89282b0.entry.js → p-a8408d51.entry.js} +1 -1
  419. package/dist/twilight/p-aabc57e3.entry.js +4 -0
  420. package/dist/twilight/p-b1a35349.entry.js +4 -0
  421. package/dist/twilight/{p-fd787b30.entry.js → p-ba76a96a.entry.js} +1 -1
  422. package/dist/twilight/{p-d6508494.entry.js → p-ba9ee435.entry.js} +1 -1
  423. package/dist/twilight/{p-f47a1351.entry.js → p-be7dcc25.entry.js} +1 -1
  424. package/dist/twilight/{p-54bc613c.entry.js → p-c41c1eff.entry.js} +1 -1
  425. package/dist/twilight/p-c589a326.entry.js +4 -0
  426. package/dist/twilight/{p-e43c49e9.entry.js → p-c5d4682b.entry.js} +1 -1
  427. package/dist/twilight/p-c631e2cd.entry.js +4 -0
  428. package/dist/twilight/{p-97bb12a6.entry.js → p-c6af4f05.entry.js} +1 -1
  429. package/dist/twilight/{p-da9bd7f6.entry.js → p-c8d269df.entry.js} +1 -1
  430. package/dist/twilight/{p-e4589779.entry.js → p-cab2f22a.entry.js} +1 -1
  431. package/dist/twilight/{p-f3985cfd.entry.js → p-ce120ce6.entry.js} +1 -1
  432. package/dist/twilight/{p-80699771.entry.js → p-ce981b2f.entry.js} +1 -1
  433. package/dist/twilight/p-d09b6b8c.entry.js +4 -0
  434. package/dist/twilight/{p-b3abf071.entry.js → p-d13f5256.entry.js} +1 -1
  435. package/dist/twilight/{p-c82f46a9.entry.js → p-d306b947.entry.js} +1 -1
  436. package/dist/twilight/p-d986aa18.entry.js +4 -0
  437. package/dist/twilight/{p-844176cb.entry.js → p-e4c88bee.entry.js} +1 -1
  438. package/dist/twilight/p-e7fc0d63.entry.js +4 -0
  439. package/dist/twilight/p-eef846fa.entry.js +4 -0
  440. package/dist/twilight/{p-dbc1e40c.entry.js → p-f03f893c.entry.js} +1 -1
  441. package/dist/twilight/p-f5f0246f.entry.js +4 -0
  442. package/dist/twilight/p-f6f633fc.entry.js +4 -0
  443. package/dist/twilight/p-f9fbcb8d.entry.js +4 -0
  444. package/dist/twilight/p-fc717703.entry.js +4 -0
  445. package/dist/twilight/{p-C1mBhG6Z.js → p-noRE1pbw.js} +2 -2
  446. package/dist/twilight/twilight.esm.js +1 -1
  447. package/dist/types/Helpers/money-text.d.ts +13 -0
  448. package/dist/types/Helpers/translate.d.ts +17 -0
  449. package/dist/types/components/salla-add-product-button/salla-add-product-button.d.ts +2 -1
  450. package/dist/types/components/salla-alert/salla-alert.d.ts +3 -3
  451. package/dist/types/components/salla-apps-icons/salla-apps-icons.d.ts +3 -0
  452. package/dist/types/components/salla-booking-field/salla-booking-field.d.ts +3 -0
  453. package/dist/types/components/salla-bottom-alert/salla-bottom-alert.d.ts +3 -1
  454. package/dist/types/components/salla-button/salla-button.d.ts +10 -18
  455. package/dist/types/components/salla-cart-item-offers/salla-cart-item-offers.d.ts +3 -0
  456. package/dist/types/components/salla-cart-summary/salla-cart-summary.d.ts +2 -2
  457. package/dist/types/components/salla-comment-form/salla-comment-form.d.ts +3 -0
  458. package/dist/types/components/salla-comments/salla-comment-item.d.ts +3 -1
  459. package/dist/types/components/salla-comments/salla-comments.d.ts +3 -0
  460. package/dist/types/components/salla-contacts/salla-contacts.d.ts +4 -0
  461. package/dist/types/components/salla-count-down/salla-count-down.d.ts +17 -14
  462. package/dist/types/components/salla-custom-fields/salla-custom-fields.d.ts +4 -0
  463. package/dist/types/components/salla-file-upload/salla-file-upload.d.ts +12 -0
  464. package/dist/types/components/salla-filters/salla-filters.d.ts +4 -1
  465. package/dist/types/components/salla-filters-widget/salla-filters-widget.d.ts +2 -0
  466. package/dist/types/components/salla-gifting/salla-gifting.d.ts +3 -0
  467. package/dist/types/components/salla-hook/salla-hook.d.ts +4 -0
  468. package/dist/types/components/salla-infinite-scroll/salla-infinite-scroll.d.ts +3 -0
  469. package/dist/types/components/salla-localization-modal/salla-localization-modal.d.ts +4 -0
  470. package/dist/types/components/salla-login-modal/salla-login-modal.d.ts +3 -0
  471. package/dist/types/components/salla-loyalty/salla-loyalty.d.ts +3 -0
  472. package/dist/types/components/salla-map/salla-map.d.ts +3 -0
  473. package/dist/types/components/salla-notifications/salla-notifications.d.ts +3 -1
  474. package/dist/types/components/salla-offer/salla-offer.d.ts +3 -0
  475. package/dist/types/components/salla-offer-modal/salla-offer-modal.d.ts +3 -0
  476. package/dist/types/components/salla-order-branch/interfaces.d.ts +1 -0
  477. package/dist/types/components/salla-order-branch/salla-order-branch.d.ts +10 -1
  478. package/dist/types/components/salla-order-summary/salla-order-summary.d.ts +2 -0
  479. package/dist/types/components/salla-order-totals-card/interfaces.d.ts +4 -3
  480. package/dist/types/components/salla-order-totals-card/salla-order-totals-card.d.ts +2 -0
  481. package/dist/types/components/salla-orders/salla-orders.d.ts +3 -1
  482. package/dist/types/components/salla-placeholder/salla-placeholder.d.ts +3 -1
  483. package/dist/types/components/salla-price-range/salla-price-range.d.ts +2 -0
  484. package/dist/types/components/salla-product-availability/salla-product-availability.d.ts +4 -0
  485. package/dist/types/components/salla-product-card/salla-product-card.d.ts +12 -9
  486. package/dist/types/components/salla-product-options/salla-product-options.d.ts +2 -0
  487. package/dist/types/components/salla-product-size-guide/salla-product-size-guide.d.ts +3 -0
  488. package/dist/types/components/salla-products-list/salla-products-list.d.ts +1 -0
  489. package/dist/types/components/salla-progress-bar/salla-progress-bar.d.ts +5 -0
  490. package/dist/types/components/salla-quick-buy/salla-quick-buy.d.ts +3 -1
  491. package/dist/types/components/salla-quick-order/salla-quick-order.d.ts +3 -0
  492. package/dist/types/components/salla-rating-modal/salla-rating-modal.d.ts +3 -0
  493. package/dist/types/components/salla-rating-stars/salla-rating-stars.d.ts +14 -14
  494. package/dist/types/components/salla-review-card/salla-review-card.d.ts +4 -0
  495. package/dist/types/components/salla-reviews/salla-reviews.d.ts +3 -0
  496. package/dist/types/components/salla-scopes/salla-scopes.d.ts +3 -0
  497. package/dist/types/components/salla-skeleton/salla-skeleton.d.ts +6 -6
  498. package/dist/types/components/salla-slider/salla-slider.d.ts +2 -0
  499. package/dist/types/components/salla-social/salla-social.d.ts +3 -0
  500. package/dist/types/components/salla-tabs/salla-tab-header.d.ts +2 -2
  501. package/dist/types/components/salla-tel-input/salla-tel-input.d.ts +3 -1
  502. package/dist/types/components/salla-tiered-offer/salla-tiered-offer.d.ts +3 -1
  503. package/dist/types/components/salla-trust-badges/salla-trust-badges.d.ts +3 -1
  504. package/dist/types/components/salla-user-menu/salla-user-menu.d.ts +16 -0
  505. package/dist/types/components/salla-user-profile/salla-user-profile.d.ts +3 -1
  506. package/dist/types/components/salla-user-settings/salla-user-settings.d.ts +3 -0
  507. package/dist/types/components/salla-verify/salla-verify.d.ts +3 -0
  508. package/dist/types/components.d.ts +128 -80
  509. package/package.json +19 -19
  510. package/dist/cjs/translate-BeU1QX_r.js +0 -20
  511. package/dist/esm/translate-CrSV-tno.js +0 -18
  512. package/dist/twilight/p-020eb2a1.entry.js +0 -4
  513. package/dist/twilight/p-06799084.entry.js +0 -4
  514. package/dist/twilight/p-0a3abfd4.entry.js +0 -4
  515. package/dist/twilight/p-0ef388be.entry.js +0 -4
  516. package/dist/twilight/p-1f99db23.entry.js +0 -4
  517. package/dist/twilight/p-232c39e9.entry.js +0 -4
  518. package/dist/twilight/p-305ed224.entry.js +0 -4
  519. package/dist/twilight/p-3a4cf66c.entry.js +0 -4
  520. package/dist/twilight/p-3c4702bb.entry.js +0 -4
  521. package/dist/twilight/p-3dcb5129.entry.js +0 -4
  522. package/dist/twilight/p-43d0c80e.entry.js +0 -4
  523. package/dist/twilight/p-50bbbd18.entry.js +0 -4
  524. package/dist/twilight/p-51c26ce7.entry.js +0 -4
  525. package/dist/twilight/p-54054ab9.entry.js +0 -4
  526. package/dist/twilight/p-5c1a36ab.entry.js +0 -4
  527. package/dist/twilight/p-5cf3929c.entry.js +0 -4
  528. package/dist/twilight/p-8028be6f.entry.js +0 -4
  529. package/dist/twilight/p-82939afe.entry.js +0 -4
  530. package/dist/twilight/p-85cff524.entry.js +0 -4
  531. package/dist/twilight/p-8dfdd6c9.entry.js +0 -4
  532. package/dist/twilight/p-92f6aa52.entry.js +0 -4
  533. package/dist/twilight/p-BB23a2fo.js +0 -9
  534. package/dist/twilight/p-CrSV-tno.js +0 -4
  535. package/dist/twilight/p-a4aac112.entry.js +0 -4
  536. package/dist/twilight/p-a52bfa57.entry.js +0 -4
  537. package/dist/twilight/p-a9aadc0b.entry.js +0 -4
  538. package/dist/twilight/p-bc26490f.entry.js +0 -4
  539. package/dist/twilight/p-bef93c52.entry.js +0 -4
  540. package/dist/twilight/p-c30bfc0b.entry.js +0 -4
  541. package/dist/twilight/p-cb770a9e.entry.js +0 -4
  542. package/dist/twilight/p-cbcca1ff.entry.js +0 -4
  543. package/dist/twilight/p-d81bcfb3.entry.js +0 -4
  544. package/dist/twilight/p-e67b2aa8.entry.js +0 -4
  545. package/dist/twilight/p-e9ce8dec.entry.js +0 -4
  546. package/dist/twilight/p-eb718f6b.entry.js +0 -4
  547. package/dist/twilight/p-ec361a66.entry.js +0 -4
  548. package/dist/twilight/p-f32de457.entry.js +0 -4
  549. package/dist/twilight/p-f626ef96.entry.js +0 -4
  550. package/dist/twilight/p-f6df7f8a.entry.js +0 -4
  551. package/dist/twilight/p-fd3bb3f2.entry.js +0 -4
@@ -11,16 +11,16 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
11
11
  super();
12
12
  this.__registerHost();
13
13
  /**
14
- * The size of the count down
15
- * */
14
+ * The size of the countdown display. Can be 'sm', 'md', or 'lg'. Default is 'md'.
15
+ */
16
16
  this.size = 'md';
17
17
  /**
18
- * The color of the count down
19
- * */
18
+ * The color theme of the countdown. Can be 'primary', 'light', or 'dark'. Default is 'dark'.
19
+ */
20
20
  this.color = 'dark';
21
21
  /**
22
- * The digits lang to show in the count down
23
- * */
22
+ * The language/format for displaying digits. 'en' for English numerals, 'auto' for localized numerals. Default is 'auto'.
23
+ */
24
24
  this.digits = 'auto';
25
25
  /**
26
26
  * If true, hides days segment when days = 0, and hides hours segment when both days and hours = 0.
@@ -41,7 +41,12 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
41
41
  this.hours = this.number(0);
42
42
  this.minutes = this.number(0);
43
43
  this.seconds = this.number(0);
44
- salla.lang.onLoaded(() => {
44
+ if (this.date && this.isValidDate(this.date)) {
45
+ this.startCountDown();
46
+ }
47
+ }
48
+ connectedCallback() {
49
+ this.langUnsubscribe = salla.lang.subscribe(() => {
45
50
  this.daysLabel = salla.lang.getWithDefault('pages.checkout.day', 'يوم');
46
51
  this.hoursLabel = salla.lang.getWithDefault('pages.checkout.hour', 'ساعة');
47
52
  this.minutesLabel = salla.lang.getWithDefault('pages.checkout.minute', 'دقيقة');
@@ -49,9 +54,9 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
49
54
  this.secondsLabel = salla.lang.getWithDefault('pages.checkout.second', 'ثانية');
50
55
  this.endLabel = salla.lang.getWithDefault('pages.checkout.offer_ended', 'انتهت مدة العرض');
51
56
  });
52
- if (this.date && this.isValidDate(this.date)) {
53
- this.startCountDown();
54
- }
57
+ }
58
+ disconnectedCallback() {
59
+ this.langUnsubscribe?.();
55
60
  }
56
61
  /**
57
62
  * End the count down
@@ -235,7 +240,7 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
235
240
  return this.renderCountDown();
236
241
  }
237
242
  render() {
238
- return (h(Host, { key: 'a16b6dc8c000eea39b990588995b07d6361231b2', class: `s-count-down-wrapper ${this.preOrder && this.isValidDate(this.date) ? 's-count-down-pre-order' : ''} ${this.horizontal ? 's-count-down-horizontal' : ''} ${this.withButton ? 's-count-down-with-button' : ''} ${this.offerEnded ? 's-count-down-ended' : ''}` }, this.renderPrefixText(), this.renderContent(), this.offerEnded && this.renderOfferEnded(), this.renderButton()));
243
+ return (h(Host, { key: '6d42cb8b06464f722d078ab4eb7117c7f698f3c3', class: `s-count-down-wrapper ${this.preOrder && this.isValidDate(this.date) ? 's-count-down-pre-order' : ''} ${this.horizontal ? 's-count-down-horizontal' : ''} ${this.withButton ? 's-count-down-with-button' : ''} ${this.offerEnded ? 's-count-down-ended' : ''}` }, this.renderPrefixText(), this.renderContent(), this.offerEnded && this.renderOfferEnded(), this.renderButton()));
239
244
  }
240
245
  static get style() { return sallaCountDownCss; }
241
246
  }, [0, "salla-count-down", {
@@ -4,6 +4,7 @@
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
5
  import { d as defineCustomElement$5, u as usesSplitCountLimits, g as getMaxImagesCount, a as getMaxVideosCount, b as getTotalMaxFiles, p as parseSizeToBytes, c as getFilePondMaxFileSize, i as isVideoMimeType, e as isImageMimeType, f as getUploadErrorMessage, h as formatBytesAsSize, j as formatDuration, P as PlayIcon, s as shouldCountGalleryFile, k as shouldCountGalleryLimit } from './salla-attachment-view2.js';
6
6
  import { C as Cancel } from './cancel.js';
7
+ import { s as setTranslationDefault } from './translate.js';
7
8
  import { d as defineCustomElement$4 } from './salla-button2.js';
8
9
  import { d as defineCustomElement$3 } from './salla-loading2.js';
9
10
  import { d as defineCustomElement$2 } from './salla-modal2.js';
@@ -12,6 +13,8 @@ import { d as defineCustomElement$1 } from './salla-slider2.js';
12
13
  const sallaFileUploadCss = "/*!twlt*//*!\n * FilePond 4.32.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--assistant{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--browser.filepond--browser{position:absolute;margin:0;padding:0;left:1em;top:1.75em;width:calc(100% - 2em);opacity:0;font-size:0}.filepond--data{position:absolute;width:0;height:0;padding:0;margin:0;border:none;visibility:hidden;pointer-events:none;contain:strict}.filepond--drip{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;opacity:.1;pointer-events:none;border-radius:.5em;background:rgba(0,0,0,.01)}.filepond--drip-blob{-webkit-transform-origin:center center;transform-origin:center center;width:8em;height:8em;margin-left:-4em;margin-top:-4em;background:#292625;border-radius:50%}.filepond--drip-blob,.filepond--drop-label{position:absolute;top:0;left:0;will-change:transform,opacity}.filepond--drop-label{right:0;margin:0;color:#4f4f4f;display:flex;justify-content:center;align-items:center;height:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--drop-label.filepond--drop-label label{display:block;margin:0;padding:.5em}.filepond--drop-label label{cursor:default;font-size:.875em;font-weight:400;text-align:center;line-height:1.5}.filepond--label-action{text-decoration:underline;-webkit-text-decoration-skip:ink;text-decoration-skip-ink:auto;-webkit-text-decoration-color:#a7a4a4;text-decoration-color:#a7a4a4;cursor:pointer}.filepond--root[data-disabled] .filepond--drop-label label{opacity:.5}.filepond--file-action-button.filepond--file-action-button{font-size:1em;width:1.625em;height:1.625em;font-family:inherit;line-height:inherit;margin:0;padding:0;border:none;outline:none;will-change:transform,opacity}.filepond--file-action-button.filepond--file-action-button span{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file-action-button.filepond--file-action-button svg{width:100%;height:100%}.filepond--file-action-button.filepond--file-action-button:after{position:absolute;left:-.75em;right:-.75em;top:-.75em;bottom:-.75em;content:\"\"}.filepond--file-action-button{cursor:auto;color:#fff;border-radius:50%;background-color:rgba(0,0,0,.5);background-image:none;box-shadow:0 0 0 0 hsla(0,0%,100%,0);transition:box-shadow .25s ease-in}.filepond--file-action-button:focus,.filepond--file-action-button:hover{box-shadow:0 0 0 .125em hsla(0,0%,100%,.9)}.filepond--file-action-button[disabled]{color:hsla(0,0%,100%,.5);background-color:rgba(0,0,0,.25)}.filepond--file-action-button[hidden]{display:none}.filepond--action-edit-item.filepond--action-edit-item{width:2em;height:2em;padding:.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=center]{margin-left:-.1875em}.filepond--action-edit-item.filepond--action-edit-item[data-align*=bottom]{margin-bottom:-.1875em}.filepond--action-edit-item-alt{border:none;line-height:inherit;background:transparent;font-family:inherit;color:inherit;outline:none;padding:0;margin:0 0 0 .25em;pointer-events:all;position:absolute}.filepond--action-edit-item-alt svg{width:1.3125em;height:1.3125em}.filepond--action-edit-item-alt span{font-size:0;opacity:0}.filepond--file-info{position:static;display:flex;flex-direction:column;align-items:flex-start;flex:1;margin:0 .5em 0 0;min-width:0;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-info *{margin:0}.filepond--file-info .filepond--file-info-main{font-size:.75em;line-height:1.2;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;width:100%}.filepond--file-info .filepond--file-info-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out;white-space:nowrap}.filepond--file-info .filepond--file-info-sub:empty{display:none}.filepond--file-status{position:static;display:flex;flex-direction:column;align-items:flex-end;flex-grow:0;flex-shrink:0;margin:0;min-width:2.25em;text-align:right;will-change:transform,opacity;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.filepond--file-status *{margin:0;white-space:nowrap}.filepond--file-status .filepond--file-status-main{font-size:.75em;line-height:1.2}.filepond--file-status .filepond--file-status-sub{font-size:.625em;opacity:.5;transition:opacity .25s ease-in-out}.filepond--file-wrapper.filepond--file-wrapper{border:none;margin:0;padding:0;min-width:0;height:100%}.filepond--file-wrapper.filepond--file-wrapper>legend{position:absolute;overflow:hidden;height:1px;width:1px;padding:0;border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}.filepond--file{position:static;display:flex;height:100%;align-items:flex-start;padding:.5625em;color:#fff;border-radius:.5em}.filepond--file .filepond--file-status{margin-left:auto;margin-right:2.25em}.filepond--file .filepond--processing-complete-indicator{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:3}.filepond--file .filepond--file-action-button,.filepond--file .filepond--processing-complete-indicator,.filepond--file .filepond--progress-indicator{position:absolute}.filepond--file [data-align*=left]{left:.5625em}.filepond--file [data-align*=right]{right:.5625em}.filepond--file [data-align*=center]{left:calc(50% - .8125em)}.filepond--file [data-align*=bottom]{bottom:1.125em}.filepond--file [data-align=center]{top:calc(50% - .8125em)}.filepond--file .filepond--progress-indicator{margin-top:.1875em}.filepond--file .filepond--progress-indicator[data-align*=right]{margin-right:.1875em}.filepond--file .filepond--progress-indicator[data-align*=left]{margin-left:.1875em}[data-filepond-item-state*=error] .filepond--file-info,[data-filepond-item-state*=invalid] .filepond--file-info,[data-filepond-item-state=cancelled] .filepond--file-info{margin-right:2.25em}[data-filepond-item-state~=processing] .filepond--file-status-sub{opacity:0}[data-filepond-item-state~=processing] .filepond--action-abort-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-error] .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-error] .filepond--action-retry-item-processing~.filepond--file-status .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing svg{-webkit-animation:fall .5s linear .125s both;animation:fall .5s linear .125s both}[data-filepond-item-state=processing-complete] .filepond--file-status-sub{opacity:.5}[data-filepond-item-state=processing-complete] .filepond--file-info-sub,[data-filepond-item-state=processing-complete] .filepond--processing-complete-indicator:not([style*=hidden])~.filepond--file-status .filepond--file-status-sub{opacity:0}[data-filepond-item-state=processing-complete] .filepond--action-revert-item-processing~.filepond--file-info .filepond--file-info-sub{opacity:.5}[data-filepond-item-state*=error] .filepond--file-wrapper,[data-filepond-item-state*=error] .filepond--panel,[data-filepond-item-state*=invalid] .filepond--file-wrapper,[data-filepond-item-state*=invalid] .filepond--panel{-webkit-animation:shake .65s linear both;animation:shake .65s linear both}[data-filepond-item-state*=busy] .filepond--progress-indicator svg{-webkit-animation:spin 1s linear infinite;animation:spin 1s linear infinite}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@-webkit-keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@keyframes shake{10%,90%{-webkit-transform:translateX(-.0625em);transform:translateX(-.0625em)}20%,80%{-webkit-transform:translateX(.125em);transform:translateX(.125em)}30%,50%,70%{-webkit-transform:translateX(-.25em);transform:translateX(-.25em)}40%,60%{-webkit-transform:translateX(.25em);transform:translateX(.25em)}}@-webkit-keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}@keyframes fall{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}70%{opacity:1;-webkit-transform:scale(1.1);transform:scale(1.1);-webkit-animation-timing-function:ease-in-out;animation-timing-function:ease-in-out}to{-webkit-transform:scale(1);transform:scale(1);-webkit-animation-timing-function:ease-out;animation-timing-function:ease-out}}.filepond--hopper[data-hopper-state=drag-over]>*{pointer-events:none}.filepond--hopper[data-hopper-state=drag-over]:after{content:\"\";position:absolute;left:0;top:0;right:0;bottom:0;z-index:100}.filepond--progress-indicator{z-index:103}.filepond--file-action-button{z-index:102}.filepond--file-status{z-index:101}.filepond--file-info{z-index:100}.filepond--item{position:absolute;top:0;left:0;right:0;z-index:1;padding:0;margin:.25em;will-change:transform,opacity;touch-action:auto}.filepond--item>.filepond--panel{z-index:-1}.filepond--item>.filepond--panel .filepond--panel-bottom{box-shadow:0 .0625em .125em -.0625em rgba(0,0,0,.25)}.filepond--item>.filepond--file-wrapper,.filepond--item>.filepond--panel{transition:opacity .15s ease-out}.filepond--item[data-drag-state]{cursor:-webkit-grab;cursor:grab}.filepond--item[data-drag-state]>.filepond--panel{transition:box-shadow .125s ease-in-out;box-shadow:0 0 0 transparent}.filepond--item[data-drag-state=drag]{cursor:-webkit-grabbing;cursor:grabbing}.filepond--item[data-drag-state=drag]>.filepond--panel{box-shadow:0 .125em .3125em rgba(0,0,0,.325)}.filepond--item[data-drag-state]:not([data-drag-state=idle]){z-index:2}.filepond--item-panel{background-color:#64605e}[data-filepond-item-state=processing-complete] .filepond--item-panel{background-color:#369763}[data-filepond-item-state*=error] .filepond--item-panel,[data-filepond-item-state*=invalid] .filepond--item-panel{background-color:#c44e47}.filepond--item-panel{border-radius:.5em;transition:background-color .25s}.filepond--list-scroller{position:absolute;top:0;left:0;right:0;margin:0;will-change:transform}.filepond--list-scroller[data-state=overflow] .filepond--list{bottom:0;right:0}.filepond--list-scroller[data-state=overflow]{overflow-y:scroll;overflow-x:hidden;-webkit-overflow-scrolling:touch;-webkit-mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent);mask:linear-gradient(180deg,#000 calc(100% - .5em),transparent)}.filepond--list-scroller::-webkit-scrollbar{background:transparent}.filepond--list-scroller::-webkit-scrollbar:vertical{width:1em}.filepond--list-scroller::-webkit-scrollbar:horizontal{height:0}.filepond--list-scroller::-webkit-scrollbar-thumb{background-color:rgba(0,0,0,.3);border-radius:99999px;border:.3125em solid transparent;background-clip:content-box}.filepond--list.filepond--list{position:absolute;top:0;margin:0;padding:0;list-style-type:none;will-change:transform}.filepond--list{left:.75em;right:.75em}.filepond--root[data-style-panel-layout~=integrated]{width:100%;height:100%;max-width:none;margin:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root{border-radius:0}.filepond--root[data-style-panel-layout~=circle] .filepond--panel-root>*,.filepond--root[data-style-panel-layout~=integrated] .filepond--panel-root>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{bottom:0;height:auto;display:flex;justify-content:center;align-items:center;z-index:7}.filepond--root[data-style-panel-layout~=circle] .filepond--item-panel,.filepond--root[data-style-panel-layout~=integrated] .filepond--item-panel{display:none}.filepond--root[data-style-panel-layout~=compact] .filepond--list-scroller,.filepond--root[data-style-panel-layout~=integrated] .filepond--list-scroller{overflow:hidden;height:100%;margin-top:0;margin-bottom:0}.filepond--root[data-style-panel-layout~=compact] .filepond--list,.filepond--root[data-style-panel-layout~=integrated] .filepond--list{left:0;right:0;height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--item,.filepond--root[data-style-panel-layout~=integrated] .filepond--item{margin:0}.filepond--root[data-style-panel-layout~=compact] .filepond--file-wrapper,.filepond--root[data-style-panel-layout~=integrated] .filepond--file-wrapper{height:100%}.filepond--root[data-style-panel-layout~=compact] .filepond--drop-label,.filepond--root[data-style-panel-layout~=integrated] .filepond--drop-label{z-index:7}.filepond--root[data-style-panel-layout~=circle]{border-radius:99999rem;overflow:hidden}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel{border-radius:inherit}.filepond--root[data-style-panel-layout~=circle]>.filepond--panel>*{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--file-info,.filepond--root[data-style-panel-layout~=circle] .filepond--file-status{display:none}.filepond--root[data-style-panel-layout~=circle] .filepond--action-edit-item{opacity:1!important;visibility:visible!important}@media not all and (min-resolution:0.001dpcm){@supports (-webkit-appearance:none) and (stroke-color:transparent){.filepond--root[data-style-panel-layout~=circle]{will-change:transform}}}.filepond--panel-root{border-radius:.5em;background-color:#f1f0ef}.filepond--panel{position:absolute;left:0;top:0;right:0;margin:0;height:100%!important;pointer-events:none}.filepond-panel:not([data-scalable=false]){height:auto!important}.filepond--panel[data-scalable=false]>div{display:none}.filepond--panel[data-scalable=true]{-webkit-transform-style:preserve-3d;transform-style:preserve-3d;background-color:transparent!important;border:none!important}.filepond--panel-bottom,.filepond--panel-center,.filepond--panel-top{position:absolute;left:0;top:0;right:0;margin:0;padding:0}.filepond--panel-bottom,.filepond--panel-top{height:.5em}.filepond--panel-top{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;border-bottom:none!important}.filepond--panel-top:after{content:\"\";position:absolute;height:2px;left:0;right:0;bottom:-1px;background-color:inherit}.filepond--panel-bottom,.filepond--panel-center{will-change:transform;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-transform-origin:left top;transform-origin:left top;-webkit-transform:translate3d(0,.5em,0);transform:translate3d(0,.5em,0)}.filepond--panel-bottom{border-top-left-radius:0!important;border-top-right-radius:0!important;border-top:none!important}.filepond--panel-bottom:before{content:\"\";position:absolute;height:2px;left:0;right:0;top:-1px;background-color:inherit}.filepond--panel-center{height:100px!important;border-top:none!important;border-bottom:none!important;border-radius:0!important}.filepond--panel-center:not([style]){visibility:hidden}.filepond--progress-indicator{position:static;width:1.25em;height:1.25em;color:#fff;margin:0;pointer-events:none;will-change:transform,opacity}.filepond--progress-indicator svg{width:100%;height:100%;vertical-align:top;transform-box:fill-box}.filepond--progress-indicator path{fill:none;stroke:currentColor}.filepond--list-scroller{z-index:6}.filepond--drop-label{z-index:5}.filepond--drip{z-index:3}.filepond--root>.filepond--panel{z-index:2}.filepond--browser{z-index:1}.filepond--root{box-sizing:border-box;position:relative;margin-bottom:1em;font-size:1rem;line-height:normal;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-weight:450;text-align:left;text-rendering:optimizeLegibility;direction:ltr;contain:layout style size}.filepond--root *{box-sizing:inherit;line-height:inherit}.filepond--root :not(text){font-size:inherit}.filepond--root[data-disabled]{pointer-events:none}.filepond--root[data-disabled] .filepond--list-scroller{pointer-events:all}.filepond--root[data-disabled] .filepond--list{pointer-events:none}.filepond--root .filepond--drop-label{min-height:4.75em}.filepond--root .filepond--list-scroller{margin-top:1em;margin-bottom:1em}.filepond--root .filepond--credits{position:absolute;right:0;opacity:.4;line-height:.85;font-size:11px;color:inherit;text-decoration:none;z-index:3;bottom:-14px}.filepond--root .filepond--credits[style]{top:0;bottom:auto;margin-top:14px}\n/*!\n * FilePondPluginImagePreview 4.6.12\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--image-preview-markup {\n position: absolute;\n left: 0;\n top: 0;\n}\n.filepond--image-preview-wrapper {\n z-index: 2;\n}\n.filepond--image-preview-overlay {\n display: block;\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n min-height: 5rem;\n max-height: 7rem;\n margin: 0;\n opacity: 0;\n z-index: 2;\n pointer-events: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n}\n.filepond--image-preview-overlay svg {\n width: 100%;\n height: auto;\n color: inherit;\n max-height: inherit;\n}\n.filepond--image-preview-overlay-idle {\n mix-blend-mode: multiply;\n color: rgba(40, 40, 40, 0.85);\n}\n.filepond--image-preview-overlay-success {\n mix-blend-mode: normal;\n color: rgba(54, 151, 99, 1);\n}\n.filepond--image-preview-overlay-failure {\n mix-blend-mode: normal;\n color: rgba(196, 78, 71, 1);\n}\n/* disable for Safari as mix-blend-mode causes the overflow:hidden of the parent container to not work */\n@supports (-webkit-marquee-repetition: infinite) and\n ((-o-object-fit: fill) or (object-fit: fill)) {\n .filepond--image-preview-overlay-idle {\n mix-blend-mode: normal;\n }\n}\n.filepond--image-preview-wrapper {\n /* no interaction */\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n\n /* have preview fill up all available space */\n position: absolute;\n left: 0;\n top: 0;\n right: 0;\n height: 100%;\n margin: 0;\n\n /* radius is .05em less to prevent the panel background color from shining through */\n border-radius: 0.45em;\n overflow: hidden;\n\n /* this seems to prevent Chrome from redrawing this layer constantly */\n background: rgba(0, 0, 0, 0.01);\n}\n.filepond--image-preview {\n position: absolute;\n left: 0;\n top: 0;\n z-index: 1;\n display: flex; /* this aligns the graphic vertically if the panel is higher than the image */\n align-items: center;\n height: 100%;\n width: 100%;\n pointer-events: none;\n background: #222;\n\n /* will be animated */\n will-change: transform, opacity;\n}\n.filepond--image-clip {\n position: relative;\n overflow: hidden;\n margin: 0 auto;\n\n /* transparency indicator (currently only supports grid or basic color) */\n}\n.filepond--image-clip[data-transparency-indicator='grid'] img,\n.filepond--image-clip[data-transparency-indicator='grid'] canvas {\n background-color: #fff;\n background-image: url(\"data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg' fill='%23eee'%3E%3Cpath d='M0 0 H50 V50 H0'/%3E%3Cpath d='M50 50 H100 V100 H50'/%3E%3C/svg%3E\");\n background-size: 1.25em 1.25em;\n}\n.filepond--image-bitmap,\n.filepond--image-vector {\n position: absolute;\n left: 0;\n top: 0;\n will-change: transform;\n}\n.filepond--root[data-style-panel-layout~='integrated']\n .filepond--image-preview-wrapper {\n border-radius: 0;\n}\n.filepond--root[data-style-panel-layout~='integrated']\n .filepond--image-preview {\n height: 100%;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--image-preview-wrapper {\n border-radius: 99999rem;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--image-preview-overlay {\n top: auto;\n bottom: 0;\n -webkit-transform: scaleY(-1);\n transform: scaleY(-1);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n .filepond--file-action-button[data-align*='bottom']:not([data-align*='center']) {\n margin-bottom: 0.325em;\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n [data-align*='left'] {\n left: calc(50% - 3em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--file\n [data-align*='right'] {\n right: calc(50% - 3em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='left'],\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='right'] {\n margin-bottom: calc(0.325em + 0.1875em);\n}\n.filepond--root[data-style-panel-layout~='circle']\n .filepond--progress-indicator[data-align*='bottom'][data-align*='center'] {\n margin-top: 0;\n margin-bottom: 0.1875em;\n margin-left: 0.1875em;\n}\n\n/*!\n * FilePondPluginImageEdit 1.6.3\n * Licensed under MIT, https://opensource.org/licenses/MIT/\n * Please visit https://pqina.nl/filepond/ for details.\n */\n\n/* eslint-disable */\n.filepond--action-edit-item.filepond--action-edit-item {\n width: 2em;\n height: 2em;\n padding: 0.1875em;\n}\n\n.filepond--action-edit-item.filepond--action-edit-item[data-align*='center'] {\n margin-left: -0.1875em;\n}\n\n.filepond--action-edit-item.filepond--action-edit-item[data-align*='bottom'] {\n margin-bottom: -0.1875em;\n}\n\n.filepond--action-edit-item-alt {\n border: none;\n line-height: inherit;\n background: transparent;\n font-family: inherit;\n color: inherit;\n outline: none;\n padding: 0;\n margin: 0 0 0 0.25em;\n pointer-events: all;\n position: absolute;\n}\n\n.filepond--action-edit-item-alt svg {\n width: 1.3125em;\n height: 1.3125em;\n}\n\n.filepond--action-edit-item-alt span {\n font-size: 0;\n opacity: 0;\n}\n.filepond--root[data-style-panel-layout~='circle'] .filepond--action-edit-item {\n opacity: 1 !important;\n visibility: visible !important;\n}\n\n.s-file-upload-wrapper .filepond--file-info-main {\n -webkit-line-clamp: 1;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--list-scroller {\n display: none !important;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label:not(.s-hidden) {\n cursor: pointer;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple.s-file-upload-at-max .filepond--root {\n min-height: 120px;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label.s-file-upload-drop-label-disabled {\n visibility: visible !important;\n opacity: 0.55 !important;\n transform: none !important;\n height: auto !important;\n min-height: 4.75em !important;\n pointer-events: none !important;\n cursor: not-allowed;\n}\n.s-file-upload-has-gallery.s-file-upload-multiple .filepond--drop-label.s-file-upload-drop-label-disabled label {\n opacity: 1 !important;\n}\n.s-file-upload-wrapper .filepond--root[data-disabled] .filepond--drop-label label {\n opacity: 0.55;\n}\n.s-file-upload-gallery {\n --s-file-upload-preview-size: 75px;\n --s-file-upload-remove-size: 18px;\n --s-file-upload-remove-icon-size: 10px;\n --s-file-upload-gallery-gap: 12px;\n position: relative;\n margin-top: 0.5rem;\n padding-top: calc(var(--s-file-upload-remove-size) / 2);\n padding-inline-end: calc(var(--s-file-upload-remove-size) / 2);\n overflow: visible;\n}\n.s-file-upload-gallery-track {\n display: flex;\n gap: var(--s-file-upload-gallery-gap);\n width: 100%;\n min-height: var(--s-file-upload-preview-size);\n overflow-x: auto;\n overflow-y: hidden;\n scrollbar-width: thin;\n padding-bottom: 0.25rem;\n}\n.s-file-upload-gallery-item {\n position: relative;\n display: block;\n width: var(--s-file-upload-preview-size);\n height: var(--s-file-upload-preview-size);\n flex-shrink: 0;\n overflow: visible;\n}\n.s-file-upload-gallery-thumb {\n width: var(--s-file-upload-preview-size);\n height: var(--s-file-upload-preview-size);\n aspect-ratio: 1/1;\n border-radius: 0.375rem;\n overflow: hidden;\n background-color: #f3f4f6;\n cursor: pointer;\n position: relative;\n border: 1px solid #e5e7eb;\n box-sizing: border-box;\n}\n.s-file-upload-gallery-thumb.is-processing {\n opacity: 0.7;\n}\n.s-file-upload-gallery-thumb img {\n display: block;\n width: 100%;\n height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n}\n.s-file-upload-gallery-thumb video.s-file-upload-gallery-video-thumb {\n display: block;\n width: 100%;\n height: 100%;\n aspect-ratio: 1/1;\n object-fit: cover;\n pointer-events: none;\n}\n.s-file-upload-gallery-remove {\n position: absolute;\n top: 0;\n inset-inline-end: 0;\n inset-inline-start: auto;\n z-index: 5;\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--s-file-upload-remove-size);\n height: var(--s-file-upload-remove-size);\n padding: 0;\n line-height: 1;\n border-radius: 9999px;\n background-color: #fff;\n border: 1px solid #9ca3af;\n box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12);\n cursor: pointer;\n}\n.s-file-upload-gallery-remove:hover {\n background-color: #f9fafb;\n}\n.s-file-upload-gallery-remove svg {\n display: block;\n width: var(--s-file-upload-remove-icon-size);\n height: var(--s-file-upload-remove-icon-size);\n fill: #1f2937;\n pointer-events: none;\n}\n.s-file-upload-gallery-video-icon {\n position: absolute;\n inset: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: rgba(0, 0, 0, 0.2);\n pointer-events: none;\n}\n.s-file-upload-gallery-video-icon svg {\n width: calc(var(--s-file-upload-preview-size) * 0.28);\n height: calc(var(--s-file-upload-preview-size) * 0.28);\n max-width: 2rem;\n max-height: 2rem;\n fill: #fff;\n opacity: 0.9;\n}\n.visible{\n visibility: visible;\n}\n.fixed{\n position: fixed;\n}\n.relative{\n position: relative;\n}\n.grid{\n display: grid;\n}\n.hidden{\n display: none;\n}\n.transform{\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.resize{\n resize: both;\n}\n.ps-2{\n padding-inline-start: 0.5rem;\n}\n.filter{\n filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);\n}\n.s-hidden{\n display: none;\n}\n.s-scrollbar::-webkit-scrollbar{\n width: 5px;\n}\n.s-scrollbar::-webkit-scrollbar-track{\n background-color: #eee;\n}\n.s-scrollbar::-webkit-scrollbar-thumb{\n background-color: var(--color-primary);\n border-radius: 10px;\n -webkit-border-radius: 10px;\n -moz-border-radius: 10px;\n -ms-border-radius: 10px;\n -o-border-radius: 10px;\n}\n.s-file-upload-wrapper .filepond--drop-label{\n height: 100%;\n cursor: pointer;\n border-radius: var(--s-radius, 0.25rem);\n border-width: 1px;\n border-style: dashed;\n --tw-border-opacity: 1;\n border-color: rgb(229 231 235 / var(--tw-border-opacity, 1));\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n --tw-text-opacity: 1;\n color: rgb(55 65 81 / var(--tw-text-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--drop-label label{\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n font-family: var(--font-main), -apple-system, BlinkMacSystemFont;\n}\n.s-file-upload-wrapper .filepond--label-action{\n text-decoration-color: #6b7280;\n}\n.s-file-upload-wrapper .filepond--panel-root{\n border-radius: var(--s-radius, 0.25rem);\n --tw-bg-opacity: 1 !important;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)) !important;\n}\n.s-file-upload-profile-image .filepond--panel-root{\n border-radius: 9999px !important;\n}\n.s-file-upload:not(.s-file-upload-multiple) .s-file-upload-wrapper .filepond--list-scroller{\n overflow-y: inherit !important;\n overflow: inherit !important;\n margin: 0 !important;\n cursor: pointer !important;\n}\n.filepond--root{\n min-height: 120px !important;\n font-family: inherit !important;\n}\n.s-file-upload-wrapper .filepond--item-panel{\n --tw-bg-opacity: 1;\n background-color: rgb(55 65 81 / var(--tw-bg-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--drip-blob{\n --tw-bg-opacity: 1;\n background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1));\n}\n.s-file-upload-wrapper .filepond--list{\n left: 0px;\n width: 100%;\n}\n.s-file-upload-wrapper .filepond--file-poster-wrapper{\n position: absolute;\n left: 0px;\n top: 0px;\n right: 0px;\n margin: 0px;\n display: flex;\n height: 100%;\n width: 100%;\n user-select: none;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n border-radius: 0.45em;\n background-color: #00000003;\n}\n.s-file-upload-wrapper .filepond--file-poster{\n position: absolute;\n display: flex;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n.s-file-upload-wrapper .filepond--file-poster-overlay{\n position: absolute;\n top: 0px;\n left: 0px;\n width: 100%;\n}\n.s-file-upload-wrapper .filepond--item{\n margin: 0px;\n}\n.s-file-upload-wrapper .filepond--file-info{\n margin: 0px;\n}\n.s-file-upload-wrapper .filepond--file-info-main{\n width: 85px;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n font-size: 0.75em;\n line-height: 1.2;\n}\n.s-file-upload-wrapper .filepond--file-status{\n width: 55%;\n}\n.s-file-upload-wrapper .filepond--file-status:where([dir=\"rtl\"], [dir=\"rtl\"] *){\n margin-right: 35px;\n}\n@media (min-width: 768px){\n .s-file-upload-wrapper .filepond--file-status:where([dir=\"rtl\"], [dir=\"rtl\"] *){\n margin-right: 2.25em;\n }\n}\n.s-file-upload-wrapper .filepond--file-status .filepond--file-status-sub{\n width: 275px;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n.s-file-upload-profile-image .filepond--root{\n height: 80px;\n min-height: 80px !important;\n width: 80px;\n border-radius: 9999px !important;\n}\n.s-file-upload-profile-image .filepond--drop-label{\n z-index: 7;\n min-height: 70px !important;\n border-radius: 9999px !important;\n border-style: none;\n}\n.s-file-upload-profile-image .filepond--drop-label label{\n cursor: pointer;\n padding-top: 20px;\n padding-bottom: 20px;\n padding-left: 6px;\n padding-right: 6px;\n font-size: 0.8rem;\n margin-top: 0.75rem;\n margin-bottom: 0.75rem;\n font-family: var(--font-main), -apple-system, BlinkMacSystemFont;\n}\n.s-file-upload-profile-image .filepond--file{\n padding: 0px;\n}\n.s-file-upload-profile-image .filepond--file .filepond--action-remove-item{\n top: auto !important;\n bottom: -4px;\n left: 50%;\n transform: translateX(-50%) translateY(25%) !important;\n background-color: rgba(255,68,58,.7);\n cursor: pointer;\n width: 20px;\n height: 20px;\n transition: 0.3s;\n}\n.s-file-upload-profile-image .filepond--file .filepond--action-remove-item:hover{\n background-color: #FF443A;\n}\n.s-file-upload-profile-image .filepond--file .filepond--file-action-button{\n top: 28px;\n right: 28px;\n}\n.s-file-upload-profile-image .filepond--file .filepond--progress-indicator,.s-file-upload-profile-image .filepond--file .filepond--load-indicator,.s-file-upload-profile-image .filepond--file .filepond--processing-complete-indicator{\n top: 48% !important;\n right: 50%;\n left: auto;\n transform: translateX(50%) translateY(-50%);\n}\n.s-file-upload-profile-image .filepond--item-panel{\n background-color: transparent !important;\n}\n.s-file-upload-.s-file-upload-profile-image .filepond--item-panel .filepond--panel-top,.s-file-upload-profile-image .filepond--item-panel .filepond--panel-center,.s-file-upload-profile-image .filepond--item-panel .filepond--panel-bottom{\n display: none;\n}\n.s-file-upload-profile-image .filepond--file-poster-overlay{\n display: none;\n}\n.s-file-upload-profile-image .filepond--item{\n margin: 0px !important;\n height: 5rem !important;\n}\n.s-file-upload-profile-image .filepond--file-poster{\n height: 100%;\n width: 100%;\n}\n.s-file-upload-profile-image .filepond--file-status{\n display: none;\n}\n.s-file-upload-profile-image .filepond--image-preview-overlay-success{\n top: auto;\n bottom: 0px;\n --tw-scale-y: -1;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.s-file-upload-profile-image .filepond--image-preview-wrapper{\n border-radius: 9999px;\n}\n.s-file-upload-profile-image .filepond--file-info{\n display: none;\n}\n.s-file-upload-profile-image .filepond--list{\n left: 0px;\n right: 0px;\n height: 100%;\n}\n.s-file-upload-profile-image .filepond--file-poster img{\n height: 100%;\n width: 100%;\n border-radius: 9999px;\n object-fit: cover;\n}\n.s-file-upload-profile-image .filepond--file-poster-wrapper{\n overflow: hidden;\n border-radius: 9999px;\n}\n.s-file-upload-profile-image .s-file-upload-has-error .filepond--file-status{\n position: absolute;\n bottom: -62%;\n left: -190%;\n display: flex !important;\n height: auto;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n text-align: center;\n font-size: 1rem;\n line-height: 1.5rem;\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.s-file-upload-multiple .filepond--root{\n max-height: 120px;\n}\n.s-file-upload-multiple .filepond--list-scroller{\n top: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n height: 100%;\n overflow-y: scroll;\n}\n.s-file-upload-multiple .filepond--drop-label:not(.s-hidden) + .filepond--list-scroller{\n display: none;\n}\n.s-file-upload-multiple .filepond--item{\n @media(min-width: 767px){\n width: calc(33.33% - .5em);\n margin-left: .3em !important;\n }\n @media(max-width: 767px){\n margin-bottom: .3em;\n }\n}\n.s-file-upload-hint{\n margin-top: -15px;\n font-size: 0.875rem;\n line-height: 1.25rem;\n --tw-text-opacity: 1;\n color: rgb(107 114 128 / var(--tw-text-opacity, 1));\n}\n.s-product-options-image-input .s-file-upload-wrapper{\n min-height: 120px;\n}\n";
13
14
 
14
15
  const VIDEO_METADATA_TIMEOUT_MS = 10000;
16
+ // store feature (`store.features`) that switches profile avatars to the `upload` endpoint + url-only `profile/update`
17
+ const AVATAR_UPLOAD_FEATURE = 'avatar-upload-endpoint';
15
18
  const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload extends HTMLElement {
16
19
  /**
17
20
  * Lazy load FilePond and all plugins
@@ -50,6 +53,12 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
50
53
  this.removed = createEvent(this, "removed", 7);
51
54
  this.galleryUpdated = createEvent(this, "galleryUpdated", 7);
52
55
  this.filePondLoaded = false;
56
+ /** true when the uploaded url must be saved on the profile as the avatar (avatar upload endpoint flag is on) */
57
+ this.savesAvatarOnUpload = false;
58
+ /** the profile image uses the default `profile/update` url (no custom `url` given) */
59
+ this.usesDefaultProfileUrl = false;
60
+ this.avatarSaveGeneration = 0; // bumped when the avatar is removed, so pending saves are dropped
61
+ this.avatarSaveQueue = Promise.resolve();
53
62
  this.max_images_count = (count) => salla.lang.get('common.uploader.max_images_count', { count });
54
63
  this.max_videos_count = (count) => salla.lang.get('common.uploader.max_videos_count', { count });
55
64
  this.max_count_hint = (count) => salla.lang.get('common.uploader.max_count_hint', { count });
@@ -201,14 +210,19 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
201
210
  this.instantUpload = true;
202
211
  }
203
212
  if (!this.url && this.profileImage) {
213
+ // default: the file goes straight to `profile/update`. With the `avatar-upload-endpoint` store feature
214
+ // the url is switched to the `upload` endpoint once the store features are known (see componentDidLoad).
204
215
  this.url = salla.url.api('profile/update');
205
216
  this.instantUpload = true;
206
217
  this.host.hasAttribute('name') || (this.name = 'avatar');
218
+ this.usesDefaultProfileUrl = true;
207
219
  }
208
220
  if (!this.name) {
209
221
  this.name = 'file';
210
222
  }
211
- salla.lang.onLoaded(() => {
223
+ }
224
+ connectedCallback() {
225
+ this.langUnsubscribe = salla.lang.subscribe(() => {
212
226
  this.host.querySelectorAll('.filepond--drop-label>label').forEach(label => label.innerHTML = this.getLabel());
213
227
  if (this.filepond) {
214
228
  this.filepond.labelFileTypeNotAllowed = salla.lang.get('common.uploader.invalid_type');
@@ -229,7 +243,7 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
229
243
  }
230
244
  const setNestedAsync = (lang, key, value) => {
231
245
  return new Promise((resolve) => {
232
- salla.helpers.setNested(salla.lang.messages[lang], key, value);
246
+ setTranslationDefault(lang, key, value);
233
247
  resolve(true);
234
248
  });
235
249
  };
@@ -561,6 +575,19 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
561
575
  notifyUploadError(error, file) {
562
576
  salla.notify?.error?.(this.getUploadErrorMessageForFile(error, file));
563
577
  }
578
+ /**
579
+ * Save an already uploaded avatar url on the customer profile (text-only request).
580
+ */
581
+ async saveProfileAvatar(url) {
582
+ try {
583
+ await salla.profile.update({ avatar: url });
584
+ return true;
585
+ }
586
+ catch (error) {
587
+ salla.notify?.error?.(error?.response?.data?.error?.message || salla.lang.get('common.errors.error_occurred'));
588
+ return false;
589
+ }
590
+ }
564
591
  removeFailedFile(file) {
565
592
  if (!this.filepond?.getFiles().some(pondFile => pondFile.id === file.id)) {
566
593
  return;
@@ -893,6 +920,7 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
893
920
  }
894
921
  }
895
922
  disconnectedCallback() {
923
+ this.langUnsubscribe?.();
896
924
  if (this.previewFilesSyncRaf != null) {
897
925
  cancelAnimationFrame(this.previewFilesSyncRaf);
898
926
  this.previewFilesSyncRaf = null;
@@ -900,16 +928,23 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
900
928
  this.revokeAllPreviewObjectUrls();
901
929
  }
902
930
  render() {
903
- return (h(Host, { key: '77ac3b040e8c7e2b3dcc0957cbb761675b667a83', class: {
931
+ return (h(Host, { key: 'af7edd83879313df0a142890044c2bb02d5de73b', class: {
904
932
  "s-file-upload": true,
905
933
  "s-file-upload-profile-image": this.profileImage,
906
934
  "s-file-upload-multiple": this.allowMultiple,
907
935
  "s-file-upload-has-gallery": this.usesGalleryPreview(),
908
- } }, h("input", { key: '8fdb2cc6f73427929a77a985018e5fc7df7cbd88', type: "file", name: this.name, ref: ele => this.fileUploader = ele, required: this.required, class: "s-file-upload-wrapper s-file-upload-input", accept: this.accept }), this.allowMultiple && this.showMaxCountHint ? h("div", { class: "s-file-upload-hint s-hidden" }, this.max_count_hint(this.getTotalMaxFiles())) : '', h("input", { key: 'dfc1c8e1315c8a73685b24cd869f8df47ac42a35', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.getHiddenInputValue(), ref: input => this.hiddenInput = input }), this.renderPreviewGallery()));
936
+ } }, h("input", { key: 'ea630bd56caac801e7f69f602d3553321cd81b17', type: "file", name: this.name, ref: ele => this.fileUploader = ele, required: this.required, class: "s-file-upload-wrapper s-file-upload-input", accept: this.accept }), this.allowMultiple && this.showMaxCountHint ? h("div", { class: "s-file-upload-hint s-hidden" }, this.max_count_hint(this.getTotalMaxFiles())) : '', h("input", { key: '884b42abe4b9cd832ab1d078af93c9cbe4164112', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.getHiddenInputValue(), ref: input => this.hiddenInput = input }), this.renderPreviewGallery()));
909
937
  }
910
938
  async componentDidLoad() {
911
939
  await Salla.onReady();
912
940
  await Salla.lang.onLoaded();
941
+ if (this.usesDefaultProfileUrl && Salla.config.get('store.features', []).includes(AVATAR_UPLOAD_FEATURE)) {
942
+ // Avatars are uploaded to the store `upload` endpoint first (`files[]` + `type`, images only),
943
+ // then saved on the profile as a plain URL, so `profile/update` never receives a file part.
944
+ this.url = salla.url.api('upload');
945
+ this.host.hasAttribute('accept') || (this.accept = 'image/png, image/jpeg, image/jpg'); // upload only allows jpg/png
946
+ this.savesAvatarOnUpload = true;
947
+ }
913
948
  if (this.profileImage && !this.value) {
914
949
  this.value = Salla.config.get('user.avatar');
915
950
  }
@@ -1005,6 +1040,9 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
1005
1040
  }
1006
1041
  },
1007
1042
  onremovefile: (_error, file) => {
1043
+ if (this.savesAvatarOnUpload) {
1044
+ this.avatarSaveGeneration++;
1045
+ }
1008
1046
  if (this.usesGalleryPreview()) {
1009
1047
  if (file) {
1010
1048
  this.emitRemovedFile(file);
@@ -1061,6 +1099,26 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
1061
1099
  catch {
1062
1100
  return null;
1063
1101
  }
1102
+ if (this.savesAvatarOnUpload) {
1103
+ // `upload` answers with a list of urls
1104
+ const item = Array.isArray(responseData) ? responseData[0] : responseData;
1105
+ const avatarUrl = typeof item === 'object' && item !== null ? item.filePath || item.url : item;
1106
+ if (!this.isValidUploadResult(avatarUrl))
1107
+ return null;
1108
+ const generation = this.avatarSaveGeneration;
1109
+ // saves run one after the other so an older upload can never overwrite a newer one
1110
+ this.avatarSaveQueue = this.avatarSaveQueue.then(async () => {
1111
+ if (generation !== this.avatarSaveGeneration)
1112
+ return; // removed while waiting in the queue
1113
+ const saved = await this.saveProfileAvatar(avatarUrl);
1114
+ // expose the value and emit `uploaded` only once the profile holds this avatar (unless it was removed meanwhile)
1115
+ if (saved && generation === this.avatarSaveGeneration) {
1116
+ this.value = { id: this.generateUploadFileId(), url: avatarUrl };
1117
+ this.uploadedHandler();
1118
+ }
1119
+ });
1120
+ return avatarUrl;
1121
+ }
1064
1122
  if ((this.instantUpload || this.allowMultiple) && Array.isArray(responseData) && responseData.length > 0) {
1065
1123
  const item = responseData[0];
1066
1124
  const fileUrl = typeof item === 'object' && item !== null ? item.filePath || item.url : item;
@@ -1103,7 +1161,13 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
1103
1161
  }
1104
1162
  },
1105
1163
  ondata: formData => {
1106
- if (this.allowMultiple) {
1164
+ if (this.savesAvatarOnUpload) {
1165
+ const avatarFormData = new FormData();
1166
+ formData.forEach((value) => avatarFormData.append('files[]', value));
1167
+ avatarFormData.append('type', 'avatar');
1168
+ formData = avatarFormData; // continue below so `payloadParams` / `formData` are still applied
1169
+ }
1170
+ else if (this.allowMultiple) {
1107
1171
  const newFormData = new FormData();
1108
1172
  // ? This line suppose to send all files in one request but its not working properly
1109
1173
  // const filesArray = this.filepond.getFiles().map(file => file.file);
@@ -32,11 +32,14 @@ const SallaFiltersWidget = /*@__PURE__*/ proxyCustomElement(class SallaFiltersWi
32
32
  salla.onReady(() => {
33
33
  this.page = salla.config.get('page');
34
34
  });
35
- salla.lang.onLoaded(() => {
35
+ this.langUnsubscribe = salla.lang.subscribe(() => {
36
36
  this.showMoreLabel = salla.lang.getWithDefault('common.titles.more', this.showMoreLabel);
37
37
  this.showLessLabel = salla.lang.getWithDefault('common.elements.show_less', this.showLessLabel);
38
38
  });
39
39
  }
40
+ disconnectedCallback() {
41
+ this.langUnsubscribe?.();
42
+ }
40
43
  componentDidLoad() {
41
44
  // Use fixed height per item for predictable calculations
42
45
  // Each item is approximately 20px, so we calculate based on item count
@@ -178,12 +181,12 @@ const SallaFiltersWidget = /*@__PURE__*/ proxyCustomElement(class SallaFiltersWi
178
181
  return h("span", { class: "s-filters-option-name" }, label);
179
182
  }
180
183
  render() {
181
- return (h(Host, { key: 'd3d9731c163a78609bb1a2f4b01ef6c3db4fc7dc', class: "s-filters-widget-container" }, h("h3", { key: 'bf1c5a033860416035ad7c74f4d9082f4c8de282', class: "s-filters-widget-title", onClick: () => this.toggleWidget() }, h("span", { key: '2a94d9a6500b3137900136fd052c731f63b0acae' }, this.option.label), h("span", { key: '69b28fcad8ebc564dbbe907a4eb4044a0ee9d6ad', class: `s-filters-widget-plusminus ${this.isOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { key: 'fa20429b6b3399275eecbcac390d8895c3b01350', class: "s-filters-widget-content", ref: (el) => this.widgetContent = el }, Array.isArray(this.option.values) && this.option.values.length > 5 && (h("div", { key: '98c869541f0a1d61725048296af6296e603cfa2c', class: "s-filters-widget-search-wrapper", style: { padding: '8px 0', marginBottom: '8px' } }, h("input", { key: 'f5310cfdad6980e5d991bd03934d5c1a4a014f10', type: "text", class: "s-filters-widget-search-input", placeholder: salla.lang.get('blocks.header.search_placeholder') || 'بحث...', value: this.searchQuery, onInput: (e) => this.searchQuery = e.target.value }))), h("div", { key: '317bb4bcfae88596f8a8737b2454f5f2ecae5b0d', class: "s-filters-widget-values", ref: (el) => this.widgetValues = el }, h("slot", { key: '8620064a3526e686b95a0c21e39f5b15a8ea3133' }), this.option.type !== FilterOptionTypes.RANGE
184
+ return (h(Host, { key: '1e0a234fe279cd77dbdb957d1e9852d1f59b39f4', class: "s-filters-widget-container" }, h("h3", { key: 'b2b16a758d5e3c9fc97d2bfab8aee9e98cb3eae7', class: "s-filters-widget-title", onClick: () => this.toggleWidget() }, h("span", { key: 'af2738f683dc3455adc99d6e271ed7c5217c9626' }, this.option.label), h("span", { key: '6dd325fe1977e7e1cc3e72de495bcef51a4978b4', class: `s-filters-widget-plusminus ${this.isOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { key: '87f90e444bc15193c631a6223b45b5d5d82b512c', class: "s-filters-widget-content", ref: (el) => this.widgetContent = el }, Array.isArray(this.option.values) && this.option.values.length > 5 && (h("div", { key: 'bde65a20317127d415c66c06e6bc1d060f959751', class: "s-filters-widget-search-wrapper", style: { padding: '8px 0', marginBottom: '8px' } }, h("input", { key: '3c06b2b5158b59652a8f91649e18922111ba8f55', type: "text", class: "s-filters-widget-search-input", placeholder: salla.lang.get('blocks.header.search_placeholder') || 'بحث...', value: this.searchQuery, onInput: (e) => this.searchQuery = e.target.value }))), h("div", { key: 'b38f4c7033259152e950d3c86ee17aeea1fcfcb8', class: "s-filters-widget-values", ref: (el) => this.widgetValues = el }, h("slot", { key: '58a69066c1fd57b3f2d034d883b3c20c14df6154' }), this.option.type !== FilterOptionTypes.RANGE
182
185
  ? this.renderFilterOption(this.option)
183
186
  : h("salla-price-range", { onChanged: (event) => {
184
187
  this.changed.emit(event.detail);
185
188
  }, ref: price => this.priceRange = price, filtersData: this.filtersData, option: this.option })), this.withLoadMore && (!this.searchQuery || this.filteredCount > this.initialItemCount) &&
186
- h("a", { key: '8c9c93c3579578f1da4fe676d4758c0bbb5b4e21', class: "s-filters-widget-more", onClick: () => this.showMore() }, !this.isShowMore ? this.showMoreLabel : this.showLessLabel))));
189
+ h("a", { key: '5124f0e1f14cdec0af61106161b769d67dc8f82f', class: "s-filters-widget-more", onClick: () => this.showMore() }, !this.isShowMore ? this.showMoreLabel : this.showLessLabel))));
187
190
  }
188
191
  get host() { return this; }
189
192
  static get style() { return sallaFiltersWidgetCss; }
@@ -19,9 +19,6 @@ const SallaFilters$1 = /*@__PURE__*/ proxyCustomElement(class SallaFilters exten
19
19
  this.isInitialFetch = true; //the base-category auto-append may only run on the first filters::fetched
20
20
  this.filtersData = {};
21
21
  salla.event.on('filters::hidden', () => this.host.style.display = 'none');
22
- salla.lang.onLoaded(() => {
23
- this.apply = salla.lang.get('pages.checkout.apply');
24
- });
25
22
  salla.event.on('filters::fetched', ({ filters }) => {
26
23
  this.host.style.display = '';
27
24
  let freshFilterData = {};
@@ -59,6 +56,14 @@ const SallaFilters$1 = /*@__PURE__*/ proxyCustomElement(class SallaFilters exten
59
56
  this.host.childNodes.forEach(async (widget) => widget.setWidgetHeight && await widget.setWidgetHeight());
60
57
  });
61
58
  }
59
+ connectedCallback() {
60
+ this.langUnsubscribe = salla.lang.subscribe(() => {
61
+ this.apply = salla.lang.get('pages.checkout.apply');
62
+ });
63
+ }
64
+ disconnectedCallback() {
65
+ this.langUnsubscribe?.();
66
+ }
62
67
  async componentWillLoad() {
63
68
  try {
64
69
  const searchParams = new URLSearchParams(window.location.search);
@@ -220,7 +225,7 @@ const SallaFilters$1 = /*@__PURE__*/ proxyCustomElement(class SallaFilters exten
220
225
  this.applyFilters();
221
226
  }
222
227
  render() {
223
- return h(Host, { key: 'ef7f2cf7241193cb8b2fe24fdb0713d8c92c04c9' }, this.filters?.map(option => h("salla-filters-widget", { option: option, filtersData: this.filtersData, onChanged: ({ detail: { event, option, value } }) => {
228
+ return h(Host, { key: '7e2df6367c28317e81c8904d545e79f39e80f132' }, this.filters?.map(option => h("salla-filters-widget", { option: option, filtersData: this.filtersData, onChanged: ({ detail: { event, option, value } }) => {
224
229
  this.handleOptionChange(event, option, value);
225
230
  } })));
226
231
  }
@@ -136,7 +136,12 @@ const SallaGifting$1 = /*@__PURE__*/ proxyCustomElement(class SallaGifting exten
136
136
  };
137
137
  this.handleCountryDropdownClosed = () => { };
138
138
  this.handleRegionDropdownClosed = () => { };
139
- salla.lang.onLoaded(() => {
139
+ salla.event.on(this.defaultEvent, () => {
140
+ this.open();
141
+ });
142
+ }
143
+ connectedCallback() {
144
+ this.langUnsubscribe = salla.lang.subscribe(() => {
140
145
  this.selectImageOrUpload = salla.lang.get('blocks.buy_as_gift.select_image_or_upload');
141
146
  this.selectImageForYourGift = salla.lang.get('blocks.buy_as_gift.select_image_for_your_gift');
142
147
  this.sectionTitle = salla.lang.get('blocks.buy_as_gift.gift_the_one_you_love');
@@ -170,9 +175,9 @@ const SallaGifting$1 = /*@__PURE__*/ proxyCustomElement(class SallaGifting exten
170
175
  this.donationRequired = salla.lang.get('pages.products.donation_amount_required');
171
176
  this.currentLang = salla.lang.locale;
172
177
  });
173
- salla.event.on(this.defaultEvent, () => {
174
- this.open();
175
- });
178
+ }
179
+ disconnectedCallback() {
180
+ this.langUnsubscribe?.();
176
181
  }
177
182
  isPhysical() {
178
183
  return this.physicalProducts || this.physical;
@@ -884,7 +889,7 @@ const SallaGifting$1 = /*@__PURE__*/ proxyCustomElement(class SallaGifting exten
884
889
  }
885
890
  render() {
886
891
  return [
887
- h("div", { key: '02f095cd71654941cc3d11f9c9be13e019247992' }, h("salla-list-tile", { key: '5dfefabc5e6fcb2f0193bf11dcd324c517b0e649', class: this.generateClass() }, h("div", { key: '35b5b8cbf54ccbf9368cdc95d2e0505ca317a555', slot: "title" }, this.vertical ? h("span", { innerHTML: SIGiftSharing }) : '', h("h3", { key: '2399e07a06a808b396cf57a5233be97938e7b9b5' }, !!this.widgetTitle ? this.widgetTitle : this.sectionTitle)), h("div", { key: '12f460ce1df5e294e77b25e07d00d85370b2b939', slot: "subtitle" }, h("div", { key: '28fd4125c6f18fb976bc271ffc7c731683757bfb' }, !!this.widgetSubtitle ? this.widgetSubtitle : this.sectionSubtitle)), h("div", { key: '2ccb5745341390a9aeb80c56b4d7bb171cc2940e', slot: "action" }, h("salla-button", { key: '4e74313bd4020ae32a1c2ba30b0133da0aaf410a', color: "primary", fill: "outline", width: "wide", class: "s-gifting-widget-action", onClick: () => this.handleGiftButtonClick() }, h("slot", { key: '85ef811160f391d2fc456b13a89120407d6e4c36', name: "widget-btn-content" }, h("div", { key: '6d4d1162f7147488f8ce11d7da1bf7b82bc407b0', class: "s-gifting-widget-action-content" }, h("span", { key: 'e7aa877309bc7346fe56227365ad75c0d7c1a8dc', innerHTML: SIGiftSharing }), " \u00A0", h("span", { key: '5c7f1a43fa84e8e5ba74a449063fc89576626db2' }, this.sectionBtnText)))))), h("salla-modal", { key: '1de82b1f9a7fc49321eb766b1451eacd2d210480', id: this.hostId, isLoading: true, class: "s-gifting-modal", width: "sm", ref: modal => this.modal = modal }, h("div", { key: 'f3a97db3aa3a2591a1d391af61efa15ab76f1c8c', slot: "loading" }, h("div", { key: '67fb44c701b3f2771e041b91a2a438a0419ed4dd', class: "s-gifting-skeleton" }, h("div", { key: '70b2841fbafff80879cf2d68550cc9659da140a2', class: "s-gifting-modal-header" }, h("salla-skeleton", { key: '8d337e1bfe29aea80e93ed2d1e172fa4fe23e1db', type: 'circle', height: '5rem', width: '5rem' }), h("h2", { key: 'b8586d28a3dda5abbdbc341830560c157efb566c', class: "s-gifting-modal-title" }, h("div", { key: '956ec550fd7ddeb6b11f174b92d0133408f95165', class: "s-gifting-modal-badge-wrapper" }, h("salla-skeleton", { key: 'f495e7ec761c8499efb7a6e7025bd205dca49f2c', height: '15px', width: '150px' })))), h("div", { key: '28e5ad1386cebcd93a5f9307bd812dca77a66188', class: "s-gifting-skeleton-content" }, h("salla-skeleton", { key: '951dbed5a03ab246d661dfd2a59ae099b468fa89', height: '10px', width: '150px' }), h("salla-skeleton", { key: 'f200d5a5a4a258fb0755b6adb48e25606ab93bb7', height: '230px' }), h("salla-skeleton", { key: '1b4f69321a13d1ddea4ad038bfad22385b3b51ed', height: '10px', width: '150px' }), h("salla-skeleton", { key: '5d9219d3826de28b8e585bada604bff60dfc80f8', height: '30px' }), h("salla-skeleton", { key: 'a248552e288bea2e9839f381ec2d96bdb0e53cdf', height: '40px' })))), h("slot", { key: '3c8f9965766d7ce17fb20b4df72a3e46c273b23a', name: "header" }), !!this.hasError ?
892
+ h("div", { key: '2b599846ae0abb92b699be0a3dbee0d3d5f3638a' }, h("salla-list-tile", { key: '1f08c01b96dab20e82a3260e23836d56f5bcf630', class: this.generateClass() }, h("div", { key: '1f4d04b7112be42587fc35a9fa6c322321a92482', slot: "title" }, this.vertical ? h("span", { innerHTML: SIGiftSharing }) : '', h("h3", { key: '8ce56efcb34d19433babde1f191e4301f4c2c8d0' }, !!this.widgetTitle ? this.widgetTitle : this.sectionTitle)), h("div", { key: '6f035a3ee40a77a554492bde74bc834caa2e9a9a', slot: "subtitle" }, h("div", { key: '1e454d9ae0b95fd5b4ee05401f3edf0161338d43' }, !!this.widgetSubtitle ? this.widgetSubtitle : this.sectionSubtitle)), h("div", { key: '98df402ea7ddda379fe10897453e61acf3166559', slot: "action" }, h("salla-button", { key: '7d7c49e3d0749cf8ed86ce17709f718fece6349c', color: "primary", fill: "outline", width: "wide", class: "s-gifting-widget-action", onClick: () => this.handleGiftButtonClick() }, h("slot", { key: '6411376640ba3de3d36277981e04253fdcaaf135', name: "widget-btn-content" }, h("div", { key: '8fef0671cfa1335d6a5ab028c2fc0e978eaa11e2', class: "s-gifting-widget-action-content" }, h("span", { key: '820674db5e37dd1f3e1c3f7708bff7396955960a', innerHTML: SIGiftSharing }), " \u00A0", h("span", { key: 'ef3ee899f2231863f984ca13708382e273e38e0a' }, this.sectionBtnText)))))), h("salla-modal", { key: '0728b976c0f20f3713c9363e1c06b9da528da9ca', id: this.hostId, isLoading: true, class: "s-gifting-modal", width: "sm", ref: modal => this.modal = modal }, h("div", { key: '924fad1dbb5cb1ff039328bed201c07608b5e95d', slot: "loading" }, h("div", { key: '35907d0949afb5ed389fc2ee147ef73f388dc962', class: "s-gifting-skeleton" }, h("div", { key: 'c2252de89f09c4bfc1e2691b6da246408cd98003', class: "s-gifting-modal-header" }, h("salla-skeleton", { key: '1440fcf0b2dc5c3dd1d209604636bca1d68b2fd2', type: 'circle', height: '5rem', width: '5rem' }), h("h2", { key: '80527a48ec97624873100e91806d206194f4666c', class: "s-gifting-modal-title" }, h("div", { key: '095732ce0ca81c125ff7664e215c4a286bba4cd6', class: "s-gifting-modal-badge-wrapper" }, h("salla-skeleton", { key: '9e385f2e21fa305782d7c7d40df31498dfab856d', height: '15px', width: '150px' })))), h("div", { key: 'e530926826192430f094cd227a11bb9c6aee38f7', class: "s-gifting-skeleton-content" }, h("salla-skeleton", { key: '35a5d4bd57461b5edf69c19f27a85da2131b0545', height: '10px', width: '150px' }), h("salla-skeleton", { key: '747893f9ab1cc35d7fccb62dbd64e7a3a57b4a98', height: '230px' }), h("salla-skeleton", { key: '80ddf6036a735901a1295c3abd5e208c0cc92ca7', height: '10px', width: '150px' }), h("salla-skeleton", { key: '98720c569e326a5d2d04a37839d2064688f00a47', height: '30px' }), h("salla-skeleton", { key: '65f9deca24700906e43d34612b01ed95c86fae00', height: '40px' })))), h("slot", { key: '82e3b8afc2a736bdee08ef906a1824fc4a16ce5a', name: "header" }), !!this.hasError ?
888
893
  h("salla-placeholder", { alignment: "center" }, h("span", { slot: "title" }, this.errorMessage || salla.lang.get('common.errors.empty_results')), h("span", { slot: "description" }, " "))
889
894
  :
890
895
  [
@@ -907,7 +912,7 @@ const SallaGifting$1 = /*@__PURE__*/ proxyCustomElement(class SallaGifting exten
907
912
  h("div", { class: this.step2ItemClass(this.errors?.['receiver.city_id'] ? 's-form-group s-form-has-error' : 's-form-group') }, h("label", { class: "s-form-label", htmlFor: `${this.hostId}-city` }, this.receiverCityFieldLabel), h("salla-searchable-dropdown", { placeholder: this.selectCity, items: this.displayedCities, selectedItem: this.selectedCity, loading: this.loadingCities, searching: this.searchingCities, disabled: this.loadingCities || (this.isKSA && !this.selectedRegionId), required: true, inputId: `${this.hostId}-city`, searchQuery: this.citySearchQuery, clientSearch: !this.enableCityAjaxSearch, dropUp: true, keepParentScroll: true, onItemSelected: (e) => this.handleCitySelected(e.detail), onSearchInput: (e) => this.handleCitySearch(e.detail), onDropdownClosed: () => this.handleCityDropdownClosed() }), this.errors && this.errors['receiver.city_id'] ?
908
913
  h("span", { class: "s-gifting-error" }, this.errors['receiver.city_id']) : ''), this.isPhysical() && this.cityNoticeText() &&
909
914
  h("div", { class: this.step2ItemClass('s-gifting-info') }, h("span", { innerHTML: Alert }), h("span", null, this.cityNoticeText())), !this.isPhysical() && h("div", { class: this.step2ItemClass() }, h("label", { class: "s-gifting-schedule s-gifting-clickable", htmlFor: `schedule-${this.hostId}` }, h("input", { type: "checkbox", name: 'schedule', id: `schedule-${this.hostId}`, onChange: () => this.toggleCalendar(), class: "s-checkbox" }), h("span", { class: "s-form-label" }, " ", this.sendLater, " "))), h("div", { class: this.getCalendarClasses(), ref: (el) => this.calendarFormGroup = el }, h("label", { class: "s-form-label" }, this.selectSendDateAndTime), h("salla-datetime-picker", { value: this.deliveryDate, placeholder: this.selectSendDateAndTime, "enable-time": true, "date-format": "Y-m-d h:i K", onPicked: (event) => this.handleDateTimePicker(event) }), h("span", { class: "s-gifting-calendar-hint" }, this.canNotEditOrderAfterSelectDate)), h("div", { class: this.step2ItemClass('s-gifting-step-two-footer') }, !this.skipStep1() && h("a", { href: "#!", innerHTML: IconArrowLeft, onClick: (e) => this.goToStep1(e) }), h("salla-button", { onClick: () => this.submitForm(), color: "primary", width: 'wide' }, h("span", null, this.sendGift)))))
910
- ], h("slot", { key: '688de0af2e48acc0d91d128a321856197861eb16', name: "footer" })))
915
+ ], h("slot", { key: '1d08c0a88ae9d95dd4c740d42451ddab1fffcfdc', name: "footer" })))
911
916
  ];
912
917
  }
913
918
  static get style() { return sallaGiftingCss; }
@@ -17,7 +17,7 @@ const SallaHook$1 = /*@__PURE__*/ proxyCustomElement(class SallaHook extends HTM
17
17
  this.host.before(element);
18
18
  }
19
19
  render() {
20
- return h(Host, { key: '579b0abf0784c9396f636da50b1fed156e5a0600' });
20
+ return h(Host, { key: '7784823f34808c715180741263cf7e7edf9c9d5f' });
21
21
  }
22
22
  async componentDidLoad() {
23
23
  // Register this component for hooks system, already on it logic to run componentDidLoad trigger
@@ -37,12 +37,17 @@ const SallaInfiniteScroll$1 = /*@__PURE__*/ proxyCustomElement(class SallaInfini
37
37
  <span class="s-button-loader s-button-loader-center s-infinite-scroll-btn-loader" style="display: none"></span>
38
38
  </a>`;
39
39
  this.btnLoader = this.status.querySelector('.s-button-loader');
40
- salla.lang.onLoaded(() => {
40
+ }
41
+ connectedCallback() {
42
+ this.langUnsubscribe = salla.lang.subscribe(() => {
41
43
  this.status.querySelector('.s-button-text').innerHTML = this.loadMoreText ? this.loadMoreText : salla.lang.get('common.elements.load_more');
42
44
  this.status.querySelector('.s-infinite-scroll-last').innerHTML = salla.lang.get('common.elements.end_of_content');
43
45
  this.status.querySelector('.s-infinite-scroll-error').innerHTML = salla.lang.get('common.elements.failed_to_load_more');
44
46
  });
45
47
  }
48
+ disconnectedCallback() {
49
+ this.langUnsubscribe?.();
50
+ }
46
51
  loading(isLoading = true) {
47
52
  let btnText = this.status.querySelector('.s-button-text');
48
53
  Helper.toggleElementClassIf(btnText, 's-button-hide', 's-button-show', () => isLoading);
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
- import { proxyCustomElement, HTMLElement, h } from '@stencil/core/internal/client';
4
+ import { proxyCustomElement, HTMLElement, forceUpdate, h } from '@stencil/core/internal/client';
5
5
  import { d as defineCustomElement$6 } from './salla-button2.js';
6
6
  import { d as defineCustomElement$5 } from './salla-loading2.js';
7
7
  import { d as defineCustomElement$4 } from './salla-modal2.js';
@@ -91,6 +91,7 @@ const SallaLocalizationModal$1 = /*@__PURE__*/ proxyCustomElement(class SallaLoc
91
91
  };
92
92
  //here we will used the currency code instead of the symbol when current language is not arabic
93
93
  this.arabicCurrencies = ["SAR", "AED", "KWD", "BHD", "QAR", "OMR", "EGP", "IQD", "LBP", "SYP", "TND", "DZD", "MAD", "YER"];
94
+ this.translationLoaded = false;
94
95
  this.languages = [];
95
96
  this.currencies = [];
96
97
  this.hasError = false;
@@ -110,6 +111,17 @@ const SallaLocalizationModal$1 = /*@__PURE__*/ proxyCustomElement(class SallaLoc
110
111
  this.languageSlot = this.host.querySelector('[slot="language"]')?.innerHTML || '<label class="s-localization-modal-label" for="lang-{code}"><span>{name}</span></label>';
111
112
  this.currencySlot = this.host.querySelector('[slot="currency"]')?.innerHTML || '<label class="s-localization-modal-label" for="currency-{code}"><span>{name}</span><small class="s-localization-modal-currency">{symbol}</small></label>';
112
113
  }
114
+ connectedCallback() {
115
+ // re-render whenever translations (re)load, so the labels read via salla.lang.get() stay current
116
+ this.langUnsubscribe = salla.lang.subscribe(() => {
117
+ this.translationLoaded = true;
118
+ // translationLoaded is already true on later calls, so force the render that refreshes the labels read in render()
119
+ forceUpdate(this);
120
+ });
121
+ }
122
+ disconnectedCallback() {
123
+ this.langUnsubscribe?.();
124
+ }
113
125
  async componentWillLoad() {
114
126
  await Salla.onReady();
115
127
  await Salla.lang.onLoaded();
@@ -248,7 +260,7 @@ const SallaLocalizationModal$1 = /*@__PURE__*/ proxyCustomElement(class SallaLoc
248
260
  this.showTrigger
249
261
  ? h("button", { type: "button", onClick: () => this.open(), class: "s-localization-modal-trigger-btn" }, h("span", null, this.getLanguageName()), h("span", { class: "s-localization-modal-trigger-separator" }, "|"), " ", h("span", { innerHTML: this.getCurrencySymbol() }))
250
262
  : '',
251
- h("salla-modal", { key: '1400a13aa9490e0f5f96259bea6bfcf3f98ee829', isLoading: true, class: "s-hidden", ref: modal => this.modal = modal, width: "xs" }, h("div", { key: 'b31041e8d245ce30f41d4221418856e886200848', slot: 'loading' }, h("div", { key: '5531d672f7c5e8fb8a6b06fa5ae5328f4efcf3fe', class: "s-localization-modal-skeleton" }, h("salla-skeleton", { key: '61b8fa69733a4e970e1f72ef5b09e773781e45ae', width: '25%', height: '15px' }), h("div", { key: '20dd0f3444f0a6e05730266bf964b74f307e9aab', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: '5b8b4b760f741e0cd56c07ff341205e9ec7fe4d3', width: '25%', height: '15px' }), h("div", { key: '0a3f5dbfca2d6cd81effef5d873e03c9aef57d0b', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: 'b068f327b3335b3f9154ac20f7f6de95864dde9a', height: '40px', width: '100%' }))), !!this.hasError ?
263
+ h("salla-modal", { key: '90691a08e6f504621d486093e0b4ce4dd6ade603', isLoading: true, class: "s-hidden", ref: modal => this.modal = modal, width: "xs" }, h("div", { key: '09c20e2dcf5840609eb6e1e124c2d8d3ceca0519', slot: 'loading' }, h("div", { key: '078f414c5c966000da4691000080912ab9e9d6e6', class: "s-localization-modal-skeleton" }, h("salla-skeleton", { key: 'd34d24597d5dca4f6e987b82886749388e118454', width: '25%', height: '15px' }), h("div", { key: '5350cec15f6091450b297ed7114638440bd4da16', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: '255dd34dc36801e78ea0dd83dd9825e58de3c20f', width: '25%', height: '15px' }), h("div", { key: '2f1d1acbb0734b72f6806d3ec229ffd8fc71f9f5', class: "s-localization-modal-skeleton-content" }, [...Array(4)].map(() => h("div", { class: "s-localization-modal-skeleton-item" }, h("div", { class: "s-localization-modal-skeleton-item-flex" }, h("salla-skeleton", { type: 'circle', height: '16px', width: '16px' }), h("salla-skeleton", { height: '10px', width: '100px' })), h("salla-skeleton", { height: '15px', width: '20px' })))), h("salla-skeleton", { key: '8ffa9e5ddfe05ca91032e29f24ef9eaedd73980d', height: '40px', width: '100%' }))), !!this.hasError ?
252
264
  h("salla-placeholder", { alignment: "center" }, h("span", { slot: "description" }, this.errorMessage)) :
253
265
  h("div", { class: "s-localization-modal-inner" }, this.languages.length > 1 ?
254
266
  h("div", { class: "s-localization-modal-section" }, h("label", { class: "s-localization-modal-title" }, Salla.lang.get('common.titles.language')), h("div", { class: "s-localization-modal-section-inner" }, this.languages.length < 6 ?
@@ -281,6 +293,7 @@ const SallaLocalizationModal$1 = /*@__PURE__*/ proxyCustomElement(class SallaLoc
281
293
  "language": [1537],
282
294
  "currency": [1537],
283
295
  "showTrigger": [1540, "show-trigger"],
296
+ "translationLoaded": [32],
284
297
  "languages": [32],
285
298
  "currencies": [32],
286
299
  "hasError": [32],
@@ -6,7 +6,7 @@ import { d as defineCustomElement$3 } from './salla-button2.js';
6
6
  import { d as defineCustomElement$2 } from './salla-loading2.js';
7
7
  import { d as defineCustomElement$1 } from './salla-modal2.js';
8
8
 
9
- const sallaLoginModalCss = "/*!twlt*/iframe{-moz-transition:height 0.3s;-ms-transition:height 0.3s;-o-transition:height 0.3s;-webkit-transition:height 0.3s;transition:height 0.3s;width:100%}.inline{display:inline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}";
9
+ const sallaLoginModalCss = "/*!twlt*/iframe{-moz-transition:height 0.3s;-ms-transition:height 0.3s;-o-transition:height 0.3s;-webkit-transition:height 0.3s;transition:height 0.3s;width:100%}.visible{visibility:visible}.inline{display:inline}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}";
10
10
 
11
11
  const SallaLoginModal = /*@__PURE__*/ proxyCustomElement(class SallaLoginModal extends HTMLElement {
12
12
  constructor() {
@@ -39,6 +39,7 @@ const SallaLoginModal = /*@__PURE__*/ proxyCustomElement(class SallaLoginModal e
39
39
  this.scrolling = 'no';
40
40
  this.direction = document.dir;
41
41
  this.canRenderIframe = false;
42
+ this.loginSucceeded = false;
42
43
  salla.event.on('login::open', (data) => this.onLoginOpen(data));
43
44
  salla.event.on('modal::close', (data) => {
44
45
  if (this.iframe)
@@ -133,6 +134,7 @@ const SallaLoginModal = /*@__PURE__*/ proxyCustomElement(class SallaLoginModal e
133
134
  }
134
135
  // temporary condition until we handle both cases separately
135
136
  if (action == 'authenticated' || action == 'authenticated_web_auth') {
137
+ this.loginSucceeded = true;
136
138
  !value?.withoutClose && this.close();
137
139
  return salla.auth.api.handlAfterAuthenticatedResponse(value, this.supportWebAuth)
138
140
  .then(() => !(value?.withoutReload || this.withoutReload) && setTimeout(() => window.location.reload(), 1000));
@@ -186,6 +188,14 @@ const SallaLoginModal = /*@__PURE__*/ proxyCustomElement(class SallaLoginModal e
186
188
  // Fire an event if withoutReload is true
187
189
  return;
188
190
  }
191
+ /** Tell the listeners waiting for a login (e.g. `requireLoginThen`) that the popup was closed without one. */
192
+ onVisibilityChanged(visible) {
193
+ if (visible) {
194
+ this.loginSucceeded = false;
195
+ return;
196
+ }
197
+ !this.loginSucceeded && Salla.event.emit('salla-login::dismissed');
198
+ }
189
199
  close() {
190
200
  Salla.event.emit('salla-login::closing');
191
201
  this.modal.close();
@@ -237,6 +247,7 @@ const SallaLoginModal = /*@__PURE__*/ proxyCustomElement(class SallaLoginModal e
237
247
  }
238
248
  });
239
249
  if (token) {
250
+ this.loginSucceeded = true;
240
251
  this.modal.close();
241
252
  Salla.auth.event.tokenFetched(token);
242
253
  try {
@@ -351,7 +362,7 @@ const SallaLoginModal = /*@__PURE__*/ proxyCustomElement(class SallaLoginModal e
351
362
  if (this.inline) {
352
363
  return this.getLoginDom();
353
364
  }
354
- return (h("salla-modal", { class: "s-login-modal", ref: modal => this.modal = modal, width: "xs" }, this.getLoginDom()));
365
+ return (h("salla-modal", { class: "s-login-modal", ref: modal => this.modal = modal, width: "xs", onModalVisibilityChanged: e => this.onVisibilityChanged(e.detail) }, this.getLoginDom()));
355
366
  }
356
367
  getLoginDom() {
357
368
  if (!this.canRenderIframe) {