@salla.sa/twilight-components 2.14.591 → 2.14.593

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 (384) hide show
  1. package/dist/cjs/{apple-pay-order-options-B036Wu4O.js → apple-pay-order-options-CA8IYRTb.js} +1 -0
  2. package/dist/cjs/{filepond-DkObEO32.js → filepond-Dh9Ih7bu.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-poster-wXgeY5cU.js → filepond-plugin-file-poster-C6Sx5vF0.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-size-CWleid1C.js → filepond-plugin-file-validate-size-DdzdetN6.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-file-validate-type-CJLl2hbe.js → filepond-plugin-file-validate-type-DRWFKOpQ.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-edit-Bp6AxXM9.js → filepond-plugin-image-edit-B4vaf2kZ.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-exif-orientation-abWKSX9-.js → filepond-plugin-image-exif-orientation-BXfm40Ut.js} +1 -1
  8. package/dist/cjs/{filepond-plugin-image-preview-DxprNycS.js → filepond-plugin-image-preview-DQLCCOAs.js} +1 -1
  9. package/dist/cjs/{helpers-DBynEhOO.js → helpers-DSseNQ1K.js} +1 -1
  10. package/dist/cjs/{index-DBN0LueR.js → index-CLrjVXN1.js} +3 -3
  11. package/dist/cjs/{intlTelInput-B6H18Td2.js → intlTelInput-o62W18dw.js} +1 -1
  12. package/dist/cjs/loader.cjs.js +2 -2
  13. package/dist/cjs/salla-accordion-body_2.cjs.entry.js +1 -1
  14. package/dist/cjs/salla-accordion_6.cjs.entry.js +1 -1
  15. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +152 -7
  16. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  17. package/dist/cjs/salla-alert_2.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-applied-filters.cjs.entry.js +1 -1
  20. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  21. package/dist/cjs/salla-attachment-view_9.cjs.entry.js +11 -11
  22. package/dist/cjs/salla-badge.cjs.entry.js +1 -1
  23. package/dist/cjs/salla-basket-gap.cjs.entry.js +1 -1
  24. package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +45 -34
  25. package/dist/cjs/salla-cart-coupons.cjs.entry.js +1 -1
  26. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  30. package/dist/cjs/salla-comment-form_9.cjs.entry.js +3 -3
  31. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-count-down.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-delivery-promise.cjs.entry.js +2 -2
  37. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
  39. package/dist/cjs/salla-filters.cjs.entry.js +1 -1
  40. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-gift-card-redeem_2.cjs.entry.js +2 -2
  42. package/dist/cjs/salla-gifting.cjs.entry.js +2 -2
  43. package/dist/cjs/salla-hook.cjs.entry.js +1 -1
  44. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
  45. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  46. package/dist/cjs/salla-list-tile.cjs.entry.js +1 -1
  47. package/dist/cjs/salla-localization-modal.cjs.entry.js +1 -1
  48. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  49. package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +1 -1
  50. package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +1 -1
  51. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  52. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +1 -1
  53. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  54. package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
  55. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-map_3.cjs.entry.js +1 -1
  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 +1 -1
  60. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +1 -1
  62. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  63. package/dist/cjs/salla-notification-item_2.cjs.entry.js +1 -1
  64. package/dist/cjs/salla-offer-modal.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  66. package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
  67. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  69. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
  71. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  72. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  74. package/dist/cjs/salla-order-options-modal.cjs.entry.js +1 -1
  75. package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
  76. package/dist/cjs/salla-order-summary.cjs.entry.js +1 -1
  77. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  78. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  79. package/dist/cjs/salla-payments.cjs.entry.js +1 -1
  80. package/dist/cjs/salla-placeholder.cjs.entry.js +1 -1
  81. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  82. package/dist/cjs/salla-product-card-embed.cjs.entry.js +1 -1
  83. package/dist/cjs/salla-product-card.cjs.entry.js +1 -1
  84. package/dist/cjs/salla-product-size-guide.cjs.entry.js +1 -1
  85. package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
  86. package/dist/cjs/salla-products-slider.cjs.entry.js +1 -1
  87. package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
  88. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
  89. package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
  90. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +2 -2
  91. package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
  92. package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
  93. package/dist/cjs/salla-search-product-card.cjs.entry.js +3 -3
  94. package/dist/cjs/salla-search.cjs.entry.js +2 -2
  95. package/dist/cjs/salla-skeleton.cjs.entry.js +2 -2
  96. package/dist/cjs/salla-social-share.cjs.entry.js +2 -2
  97. package/dist/cjs/salla-social.cjs.entry.js +2 -2
  98. package/dist/cjs/salla-tab-content_3.cjs.entry.js +4 -4
  99. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  100. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  101. package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
  102. package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
  103. package/dist/cjs/salla-user-settings.cjs.entry.js +2 -2
  104. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  105. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  106. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +2 -2
  107. package/dist/cjs/salla-wishlist-summary.cjs.entry.js +1 -1
  108. package/dist/cjs/twilight.cjs.js +2 -2
  109. package/dist/cjs/{vanilla-picker-Cm71HMBs.js → vanilla-picker-FCNrUTtN.js} +1 -1
  110. package/dist/collection/components/salla-add-product-button/salla-add-product-button.css +58 -36
  111. package/dist/collection/components/salla-add-product-button/salla-add-product-button.js +120 -2
  112. package/dist/collection/components/salla-bullet-delivery/helpers.js +1 -1
  113. package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.js +39 -28
  114. package/dist/collection/components/salla-order-options-modal/apple-pay-order-options.js +1 -1
  115. package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +17 -4
  116. package/dist/collection/components/salla-review-card/salla-review-card.js +1 -1
  117. package/dist/collection/components/salla-review-factors-tags/salla-review-factors-tags.js +1 -1
  118. package/dist/collection/components/salla-reviews-page/salla-reviews-page.js +1 -1
  119. package/dist/collection/components/salla-search/salla-search.js +1 -1
  120. package/dist/collection/components/salla-search-product-card/salla-search-product-card.js +2 -2
  121. package/dist/collection/components/salla-searchable-dropdown/salla-searchable-dropdown.js +4 -4
  122. package/dist/collection/components/salla-skeleton/salla-skeleton.js +1 -1
  123. package/dist/collection/components/salla-social/salla-social.js +1 -1
  124. package/dist/collection/components/salla-social-share/salla-social-share.js +1 -1
  125. package/dist/collection/components/salla-tabs/salla-tab-content.js +1 -1
  126. package/dist/collection/components/salla-tabs/salla-tab-header.js +1 -1
  127. package/dist/collection/components/salla-tabs/salla-tabs.js +1 -1
  128. package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
  129. package/dist/collection/components/salla-tooltip/salla-tooltip.js +1 -1
  130. package/dist/collection/components/salla-user-settings/salla-user-settings.js +1 -1
  131. package/dist/collection/components/salla-wishlist-actions/salla-wishlist-actions.js +1 -1
  132. package/dist/components/apple-pay-order-options.js +1 -1
  133. package/dist/components/helpers.js +2 -2
  134. package/dist/components/index.js +3 -3
  135. package/dist/components/salla-add-product-button2.js +120 -3
  136. package/dist/components/salla-bullet-delivery.js +40 -29
  137. package/dist/components/salla-delivery-promise.js +1 -1
  138. package/dist/components/salla-gifting.js +1 -1
  139. package/dist/components/salla-quick-buy2.js +35 -5
  140. package/dist/components/salla-review-card2.js +1 -1
  141. package/dist/components/salla-review-factors-tags2.js +1 -1
  142. package/dist/components/salla-reviews-page.js +1 -1
  143. package/dist/components/salla-search-product-card2.js +2 -2
  144. package/dist/components/salla-search.js +1 -1
  145. package/dist/components/salla-searchable-dropdown2.js +4 -4
  146. package/dist/components/salla-skeleton2.js +1 -1
  147. package/dist/components/salla-social-share2.js +1 -1
  148. package/dist/components/salla-social.js +1 -1
  149. package/dist/components/salla-tab-content2.js +1 -1
  150. package/dist/components/salla-tab-header2.js +1 -1
  151. package/dist/components/salla-tabs2.js +1 -1
  152. package/dist/components/salla-tel-input2.js +1 -1
  153. package/dist/components/salla-tooltip2.js +1 -1
  154. package/dist/components/salla-user-settings.js +1 -1
  155. package/dist/components/salla-wishlist-actions.js +1 -1
  156. package/dist/docs.json +29 -13
  157. package/dist/esm/{apple-pay-order-options-s0kn7yr8.js → apple-pay-order-options-BS2iQKah.js} +1 -1
  158. package/dist/esm/{filepond-Cstf5r6K.js → filepond-DTcw03Zq.js} +1 -1
  159. package/dist/esm/{filepond-plugin-file-poster-GibBgGHW.js → filepond-plugin-file-poster-Csk5cMw9.js} +1 -1
  160. package/dist/esm/{filepond-plugin-file-validate-size-CLc6zco6.js → filepond-plugin-file-validate-size-FFrf5LrW.js} +1 -1
  161. package/dist/esm/{filepond-plugin-file-validate-type-Ca3dc8p0.js → filepond-plugin-file-validate-type-DeZP4xXd.js} +1 -1
  162. package/dist/esm/{filepond-plugin-image-edit-CNGBLi7d.js → filepond-plugin-image-edit-DRKyd_1I.js} +1 -1
  163. package/dist/esm/{filepond-plugin-image-exif-orientation-Dmmu9-UQ.js → filepond-plugin-image-exif-orientation-CxVz7OAy.js} +1 -1
  164. package/dist/esm/{filepond-plugin-image-preview-KX15tx60.js → filepond-plugin-image-preview-CsKN7em3.js} +1 -1
  165. package/dist/esm/{helpers-BJxBnTgv.js → helpers-DgRxTSyJ.js} +2 -2
  166. package/dist/esm/{index-UnmOIma5.js → index-0Tl_yZW8.js} +3 -3
  167. package/dist/esm/{intlTelInput-C-F-rxZ3.js → intlTelInput-CBN9egFg.js} +1 -1
  168. package/dist/esm/loader.js +3 -3
  169. package/dist/esm/salla-accordion-body_2.entry.js +1 -1
  170. package/dist/esm/salla-accordion_6.entry.js +1 -1
  171. package/dist/esm/salla-add-product-button_5.entry.js +152 -7
  172. package/dist/esm/salla-advertisement.entry.js +1 -1
  173. package/dist/esm/salla-alert_2.entry.js +1 -1
  174. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  175. package/dist/esm/salla-applied-filters.entry.js +1 -1
  176. package/dist/esm/salla-apps-icons.entry.js +1 -1
  177. package/dist/esm/salla-attachment-view_9.entry.js +11 -11
  178. package/dist/esm/salla-badge.entry.js +1 -1
  179. package/dist/esm/salla-basket-gap.entry.js +1 -1
  180. package/dist/esm/salla-bullet-delivery_3.entry.js +45 -34
  181. package/dist/esm/salla-cart-coupons.entry.js +1 -1
  182. package/dist/esm/salla-cart-item-offers_2.entry.js +1 -1
  183. package/dist/esm/salla-cart-summary-card.entry.js +1 -1
  184. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  185. package/dist/esm/salla-comment-factors.entry.js +1 -1
  186. package/dist/esm/salla-comment-form_9.entry.js +3 -3
  187. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  188. package/dist/esm/salla-contacts.entry.js +1 -1
  189. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  190. package/dist/esm/salla-count-down.entry.js +1 -1
  191. package/dist/esm/salla-custom-fields.entry.js +1 -1
  192. package/dist/esm/salla-delivery-promise.entry.js +2 -2
  193. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  194. package/dist/esm/salla-filters-widget.entry.js +1 -1
  195. package/dist/esm/salla-filters.entry.js +1 -1
  196. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  197. package/dist/esm/salla-gift-card-redeem_2.entry.js +2 -2
  198. package/dist/esm/salla-gifting.entry.js +2 -2
  199. package/dist/esm/salla-hook.entry.js +1 -1
  200. package/dist/esm/salla-infinite-scroll.entry.js +1 -1
  201. package/dist/esm/salla-installment.entry.js +1 -1
  202. package/dist/esm/salla-list-tile.entry.js +1 -1
  203. package/dist/esm/salla-localization-modal.entry.js +1 -1
  204. package/dist/esm/salla-login-modal.entry.js +1 -1
  205. package/dist/esm/salla-loyalty-banner_10.entry.js +1 -1
  206. package/dist/esm/salla-loyalty-exchange-product-card.entry.js +1 -1
  207. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  208. package/dist/esm/salla-loyalty-points-history.entry.js +1 -1
  209. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  210. package/dist/esm/salla-loyalty.entry.js +1 -1
  211. package/dist/esm/salla-maintenance-alert.entry.js +1 -1
  212. package/dist/esm/salla-map_3.entry.js +1 -1
  213. package/dist/esm/salla-menu.entry.js +1 -1
  214. package/dist/esm/salla-metadata.entry.js +1 -1
  215. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +1 -1
  216. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +1 -1
  217. package/dist/esm/salla-multiple-bundle-product.entry.js +1 -1
  218. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  219. package/dist/esm/salla-notification-item_2.entry.js +1 -1
  220. package/dist/esm/salla-offer-modal.entry.js +1 -1
  221. package/dist/esm/salla-offer.entry.js +1 -1
  222. package/dist/esm/salla-order-branch.entry.js +1 -1
  223. package/dist/esm/salla-order-cancel.entry.js +1 -1
  224. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  225. package/dist/esm/salla-order-details-options.entry.js +1 -1
  226. package/dist/esm/salla-order-details.entry.js +1 -1
  227. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  228. package/dist/esm/salla-order-edit-product-card.entry.js +1 -1
  229. package/dist/esm/salla-order-edit.entry.js +1 -1
  230. package/dist/esm/salla-order-options-modal.entry.js +1 -1
  231. package/dist/esm/salla-order-shipments.entry.js +1 -1
  232. package/dist/esm/salla-order-summary.entry.js +1 -1
  233. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  234. package/dist/esm/salla-orders.entry.js +1 -1
  235. package/dist/esm/salla-payments.entry.js +1 -1
  236. package/dist/esm/salla-placeholder.entry.js +1 -1
  237. package/dist/esm/salla-price-range.entry.js +1 -1
  238. package/dist/esm/salla-product-card-embed.entry.js +1 -1
  239. package/dist/esm/salla-product-card.entry.js +1 -1
  240. package/dist/esm/salla-product-size-guide.entry.js +1 -1
  241. package/dist/esm/salla-products-list.entry.js +1 -1
  242. package/dist/esm/salla-products-slider.entry.js +1 -1
  243. package/dist/esm/salla-quick-order.entry.js +1 -1
  244. package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
  245. package/dist/esm/salla-rating-modal.entry.js +1 -1
  246. package/dist/esm/salla-review-factors-tags.entry.js +2 -2
  247. package/dist/esm/salla-review-order-item.entry.js +1 -1
  248. package/dist/esm/salla-scopes.entry.js +1 -1
  249. package/dist/esm/salla-search-product-card.entry.js +3 -3
  250. package/dist/esm/salla-search.entry.js +2 -2
  251. package/dist/esm/salla-skeleton.entry.js +2 -2
  252. package/dist/esm/salla-social-share.entry.js +2 -2
  253. package/dist/esm/salla-social.entry.js +2 -2
  254. package/dist/esm/salla-tab-content_3.entry.js +4 -4
  255. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  256. package/dist/esm/salla-trust-badges.entry.js +1 -1
  257. package/dist/esm/salla-user-menu.entry.js +1 -1
  258. package/dist/esm/salla-user-profile.entry.js +1 -1
  259. package/dist/esm/salla-user-settings.entry.js +2 -2
  260. package/dist/esm/salla-verify.entry.js +1 -1
  261. package/dist/esm/salla-wallet.entry.js +1 -1
  262. package/dist/esm/salla-wishlist-actions.entry.js +2 -2
  263. package/dist/esm/salla-wishlist-summary.entry.js +1 -1
  264. package/dist/esm/twilight.js +3 -3
  265. package/dist/esm/{vanilla-picker-DMAcm04D.js → vanilla-picker-CiLp9ysz.js} +1 -1
  266. package/dist/twilight/{p-e6de2f79.entry.js → p-01b4b05f.entry.js} +1 -1
  267. package/dist/twilight/{p-c1eab306.entry.js → p-0433773a.entry.js} +1 -1
  268. package/dist/twilight/p-0Tl_yZW8.js +5 -0
  269. package/dist/twilight/{p-5c313f74.entry.js → p-0c26bedf.entry.js} +1 -1
  270. package/dist/twilight/{p-f92f10c7.entry.js → p-0cc42e36.entry.js} +1 -1
  271. package/dist/twilight/{p-4b175320.entry.js → p-0fe961e0.entry.js} +1 -1
  272. package/dist/twilight/{p-fa3c4bcf.entry.js → p-14c9ed90.entry.js} +1 -1
  273. package/dist/twilight/{p-2f1c8e60.entry.js → p-179595d9.entry.js} +1 -1
  274. package/dist/twilight/{p-e3c46eea.entry.js → p-17f2114f.entry.js} +1 -1
  275. package/dist/twilight/{p-9d0658a0.entry.js → p-183e02ac.entry.js} +1 -1
  276. package/dist/twilight/{p-a5c693c1.entry.js → p-1892ea42.entry.js} +1 -1
  277. package/dist/twilight/{p-6dcfc119.entry.js → p-1abcc81d.entry.js} +1 -1
  278. package/dist/twilight/p-1bf7cce7.entry.js +4 -0
  279. package/dist/twilight/{p-9b01e5c2.entry.js → p-220338b4.entry.js} +1 -1
  280. package/dist/twilight/{p-9c284764.entry.js → p-253a352c.entry.js} +1 -1
  281. package/dist/twilight/{p-46ef2b4e.entry.js → p-26adf02d.entry.js} +1 -1
  282. package/dist/twilight/{p-78d1e145.entry.js → p-288627a2.entry.js} +1 -1
  283. package/dist/twilight/{p-8e938bfa.entry.js → p-299e7413.entry.js} +1 -1
  284. package/dist/twilight/{p-49f2ad4a.entry.js → p-2ac1eac9.entry.js} +1 -1
  285. package/dist/twilight/{p-426ac7ab.entry.js → p-2cbed601.entry.js} +1 -1
  286. package/dist/twilight/{p-ff65be76.entry.js → p-2d2db627.entry.js} +1 -1
  287. package/dist/twilight/{p-71372771.entry.js → p-2da1eb61.entry.js} +1 -1
  288. package/dist/twilight/{p-3d535509.entry.js → p-31253c2d.entry.js} +1 -1
  289. package/dist/twilight/{p-caec4a90.entry.js → p-35d5e339.entry.js} +1 -1
  290. package/dist/twilight/{p-170a29db.entry.js → p-3b5fe2ef.entry.js} +1 -1
  291. package/dist/twilight/{p-bb4a95d9.entry.js → p-3d533d87.entry.js} +1 -1
  292. package/dist/twilight/{p-18b786f4.entry.js → p-40be8baa.entry.js} +1 -1
  293. package/dist/twilight/{p-acd9c538.entry.js → p-42426756.entry.js} +1 -1
  294. package/dist/twilight/{p-1a7bee69.entry.js → p-4432411c.entry.js} +1 -1
  295. package/dist/twilight/{p-4b135194.entry.js → p-449eae1d.entry.js} +1 -1
  296. package/dist/twilight/{p-1aaed68f.entry.js → p-44afcd79.entry.js} +1 -1
  297. package/dist/twilight/{p-2e971549.entry.js → p-4701a008.entry.js} +1 -1
  298. package/dist/twilight/{p-0bee12ba.entry.js → p-4d852a57.entry.js} +1 -1
  299. package/dist/twilight/{p-a1d251d4.entry.js → p-4d879cd3.entry.js} +1 -1
  300. package/dist/twilight/{p-c1eaf8c3.entry.js → p-52e7b4f6.entry.js} +1 -1
  301. package/dist/twilight/{p-3d7fdd11.entry.js → p-5cc28510.entry.js} +1 -1
  302. package/dist/twilight/{p-42d6eb6b.entry.js → p-636ffc46.entry.js} +1 -1
  303. package/dist/twilight/{p-9d680306.entry.js → p-6561d5d3.entry.js} +1 -1
  304. package/dist/twilight/{p-d11b211f.entry.js → p-65665ee3.entry.js} +1 -1
  305. package/dist/twilight/{p-06268aeb.entry.js → p-6db61be2.entry.js} +1 -1
  306. package/dist/twilight/{p-a0e1d5f7.entry.js → p-75fc9b99.entry.js} +1 -1
  307. package/dist/twilight/{p-f5605df6.entry.js → p-775f9b02.entry.js} +1 -1
  308. package/dist/twilight/{p-36ac5a06.entry.js → p-7bee2390.entry.js} +1 -1
  309. package/dist/twilight/{p-7f23b98d.entry.js → p-7c038d9d.entry.js} +1 -1
  310. package/dist/twilight/{p-51d7a9f2.entry.js → p-7c06ad6a.entry.js} +1 -1
  311. package/dist/twilight/{p-e34ff202.entry.js → p-7f59893d.entry.js} +1 -1
  312. package/dist/twilight/{p-40a7f8c6.entry.js → p-80f27669.entry.js} +1 -1
  313. package/dist/twilight/{p-ce0c6667.entry.js → p-821e9049.entry.js} +1 -1
  314. package/dist/twilight/{p-a32fb61e.entry.js → p-85ab4182.entry.js} +1 -1
  315. package/dist/twilight/{p-398e864d.entry.js → p-8d369871.entry.js} +1 -1
  316. package/dist/twilight/{p-fb8395de.entry.js → p-8e013db1.entry.js} +1 -1
  317. package/dist/twilight/{p-e3066c95.entry.js → p-918fa44a.entry.js} +1 -1
  318. package/dist/twilight/{p-8ec3b9f0.entry.js → p-933807d7.entry.js} +1 -1
  319. package/dist/twilight/{p-da14ac3f.entry.js → p-9434c23f.entry.js} +1 -1
  320. package/dist/twilight/{p-2d983198.entry.js → p-95b89c32.entry.js} +1 -1
  321. package/dist/twilight/{p-2059ac26.entry.js → p-99e615a1.entry.js} +1 -1
  322. package/dist/twilight/{p-833fb416.entry.js → p-9a818822.entry.js} +1 -1
  323. package/dist/twilight/{p-CtQLzZ1X.js → p-BABHygiN.js} +1 -1
  324. package/dist/twilight/{p-D_C0F9n5.js → p-BDO2BBmv.js} +1 -1
  325. package/dist/twilight/p-BS2iQKah.js +4 -0
  326. package/dist/twilight/{p-C3HaKgMG.js → p-BZHrTB2v.js} +1 -1
  327. package/dist/twilight/{p-BOWrmsKT.js → p-CZkK9lyS.js} +1 -1
  328. package/dist/twilight/{p-xX3a9YdQ.js → p-Cbnu3aaI.js} +1 -1
  329. package/dist/twilight/{p-CjeoBv5q.js → p-CxpHph5p.js} +1 -1
  330. package/dist/twilight/{p-BJxBnTgv.js → p-DgRxTSyJ.js} +1 -1
  331. package/dist/twilight/{p-Dq91sWJh.js → p-MugjBhYh.js} +1 -1
  332. package/dist/twilight/p-YTWgVZ0u.js +9 -0
  333. package/dist/twilight/{p-f08ff103.entry.js → p-a263bdbb.entry.js} +1 -1
  334. package/dist/twilight/{p-a192abb7.entry.js → p-a735c70e.entry.js} +1 -1
  335. package/dist/twilight/{p-52b99743.entry.js → p-a764bfe7.entry.js} +1 -1
  336. package/dist/twilight/{p-ca47204f.entry.js → p-ad9dcb47.entry.js} +1 -1
  337. package/dist/twilight/{p-6b277129.entry.js → p-ae22bfeb.entry.js} +1 -1
  338. package/dist/twilight/{p-635cf0ae.entry.js → p-aec2d723.entry.js} +1 -1
  339. package/dist/twilight/{p-f69a3e84.entry.js → p-aee17b8b.entry.js} +1 -1
  340. package/dist/twilight/{p-ce7450a9.entry.js → p-af12fce1.entry.js} +1 -1
  341. package/dist/twilight/{p-13215fa2.entry.js → p-b01764d0.entry.js} +1 -1
  342. package/dist/twilight/{p-b7399739.entry.js → p-b0d66765.entry.js} +1 -1
  343. package/dist/twilight/{p-62842639.entry.js → p-b566bc10.entry.js} +1 -1
  344. package/dist/twilight/p-b81474c4.entry.js +4 -0
  345. package/dist/twilight/{p-e0ce5d4c.entry.js → p-b9d2ae8a.entry.js} +1 -1
  346. package/dist/twilight/{p-6a68c551.entry.js → p-bc3ad6d2.entry.js} +1 -1
  347. package/dist/twilight/{p-35163279.entry.js → p-bf3fdf6d.entry.js} +1 -1
  348. package/dist/twilight/{p-47e519e4.entry.js → p-c394f30a.entry.js} +1 -1
  349. package/dist/twilight/{p-d62c6529.entry.js → p-cc7c4469.entry.js} +1 -1
  350. package/dist/twilight/{p-81294230.entry.js → p-ce9b6ac6.entry.js} +1 -1
  351. package/dist/twilight/{p-21358994.entry.js → p-d05e1bfd.entry.js} +1 -1
  352. package/dist/twilight/{p-b70cdf88.entry.js → p-d744234e.entry.js} +1 -1
  353. package/dist/twilight/{p-f7b65338.entry.js → p-d851751c.entry.js} +1 -1
  354. package/dist/twilight/{p-540992c1.entry.js → p-dc129d7a.entry.js} +1 -1
  355. package/dist/twilight/{p-adfc54e4.entry.js → p-ddc61bff.entry.js} +1 -1
  356. package/dist/twilight/{p-efb67446.entry.js → p-deb1139c.entry.js} +1 -1
  357. package/dist/twilight/{p-a1d0c650.entry.js → p-e429b1e5.entry.js} +1 -1
  358. package/dist/twilight/{p-2e204cbc.entry.js → p-e8cb4cd9.entry.js} +1 -1
  359. package/dist/twilight/{p-2308e70c.entry.js → p-e8fa4bd0.entry.js} +1 -1
  360. package/dist/twilight/{p-27366663.entry.js → p-e9372ca0.entry.js} +1 -1
  361. package/dist/twilight/{p-7f93ea69.entry.js → p-e955b287.entry.js} +1 -1
  362. package/dist/twilight/{p-ea07afaa.entry.js → p-eb590773.entry.js} +1 -1
  363. package/dist/twilight/{p-1762cfe3.entry.js → p-f176c43e.entry.js} +1 -1
  364. package/dist/twilight/p-f445e7a3.entry.js +4 -0
  365. package/dist/twilight/{p-6e7a12dd.entry.js → p-f4cff5cf.entry.js} +1 -1
  366. package/dist/twilight/{p-700cf9fc.entry.js → p-f828fefc.entry.js} +1 -1
  367. package/dist/twilight/{p-48f9cd45.entry.js → p-f92d1971.entry.js} +1 -1
  368. package/dist/twilight/{p-DVatlmKV.js → p-fP9RBas5.js} +1 -1
  369. package/dist/twilight/{p-e1d59b7e.entry.js → p-fb527b4d.entry.js} +1 -1
  370. package/dist/twilight/{p-efb9f953.entry.js → p-fe27963f.entry.js} +1 -1
  371. package/dist/twilight/{p-328e352d.entry.js → p-fea37c8c.entry.js} +1 -1
  372. package/dist/twilight/{p-1dc68727.entry.js → p-fef5c118.entry.js} +1 -1
  373. package/dist/twilight/twilight.esm.js +1 -1
  374. package/dist/types/components/salla-add-product-button/salla-add-product-button.d.ts +16 -0
  375. package/dist/types/components/salla-bullet-delivery/salla-bullet-delivery.d.ts +12 -0
  376. package/dist/types/components/salla-order-options-modal/apple-pay-order-options.d.ts +2 -0
  377. package/dist/types/components/salla-search/search-response.d.ts +1 -0
  378. package/package.json +5 -5
  379. package/dist/twilight/p-3845541d.entry.js +0 -4
  380. package/dist/twilight/p-38956156.entry.js +0 -4
  381. package/dist/twilight/p-UnmOIma5.js +0 -5
  382. package/dist/twilight/p-b5d6ddd7.entry.js +0 -4
  383. package/dist/twilight/p-iC3SM6Ji.js +0 -9
  384. package/dist/twilight/p-s0kn7yr8.js +0 -4
