@salla.sa/twilight-components 2.14.498 → 2.14.500

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 (458) hide show
  1. package/dist/cjs/{filepond-B7XPTm4d.js → filepond-B9PtMjXt.js} +1 -1
  2. package/dist/cjs/{filepond-plugin-file-poster-C5WAs5Sq.js → filepond-plugin-file-poster-CMd-UUZx.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-validate-size-CpzjvZP9.js → filepond-plugin-file-validate-size-DpJalosf.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-type-CQjym5yh.js → filepond-plugin-file-validate-type-CZjeYI0w.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-image-edit-JvWrX8H9.js → filepond-plugin-image-edit-Bl6fwgrn.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-exif-orientation-CaFH4vic.js → filepond-plugin-image-exif-orientation-BeQ8iCyg.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-preview-CpD30vUg.js → filepond-plugin-image-preview-BkGKXzOB.js} +1 -1
  8. package/dist/cjs/{functions-BUcHv9GL.js → functions-UaOjMOb2.js} +1 -1
  9. package/dist/cjs/{index-Dqo2RTwY.js → index-CQPk27Eg.js} +1 -1
  10. package/dist/cjs/{index-CxOIGeOr.js → index-Cd5xdrCT.js} +2 -2
  11. package/dist/cjs/loader.cjs.js +2 -2
  12. package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
  13. package/dist/cjs/salla-accordion_6.cjs.entry.js +2 -2
  14. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +3 -3
  15. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  16. package/dist/cjs/salla-alert_2.cjs.entry.js +1 -1
  17. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-badge.cjs.entry.js +1 -1
  20. package/dist/cjs/salla-booking-field_7.cjs.entry.js +17 -17
  21. package/dist/cjs/salla-bullet-delivery_2.cjs.entry.js +5 -5
  22. package/dist/cjs/salla-cart-coupons.cjs.entry.js +210 -31
  23. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +2 -2
  24. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
  25. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-comment-form_8.cjs.entry.js +5 -5
  28. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  31. package/dist/cjs/salla-count-down_2.cjs.entry.js +2 -2
  32. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-filters-widget.cjs.entry.js +3 -3
  36. package/dist/cjs/salla-filters.cjs.entry.js +2 -2
  37. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-gifting.cjs.entry.js +3 -3
  39. package/dist/cjs/salla-hook.cjs.entry.js +2 -2
  40. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  42. package/dist/cjs/salla-list-tile.cjs.entry.js +2 -2
  43. package/dist/cjs/salla-localization-modal.cjs.entry.js +2 -2
  44. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  45. package/dist/cjs/salla-loyalty-banner.cjs.entry.js +2 -2
  46. package/dist/cjs/salla-loyalty-exchange-product-card_5.cjs.entry.js +10 -10
  47. package/dist/cjs/salla-loyalty-hero_2.cjs.entry.js +9 -9
  48. package/dist/cjs/salla-loyalty-panel.cjs.entry.js +3 -3
  49. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  50. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +2 -2
  51. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +2 -2
  52. package/dist/cjs/salla-loyalty-program.cjs.entry.js +3 -3
  53. package/dist/cjs/salla-loyalty-reward.cjs.entry.js +4 -4
  54. package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
  55. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +2 -2
  56. package/dist/cjs/salla-map_2.cjs.entry.js +4 -4
  57. package/dist/cjs/salla-menu.cjs.entry.js +1 -1
  58. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +4 -4
  60. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +6 -6
  61. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +2 -2
  62. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  63. package/dist/cjs/salla-notification-item.cjs.entry.js +2 -2
  64. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-offer-modal.cjs.entry.js +2 -2
  66. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  67. package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  69. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  71. package/dist/cjs/salla-order-details.cjs.entry.js +2 -2
  72. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +2 -2
  74. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  75. package/dist/cjs/salla-order-summary.cjs.entry.js +2 -2
  76. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  77. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  78. package/dist/cjs/salla-payments.cjs.entry.js +3 -3
  79. package/dist/cjs/salla-placeholder.cjs.entry.js +2 -2
  80. package/dist/cjs/salla-price-range.cjs.entry.js +3 -3
  81. package/dist/cjs/salla-product-card-embed.cjs.entry.js +2 -2
  82. package/dist/cjs/salla-product-card_2.cjs.entry.js +6 -6
  83. package/dist/cjs/salla-product-size-guide.cjs.entry.js +3 -3
  84. package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
  85. package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
  86. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
  87. package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
  88. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +2 -2
  89. package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
  90. package/dist/cjs/salla-search.cjs.entry.js +6 -6
  91. package/dist/cjs/salla-skeleton.cjs.entry.js +2 -2
  92. package/dist/cjs/salla-slider.cjs.entry.js +1 -1
  93. package/dist/cjs/salla-social-share.cjs.entry.js +2 -2
  94. package/dist/cjs/salla-social.cjs.entry.js +2 -2
  95. package/dist/cjs/salla-tab-content_3.cjs.entry.js +4 -4
  96. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  97. package/dist/cjs/salla-tooltip.cjs.entry.js +2 -2
  98. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  99. package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
  100. package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
  101. package/dist/cjs/salla-user-settings.cjs.entry.js +2 -2
  102. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  103. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  104. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +2 -2
  105. package/dist/cjs/{tracked-promise-COd7urY7.js → tracked-promise-DwUVHl1m.js} +1 -1
  106. package/dist/cjs/twilight.cjs.js +2 -2
  107. package/dist/cjs/{vanilla-picker-v4qaVnjr.js → vanilla-picker-BTiOI13l.js} +1 -1
  108. package/dist/collection/collection-manifest.json +1 -1
  109. package/dist/collection/components/salla-cart-coupons/salla-cart-coupons.css +63 -0
  110. package/dist/collection/components/salla-cart-coupons/salla-cart-coupons.js +211 -30
  111. package/dist/collection/components/salla-cart-summary/salla-cart-summary.js +1 -1
  112. package/dist/collection/components/salla-color-picker/salla-color-picker.js +1 -1
  113. package/dist/collection/components/salla-comment-form/salla-comment-form.js +1 -1
  114. package/dist/collection/components/salla-conditional-fields/salla-conditional-fields.js +1 -1
  115. package/dist/collection/components/salla-count-down/salla-count-down.js +1 -1
  116. package/dist/collection/components/salla-datetime-picker/salla-datetime-picker.js +1 -1
  117. package/dist/collection/components/salla-file-upload/salla-file-upload.js +2 -2
  118. package/dist/collection/components/salla-filters/salla-filters.js +1 -1
  119. package/dist/collection/components/salla-filters-widget/salla-filters-widget.js +2 -2
  120. package/dist/collection/components/salla-gifting/salla-gifting.js +2 -2
  121. package/dist/collection/components/salla-hook/salla-hook.js +1 -1
  122. package/dist/collection/components/salla-list-tile/salla-list-tile.js +1 -1
  123. package/dist/collection/components/salla-loading/salla-loading.js +1 -1
  124. package/dist/collection/components/salla-localization-modal/salla-localization-modal.js +1 -1
  125. package/dist/collection/components/salla-loyalty/salla-loyalty-prize-item.js +1 -1
  126. package/dist/collection/components/salla-loyalty-points-history/salla-loyalty-points-history.js +1 -1
  127. package/dist/collection/components/salla-loyalty-program/salla-loyalty-exchange-product-card.js +2 -2
  128. package/dist/collection/components/salla-loyalty-program/salla-loyalty-hero.js +3 -3
  129. package/dist/collection/components/salla-loyalty-program/salla-loyalty-point.js +4 -4
  130. package/dist/collection/components/salla-loyalty-program/salla-loyalty-reward.js +2 -2
  131. package/dist/collection/components/salla-loyalty-program/salla-reward-card.js +1 -1
  132. package/dist/collection/components/salla-loyalty-program/salla-reward-details.js +3 -3
  133. package/dist/collection/components/salla-loyalty-program/salla-reward-exchange.js +1 -1
  134. package/dist/collection/components/salla-maintenance-alert/salla-maintenance-alert.js +1 -1
  135. package/dist/collection/components/salla-map/salla-map.js +3 -3
  136. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-cart.js +1 -1
  137. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-details.js +2 -2
  138. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-options-modal.js +4 -4
  139. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-slider.js +1 -1
  140. package/dist/collection/components/salla-multiple-bundle-product/salla-multiple-bundle-product.js +1 -1
  141. package/dist/collection/components/salla-notifications/salla-notification-item.js +1 -1
  142. package/dist/collection/components/salla-offer-modal/salla-offer-modal.js +1 -1
  143. package/dist/collection/components/salla-order-details/salla-order-details.js +1 -1
  144. package/dist/collection/components/salla-order-edit/salla-order-edit-product-card.js +1 -1
  145. package/dist/collection/components/salla-order-summary/salla-order-summary.js +1 -1
  146. package/dist/collection/components/salla-payments/salla-payments.js +2 -2
  147. package/dist/collection/components/salla-placeholder/salla-placeholder.js +1 -1
  148. package/dist/collection/components/salla-price-range/salla-price-range.js +2 -2
  149. package/dist/collection/components/salla-product-availability/salla-product-availability.js +1 -1
  150. package/dist/collection/components/salla-product-card/salla-product-card.js +5 -5
  151. package/dist/collection/components/salla-product-card-embed/salla-product-card-embed.js +1 -1
  152. package/dist/collection/components/salla-product-size-guide/salla-product-size-guide.js +2 -2
  153. package/dist/collection/components/salla-quantity-input/salla-quantity-input.js +1 -1
  154. package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +1 -1
  155. package/dist/collection/components/salla-review-card/salla-review-card.js +1 -1
  156. package/dist/collection/components/salla-review-factors-tags/salla-review-factors-tags.js +1 -1
  157. package/dist/collection/components/salla-reviews/salla-reviews.js +1 -1
  158. package/dist/collection/components/salla-reviews-page/salla-reviews-page.js +1 -1
  159. package/dist/collection/components/salla-search/salla-search.js +5 -5
  160. package/dist/collection/components/salla-searchable-dropdown/salla-searchable-dropdown.js +4 -4
  161. package/dist/collection/components/salla-skeleton/salla-skeleton.js +1 -1
  162. package/dist/collection/components/salla-social/salla-social.js +1 -1
  163. package/dist/collection/components/salla-social-share/salla-social-share.js +1 -1
  164. package/dist/collection/components/salla-tabs/salla-tab-content.js +1 -1
  165. package/dist/collection/components/salla-tabs/salla-tab-header.js +1 -1
  166. package/dist/collection/components/salla-tabs/salla-tabs.js +1 -1
  167. package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
  168. package/dist/collection/components/salla-tooltip/salla-tooltip.js +1 -1
  169. package/dist/collection/components/salla-user-settings/salla-user-settings.js +1 -1
  170. package/dist/collection/components/salla-wishlist-actions/salla-wishlist-actions.js +1 -1
  171. package/dist/components/index.js +2 -2
  172. package/dist/components/salla-cart-coupons.js +211 -30
  173. package/dist/components/salla-cart-summary.js +1 -1
  174. package/dist/components/salla-color-picker2.js +1 -1
  175. package/dist/components/salla-comment-form2.js +1 -1
  176. package/dist/components/salla-conditional-fields2.js +1 -1
  177. package/dist/components/salla-count-down2.js +1 -1
  178. package/dist/components/salla-datetime-picker2.js +1 -1
  179. package/dist/components/salla-file-upload2.js +2 -2
  180. package/dist/components/salla-filters-widget2.js +2 -2
  181. package/dist/components/salla-filters.js +1 -1
  182. package/dist/components/salla-gifting.js +2 -2
  183. package/dist/components/salla-hook.js +1 -1
  184. package/dist/components/salla-list-tile2.js +1 -1
  185. package/dist/components/salla-loading2.js +1 -1
  186. package/dist/components/salla-localization-modal.js +1 -1
  187. package/dist/components/salla-loyalty-exchange-product-card2.js +2 -2
  188. package/dist/components/salla-loyalty-hero2.js +3 -3
  189. package/dist/components/salla-loyalty-point2.js +4 -4
  190. package/dist/components/salla-loyalty-points-history.js +1 -1
  191. package/dist/components/salla-loyalty-prize-item.js +1 -1
  192. package/dist/components/salla-loyalty-reward.js +2 -2
  193. package/dist/components/salla-maintenance-alert.js +1 -1
  194. package/dist/components/salla-map2.js +3 -3
  195. package/dist/components/salla-multiple-bundle-product-cart2.js +1 -1
  196. package/dist/components/salla-multiple-bundle-product-details2.js +2 -2
  197. package/dist/components/salla-multiple-bundle-product-options-modal2.js +4 -4
  198. package/dist/components/salla-multiple-bundle-product-slider2.js +1 -1
  199. package/dist/components/salla-multiple-bundle-product.js +1 -1
  200. package/dist/components/salla-notification-item2.js +1 -1
  201. package/dist/components/salla-offer-modal.js +1 -1
  202. package/dist/components/salla-order-details.js +1 -1
  203. package/dist/components/salla-order-edit-product-card.js +1 -1
  204. package/dist/components/salla-order-summary.js +1 -1
  205. package/dist/components/salla-payments.js +2 -2
  206. package/dist/components/salla-placeholder2.js +1 -1
  207. package/dist/components/salla-price-range2.js +2 -2
  208. package/dist/components/salla-product-availability2.js +1 -1
  209. package/dist/components/salla-product-card-embed.js +1 -1
  210. package/dist/components/salla-product-card2.js +5 -5
  211. package/dist/components/salla-product-size-guide.js +2 -2
  212. package/dist/components/salla-quantity-input2.js +1 -1
  213. package/dist/components/salla-quick-buy2.js +1 -1
  214. package/dist/components/salla-review-card2.js +1 -1
  215. package/dist/components/salla-review-factors-tags.js +1 -1
  216. package/dist/components/salla-reviews-page.js +1 -1
  217. package/dist/components/salla-reviews.js +1 -1
  218. package/dist/components/salla-reward-card2.js +1 -1
  219. package/dist/components/salla-reward-details2.js +3 -3
  220. package/dist/components/salla-reward-exchange2.js +1 -1
  221. package/dist/components/salla-search.js +5 -5
  222. package/dist/components/salla-searchable-dropdown2.js +4 -4
  223. package/dist/components/salla-skeleton2.js +1 -1
  224. package/dist/components/salla-social-share2.js +1 -1
  225. package/dist/components/salla-social.js +1 -1
  226. package/dist/components/salla-tab-content2.js +1 -1
  227. package/dist/components/salla-tab-header2.js +1 -1
  228. package/dist/components/salla-tabs2.js +1 -1
  229. package/dist/components/salla-tel-input2.js +1 -1
  230. package/dist/components/salla-tooltip2.js +1 -1
  231. package/dist/components/salla-user-settings.js +1 -1
  232. package/dist/components/salla-wishlist-actions.js +1 -1
  233. package/dist/esm/{filepond-Bztq2DfJ.js → filepond-DjtqIoeD.js} +1 -1
  234. package/dist/esm/{filepond-plugin-file-poster-7n46TpPX.js → filepond-plugin-file-poster-CFxoEHLP.js} +1 -1
  235. package/dist/esm/{filepond-plugin-file-validate-size-CEaKKsXh.js → filepond-plugin-file-validate-size-BnBRYL0y.js} +1 -1
  236. package/dist/esm/{filepond-plugin-file-validate-type-G_rhCCOz.js → filepond-plugin-file-validate-type-Dr5ofT9v.js} +1 -1
  237. package/dist/esm/{filepond-plugin-image-edit-3fXrzMbo.js → filepond-plugin-image-edit-DyMeCzTZ.js} +1 -1
  238. package/dist/esm/{filepond-plugin-image-exif-orientation-BXr__tdF.js → filepond-plugin-image-exif-orientation-ngtve06j.js} +1 -1
  239. package/dist/esm/{filepond-plugin-image-preview-Deyf31fO.js → filepond-plugin-image-preview-aqxBqAYf.js} +1 -1
  240. package/dist/esm/{functions-BvcgTy23.js → functions-Drikk4uf.js} +1 -1
  241. package/dist/esm/{index-CtDVz2Sf.js → index-CaZkz-p0.js} +1 -1
  242. package/dist/esm/{index-DD7hlkaJ.js → index-DuoSRdS5.js} +2 -2
  243. package/dist/esm/loader.js +3 -3
  244. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  245. package/dist/esm/salla-accordion_6.entry.js +2 -2
  246. package/dist/esm/salla-add-product-button_5.entry.js +3 -3
  247. package/dist/esm/salla-advertisement.entry.js +1 -1
  248. package/dist/esm/salla-alert_2.entry.js +1 -1
  249. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  250. package/dist/esm/salla-apps-icons.entry.js +1 -1
  251. package/dist/esm/salla-badge.entry.js +1 -1
  252. package/dist/esm/salla-booking-field_7.entry.js +17 -17
  253. package/dist/esm/salla-bullet-delivery_2.entry.js +5 -5
  254. package/dist/esm/salla-cart-coupons.entry.js +210 -31
  255. package/dist/esm/salla-cart-item-offers_2.entry.js +2 -2
  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_8.entry.js +5 -5
  260. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  261. package/dist/esm/salla-contacts.entry.js +1 -1
  262. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  263. package/dist/esm/salla-count-down_2.entry.js +2 -2
  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 +3 -3
  268. package/dist/esm/salla-filters.entry.js +2 -2
  269. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  270. package/dist/esm/salla-gifting.entry.js +3 -3
  271. package/dist/esm/salla-hook.entry.js +2 -2
  272. package/dist/esm/salla-infinite-scroll.entry.js +1 -1
  273. package/dist/esm/salla-installment.entry.js +1 -1
  274. package/dist/esm/salla-list-tile.entry.js +2 -2
  275. package/dist/esm/salla-localization-modal.entry.js +2 -2
  276. package/dist/esm/salla-login-modal.entry.js +1 -1
  277. package/dist/esm/salla-loyalty-banner.entry.js +2 -2
  278. package/dist/esm/salla-loyalty-exchange-product-card_5.entry.js +10 -10
  279. package/dist/esm/salla-loyalty-hero_2.entry.js +9 -9
  280. package/dist/esm/salla-loyalty-panel.entry.js +3 -3
  281. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  282. package/dist/esm/salla-loyalty-points-history.entry.js +2 -2
  283. package/dist/esm/salla-loyalty-prize-item.entry.js +2 -2
  284. package/dist/esm/salla-loyalty-program.entry.js +3 -3
  285. package/dist/esm/salla-loyalty-reward.entry.js +4 -4
  286. package/dist/esm/salla-loyalty.entry.js +1 -1
  287. package/dist/esm/salla-maintenance-alert.entry.js +2 -2
  288. package/dist/esm/salla-map_2.entry.js +4 -4
  289. package/dist/esm/salla-menu.entry.js +1 -1
  290. package/dist/esm/salla-metadata.entry.js +1 -1
  291. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +4 -4
  292. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +6 -6
  293. package/dist/esm/salla-multiple-bundle-product.entry.js +2 -2
  294. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  295. package/dist/esm/salla-notification-item.entry.js +2 -2
  296. package/dist/esm/salla-notifications.entry.js +1 -1
  297. package/dist/esm/salla-offer-modal.entry.js +2 -2
  298. package/dist/esm/salla-offer.entry.js +1 -1
  299. package/dist/esm/salla-order-branch.entry.js +1 -1
  300. package/dist/esm/salla-order-cancel.entry.js +1 -1
  301. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  302. package/dist/esm/salla-order-details-options.entry.js +1 -1
  303. package/dist/esm/salla-order-details.entry.js +2 -2
  304. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  305. package/dist/esm/salla-order-edit-product-card.entry.js +2 -2
  306. package/dist/esm/salla-order-edit.entry.js +1 -1
  307. package/dist/esm/salla-order-summary.entry.js +2 -2
  308. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  309. package/dist/esm/salla-orders.entry.js +1 -1
  310. package/dist/esm/salla-payments.entry.js +3 -3
  311. package/dist/esm/salla-placeholder.entry.js +2 -2
  312. package/dist/esm/salla-price-range.entry.js +3 -3
  313. package/dist/esm/salla-product-card-embed.entry.js +2 -2
  314. package/dist/esm/salla-product-card_2.entry.js +6 -6
  315. package/dist/esm/salla-product-size-guide.entry.js +3 -3
  316. package/dist/esm/salla-products-list.entry.js +1 -1
  317. package/dist/esm/salla-quick-order.entry.js +1 -1
  318. package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
  319. package/dist/esm/salla-rating-modal.entry.js +1 -1
  320. package/dist/esm/salla-review-factors-tags.entry.js +2 -2
  321. package/dist/esm/salla-scopes.entry.js +1 -1
  322. package/dist/esm/salla-search.entry.js +6 -6
  323. package/dist/esm/salla-skeleton.entry.js +2 -2
  324. package/dist/esm/salla-slider.entry.js +1 -1
  325. package/dist/esm/salla-social-share.entry.js +2 -2
  326. package/dist/esm/salla-social.entry.js +2 -2
  327. package/dist/esm/salla-tab-content_3.entry.js +4 -4
  328. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  329. package/dist/esm/salla-tooltip.entry.js +2 -2
  330. package/dist/esm/salla-trust-badges.entry.js +1 -1
  331. package/dist/esm/salla-user-menu.entry.js +1 -1
  332. package/dist/esm/salla-user-profile.entry.js +1 -1
  333. package/dist/esm/salla-user-settings.entry.js +2 -2
  334. package/dist/esm/salla-verify.entry.js +1 -1
  335. package/dist/esm/salla-wallet.entry.js +1 -1
  336. package/dist/esm/salla-wishlist-actions.entry.js +2 -2
  337. package/dist/esm/{tracked-promise-B5nZ0_u3.js → tracked-promise-CUM6cNiF.js} +1 -1
  338. package/dist/esm/twilight.js +3 -3
  339. package/dist/esm/{vanilla-picker-DrhPsPVG.js → vanilla-picker-kF8Cgi5q.js} +1 -1
  340. package/dist/twilight/{p-4f9905a1.entry.js → p-00d73870.entry.js} +1 -1
  341. package/dist/twilight/{p-ab56087a.entry.js → p-01636f53.entry.js} +1 -1
  342. package/dist/twilight/{p-ed745cc5.entry.js → p-022343f3.entry.js} +1 -1
  343. package/dist/twilight/{p-97a7ab54.entry.js → p-03db477f.entry.js} +1 -1
  344. package/dist/twilight/{p-789a33ab.entry.js → p-04fadfb3.entry.js} +1 -1
  345. package/dist/twilight/{p-7935b94f.entry.js → p-0604eb27.entry.js} +1 -1
  346. package/dist/twilight/{p-d5730ccd.entry.js → p-061fdc55.entry.js} +1 -1
  347. package/dist/twilight/{p-f63f2040.entry.js → p-0a1f28c9.entry.js} +1 -1
  348. package/dist/twilight/{p-3a51e372.entry.js → p-0b814320.entry.js} +1 -1
  349. package/dist/twilight/{p-044967a1.entry.js → p-0bc04e3f.entry.js} +1 -1
  350. package/dist/twilight/{p-bb1aff39.entry.js → p-0c1721e1.entry.js} +1 -1
  351. package/dist/twilight/p-0daa8221.entry.js +4 -0
  352. package/dist/twilight/{p-3240f2c3.entry.js → p-0e6a0989.entry.js} +2 -2
  353. package/dist/twilight/{p-da6a525a.entry.js → p-15c3b0cc.entry.js} +1 -1
  354. package/dist/twilight/{p-20141d72.entry.js → p-168e3ad8.entry.js} +1 -1
  355. package/dist/twilight/{p-c996ee08.entry.js → p-19c6d83a.entry.js} +1 -1
  356. package/dist/twilight/{p-6fb9221a.entry.js → p-1d75fdd9.entry.js} +1 -1
  357. package/dist/twilight/{p-07fa35ce.entry.js → p-2104f800.entry.js} +1 -1
  358. package/dist/twilight/{p-c6-stRrD.js → p-25ZR4Fc8.js} +1 -1
  359. package/dist/twilight/p-286d9ba3.entry.js +4 -0
  360. package/dist/twilight/p-2985e01e.entry.js +4 -0
  361. package/dist/twilight/{p-c3639051.entry.js → p-2c4f4539.entry.js} +1 -1
  362. package/dist/twilight/{p-0597f278.entry.js → p-2c9c0815.entry.js} +1 -1
  363. package/dist/twilight/{p-e5b1f92d.entry.js → p-39389b31.entry.js} +1 -1
  364. package/dist/twilight/{p-b344db5c.entry.js → p-3c96d5af.entry.js} +1 -1
  365. package/dist/twilight/{p-bec932de.entry.js → p-404d3645.entry.js} +1 -1
  366. package/dist/twilight/{p-8ab2b78f.entry.js → p-47c9e882.entry.js} +1 -1
  367. package/dist/twilight/{p-f28da331.entry.js → p-4fb48be8.entry.js} +1 -1
  368. package/dist/twilight/{p-5e58c1d1.entry.js → p-4fff03a8.entry.js} +1 -1
  369. package/dist/twilight/{p-5d72e09d.entry.js → p-51bc9c4d.entry.js} +1 -1
  370. package/dist/twilight/{p-57856a68.entry.js → p-54e43314.entry.js} +1 -1
  371. package/dist/twilight/{p-9965cc1b.entry.js → p-56ba7f94.entry.js} +1 -1
  372. package/dist/twilight/{p-861bf5a5.entry.js → p-5a215130.entry.js} +1 -1
  373. package/dist/twilight/{p-eca28f29.entry.js → p-5cb10852.entry.js} +1 -1
  374. package/dist/twilight/{p-031fe0b8.entry.js → p-5f47eb12.entry.js} +1 -1
  375. package/dist/twilight/{p-ed713905.entry.js → p-5fe29fcf.entry.js} +1 -1
  376. package/dist/twilight/p-67d7bd8b.entry.js +4 -0
  377. package/dist/twilight/{p-8edc1c0d.entry.js → p-6e535738.entry.js} +1 -1
  378. package/dist/twilight/{p-da132465.entry.js → p-72291ad7.entry.js} +1 -1
  379. package/dist/twilight/{p-558d69d0.entry.js → p-72c9cd44.entry.js} +1 -1
  380. package/dist/twilight/{p-6e2214d1.entry.js → p-74cac8a8.entry.js} +1 -1
  381. package/dist/twilight/{p-a306ae65.entry.js → p-74e009df.entry.js} +1 -1
  382. package/dist/twilight/{p-492fd499.entry.js → p-77d816b8.entry.js} +1 -1
  383. package/dist/twilight/{p-8e987fe7.entry.js → p-7b9ed1e4.entry.js} +1 -1
  384. package/dist/twilight/{p-6dbbe6cb.entry.js → p-7df52f7b.entry.js} +1 -1
  385. package/dist/twilight/{p-ffc6f929.entry.js → p-7e730733.entry.js} +1 -1
  386. package/dist/twilight/{p-20b4cc9c.entry.js → p-8658fefd.entry.js} +1 -1
  387. package/dist/twilight/{p-1bbe31ad.entry.js → p-90d53c9b.entry.js} +1 -1
  388. package/dist/twilight/{p-3128bebd.entry.js → p-9196b7a9.entry.js} +1 -1
  389. package/dist/twilight/{p-aa5a77fa.entry.js → p-92d37b3e.entry.js} +1 -1
  390. package/dist/twilight/{p-0e95d192.entry.js → p-92ec265b.entry.js} +1 -1
  391. package/dist/twilight/{p-377b941b.entry.js → p-930ff69a.entry.js} +1 -1
  392. package/dist/twilight/{p-ea2d6310.entry.js → p-931c44fb.entry.js} +1 -1
  393. package/dist/twilight/{p-6b600ab2.entry.js → p-953da0b5.entry.js} +1 -1
  394. package/dist/twilight/{p-f3a4c8c3.entry.js → p-95d8a11b.entry.js} +1 -1
  395. package/dist/twilight/{p-40d12093.entry.js → p-98186fb3.entry.js} +1 -1
  396. package/dist/twilight/{p-0a4a3298.entry.js → p-982ccb80.entry.js} +1 -1
  397. package/dist/twilight/{p-a9b810c4.entry.js → p-99ff235e.entry.js} +1 -1
  398. package/dist/twilight/{p-a1faadfd.entry.js → p-9a161a84.entry.js} +1 -1
  399. package/dist/twilight/{p-44ceacb7.entry.js → p-9c798a1a.entry.js} +1 -1
  400. package/dist/twilight/{p-016788c7.entry.js → p-9cc2e54c.entry.js} +1 -1
  401. package/dist/twilight/{p-a92553f2.entry.js → p-9e27778a.entry.js} +1 -1
  402. package/dist/twilight/{p-DWmThpkK.js → p-BYpv9A8D.js} +1 -1
  403. package/dist/twilight/{p-DHrUX865.js → p-CHOv1Smw.js} +1 -1
  404. package/dist/twilight/{p-en37lqSm.js → p-Ca84RIBI.js} +1 -1
  405. package/dist/twilight/{p-CfWsH_qz.js → p-DMHhYV48.js} +1 -1
  406. package/dist/twilight/{p-CaEa1mkI.js → p-DQXp-sN5.js} +1 -1
  407. package/dist/twilight/{p-Dvsk1fA0.js → p-DYcV7UW8.js} +1 -1
  408. package/dist/twilight/{p-BVVNfOQk.js → p-DYgnIxqR.js} +1 -1
  409. package/dist/twilight/{p-DD7hlkaJ.js → p-DuoSRdS5.js} +1 -1
  410. package/dist/twilight/{p-Caj9IqWn.js → p-KZ7SFw0C.js} +1 -1
  411. package/dist/twilight/{p-153044cb.entry.js → p-a1d3a45f.entry.js} +1 -1
  412. package/dist/twilight/{p-e2a37618.entry.js → p-a2e8a9d1.entry.js} +1 -1
  413. package/dist/twilight/{p-3205307f.entry.js → p-a34c031b.entry.js} +1 -1
  414. package/dist/twilight/{p-96c1a0a1.entry.js → p-a5eeb082.entry.js} +1 -1
  415. package/dist/twilight/{p-9d220aff.entry.js → p-a96e5e06.entry.js} +1 -1
  416. package/dist/twilight/{p-279e6529.entry.js → p-ae83c325.entry.js} +1 -1
  417. package/dist/twilight/{p-393ced29.entry.js → p-aed6d4eb.entry.js} +1 -1
  418. package/dist/twilight/{p-e03a5bb9.entry.js → p-b0437615.entry.js} +1 -1
  419. package/dist/twilight/{p-8b746fed.entry.js → p-bd2672ee.entry.js} +1 -1
  420. package/dist/twilight/{p-7d0bad4e.entry.js → p-bdda14f6.entry.js} +1 -1
  421. package/dist/twilight/p-be973f87.entry.js +4 -0
  422. package/dist/twilight/{p-7fa4c6ed.entry.js → p-c3530e7a.entry.js} +1 -1
  423. package/dist/twilight/{p-94b5d1c0.entry.js → p-c6b82041.entry.js} +1 -1
  424. package/dist/twilight/{p-cf75cffe.entry.js → p-c6d64b53.entry.js} +1 -1
  425. package/dist/twilight/{p-87f4f9ab.entry.js → p-ca0a62f9.entry.js} +1 -1
  426. package/dist/twilight/{p-24244ede.entry.js → p-ca52add5.entry.js} +1 -1
  427. package/dist/twilight/{p-b50b5139.entry.js → p-cd65e560.entry.js} +1 -1
  428. package/dist/twilight/{p-99537f59.entry.js → p-d39bf8b5.entry.js} +1 -1
  429. package/dist/twilight/{p-ffaa3b02.entry.js → p-d3a9573e.entry.js} +1 -1
  430. package/dist/twilight/p-d49130fc.entry.js +4 -0
  431. package/dist/twilight/p-d54b75de.entry.js +4 -0
  432. package/dist/twilight/{p-0f6cf7ae.entry.js → p-d8c9d454.entry.js} +1 -1
  433. package/dist/twilight/{p-24a6d077.entry.js → p-dc6b3dfb.entry.js} +1 -1
  434. package/dist/twilight/{p-753029a4.entry.js → p-e5c2df5a.entry.js} +1 -1
  435. package/dist/twilight/p-eb2e3e67.entry.js +4 -0
  436. package/dist/twilight/{p-a4e19dcc.entry.js → p-ecdf7027.entry.js} +1 -1
  437. package/dist/twilight/{p-f424a0a2.entry.js → p-f060a3dd.entry.js} +1 -1
  438. package/dist/twilight/{p-ed35f803.entry.js → p-f4eba1d1.entry.js} +1 -1
  439. package/dist/twilight/{p-dcfab648.entry.js → p-f5ac65b4.entry.js} +1 -1
  440. package/dist/twilight/{p-3ca34205.entry.js → p-f8d642b2.entry.js} +1 -1
  441. package/dist/twilight/{p-c72ed3d3.entry.js → p-f9912293.entry.js} +1 -1
  442. package/dist/twilight/p-f9a3f3f4.entry.js +4 -0
  443. package/dist/twilight/{p-D5YVbhSD.js → p-kflOqry6.js} +1 -1
  444. package/dist/twilight/{p-U4GQwdjm.js → p-lYj74H1f.js} +1 -1
  445. package/dist/twilight/twilight.esm.js +1 -1
  446. package/dist/types/components/salla-cart-coupons/salla-cart-coupons.d.ts +31 -3
  447. package/package.json +5 -5
  448. package/dist/collection/components/salla-conditional-offer/test/salla-conditional-offer.js +0 -12
  449. package/dist/twilight/p-365cb4e5.entry.js +0 -4
  450. package/dist/twilight/p-4c3435a8.entry.js +0 -4
  451. package/dist/twilight/p-4cf658b6.entry.js +0 -4
  452. package/dist/twilight/p-4f60cdea.entry.js +0 -4
  453. package/dist/twilight/p-8ea1c5b4.entry.js +0 -4
  454. package/dist/twilight/p-b2019ba2.entry.js +0 -4
  455. package/dist/twilight/p-da157fc7.entry.js +0 -4
  456. package/dist/twilight/p-ddfb7d95.entry.js +0 -4
  457. package/dist/twilight/p-ee18ef3e.entry.js +0 -4
  458. package/dist/types/components/salla-conditional-offer/test/salla-conditional-offer.d.ts +0 -1
