@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
@@ -3,15 +3,15 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
  var cart = require('./cart-DSvlJXCH.js');
8
8
  var Helper = require('./Helper-DgRzYZwR.js');
9
+ var applePayOrderOptions = require('./apple-pay-order-options-CA8IYRTb.js');
9
10
  var catalogRecommendations = require('./catalog-recommendations-Bxs1t6wk.js');
10
11
  var bellRing = require('./bell-ring-BfKPinNo.js');
11
12
  var interfaces = require('./interfaces-Bh7W0bEU.js');
12
13
  var check = require('./check-x3w3-gpj.js');
13
14
  var camera = require('./camera-DytepEoK.js');
14
- var applePayOrderOptions = require('./apple-pay-order-options-B036Wu4O.js');
15
15
  require('./anime.es-BqW8JHZi.js');
16
16
 
17
17
  var WalletIcon = `<!-- Generated by IcoMoon.io -->
@@ -53,6 +53,23 @@ function applePayMerchantId() {
53
53
  return salla?.config?.get?.('store.settings.buy_now.merchant_identifier') || null;
54
54
  }
55
55
 
56
+ /**
57
+ * Whether the store's Apple Pay is a hosted redirect rather than a native sheet.
58
+ *
59
+ * MyFatoorah Apple Pay without S2S has no native flow: the checkout page hands off as a
60
+ * credit_card redirect to MyFatoorah's hosted page. The buy-now surfaces (PDP, sticky bar)
61
+ * have no redirect path, so they must not offer an Apple Pay button at all.
62
+ *
63
+ * The backend publishes this as a single boolean (`ApplePayFeature::isHostedRedirect`).
64
+ * Compared with `=== true` on purpose: against a backend that predates the field the key is
65
+ * absent, so this returns false and every surface keeps its current behaviour. That is what
66
+ * makes the storefront half safe to ship independently of the backend half.
67
+ * @returns {boolean}
68
+ */
69
+ function isApplePayHostedRedirect() {
70
+ return salla?.config?.get?.('store.settings.buy_now.hostedRedirect') === true;
71
+ }
72
+
56
73
  /**
57
74
  * Build the W3C Payment Request `methodData` for the Apple Pay method. Callers
58
75
  * supply the values (the probe reads them from config; the live session reads
@@ -467,7 +484,7 @@ class FastCheckoutGate {
467
484
  }
468
485
  }
469
486
 
470
- 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)}";
487
+ 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)}";
471
488
 
472
489
  const SallaAddProductButton = class {
473
490
  constructor(hostRef) {
@@ -475,6 +492,11 @@ const SallaAddProductButton = class {
475
492
  this.success = index.createEvent(this, "success");
476
493
  this.failed = index.createEvent(this, "failed");
477
494
  this.hostAttributes = {};
495
+ this.buyNowBusy = false;
496
+ /** Latest buy-now click; an older click still waiting on Bullet Delivery drops out. */
497
+ this.buyNowToken = 0;
498
+ this.buyNowLastClick = 0;
499
+ this.buyNowLivePrice = 0;
478
500
  /**
479
501
  * Has Pre Order
480
502
  */
@@ -489,6 +511,7 @@ const SallaAddProductButton = class {
489
511
  this.productType = 'product';
490
512
  this.selectedOptions = [];
491
513
  this.buyNowText = salla.lang.get('pages.products.buy_now');
514
+ this.buyNowLoading = false;
492
515
  /** Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed) */
493
516
  this.isDesktopViewport = typeof window !== 'undefined' ? window.matchMedia('(min-width: 768px)').matches : true;
494
517
  this.viewportMediaQuery = null;
@@ -496,6 +519,9 @@ const SallaAddProductButton = class {
496
519
  this.orderOptionsGateAttached = false;
497
520
  /** Guards one-time attachment of the fast-checkout Bullet Delivery gate (logic lives in FastCheckoutGate). */
498
521
  this.fastCheckoutGateAttached = false;
522
+ this.onBuyNowPriceUpdated = (response) => {
523
+ this.buyNowLivePrice = Number(response?.data?.price) || this.buyNowLivePrice;
524
+ };
499
525
  this.onViewportChange = (e) => {
500
526
  this.isDesktopViewport = e.matches;
501
527
  this.btn?.setText((e.matches && !!this.passedLabel) ? this.passedLabel : this.getLabel());
@@ -623,6 +649,105 @@ const SallaAddProductButton = class {
623
649
  type: this.supportStickyBar && !this.isDesktopViewport ? 'plain' : this.productType == 'donating' ? 'donate' : 'buy'
624
650
  };
625
651
  }
652
+ // Store setting: quick-buy skips the mini-checkout popup and goes straight to the checkout page.
653
+ get redirectsToCheckout() {
654
+ return salla.config.get('store.settings.buy_now.redirect_to_checkout') === true;
655
+ }
656
+ /** The fast-checkout slot renders and the store redirects, so the buy-now button is on the page. */
657
+ get showsBuyNowButton() {
658
+ return this.showQuickBuy
659
+ && !!document.getElementById('fast-checkout-js')
660
+ && !['financial_support', 'donating'].includes(this.productType)
661
+ && this.redirectsToCheckout;
662
+ }
663
+ buyNowButton() {
664
+ return index.h("div", { class: "s-add-product-button-mini-checkout s-mini-checkout hide-scroll s-add-product-button-buy-now" }, index.h("button", { type: "button", class: `s-fast-checkout-button outline ${salla.lang.locale == 'ar' ? 'rtl' : 'ltr'}`, disabled: this.buyNowLoading, onClick: () => this.buyNowRedirect() }, index.h("div", { class: "s-add-product-button-mini-checkout-content" }, index.h("span", { innerHTML: WalletIcon }), this.buyNowText)));
665
+ }
666
+ async buyNowRedirect() {
667
+ // A double-click would reach Bullet Delivery twice, which stalls its guest gate.
668
+ const now = Date.now();
669
+ if (this.buyNowBusy || now - this.buyNowLastClick < 500) {
670
+ return;
671
+ }
672
+ this.buyNowLastClick = now;
673
+ const token = ++this.buyNowToken;
674
+ const optionsEl = document.querySelector(`salla-product-options[product-id="${this.productId}"]`);
675
+ if (optionsEl?.validateAndScroll && !(await optionsEl.validateAndScroll())) {
676
+ return;
677
+ }
678
+ // Bullet Delivery's address gate, as the widget runs it; stays pending if the shopper backs out.
679
+ await salla.cart.event.beforeStartFastCheckout();
680
+ if (token !== this.buyNowToken || this.buyNowBusy) {
681
+ return;
682
+ }
683
+ this.buyNowBusy = true;
684
+ let leaving = false;
685
+ try {
686
+ this.buyNowLoading = true;
687
+ const form = document.querySelector('form.product-form');
688
+ const data = form ? new FormData(form) : new FormData();
689
+ data.set('id', String(this.productId));
690
+ data.set('source', 'buy_now');
691
+ if (!(await this.collectOrderOptions(data))) {
692
+ return;
693
+ }
694
+ const resp = await salla.api.request('checkout/mini', data, 'post');
695
+ if (resp.data?.url) {
696
+ leaving = this.openCheckout(resp.data.url);
697
+ }
698
+ else if (resp.data?.to === 'login') {
699
+ salla.event.dispatch('login::open');
700
+ }
701
+ }
702
+ catch (error) {
703
+ this.failed.emit(error);
704
+ }
705
+ finally {
706
+ if (!leaving) {
707
+ this.buyNowBusy = false;
708
+ this.buyNowLoading = false;
709
+ }
710
+ }
711
+ }
712
+ /** Order options and free offer products, as the widget collects them; false when the modal is dismissed. */
713
+ async collectOrderOptions(data) {
714
+ let resp;
715
+ try {
716
+ resp = await salla.api.withoutNotifier(() => salla.product.api.getOrderOptions([{ id: this.productId, quantity: Number(data.get('quantity')) || 1 }]));
717
+ }
718
+ catch (error) {
719
+ salla?.logger?.warn?.('order-options: fetch failed', error);
720
+ return true;
721
+ }
722
+ const orderOptions = resp?.data?.order_options || [];
723
+ const freeProducts = (Array.isArray(resp?.data?.advance_free_product) ? resp.data.advance_free_product : [])
724
+ .filter((entry) => Array.isArray(entry?.options) && entry.options.length);
725
+ if (!orderOptions.length && !freeProducts.length) {
726
+ return true;
727
+ }
728
+ try {
729
+ const result = await applePayOrderOptions.ensureOrderOptionsModal().open({
730
+ orderOptions,
731
+ freeProducts,
732
+ basePrice: this.buyNowLivePrice || Number(resp?.data?.products?.[0]?.price?.amount) || 0,
733
+ });
734
+ applePayOrderOptions.appendOrderOptionsToPayload(data, result?.orderOptions || []);
735
+ injectFreeProductsIntoPayload(data, result?.freeProducts || []);
736
+ return true;
737
+ }
738
+ catch {
739
+ return false;
740
+ }
741
+ }
742
+ /** Native SPA webviews own the checkout screen; returns true when this page navigates away. */
743
+ openCheckout(url) {
744
+ if (salla.mobile?.isSpaWebview?.() && salla.mobile.openCheckout) {
745
+ salla.mobile.openCheckout(url);
746
+ return false;
747
+ }
748
+ window.location.href = url;
749
+ return true;
750
+ }
626
751
  miniCheckoutWidget() {
627
752
  let storeId = salla.config.get('store.id');
628
753
  if (!storeId) {
@@ -641,8 +766,11 @@ const SallaAddProductButton = class {
641
766
  && this.productType !== 'booking';
642
767
  // Cross-browser Apple Pay: native (Safari) OR the Payment Request API
643
768
  // (non-Safari browsers / non-Apple devices via the QR-code fallback).
769
+ // Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and no buy-now redirect
770
+ // path, so the quick-buy button below must not render for it either.
644
771
  this.isApplePayActive = salla.config.get('store.settings.payments')?.includes('apple_pay')
645
772
  && salla.config.get('store.settings.is_salla_gateway', false)
773
+ && !isApplePayHostedRedirect()
646
774
  && await canCompleteApplePay();
647
775
  this.passedLabel = this.host.innerHTML.replace('<!---->', '').trim();
648
776
  if (!!this.passedLabel && this.isDesktopViewport) {
@@ -672,11 +800,14 @@ const SallaAddProductButton = class {
672
800
  } }, index.h("div", { class: {
673
801
  's-add-product-button-main': this.showQuickBuy,
674
802
  '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
675
- } }, index.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" }, index.h("slot", null)), this.showQuickBuy && !!document.getElementById('fast-checkout-js') && !['financial_support', 'donating'].includes(this.productType) ? this.miniCheckoutWidget() : ''), this.showQuickBuy && this.isApplePayActive ? index.h("salla-quick-buy", { ...this.getQuickBuyBtnAttributes() }) : '');
803
+ } }, index.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" }, index.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 ? index.h("salla-quick-buy", { ...this.getQuickBuyBtnAttributes() }) : '');
676
804
  }
677
805
  async componentDidLoad() {
678
806
  // Register this component for hooks system, already on it logic to run componentDidLoad trigger
679
807
  await Salla.hooks.registerComponent('salla-add-product-button', this);
808
+ if (this.showsBuyNowButton) {
809
+ salla.product?.event?.onPriceUpdated?.(this.onBuyNowPriceUpdated);
810
+ }
680
811
  if (!this.notifyOptionsAvailability) {
681
812
  return;
682
813
  }
@@ -725,6 +856,7 @@ const SallaAddProductButton = class {
725
856
  }
726
857
  disconnectedCallback() {
727
858
  this.viewportMediaQuery?.removeEventListener('change', this.onViewportChange);
859
+ salla.product?.event?.offPriceUpdated?.(this.onBuyNowPriceUpdated);
728
860
  }
729
861
  get host() { return index.getElement(this); }
730
862
  };
@@ -4058,9 +4190,12 @@ const SallaQuickBuy = class {
4058
4190
  const canMakePayments = typeof window !== 'undefined' && !!window.ApplePaySession?.canMakePayments?.();
4059
4191
  const storeHasApplePay = salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? true;
4060
4192
  const isSallaGateway = salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? true;
4193
+ // Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no redirect
4194
+ // path, so there is nothing this button could do — don't offer it.
4195
+ const isHostedRedirect = isApplePayHostedRedirect();
4061
4196
  // No networks means nothing to charge with, so don't show the button — canMakePayments()
4062
4197
  // alone would light it up on Safari.
4063
- this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway
4198
+ this.isApplePayActive = canMakePayments && storeHasApplePay && isSallaGateway && !isHostedRedirect
4064
4199
  && !!this.resolveSupportedNetworks().length;
4065
4200
  const runInit = async () => {
4066
4201
  if (!this.productId && salla?.config?.get && salla.url?.is_page) {
@@ -4089,7 +4224,8 @@ const SallaQuickBuy = class {
4089
4224
  salla.product.event.onPriceUpdated(response => { this.applyBaseCurrencyPrice(response?.data); });
4090
4225
  }
4091
4226
  const storeAllowsApplePay = (salla?.config?.get?.('store.settings.payments')?.includes?.('apple_pay') ?? storeHasApplePay)
4092
- && (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway);
4227
+ && (salla?.config?.get?.('store.settings.is_salla_gateway', false) ?? isSallaGateway)
4228
+ && !isApplePayHostedRedirect();
4093
4229
  // Preload Apple's JS SDK so the rendered <apple-pay-button> upgrades on
4094
4230
  // every flow (native Safari + QR). Fire-and-forget: the element upgrades
4095
4231
  // retroactively once the script defines it.
@@ -4113,7 +4249,16 @@ const SallaQuickBuy = class {
4113
4249
  });
4114
4250
  }
4115
4251
  render() {
4116
- return index.h(index.Host, { key: '8d1d37acada1f9cdbe6913d01a97fe881facc7af' }, this.quickBuyButton());
4252
+ // Hosted (MyFatoorah, S2S off) Apple Pay has no native sheet and buy-now has no
4253
+ // redirect path, so render nothing rather than an Apple Pay button that cannot
4254
+ // do Apple Pay. Scoped to the hosted case on purpose: when a store simply has no
4255
+ // Apple Pay, `isApplePayActive` is false too, but there the button is a deliberate
4256
+ // generic buy-now that falls back to `checkout/mini` (see quickBuyHandler), and
4257
+ // direct consumers rely on that.
4258
+ if (isApplePayHostedRedirect()) {
4259
+ return index.h(index.Host, null);
4260
+ }
4261
+ return index.h(index.Host, null, this.quickBuyButton());
4117
4262
  }
4118
4263
  quickBuyButton() {
4119
4264
  return index.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 });
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
  var anime_es = require('./anime.es-BqW8JHZi.js');
8
8
 
9
9
  const sallaAdvertisementCss = "/*!twlt*/:host{display:block}.visible{visibility:visible}.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}.s-advertisement-content{width:100%;margin-right:auto;margin-left:auto;padding-right:10px;padding-left:10px}@media (min-width: 1280px){.s-advertisement-content{max-width:1280px}}.s-advertisement-content{display:flex;align-items:center;justify-content:space-between;padding-top:0.625rem;padding-bottom:0.625rem}.s-advertisement-content-main{flex:1 1 0%;text-align:center;font-size:0.875rem;line-height:1.25rem;font-weight:700}.s-advertisement-content-icon{display:inline-block;vertical-align:middle;font-size:1rem;line-height:1.5rem}.s-advertisement-content-icon:where([dir=\"ltr\"],[dir=\"ltr\"] *){margin-right:0.5rem}.s-advertisement-content-icon:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-left:0.5rem}.s-advertisement-action{padding-left:0.25rem;padding-right:0.25rem}";
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
  var cart = require('./cart-DSvlJXCH.js');
8
8
  var image = require('./image-BoZ6Hums.js');
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
 
8
8
  const sallaAppInstallAlertCss = "/*!twlt*/:host{display:block}.s-app-install-alert-wrapper{display:none;flex-direction:row;align-items:center;position:fixed;left:0;right:0;width:95%;margin-top:1rem;margin-bottom:1rem;margin-left:auto;margin-right:auto;z-index:999;border-radius:0.375rem;padding:0.75rem;gap:0.5rem;background-color:color-mix(in srgb, var(--color-primary) 15%, white);filter:drop-shadow(0 4px 3px rgba(0, 0, 0, 0.07)) drop-shadow(0 2px 2px rgba(0, 0, 0, 0.06))}.s-app-install-alert-wrapper.open[position=top]{display:flex;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 slideDownFromTop{0%{transform:translateY(-100%);opacity:0}100%{transform:translateY(-0%);opacity:1}}.s-app-install-alert-wrapper.open[position=top]{animation:slideDownFromTop .6s linear;transition-duration:500ms}.s-app-install-alert-wrapper:not(.open){display:none}.s-app-install-alert-content{width:100%}.s-app-install-alert-wrapper[position=top]{top:0px}.s-app-install-alert-wrapper.open[position=bottom]{display:flex}@keyframes slideUpFromBottom{0%{transform:translateY(100%);opacity:0}100%{transform:translateY(0%);opacity:1}}.s-app-install-alert-wrapper.open[position=bottom]{animation:slideUpFromBottom .6s linear}.s-app-install-alert-wrapper[position=bottom]{bottom:0px}@keyframes slideUPFromTop{0%{transform:translateY(-0%);opacity:1}100%{transform:translateY(-100%);opacity:0}}.s-app-install-alert-wrapper[position=top].closing{animation:slideUPFromTop .6s linear}@keyframes slideDownFromBottom{0%{transform:translateY(0%);opacity:1}100%{transform:translateY(100%);opacity:0}}.s-app-install-alert-wrapper[position=bottom].closing{animation:slideDownFromBottom .6s linear}.s-app-install-alert-wrapper.closing{animation-fill-mode:forwards}.s-app-install-alert-title{max-width:95%;font-size:1rem;line-height:1.5rem;font-weight:700;color:var(--color-primary)}.s-app-install-alert-sub-title{max-width:95%;font-size:0.875rem;line-height:1.25rem;font-weight:400}.s-app-install-alert-cta{color:var(--color-primary);text-decoration-line:underline}.s-app-install-alert-cancel-button{position:absolute;top:0.5rem}.s-app-install-alert-cancel-button:where([dir=\"ltr\"],[dir=\"ltr\"] *){right:0.75rem}.s-app-install-alert-cancel-button:where([dir=\"rtl\"],[dir=\"rtl\"] *){left:0.75rem}";
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
  var Helper = require('./Helper-DgRzYZwR.js');
8
8
  require('./anime.es-BqW8JHZi.js');
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
 
8
8
  const sallaAppsIconsCss = "/*!twlt*/:host{display:block}.s-apps-icons-list{display:flex;gap:1rem}.s-apps-icons-list.vertical{flex-direction:column}.s-apps-icons-item{line-height:1}.s-apps-icons-item:hover{color:var(--color-primary)}";
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
  var uploadLimits = require('./upload-limits-C3RarAPN.js');
8
8
  var calendar = require('./calendar-D-PUoCDH.js');
9
9
  var keyboard_arrow_down = require('./keyboard_arrow_down-DHJ3FFZq.js');
@@ -707,7 +707,7 @@ const SallaColorPicker = class {
707
707
  }
708
708
  }
709
709
  initColorPicker() {
710
- this.pickerReady = Promise.resolve().then(function () { return require('./vanilla-picker-Cm71HMBs.js'); }).then(function (n) { return n.vanillaPicker; }).then(mod => {
710
+ this.pickerReady = Promise.resolve().then(function () { return require('./vanilla-picker-FCNrUTtN.js'); }).then(function (n) { return n.vanillaPicker; }).then(mod => {
711
711
  const Picker = mod.default;
712
712
  const picker = new Picker({
713
713
  parent: this.host,
@@ -1168,13 +1168,13 @@ const SallaFileUpload = class {
1168
1168
  return;
1169
1169
  try {
1170
1170
  const [FilePondModule, FilePondPluginFileValidateSize, FilePondPluginImageExifOrientation, FilePondPluginImagePreview, FilePondPluginImageEdit, FilePondPluginFileValidateType, FilePondPluginFilePoster] = await Promise.all([
1171
- Promise.resolve().then(function () { return require('./filepond-DkObEO32.js'); }).then(function (n) { return n.filepond; }),
1172
- Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-size-CWleid1C.js'); }).then(function (n) { return n.filepondPluginFileValidateSize; }),
1173
- Promise.resolve().then(function () { return require('./filepond-plugin-image-exif-orientation-abWKSX9-.js'); }).then(function (n) { return n.filepondPluginImageExifOrientation; }),
1174
- Promise.resolve().then(function () { return require('./filepond-plugin-image-preview-DxprNycS.js'); }).then(function (n) { return n.filepondPluginImagePreview; }),
1175
- Promise.resolve().then(function () { return require('./filepond-plugin-image-edit-Bp6AxXM9.js'); }).then(function (n) { return n.filepondPluginImageEdit; }),
1176
- Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-type-CJLl2hbe.js'); }).then(function (n) { return n.filepondPluginFileValidateType; }),
1177
- Promise.resolve().then(function () { return require('./filepond-plugin-file-poster-wXgeY5cU.js'); }).then(function (n) { return n.filepondPluginFilePoster; })
1171
+ Promise.resolve().then(function () { return require('./filepond-Dh9Ih7bu.js'); }).then(function (n) { return n.filepond; }),
1172
+ Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-size-DdzdetN6.js'); }).then(function (n) { return n.filepondPluginFileValidateSize; }),
1173
+ Promise.resolve().then(function () { return require('./filepond-plugin-image-exif-orientation-BXfm40Ut.js'); }).then(function (n) { return n.filepondPluginImageExifOrientation; }),
1174
+ Promise.resolve().then(function () { return require('./filepond-plugin-image-preview-DQLCCOAs.js'); }).then(function (n) { return n.filepondPluginImagePreview; }),
1175
+ Promise.resolve().then(function () { return require('./filepond-plugin-image-edit-B4vaf2kZ.js'); }).then(function (n) { return n.filepondPluginImageEdit; }),
1176
+ Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-type-DRWFKOpQ.js'); }).then(function (n) { return n.filepondPluginFileValidateType; }),
1177
+ Promise.resolve().then(function () { return require('./filepond-plugin-file-poster-C6Sx5vF0.js'); }).then(function (n) { return n.filepondPluginFilePoster; })
1178
1178
  ]);
1179
1179
  this.FilePond = FilePondModule;
1180
1180
  // Register plugins
@@ -2406,7 +2406,7 @@ const SallaTelInput = class {
2406
2406
  if (this.TelInput)
2407
2407
  return;
2408
2408
  try {
2409
- const telInputModule = await Promise.resolve().then(function () { return require('./intlTelInput-B6H18Td2.js'); }).then(function (n) { return n.intlTelInput; });
2409
+ const telInputModule = await Promise.resolve().then(function () { return require('./intlTelInput-o62W18dw.js'); }).then(function (n) { return n.intlTelInput; });
2410
2410
  this.TelInput = telInputModule.default;
2411
2411
  }
2412
2412
  catch (error) {
@@ -2535,7 +2535,7 @@ const SallaTelInput = class {
2535
2535
  }
2536
2536
  }
2537
2537
  render() {
2538
- return (index.h(index.Host, { key: '49a93bc12f1f33f07e1ab6e859c6ae7b9e902eaa', class: "s-tel-input" }, index.h("input", { key: '041b007715f41d89c55762f2c31eca2be83dc5a7', type: "tel", disabled: this.disabled, name: this.name, value: this.phone, onChange: (event) => this.handleCountryInput(event), ref: el => this.phoneInput = el, enterkeyhint: "next", autocomplete: "tel", class: "s-tel-input-control tel-input s-ltr" }), index.h("span", { key: 'a44f133dc52d8ff2e8bc32286fde1492bf1706f8', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), index.h("input", { key: 'f2518dc05cc82c3d01bae282a552665bf1dfcf37', type: "hidden", name: "country_code", value: this.countryCode, ref: el => this.countryCodeInput = el, class: "country_code" })));
2538
+ return (index.h(index.Host, { key: 'd03d6361922175ab55e0f58fd54cbbc09f89e5e6', class: "s-tel-input" }, index.h("input", { key: '69a1fea1c843d4d36d6b0dd59131fa82f0cb62b6', type: "tel", disabled: this.disabled, name: this.name, value: this.phone, onChange: (event) => this.handleCountryInput(event), ref: el => this.phoneInput = el, enterkeyhint: "next", autocomplete: "tel", class: "s-tel-input-control tel-input s-ltr" }), index.h("span", { key: 'd627bceaf3d7e812a8bc727a12359495350d51b8', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), index.h("input", { key: '013c643d29f51c5ff35cd94ab62e4fcffbb8df0c', type: "hidden", name: "country_code", value: this.countryCode, ref: el => this.countryCodeInput = el, class: "country_code" })));
2539
2539
  }
2540
2540
  componentDidLoad() {
2541
2541
  this.initPromise = this.initTelInput();
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
 
8
8
  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e))for(t=0;t<e.length;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);else for(t in e)e[t]&&(n&&(n+=" "),n+=t);return n}function clsx(){for(var e,t,f=0,n="";f<arguments.length;)(e=arguments[f++])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
9
9
 
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
7
  var catalogRecommendations = require('./catalog-recommendations-Bxs1t6wk.js');
8
8
 
9
9
  const sallaBasketGapCss = "/*!twlt*/:host{display:block}.block{display:block}.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-basket-gap-entry{margin-top:1.25rem;margin-bottom:1.25rem;display:block;border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));padding:1.25rem}.s-basket-gap-title{margin-bottom:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:700}.s-basket-gap-list{display:flex;flex-direction:column}.s-basket-gap-list>:not([hidden])~:not([hidden]){--tw-divide-y-reverse:0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse));--tw-divide-opacity:1;border-color:rgb(243 244 246 / var(--tw-divide-opacity, 1))}.s-basket-gap-card{display:flex;flex-wrap:wrap;align-items:center;column-gap:0.75rem;row-gap:0.625rem;padding-top:1rem;padding-bottom:1rem}.s-basket-gap-card-image{height:4rem;width:4rem;flex-shrink:0;overflow:hidden;border-radius:0.375rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.s-basket-gap-card-image img{height:100%;width:100%;object-fit:cover}.s-basket-gap-card-info{display:flex;min-width:0px;flex:1 1 0%;flex-direction:column;gap:0.25rem}.s-basket-gap-card-actions{display:flex;width:100%;align-items:center;justify-content:flex-end;gap:0.5rem}@media (min-width: 640px){.s-basket-gap-card-actions{width:auto}}.s-basket-gap-card-name{font-size:0.875rem;line-height:1.25rem;font-weight:600;line-height:1.25;--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.s-basket-gap-card-name a:hover{color:var(--color-primary)}.s-basket-gap-card-price{font-size:0.875rem;line-height:1.25rem;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.s-basket-gap-card-sale-price{display:flex;align-items:center;gap:0.5rem}.s-basket-gap-card-sale-price span{font-size:0.875rem;line-height:1.25rem;font-weight:700;--tw-text-opacity:1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.s-basket-gap-card-sale-price del{font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1));text-decoration-line:line-through}.s-basket-gap-card-weight{font-size:0.75rem;line-height:1rem;--tw-text-opacity:1;color:rgb(156 163 175 / var(--tw-text-opacity, 1))}.s-basket-gap-card-offer{display:flex;flex-shrink:0;align-items:center;gap:0.25rem;border-radius:0.375rem;--tw-bg-opacity:1;background-color:rgb(240 253 244 / var(--tw-bg-opacity, 1));padding-left:9px;padding-right:9px;padding-top:3px;padding-bottom:3px;font-size:11px;font-weight:500;--tw-text-opacity:1;color:rgb(21 128 61 / var(--tw-text-opacity, 1))}.s-basket-gap-card-offer i{font-size:0.75rem;line-height:1rem}.s-basket-gap-card-offer span{font-weight:700;--tw-text-opacity:1 !important;color:rgb(31 41 55 / var(--tw-text-opacity, 1)) !important}.s-basket-gap-card-offer salla-count-down{flex-shrink:0}.s-basket-gap-card-offer salla-count-down:where([dir=\"ltr\"],[dir=\"ltr\"] *){margin-inline-start:0.25rem}.s-basket-gap-card-offer salla-count-down:where([dir=\"rtl\"],[dir=\"rtl\"] *){margin-inline-end:0.25rem}.s-basket-gap-card-offer .s-count-down-list{margin-left:-0px !important;margin-right:-0px !important;margin-bottom:0px !important;margin-top:0px !important;display:inline-flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start !important;column-gap:0px;--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.s-basket-gap-card-offer .s-count-down-list:where([dir=\"ltr\"],[dir=\"ltr\"] *){flex-direction:row-reverse !important}.s-basket-gap-card-offer .s-count-down-list:where([dir=\"rtl\"],[dir=\"rtl\"] *){flex-direction:row !important}.s-basket-gap-card-offer .s-count-down-item{position:relative !important;margin-left:0px !important;margin-right:0px !important;display:inline-flex !important;width:auto !important;flex:none !important;flex-grow:0 !important;flex-direction:row !important;align-items:center !important;justify-content:center !important;padding-top:0px !important;padding-bottom:0px !important;padding-left:0px !important;padding-right:0px !important;font-size:12px !important;font-weight:700 !important;line-height:1 !important;--tw-text-opacity:1 !important;color:rgb(21 128 61 / var(--tw-text-opacity, 1)) !important}.s-basket-gap-card-offer .s-count-down-item-value{display:inline-block !important;width:2ch !important;min-width:2ch !important;text-align:center;--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);line-height:1}.s-basket-gap-card-offer .s-count-down-item-label{display:none}.s-basket-gap-entry .s-basket-gap-card-offer.s-basket-gap-card-offer .s-count-down-item::before{content:none !important}.s-basket-gap-entry .s-basket-gap-card-offer.s-basket-gap-card-offer .s-count-down-item::after{content:none !important;position:static;left:auto;right:auto;transform:none}[dir='rtl'] .s-basket-gap-entry .s-basket-gap-card-offer.s-basket-gap-card-offer .s-count-down-item:not(:last-child)::after{content:':' !important;position:static;left:auto;right:auto;transform:none;margin-left:0.15rem;margin-right:0.15rem;color:#15803d;font-size:12px;font-weight:700;line-height:1}[dir='ltr'] .s-basket-gap-entry .s-basket-gap-card-offer.s-basket-gap-card-offer .s-count-down-item:not(:first-child)::after{content:':' !important;position:static;left:auto;right:auto;transform:none;margin-left:0.15rem;margin-right:0.15rem;color:#15803d;font-size:12px;font-weight:700;line-height:1}.s-basket-gap-card-btn{flex-shrink:0}.s-basket-gap-card-btn salla-button .s-button-btn{border-radius:var(--s-radius, 0.25rem);border-width:1px !important;border-color:var(--color-primary) !important;background-color:transparent !important;color:var(--color-primary) !important}.s-basket-gap-card-btn salla-button .s-button-btn:hover{background-color:var(--color-primary) !important;--tw-text-opacity:1 !important;color:rgb(255 255 255 / var(--tw-text-opacity, 1)) !important}.s-basket-gap-card-btn salla-button .s-button-loader:before{border-top-color:var(--color-primary) !important;border-left-color:var(--color-primary) !important;border-bottom-color:rgb(243 244 246 / var(--tw-border-opacity, 1)) !important;--tw-border-opacity:1 !important;border-right-color:rgb(243 244 246 / var(--tw-border-opacity, 1)) !important}.s-basket-gap-skeleton{display:flex;flex-direction:column;gap:0.75rem}.s-basket-gap-skeleton-card{display:flex;align-items:center;gap:0.75rem;padding-top:0.75rem;padding-bottom:0.75rem}.s-basket-gap-skeleton-info{display:flex;flex:1 1 0%;flex-direction:column;gap:0.5rem}";
@@ -3,8 +3,8 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-DBN0LueR.js');
7
- var helpers = require('./helpers-DBynEhOO.js');
6
+ var index = require('./index-CLrjVXN1.js');
7
+ var helpers = require('./helpers-DSseNQ1K.js');
8
8
  var location = require('./location-DIyESLuI.js');
9
9
  var search = require('./search-c7Aa7lM9.js');
10
10
 
@@ -495,10 +495,7 @@ const SallaBulletDelivery = class {
495
495
  }
496
496
  // Auto-select preselected branch if provided
497
497
  if (this.preselectedBranchId) {
498
- const branch = this.branches.find((b) => b.id === this.preselectedBranchId);
499
- if (branch) {
500
- this.selectedBranch = branch;
501
- }
498
+ this.preselectBranch(this.preselectedBranchId);
502
499
  }
503
500
  }
504
501
  // Prefill form data from session storage
@@ -949,15 +946,30 @@ const SallaBulletDelivery = class {
949
946
  async loadBranches() {
950
947
  this.loadingBranches = true;
951
948
  try {
952
- this.branches = await helpers.bulletDeliveryAPI.getBranches({
949
+ this.applyLoadedBranches(await helpers.bulletDeliveryAPI.getBranches({
953
950
  country_id: this.selectedCountry?.id,
954
- });
955
- this.filterBranches();
951
+ }));
956
952
  }
957
953
  finally {
958
954
  this.loadingBranches = false;
959
955
  }
960
956
  }
957
+ /**
958
+ * Store a freshly fetched branch list and reconcile the current selection with it.
959
+ * `selectedBranch` is a snapshot from selection time: when the refreshed list carries the
960
+ * same branch, swap in the fresh copy, and drop it if it is no longer selectable (INV-1407).
961
+ * A selection missing from the list (e.g. filtered out by a search) is left untouched.
962
+ */
963
+ applyLoadedBranches(branches) {
964
+ this.branches = branches;
965
+ if (this.selectedBranch) {
966
+ const fresh = branches.find((b) => b.id === this.selectedBranch?.id);
967
+ if (fresh) {
968
+ this.selectedBranch = helpers.isBranchSelectable(fresh) ? fresh : null;
969
+ }
970
+ }
971
+ this.filterBranches();
972
+ }
961
973
  filterBranches() {
962
974
  this.filteredBranches = helpers.filterBranches(this.branches, this.branchSearchQuery);
963
975
  }
@@ -984,13 +996,7 @@ const SallaBulletDelivery = class {
984
996
  if (country) {
985
997
  this.selectedCountry = country;
986
998
  this.updateNewAddressForm({ country_id: Number(country.id) });
987
- const branchId = helpers.getIntentBranchId(intent);
988
- if (branchId != null && this.branches.length > 0) {
989
- const branch = this.branches.find((b) => b.id === branchId);
990
- if (branch) {
991
- this.selectedBranch = branch;
992
- }
993
- }
999
+ this.preselectBranch(helpers.getIntentBranchId(intent));
994
1000
  }
995
1001
  }
996
1002
  }
@@ -1154,11 +1160,10 @@ const SallaBulletDelivery = class {
1154
1160
  return;
1155
1161
  this.loadingBranches = true;
1156
1162
  try {
1157
- this.branches = await helpers.bulletDeliveryAPI.getBranches({
1163
+ this.applyLoadedBranches(await helpers.bulletDeliveryAPI.getBranches({
1158
1164
  country_id: this.selectedCountry?.id,
1159
1165
  query,
1160
- });
1161
- this.filterBranches();
1166
+ }));
1162
1167
  }
1163
1168
  finally {
1164
1169
  this.loadingBranches = false;
@@ -1191,12 +1196,11 @@ const SallaBulletDelivery = class {
1191
1196
  async loadBranchesWithLocation(lat, lng) {
1192
1197
  this.loadingBranches = true;
1193
1198
  try {
1194
- this.branches = await helpers.bulletDeliveryAPI.getBranches({
1199
+ this.applyLoadedBranches(await helpers.bulletDeliveryAPI.getBranches({
1195
1200
  country_id: this.selectedCountry?.id,
1196
1201
  lat,
1197
1202
  lng,
1198
- });
1199
- this.filterBranches();
1203
+ }));
1200
1204
  // Auto-select country from first branch if no country is selected
1201
1205
  if (!this.selectedCountry && this.branches.length > 0) {
1202
1206
  const firstBranch = this.branches[0];
@@ -1253,6 +1257,18 @@ const SallaBulletDelivery = class {
1253
1257
  this.selectedBranch = branch;
1254
1258
  this.allocationOutOfCoverageMessage = null;
1255
1259
  }
1260
+ /**
1261
+ * Restore a remembered / event-provided branch — but only one the list renders as selectable,
1262
+ * so a branch that has closed since it was remembered is never silently preselected (INV-1407).
1263
+ */
1264
+ preselectBranch(branchId) {
1265
+ if (branchId == null)
1266
+ return;
1267
+ const branch = this.branches.find((b) => b.id === branchId);
1268
+ if (branch && helpers.isBranchSelectable(branch)) {
1269
+ this.selectedBranch = branch;
1270
+ }
1271
+ }
1256
1272
  handleSavedAddressSelect(address) {
1257
1273
  if (address.is_in_coverage === false) {
1258
1274
  // Show toast notification for out of coverage address
@@ -1492,13 +1508,7 @@ const SallaBulletDelivery = class {
1492
1508
  await this.loadBranches();
1493
1509
  }
1494
1510
  // Preselect branch from session storage if available
1495
- const branchId = helpers.getIntentBranchId(savedIntent);
1496
- if (branchId != null && this.branches.length > 0) {
1497
- const branch = this.branches.find((b) => b.id === branchId);
1498
- if (branch) {
1499
- this.selectedBranch = branch;
1500
- }
1501
- }
1511
+ this.preselectBranch(helpers.getIntentBranchId(savedIntent));
1502
1512
  }
1503
1513
  else if (tab === "address") {
1504
1514
  // Lazy-load saved addresses when switching to address tab (if not loaded yet).
@@ -1527,7 +1537,8 @@ const SallaBulletDelivery = class {
1527
1537
  }
1528
1538
  isConfirmDisabled() {
1529
1539
  if (this.activeTab === "branch") {
1530
- return !this.selectedBranch;
1540
+ // Backstop for any selection path: the allocation API rejects non-selectable branches (INV-1407).
1541
+ return !helpers.isBranchSelectable(this.selectedBranch);
1531
1542
  }
1532
1543
  if (this.activeTab === "address") {
1533
1544
  if (this.isLoggedIn && this.selectedSessionAddress) {
@@ -3068,18 +3079,18 @@ const SallaSearchableDropdown = class {
3068
3079
  render() {
3069
3080
  const hasSelection = this.selectedItem != null;
3070
3081
  const listboxId = `${this.inputId}-listbox`;
3071
- return (index.h(index.Host, { key: 'fc53e02e434040f760889983d900670231a40e48', class: "s-searchable-dropdown" }, index.h("div", { key: '86e6866e107164130b3db2ec1771bc88d0b97278', class: { 's-searchable-dropdown': true, 's-searchable-dropdown--open': this.isOpen } }, this.label && (index.h("label", { key: 'a3c11751fd38c9ac88ecec24e2ac610a9c22d485', class: "s-searchable-dropdown-label", htmlFor: this.inputId }, this.label, this.required && index.h("span", { key: '793e54f5dad4e402cfbaf9eb86302d524ef8c3f0', class: "s-searchable-dropdown-required" }, " *"))), index.h("div", { key: 'ba6be33f8cf0361868f38e03298a6f7ca65a014d', class: {
3082
+ return (index.h(index.Host, { key: '9b8ac693952ae27f7fecb0f848ef60f5778f0e75', class: "s-searchable-dropdown" }, index.h("div", { key: '2f10ce4a1aca3ff7299d8561a6dffc05b241b6b1', class: { 's-searchable-dropdown': true, 's-searchable-dropdown--open': this.isOpen } }, this.label && (index.h("label", { key: 'bf4f834506b01c388f961e71675dcff60fcab9d9', class: "s-searchable-dropdown-label", htmlFor: this.inputId }, this.label, this.required && index.h("span", { key: 'ccc2919fd2897f6f88009763c10e7e6b04818f5d', class: "s-searchable-dropdown-required" }, " *"))), index.h("div", { key: '4b3796c45068749c9ad6fcd7cd82289971abd6cb', class: {
3072
3083
  's-searchable-dropdown-trigger': true,
3073
3084
  's-searchable-dropdown-trigger--disabled': this.disabled || this.loading,
3074
3085
  's-searchable-dropdown-trigger--open': this.isOpen,
3075
- }, 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 ? (index.h("span", { class: "s-searchable-dropdown-trigger-text" }, this.getDisplayName(this.selectedItem))) : (index.h("span", { class: "s-searchable-dropdown-trigger-placeholder" }, this.placeholder)), index.h("i", { key: 'ee33669d9dceb59ba57a4ab884bd4bd361482fef', class: {
3086
+ }, 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 ? (index.h("span", { class: "s-searchable-dropdown-trigger-text" }, this.getDisplayName(this.selectedItem))) : (index.h("span", { class: "s-searchable-dropdown-trigger-placeholder" }, this.placeholder)), index.h("i", { key: '0f00911d4b31a3bc5607b3d80c75fa9161e57450', class: {
3076
3087
  'sicon-keyboard_arrow_down': true,
3077
3088
  's-searchable-dropdown-trigger-icon': true,
3078
3089
  's-searchable-dropdown-trigger-icon--open': this.isOpen,
3079
- }, "aria-hidden": "true" })), this.isOpen && (index.h("div", { key: '53beca7bfb0cb44612cbfead759c0681a77a0853', class: {
3090
+ }, "aria-hidden": "true" })), this.isOpen && (index.h("div", { key: 'e9d3ee8e3ce449038c9c24f664da1fd44cb140c9', class: {
3080
3091
  's-searchable-dropdown-panel': true,
3081
3092
  's-searchable-dropdown-panel--up': this.dropUp,
3082
- }, ref: (el) => (this.panelRef = el) }, this.searchable && (index.h("div", { key: 'b301dbd407c1128bc9baaed95bc5059d06047c09', class: "s-searchable-dropdown-search-wrap" }, index.h("i", { key: '3cb244ca449a075cbaa70e79a3ce5366eef2f570', class: "sicon-search s-searchable-dropdown-search-icon", "aria-hidden": "true" }), index.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 }))), index.h("div", { key: '05180ea74c8bbb95c9f19c3346b01c46f2faaa1e', id: listboxId, class: "s-searchable-dropdown-list s-scrollbar", role: "listbox" }, this.renderListContent()))))));
3093
+ }, ref: (el) => (this.panelRef = el) }, this.searchable && (index.h("div", { key: '21d3d0f542271255a57c7ae1171a2245f21db148', class: "s-searchable-dropdown-search-wrap" }, index.h("i", { key: '32b23853dce56095394b0f3f32a62aa05e803af2', class: "sicon-search s-searchable-dropdown-search-icon", "aria-hidden": "true" }), index.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 }))), index.h("div", { key: 'c89233e8d294fe583d9fb8c11c7bb26af5307ce3', id: listboxId, class: "s-searchable-dropdown-list s-scrollbar", role: "listbox" }, this.renderListContent()))))));
3083
3094
  }
3084
3095
  renderListContent() {
3085
3096
  if (this.searching || this.loading) {