@@ -4,7 +4,8 @@
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
5
  import { P as PendingOrdersIcon } from './cart.js';
6
6
  import { H as Helper } from './Helper.js';
7
- import { i as injectFreeProductsIntoPayload, d as defineCustomElement$3, c as canCompleteApplePay } from './salla-quick-buy2.js';
7
+ import { i as injectFreeProductsIntoPayload, d as defineCustomElement$3, c as canCompleteApplePay, a as isApplePayHostedRedirect } from './salla-quick-buy2.js';
8
+ import { e as ensureOrderOptionsModal, a as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
8
9
  import { d as defineCustomElement$h } from './salla-attachment-view2.js';
9
10
  import { d as defineCustomElement$g } from './salla-booking-field2.js';
10
11
  import { d as defineCustomElement$f } from './salla-button2.js';
@@ -257,7 +258,7 @@ class FastCheckoutGate {
257
258
  }
258
259
  }
259
260
 
260
- const sallaAddProductButtonCss = "/*!twlt*/:host{display:block}salla-add-product-button[width=wide]{width:100%}.sticky{position:sticky}.hidden{display:none}.w-full{width:100%}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-hidden{display:none}.btn{display:inline-flex;flex:1 1 0%;align-items:center;justify-content:center;white-space:nowrap;border-radius:0.375rem;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:0.625rem;padding-top:0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.btn:hover{opacity:0.8}.s-hidden{display:none}.s-add-product-button-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.s-add-product-button-with-quick-buy{display:flex}@media (min-width: 640px){.s-add-product-button-with-quick-buy{flex-direction:column}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar){flex-direction:column !important}.s-add-product-button-main{display:flex;width:66.666667%;column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-main{width:100%;column-gap:0.625rem}}.s-add-product-button-with-sticky-bar salla-quick-buy{width:33.333333%}@media (min-width: 640px){.s-add-product-button-with-sticky-bar salla-quick-buy{width:100%}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar) .s-add-product-button-main{width:100%}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-apple-pay) .s-add-product-button-main{width:100%}.s-add-product-button-main:not(.w-full)>salla-button{width:50% !important}.s-add-product-button-main .s-add-product-button-mini-checkout{--salla-fast-checkout-button-border-radius:.75rem;width:50%}.s-add-product-button-with-sticky-bar{width:100% !important}@media (min-width: 640px){.s-add-product-button-with-sticky-bar{width:auto}}.s-add-product-button-with-apple-pay{column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-with-apple-pay{column-gap:unset}}.s-add-product-button-with-apple-pay:not(.s-add-product-button-with-sticky-bar) salla-quick-buy apple-pay-button{margin-top:0.625rem}.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:none}@media (min-width: 768px){.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:block}}.s-add-product-button-mini-checkout-content{display:flex;flex-shrink:0;align-items:center;white-space:nowrap;font-size:.8rem}@media (min-width: 640px){.s-add-product-button-mini-checkout-content{font-size:0.875rem;line-height:1.25rem}}.s-add-product-button-mini-checkout-content:where([dir=\"rtl\"],[dir=\"rtl\"] *){flex-direction:row-reverse}.s-add-product-button-mini-checkout-content svg{margin-right:0.375rem;height:1rem;width:1rem;fill:currentColor}.s-add-product-button-mini-checkout-content svg:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-right:0px;margin-left:0.375rem}.s-add-product-button-busy{pointer-events:none;position:relative}.s-add-product-button-busy::after{position:absolute;top:50%;left:50%;z-index:10;height:1rem;width:1rem;--tw-translate-x:-50%;content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-add-product-button-busy::after{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;border-style:solid;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-bottom-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-border-opacity:1;border-right-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-content:'';content:var(--tw-content)}";
261
+ const sallaAddProductButtonCss = "/*!twlt*/:host{display:block}salla-add-product-button[width=wide]{width:100%}.s-add-product-button-buy-now{display:block;font-family:'PingARLT';font-weight:normal}.s-add-product-button-buy-now .s-fast-checkout-button{display:flex;align-items:center;justify-content:center;height:var(--salla-fast-checkout-button-height, 2.5rem);width:var(--salla-fast-checkout-button-width, 100%);border-radius:var(--salla-fast-checkout-button-border-radius, 0.375rem);font-size:0.875rem;font-weight:bold;text-transform:uppercase;cursor:pointer;transition:all 0.3s ease-in-out;border:none;font-family:'PingARLT';gap:5px;direction:ltr;border-width:1px;border-color:var(--color-primary);background-color:var(--color-primary);color:var(--color-primary-reverse);padding:1px 6px;line-height:normal;letter-spacing:normal;outline:none}.s-add-product-button-buy-now .s-fast-checkout-button:focus-visible{outline:auto}.s-add-product-button-buy-now .s-fast-checkout-button:hover{background-color:var(--color-primary)}.s-add-product-button-buy-now .s-fast-checkout-button.outline{background-color:transparent;border:1px solid var(--color-primary);color:var(--color-primary)}.s-add-product-button-buy-now .s-fast-checkout-button.rtl{flex-direction:row-reverse}.s-add-product-button-buy-now .s-fast-checkout-button:disabled{cursor:progress;opacity:0.7}.sticky{position:sticky}.hidden{display:none}.w-full{width:100%}.outline{outline-style:solid}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.s-hidden{display:none}.btn{display:inline-flex;flex:1 1 0%;align-items:center;justify-content:center;white-space:nowrap;border-radius:0.375rem;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:0.625rem;padding-top:0.5rem;font-size:0.875rem;line-height:1.25rem;font-weight:700;transition-property:color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:300ms}.btn:hover{opacity:0.8}.s-hidden{display:none}.s-add-product-button-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.s-add-product-button-with-quick-buy{display:flex}@media (min-width: 640px){.s-add-product-button-with-quick-buy{flex-direction:column}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar){flex-direction:column !important}.s-add-product-button-main{display:flex;width:66.666667%;column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-main{width:100%;column-gap:0.625rem}}.s-add-product-button-with-sticky-bar salla-quick-buy{width:33.333333%}@media (min-width: 640px){.s-add-product-button-with-sticky-bar salla-quick-buy{width:100%}}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-sticky-bar) .s-add-product-button-main{width:100%}.s-add-product-button-with-quick-buy:not(.s-add-product-button-with-apple-pay) .s-add-product-button-main{width:100%}.s-add-product-button-main:not(.w-full)>salla-button{width:50% !important}.s-add-product-button-main .s-add-product-button-mini-checkout{--salla-fast-checkout-button-border-radius:.75rem;width:50%}.s-add-product-button-with-sticky-bar{width:100% !important}@media (min-width: 640px){.s-add-product-button-with-sticky-bar{width:auto}}.s-add-product-button-with-apple-pay{column-gap:0.375rem}@media (min-width: 640px){.s-add-product-button-with-apple-pay{column-gap:unset}}.s-add-product-button-with-apple-pay:not(.s-add-product-button-with-sticky-bar) salla-quick-buy apple-pay-button{margin-top:0.625rem}.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:none}@media (min-width: 768px){.s-add-product-button-with-sticky-bar salla-quick-buy .s-quick-buy-button .s-button-text span{display:block}}.s-add-product-button-mini-checkout-content{display:flex;flex-shrink:0;align-items:center;white-space:nowrap;font-size:.8rem}@media (min-width: 640px){.s-add-product-button-mini-checkout-content{font-size:0.875rem;line-height:1.25rem}}.s-add-product-button-mini-checkout-content:where([dir=\"rtl\"],[dir=\"rtl\"] *){flex-direction:row-reverse}.s-add-product-button-mini-checkout-content svg{margin-right:0.375rem;height:1rem;width:1rem;fill:currentColor}.s-add-product-button-mini-checkout-content svg:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-right:0px;margin-left:0.375rem}.s-add-product-button-busy{pointer-events:none;position:relative}.s-add-product-button-busy::after{position:absolute;top:50%;left:50%;z-index:10;height:1rem;width:1rem;--tw-translate-x:-50%;content:var(--tw-content);--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{content:var(--tw-content);transform:rotate(360deg)}}.s-add-product-button-busy::after{animation:spin 1s linear infinite;border-radius:9999px;border-width:2px;border-style:solid;border-top-color:var(--color-primary);border-left-color:var(--color-primary);border-bottom-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-border-opacity:1;border-right-color:rgb(243 244 246 / var(--tw-border-opacity, 1));--tw-content:'';content:var(--tw-content)}";
261
262
 