@@ -5,7 +5,7 @@ import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal
5
5
  import { d as defineCustomElement$3 } from './salla-button2.js';
6
6
  import { d as defineCustomElement$2 } from './salla-slider2.js';
7
7
 
8
- const sallaCartCouponsCss = "";
8
+ const sallaCartCouponsCss = ".s-cart-coupons-applied-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.s-cart-coupons-applied-item{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px;background:#fff;border:1px solid #e5e7eb;border-radius:10px;border-inline-start:3px solid #10b981}.s-cart-coupons-applied-code{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#111827}.s-cart-coupons-applied-code::before{content:\"\";width:7px;height:7px;border-radius:9999px;background:#10b981}.s-cart-coupons-applied-remove{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;color:#ef4444;background:transparent;border:0;border-radius:9999px;cursor:pointer;transition:background-color 0.15s ease, color 0.15s ease}.s-cart-coupons-applied-remove:hover{background:#fef2f2}.s-cart-coupons-applied-remove:disabled{opacity:0.5;cursor:not-allowed}";
9
9
 
10
10
  const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupons extends HTMLElement {
11
11
  constructor() {
@@ -17,22 +17,46 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
17
17
  this.couponInputValue = '';
18
18
  this.couponError = '';
19
19
  this.isApplying = false;
20
+ // Applied coupon codes rendered as removable chips below the input.
21
+ // - Single-coupon (default): holds at most the one cart coupon.
22
+ // - Multi-coupon (features::multi_coupon on): holds every applied code,
23
+ // sourced from the cart's `coupons` array so it survives a page refresh.
24
+ this.appliedCoupons = [];
25
+ // Whether the store has multi-coupon enabled. Read ONCE from the store config
26
+ // (Salla.config.get('store.settings.cart.multi_coupon')) — a stable store-level setting,
27
+ // exactly like cart.apply_coupon_enabled — not from the per-cart payload or localStorage.
28
+ this.multiCoupon = false;
20
29
  this.isHandlingInternalError = false;
21
30
  // Store cart event listener references for cleanup
22
31
  this.cartUpdatedHandler = (cartData) => {
23
- this.cartTotal = cartData.sub_total ?? cartData.total ?? 0;
24
- // Update current coupon state
25
- const couponCode = cartData.coupon || '';
26
- // Only overwrite the user's typed value when the cart-level coupon itself changes
27
- if (couponCode !== this.currentCoupon) {
28
- this.currentCoupon = couponCode;
29
- this.couponInputValue = couponCode;
32
+ // cart::updated carries the server-side cart. The multi-coupon flag comes from store
33
+ // config (set once in componentWillLoad), so only refresh total + chips here.
34
+ this.cartTotal = cartData?.summary?.sub_total ?? cartData?.sub_total ?? cartData?.total ?? this.cartTotal;
35
+ // Re-sync applied coupon state from the payload mirroring refreshFromServer's guard:
36
+ // - Multi-coupon: only a real `coupons` array re-seeds the chips, so a summary-only
37
+ // cart::updated can't shrink them (add/remove refreshes the chips from the server).
38
+ // - Single-coupon (flag off): any payload carrying `coupon` re-syncs the input, so a
39
+ // server-side invalidation (e.g. cart drops below the coupon minimum) that emits
40
+ // `coupon: ''` clears the stale code instead of leaving it stuck until a reload.
41
+ const carriesCoupons = this.multiCoupon
42
+ ? Array.isArray(cartData?.coupons)
43
+ : (cartData && 'coupon' in cartData);
44
+ if (carriesCoupons) {
45
+ this.syncAppliedFromCart(cartData);
30
46
  }
31
47
  // Clear error when cart updates
32
48
  this.couponError = '';
33
49
  };
34
50
  this.couponAddedHandler = () => {
35
- // Coupon was successfully added - state is managed by cartUpdatedHandler
51
+ // Skip while an internal apply/remove is in flight — handleApplyClick/removeCoupon already
52
+ // refresh from the server, so this handler only needs to cover EXTERNAL coupon changes
53
+ // (e.g. the checkout page). Prevents a duplicate salla.cart.details() call per action.
54
+ if (this.isApplying || this.isHandlingInternalError) {
55
+ return;
56
+ }
57
+ // Re-read the applied set + flag from the SERVER (not storage), so the chips reflect
58
+ // the real cart — a stale storage cache (e.g. after a checkout-page removal) never shows.
59
+ this.refreshFromServer();
36
60
  };
37
61
  this.couponAdditionFailedHandler = (error) => {
38
62
  // Only handle external coupon failures when no internal operation is handling errors
@@ -42,7 +66,12 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
42
66
  // Internal operations handle their own errors to prevent double display
43
67
  };
44
68
  this.couponDeletedHandler = () => {
45
- // Coupon was removed - state is managed by cartUpdatedHandler
69
+ // Same guard as couponAddedHandler: internal removeCoupon already refreshes; only cover
70
+ // EXTERNAL deletions here, so an internal remove doesn't fire two salla.cart.details() calls.
71
+ if (this.isApplying || this.isHandlingInternalError) {
72
+ return;
73
+ }
74
+ this.refreshFromServer();
46
75
  };
47
76
  // Arrow functions to maintain context for event listeners
48
77
  this.onKeyUp = (event) => {
@@ -58,15 +87,20 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
58
87
  async componentWillLoad() {
59
88
  await Salla.onReady();
60
89
  await Salla.lang.onLoaded();
90
+ // Multi-coupon is a store-level setting — read it ONCE from config here (like
91
+ // apply_coupon_enabled), so it never depends on the per-cart payload or localStorage.
92
+ this.multiCoupon = !!salla.config.get('store.settings.cart.multi_coupon');
61
93
  //then set your logic here to avoid any race condition
62
94
  this.loadCouponsData(); // Load async without blocking render - shows empty until loaded
95
+ // Synchronous first-paint seed from the storage cart so an applied coupon shows on the very
96
+ // first render instead of flashing empty → applied while the async server fetch is in flight
97
+ // (the old loadCartTotal read storage synchronously). loadCartTotal() then reconciles with the
98
+ // authoritative server payload, which also corrects a storage coupon that was stale.
99
+ this.seedFromStorage();
63
100
  this.loadCartTotal();
64
101
  this.setupCartEventListeners();
65
102
  // Note: No store feature gate needed - coupon availability controlled by backend API response
66
103
  }
67
- componentDidLoad() {
68
- this.setupCouponInputEvents();
69
- }
70
104
  setupCartEventListeners() {
71
105
  // Listen for cart updates to refresh cart total
72
106
  salla.event.on('cart::updated', this.cartUpdatedHandler);
@@ -76,10 +110,8 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
76
110
  salla.event.on('cart::coupon.deleted', this.couponDeletedHandler);
77
111
  }
78
112
  disconnectedCallback() {
79
- // Clean up DOM event listeners
80
- this.couponInputRef?.removeEventListener('keyup', this.onKeyUp);
81
- this.couponInputRef?.removeEventListener('input', this.onInput);
82
- // Clean up cart event listeners using reliable global event system
113
+ // Input events are bound via JSX (onInput/onKeyUp) — Stencil cleans those up. Only the
114
+ // global cart event listeners need explicit teardown here.
83
115
  salla.event.off('cart::updated', this.cartUpdatedHandler);
84
116
  salla.event.off('cart::coupon.added', this.couponAddedHandler);
85
117
  salla.event.off('cart::coupon.addition.failed', this.couponAdditionFailedHandler);
@@ -125,21 +157,118 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
125
157
  this.availableCoupons = [];
126
158
  }
127
159
  }
128
- loadCartTotal() {
129
- // Get cart total and current coupon from Salla storage
130
- const cart = salla.storage.get('cart');
131
- // Check summary first (more accurate), then cart level, fallback to 0
132
- this.cartTotal = cart?.summary?.sub_total ?? cart?.sub_total ?? 0;
160
+ async loadCartTotal() {
161
+ // Multi-coupon needs the SERVER-authoritative applied list (localStorage can be stale, e.g.
162
+ // coupons removed on the checkout page). Single-coupon (flag off — the default, and the hot
163
+ // path at billions req/day) is fully seeded synchronously by seedFromStorage() with NO network
164
+ // call, exactly as the original implementation read from storage — so skip the
165
+ // salla.cart.details() round-trip for it.
166
+ if (!this.multiCoupon) {
167
+ return;
168
+ }
169
+ await this.refreshFromServer();
170
+ }
171
+ /**
172
+ * Synchronous first-paint seed from the storage cart — SINGLE-COUPON (flag-off) ONLY.
173
+ *
174
+ * It restores the old synchronous first paint Greptile flagged for the default single-coupon
175
+ * stores (the input shows the applied code immediately instead of flashing empty).
176
+ *
177
+ * With multi-coupon ON the applied coupons are SERVER-authoritative: storage can still list a
178
+ * coupon that was invalidated or removed server-side (e.g. dropped below the cart minimum, or
179
+ * removed on another surface), so seeding the chips from it would render a STALE list — e.g.
180
+ * two chips when the server holds one — until the refresh lands. In that mode we skip the seed
181
+ * entirely and let refreshFromServer/cart::updated populate the chips from the server.
182
+ */
183
+ seedFromStorage() {
184
+ if (this.multiCoupon) {
185
+ return;
186
+ }
187
+ const stored = salla.storage.get('cart');
188
+ if (stored && typeof stored === 'object' && 'coupon' in stored) {
189
+ this.applyCart(stored);
190
+ }
191
+ }
192
+ /**
193
+ * Fetch the cart fresh from the server (salla.cart.details -> CartPresenter::forApi) and
194
+ * seed the applied codes + total from its authoritative payload (cart.coupons). Falls back
195
+ * to the storage cart ONLY if the request fails, and never wipes the chips on an odd shape.
196
+ */
197
+ async refreshFromServer() {
198
+ try {
199
+ const response = await salla.cart.details();
200
+ // cart-details nests the cart under data.cart (same shape addCoupon/deleteCoupon read).
201
+ const cart = response?.data?.cart ?? response?.data ?? response;
202
+ if (cart && typeof cart === 'object' &&
203
+ (Array.isArray(cart.coupons) || 'coupon' in cart)) {
204
+ this.applyCart(cart);
205
+ return;
206
+ }
207
+ }
208
+ catch (e) {
209
+ // ignore — fall back to storage below
210
+ }
211
+ const stored = salla.storage.get('cart');
212
+ if (stored) {
213
+ this.applyCart(stored);
214
+ }
215
+ }
216
+ /** Apply an authoritative cart object: total + applied chips (flag comes from store config). */
217
+ applyCart(cart) {
218
+ this.cartTotal = cart?.summary?.sub_total ?? cart?.sub_total ?? this.cartTotal;
219
+ this.syncAppliedFromCart(cart);
220
+ }
221
+ /**
222
+ * Seed the chip list and the active coupon from a cart object.
223
+ * Multi-coupon: use the cart's `coupons` array (survives refresh).
224
+ * Single-coupon (default): use the single `coupon` code.
225
+ */
226
+ syncAppliedFromCart(cart) {
133
227
  this.currentCoupon = cart?.coupon || '';
134
- this.couponInputValue = cart?.coupon || '';
228
+ if (this.multiCoupon) {
229
+ this.appliedCoupons = Array.isArray(cart?.coupons)
230
+ ? cart.coupons.filter(Boolean)
231
+ : (this.currentCoupon ? [this.currentCoupon] : []);
232
+ return;
233
+ }
234
+ // Single-coupon (flag off): mirror the applied code into the (disabled) input, matching the
235
+ // original production UX. Only set at sync points (load / after apply-remove), never on a
236
+ // keystroke, so it won't clobber what the user is typing.
237
+ this.couponInputValue = this.currentCoupon;
238
+ this.appliedCoupons = this.currentCoupon ? [this.currentCoupon] : [];
135
239
  }
136
- setupCouponInputEvents() {
137
- if (!this.couponInputRef || !this.couponButtonRef) {
240
+ async handleApplyClick() {
241
+ if (this.isApplying) {
242
+ return;
243
+ }
244
+ const code = this.couponInputValue.trim();
245
+ if (!code) {
246
+ this.showCouponError(salla.lang.get('pages.cart.enter_coupon_code'));
138
247
  return;
139
248
  }
140
- this.couponInputRef.addEventListener('keyup', this.onKeyUp);
141
- this.couponInputRef.addEventListener('input', this.onInput);
249
+ this.isApplying = true;
250
+ this.isHandlingInternalError = true;
251
+ try {
252
+ // Apply the coupon. Multi-coupon: the backend appends it; single-coupon:
253
+ // it replaces the existing one. Re-read the applied set from the SERVER (not storage)
254
+ // for the chip list, and clear the input for the next code.
255
+ await salla.cart.addCoupon(code);
256
+ await this.refreshFromServer();
257
+ this.couponInputValue = '';
258
+ }
259
+ catch (error) {
260
+ this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
261
+ }
262
+ finally {
263
+ this.isApplying = false;
264
+ // Keep internal error flag active briefly to prevent race condition with SDK event
265
+ setTimeout(() => {
266
+ this.isHandlingInternalError = false;
267
+ }, 100);
268
+ }
142
269
  }
270
+ // Single-coupon (flag off) toggle button: apply the typed code, or remove the applied one.
271
+ // Mirrors the original production behavior; the SDK coupon.added/deleted events then refresh.
143
272
  async handleCouponButtonClick() {
144
273
  if (this.isApplying) {
145
274
  return;
@@ -153,13 +282,42 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
153
282
  this.isHandlingInternalError = true;
154
283
  try {
155
284
  if (hasCoupon) {
156
- // Remove existing coupon
157
285
  await salla.cart.deleteCoupon();
158
286
  }
159
287
  else {
160
- // Apply new coupon
161
288
  await salla.cart.addCoupon(this.couponInputValue.trim());
162
289
  }
290
+ // Refresh the UI directly for the single-coupon toggle. The coupon.added/deleted event
291
+ // handlers skip internal actions (isApplying guard), and cartUpdatedHandler doesn't
292
+ // re-seed from a summary-only payload — so without this refresh the input/button would
293
+ // stay stuck after a successful apply/remove on the default (flag-off) path.
294
+ await this.refreshFromServer();
295
+ }
296
+ catch (error) {
297
+ this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
298
+ }
299
+ finally {
300
+ this.isApplying = false;
301
+ setTimeout(() => {
302
+ this.isHandlingInternalError = false;
303
+ }, 100);
304
+ }
305
+ }
306
+ async removeCoupon(code) {
307
+ if (this.isApplying) {
308
+ return;
309
+ }
310
+ this.isApplying = true;
311
+ this.isHandlingInternalError = true;
312
+ try {
313
+ // Multi-coupon: remove just this code. Single-coupon: reset the cart coupon.
314
+ if (this.multiCoupon) {
315
+ await salla.cart.deleteCoupon(code);
316
+ }
317
+ else {
318
+ await salla.cart.deleteCoupon();
319
+ }
320
+ await this.refreshFromServer();
163
321
  }
164
322
  catch (error) {
165
323
  this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
@@ -198,6 +356,16 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
198
356
  try {
199
357
  // Apply the coupon directly without checking for existing coupon
200
358
  await salla.cart.addCoupon(couponCode.trim());
359
+ // Refresh the chips/input directly — the guarded coupon.added handler skips internal
360
+ // actions, so the coupon-card / selectCoupon path must refresh here or the chip list
361
+ // stays stale in multi-coupon mode until the next cart::updated with a coupons[] array.
362
+ await this.refreshFromServer();
363
+ // Multi-coupon: clear the input for the next code. Single-coupon: refreshFromServer
364
+ // already set the input to the applied code (shown disabled), so keep it — clearing
365
+ // here would blank the disabled field on the default flag-off path.
366
+ if (this.multiCoupon) {
367
+ this.couponInputValue = '';
368
+ }
201
369
  }
202
370
  catch (error) {
203
371
  this.showCouponError(error.response?.data?.error?.message || salla.lang.get('pages.cart.coupon_application_error'));
@@ -243,7 +411,18 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
243
411
  : `${salla.lang.get('pages.cart.expires_after')} ${coupon.remaining_days} ${salla.lang.get('pages.cart.day')}`)), coupon.minimum_amount && parseFloat(coupon.minimum_amount.amount) > 0 && (h("div", { class: "s-cart-coupons-minimum" }, salla.lang.get('pages.cart.minimum'), " ", h("span", { innerHTML: salla.money(coupon.minimum_amount.amount, coupon.minimum_amount.currency) })))), h("div", { class: "s-cart-coupons-action" }, isEligible ? salla.lang.get('pages.cart.save_coupon') : salla.lang.get('pages.cart.coupon_not_compatible'))))));
244
412
  }
245
413
  render() {
246
- return (h(Host, { key: '09c964ef1b706cd623f5b99b9606ecf93486e8b5' }, h("div", { key: 'a3b3313ecbc23821cca29115f1189ca2dfbcbb48', class: "s-cart-coupons-wrapper" }, h("div", { key: '27bc855b95d252a4feffc256fdef70b7d83aa4b3', class: "s-cart-coupons-input-section" }, h("label", { key: 'd17fff32352bc8e0535986519d5e22dda7879754', htmlFor: "coupon-input", class: "s-cart-coupons-coupon-label" }, salla.lang.get('pages.cart.have_coupon')), h("div", { key: '4e9acdb76110fffbd6984fa522fa91440d8c3bc6', class: "s-cart-coupons-coupon-input-container" }, h("input", { key: '2f0e3ee9a44db390caeeb4e85f40aab825c91182', type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: !!this.currentCoupon || this.isApplying, ref: el => this.couponInputRef = el, "aria-label": salla.lang.get('pages.cart.apply_coupon') }), h("salla-button", { key: 'a7356872f2eaae51bf77207c0fcfd10ea3c25313', ref: el => this.couponButtonRef = el, class: `s-cart-coupons-coupon-button ${this.currentCoupon ? 's-cart-coupons-coupon-button-remove' : 's-cart-coupons-coupon-button-apply'}`, color: this.currentCoupon ? 'danger' : 'primary', loading: this.isApplying, "loader-position": "center", onClick: () => this.handleCouponButtonClick() }, this.currentCoupon ? (h("i", { class: "sicon-cancel" })) : (h("span", null, salla.lang.get('pages.cart.save_coupon'))))), this.couponError && (h("span", { key: '4d0b025d425e2fbba8f313b92c1e257042c549b0', class: "s-cart-coupons-coupon-error" }, this.couponError))), this.availableCoupons && this.availableCoupons.length > 0 && (h("salla-slider", { key: 'ac6a96179ec2990f8fedfd3cbb63404e7fe60edf', type: "carousel", showControls: false, class: "s-cart-coupons-slider" }, h("div", { key: '7c4f2641aa87a91d55d88d5fc0a375a5d3114a99', slot: "items" }, this.availableCoupons.map(coupon => this.renderCouponCard(coupon))))))));
414
+ return (h(Host, { key: '30a1ee00e7ec27d12012823347cbcf3c477834e5' }, h("div", { key: '6f84298e9ebd6c50c84fb9a3736d734996e39c33', class: "s-cart-coupons-wrapper" }, h("div", { key: 'b95a1c2b29d2fed54fdf143eac8e37add062668b', class: "s-cart-coupons-input-section" }, h("label", { key: 'e6711fae70db31f8a5987cb58f0488e974394e1c', htmlFor: "coupon-input", class: "s-cart-coupons-coupon-label" }, salla.lang.get('pages.cart.have_coupon')), h("div", { key: '824b806c6aa40fb039f659fe81f6cb7686f46b10', class: "s-cart-coupons-coupon-input-container" }, this.multiCoupon ? [
415
+ // Multi-coupon: input stays active to append more codes; applied coupons render
416
+ // as removable chips below.
417
+ h("input", { type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: this.isApplying, onInput: this.onInput, onKeyUp: this.onKeyUp, "aria-label": salla.lang.get('pages.cart.apply_coupon'), key: "coupon-input" }),
418
+ h("salla-button", { ref: el => this.couponButtonRef = el, class: "s-cart-coupons-coupon-button s-cart-coupons-coupon-button-apply", color: "primary", loading: this.isApplying, "loader-position": "center", onClick: () => this.handleApplyClick(), key: "apply-button" }, h("span", null, salla.lang.get('pages.cart.save_coupon'))),
419
+ ] : [
420
+ // Single-coupon (flag off): the ORIGINAL production UX — the field is disabled and
421
+ // shows the applied code, and the button toggles to a red X (danger) to remove it;
422
+ // a new code can only be entered after removing. Reuses the existing master classes.
423
+ h("input", { type: "text", id: "coupon-input", name: "coupon", class: `form-input ${this.couponError ? 's-coupon-input-error' : ''}`, placeholder: salla.lang.get('pages.cart.coupon_placeholder'), value: this.couponInputValue, disabled: !!this.currentCoupon || this.isApplying, onInput: this.onInput, onKeyUp: this.onKeyUp, "aria-label": salla.lang.get('pages.cart.apply_coupon'), key: "coupon-input" }),
424
+ h("salla-button", { ref: el => this.couponButtonRef = el, class: `s-cart-coupons-coupon-button ${this.currentCoupon ? 's-cart-coupons-coupon-button-remove' : 's-cart-coupons-coupon-button-apply'}`, color: this.currentCoupon ? 'danger' : 'primary', loading: this.isApplying, "loader-position": "center", onClick: () => this.handleCouponButtonClick(), key: "apply-button" }, this.currentCoupon ? (h("i", { class: "sicon-cancel" })) : (h("span", null, salla.lang.get('pages.cart.save_coupon')))),
425
+ ]), this.couponError && (h("span", { key: '0f3b36e8192777fb7e7d0a065fe720c009065f9d', class: "s-cart-coupons-coupon-error" }, this.couponError)), this.multiCoupon && this.appliedCoupons.length > 0 && (h("div", { key: 'b680e30bd1ae49db5e304440431cdc89c6e5d051', class: "s-cart-coupons-applied-list" }, this.appliedCoupons.map(code => (h("div", { class: "s-cart-coupons-applied-item", key: code }, h("span", { class: "s-cart-coupons-applied-code" }, code), h("button", { type: "button", class: "s-cart-coupons-applied-remove", "aria-label": `${salla.lang.get('pages.cart.delete')} ${code}`, disabled: this.isApplying, onClick: () => this.removeCoupon(code) }, h("i", { class: "sicon-cancel" })))))))), this.availableCoupons && this.availableCoupons.length > 0 && (h("salla-slider", { key: 'a2d312dbf6e997939f54c7867ef0d98091bbde4a', type: "carousel", showControls: false, class: "s-cart-coupons-slider" }, h("div", { key: 'b474dcbdeabc26bef5ecba94dd78ef72a60950df', slot: "items" }, this.availableCoupons.map(coupon => this.renderCouponCard(coupon))))))));
247
426
  }
248
427
  get host() { return this; }
249
428
  static get style() { return sallaCartCouponsCss; }
@@ -254,6 +433,8 @@ const SallaCartCoupons$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartCoupo
254
433
  "couponInputValue": [32],
255
434
  "couponError": [32],
256
435
  "isApplying": [32],
436
+ "appliedCoupons": [32],
437
+ "multiCoupon": [32],
257
438
  "selectCoupon": [64]
258
439
  }]);
