@salla.sa/twilight-components 2.14.564 → 2.14.565

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 (473) hide show
  1. package/dist/cjs/{apple-pay-order-options-DVyeUqBh.js → apple-pay-order-options-B036Wu4O.js} +15 -6
  2. package/dist/cjs/{filepond-BNOYd8EE.js → filepond-BOtBFq7k.js} +1 -1
  3. package/dist/cjs/{filepond-plugin-file-poster-Bvm29Y0w.js → filepond-plugin-file-poster-DWqXLSRO.js} +1 -1
  4. package/dist/cjs/{filepond-plugin-file-validate-size-nYKqDcSE.js → filepond-plugin-file-validate-size-TkDVc9ih.js} +1 -1
  5. package/dist/cjs/{filepond-plugin-file-validate-type-C-YYy0Df.js → filepond-plugin-file-validate-type-B1TuLFJS.js} +1 -1
  6. package/dist/cjs/{filepond-plugin-image-edit-B72V6d0t.js → filepond-plugin-image-edit-BtLH803a.js} +1 -1
  7. package/dist/cjs/{filepond-plugin-image-exif-orientation-BH37qNAY.js → filepond-plugin-image-exif-orientation-BJvccc13.js} +1 -1
  8. package/dist/cjs/{filepond-plugin-image-preview-BIZNCf2q.js → filepond-plugin-image-preview-DPgKIIC8.js} +1 -1
  9. package/dist/cjs/{index-Di0mG8nk.js → index-BZ_aKmCD.js} +6 -6
  10. package/dist/cjs/{intlTelInput-DQ4Z6sxG.js → intlTelInput-CKLiJAA1.js} +1 -1
  11. package/dist/cjs/loader.cjs.js +2 -2
  12. package/dist/cjs/salla-accordion-body_2.cjs.entry.js +4 -4
  13. package/dist/cjs/salla-accordion_6.cjs.entry.js +3 -3
  14. package/dist/cjs/salla-add-product-button_5.cjs.entry.js +98 -18
  15. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  16. package/dist/cjs/salla-alert_2.cjs.entry.js +4 -4
  17. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  18. package/dist/cjs/salla-applied-filters.cjs.entry.js +1 -1
  19. package/dist/cjs/salla-apps-icons.cjs.entry.js +1 -1
  20. package/dist/cjs/salla-attachment-view_9.cjs.entry.js +18 -18
  21. package/dist/cjs/salla-badge.cjs.entry.js +2 -2
  22. package/dist/cjs/salla-basket-gap.cjs.entry.js +1 -1
  23. package/dist/cjs/salla-bullet-delivery_3.cjs.entry.js +46 -18
  24. package/dist/cjs/salla-cart-coupons.cjs.entry.js +3 -3
  25. package/dist/cjs/salla-cart-item-offers_2.cjs.entry.js +2 -2
  26. package/dist/cjs/salla-cart-summary-card.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-cashback-banner.cjs.entry.js +1 -1
  28. package/dist/cjs/salla-comment-factors.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-comment-form_9.cjs.entry.js +4 -4
  30. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  31. package/dist/cjs/salla-contacts.cjs.entry.js +1 -1
  32. package/dist/cjs/salla-cookies-bar.cjs.entry.js +1 -1
  33. package/dist/cjs/salla-count-down_2.cjs.entry.js +231 -42
  34. package/dist/cjs/salla-custom-fields.cjs.entry.js +1 -1
  35. package/dist/cjs/salla-delivery-promise.cjs.entry.js +1 -1
  36. package/dist/cjs/salla-edit-order-button.cjs.entry.js +1 -1
  37. package/dist/cjs/salla-filters-widget.cjs.entry.js +3 -3
  38. package/dist/cjs/salla-filters.cjs.entry.js +2 -2
  39. package/dist/cjs/salla-fulfillment-methods.cjs.entry.js +1 -1
  40. package/dist/cjs/salla-gifting.cjs.entry.js +4 -4
  41. package/dist/cjs/salla-hook.cjs.entry.js +2 -2
  42. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +1 -1
  43. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  44. package/dist/cjs/salla-list-tile.cjs.entry.js +2 -2
  45. package/dist/cjs/salla-localization-modal.cjs.entry.js +2 -2
  46. package/dist/cjs/salla-login-modal.cjs.entry.js +1 -1
  47. package/dist/cjs/salla-loyalty-banner_10.cjs.entry.js +15 -15
  48. package/dist/cjs/salla-loyalty-exchange-product-card.cjs.entry.js +3 -3
  49. package/dist/cjs/salla-loyalty-points-banner.cjs.entry.js +1 -1
  50. package/dist/cjs/salla-loyalty-points-history.cjs.entry.js +2 -2
  51. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +2 -2
  52. package/dist/cjs/salla-loyalty.cjs.entry.js +1 -1
  53. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +2 -2
  54. package/dist/cjs/salla-map_3.cjs.entry.js +4 -4
  55. package/dist/cjs/salla-menu.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  57. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +4 -4
  58. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +6 -6
  59. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +2 -2
  60. package/dist/cjs/salla-next-order-coupon.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-notification-item_2.cjs.entry.js +2 -2
  62. package/dist/cjs/salla-offer-modal.cjs.entry.js +2 -2
  63. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  64. package/dist/cjs/salla-order-branch.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-order-cancel.cjs.entry.js +1 -1
  66. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  67. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-order-details.cjs.entry.js +2 -2
  69. package/dist/cjs/salla-order-edit-item.cjs.entry.js +1 -1
  70. package/dist/cjs/salla-order-edit-product-card.cjs.entry.js +2 -2
  71. package/dist/cjs/salla-order-edit.cjs.entry.js +1 -1
  72. package/dist/cjs/salla-order-shipments.cjs.entry.js +1 -1
  73. package/dist/cjs/salla-order-summary.cjs.entry.js +2 -2
  74. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  75. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  76. package/dist/cjs/salla-payments.cjs.entry.js +3 -3
  77. package/dist/cjs/salla-placeholder.cjs.entry.js +2 -2
  78. package/dist/cjs/salla-price-range.cjs.entry.js +3 -3
  79. package/dist/cjs/salla-product-card-embed.cjs.entry.js +2 -2
  80. package/dist/cjs/salla-product-card.cjs.entry.js +6 -6
  81. package/dist/cjs/salla-product-size-guide.cjs.entry.js +3 -3
  82. package/dist/cjs/salla-products-list.cjs.entry.js +1 -1
  83. package/dist/cjs/salla-products-slider.cjs.entry.js +1 -1
  84. package/dist/cjs/salla-quick-order.cjs.entry.js +1 -1
  85. package/dist/cjs/salla-rating-modal-v2.cjs.entry.js +1 -1
  86. package/dist/cjs/salla-rating-modal.cjs.entry.js +1 -1
  87. package/dist/cjs/salla-review-factors-tags.cjs.entry.js +2 -2
  88. package/dist/cjs/salla-review-order-item.cjs.entry.js +1 -1
  89. package/dist/cjs/salla-scopes.cjs.entry.js +1 -1
  90. package/dist/cjs/salla-search.cjs.entry.js +1 -1
  91. package/dist/cjs/salla-skeleton.cjs.entry.js +2 -2
  92. package/dist/cjs/salla-social-share.cjs.entry.js +2 -2
  93. package/dist/cjs/salla-social.cjs.entry.js +2 -2
  94. package/dist/cjs/salla-tab-content_3.cjs.entry.js +4 -4
  95. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  96. package/dist/cjs/salla-tooltip.cjs.entry.js +2 -2
  97. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  98. package/dist/cjs/salla-user-menu.cjs.entry.js +1 -1
  99. package/dist/cjs/salla-user-profile.cjs.entry.js +1 -1
  100. package/dist/cjs/salla-user-settings.cjs.entry.js +2 -2
  101. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  102. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  103. package/dist/cjs/salla-wishlist-actions.cjs.entry.js +2 -2
  104. package/dist/cjs/twilight.cjs.js +2 -2
  105. package/dist/cjs/{vanilla-picker-D0dyZrxD.js → vanilla-picker-C7y_2HXu.js} +1 -1
  106. package/dist/collection/components/salla-accordion/salla-accordion-body.js +1 -1
  107. package/dist/collection/components/salla-accordion/salla-accordion-head.js +2 -2
  108. package/dist/collection/components/salla-accordion/salla-accordion.js +1 -1
  109. package/dist/collection/components/salla-add-product-button/salla-add-product-button.js +2 -2
  110. package/dist/collection/components/salla-alert/salla-alert.js +1 -1
  111. package/dist/collection/components/salla-badge/salla-badge.js +1 -1
  112. package/dist/collection/components/salla-booking-field/salla-booking-field.js +1 -1
  113. package/dist/collection/components/salla-bottom-alert/salla-bottom-alert.js +2 -2
  114. package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.css +7 -0
  115. package/dist/collection/components/salla-bullet-delivery/salla-bullet-delivery.js +40 -12
  116. package/dist/collection/components/salla-cart-coupons/salla-cart-coupons.js +2 -2
  117. package/dist/collection/components/salla-cart-summary/salla-cart-summary.js +1 -1
  118. package/dist/collection/components/salla-color-picker/salla-color-picker.js +1 -1
  119. package/dist/collection/components/salla-comment-form/salla-comment-form.js +1 -1
  120. package/dist/collection/components/salla-conditional-fields/salla-conditional-fields.js +1 -1
  121. package/dist/collection/components/salla-count-down/salla-count-down.js +1 -1
  122. package/dist/collection/components/salla-datetime-picker/salla-datetime-picker.js +1 -1
  123. package/dist/collection/components/salla-file-upload/salla-file-upload.js +2 -2
  124. package/dist/collection/components/salla-filters/salla-filters.js +1 -1
  125. package/dist/collection/components/salla-filters-widget/salla-filters-widget.js +2 -2
  126. package/dist/collection/components/salla-gifting/salla-gifting.js +2 -2
  127. package/dist/collection/components/salla-hook/salla-hook.js +1 -1
  128. package/dist/collection/components/salla-list-tile/salla-list-tile.js +1 -1
  129. package/dist/collection/components/salla-loading/salla-loading.js +1 -1
  130. package/dist/collection/components/salla-localization-modal/salla-localization-modal.js +1 -1
  131. package/dist/collection/components/salla-loyalty/salla-loyalty-prize-item.js +1 -1
  132. package/dist/collection/components/salla-loyalty-points-history/salla-loyalty-points-history.js +1 -1
  133. package/dist/collection/components/salla-loyalty-program/salla-loyalty-exchange-product-card.js +2 -2
  134. package/dist/collection/components/salla-loyalty-program/salla-loyalty-hero.js +3 -3
  135. package/dist/collection/components/salla-loyalty-program/salla-loyalty-point.js +4 -4
  136. package/dist/collection/components/salla-loyalty-program/salla-loyalty-reward.js +2 -2
  137. package/dist/collection/components/salla-loyalty-program/salla-reward-card.js +1 -1
  138. package/dist/collection/components/salla-loyalty-program/salla-reward-details.js +3 -3
  139. package/dist/collection/components/salla-loyalty-program/salla-reward-exchange.js +1 -1
  140. package/dist/collection/components/salla-maintenance-alert/salla-maintenance-alert.js +1 -1
  141. package/dist/collection/components/salla-map/salla-map.js +3 -3
  142. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-cart.js +1 -1
  143. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-details.js +2 -2
  144. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-options-modal.js +4 -4
  145. package/dist/collection/components/salla-multiple-bundle-product/components/salla-multiple-bundle-product-slider.js +1 -1
  146. package/dist/collection/components/salla-multiple-bundle-product/salla-multiple-bundle-product.js +1 -1
  147. package/dist/collection/components/salla-notifications/salla-notification-item.js +1 -1
  148. package/dist/collection/components/salla-offer-modal/salla-offer-modal.js +1 -1
  149. package/dist/collection/components/salla-order-details/salla-order-details.js +1 -1
  150. package/dist/collection/components/salla-order-edit/salla-order-edit-product-card.js +1 -1
  151. package/dist/collection/components/salla-order-options-modal/apple-pay-order-options.js +15 -6
  152. package/dist/collection/components/salla-order-options-modal/free-product-payload.js +49 -0
  153. package/dist/collection/components/salla-order-options-modal/order-options-gate.js +33 -8
  154. package/dist/collection/components/salla-order-options-modal/salla-order-options-modal.css +192 -15
  155. package/dist/collection/components/salla-order-options-modal/salla-order-options-modal.js +260 -48
  156. package/dist/collection/components/salla-order-summary/salla-order-summary.js +1 -1
  157. package/dist/collection/components/salla-payments/salla-payments.js +2 -2
  158. package/dist/collection/components/salla-placeholder/salla-placeholder.js +1 -1
  159. package/dist/collection/components/salla-price-range/salla-price-range.js +2 -2
  160. package/dist/collection/components/salla-product-availability/salla-product-availability.js +1 -1
  161. package/dist/collection/components/salla-product-card/salla-product-card.js +5 -5
  162. package/dist/collection/components/salla-product-card-embed/salla-product-card-embed.js +1 -1
  163. package/dist/collection/components/salla-product-size-guide/salla-product-size-guide.js +2 -2
  164. package/dist/collection/components/salla-quantity-input/salla-quantity-input.js +1 -1
  165. package/dist/collection/components/salla-quick-buy/salla-quick-buy.js +15 -5
  166. package/dist/collection/components/salla-review-card/salla-review-card.js +1 -1
  167. package/dist/collection/components/salla-review-factors-tags/salla-review-factors-tags.js +1 -1
  168. package/dist/collection/components/salla-reviews-page/salla-reviews-page.js +1 -1
  169. package/dist/collection/components/salla-searchable-dropdown/salla-searchable-dropdown.js +4 -4
  170. package/dist/collection/components/salla-skeleton/salla-skeleton.js +1 -1
  171. package/dist/collection/components/salla-social/salla-social.js +1 -1
  172. package/dist/collection/components/salla-social-share/salla-social-share.js +1 -1
  173. package/dist/collection/components/salla-tabs/salla-tab-content.js +1 -1
  174. package/dist/collection/components/salla-tabs/salla-tab-header.js +1 -1
  175. package/dist/collection/components/salla-tabs/salla-tabs.js +1 -1
  176. package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
  177. package/dist/collection/components/salla-tooltip/salla-tooltip.js +1 -1
  178. package/dist/collection/components/salla-user-settings/salla-user-settings.js +1 -1
  179. package/dist/collection/components/salla-wishlist-actions/salla-wishlist-actions.js +1 -1
  180. package/dist/components/apple-pay-order-options.js +15 -6
  181. package/dist/components/index.js +2 -2
  182. package/dist/components/salla-accordion-body2.js +1 -1
  183. package/dist/components/salla-accordion-head2.js +2 -2
  184. package/dist/components/salla-accordion2.js +1 -1
  185. package/dist/components/salla-add-product-button2.js +35 -11
  186. package/dist/components/salla-alert.js +1 -1
  187. package/dist/components/salla-badge2.js +1 -1
  188. package/dist/components/salla-booking-field2.js +1 -1
  189. package/dist/components/salla-bottom-alert.js +2 -2
  190. package/dist/components/salla-bullet-delivery.js +41 -13
  191. package/dist/components/salla-cart-coupons.js +2 -2
  192. package/dist/components/salla-cart-summary.js +1 -1
  193. package/dist/components/salla-color-picker2.js +1 -1
  194. package/dist/components/salla-comment-form2.js +1 -1
  195. package/dist/components/salla-conditional-fields2.js +1 -1
  196. package/dist/components/salla-count-down2.js +1 -1
  197. package/dist/components/salla-datetime-picker2.js +1 -1
  198. package/dist/components/salla-file-upload2.js +2 -2
  199. package/dist/components/salla-filters-widget2.js +2 -2
  200. package/dist/components/salla-filters.js +1 -1
  201. package/dist/components/salla-gifting.js +2 -2
  202. package/dist/components/salla-hook.js +1 -1
  203. package/dist/components/salla-list-tile2.js +1 -1
  204. package/dist/components/salla-loading2.js +1 -1
  205. package/dist/components/salla-localization-modal.js +1 -1
  206. package/dist/components/salla-loyalty-exchange-product-card2.js +2 -2
  207. package/dist/components/salla-loyalty-hero2.js +3 -3
  208. package/dist/components/salla-loyalty-point2.js +4 -4
  209. package/dist/components/salla-loyalty-points-history.js +1 -1
  210. package/dist/components/salla-loyalty-prize-item.js +1 -1
  211. package/dist/components/salla-loyalty-reward.js +2 -2
  212. package/dist/components/salla-maintenance-alert.js +1 -1
  213. package/dist/components/salla-map2.js +3 -3
  214. package/dist/components/salla-multiple-bundle-product-cart2.js +1 -1
  215. package/dist/components/salla-multiple-bundle-product-details2.js +2 -2
  216. package/dist/components/salla-multiple-bundle-product-options-modal2.js +4 -4
  217. package/dist/components/salla-multiple-bundle-product-slider2.js +1 -1
  218. package/dist/components/salla-multiple-bundle-product.js +1 -1
  219. package/dist/components/salla-notification-item2.js +1 -1
  220. package/dist/components/salla-offer-modal.js +1 -1
  221. package/dist/components/salla-order-details.js +1 -1
  222. package/dist/components/salla-order-edit-product-card.js +1 -1
  223. package/dist/components/salla-order-options-modal2.js +234 -40
  224. package/dist/components/salla-order-summary.js +1 -1
  225. package/dist/components/salla-payments.js +2 -2
  226. package/dist/components/salla-placeholder2.js +1 -1
  227. package/dist/components/salla-price-range2.js +2 -2
  228. package/dist/components/salla-product-availability2.js +1 -1
  229. package/dist/components/salla-product-card-embed.js +1 -1
  230. package/dist/components/salla-product-card2.js +5 -5
  231. package/dist/components/salla-product-size-guide.js +2 -2
  232. package/dist/components/salla-quantity-input2.js +1 -1
  233. package/dist/components/salla-quick-buy2.js +62 -6
  234. package/dist/components/salla-review-card2.js +1 -1
  235. package/dist/components/salla-review-factors-tags2.js +1 -1
  236. package/dist/components/salla-reviews-page.js +1 -1
  237. package/dist/components/salla-reward-card2.js +1 -1
  238. package/dist/components/salla-reward-details2.js +3 -3
  239. package/dist/components/salla-reward-exchange2.js +1 -1
  240. package/dist/components/salla-searchable-dropdown2.js +4 -4
  241. package/dist/components/salla-skeleton2.js +1 -1
  242. package/dist/components/salla-social-share2.js +1 -1
  243. package/dist/components/salla-social.js +1 -1
  244. package/dist/components/salla-tab-content2.js +1 -1
  245. package/dist/components/salla-tab-header2.js +1 -1
  246. package/dist/components/salla-tabs2.js +1 -1
  247. package/dist/components/salla-tel-input2.js +1 -1
  248. package/dist/components/salla-tooltip2.js +1 -1
  249. package/dist/components/salla-user-settings.js +1 -1
  250. package/dist/components/salla-wishlist-actions.js +1 -1
  251. package/dist/esm/{apple-pay-order-options-Bg2HuLRr.js → apple-pay-order-options-s0kn7yr8.js} +15 -6
  252. package/dist/esm/{filepond-DGYIRZjn.js → filepond-UQa5G279.js} +1 -1
  253. package/dist/esm/{filepond-plugin-file-poster-que4aL4t.js → filepond-plugin-file-poster-DuTq7hGp.js} +1 -1
  254. package/dist/esm/{filepond-plugin-file-validate-size-DUa2Ha9F.js → filepond-plugin-file-validate-size-CmrW5aIv.js} +1 -1
  255. package/dist/esm/{filepond-plugin-file-validate-type-CsE-FZ5e.js → filepond-plugin-file-validate-type-C4wrsR8y.js} +1 -1
  256. package/dist/esm/{filepond-plugin-image-edit-CCEkPzwH.js → filepond-plugin-image-edit-CFUxRm-l.js} +1 -1
  257. package/dist/esm/{filepond-plugin-image-exif-orientation-C6ooGIlL.js → filepond-plugin-image-exif-orientation-eHT2qXpP.js} +1 -1
  258. package/dist/esm/{filepond-plugin-image-preview-C1ziopep.js → filepond-plugin-image-preview-CX0Er_bj.js} +1 -1
  259. package/dist/esm/{index-DXda9rxP.js → index-BC0OSCdw.js} +6 -6
  260. package/dist/esm/{intlTelInput-DhSUIkQX.js → intlTelInput-DnPEdiN8.js} +1 -1
  261. package/dist/esm/loader.js +3 -3
  262. package/dist/esm/salla-accordion-body_2.entry.js +4 -4
  263. package/dist/esm/salla-accordion_6.entry.js +3 -3
  264. package/dist/esm/salla-add-product-button_5.entry.js +98 -18
  265. package/dist/esm/salla-advertisement.entry.js +1 -1
  266. package/dist/esm/salla-alert_2.entry.js +4 -4
  267. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  268. package/dist/esm/salla-applied-filters.entry.js +1 -1
  269. package/dist/esm/salla-apps-icons.entry.js +1 -1
  270. package/dist/esm/salla-attachment-view_9.entry.js +18 -18
  271. package/dist/esm/salla-badge.entry.js +2 -2
  272. package/dist/esm/salla-basket-gap.entry.js +1 -1
  273. package/dist/esm/salla-bullet-delivery_3.entry.js +46 -18
  274. package/dist/esm/salla-cart-coupons.entry.js +3 -3
  275. package/dist/esm/salla-cart-item-offers_2.entry.js +2 -2
  276. package/dist/esm/salla-cart-summary-card.entry.js +1 -1
  277. package/dist/esm/salla-cashback-banner.entry.js +1 -1
  278. package/dist/esm/salla-comment-factors.entry.js +1 -1
  279. package/dist/esm/salla-comment-form_9.entry.js +4 -4
  280. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  281. package/dist/esm/salla-contacts.entry.js +1 -1
  282. package/dist/esm/salla-cookies-bar.entry.js +1 -1
  283. package/dist/esm/salla-count-down_2.entry.js +231 -42
  284. package/dist/esm/salla-custom-fields.entry.js +1 -1
  285. package/dist/esm/salla-delivery-promise.entry.js +1 -1
  286. package/dist/esm/salla-edit-order-button.entry.js +1 -1
  287. package/dist/esm/salla-filters-widget.entry.js +3 -3
  288. package/dist/esm/salla-filters.entry.js +2 -2
  289. package/dist/esm/salla-fulfillment-methods.entry.js +1 -1
  290. package/dist/esm/salla-gifting.entry.js +4 -4
  291. package/dist/esm/salla-hook.entry.js +2 -2
  292. package/dist/esm/salla-infinite-scroll.entry.js +1 -1
  293. package/dist/esm/salla-installment.entry.js +1 -1
  294. package/dist/esm/salla-list-tile.entry.js +2 -2
  295. package/dist/esm/salla-localization-modal.entry.js +2 -2
  296. package/dist/esm/salla-login-modal.entry.js +1 -1
  297. package/dist/esm/salla-loyalty-banner_10.entry.js +15 -15
  298. package/dist/esm/salla-loyalty-exchange-product-card.entry.js +3 -3
  299. package/dist/esm/salla-loyalty-points-banner.entry.js +1 -1
  300. package/dist/esm/salla-loyalty-points-history.entry.js +2 -2
  301. package/dist/esm/salla-loyalty-prize-item.entry.js +2 -2
  302. package/dist/esm/salla-loyalty.entry.js +1 -1
  303. package/dist/esm/salla-maintenance-alert.entry.js +2 -2
  304. package/dist/esm/salla-map_3.entry.js +4 -4
  305. package/dist/esm/salla-menu.entry.js +1 -1
  306. package/dist/esm/salla-metadata.entry.js +1 -1
  307. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +4 -4
  308. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +6 -6
  309. package/dist/esm/salla-multiple-bundle-product.entry.js +2 -2
  310. package/dist/esm/salla-next-order-coupon.entry.js +1 -1
  311. package/dist/esm/salla-notification-item_2.entry.js +2 -2
  312. package/dist/esm/salla-offer-modal.entry.js +2 -2
  313. package/dist/esm/salla-offer.entry.js +1 -1
  314. package/dist/esm/salla-order-branch.entry.js +1 -1
  315. package/dist/esm/salla-order-cancel.entry.js +1 -1
  316. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  317. package/dist/esm/salla-order-details-options.entry.js +1 -1
  318. package/dist/esm/salla-order-details.entry.js +2 -2
  319. package/dist/esm/salla-order-edit-item.entry.js +1 -1
  320. package/dist/esm/salla-order-edit-product-card.entry.js +2 -2
  321. package/dist/esm/salla-order-edit.entry.js +1 -1
  322. package/dist/esm/salla-order-shipments.entry.js +1 -1
  323. package/dist/esm/salla-order-summary.entry.js +2 -2
  324. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  325. package/dist/esm/salla-orders.entry.js +1 -1
  326. package/dist/esm/salla-payments.entry.js +3 -3
  327. package/dist/esm/salla-placeholder.entry.js +2 -2
  328. package/dist/esm/salla-price-range.entry.js +3 -3
  329. package/dist/esm/salla-product-card-embed.entry.js +2 -2
  330. package/dist/esm/salla-product-card.entry.js +6 -6
  331. package/dist/esm/salla-product-size-guide.entry.js +3 -3
  332. package/dist/esm/salla-products-list.entry.js +1 -1
  333. package/dist/esm/salla-products-slider.entry.js +1 -1
  334. package/dist/esm/salla-quick-order.entry.js +1 -1
  335. package/dist/esm/salla-rating-modal-v2.entry.js +1 -1
  336. package/dist/esm/salla-rating-modal.entry.js +1 -1
  337. package/dist/esm/salla-review-factors-tags.entry.js +2 -2
  338. package/dist/esm/salla-review-order-item.entry.js +1 -1
  339. package/dist/esm/salla-scopes.entry.js +1 -1
  340. package/dist/esm/salla-search.entry.js +1 -1
  341. package/dist/esm/salla-skeleton.entry.js +2 -2
  342. package/dist/esm/salla-social-share.entry.js +2 -2
  343. package/dist/esm/salla-social.entry.js +2 -2
  344. package/dist/esm/salla-tab-content_3.entry.js +4 -4
  345. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  346. package/dist/esm/salla-tooltip.entry.js +2 -2
  347. package/dist/esm/salla-trust-badges.entry.js +1 -1
  348. package/dist/esm/salla-user-menu.entry.js +1 -1
  349. package/dist/esm/salla-user-profile.entry.js +1 -1
  350. package/dist/esm/salla-user-settings.entry.js +2 -2
  351. package/dist/esm/salla-verify.entry.js +1 -1
  352. package/dist/esm/salla-wallet.entry.js +1 -1
  353. package/dist/esm/salla-wishlist-actions.entry.js +2 -2
  354. package/dist/esm/twilight.js +3 -3
  355. package/dist/esm/{vanilla-picker-udlectbY.js → vanilla-picker-BCMDEwEz.js} +1 -1
  356. package/dist/twilight/{p-27bd4595.entry.js → p-00ade9ab.entry.js} +1 -1
  357. package/dist/twilight/{p-d5569734.entry.js → p-02b4c53f.entry.js} +1 -1
  358. package/dist/twilight/{p-c110b53d.entry.js → p-040a60fa.entry.js} +1 -1
  359. package/dist/twilight/{p-ffad3361.entry.js → p-077bba56.entry.js} +1 -1
  360. package/dist/twilight/p-08283d58.entry.js +4 -0
  361. package/dist/twilight/{p-35d7d846.entry.js → p-092e3574.entry.js} +1 -1
  362. package/dist/twilight/{p-7990ce68.entry.js → p-0ce7ec43.entry.js} +1 -1
  363. package/dist/twilight/{p-e92f48e4.entry.js → p-0cff28ab.entry.js} +1 -1
  364. package/dist/twilight/{p-51d05d98.entry.js → p-128c99f8.entry.js} +1 -1
  365. package/dist/twilight/{p-95d0541d.entry.js → p-12d5856d.entry.js} +1 -1
  366. package/dist/twilight/{p-14f8cac1.entry.js → p-1678e509.entry.js} +1 -1
  367. package/dist/twilight/{p-6d73e7a6.entry.js → p-1b61fdb7.entry.js} +1 -1
  368. package/dist/twilight/{p-bc18aeb4.entry.js → p-1c5df94c.entry.js} +1 -1
  369. package/dist/twilight/{p-d1a4f83d.entry.js → p-1e3f96f6.entry.js} +1 -1
  370. package/dist/twilight/{p-f3282946.entry.js → p-217e8d6b.entry.js} +1 -1
  371. package/dist/twilight/{p-d1b36139.entry.js → p-22454aab.entry.js} +1 -1
  372. package/dist/twilight/{p-a369942e.entry.js → p-28cadf49.entry.js} +1 -1
  373. package/dist/twilight/{p-09ae59b1.entry.js → p-29683d1e.entry.js} +1 -1
  374. package/dist/twilight/{p-CCYJtFjS.js → p-2LY0VWl8.js} +1 -1
  375. package/dist/twilight/{p-b2599a06.entry.js → p-2ade195d.entry.js} +1 -1
  376. package/dist/twilight/{p-a9f688de.entry.js → p-2c3bd065.entry.js} +1 -1
  377. package/dist/twilight/{p-b383c367.entry.js → p-2ddf12c9.entry.js} +1 -1
  378. package/dist/twilight/{p-0c831653.entry.js → p-2e68382e.entry.js} +1 -1
  379. package/dist/twilight/{p-aced78e3.entry.js → p-39df1337.entry.js} +1 -1
  380. package/dist/twilight/{p-60e22c9f.entry.js → p-3cae6c0b.entry.js} +1 -1
  381. package/dist/twilight/{p-8a504c71.entry.js → p-3ccaf56b.entry.js} +1 -1
  382. package/dist/twilight/{p-3b4177b3.entry.js → p-477fbe60.entry.js} +1 -1
  383. package/dist/twilight/{p-3e5f2344.entry.js → p-4e53c800.entry.js} +1 -1
  384. package/dist/twilight/{p-0ae6220d.entry.js → p-4ec4c29d.entry.js} +1 -1
  385. package/dist/twilight/p-4f9e25a2.entry.js +4 -0
  386. package/dist/twilight/{p-47e2e8e9.entry.js → p-4fe6b957.entry.js} +1 -1
  387. package/dist/twilight/{p-c4d21bf1.entry.js → p-512dffba.entry.js} +1 -1
  388. package/dist/twilight/{p-c99455cb.entry.js → p-5258eb5b.entry.js} +1 -1
  389. package/dist/twilight/{p-4187ecdc.entry.js → p-52abc216.entry.js} +1 -1
  390. package/dist/twilight/{p-c98741e6.entry.js → p-55c0c4d5.entry.js} +1 -1
  391. package/dist/twilight/{p-cd9d31d0.entry.js → p-55ecefaf.entry.js} +1 -1
  392. package/dist/twilight/{p-f8aee2bb.entry.js → p-5912c685.entry.js} +1 -1
  393. package/dist/twilight/{p-58861477.entry.js → p-596695cb.entry.js} +1 -1
  394. package/dist/twilight/{p-3a9d92aa.entry.js → p-59a7515b.entry.js} +1 -1
  395. package/dist/twilight/{p-a0320551.entry.js → p-5aff8807.entry.js} +1 -1
  396. package/dist/twilight/p-5de36f11.entry.js +4 -0
  397. package/dist/twilight/{p-759da507.entry.js → p-60f4c8b0.entry.js} +1 -1
  398. package/dist/twilight/{p-13435c91.entry.js → p-66460e90.entry.js} +1 -1
  399. package/dist/twilight/{p-96e50b68.entry.js → p-6ef17286.entry.js} +1 -1
  400. package/dist/twilight/{p-5dc298b5.entry.js → p-6fe42bfe.entry.js} +1 -1
  401. package/dist/twilight/{p-09eb8f1c.entry.js → p-717258c4.entry.js} +1 -1
  402. package/dist/twilight/{p-8d8a30d2.entry.js → p-73795f51.entry.js} +1 -1
  403. package/dist/twilight/{p-aab0f1d2.entry.js → p-77540bba.entry.js} +1 -1
  404. package/dist/twilight/{p-6329be65.entry.js → p-7785635d.entry.js} +1 -1
  405. package/dist/twilight/{p-2b8c9426.entry.js → p-77a708f4.entry.js} +1 -1
  406. package/dist/twilight/{p-725e95f8.entry.js → p-7a7b9917.entry.js} +1 -1
  407. package/dist/twilight/{p-afbd2ee2.entry.js → p-810fca9f.entry.js} +1 -1
  408. package/dist/twilight/{p-383a27f9.entry.js → p-84aa1f0f.entry.js} +1 -1
  409. package/dist/twilight/{p-7aecccea.entry.js → p-85df7952.entry.js} +1 -1
  410. package/dist/twilight/{p-18ad8678.entry.js → p-8628e5d7.entry.js} +1 -1
  411. package/dist/twilight/{p-a5dd48f9.entry.js → p-87638789.entry.js} +1 -1
  412. package/dist/twilight/{p-2cff009d.entry.js → p-8872ae84.entry.js} +1 -1
  413. package/dist/twilight/p-8b6d7dbc.entry.js +4 -0
  414. package/dist/twilight/{p-bd7a187b.entry.js → p-8bd738dd.entry.js} +1 -1
  415. package/dist/twilight/{p-e03fb8ac.entry.js → p-8e3ceb05.entry.js} +1 -1
  416. package/dist/twilight/{p-5b167270.entry.js → p-8ea86806.entry.js} +1 -1
  417. package/dist/twilight/{p-9c9a704d.entry.js → p-913f0e67.entry.js} +1 -1
  418. package/dist/twilight/{p-4b2378e8.entry.js → p-928bdd13.entry.js} +1 -1
  419. package/dist/twilight/{p-ab5584df.entry.js → p-94bab301.entry.js} +1 -1
  420. package/dist/twilight/{p-a99c5099.entry.js → p-9549fe7d.entry.js} +1 -1
  421. package/dist/twilight/{p-OiLV6a-C.js → p-B4qhqpMO.js} +1 -1
  422. package/dist/twilight/{p-DXda9rxP.js → p-BC0OSCdw.js} +1 -1
  423. package/dist/twilight/{p-Bye5nKth.js → p-BQ2uPuvt.js} +1 -1
  424. package/dist/twilight/{p-DAbrkC6H.js → p-BqsrYTv0.js} +1 -1
  425. package/dist/twilight/{p-iokZGmGz.js → p-CJ9itb04.js} +1 -1
  426. package/dist/twilight/{p-C83L8L5O.js → p-CbE9Aa2n.js} +1 -1
  427. package/dist/twilight/{p-DszU5yJL.js → p-Cfn7Ybxi.js} +1 -1
  428. package/dist/twilight/{p-C3FesFcg.js → p-DdkjVgyM.js} +1 -1
  429. package/dist/twilight/{p-CZemiB_f.js → p-Dz1PaIS6.js} +1 -1
  430. package/dist/twilight/{p-bab0d2fe.entry.js → p-a4bea3d2.entry.js} +1 -1
  431. package/dist/twilight/{p-041823c4.entry.js → p-a72038c1.entry.js} +1 -1
  432. package/dist/twilight/{p-de5faf0c.entry.js → p-a7340ba8.entry.js} +1 -1
  433. package/dist/twilight/{p-885e3acd.entry.js → p-a94e4fc8.entry.js} +1 -1
  434. package/dist/twilight/{p-c0d863ac.entry.js → p-ad92b347.entry.js} +1 -1
  435. package/dist/twilight/{p-fa924a5c.entry.js → p-b65a15cb.entry.js} +1 -1
  436. package/dist/twilight/p-b92eb535.entry.js +4 -0
  437. package/dist/twilight/{p-493d0982.entry.js → p-bb8f6167.entry.js} +1 -1
  438. package/dist/twilight/{p-dfb539d9.entry.js → p-bbfd1991.entry.js} +1 -1
  439. package/dist/twilight/{p-9357db15.entry.js → p-beb9023e.entry.js} +1 -1
  440. package/dist/twilight/{p-cc9c88ba.entry.js → p-ca540632.entry.js} +1 -1
  441. package/dist/twilight/{p-50b7f8c5.entry.js → p-d32ba4d6.entry.js} +1 -1
  442. package/dist/twilight/{p-77d328bb.entry.js → p-dbe87ffe.entry.js} +1 -1
  443. package/dist/twilight/{p-1e69337d.entry.js → p-dd4e8765.entry.js} +1 -1
  444. package/dist/twilight/{p-72268480.entry.js → p-de3cd06e.entry.js} +1 -1
  445. package/dist/twilight/{p-6351de41.entry.js → p-e0600f10.entry.js} +1 -1
  446. package/dist/twilight/{p-bd138449.entry.js → p-e0a3937a.entry.js} +1 -1
  447. package/dist/twilight/{p-490d5cf2.entry.js → p-e5ae8c3b.entry.js} +1 -1
  448. package/dist/twilight/{p-ca2cb7e6.entry.js → p-e67ba69c.entry.js} +1 -1
  449. package/dist/twilight/p-e77d4dbc.entry.js +4 -0
  450. package/dist/twilight/{p-51d3e25b.entry.js → p-eb5d5edc.entry.js} +1 -1
  451. package/dist/twilight/{p-12ef8d71.entry.js → p-ed39f8fd.entry.js} +1 -1
  452. package/dist/twilight/{p-63d4e082.entry.js → p-f1b8972a.entry.js} +1 -1
  453. package/dist/twilight/{p-eba2649a.entry.js → p-f66a6f43.entry.js} +1 -1
  454. package/dist/twilight/{p-9e4da911.entry.js → p-f9aa9b5b.entry.js} +1 -1
  455. package/dist/twilight/{p-118b88d0.entry.js → p-f9d778ec.entry.js} +1 -1
  456. package/dist/twilight/{p-841aa8c8.entry.js → p-fcf32a4c.entry.js} +24 -24
  457. package/dist/twilight/{p-7efec4d0.entry.js → p-fd38337e.entry.js} +1 -1
  458. package/dist/twilight/p-s0kn7yr8.js +4 -0
  459. package/dist/twilight/twilight.esm.js +1 -1
  460. package/dist/types/components/salla-order-options-modal/apple-pay-order-options.d.ts +9 -4
  461. package/dist/types/components/salla-order-options-modal/free-product-payload.d.ts +19 -0
  462. package/dist/types/components/salla-order-options-modal/order-options-gate.d.ts +11 -1
  463. package/dist/types/components/salla-order-options-modal/salla-order-options-modal.d.ts +76 -21
  464. package/dist/types/components/salla-quick-buy/salla-quick-buy.d.ts +2 -0
  465. package/dist/types/components.d.ts +59 -22
  466. package/package.json +5 -5
  467. package/dist/twilight/p-1069f299.entry.js +0 -4
  468. package/dist/twilight/p-2796cee2.entry.js +0 -4
  469. package/dist/twilight/p-3d466e85.entry.js +0 -4
  470. package/dist/twilight/p-5287c01f.entry.js +0 -4
  471. package/dist/twilight/p-5ab972ac.entry.js +0 -4
  472. package/dist/twilight/p-6f42cb42.entry.js +0 -4
  473. package/dist/twilight/p-Bg2HuLRr.js +0 -4
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.js');
7
7
  var cart = require('./cart-DSvlJXCH.js');