262
263
  const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddProductButton extends HTMLElement {
263
264
  constructor() {
@@ -266,6 +267,11 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
266
267
  this.success = createEvent(this, "success", 7);
267
268
  this.failed = createEvent(this, "failed", 7);
268
269
  this.hostAttributes = {};
270
+ this.buyNowBusy = false;
271
+ /** Latest buy-now click; an older click still waiting on Bullet Delivery drops out. */
272
+ this.buyNowToken = 0;
273
+ this.buyNowLastClick = 0;
274
+ this.buyNowLivePrice = 0;
269
275
  /**
270
276
  * Has Pre Order
271
277
  */
@@ -280,6 +286,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
280
286
  this.productType = 'product';
281
287
  this.selectedOptions = [];
282
288
  this.buyNowText = salla.lang.get('pages.products.buy_now');
289
+ this.buyNowLoading = false;
283
290
  /** Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed) */
284
291
  this.isDesktopViewport = typeof window !== 'undefined' ? window.matchMedia('(min-width: 768px)').matches : true;
285
292
  this.viewportMediaQuery = null;
@@ -287,6 +294,9 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
287
294
  this.orderOptionsGateAttached = false;
288
295
  /** Guards one-time attachment of the fast-checkout Bullet Delivery gate (logic lives in FastCheckoutGate). */
289
296
  this.fastCheckoutGateAttached = false;
297
+ this.onBuyNowPriceUpdated = (response) => {
298
+ this.buyNowLivePrice = Number(response?.data?.price) || this.buyNowLivePrice;
299
+ };
290
300
  this.onViewportChange = (e) => {
291
301
  this.isDesktopViewport = e.matches;
292
302
  this.btn?.setText((e.matches && !!this.passedLabel) ? this.passedLabel : this.getLabel());
@@ -414,6 +424,105 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
414
424
  type: this.supportStickyBar && !this.isDesktopViewport ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'
415
425
  };
416
426
  }
427
+ // Store setting: quick-buy skips the mini-checkout popup and goes straight to the checkout page.
428
+ get redirectsToCheckout() {
429
+ return salla.config.get('store.settings.buy_now.redirect_to_checkout') === true;
430
+ }
431
+ /** The fast-checkout slot renders and the store redirects, so the buy-now button is on the page. */
432
+ get showsBuyNowButton() {
433
+ return this.showQuickBuy
434
+ && !!document.getElementById('fast-checkout-js')
435
+ && !['financial_support', 'donating'].includes(this.productType)
436
+ && this.redirectsToCheckout;
437
+ }
438
+ buyNowButton() {
439
+ return h("div", { class: "s-add-product-button-mini-checkout s-mini-checkout hide-scroll s-add-product-button-buy-now" }, h("button", { type: "button", class: `s-fast-checkout-button outline ${salla.lang.locale == 'ar' ? 'rtl' : 'ltr'}`, disabled: this.buyNowLoading, onClick: () => this.buyNowRedirect() }, h("div", { class: "s-add-product-button-mini-checkout-content" }, h("span", { innerHTML: WalletIcon }), this.buyNowText)));
440
+ }
441
+ async buyNowRedirect() {
442
+ // A double-click would reach Bullet Delivery twice, which stalls its guest gate.
443
+ const now = Date.now();
444
+ if (this.buyNowBusy || now - this.buyNowLastClick < 500) {
445
+ return;
446
+ }
447
+ this.buyNowLastClick = now;
448
+ const token = ++this.buyNowToken;
449
+ const optionsEl = document.querySelector(`salla-product-options[product-id="${this.productId}"]`);
450
+ if (optionsEl?.validateAndScroll && !(await optionsEl.validateAndScroll())) {
451
+ return;
452
+ }
453
+ // Bullet Delivery's address gate, as the widget runs it; stays pending if the shopper backs out.
454
+ await salla.cart.event.beforeStartFastCheckout();
455
+ if (token !== this.buyNowToken || this.buyNowBusy) {
456
+ return;
457
+ }
458
+ this.buyNowBusy = true;
459
+ let leaving = false;
460
+ try {
461
+ this.buyNowLoading = true;
462
+ const form = document.querySelector('form.product-form');
463
+ const data = form ? new FormData(form) : new FormData();
464
+ data.set('id', String(this.productId));
465
+ data.set('source', 'buy_now');
466
+ if (!(await this.collectOrderOptions(data))) {
467
+ return;
468
+ }
469
+ const resp = await salla.api.request('checkout/mini', data, 'post');
470
+ if (resp.data?.url) {
471
+ leaving = this.openCheckout(resp.data.url);
472
+ }
473
+ else if (resp.data?.to === 'login') {
474
+ salla.event.dispatch('login::open');
475
+ }
476
+ }
477
+ catch (error) {
478
+ this.failed.emit(error);
479
+ }
480
+ finally {
481
+ if (!leaving) {
482
+ this.buyNowBusy = false;
483
+ this.buyNowLoading = false;
484
+ }
485
+ }
486
+ }
487
+ /** Order options and free offer products, as the widget collects them; false when the modal is dismissed. */
488
+ async collectOrderOptions(data) {
489
+ let resp;
490
+ try {
491
+ resp = await salla.api.withoutNotifier(() => salla.product.api.getOrderOptions([{ id: this.productId, quantity: Number(data.get('quantity')) || 1 }]));
492
+ }
493
+ catch (error) {
494
+ salla?.logger?.warn?.('order-options: fetch failed', error);
495
+ return true;
496
+ }
497
+ const orderOptions = resp?.data?.order_options || [];
498
+ const freeProducts = (Array.isArray(resp?.data?.advance_free_product) ? resp.data.advance_free_product : [])
499
+ .filter((entry) => Array.isArray(entry?.options) && entry.options.length);
500
+ if (!orderOptions.length && !freeProducts.length) {
501
+ return true;
502
+ }
503
+ try {
504
+ const result = await ensureOrderOptionsModal().open({
505
+ orderOptions,
506
+ freeProducts,
507
+ basePrice: this.buyNowLivePrice || Number(resp?.data?.products?.[0]?.price?.amount) || 0,
508
+ });
509
+ appendOrderOptionsToPayload(data, result?.orderOptions || []);
510
+ injectFreeProductsIntoPayload(data, result?.freeProducts || []);
511
+ return true;
512
+ }
513
+ catch {
514
+ return false;
515
+ }
516
+ }
517
+ /** Native SPA webviews own the checkout screen; returns true when this page navigates away. */
518
+ openCheckout(url) {
519
+ if (salla.mobile?.isSpaWebview?.() && salla.mobile.openCheckout) {
520
+ salla.mobile.openCheckout(url);
521
+ return false;
522
+ }
523
+ window.location.href = url;
524
+ return true;
525
+ }
417
526
  miniCheckoutWidget() {
418
527
  let storeId = salla.config.get('store.id');
419
528
  if (!storeId) {
@@ -432,8 +541,11 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
432
541
  && this.productType !== 'booking';
433
542
  // Cross-browser Apple Pay: native (Safari) OR the Payment Request API
434
543
  // (non-Safari browsers / non-Apple devices via the QR-code fallback).
544
+ // Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and no buy-now redirect
545
+ // path, so the quick-buy button below must not render for it either.
435
546
  this.isApplePayActive = salla.config.get('store.settings.payments')?.includes('apple_pay')
436
547
  && salla.config.get('store.settings.is_salla_gateway', false)
548
+ && !isApplePayHostedRedirect()
437
549
  && await canCompleteApplePay();
438
550
  this.passedLabel = this.host.innerHTML.replace('<!---->', '').trim();
439
551
  if (!!this.passedLabel && this.isDesktopViewport) {
@@ -463,11 +575,14 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
463
575
  } }, h("div", { class: {
464
576
  's-add-product-button-main': this.showQuickBuy,
465
577
  'w-full': !document.getElementById('fast-checkout-js') || ['financial_support', 'donating'].includes(this.productType) // This is a temporary fix until all themes fully support the fast checkout -- To be removed later
466
- } }, h("salla-button", { color: this.productStatus === 'sale' ? 'primary' : 'light', type: "button", fill: this.productStatus === 'sale' ? 'solid' : 'outline', ref: el => this.btn = el, onClick: event => this.addProductToCart(event), disabled: this.productStatus !== 'sale', "aria-label": this.isIconOnlyLabel ? this.addToCartLabel : undefined, ...this.getBtnAttributes(), "loader-position": "center" }, h("slot", null)), this.showQuickBuy && !!document.getElementById('fast-checkout-js') && !['financial_support', 'donating'].includes(this.productType) ? this.miniCheckoutWidget() : ''), this.showQuickBuy && this.isApplePayActive ? h("salla-quick-buy", { ...this.getQuickBuyBtnAttributes() }) : '');
578
+ } }, h("salla-button", { color: this.productStatus === 'sale' ? 'primary' : 'light', type: "button", fill: this.productStatus === 'sale' ? 'solid' : 'outline', ref: el => this.btn = el, onClick: event => this.addProductToCart(event), disabled: this.productStatus !== 'sale', "aria-label": this.isIconOnlyLabel ? this.addToCartLabel : undefined, ...this.getBtnAttributes(), "loader-position": "center" }, h("slot", null)), this.showQuickBuy && !!document.getElementById('fast-checkout-js') && !['financial_support', 'donating'].includes(this.productType) ? (this.redirectsToCheckout ? this.buyNowButton() : this.miniCheckoutWidget()) : ''), this.showQuickBuy && this.isApplePayActive ? h("salla-quick-buy", { ...this.getQuickBuyBtnAttributes() }) : '');
467
579
  }