259
440
  function defineCustomElement$1() {
@@ -123,7 +123,7 @@ const SallaCartSummary$1 = /*@__PURE__*/ proxyCustomElement(class SallaCartSumma
123
123
  return cartUrl;
124
124
  }
125
125
  render() {
126
- return (h(Host, { key: '96a4c4fc3942df69e884ba44559adbec55743658' }, h("a", { key: 'e28c48fef8ade7f46c1dc1747baeeb16b70f8732', class: "s-cart-summary-wrapper", href: this.getCartLink(), onClick: this.handleCheckoutClick }, h("div", { key: '4fed123336b4aa1892da9d83250321d837d684aa', id: "s-cart-icon" }, h("slot", { key: '365962ccc1d83f4437718f93ca15358fcce7113d', name: "icon" }, h("i", { key: '88870c2a2c4c21476d96e2253ea8b0c911bd493c', class: "s-cart-summary-icon", innerHTML: PendingOrdersIcon }))), h("span", { key: '29a8d5436bd72355bc639cbd827a1c223bfe6f9b', class: "s-cart-summary-count" }, salla.helpers.number(this.cartSummaryCount)), h("p", { key: '630577903ec4a57177101cdc88b3f8e7d68ec676', class: "s-cart-summary-content" }, this.showCartLabel && h("span", { key: '5f61a936210a79ead537d6339a23dc73c7c91a88', class: "s-cart-summary-label" }, this.cartLabel), h("b", { key: 'b23c5f1cec4c520e2e789daa8e3af993ec1b5e49', class: "s-cart-summary-total", innerHTML: salla.money(this.cartSummaryTotal) })))));
126
+ return (h(Host, { key: '27e472fb912afff849c94a8a93a9a71778c6819d' }, h("a", { key: 'f9ef99f2a7205fcfdc0bdd799b1b751ab40bcb35', class: "s-cart-summary-wrapper", href: this.getCartLink(), onClick: this.handleCheckoutClick }, h("div", { key: '1b0d26d3e17b0fb5d6b2cbdc1cd14c079a5fb47b', id: "s-cart-icon" }, h("slot", { key: '3c64b2afa8782a4018dd086e657f16373a91f997', name: "icon" }, h("i", { key: '46f1cebfa346e20d27f8ffed1206c05828be004a', class: "s-cart-summary-icon", innerHTML: PendingOrdersIcon }))), h("span", { key: '72bd9fc2d2949b74109b9e57e823c4c4cc99d287', class: "s-cart-summary-count" }, salla.helpers.number(this.cartSummaryCount)), h("p", { key: 'd65efd069e4f5968c8f592bf341b35853b000bda', class: "s-cart-summary-content" }, this.showCartLabel && h("span", { key: 'ecbd5350d56131aee746913bb7c6e662431f7001', class: "s-cart-summary-label" }, this.cartLabel), h("b", { key: 'aeebd5d52966dc183111e49289061c3649087a8f', class: "s-cart-summary-total", innerHTML: salla.money(this.cartSummaryTotal) })))));
127
127
  }
128
128
  get host() { return this; }
129
129
  static get style() { return sallaCartSummaryCss; }
@@ -208,7 +208,7 @@ const SallaColorPicker = /*@__PURE__*/ proxyCustomElement(class SallaColorPicker
208
208
  });