8
8
  var Helper = require('./Helper-N5wrs9vm.js');
9
9
  var catalogRecommendations = require('./catalog-recommendations-HZzTK7-G.js');
@@ -11,7 +11,7 @@ var bellRing = require('./bell-ring-BfKPinNo.js');
11
11
  var interfaces = require('./interfaces-Bh7W0bEU.js');
12
12
  var check = require('./check-x3w3-gpj.js');
13
13
  var camera = require('./camera-DytepEoK.js');
14
- var applePayOrderOptions = require('./apple-pay-order-options-DVyeUqBh.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 -->
@@ -150,9 +150,60 @@ async function canCompleteApplePay(currency = 'SAR') {
150
150
  }
151
151
  }
152
152
 
153
+ /**
154
+ * Rewrite a cart-add payload from the flat single-product shape into the products[] shape, so
155
+ * the main product and every configured free product are added in one request:
156
+ *
157
+ * id=X&quantity=N
158
+ * ↓
159
+ * products[0][id]=X&products[0][quantity]=N
160
+ * products[1][id]=Y₁&products[1][quantity]=1&products[1][options][o₁]=v₁
161
+ * products[2][id]=Y₂&products[2][quantity]=2&products[2][options][o₂]=v₂
162
+ *
163
+ * X has to move into products[0] rather than being left as a bare `id`, otherwise the gifts are
164
+ * the only entries in the array. Bracket-notation string keys, not nested objects: the payload
165
+ * may be backed by FormData (which stringifies anything non-scalar to "[object Object]"), and
166
+ * MiniCheckoutRequest::prepareForValidation() expands these keys back into nested arrays.
167
+ *
168
+ * Only the payload is touched — `data.id`, which builds the request URL, is left alone.
169
+ */
170
+ function injectFreeProductsIntoPayload(payload, freeProducts) {
171
+ if (!payload || !freeProducts?.length)
172
+ return;
173
+ // Two payload shapes reach this: the cart's FormDataWrapper (get/set/delete) from
174
+ // `cart::before.add.item`, and the plain object `getElementSallaData()` hands the Apple Pay
175
+ // flow. Normalize the three accessors so both work — a `set?.()` on a bare object would
176
+ // silently no-op and drop every gift.
177
+ const hasApi = typeof payload.set === 'function';
178
+ const get = (k) => (hasApi ? payload.get?.(k) : payload[k]);
179
+ const set = (k, v) => { hasApi ? payload.set(k, v) : (payload[k] = v); };
180
+ const del = (k) => { hasApi ? payload.delete?.(k) : delete payload[k]; };
181
+ // Read before deleting — X's own id/quantity become products[0].
182
+ const mainId = get('id');
183
+ const mainQty = get('quantity') || '1';
184
+ if (mainId) {
185
+ del('id');
186
+ del('quantity');
187
+ set('products[0][id]', String(mainId));
188
+ set('products[0][quantity]', String(mainQty));
189
+ }
190
+ freeProducts.forEach((free, index) => {
191
+ const slot = mainId ? index + 1 : index;
192
+ set(`products[${slot}][id]`, String(free.productId));
193
+ set(`products[${slot}][quantity]`, String(free.quantity));
194
+ Object.entries(free.options).forEach(([optionId, value]) => {
195
+ set(`products[${slot}][options][${optionId}]`, String(value));
196
+ });
197
+ });
198
+ }
199
+
153
200
  /**
154
201
  * Order-options gate for the fast-checkout widget — keeps <salla-add-product-button> thin.
155
202
  * Intercepts the widget click → runs the order-options modal → injects the result → re-fires the click.
203
+ *
204
+ * CP-2836: also handles advance_free_product — a LIST of free offer products (one entry per
205
+ * qualifying offer, priority-ordered and capped by the store's offers limit). Each gets its own
206
+ * wizard step, and every configured one is injected into the mini-checkout payload.
156
207
  */