468
580
  async componentDidLoad() {
469
581
  // Register this component for hooks system, already on it logic to run componentDidLoad trigger
470
582
  await Salla.hooks.registerComponent('salla-add-product-button', this);
583
+ if (this.showsBuyNowButton) {
584
+ salla.product?.event?.onPriceUpdated?.(this.onBuyNowPriceUpdated);
585
+ }
471
586
  if (!this.notifyOptionsAvailability) {
472
587
  return;
473
588
  }
@@ -516,6 +631,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
516
631
  }
517
632
  disconnectedCallback() {
518
633
  this.viewportMediaQuery?.removeEventListener('change', this.onViewportChange);
634
+ salla.product?.event?.offPriceUpdated?.(this.onBuyNowPriceUpdated);
519
635
  }
520
636
  get host() { return this; }
521
637
  static get style() { return sallaAddProductButtonCss; }
@@ -537,6 +653,7 @@ const SallaAddProductButton = /*@__PURE__*/ proxyCustomElement(class SallaAddPro
537
653
  "showQuickBuy": [32],
538
654
  "isApplePayActive": [32],
539
655
  "buyNowText": [32],
656
+ "buyNowLoading": [32],
540
657
  "isDesktopViewport": [32]
541
658
  }]);
542
659
  function defineCustomElement() {
@@ -2,7 +2,7 @@
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
- import { i as isSaudiArabia, b as bulletDeliveryAPI, r as requireRegionAndDistrictForSA, g as getIntentLatitude, a as getIntentLongitude, h as hasSessionAddressIntent, c as getIntentCityId, d as getIntentCountryId, e as getIntentRegionId, f as getIntentDistrictId, j as filterBranches, k as findNearestBranch, l as getGeolocationErrorMessage, m as clearApiCache, n as getIntentSubtitle, o as getIntentBranchId, p as isMapOriginIntent, q as isBranchSelectable, s as getIntentCountryCode } from './helpers.js';
5
+ import { i as isSaudiArabia, b as bulletDeliveryAPI, r as requireRegionAndDistrictForSA, g as getIntentLatitude, a as getIntentLongitude, h as hasSessionAddressIntent, c as getIntentCityId, d as getIntentCountryId, e as getIntentRegionId, f as getIntentDistrictId, j as isBranchSelectable, k as filterBranches, l as getIntentBranchId, m as findNearestBranch, n as getGeolocationErrorMessage, o as clearApiCache, p as getIntentSubtitle, q as isMapOriginIntent, s as getIntentCountryCode } from './helpers.js';
6
6
  import { S as SILocation } from './location.js';
7
7
  import { S as Search } from './search.js';
8
8
  import { d as defineCustomElement$7 } from './salla-button2.js';
@@ -500,10 +500,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
500
500
  }