209
209
  }
210
210
  render() {
211
- return (h(Host, { key: '4b648b7685b1d6601cb8b6e826d5eb716cbf4bba', class: "s-color-picker-main" }, h("slot", { key: '59afd795f1f5cce7d33b9e5c5e0e65be5db485f1', name: "widget" }, h("div", { key: '312878f910fc6c94b47bcd24319291f9db7e1d13', class: "s-color-picker-widget" }, h("div", { key: '1865cf384e4c6ecaef1ab2b35f8a6653304f6b9d', class: "s-color-picker-widget-canvas", ref: dv => (this.canvas = dv) }), h("span", { key: 'd92e8fbe87685abc27224d08e71f06ad216d6593', innerHTML: ArrowDown }))), h("input", { key: 'df66b2b623c71acba891a3c02e7a02905d78861b', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => (this.colorInput = color) })));
211
+ return (h(Host, { key: '516a09b2d219b7c12dd251c68e6e55a9a9f7624b', class: "s-color-picker-main" }, h("slot", { key: 'ce684e4b8a8a80710688e3f0c0e43271069fc920', name: "widget" }, h("div", { key: 'f95ff1d709d58e22a4a74ccc35f8db2e17be7e38', class: "s-color-picker-widget" }, h("div", { key: 'fd2347378990972269557593a7182f2bf4cd9f98', class: "s-color-picker-widget-canvas", ref: dv => (this.canvas = dv) }), h("span", { key: 'e22a7ed6738b5fcbc22453e5b091eeeb7720719a', innerHTML: ArrowDown }))), h("input", { key: 'b3f55c713a626808c6f36e4c1454abc26c97cb6e', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => (this.colorInput = color) })));
212
212
  }