157
208
  const PRODUCT_FORM_SELECTOR = 'form.product-form';
158
209
  class OrderOptionsGate {
@@ -216,8 +267,14 @@ class OrderOptionsGate {
216
267
  return;
217
268
  }
218
269
  widget.classList.remove('s-add-product-button-busy');
219
- const items = resp?.data?.order_options || [];
220
- if (!items.length) {
270
+ const orderItems = resp?.data?.order_options || [];
271
+ // Null when the store setting is off or no offer qualifies; otherwise a list of
272
+ // { product, options, offer_name, quantity } entries.
273
+ const advFreeProduct = resp?.data?.advance_free_product;
274
+ const freeProducts = (Array.isArray(advFreeProduct) ? advFreeProduct : [])
275
+ .filter((entry) => Array.isArray(entry?.options) && entry.options.length);
276
+ // Nothing to collect — proceed straight to checkout.
277
+ if (!orderItems.length && !freeProducts.length) {
221
278
  this.resumeWidget(widget);
222
279
  return;
223
280
  }
@@ -226,8 +283,12 @@ class OrderOptionsGate {
226
283
  : Number(resp?.data?.products?.[0]?.price?.amount) || 0;
227
284
  const modal = this.ensureModal();
228
285
  try {
229
- const result = await modal.open({ orderOptions: items, basePrice });
230
- this.injectIntoMini(result?.orderOptions || []);
286
+ const result = await modal.open({
287
+ orderOptions: orderItems,
288
+ freeProducts,
289
+ basePrice,
290
+ });
291
+ this.injectIntoMini(result?.orderOptions || [], result?.freeProducts || []);
231
292
  this.resumeWidget(widget);
232
293
  }
233
294
  catch {
@@ -246,16 +307,26 @@ class OrderOptionsGate {
246
307
  }
247
308
  return true;
248
309
  }
249
- /** Inject order_options into the next cart-add payload via `cart::before.add.item` (one-shot, scoped to productId). */
250
- injectIntoMini(orderOptions) {
251
- if (!orderOptions.length)
310
+ /**
311
+ * Inject collected options into the next cart-add payload via `cart::before.add.item` (one-shot).
312
+ *
313
+ * Order options → set as `order_options` on the existing payload wrapper.
314
+ * Free products → the payload is rewritten into the products[] shape; see
315
+ * ./free-product-payload for the exact mapping and why.
316
+ */
317
+ injectIntoMini(orderOptions, freeProducts) {
318
+ if (!orderOptions.length && !freeProducts.length)
252
319
  return;
253
320
  const productId = this.productId;
254
321
  const onceHandler = (eventData) => {
255
322
  if (String(eventData?.id) !== String(productId))
256
323
  return;
257
324
  try {
258
- eventData?.payload?.set?.('order_options', orderOptions);
325
+ const payload = eventData?.payload;
326
+ if (orderOptions.length) {
327
+ payload?.set?.('order_options', orderOptions);
328
+ }
329
+ injectFreeProductsIntoPayload(payload, freeProducts);
259
330
  }
260
331
  finally {
261
332
  salla.event.off('cart::before.add.item', onceHandler);
@@ -503,9 +574,9 @@ const SallaAddProductButton = class {
503
574
  }
504
575
  componentDidRender() {
505
576
  // Wire the order-options gate to the fast-checkout widget once it renders (logic lives in OrderOptionsGate).
506
- // Only when the merchant enabled order options; otherwise the widget runs the normal fast-checkout flow.
577
+ // Always attach so the gate can intercept for both order options AND advance free product options
578
+ // (CP-2836). The gate fetches product/options on click and resumes immediately when nothing is needed.
507
579
  if (!this.orderOptionsGateAttached && this.productId
508
- && salla.config.get('store.settings.order_options.mandatory', false)
509
580
  && OrderOptionsGate.attach(this.host, this.productId)) {
510
581
  this.orderOptionsGateAttached = true;
511
582
  }
@@ -841,7 +912,7 @@ const SallaProductAvailability = class {
841
912
  field.nextElementSibling['innerText'] = '* ' + errorMsg;
842
913
  }
843
914
  render() {
844
- return (index.h(index.Host, { key: 'ccb098126e7809a6386ff38c74dfa0f00f64deeb', class: "s-product-availability-wrap" }, this.isSubscribedToProduct
915
+ return (index.h(index.Host, { key: '646195e9982d709d58b12eae7ee0649f85a76d93', class: "s-product-availability-wrap" }, this.isSubscribedToProduct
845
916
  ? index.h("div", { class: "s-product-availability-subscribed" }, index.h("span", { innerHTML: bellRing.BellRing, class: "s-product-availability-subs-icon" }), salla.lang.get('pages.products.notify_availability_success'))
846
917
  :
847
918
  index.h("salla-button", { width: "wide", onClick: () => this.isUser ? this.submit() : this.openModel() }, salla.lang.get('pages.products.notify_availability')), this.isUser || this.isSubscribedToProduct ? '' : this.renderModal()));
@@ -3428,6 +3499,8 @@ const SallaQuickBuy = class {
3428
3499
  this.options = {};
3429
3500
  /** Modal selections, merged into the quick-purchase payload. */
3430
3501
  this.collectedOrderOptions = [];
3502
+ /** Free offer products the shopper configured in the wizard, for the products[] payload. */
3503
+ this.collectedFreeProducts = [];
3431
3504
  /** Flips true after the first onStartedSession so the second dispatch begins. */
3432
3505
  this.optionsResolved = false;
3433
3506
  /** PDP price + selected order-option prices (from the modal). */
@@ -3437,9 +3510,10 @@ const SallaQuickBuy = class {
3437
3510
  this.quickBuy = salla.lang.get('pages.products.buy_now');
3438
3511
  /** Apple Pay onStartedSession: first call defers begin() to run the OO check; second (resolved) begins. */
3439
3512
  this.handleApplePaySessionStarted = (session) => {
3440
- // Order options disabled → let Apple Pay begin normally, as if the feature didn't exist.
3441
- if (!salla.config.get('store.settings.order_options.mandatory', false))
3442
- return false;
3513
+ // Previously gated on `order_options.mandatory`, which is unrelated to CP-2836: a store with
3514
+ // free-product options but mandatory order options off would skip the check entirely and get
3515
+ // the wizard on Quick Buy but nothing on Apple Pay. resolveApplePayOrderOptions() begins the
3516
+ // session untouched when the fetch finds nothing, so running it always is safe.
3443
3517
  if (this.optionsResolved)
3444
3518
  return false;
3445
3519
  this.optionsResolved = true;
@@ -3453,8 +3527,9 @@ const SallaQuickBuy = class {
3453
3527
  this.pendingApplePaySession = null;
3454
3528
  },
3455
3529
  discardPendingSession: () => { this.pendingApplePaySession = null; },
3456
- onSubmit: (selections, total) => {
3530
+ onSubmit: (selections, total, freeProducts) => {
3457
3531
  this.collectedOrderOptions = selections;
3532
+ this.collectedFreeProducts = freeProducts || [];
3458
3533
  this.applePayAmount = total;
3459
3534
  this.settlePayment();
3460
3535
  },
@@ -3476,6 +3551,7 @@ const SallaQuickBuy = class {
3476
3551
  return;
3477
3552
  this.optionsResolved = false;
3478
3553
  this.collectedOrderOptions = [];
3554
+ this.collectedFreeProducts = [];
3479
3555
  this.applePayAmount = 0;
3480
3556
  this.settlePayment();
3481
3557
  }
@@ -3512,6 +3588,10 @@ const SallaQuickBuy = class {
3512
3588
  data.id = this.productId;
3513
3589
  data.source = 'buy_now';
3514
3590
  }
3591
+ // After `id` is set, not before: the rewrite promotes it to products[0] and appends each
3592
+ // configured gift as products[N]. checkout/mini is the same MiniCheckoutRequest endpoint the
3593
+ // fast-checkout widget posts to, so the bracket-notation contract is identical.
3594
+ injectFreeProductsIntoPayload(data, this.collectedFreeProducts);
3515
3595
  // if the store doesn't have Apple Pay , just create a cart and then redirect to check out page
3516
3596
  if (!this.isApplePayActive) {
3517
3597
  return salla.api.request('checkout/mini', data, 'post')
@@ -3708,7 +3788,7 @@ const SallaQuickBuy = class {
3708
3788
  });
3709
3789
  }
3710
3790
  render() {
3711
- return index.h(index.Host, { key: 'fd28f7292f396779cbe6ae4d5986ab187be38c48' }, this.quickBuyButton());
3791
+ return index.h(index.Host, { key: '928e447f7f5c03f64897ffdd3df639408ec74c24' }, this.quickBuyButton());
3712
3792
  }
3713
3793
  quickBuyButton() {
3714
3794
  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-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.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-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.js');
7
7
  var cart = require('./cart-DSvlJXCH.js');
8
8
  var image = require('./image-BoZ6Hums.js');
9
9
 
@@ -36,7 +36,7 @@ const SallaAlert = class {
36
36
  }
37
37
  }
38
38
  render() {
39
- return (index.h(index.Host, { key: 'e26a52cc275ac4c2e4090c113cb7e7d4d578fc11', class: `s-alert-wrapper s-alert-${this.variant}` }, index.h("span", { key: 'bdb1c6693b226a4e136e89640fcc19fbefc6e29e', class: "s-alert-icon" }, this.renderIcon()), index.h("span", { key: 'de8997f9617e74fc082ae9603bf16eac4c0a4b17', class: "s-alert-text" }, this.message, index.h("slot", { key: '37fb1adba1fa7f0226143250632cf20b514ee06b' }))));
39
+ return (index.h(index.Host, { key: '053085e619a62bc641cf05e5fab4c3d601560d4b', class: `s-alert-wrapper s-alert-${this.variant}` }, index.h("span", { key: '8c9b20d9382b0e9eaec53b769c98c73df01043b6', class: "s-alert-icon" }, this.renderIcon()), index.h("span", { key: '0ab4176e253bfe191c4115c6d4bcdf815895e746', class: "s-alert-text" }, this.message, index.h("slot", { key: 'd4f428d1d47ddf977d0363c0476e7190ef680857' }))));
40
40
  }
41
41
  };
42
42
  SallaAlert.style = sallaAlertCss;
@@ -186,9 +186,9 @@ const SallaBottomAlert = class {
186
186
  }
187
187
  render() {
188
188
  const hasTemplate = this.template && typeof this.template === 'object' && Object.keys(this.template).length > 0;
189
- return (index.h(index.Host, { key: '1e598df3c91be1e357fc5d771061ec386573f968', class: `s-bottom-alert-wrapper ${hasTemplate ? 's-bottom-alert-wrapper-with-template' : ''}` }, hasTemplate && (index.h("div", { key: '20a0173dfa6a01b793f8e1e9416d295ee4e61783', class: "s-bottom-alert-logo-section" }, index.h("img", { key: '2c9042f0ce022aeb9b2879496ec2837ed14dfe9f', src: "https://cdn.salla.network/images/logo/logo-light.svg", alt: "Salla", class: "s-bottom-alert-logo" }), index.h("span", { key: '69c2bc09acca8a535d2f982131ccc09d65ea44e6', class: "s-bottom-alert-logo-text" }, this.readyStores))), index.h("div", { key: '553122bac6f1f11c2bcc41a92ac798b3701ebfb9', class: "s-bottom-alert-content" }, index.h("div", { key: 'e0df96405998b70c15a8320c8400fa75db77d041', class: "flex items-center gap-2" }, index.h("div", { key: '26f241c725c763dfc25f58cdcd0f2979571a2061', class: "s-bottom-alert-icon" }, this.icon ? index.h("i", { class: this.icon }) : index.h("i", { innerHTML: infoIcon })), index.h("div", { key: '5e6ba42a2924aec3b99050e8f53634716023a535', class: "s-bottom-alert-message" }, this.message ? (this.message) : hasTemplate ? (index.h("span", { class: "flex flex-wrap items-center gap-1" }, this.defaultMessage, index.h("span", { class: {
189
+ return (index.h(index.Host, { key: '00d1b1e0b98318096f366dfa13c43df13d95df1c', class: `s-bottom-alert-wrapper ${hasTemplate ? 's-bottom-alert-wrapper-with-template' : ''}` }, hasTemplate && (index.h("div", { key: '01079527fba6e46eb5e893e64b68e66f35f12c2f', class: "s-bottom-alert-logo-section" }, index.h("img", { key: '49fd2f67e97ded7ff6240573b825dcea349e47f8', src: "https://cdn.salla.network/images/logo/logo-light.svg", alt: "Salla", class: "s-bottom-alert-logo" }), index.h("span", { key: '998216dbcfb5381c94ef3b94ddfa2334ccfd24ac', class: "s-bottom-alert-logo-text" }, this.readyStores))), index.h("div", { key: '68bd744c9b41847ca757f1127610c84e3eededf6', class: "s-bottom-alert-content" }, index.h("div", { key: '2dd6195b822a6e076fffddc8fb851292f97e8074', class: "flex items-center gap-2" }, index.h("div", { key: '67ea932ac092fa207b1888f7641d8733c5109f01', class: "s-bottom-alert-icon" }, this.icon ? index.h("i", { class: this.icon }) : index.h("i", { innerHTML: infoIcon })), index.h("div", { key: '5ea417ca4e00f9a3e19902d84192a9f788c1e75b', class: "s-bottom-alert-message" }, this.message ? (this.message) : hasTemplate ? (index.h("span", { class: "flex flex-wrap items-center gap-1" }, this.defaultMessage, index.h("span", { class: {
190
190
  's-bottom-alert-message-highlight': true,
191
- }, "aria-label": "Developer" }, this.salla), index.h("span", { innerHTML: salla.money(this.template.price) }))) : (this.defaultMessage))), this.type !== 'banner' && (index.h("div", { key: '44c4d9499736d84da97b640b8ab063a6b9dd6d3c', class: hasTemplate ? 's-bottom-alert-actions-group' : 's-bottom-alert-action' }, hasTemplate ? (this.loading ? (index.h("salla-loading", { size: "20" })) : (index.h("div", { class: "s-bottom-alert-actions-group-container" }, index.h("a", { class: "s-bottom-alert-action-link", onClick: () => this.handleAction() }, this.actionLabel || this.moreDetailsLabel), this.templateData?.link ? (index.h("button", { type: "button", class: "s-bottom-alert-action-purchase-button", onClick: () => window.open(this.templateData?.link, '_blank') }, this.buyTheTemplate)) : null))) : (index.h("salla-button", { href: this.actionUrl, size: "medium", onClick: () => this.handleAction(), width: "normal" }, this.actionLabel || this.defaultActionLabel)))), this.type === 'popup' && this.popup())));
191
+ }, "aria-label": "Developer" }, this.salla), index.h("span", { innerHTML: salla.money(this.template.price) }))) : (this.defaultMessage))), this.type !== 'banner' && (index.h("div", { key: '06f2d2949b3a5864151eb96378fc8f82373397a7', class: hasTemplate ? 's-bottom-alert-actions-group' : 's-bottom-alert-action' }, hasTemplate ? (this.loading ? (index.h("salla-loading", { size: "20" })) : (index.h("div", { class: "s-bottom-alert-actions-group-container" }, index.h("a", { class: "s-bottom-alert-action-link", onClick: () => this.handleAction() }, this.actionLabel || this.moreDetailsLabel), this.templateData?.link ? (index.h("button", { type: "button", class: "s-bottom-alert-action-purchase-button", onClick: () => window.open(this.templateData?.link, '_blank') }, this.buyTheTemplate)) : null))) : (index.h("salla-button", { href: this.actionUrl, size: "medium", onClick: () => this.handleAction(), width: "normal" }, this.actionLabel || this.defaultActionLabel)))), this.type === 'popup' && this.popup())));
192
192
  }
193
193
  get host() { return index.getElement(this); }
194
194
  };
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.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-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.js');
7
7
  var Helper = require('./Helper-N5wrs9vm.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-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.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-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.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');
@@ -518,7 +518,7 @@ const SallaBookingField = class {
518
518
  return (index.h("span", { class: "s-booking-field-reservations-time" }, index.h("i", { class: "s-booking-field-reservations-icon", innerHTML: TimeIcon }), index.h("span", null, reservation.from_timestamp, " - ", reservation.to_timestamp)));
519
519
  }
520
520
  render() {
521
- return (index.h(index.Host, { key: '97d7af398f0e3041370af5df39ab41b9b2747022' }, index.h("div", { key: 'a4aca7ce81e085029b2d3fb6ab5a368b7dd4b87c', class: "s-booking-field-main" }, this.option.required || this.reservations.length > 0 ? index.h("div", { class: "s-booking-field-price" }, index.h("span", { innerHTML: salla.money(this.option.price) })) : '', index.h("salla-button", { key: '9ade71d36f15f5af95b9f0e95c345334c5d99c19', class: "s-booking-field-book-now", size: "small", loaderPosition: "center", fill: "outline", onClick: event => this.openBookingModal(event, false) }, index.h("span", { key: '1875a0b7a70603ba85923376bc66c39d1c1168ce', class: "s-booking-field-book-now-content" }, index.h("span", { key: '7de71f32842c8c713b736f12818f8942bbd4aa9d', innerHTML: BookingTime }), this.reservations.length ? this.editLabel : this.bookNowLabel))), this.reservations.length > 0 && (index.h("div", { key: '4fa722814153b4c678e7e9634ac877ea579a65c7', class: "s-booking-field-reservations" }, this.reservations.map((reservation, index$1) => (index.h("div", { key: index$1, class: "s-booking-field-reservations-item" }, this.renderReservationDate(reservation), this.renderReservationTime(reservation)))))), index.h("input", { key: '2f3593d856b57a27b9f8a875e814e30eead058f6', class: "s-hidden", name: this.option.name, required: this.option.required, value: JSON.stringify(this.reservations) === '[]' ? '' : JSON.stringify(this.reservations), ref: reservations => this.reservationsInput = reservations }), this.iframeReady && this.bookingModal()));
521
+ return (index.h(index.Host, { key: '2ccdcbee3a61bfa69e1e272dca9e993cd568baf8' }, index.h("div", { key: 'b26b71c2d9ac60e84461e54b4979c5e89e87e437', class: "s-booking-field-main" }, this.option.required || this.reservations.length > 0 ? index.h("div", { class: "s-booking-field-price" }, index.h("span", { innerHTML: salla.money(this.option.price) })) : '', index.h("salla-button", { key: '739e1d72691af1760caa732090057b24c751a807', class: "s-booking-field-book-now", size: "small", loaderPosition: "center", fill: "outline", onClick: event => this.openBookingModal(event, false) }, index.h("span", { key: 'c00e5db1bd56c66c2b72db3371c748fa9fa10602', class: "s-booking-field-book-now-content" }, index.h("span", { key: 'd85c983123460c3f528ab6aea7b6c57bb9cb0f0f', innerHTML: BookingTime }), this.reservations.length ? this.editLabel : this.bookNowLabel))), this.reservations.length > 0 && (index.h("div", { key: 'b94321aaad303ab7aa21f629b8c9de458209346b', class: "s-booking-field-reservations" }, this.reservations.map((reservation, index$1) => (index.h("div", { key: index$1, class: "s-booking-field-reservations-item" }, this.renderReservationDate(reservation), this.renderReservationTime(reservation)))))), index.h("input", { key: 'aa18bd55cfd8903cfe66655ed4737854aab6da75', class: "s-hidden", name: this.option.name, required: this.option.required, value: JSON.stringify(this.reservations) === '[]' ? '' : JSON.stringify(this.reservations), ref: reservations => this.reservationsInput = reservations }), this.iframeReady && this.bookingModal()));
522
522
  }
523
523
  get host() { return index.getElement(this); }
524
524
  };
@@ -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-D0dyZrxD.js'); }).then(function (n) { return n.vanillaPicker; }).then(mod => {
710
+ this.pickerReady = Promise.resolve().then(function () { return require('./vanilla-picker-C7y_2HXu.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,
@@ -727,7 +727,7 @@ const SallaColorPicker = class {
727
727
  });
728
728
  }
729
729
  render() {
730
- return (index.h(index.Host, { key: '516a09b2d219b7c12dd251c68e6e55a9a9f7624b', class: "s-color-picker-main" }, index.h("slot", { key: 'ce684e4b8a8a80710688e3f0c0e43271069fc920', name: "widget" }, index.h("div", { key: 'f95ff1d709d58e22a4a74ccc35f8db2e17be7e38', class: "s-color-picker-widget" }, index.h("div", { key: 'fd2347378990972269557593a7182f2bf4cd9f98', class: "s-color-picker-widget-canvas", ref: dv => (this.canvas = dv) }), index.h("span", { key: 'e22a7ed6738b5fcbc22453e5b091eeeb7720719a', innerHTML: keyboard_arrow_down.ArrowDown }))), index.h("input", { key: 'b3f55c713a626808c6f36e4c1454abc26c97cb6e', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => (this.colorInput = color) })));
730
+ return (index.h(index.Host, { key: 'acb6aaa4e5a53c81e4f603e2d6bf3000961bcb88', class: "s-color-picker-main" }, index.h("slot", { key: 'b924c02b25d3b306e4a162c029d41f94282f8313', name: "widget" }, index.h("div", { key: '0f525e98176b4ca0c0c54e0fe68bb86ac4ceae7c', class: "s-color-picker-widget" }, index.h("div", { key: '8860d1ea0a223b7839fd9629eaa5a7fb6a394fd3', class: "s-color-picker-widget-canvas", ref: dv => (this.canvas = dv) }), index.h("span", { key: '62c01df67c954a68a15f55b1f127cda50640958c', innerHTML: keyboard_arrow_down.ArrowDown }))), index.h("input", { key: '257d51b2d8d635761b1a9ecb5545cd0f66de18af', class: "s-hidden", name: this.name, required: this.required, value: this.color, ref: color => (this.colorInput = color) })));
731
731
  }
732
732
  componentDidLoad() {
733
733
  if (this.canvas)
@@ -876,7 +876,7 @@ const SallaConditionalFields = class {
876
876
  });
877
877
  }
878
878
  render() {
879
- return (index.h(index.Host, { key: 'badbb24a38a68127a6880ab4dbe0b0ae4730b11d' }, index.h("slot", { key: 'a9bdc41d3ded750f0ac5b0e4b5dea3618e02286a' })));
879
+ return (index.h(index.Host, { key: 'b26437717cccf1d61e1fa16541794c8e55817730' }, index.h("slot", { key: '898c850d6d7c5c081dc5a65a6f8f8a984547af9f' })));
880
880
  }
881
881
  get host() { return index.getElement(this); }
882
882
  };
@@ -1088,7 +1088,7 @@ const SallaDatetimePicker = class {
1088
1088
  }
1089
1089
  }
1090
1090
  render() {
1091
- return index.h("div", { key: '10ac16506ca2b2b2a94227887a8d0b6593d7ac17', class: "s-datetime-picker" }, index.h("input", { key: 'fad4a5677edf21d9bd9a977392ebaf4ae2ad3b7b', type: "datetime", name: this.name, value: this.value, required: this.required, disabled: this.disabled, placeholder: this.placeholder, class: "s-datetime-picker-input", ref: (el) => this.dateInput = el }));
1091
+ return index.h("div", { key: '2e14070685e9a876e6d5d16baef06006a15c2a53', class: "s-datetime-picker" }, index.h("input", { key: '777a487061a0509de86df589bcdfa9b32cdd5572', type: "datetime", name: this.name, value: this.value, required: this.required, disabled: this.disabled, placeholder: this.placeholder, class: "s-datetime-picker-input", ref: (el) => this.dateInput = el }));
1092
1092
  }
1093
1093
  async componentDidLoad() {
1094
1094
  // Load flatpickr before initializing
@@ -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-BNOYd8EE.js'); }).then(function (n) { return n.filepond; }),
1172
- Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-size-nYKqDcSE.js'); }).then(function (n) { return n.filepondPluginFileValidateSize; }),
1173
- Promise.resolve().then(function () { return require('./filepond-plugin-image-exif-orientation-BH37qNAY.js'); }).then(function (n) { return n.filepondPluginImageExifOrientation; }),
1174
- Promise.resolve().then(function () { return require('./filepond-plugin-image-preview-BIZNCf2q.js'); }).then(function (n) { return n.filepondPluginImagePreview; }),
1175
- Promise.resolve().then(function () { return require('./filepond-plugin-image-edit-B72V6d0t.js'); }).then(function (n) { return n.filepondPluginImageEdit; }),
1176
- Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-type-C-YYy0Df.js'); }).then(function (n) { return n.filepondPluginFileValidateType; }),
1177
- Promise.resolve().then(function () { return require('./filepond-plugin-file-poster-Bvm29Y0w.js'); }).then(function (n) { return n.filepondPluginFilePoster; })
1171
+ Promise.resolve().then(function () { return require('./filepond-BOtBFq7k.js'); }).then(function (n) { return n.filepond; }),
1172
+ Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-size-TkDVc9ih.js'); }).then(function (n) { return n.filepondPluginFileValidateSize; }),
1173
+ Promise.resolve().then(function () { return require('./filepond-plugin-image-exif-orientation-BJvccc13.js'); }).then(function (n) { return n.filepondPluginImageExifOrientation; }),
1174
+ Promise.resolve().then(function () { return require('./filepond-plugin-image-preview-DPgKIIC8.js'); }).then(function (n) { return n.filepondPluginImagePreview; }),
1175
+ Promise.resolve().then(function () { return require('./filepond-plugin-image-edit-BtLH803a.js'); }).then(function (n) { return n.filepondPluginImageEdit; }),
1176
+ Promise.resolve().then(function () { return require('./filepond-plugin-file-validate-type-B1TuLFJS.js'); }).then(function (n) { return n.filepondPluginFileValidateType; }),
1177
+ Promise.resolve().then(function () { return require('./filepond-plugin-file-poster-DWqXLSRO.js'); }).then(function (n) { return n.filepondPluginFilePoster; })
1178
1178
  ]);
1179
1179
  this.FilePond = FilePondModule;
1180
1180
  // Register plugins
@@ -2037,12 +2037,12 @@ const SallaFileUpload = class {
2037
2037
  this.revokeAllPreviewObjectUrls();
2038
2038
  }
2039
2039
  render() {
2040
- return (index.h(index.Host, { key: '9c9bb99746270f2511bd86344a135d05f9b3cf29', class: {
2040
+ return (index.h(index.Host, { key: '4e2eaa6ea15e69930a1caac393575a98da537505', class: {
2041
2041
  "s-file-upload": true,
2042
2042
  "s-file-upload-profile-image": this.profileImage,
2043
2043
  "s-file-upload-multiple": this.allowMultiple,
2044
2044
  "s-file-upload-has-gallery": this.usesGalleryPreview(),
2045
- } }, index.h("input", { key: 'd033124b1829ee4b9f0c4d44041a525e73769b77', type: "file", name: this.name, ref: ele => this.fileUploader = ele, required: this.required, class: "s-file-upload-wrapper s-file-upload-input", accept: this.accept }), this.allowMultiple && this.showMaxCountHint ? index.h("div", { class: "s-file-upload-hint s-hidden" }, this.max_count_hint(this.getTotalMaxFiles())) : '', index.h("input", { key: '95608637f6b52dabbad4a7374d329549cb6d3862', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.getHiddenInputValue(), ref: input => this.hiddenInput = input }), this.renderPreviewGallery()));
2045
+ } }, index.h("input", { key: 'a2e82319893d3cc05316b66d4cf8afdc62fed9ad', type: "file", name: this.name, ref: ele => this.fileUploader = ele, required: this.required, class: "s-file-upload-wrapper s-file-upload-input", accept: this.accept }), this.allowMultiple && this.showMaxCountHint ? index.h("div", { class: "s-file-upload-hint s-hidden" }, this.max_count_hint(this.getTotalMaxFiles())) : '', index.h("input", { key: '8fd655d5318ef96a32d5f5238677068a14f4bb2e', class: "s-hidden", name: 'hidden-' + this.name, required: this.required, value: this.getHiddenInputValue(), ref: input => this.hiddenInput = input }), this.renderPreviewGallery()));
2046
2046
  }
2047
2047
  async componentDidLoad() {
2048
2048
  await Salla.onReady();
@@ -2386,7 +2386,7 @@ const SallaQuantityInput = class {
2386
2386
  if (!inputAttributes['aria-label'] && !inputAttributes['aria-labelledby']) {
2387
2387
  inputAttributes['aria-label'] = salla.lang.getWithDefault('common.elements.quantity', 'Quantity');
2388
2388
  }
2389
- return (index.h(index.Host, { key: 'c797988f98c583df0064468e39f622d6e56e24e2', class: "s-quantity-input" }, index.h("div", { key: 'de47e2fda231074d7d7d0787dfda9cf5499f843e', class: "s-quantity-input-container" }, index.h("button", { key: '7c9e1918d5cbb682c1e64d59250fb9240966b8b0', onClick: () => this.increase(), class: "s-quantity-input-increase-button s-quantity-input-button", type: "button", "aria-label": salla.lang.getWithDefault('common.elements.increase_quantity', 'Increase quantity') }, !this.hasIncrementSlot ? index.h("span", { innerHTML: minus.plusIcon }) : '', index.h("slot", { key: 'a3ee0a9ca52089113b5af350b167a37118a20893', name: "increment-button" })), index.h("input", { key: '6137f675da24a5ef3325ec333f66299319c21e16', class: "s-quantity-input-input", ...inputAttributes, ref: (el) => this.textInput = el, onInput: (event) => this.setValue(event.target.value), inputMode: "numeric", pattern: "[0-9]*", min: "1", readOnly: this.disableInput, value: this.quantity }), index.h("button", { key: '64d016e0fcb7339d0125c4d1f66862cb0331c296', class: "s-quantity-input-decrease-button s-quantity-input-button", onClick: () => this.decrease(), type: "button", "aria-label": salla.lang.getWithDefault('common.elements.decrease_quantity', 'Decrease quantity') }, !this.hasDecrementSlot ? index.h("span", { innerHTML: minus.minusIcon }) : '', index.h("slot", { key: 'd7f3859f72897db514c77eb0119680e00574902c', name: "decrement-button" })))));
2389
+ return (index.h(index.Host, { key: 'bf0882609ec0e164d8280789ee6deeaadeb3e484', class: "s-quantity-input" }, index.h("div", { key: 'c69afe51313f69250454cf6cf72dba89fb1f92e2', class: "s-quantity-input-container" }, index.h("button", { key: '8a02d3452f9727278acae90f1017eed65033c0a3', onClick: () => this.increase(), class: "s-quantity-input-increase-button s-quantity-input-button", type: "button", "aria-label": salla.lang.getWithDefault('common.elements.increase_quantity', 'Increase quantity') }, !this.hasIncrementSlot ? index.h("span", { innerHTML: minus.plusIcon }) : '', index.h("slot", { key: 'f4f1dbb40e2d90205075a8d3bf31a7e4a08ee6b5', name: "increment-button" })), index.h("input", { key: '67b7cdc6ef5311799d200660f26a7520e122b411', class: "s-quantity-input-input", ...inputAttributes, ref: (el) => this.textInput = el, onInput: (event) => this.setValue(event.target.value), inputMode: "numeric", pattern: "[0-9]*", min: "1", readOnly: this.disableInput, value: this.quantity }), index.h("button", { key: 'f0139bd8e74744e9396cbae706151ec3c092766b', class: "s-quantity-input-decrease-button s-quantity-input-button", onClick: () => this.decrease(), type: "button", "aria-label": salla.lang.getWithDefault('common.elements.decrease_quantity', 'Decrease quantity') }, !this.hasDecrementSlot ? index.h("span", { innerHTML: minus.minusIcon }) : '', index.h("slot", { key: 'd051c3ca89310e67f834a970788abc606e5d2bbc', name: "decrement-button" })))));
2390
2390
  }
2391
2391
  get host() { return index.getElement(this); }
2392
2392
  static get watchers() { return {
@@ -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-DQ4Z6sxG.js'); }).then(function (n) { return n.intlTelInput; });
2409
+ const telInputModule = await Promise.resolve().then(function () { return require('./intlTelInput-CKLiJAA1.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: 'aaf854dc9a005abf182fa4f1df3bb6ca7a2273fd', class: "s-tel-input" }, index.h("input", { key: '93e82604285107f8cf791fa03766d47c22151297', 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: '2ed465fcf44b673973203c3de95eda1c638ed829', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), index.h("input", { key: 'da4714631df46c13b2caa0a2e2cf7b5c434c1257', type: "hidden", name: "country_code", value: this.countryCode, ref: el => this.countryCodeInput = el, class: "country_code" })));
2538
+ return (index.h(index.Host, { key: 'f553ce5f883777989922140ad64f83962d754d18', class: "s-tel-input" }, index.h("input", { key: '6b60407705144cb98474cd904f85f53537a19c67', 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: '2f2714e8439c58786e6c9054006a2e40b97850b5', class: "s-tel-input-error-msg", ref: el => this.errorMsg = el }), index.h("input", { key: '377f1a1357ced0fd13e2550c29f321867d62ae5e', 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-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.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
 
@@ -87,7 +87,7 @@ const SallaBadge = class {
87
87
  this.bg = 'light';
88
88
  }
89
89
  render() {
90
- return (index.h("div", { key: '54d35eb76a59251edb581786e5e89a83b6f8fbf0', class: badge({ size: this.size, bg: this.bg, color: this.color }) }, index.h("slot", { key: '4641cb434a2c0a6d7c004e3384848a200cb79dff' })));
90
+ return (index.h("div", { key: '7c7196d49621a58192820725ab40d906344983d1', class: badge({ size: this.size, bg: this.bg, color: this.color }) }, index.h("slot", { key: '7a39f5d916e80809f795b5cc880f1d31238fa7c5' })));
91
91
  }
92
92
  };
93
93
  SallaBadge.style = sallaBadgeCss;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-Di0mG8nk.js');
6
+ var index = require('./index-BZ_aKmCD.js');
7
7
  var catalogRecommendations = require('./catalog-recommendations-HZzTK7-G.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}";