501
501
  // Auto-select preselected branch if provided
502
502
  if (this.preselectedBranchId) {
503
- const branch = this.branches.find((b) => b.id === this.preselectedBranchId);
504
- if (branch) {
505
- this.selectedBranch = branch;
506
- }
503
+ this.preselectBranch(this.preselectedBranchId);
507
504
  }
508
505
  }
509
506
  // Prefill form data from session storage
@@ -954,15 +951,30 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
954
951
  async loadBranches() {
955
952
  this.loadingBranches = true;
956
953
  try {
957
- this.branches = await bulletDeliveryAPI.getBranches({
954
+ this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
958
955
  country_id: this.selectedCountry?.id,
959
- });
960
- this.filterBranches();
956
+ }));
961
957
  }
962
958
  finally {
963
959
  this.loadingBranches = false;
964
960
  }
965
961
  }
962
+ /**
963
+ * Store a freshly fetched branch list and reconcile the current selection with it.
964
+ * `selectedBranch` is a snapshot from selection time: when the refreshed list carries the
965
+ * same branch, swap in the fresh copy, and drop it if it is no longer selectable (INV-1407).
966
+ * A selection missing from the list (e.g. filtered out by a search) is left untouched.
967
+ */
968
+ applyLoadedBranches(branches) {
969
+ this.branches = branches;
970
+ if (this.selectedBranch) {
971
+ const fresh = branches.find((b) => b.id === this.selectedBranch?.id);
972
+ if (fresh) {
973
+ this.selectedBranch = isBranchSelectable(fresh) ? fresh : null;
974
+ }
975
+ }
976
+ this.filterBranches();
977
+ }
966
978
  filterBranches() {
967
979
  this.filteredBranches = filterBranches(this.branches, this.branchSearchQuery);
968
980
  }
@@ -989,13 +1001,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
989
1001
  if (country) {
990
1002
  this.selectedCountry = country;
991
1003
  this.updateNewAddressForm({ country_id: Number(country.id) });
992
- const branchId = getIntentBranchId(intent);
993
- if (branchId != null && this.branches.length > 0) {
994
- const branch = this.branches.find((b) => b.id === branchId);
995
- if (branch) {
996
- this.selectedBranch = branch;
997
- }
998
- }
1004
+ this.preselectBranch(getIntentBranchId(intent));
999
1005
  }
1000
1006
  }
1001
1007
  }
@@ -1159,11 +1165,10 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
1159
1165
  return;
1160
1166
  this.loadingBranches = true;
1161
1167
  try {
1162
- this.branches = await bulletDeliveryAPI.getBranches({
1168
+ this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
1163
1169
  country_id: this.selectedCountry?.id,
1164
1170
  query,
1165
- });
1166
- this.filterBranches();
1171
+ }));
1167
1172
  }