213
213
  componentDidLoad() {
214
214
  if (this.canvas)
@@ -45,7 +45,7 @@ const SallaCommentForm = /*@__PURE__*/ proxyCustomElement(class SallaCommentForm
45
45
  .finally(() => this.submitBtn.stop());
46
46
  }
47
47
  render() {
48
- return (h(Host, { key: 'c3c4acb833a93d11b2c71eb77742319c8085968c' }, !!this.canComment ? h("form", { ref: frm => this.commentForm = frm }, h("div", { class: "s-comment-form-wrapper" }, this.showAvatar ?
48
+ return (h(Host, { key: '0e3a24dcfe8922106b9479aa559cf0e126bc3fcf' }, !!this.canComment ? h("form", { ref: frm => this.commentForm = frm }, h("div", { class: "s-comment-form-wrapper" }, this.showAvatar ?
49
49
  h("img", { class: "s-comment-form-avatar", src: salla.config.get('user.avatar'), alt: "user avatar" }) : '', h("div", { class: "s-comment-form-content" }, h("textarea", { cols: 30, rows: 5, minlength: "4", maxlength: "500", ref: field => this.commentField = field, placeholder: this.placeholder, class: "s-comment-form-input", required: true }), h("br", null), h("div", { class: "s-comment-form-action" }, h("salla-button", { ref: btn => this.submitBtn = btn, "loader-position": 'center', onClick: () => this.submit() }, this.submitText))))) : ''));
50
50
  }
51
51
  static get style() { return sallaCommentFormCss; }
@@ -130,7 +130,7 @@ const SallaConditionalFields = /*@__PURE__*/ proxyCustomElement(class SallaCondi
130
130
  });
131
131
  }
132
132
  render() {
133
- return (h(Host, { key: '65ddceb3d0fc1eff329762b0c9d1784f223dc1ee' }, h("slot", { key: 'ee65b749c141f8288b288705ba7750676bb68408' })));
133
+ return (h(Host, { key: 'badbb24a38a68127a6880ab4dbe0b0ae4730b11d' }, h("slot", { key: 'a9bdc41d3ded750f0ac5b0e4b5dea3618e02286a' })));
134
134
  }
135
135
  get host() { return this; }
136
136
  }, [4, "salla-conditional-fields", undefined, [[0, "change", "changeHandler"], [0, "input", "changeHandler"]]]);
@@ -234,7 +234,7 @@ const SallaCountDown = /*@__PURE__*/ proxyCustomElement(class SallaCountDown ext
234
234
  return this.renderCountDown();
235
235
  }
236
236
  render() {
237
- return (h(Host, { key: '7055acd8fb89549ceff1f1b23f36c2dcf5f8dde0', 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()));
237
+ return (h(Host, { key: '966a6ce961c0cc07b937d9b8e328211377084d44', 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()));
238
238
  }
239
239
  static get style() { return sallaCountDownCss; }
240
240
  }, [0, "salla-count-down", {
@@ -211,7 +211,7 @@ const SallaDatetimePicker = /*@__PURE__*/ proxyCustomElement(class SallaDatetime
211
211
  }
212
212
  }
213
213
  render() {
214
- return h("div", { key: '32645810d31bcc76582da3910ccaeac5b4490719', class: "s-datetime-picker" }, h("input", { key: 'ec579ffb806ff75829b6d0b5e6cb6da24a4b1bb3', type: "datetime", name: this.name, value: this.value, required: this.required, disabled: this.disabled, placeholder: this.placeholder, class: "s-datetime-picker-input", ref: (el) => this.dateInput = el }));
214
+ return h("div", { key: '10ac16506ca2b2b2a94227887a8d0b6593d7ac17', class: "s-datetime-picker" }, h("input", { key: 'fad4a5677edf21d9bd9a977392ebaf4ae2ad3b7b', type: "datetime", name: this.name, value: this.value, required: this.required, disabled: this.disabled, placeholder: this.placeholder, class: "s-datetime-picker-input", ref: (el) => this.dateInput = el }));
215
215
  }
216
216
  async componentDidLoad() {
217
217
  // Load flatpickr before initializing
@@ -316,11 +316,11 @@ const SallaFileUpload = /*@__PURE__*/ proxyCustomElement(class SallaFileUpload e
316
316
  }
317
317
  }
318
318
  render() {
319
- return (h(Host, { key: 'af77cb11bf5ae4a857e9a099ce6438fb29aa8736', class: {
319
+ return (h(Host, { key: '518fef1a108d79f9aeb9efdbce74e4e721a145dc', class: {
320
320
  "s-file-upload": true,
321
321
  "s-file-upload-profile-image": this.profileImage,
322
322
  "s-file-upload-multiple": this.allowMultiple,
323
- } }, h("input", { key: 'da600278c346ef3554bfc6f8b22cb07dce1fc1ea', type: "file", name: this.name, value: this.value, 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.maxFilesCount)) : '', h("input", { key: '4c605d3d983a86fca5667641d38592daf30f20b2', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.value, ref: input => this.hiddenInput = input })));
323
+ } }, h("input", { key: '0c01117f1e59577833b106d5825a08dd2ca51bd0', type: "file", name: this.name, value: this.value, 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.maxFilesCount)) : '', h("input", { key: '69276b5e95c8bc35f42c3f1f307abea8c1761621', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.value, ref: input => this.hiddenInput = input })));
324
324
  }
325
325
  async componentDidLoad() {
326
326
  await Salla.onReady();
@@ -197,12 +197,12 @@ const SallaFiltersWidget = /*@__PURE__*/ proxyCustomElement(class SallaFiltersWi
197
197
  return h("span", { class: "s-filters-option-name" }, label);
198
198
  }
199
199
  render() {
200
- return (h(Host, { key: '3ea32331738365fc422b500b3e70fa590d4dbdb5', class: "s-filters-widget-container" }, h("h3", { key: 'c5cb7a27841bf85e4c108e15d606c1c45059e5ca', class: "s-filters-widget-title", onClick: () => this.toggleWidget() }, h("span", { key: '641164d403dd4c9b79a540f4da5829f5238cded4' }, this.option.label), h("span", { key: '5cf687d80ff627f306f5876f69b799b6b7a3813d', class: `s-filters-widget-plusminus ${this.isOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { key: 'd9b753223b4fb1c468ed6c4c3a269b861bc5b34b', class: "s-filters-widget-content", ref: (el) => this.widgetContent = el }, Array.isArray(this.option.values) && this.option.values.length > 5 && (h("div", { key: '0ca4f8c598e5965e23ef56610df7afc31799f168', class: "s-filters-widget-search-wrapper", style: { padding: '8px 0', marginBottom: '8px' } }, h("input", { key: '7b43ec84dcbeb5b7f9cbe9335133e32c278c00fd', 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: '5bf79fc5f51389d087fed93acee51a097a46af65', class: "s-filters-widget-values", ref: (el) => this.widgetValues = el }, h("slot", { key: '8dacd49ba003562d347a6c1b62e85ac447a62fcb' }), this.option.type !== FilterOptionTypes.RANGE
200
+ return (h(Host, { key: '831f7655b903634e0eb3abc7338ea3296883cbbf', class: "s-filters-widget-container" }, h("h3", { key: '72a31fb2c9adab3df37550e930d5be981aafd8f6', class: "s-filters-widget-title", onClick: () => this.toggleWidget() }, h("span", { key: '7512914e8a7348d146384d67f117c8b06507def0' }, this.option.label), h("span", { key: '50d62723255618a2a51512722388ff686c92bdab', class: `s-filters-widget-plusminus ${this.isOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { key: '76792390d33c2051082541e18e9b354b2b63c644', class: "s-filters-widget-content", ref: (el) => this.widgetContent = el }, Array.isArray(this.option.values) && this.option.values.length > 5 && (h("div", { key: 'b39462721ff4572b3572c0ed6171c07fa53b57a9', class: "s-filters-widget-search-wrapper", style: { padding: '8px 0', marginBottom: '8px' } }, h("input", { key: '759b2ab6b80d0fd0bb03fcd3746414d9e4b80c7d', 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: 'db918c4a43bebc35c23810dc97736584504d0e47', class: "s-filters-widget-values", ref: (el) => this.widgetValues = el }, h("slot", { key: '92dc440b79ed0929a39db7a4a96a1981f3b49974' }), this.option.type !== FilterOptionTypes.RANGE
201
201
  ? this.renderFilterOption(this.option)
202
202
  : h("salla-price-range", { onChanged: (event) => {
203
203
  this.changed.emit(event.detail);
204
204
  }, ref: price => this.priceRange = price, filtersData: this.filtersData, option: this.option })), this.withLoadMore && (!this.searchQuery || this.filteredCount > this.initialItemCount) &&
205
- h("a", { key: '85ca188ff9f0db7c0a23b94e4705ae2ca5c38d55', class: "s-filters-widget-more", onClick: () => this.showMore() }, !this.isShowMore ? this.showMoreLabel : this.showLessLabel))));
205
+ h("a", { key: '885668e717441581cd1b92494ebc3927cd70daf1', class: "s-filters-widget-more", onClick: () => this.showMore() }, !this.isShowMore ? this.showMoreLabel : this.showLessLabel))));
206
206
  }
207
207
  get host() { return this; }
208
208
  static get style() { return sallaFiltersWidgetCss; }
@@ -284,7 +284,7 @@ const SallaFilters$1 = /*@__PURE__*/ proxyCustomElement(class SallaFilters exten
284
284
  render() {
285
285
  const appliedFilters = this.getAppliedFilters();
286
286
  const removeText = salla.lang.getWithDefault('common.elements.delete', 'Remove');
287
- return h(Host, { key: 'd6dacbf458eadefda7ec2b2c6845c54f553abea8' }, appliedFilters.length ? h("div", { class: "s-filters-applied s-filters-widget-container" }, h("h3", { class: "s-filters-widget-title", onClick: () => this.appliedOpen = !this.appliedOpen }, h("span", null, this.selectedTitle), h("span", { class: `s-filters-widget-plusminus ${this.appliedOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { class: `s-filters-widget-content ${this.appliedOpen ? 's-filters-widget-opened' : 's-filters-widget-closed'}` }, h("div", { class: "s-filters-widget-values" }, appliedFilters.map(chip => h("div", { class: "s-filters-label s-filters-applied-item" }, h("span", { class: "s-filters-option-name" }, chip.groupLabel, ": ", chip.optionLabel), h("button", { type: "button", class: "s-filters-applied-remove", "aria-label": `${removeText} ${chip.groupLabel}: ${chip.optionLabel}`, onClick: () => this.removeFilter(chip) }, h("i", { class: "sicon-cancel", "aria-hidden": "true" }))))), h("div", { class: "s-filters-footer" }, h("salla-button", { color: 'gray', fill: 'outline', onClick: () => this.resetFilters() }, this.reset)))) : '', this.filters?.map(option => h("salla-filters-widget", { option: option, filtersData: this.filtersData, onChanged: ({ detail: { event, option, value } }) => {
287
+ return h(Host, { key: 'f0493d0e85ebb9e6612a1edc6cd7f45e7473017e' }, appliedFilters.length ? h("div", { class: "s-filters-applied s-filters-widget-container" }, h("h3", { class: "s-filters-widget-title", onClick: () => this.appliedOpen = !this.appliedOpen }, h("span", null, this.selectedTitle), h("span", { class: `s-filters-widget-plusminus ${this.appliedOpen ? 's-filters-widget-plusminus-active' : ''}` })), h("div", { class: `s-filters-widget-content ${this.appliedOpen ? 's-filters-widget-opened' : 's-filters-widget-closed'}` }, h("div", { class: "s-filters-widget-values" }, appliedFilters.map(chip => h("div", { class: "s-filters-label s-filters-applied-item" }, h("span", { class: "s-filters-option-name" }, chip.groupLabel, ": ", chip.optionLabel), h("button", { type: "button", class: "s-filters-applied-remove", "aria-label": `${removeText} ${chip.groupLabel}: ${chip.optionLabel}`, onClick: () => this.removeFilter(chip) }, h("i", { class: "sicon-cancel", "aria-hidden": "true" }))))), h("div", { class: "s-filters-footer" }, h("salla-button", { color: 'gray', fill: 'outline', onClick: () => this.resetFilters() }, this.reset)))) : '', this.filters?.map(option => h("salla-filters-widget", { option: option, filtersData: this.filtersData, onChanged: ({ detail: { event, option, value } }) => {
288
288
  this.handleOptionChange(event, option, value);
289
289
  } })));
290
290
  }
@@ -770,7 +770,7 @@ const SallaGifting$1 = /*@__PURE__*/ proxyCustomElement(class SallaGifting exten
770
770
  }
771
771
  render() {
772
772
  return [
773
- h("div", { key: '416981417bec78c8c3fda43e6f80745f4d735154' }, h("salla-list-tile", { key: '495255205e1c226669a14a94e50442aabd9818da', class: this.generateClass() }, h("div", { key: 'f2dbdc4ea0dc76d806f18563739a116e15cbbe08', slot: "title" }, this.vertical ? h("span", { innerHTML: SIGiftSharing }) : '', h("h3", { key: '9ed4f1d995eaf2341a9ec237ebfb486ed3db988e' }, !!this.widgetTitle ? this.widgetTitle : this.sectionTitle)), h("div", { key: 'b5d5512fcb2513177eaa1e25eacce9092f7d845f', slot: "subtitle" }, h("div", { key: '0a8223b41973b72d942ce91c5f478a3edaa5dfd3' }, !!this.widgetSubtitle ? this.widgetSubtitle : this.sectionSubtitle)), h("div", { key: 'a6d5a077131117c6854ffc2b39e506be7953051e', slot: "action" }, h("salla-button", { key: '99b14364789884b0010e50941c27cbcfe7445785', color: "primary", fill: "outline", width: "wide", class: "s-gifting-widget-action", onClick: () => this.handleGiftButtonClick() }, h("slot", { key: '27f6be7b07084f48da83af6240933d619407307f', name: "widget-btn-content" }, h("div", { key: 'ee5d04e96dd1e3849a33813b3737b476b5470497', class: "s-gifting-widget-action-content" }, h("span", { key: 'd02bb1f6cd4dff335eeca1341da2c86d2976b4fc', innerHTML: SIGiftSharing }), " \u00A0", h("span", { key: '98a3594e6d01133c4f448d8e5df22ba2984cf09e' }, this.sectionBtnText)))))), h("salla-modal", { key: '0be87b9d369e92a71b68f570b9bf19a0ddb7dd6b', id: this.hostId, isLoading: true, class: "s-gifting-modal", width: "sm", ref: modal => this.modal = modal }, h("div", { key: '978995d399506ff82ac0f2385a1f85a808c7da3e', slot: "loading" }, h("div", { key: '7d1f141fd9131d35edb81326062e8f7cadfa2cab', class: "s-gifting-skeleton" }, h("div", { key: 'b33cfd58381c7c1b545ffedf6739e42fdb75c8de', class: "s-gifting-modal-header" }, h("salla-skeleton", { key: 'e03a505ad3720c25077ca91c7eec2843cdaee225', type: 'circle', height: '5rem', width: '5rem' }), h("h2", { key: '6f630d2582c96fc71406ef4557143c6e9dbd4a88', class: "s-gifting-modal-title" }, h("div", { key: '8d1a3540993c9b40e705f2145bf0514754c36dab', class: "s-gifting-modal-badge-wrapper" }, h("salla-skeleton", { key: 'd965c353f19cf785a13eba6332b715eed9748836', height: '15px', width: '150px' })))), h("div", { key: 'abacc03d1e30075d3d24dfd577dc9a60f7b52810', class: "s-gifting-skeleton-content" }, h("salla-skeleton", { key: '03db84cfccc546602a6f521b015d0c12b93caa6f', height: '10px', width: '150px' }), h("salla-skeleton", { key: 'e8e2d4e70d208055baaae44a8d7da8aa5c6a33da', height: '230px' }), h("salla-skeleton", { key: '2c90d91fb63551685b2041f2bc51fdb5219cbbb7', height: '10px', width: '150px' }), h("salla-skeleton", { key: '8962bc17f43cb04563caa02db3df585189579f8f', height: '30px' }), h("salla-skeleton", { key: '73730453aa6f8d0ec2a653b4711b80b32a18b916', height: '40px' })))), h("slot", { key: '4bcf5a6d53485c461c35f53ce7e265bcf770989e', name: "header" }), !!this.hasError ?
773
+ h("div", { key: 'b4d479166a0a7a8b7bf4d66fd39399eef0bbe1d8' }, h("salla-list-tile", { key: 'a526748e500753bc4e132b6d8cc5fe56d276378c', class: this.generateClass() }, h("div", { key: '3756943a7292552172dfe5fe112a987f9dff2128', slot: "title" }, this.vertical ? h("span", { innerHTML: SIGiftSharing }) : '', h("h3", { key: '769df65a33828cdb51270438885bd7554a93b18b' }, !!this.widgetTitle ? this.widgetTitle : this.sectionTitle)), h("div", { key: '69c51851715c12002d0d70f936852bf6b6a064a4', slot: "subtitle" }, h("div", { key: 'ee7979030a5756a4ad74c87cebdb595decc12d48' }, !!this.widgetSubtitle ? this.widgetSubtitle : this.sectionSubtitle)), h("div", { key: '374d33078ca9e9f4d26bc801abcb50d8271887bf', slot: "action" }, h("salla-button", { key: 'f5c53ce21a6e058e484f941d356e1c74bf337b5f', color: "primary", fill: "outline", width: "wide", class: "s-gifting-widget-action", onClick: () => this.handleGiftButtonClick() }, h("slot", { key: '2b57632750b91dc720605c181e19a0329c8db3e9', name: "widget-btn-content" }, h("div", { key: '1d43f1351bc3323118c8eace681f382b753d009b', class: "s-gifting-widget-action-content" }, h("span", { key: 'f62808df38d07bf5db9d54f24a64c103dbcca3c2', innerHTML: SIGiftSharing }), " \u00A0", h("span", { key: 'd22429956200e68c8d588d0daddae201963ba47a' }, this.sectionBtnText)))))), h("salla-modal", { key: '0e1614ad210647ac77bbeb7e19104f5b9ce3b6b3', id: this.hostId, isLoading: true, class: "s-gifting-modal", width: "sm", ref: modal => this.modal = modal }, h("div", { key: '230c00dd750aa31d20e450086b26c11094305e0f', slot: "loading" }, h("div", { key: 'cb48aec5cf71db50ba003cb3607c27e7a629e9be', class: "s-gifting-skeleton" }, h("div", { key: 'e7aa596896cb841628bf35b4b5d8c9d22ed84dae', class: "s-gifting-modal-header" }, h("salla-skeleton", { key: '8e6dff5462dc1644bd89e56d51b3a353341b1741', type: 'circle', height: '5rem', width: '5rem' }), h("h2", { key: '5bdf4f1266938b319a5d4642773cb0e8fa772f88', class: "s-gifting-modal-title" }, h("div", { key: '2e3ea0e2589152059ec71f0e0a0b6537b0d32d8f', class: "s-gifting-modal-badge-wrapper" }, h("salla-skeleton", { key: '7cf08110d0535ec7b719251cf54f3a83d940772f', height: '15px', width: '150px' })))), h("div", { key: '3e341993dd31be4bfbcc272877c8167f50233dd0', class: "s-gifting-skeleton-content" }, h("salla-skeleton", { key: '74b584687ed715146e84a7107fb69f18ea78f31d', height: '10px', width: '150px' }), h("salla-skeleton", { key: '8acfdd240b397ea8e0d6c93c745786c68eb34f25', height: '230px' }), h("salla-skeleton", { key: 'c92cef763f9d2857429919434a56bbc9686d6a3a', height: '10px', width: '150px' }), h("salla-skeleton", { key: '22e6c56dbabf3f90fa608dcd42d11b463ae86a1c', height: '30px' }), h("salla-skeleton", { key: '8093fcbc09362879ac5afb38f1910bdddfd41390', height: '40px' })))), h("slot", { key: '10842023d5a5861fa1562784c77f718c8e257d80', name: "header" }), !!this.hasError ?
774
774
  h("salla-placeholder", { alignment: "center" }, h("span", { slot: "title" }, this.errorMessage || salla.lang.get('common.errors.empty_results')), h("span", { slot: "description" }, " "))
775
775
  :
776
776
  [
@@ -793,7 +793,7 @@ const SallaGifting$1 = /*@__PURE__*/ proxyCustomElement(class SallaGifting exten
793
793
  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'] ?
794
794
  h("span", { class: "s-gifting-error" }, this.errors['receiver.city_id']) : ''), this.isPhysical() && this.cityNoticeText() &&
795
795
  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)))))
796
- ], h("slot", { key: 'a4d37b893e4a0867c044817434ade65b16fbe89a', name: "footer" })))
796
+ ], h("slot", { key: 'ba5b5cc6e2b20d756ed5149757b23239455939f7', name: "footer" })))
797
797
  ];
798
798
  }
799
799
  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: '7438711b185e3159e7a4792ef86f795c25d857a1' });
20
+ return h(Host, { key: '1acc6e7c4e3e9695576a820cbc68c539e81fa36e' });
21
21
  }
22
22
  async componentDidLoad() {
23
23
  // Register this component for hooks system, already on it logic to run componentDidLoad trigger
@@ -25,7 +25,7 @@ const SallaListTile = /*@__PURE__*/ proxyCustomElement(class SallaListTile exten
25
25
  };
26
26
  }
27
27
  render() {
28
- return (h(Host, { key: '2b73681383da172ed01bb199b117d2063228e01e' }, h("a", { key: 'af5913df51093694667751d16b5ec686103791a4', class: this.generateClass(), href: this.href || "#", target: this.target, "aria-label": "List Tile Link" }, h("div", { key: '49fdb468a67f0a015762a1539d2333ad694628ec', class: "s-list-tile-item-icon" }, h("slot", { key: '97417d4c9bf63e498510549d08dbf5df55050526', name: 'icon' })), h("div", { key: '53544687a14f2c992ad17d0194a10fba0ad40631', class: "s-list-tile-item-content" }, h("div", { key: 'a8803d707ccd88df74d425a004e5c180d0106c50', class: "s-list-tile-item-title" }, h("slot", { key: '27b091e8cf03dc9253baf135bdc6a8166eac566c', name: 'title' })), h("div", { key: 'c2ab48314fe243e6cea9dd7e8f0be4104a0b89e3', class: "s-list-tile-item-subtitle" }, h("slot", { key: '31c7e05be4026e990704926f6b29c8b1e570a548', name: "subtitle" }))), h("div", { key: '4fb89eaad3693b3b49e6d4ac72f09dca7c52eeeb', class: "s-list-tile-item-action" }, h("slot", { key: '7e587373e0282a22387028aaa6a801b9909f707a', name: 'action' })))));
28
+ return (h(Host, { key: 'b1b2a6bf65c40643d59f392e91cc76acaea5e89e' }, h("a", { key: '4b2026fd739b243a41bfc37fcb55bc07a1a54636', class: this.generateClass(), href: this.href || "#", target: this.target, "aria-label": "List Tile Link" }, h("div", { key: 'bbc7a7133da0e471ad92a5466e9ec0481d74cdd7', class: "s-list-tile-item-icon" }, h("slot", { key: 'e4e338854bfc7e6843c4b87f419c9aa59970c77b', name: 'icon' })), h("div", { key: '1b7b2e0a65193be521cdf6cccc314c83f853216d', class: "s-list-tile-item-content" }, h("div", { key: '4e6a178d219827b1feef394ea5564769bf11ded2', class: "s-list-tile-item-title" }, h("slot", { key: '75b036812aca3e00162fc8c40459b67d4db2cc6f', name: 'title' })), h("div", { key: 'ab0959a43214ae0eb4cf092ea3738c71ed987709', class: "s-list-tile-item-subtitle" }, h("slot", { key: 'e13f66fb2a0e1c5ab2a9081c808973c9f9ecca45', name: "subtitle" }))), h("div", { key: '78c7542367a41a1f8bc74bca73d2581f5c0b7bfd', class: "s-list-tile-item-action" }, h("slot", { key: '14c8c0f31d29855d743b52f82d52a3bed300b25f', name: 'action' })))));
29
29
  }
30
30
  static get style() { return sallaListTileCss; }
31
31
  }, [4, "salla-list-tile", {
@@ -27,7 +27,7 @@ const SallaLoading = /*@__PURE__*/ proxyCustomElement(class SallaLoading extends
27
27
  this.bgColor = "#e5e7eb";
28
28
  }
29
29
  render() {
30
- return (h(Host, { key: 'a3ab1e66f7b26628e7bfb1f5560127d042203cf3', class: "s-loading-container" }, h("svg", { key: 'e33089cee347160eaea4ded8ab8a5543a91f5ea1', "aria-hidden": "true", style: { width: `${this.size}px`, height: `${this.size}px`, fill: this.color, color: this.bgColor }, class: "s-loading", viewBox: "0 0 100 101", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '8163f98231203552ea3f514ac3b8cd16a8d9426c', d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z", fill: "currentColor" }), h("path", { key: '959ea259b039d16be8b9dc39a2fb2e409bfffe0e', d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z", fill: "currentFill" }))));
30
+ return (h(Host, { key: '0f3796a2a8f9610f40e20eb01e4d60fb56e11a03', class: "s-loading-container" }, h("svg", { key: 'd9d98cfa05e5c7d188237a0a4833c4cd13c2855c', "aria-hidden": "true", style: { width: `${this.size}px`, height: `${this.size}px`, fill: this.color, color: this.bgColor }, class: "s-loading", viewBox: "0 0 100 101", fill: "none", xmlns: "http://www.w3.org/2000/svg" }, h("path", { key: '75ea4d6f86456c86249dab53f3e18d21cc0380ef', d: "M100 50.5908C100 78.2051 77.6142 100.591 50 100.591C22.3858 100.591 0 78.2051 0 50.5908C0 22.9766 22.3858 0.59082 50 0.59082C77.6142 0.59082 100 22.9766 100 50.5908ZM9.08144 50.5908C9.08144 73.1895 27.4013 91.5094 50 91.5094C72.5987 91.5094 90.9186 73.1895 90.9186 50.5908C90.9186 27.9921 72.5987 9.67226 50 9.67226C27.4013 9.67226 9.08144 27.9921 9.08144 50.5908Z", fill: "currentColor" }), h("path", { key: '8bfd0b7ea965749ed9456742f36d2ffa28cff9f3', d: "M93.9676 39.0409C96.393 38.4038 97.8624 35.9116 97.0079 33.5539C95.2932 28.8227 92.871 24.3692 89.8167 20.348C85.8452 15.1192 80.8826 10.7238 75.2124 7.41289C69.5422 4.10194 63.2754 1.94025 56.7698 1.05124C51.7666 0.367541 46.6976 0.446843 41.7345 1.27873C39.2613 1.69328 37.813 4.19778 38.4501 6.62326C39.0873 9.04874 41.5694 10.4717 44.0505 10.1071C47.8511 9.54855 51.7191 9.52689 55.5402 10.0491C60.8642 10.7766 65.9928 12.5457 70.6331 15.2552C75.2735 17.9648 79.3347 21.5619 82.5849 25.841C84.9175 28.9121 86.7997 32.2913 88.1811 35.8758C89.083 38.2158 91.5421 39.6781 93.9676 39.0409Z", fill: "currentFill" }))));
31
31
  }
32
32
  static get style() { return sallaLoadingCss; }
33
33
  }, [0, "salla-loading", {
@@ -246,7 +246,7 @@ const SallaLocalizationModal$1 = /*@__PURE__*/ proxyCustomElement(class SallaLoc
246
246
  this.showTrigger
247
247
  ? 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() }))
248
248
  : '',
249
- h("salla-modal", { key: 'f8c4089089cc05dcc26628ca92dff99a1604d5ee', isLoading: true, class: "s-hidden", ref: modal => this.modal = modal, width: "xs" }, h("div", { key: '61d4450ea6277a3848512c4a91bbe823dd8d2813', slot: 'loading' }, h("div", { key: 'e2416822d2f660bb75284e17cb0d4408b25073b3', class: "s-localization-modal-skeleton" }, h("salla-skeleton", { key: '529ac08f5fdd3442e63d3272e43075d30dc67bb3', width: '25%', height: '15px' }), h("div", { key: '9b87c3ff232922c2bb27f9064afe6e203532e624', 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: 'ff35e7d5ccdb6fafc599bdaefb5390d3cba7a8a6', width: '25%', height: '15px' }), h("div", { key: 'abef2a071f3818fd980023522d118e64466d77e8', 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: '15611b13fb120fc02b79c4d341aa8ecd7a4265fc', height: '40px', width: '100%' }))), !!this.hasError ?
249
+ h("salla-modal", { key: 'ef56534e6aadef517af7e5af725cd3b27afe8827', isLoading: true, class: "s-hidden", ref: modal => this.modal = modal, width: "xs" }, h("div", { key: '47072c8447350fb18a5bd960335f9a907ffcdae5', slot: 'loading' }, h("div", { key: '96cf1ac3b2dc9f67ae831393285f20935d0312fd', class: "s-localization-modal-skeleton" }, h("salla-skeleton", { key: '7c2ca11ecb4d3fd62ad4c74e5187acfa313d7dbf', width: '25%', height: '15px' }), h("div", { key: '96e7d7eadf414867716fd513b1daa3417b1a02c4', 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: '3e02caddbc6de924dc902516f74e93f488556545', width: '25%', height: '15px' }), h("div", { key: 'fd93fce5cd7ce64dfd356ea9f105f53368d7faf6', 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: '0a8a92e3a2d99c2188767f5065e4efdae26d21c1', height: '40px', width: '100%' }))), !!this.hasError ?
250
250
  h("salla-placeholder", { alignment: "center" }, h("span", { slot: "description" }, this.errorMessage)) :
251
251
  h("div", { class: "s-localization-modal-inner" }, this.languages.length > 1 ?
252
252
  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 ?
@@ -34,9 +34,9 @@ const SallaLoyaltyExchangeProductCard = /*@__PURE__*/ proxyCustomElement(class S
34
34
  }
35
35
  render() {
36
36
  const product = typeof this.product === 'string' ? JSON.parse(this.product) : this.product;
37
- return (h("div", { key: 'a60d337ebcf226318d449a4319906a71a9ab1e92', class: "s-loyalty-exchange-card" }, this.hasCustomCard
37
+ return (h("div", { key: '1a430e79a1b3099353f4e9905930f083ff889def', class: "s-loyalty-exchange-card" }, this.hasCustomCard
38
38
  ? h("custom-salla-product-card", { product: product, hideAddBtn: true })
39
- : h("salla-product-card", { "hide-add-btn": true, product: product }), h("div", { key: '77a0cff2bf5fce5c017493a0769e266eeeaaa01c', class: "s-loyalty-exchange-card-btn" }, h("salla-button", { key: '941c82bb35bfd116a13292ddf5425645c3d61ad7', fill: "outline", width: "wide", onClick: () => this.loyaltyProductExchange.emit({ productId: product.id }) }, salla.lang.get('pages.loyalty_program.redeem_reward')))));
39
+ : h("salla-product-card", { "hide-add-btn": true, product: product }), h("div", { key: '8b75d06c112af988c149b374fdd3592cd27cb490', class: "s-loyalty-exchange-card-btn" }, h("salla-button", { key: 'b04dc80d5af75461a5d1f938c45bf156e4592e1e', fill: "outline", width: "wide", onClick: () => this.loyaltyProductExchange.emit({ productId: product.id }) }, salla.lang.get('pages.loyalty_program.redeem_reward')))));
40
40
  }
41
41
  static get style() { return sallaLoyaltyProgramCss; }
42
42
  }, [0, "salla-loyalty-exchange-product-card", {