1168
1173
  finally {
1169
1174
  this.loadingBranches = false;
@@ -1196,12 +1201,11 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
1196
1201
  async loadBranchesWithLocation(lat, lng) {
1197
1202
  this.loadingBranches = true;
1198
1203
  try {
1199
- this.branches = await bulletDeliveryAPI.getBranches({
1204
+ this.applyLoadedBranches(await bulletDeliveryAPI.getBranches({
1200
1205
  country_id: this.selectedCountry?.id,
1201
1206
  lat,
1202
1207
  lng,
1203
- });
1204
- this.filterBranches();
1208
+ }));
1205
1209
  // Auto-select country from first branch if no country is selected
1206
1210
  if (!this.selectedCountry && this.branches.length > 0) {
1207
1211
  const firstBranch = this.branches[0];
@@ -1258,6 +1262,18 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
1258
1262
  this.selectedBranch = branch;
1259
1263
  this.allocationOutOfCoverageMessage = null;
1260
1264
  }
1265
+ /**
1266
+ * Restore a remembered / event-provided branch — but only one the list renders as selectable,
1267
+ * so a branch that has closed since it was remembered is never silently preselected (INV-1407).
1268
+ */
1269
+ preselectBranch(branchId) {
1270
+ if (branchId == null)
1271
+ return;
1272
+ const branch = this.branches.find((b) => b.id === branchId);
1273
+ if (branch && isBranchSelectable(branch)) {
1274
+ this.selectedBranch = branch;
1275
+ }
1276
+ }
1261
1277
  handleSavedAddressSelect(address) {
1262
1278
  if (address.is_in_coverage === false) {
1263
1279
  // Show toast notification for out of coverage address
@@ -1497,13 +1513,7 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
1497
1513
  await this.loadBranches();
1498
1514
  }
1499
1515
  // Preselect branch from session storage if available
1500
- const branchId = getIntentBranchId(savedIntent);
1501
- if (branchId != null && this.branches.length > 0) {
1502
- const branch = this.branches.find((b) => b.id === branchId);
1503
- if (branch) {
1504
- this.selectedBranch = branch;
1505
- }
1506
- }
1516
+ this.preselectBranch(getIntentBranchId(savedIntent));
1507
1517
  }
1508
1518
  else if (tab === "address") {
1509
1519
  // Lazy-load saved addresses when switching to address tab (if not loaded yet).
@@ -1532,7 +1542,8 @@ const SallaBulletDelivery$1 = /*@__PURE__*/ proxyCustomElement(class SallaBullet
1532
1542
  }
1533
1543
  isConfirmDisabled() {
1534
1544
  if (this.activeTab === "branch") {
1535
- return !this.selectedBranch;
1545
+ // Backstop for any selection path: the allocation API rejects non-selectable branches (INV-1407).
1546
+ return !isBranchSelectable(this.selectedBranch);
1536
1547
  }
1537
1548
  if (this.activeTab === "address") {
1538
1549
  if (this.isLoggedIn && this.selectedSessionAddress) {
@@ -2,7 +2,7 @@
2
2
  * Crafted with ❤ by Salla
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, h, Host } from '@stencil/core/internal/client';
5
- import { p as isMapOriginIntent } from './helpers.js';
5
+ import { q as isMapOriginIntent } from './helpers.js';
6
6
  import { d as defineCustomElement$6 } from './salla-button2.js';
7
7
  import { d as defineCustomElement$5 } from './salla-loading2.js';
8
8
  import { d as defineCustomElement$4 } from './salla-modal2.js';
@@ -6,7 +6,7 @@ import { a as anime } from './anime.es.js';
6
6
  import { I as IconArrowLeft } from './arrow-left.js';
7
7
  import { C as Cancel } from './cancel.js';
8
8
  import { S as SIGiftSharing } from './gift-sharing.js';
9
- import { b as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
9
+ import { a as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
10
10
  import { d as defineCustomElement$k } from './salla-attachment-view2.js';
11
11
  import { d as defineCustomElement$j } from './salla-booking-field2.js';
12
12
  import { d as defineCustomElement$i } from './salla-button2.js';
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { proxyCustomElement, HTMLElement, createEvent, h, Host } from '@stencil/core/internal/client';
5
5
  import { a as axios } from './axios.js';
6
- import { r as resolveApplePayOrderOptions, a as reportProductOptionsValiditySync, b as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
6
+ import { r as resolveApplePayOrderOptions, b as reportProductOptionsValiditySync, a as appendOrderOptionsToPayload } from './apple-pay-order-options.js';
7
7
  import { d as defineCustomElement$e } from './salla-attachment-view2.js';
8
8
  import { d as defineCustomElement$d } from './salla-booking-field2.js';
9
9
  import { d as defineCustomElement$c } from './salla-button2.js';
@@ -51,6 +51,23 @@ function applePayMerchantId() {
51
51
  return salla?.config?.get?.('store.settings.buy_now.merchant_identifier') || null;
52
52
  }
53
53
 
54
+ /**
55
+ * Whether the store's Apple Pay is a hosted redirect rather than a native sheet.
56
+ *
57
+ * MyFatoorah Apple Pay without S2S has no native flow: the checkout page hands off as a
58
+ * credit_card redirect to MyFatoorah's hosted page. The buy-now surfaces (PDP, sticky bar)
59
+ * have no redirect path, so they must not offer an Apple Pay button at all.
60
+ *
61
+ * The backend publishes this as a single boolean (`ApplePayFeature::isHostedRedirect`).
62
+ * Compared with `=== true` on purpose: against a backend that predates the field the key is
63
+ * absent, so this returns false and every surface keeps its current behaviour. That is what
64
+ * makes the storefront half safe to ship independently of the backend half.
65
+ * @returns {boolean}
66
+ */
67
+ function isApplePayHostedRedirect() {
68
+ return salla?.config?.get?.('store.settings.buy_now.hostedRedirect') === true;
69
+ }
70
+
54
71
  /**
55
72
  * Build the W3C Payment Request `methodData` for the Apple Pay method. Callers
56
73
  * supply the values (the probe reads them from config; the live session reads
@@ -2107,9 +2124,12 @@ const SallaQuickBuy = /*@__PURE__*/ proxyCustomElement(class SallaQuickBuy exten
2107
2124
  const canMakePayments = typeof window !== 'undefined' && !!window.ApplePaySession?.canMakePayments?.();
2108
2125
  const storeHasApplePay = salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? true;
2109
2126
  const isSallaGateway = salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? true;
2127
+ // Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no redirect
2128
+ // path, so there is nothing this button could do — don't offer it.
2129
+ const isHostedRedirect = isApplePayHostedRedirect();
2110
2130
  // No networks means nothing to charge with, so don't show the button — canMakePayments()
2111
2131
  // alone would light it up on Safari.
2112
- this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway
2132
+ this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway && !isHostedRedirect
2113
2133
  && !!this.resolveSupportedNetworks().length;
2114
2134
  const runInit = async () => {
2115
2135
  if (!this.productId && salla?.config?.get && salla.url?.is_page) {
@@ -2138,7 +2158,8 @@ const SallaQuickBuy = /*@__PURE__*/ proxyCustomElement(class SallaQuickBuy exten
2138
2158
  salla.product.event.onPriceUpdated(response => { this.applyBaseCurrencyPrice(response?.data); });
2139
2159
  }
2140
2160
  const storeAllowsApplePay = (salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? storeHasApplePay)
2141
- && (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway);
2161
+ && (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway)
2162
+ && !isApplePayHostedRedirect();
2142
2163
  // Preload Apple's JS SDK so the rendered <apple-pay-button> upgrades on
2143
2164
  // every flow (native Safari + QR). Fire-and-forget: the element upgrades
2144
2165
  // retroactively once the script defines it.
@@ -2162,7 +2183,16 @@ const SallaQuickBuy = /*@__PURE__*/ proxyCustomElement(class SallaQuickBuy exten
2162
2183
  });
2163
2184
  }
2164
2185
  render() {
2165
- return h(Host, { key: '8d1d37acada1f9cdbe6913d01a97fe881facc7af' }, this.quickBuyButton());
2186
+ // Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no
2187
+ // redirect path, so render nothing rather than an Apple Pay button that cannot
2188
+ // do Apple Pay. Scoped to the hosted case on purpose: when a store simply has no
2189
+ // Apple Pay, `isApplePayActive` is false too, but there the button is a deliberate
2190
+ // generic buy-now that falls back to `checkout/mini` (see quickBuyHandler), and
2191
+ // direct consumers rely on that.
2192
+ if (isApplePayHostedRedirect()) {
2193
+ return h(Host, null);
2194
+ }
2195
+ return h(Host, null, this.quickBuyButton());
2166
2196
  }
2167
2197
  quickBuyButton() {
2168
2198
  return h("apple-pay-button", { locale: salla?.config?.get?.('user.language_code') || 'ar', onClick: () => this.quickBuyHandler(), "data-quick-purchase": "applepay", class: "s-quick-buy-apple-pay", "data-is-applepay": "1", buttonstyle: "black", type: this.type });
@@ -2274,4 +2304,4 @@ function defineCustomElement() {
2274
2304
  }
2275
2305
  defineCustomElement();
2276
2306
 
2277
- export { SallaQuickBuy as S, canCompleteApplePay as c, defineCustomElement as d, injectFreeProductsIntoPayload as i };
2307
+ export { SallaQuickBuy as S, isApplePayHostedRedirect as a, canCompleteApplePay as c, defineCustomElement as d, injectFreeProductsIntoPayload as i };
@@ -172,7 +172,7 @@ const SallaReviewCard = /*@__PURE__*/ proxyCustomElement(class SallaReviewCard e
172
172
  return (h("a", { href: this.review?.product?.url, class: "s-review-card-product-container" }, h("img", { alt: product.image?.alt || "Product", src: product.image?.url, class: "s-review-card-product-image", width: 60, height: 60, loading: "lazy", decoding: "async", draggable: false }), h("div", { class: "s-review-card-product-details" }, h("p", { class: "s-review-card-product-details-name" }, product.name), this.showPurchaseCount ? h("p", { class: "s-review-card-product-details-purchase-count" }, h("span", { innerHTML: IconFire2 }), this.purchasedCount) : null)));
173
173
  }
174
174
  render() {
175
- return h("div", { key: '7e833e08405a9153759b958e9c6979fd83c5aec1', class: "s-review-card-container" }, this.renderSlider(), this.renderSingleImage(), renderDivider(), h("div", { key: '85e33a2160a62e2fb3e376f6e20d223d53ced8fe', class: "s-review-card-content" }, this.renderHeader(), h("p", { key: '8b21485de56e57dceb9facb044bd6bad1ad866f3', class: "s-review-card-review-content", innerHTML: this.review?.content }), renderDivider(), this.renderProductInfo()));
175
+ return h("div", { key: '44589734c0a8ab8211a50e89e306de7dd53ad679', class: "s-review-card-container" }, this.renderSlider(), this.renderSingleImage(), renderDivider(), h("div", { key: '14e57255f40beab2e4b92724f26f171cdaaf69f4', class: "s-review-card-content" }, this.renderHeader(), h("p", { key: '8f27f7f13b5611a71164dba288f53e53e10e67f0', class: "s-review-card-review-content", innerHTML: this.review?.content }), renderDivider(), this.renderProductInfo()));
176
176
  }
177
177
  get el() { return this; }
178
178
  static get style() { return sallaReviewCardCss; }
@@ -132,7 +132,7 @@ const SallaReviewFactorsTags = /*@__PURE__*/ proxyCustomElement(class SallaRevie
132
132
  return (h("div", { class: "s-review-factors-tags-factors" }, factors.map(factor => (h("div", { class: "s-review-factors-tags-factor-tag" }, h("span", { class: "s-review-factors-tags-factor-name" }, factor.name), h("span", { class: "s-review-factors-tags-factor-star", innerHTML: Rate }), h("span", { class: "s-review-factors-tags-factor-rating" }, factor.rating || ''))))));
133
133
  }
134
134
  render() {
135
- return (h(Host, { key: '766916fb7639bd23e8fa070c53cb19a32e9fe8aa', class: "s-review-factors-tags-wrapper" }, this.renderFactorTags()));
135
+ return (h(Host, { key: 'f4347eb019e8af95cfa053389887afaa73300f40', class: "s-review-factors-tags-wrapper" }, this.renderFactorTags()));
136
136
  }
137
137
  static get watchers() { return {
138
138
  "factors": ["onPropsChange"],
@@ -685,7 +685,7 @@ const SallaReviewsPage$1 = /*@__PURE__*/ proxyCustomElement(class SallaReviewsPa
685
685
  return options.map(option => (h("option", { key: option.value, value: option.value, selected: option.value === this.sort }, option.label)));
686
686
  }
687
687
  render() {
688
- return (h("host", { key: '96f61882e9ff5d63084b474e887f18852664cee1' }, h("div", { key: '4ed5c60cad490df10f749b1f9c5c85be4b4694a9', class: "s-reviews-page-header-wrapper" }, h("h2", { key: 'b010c63dc5c5b75b62f51ad629f1e3aa92aee545', class: "s-reviews-page-title" }, this.langTitlesReviews, h("span", { key: '5d878bce5aeadaebbe9af6ecfdeb13492554155a', class: "s-reviews-page-count" }, "(", this.langRatingReviews, ")")), h("div", { key: '86946adf82cc42d2b0950da6b787f445f701f707', class: "s-reviews-page-filter-wrapper" }, h("label", { key: '61a02b3c57c025f33f8316410ecc3a21a9c93600', class: "s-reviews-page-filter-label", htmlFor: "testimonials-filter" }, this.langSorting), h("select", { key: '04e135e9ec5bbcd4ce52aea7ef002385108b0606', onChange: (e) => this.handleSorting(e), disabled: !this.reviews.length, class: "s-reviews-page-filter" }, this.renderSortingOptions()))), this.reviews.length ? h("main", { class: "s-reviews-page-grid", ref: el => {
688
+ return (h("host", { key: '9d393d47dde31817178d398dacf0be9d1961f487' }, h("div", { key: '2109c18f3cf9ebb5769291ee88dc733e2b96759f', class: "s-reviews-page-header-wrapper" }, h("h2", { key: 'f9259ac0832ea3041a517ee3dd8dccb41a3bd903', class: "s-reviews-page-title" }, this.langTitlesReviews, h("span", { key: 'f49098ca0e3f911669c610a310dbf331922e9b8a', class: "s-reviews-page-count" }, "(", this.langRatingReviews, ")")), h("div", { key: '739397b8f7389cfab453d435868b20be49871d6d', class: "s-reviews-page-filter-wrapper" }, h("label", { key: '92bd0f40b758f394ca3c1604ba207653e2263bac', class: "s-reviews-page-filter-label", htmlFor: "testimonials-filter" }, this.langSorting), h("select", { key: 'a2b42e0c18c9192a3ff33f61ca21e50355655ed4', onChange: (e) => this.handleSorting(e), disabled: !this.reviews.length, class: "s-reviews-page-filter" }, this.renderSortingOptions()))), this.reviews.length ? h("main", { class: "s-reviews-page-grid", ref: el => {
689
689
  this.wrapper = el;
690
690
  } }, this.reviews.map(review => (h("salla-review-card", { key: review.id, review: review }))))
691
691
  : h("div", { class: "s-products-list-placeholder" }, h("span", { innerHTML: ShoppingBag }), h("p", null, this.placeholderText)), this.pagination?.links?.next && this.reviews.length ? (h("div", { class: "s-reviews-page-load-more-container" }, h("salla-button", { class: "s-reviews-page-load-more-btn", loading: this.isLoading, onClick: () => this.infiniteScroll?.loadNextPage(), onKeyUp: () => this.infiniteScroll?.loadNextPage() }, this.langLoadMore))) : null));
@@ -121,7 +121,7 @@ const SallaSearchProductCard = /*@__PURE__*/ proxyCustomElement(class SallaSearc
121
121
  // 's-search-product-card-out-of-stock': this.productData?.is_out_of_stock,
122
122
  };
123
123
  const hrefProp = this.productData?.url ? { href: this.productData.url } : {};
124
- return (h(Host, { key: '96d5601bdfaf30f7455567d1b749882a1bacca89', id: `search-product-${this.productData?.id}`, class: classes }, this.productData?.url ? (h("a", { class: "s-search-product-card-overlay-link", "aria-label": this.productData?.name, ...hrefProp })) : null, h("div", { key: '3fe75c253a2658366445b9e8f49f8d1fefbbb203', class: "s-search-product-card-image" }, h("img", { key: '916d235df1545379d39c5645dd552dd9280d36ba', class: `s-search-product-card-image-${salla.url.is_placeholder(this.productData?.image?.url) ? 'contain' : 'cover'} lazy`, src: this.placeholder, alt: this.productData?.image?.alt || this.productData?.name, "data-src": this.productData?.image?.url || this.productData?.thumbnail }), this.getProductBadge()), h("div", { key: 'e473015b3d9f5efe0aeffb304811e29c5c9cd4e6', class: "s-search-product-card-content" }, h("div", { key: 'f0c30273f378ba36d5e7a9c407b44112c7bcc132', class: "s-search-product-card-content-main" }, h("h3", { key: '747a97b3c73bee3cd301d4bd1e6904f3aef6f5fb', class: "s-search-product-card-content-title" }, this.getDisplayTitle()), this.productData?.subtitle ? (h("p", { class: "s-search-product-card-content-subtitle" }, this.productData?.subtitle)) : null), !!this.showDonationAmount && !!this.productData?.donation
124
+ return (h(Host, { key: '68ea949b11eefd54cdc6f98efdfca9b88118618d', id: `search-product-${this.productData?.id}`, class: classes }, this.productData?.url ? (h("a", { class: "s-search-product-card-overlay-link", "aria-label": this.productData?.name, ...hrefProp })) : null, h("div", { key: 'b6edf8d163728c4bf676ff762156206b12c3e412', class: "s-search-product-card-image" }, h("img", { key: '49d70e57178065d4cd82ab9969ef1024e17da13f', class: `s-search-product-card-image-${salla.url.is_placeholder(this.productData?.image?.url) ? 'contain' : 'cover'} lazy`, src: this.placeholder, alt: this.productData?.image?.alt || this.productData?.name, "data-src": this.productData?.image?.url || this.productData?.thumbnail }), this.getProductBadge()), h("div", { key: '1828cfa687675c9e0db05f52790e14e47fc62276', class: "s-search-product-card-content" }, h("div", { key: '4def9eb945cbbf9392a11ab917652f32b40e855d', class: "s-search-product-card-content-main" }, h("h3", { key: 'fac38036cd00252f8b2625b51b45edcb0f8f386e', class: "s-search-product-card-content-title" }, this.getDisplayTitle()), this.productData?.subtitle ? (h("p", { class: "s-search-product-card-content-subtitle" }, this.productData?.subtitle)) : null), !!this.showDonationAmount && !!this.productData?.donation
125
125
  ? [
126
126
  h("salla-progress-bar", { donation: this.productData?.donation }),
127
127
  h("div", { class: "s-search-product-card-donation-input" }, this.productData?.donation?.can_donate
@@ -136,7 +136,7 @@ const SallaSearchProductCard = /*@__PURE__*/ proxyCustomElement(class SallaSearc
136
136
  ]
137
137
  : null),
138
138
  ]
139
- : null, h("div", { key: '87970771b9c073248e115e55d9d0848d7e319ec2', class: "s-search-product-card-content-sub" }, this.getProductPrice(), this.productData?.is_out_of_stock ? (h("span", { class: "s-search-product-card-out-of-stock-label" }, this.outOfStock)) : null), this.productData?.rating?.stars ? (h("div", { class: "s-search-product-card-rating" }, h("span", { innerHTML: Rate }), h("span", null, this.productData.rating.stars))) : null), !this.hideAddBtn ? (h("div", { class: "s-search-product-card-content-footer" }, h("salla-add-product-button", { ref: el => (this.addBtn = el), "product-id": this.productData.id, "product-status": this.productData.status, "product-type": this.productData.type, class: "s-add-product-button-compact" }, this.renderAddToCartLabel()))) : null));
139
+ : null, h("div", { key: '8a6b30d272e21ec90223437c9e47ae416aa2299b', class: "s-search-product-card-content-sub" }, this.getProductPrice(), this.productData?.is_out_of_stock ? (h("span", { class: "s-search-product-card-out-of-stock-label" }, this.outOfStock)) : null), this.productData?.rating?.stars ? (h("div", { class: "s-search-product-card-rating" }, h("span", { innerHTML: Rate }), h("span", null, this.productData.rating.stars))) : null), !this.hideAddBtn ? (h("div", { class: "s-search-product-card-content-footer" }, h("salla-add-product-button", { ref: el => (this.addBtn = el), "product-id": this.productData.id, "product-status": this.productData.status, "product-type": this.productData.type, class: "s-add-product-button-compact" }, this.renderAddToCartLabel()))) : null));
140
140
  }
141
141
  componentDidLoad() {
142
142
  document.lazyLoadInstance?.update(this.host?.querySelectorAll('.lazy'));
@@ -362,7 +362,7 @@ const SallaSearch$1 = /*@__PURE__*/ proxyCustomElement(class SallaSearch extends
362
362
  .fetch({ source: 'search', source_value: val })
363
363
  .then(response => {
364
364
  this.results = response;
365
- salla.event.emit('Products Searched', { query: val, total: response.data?.length });
365
+ salla.event.emit('Products Searched', { query: val, total: response.data?.length, metadata: response.metadata });
366
366
  })
367
367
  .catch(err => (err !== 'Query is same as previous one!' ? (this.results = undefined) : null))
368
368
  .finally(() => this.afterSearching());
@@ -197,18 +197,18 @@ const SallaSearchableDropdown = /*@__PURE__*/ proxyCustomElement(class SallaSear
197
197
  render() {
198
198
  const hasSelection = this.selectedItem != null;
199
199
  const listboxId = `${this.inputId}-listbox`;
200
- return (h(Host, { key: 'fc53e02e434040f760889983d900670231a40e48', class: "s-searchable-dropdown" }, h("div", { key: '86e6866e107164130b3db2ec1771bc88d0b97278', class: { 's-searchable-dropdown': true, 's-searchable-dropdown--open': this.isOpen } }, this.label && (h("label", { key: 'a3c11751fd38c9ac88ecec24e2ac610a9c22d485', class: "s-searchable-dropdown-label", htmlFor: this.inputId }, this.label, this.required && h("span", { key: '793e54f5dad4e402cfbaf9eb86302d524ef8c3f0', class: "s-searchable-dropdown-required" }, " *"))), h("div", { key: 'ba6be33f8cf0361868f38e03298a6f7ca65a014d', class: {
200
+ return (h(Host, { key: '9b8ac693952ae27f7fecb0f848ef60f5778f0e75', class: "s-searchable-dropdown" }, h("div", { key: '2f10ce4a1aca3ff7299d8561a6dffc05b241b6b1', class: { 's-searchable-dropdown': true, 's-searchable-dropdown--open': this.isOpen } }, this.label && (h("label", { key: 'bf4f834506b01c388f961e71675dcff60fcab9d9', class: "s-searchable-dropdown-label", htmlFor: this.inputId }, this.label, this.required && h("span", { key: 'ccc2919fd2897f6f88009763c10e7e6b04818f5d', class: "s-searchable-dropdown-required" }, " *"))), h("div", { key: '4b3796c45068749c9ad6fcd7cd82289971abd6cb', class: {
201
201
  's-searchable-dropdown-trigger': true,
202
202
  's-searchable-dropdown-trigger--disabled': this.disabled || this.loading,
203
203
  's-searchable-dropdown-trigger--open': this.isOpen,
204
- }, role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-controls": listboxId, "aria-disabled": this.disabled || this.loading ? 'true' : 'false', tabIndex: this.disabled || this.loading ? -1 : 0, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hasSelection ? (h("span", { class: "s-searchable-dropdown-trigger-text" }, this.getDisplayName(this.selectedItem))) : (h("span", { class: "s-searchable-dropdown-trigger-placeholder" }, this.placeholder)), h("i", { key: 'ee33669d9dceb59ba57a4ab884bd4bd361482fef', class: {
204
+ }, role: "combobox", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-haspopup": "listbox", "aria-controls": listboxId, "aria-disabled": this.disabled || this.loading ? 'true' : 'false', tabIndex: this.disabled || this.loading ? -1 : 0, onClick: this.handleTriggerClick, onKeyDown: this.handleTriggerKeyDown }, hasSelection ? (h("span", { class: "s-searchable-dropdown-trigger-text" }, this.getDisplayName(this.selectedItem))) : (h("span", { class: "s-searchable-dropdown-trigger-placeholder" }, this.placeholder)), h("i", { key: '0f00911d4b31a3bc5607b3d80c75fa9161e57450', class: {
205
205
  'sicon-keyboard_arrow_down': true,
206
206
  's-searchable-dropdown-trigger-icon': true,
207
207
  's-searchable-dropdown-trigger-icon--open': this.isOpen,
208
- }, "aria-hidden": "true" })), this.isOpen && (h("div", { key: '53beca7bfb0cb44612cbfead759c0681a77a0853', class: {
208
+ }, "aria-hidden": "true" })), this.isOpen && (h("div", { key: 'e9d3ee8e3ce449038c9c24f664da1fd44cb140c9', class: {
209
209
  's-searchable-dropdown-panel': true,
210
210
  's-searchable-dropdown-panel--up': this.dropUp,
211
- }, ref: (el) => (this.panelRef = el) }, this.searchable && (h("div", { key: 'b301dbd407c1128bc9baaed95bc5059d06047c09', class: "s-searchable-dropdown-search-wrap" }, h("i", { key: '3cb244ca449a075cbaa70e79a3ce5366eef2f570', class: "sicon-search s-searchable-dropdown-search-icon", "aria-hidden": "true" }), h("input", { key: '7fe5017de091ad8a4453d3a67c5200411f55a660', ref: (el) => (this.searchInputRef = el), id: this.inputId, type: "text", class: "s-searchable-dropdown-search-input", placeholder: this.placeholder, value: this.clientSearch ? this.clientSearchQuery : this.searchQuery, onInput: this.handleSearchInputChange, onKeyDown: this.handleSearchKeyDown, autocomplete: "off", "aria-autocomplete": "list", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-controls": listboxId }))), h("div", { key: '05180ea74c8bbb95c9f19c3346b01c46f2faaa1e', id: listboxId, class: "s-searchable-dropdown-list s-scrollbar", role: "listbox" }, this.renderListContent()))))));
211
+ }, ref: (el) => (this.panelRef = el) }, this.searchable && (h("div", { key: '21d3d0f542271255a57c7ae1171a2245f21db148', class: "s-searchable-dropdown-search-wrap" }, h("i", { key: '32b23853dce56095394b0f3f32a62aa05e803af2', class: "sicon-search s-searchable-dropdown-search-icon", "aria-hidden": "true" }), h("input", { key: 'c50548c034ed3e4ff395fb009e545c78c2dc712e', ref: (el) => (this.searchInputRef = el), id: this.inputId, type: "text", class: "s-searchable-dropdown-search-input", placeholder: this.placeholder, value: this.clientSearch ? this.clientSearchQuery : this.searchQuery, onInput: this.handleSearchInputChange, onKeyDown: this.handleSearchKeyDown, autocomplete: "off", "aria-autocomplete": "list", "aria-expanded": this.isOpen ? 'true' : 'false', "aria-controls": listboxId }))), h("div", { key: 'c89233e8d294fe583d9fb8c11c7bb26af5307ce3', id: listboxId, class: "s-searchable-dropdown-list s-scrollbar", role: "listbox" }, this.renderListContent()))))));
212
212
  }
213
213
  renderListContent() {
214
214
  if (this.searching || this.loading) {
@@ -27,7 +27,7 @@ const SallaSkeleton = /*@__PURE__*/ proxyCustomElement(class SallaSkeleton exten
27
27
  's-skeleton-item': true,
28
28
  's-skeleton-item-circular': this.type == 'circle',
29
29
  };
30
- return (h(Host, { key: '085e0afda0f8804a7365d56c84a59dc6ac97f942', class: "s-skeleton-wrapper", style: { width: this.width, height: this.height } }, h("div", { key: 'a83a649343db0f91c18b6815c6c4d40254902aa9', class: classes }, "\u00A0")));
30
+ return (h(Host, { key: 'b6ea2f9ba293c4c5922a5abf48f05845d02a8590', class: "s-skeleton-wrapper", style: { width: this.width, height: this.height } }, h("div", { key: '8fa3bed8b7aa80e01742d6c2496bc0578aabe7f1', class: classes }, "\u00A0")));
31
31
  }
32
32
  static get style() { return sallaSkeletonCss; }
33
33
  }, [0, "salla-skeleton", {
@@ -383,7 +383,7 @@ const SallaSocialShare = /*@__PURE__*/ proxyCustomElement(class SallaSocialShare
383
383
  })));
384
384
  }
385
385
  render() {
386
- return (h("div", { key: '5034ca70b89748c6bba5ede29e52f2d75d2f5565', class: "s-social-share-wrapper" }, h("slot", { key: '8a40e07046e2cab0032ce0e6927266c5d621a0a8', name: "widget" }, h("salla-button", { key: '120f97de2259ead0f48281a26fae5d32e7ac7ab7', "aria-label": "Share", onClick: () => this.handleShareClick(), class: "s-social-share-btn", shape: "icon", fill: "outline", color: "light" }, h("span", { key: '4abea4fffcb76c64e9a0caffd5bffc3ad4676fd0', innerHTML: this.opened ? Cancel : ShareAlt }))), this.mode === 'modal' ? this.renderModal() : this.renderPopupList()));
386
+ return (h("div", { key: 'e54e51701050bfe02aa33824a5870294618ca22c', class: "s-social-share-wrapper" }, h("slot", { key: '692691792083ae58a23c4a273019e09c74366805', name: "widget" }, h("salla-button", { key: 'a27f7bfd1d2fde734f1d89aa5dc83a59b3803b23', "aria-label": "Share", onClick: () => this.handleShareClick(), class: "s-social-share-btn", shape: "icon", fill: "outline", color: "light" }, h("span", { key: '30cde6555a83a7362c2739e018fe994ee6dc25cf', innerHTML: this.opened ? Cancel : ShareAlt }))), this.mode === 'modal' ? this.renderModal() : this.renderPopupList()));
387
387
  }
388
388
  get host() { return this; }
389
389
  static get watchers() { return {
@@ -56,7 +56,7 @@ const SallaSocial$1 = /*@__PURE__*/ proxyCustomElement(class SallaSocial extends
56
56
  }
57
57
  render() {
58
58
  const linksArray = this.getLinksArray();
59
- return (h(Host, { key: 'd62bc20c62af5bcea93835bc1ec2436f65f7e427' }, h("ul", { key: '33b410148ef6c60dd09237c7ec38f82aa3e9973d', class: "s-social-list" }, linksArray.map((link) => (h("li", { class: "s-social-link" }, h("div", { id: "social-slot", innerHTML: this.socialSlot
59
+ return (h(Host, { key: '4b8d92800f475d314d5637e290c1fa95c78335f5' }, h("ul", { key: 'b6134f221891e28484155c55d3bcf0182bcb967a', class: "s-social-list" }, linksArray.map((link) => (h("li", { class: "s-social-link" }, h("div", { id: "social-slot", innerHTML: this.socialSlot
60
60
  .replace(/\{icon\}/g, this.iconsList[link.type])
61
61
  .replace(/\{type\}/g, link.type)
62
62
  .replace(/\{link\}/g, link.value.toString()) })))))));
@@ -32,7 +32,7 @@ const SallaTabContent = /*@__PURE__*/ proxyCustomElement(class SallaTabContent e
32
32
  's-tabs-content': true,
33
33
  's-tabs-content-selected': this.isSelected
34
34
  };
35
- return (h("div", { key: '88c4bbda1dc7e40ba888ca1345d0727c91a83250', class: classes }, h("slot", { key: '1d2a205130b90702aa4a8f4a8d801bfce486cfe8' })));
35
+ return (h("div", { key: '3107faffd358504438b464be5000682d403e1b22', class: classes }, h("slot", { key: 'e6fc9e480389b54f9e6e20a7c8ccdb880a4ee6d4' })));
36
36
  }
37
37
  static get style() { return sallaTabContentCss; }
38
38
  }, [4, "salla-tab-content", {