@salla.sa/twilight-components 2.14.353 → 2.14.355

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 (341) hide show
  1. package/dist/cjs/bell-ring-BfKPinNo.js +13 -0
  2. package/dist/cjs/{interfaces-CX9-6aLf.js → camera-DytepEoK.js} +0 -11
  3. package/dist/cjs/cancel-De6vslRA.js +13 -0
  4. package/dist/cjs/cart-s-x1Fshk.js +13 -0
  5. package/dist/cjs/check-circle2-BDvlT4_n.js +13 -0
  6. package/dist/cjs/{check-CLRvuniI.js → check-x3w3-gpj.js} +2 -2
  7. package/dist/cjs/{filepond-7SxqaoXb.js → filepond-D0WqQOsJ.js} +1 -1
  8. package/dist/cjs/{filepond-plugin-file-poster-DwIv84hN.js → filepond-plugin-file-poster-ZuSz5Sia.js} +1 -1
  9. package/dist/cjs/{filepond-plugin-file-validate-size-NUNnIo4Q.js → filepond-plugin-file-validate-size-C3-G9fQU.js} +1 -1
  10. package/dist/cjs/{filepond-plugin-file-validate-type-CXI-hfww.js → filepond-plugin-file-validate-type-pC6E-hQQ.js} +1 -1
  11. package/dist/cjs/{filepond-plugin-image-edit-fBeBGIBb.js → filepond-plugin-image-edit-B6RJ-sf_.js} +1 -1
  12. package/dist/cjs/{filepond-plugin-image-exif-orientation-BmLTdQ6d.js → filepond-plugin-image-exif-orientation-BAKA7TOr.js} +1 -1
  13. package/dist/cjs/{filepond-plugin-image-preview-CssKRM6n.js → filepond-plugin-image-preview-C_5JV3u4.js} +1 -1
  14. package/dist/{esm/gift-C0JNGIpa.js → cjs/gift-CJ-3Yw_x.js} +4 -2
  15. package/dist/cjs/image-BoZ6Hums.js +13 -0
  16. package/dist/cjs/{index-B9TEdQDE.js → index-DdedaQQE.js} +1 -1
  17. package/dist/cjs/{index-B5soIVRX.js → index-DgOViweO.js} +136 -12
  18. package/dist/cjs/interfaces-CRqrf5RX.js +15 -0
  19. package/dist/cjs/keyboard_arrow_down-DHJ3FFZq.js +13 -0
  20. package/dist/cjs/keyboard_arrow_right-BayM_Il2.js +21 -0
  21. package/dist/cjs/loader.cjs.js +2 -2
  22. package/dist/cjs/minus-CCryh1qf.js +21 -0
  23. package/dist/cjs/salla-accordion-body_3.cjs.entry.js +775 -0
  24. package/dist/cjs/salla-accordion_6.cjs.entry.js +768 -0
  25. package/dist/cjs/salla-add-product-button_4.cjs.entry.js +2389 -0
  26. package/dist/cjs/salla-advertisement.cjs.entry.js +1 -1
  27. package/dist/cjs/salla-alert_2.cjs.entry.js +194 -0
  28. package/dist/cjs/salla-app-install-alert.cjs.entry.js +1 -1
  29. package/dist/cjs/salla-apps-icons.cjs.entry.js +2 -2
  30. package/dist/cjs/salla-booking-field_7.cjs.entry.js +1565 -0
  31. package/dist/cjs/{salla-cart-item-offers.cjs.entry.js → salla-cart-item-offers_2.cjs.entry.js} +104 -5
  32. package/dist/cjs/salla-comment-form_8.cjs.entry.js +1661 -0
  33. package/dist/cjs/salla-conditional-offer.cjs.entry.js +1 -1
  34. package/dist/cjs/salla-contacts.cjs.entry.js +3 -3
  35. package/dist/cjs/salla-count-down_2.cjs.entry.js +302 -0
  36. package/dist/cjs/salla-custom-fields.cjs.entry.js +4 -3
  37. package/dist/cjs/salla-filters-widget.cjs.entry.js +1 -1
  38. package/dist/cjs/salla-filters.cjs.entry.js +1 -1
  39. package/dist/cjs/salla-gifting.cjs.entry.js +488 -0
  40. package/dist/cjs/salla-hook.cjs.entry.js +1 -1
  41. package/dist/cjs/salla-infinite-scroll.cjs.entry.js +91 -0
  42. package/dist/cjs/salla-installment.cjs.entry.js +1 -1
  43. package/dist/cjs/salla-list-tile.cjs.entry.js +34 -0
  44. package/dist/cjs/salla-localization-modal.cjs.entry.js +137 -0
  45. package/dist/cjs/salla-login-modal.cjs.entry.js +320 -0
  46. package/dist/cjs/salla-loyalty-prize-item.cjs.entry.js +1 -1
  47. package/dist/cjs/salla-loyalty-program.cjs.entry.js +3 -3
  48. package/dist/cjs/salla-loyalty.cjs.entry.js +211 -0
  49. package/dist/cjs/salla-maintenance-alert.cjs.entry.js +40 -0
  50. package/dist/cjs/salla-menu.cjs.entry.js +139 -0
  51. package/dist/cjs/salla-metadata.cjs.entry.js +1 -1
  52. package/dist/cjs/salla-multiple-bundle-product-cart_2.cjs.entry.js +220 -0
  53. package/dist/cjs/salla-multiple-bundle-product-options-modal_2.cjs.entry.js +598 -0
  54. package/dist/cjs/salla-multiple-bundle-product.cjs.entry.js +69 -0
  55. package/dist/cjs/salla-notification-item.cjs.entry.js +1 -1
  56. package/dist/cjs/salla-notifications.cjs.entry.js +1 -1
  57. package/dist/cjs/salla-offer-modal.cjs.entry.js +206 -0
  58. package/dist/cjs/salla-offer.cjs.entry.js +1 -1
  59. package/dist/cjs/salla-order-details-multiple-bundle-product.cjs.entry.js +1 -1
  60. package/dist/cjs/salla-order-details-options.cjs.entry.js +1 -1
  61. package/dist/cjs/salla-order-details.cjs.entry.js +1 -1
  62. package/dist/cjs/salla-order-summary.cjs.entry.js +3 -3
  63. package/dist/cjs/salla-order-totals-card.cjs.entry.js +1 -1
  64. package/dist/cjs/salla-orders.cjs.entry.js +1 -1
  65. package/dist/cjs/salla-payments.cjs.entry.js +6 -18
  66. package/dist/cjs/salla-placeholder.cjs.entry.js +51 -0
  67. package/dist/cjs/salla-price-range.cjs.entry.js +1 -1
  68. package/dist/cjs/salla-product-size-guide.cjs.entry.js +66 -0
  69. package/dist/cjs/salla-products-list.cjs.entry.js +762 -0
  70. package/dist/cjs/salla-products-slider.cjs.entry.js +115 -0
  71. package/dist/cjs/salla-progress-bar.cjs.entry.js +73 -0
  72. package/dist/cjs/salla-quick-order.cjs.entry.js +239 -0
  73. package/dist/cjs/salla-rating-modal.cjs.entry.js +453 -0
  74. package/dist/cjs/salla-scopes.cjs.entry.js +180 -0
  75. package/dist/cjs/salla-search.cjs.entry.js +153 -0
  76. package/dist/cjs/salla-skeleton.cjs.entry.js +36 -0
  77. package/dist/cjs/salla-slider.cjs.entry.js +10428 -0
  78. package/dist/cjs/salla-social-share.cjs.entry.js +165 -0
  79. package/dist/cjs/salla-social.cjs.entry.js +4 -4
  80. package/dist/cjs/salla-tab-content_3.cjs.entry.js +157 -0
  81. package/dist/cjs/salla-tiered-offer.cjs.entry.js +1 -1
  82. package/dist/cjs/salla-tooltip.cjs.entry.js +2 -2
  83. package/dist/cjs/salla-trust-badges.cjs.entry.js +1 -1
  84. package/dist/cjs/salla-user-menu.cjs.entry.js +275 -0
  85. package/dist/cjs/salla-user-profile.cjs.entry.js +145 -0
  86. package/dist/cjs/salla-user-settings.cjs.entry.js +88 -0
  87. package/dist/cjs/salla-verify.cjs.entry.js +1 -1
  88. package/dist/cjs/salla-wallet.cjs.entry.js +1 -1
  89. package/dist/cjs/search-c7Aa7lM9.js +13 -0
  90. package/dist/cjs/{special-discount-OVG_9Kf9.js → special-discount-DC2oXurL.js} +0 -8
  91. package/dist/cjs/star-DGcH7Yso.js +13 -0
  92. package/dist/cjs/star2-R146a27p.js +13 -0
  93. package/dist/cjs/twilight.cjs.js +2 -2
  94. package/dist/cjs/{vanilla-picker-C6fk8_TR.js → vanilla-picker-Cd4v7i9t.js} +1 -1
  95. package/dist/cjs/{whatsapp2-D7Sbg8Ey.js → whatsapp2-BdMd5Gx1.js} +2 -2
  96. package/dist/collection/collection-manifest.json +56 -2
  97. package/dist/collection/components/salla-apps-icons/salla-apps-icons.js +1 -1
  98. package/dist/collection/components/salla-payments/salla-payments.js +5 -17
  99. package/dist/collection/components/salla-product-options/salla-product-options.js +36 -3
  100. package/dist/collection/components/salla-products-slider/salla-products-slider.js +32 -1
  101. package/dist/collection/components/salla-slider/salla-slider.js +89 -29
  102. package/dist/collection/components/salla-social/salla-social.js +1 -1
  103. package/dist/collection/components/salla-social-share/salla-social-share.js +1 -1
  104. package/dist/collection/components/salla-tabs/salla-tab-content.js +1 -1
  105. package/dist/collection/components/salla-tabs/salla-tab-header.js +1 -1
  106. package/dist/collection/components/salla-tabs/salla-tabs.js +1 -1
  107. package/dist/collection/components/salla-tel-input/salla-tel-input.js +1 -1
  108. package/dist/collection/components/salla-tooltip/salla-tooltip.js +1 -1
  109. package/dist/collection/components/salla-user-settings/salla-user-settings.js +1 -1
  110. package/dist/components/index.js +2 -2
  111. package/dist/components/salla-apps-icons.js +1 -1
  112. package/dist/components/salla-payments.js +5 -17
  113. package/dist/components/salla-product-options2.js +19 -2
  114. package/dist/components/salla-products-slider2.js +2 -1
  115. package/dist/components/salla-slider2.js +69 -28
  116. package/dist/components/salla-social-share.js +1 -1
  117. package/dist/components/salla-social.js +1 -1
  118. package/dist/components/salla-tab-content2.js +1 -1
  119. package/dist/components/salla-tab-header2.js +1 -1
  120. package/dist/components/salla-tabs2.js +1 -1
  121. package/dist/components/salla-tel-input2.js +1 -1
  122. package/dist/components/salla-tooltip2.js +1 -1
  123. package/dist/components/salla-user-settings.js +1 -1
  124. package/dist/esm/bell-ring-D3mWkc-3.js +11 -0
  125. package/dist/esm/{interfaces-CBT_Nxny.js → camera-C6jIkM-X.js} +1 -12
  126. package/dist/esm/cancel-BsLF_HK7.js +11 -0
  127. package/dist/esm/cart-DY4LZmNP.js +11 -0
  128. package/dist/esm/{check-uTyAzPSy.js → check-BsXh13x8.js} +2 -2
  129. package/dist/esm/check-circle2-BV4kqbdL.js +11 -0
  130. package/dist/esm/{filepond-Cuqyleyy.js → filepond-YrJ-JCRn.js} +1 -1
  131. package/dist/esm/{filepond-plugin-file-poster-C6Wara8q.js → filepond-plugin-file-poster-UWiXxhAl.js} +1 -1
  132. package/dist/esm/{filepond-plugin-file-validate-size-D-M3KSxo.js → filepond-plugin-file-validate-size-CuFnfvIq.js} +1 -1
  133. package/dist/esm/{filepond-plugin-file-validate-type-DzAl1VI8.js → filepond-plugin-file-validate-type-BgYsHZEQ.js} +1 -1
  134. package/dist/esm/{filepond-plugin-image-edit-flutfc9I.js → filepond-plugin-image-edit-BQtZWl9D.js} +1 -1
  135. package/dist/esm/{filepond-plugin-image-exif-orientation-B2UkG6iE.js → filepond-plugin-image-exif-orientation-Dp7a5KRi.js} +1 -1
  136. package/dist/esm/{filepond-plugin-image-preview-B4u8N2nE.js → filepond-plugin-image-preview-DvWrR7vg.js} +1 -1
  137. package/dist/{cjs/gift-BPDUPIY_.js → esm/gift-BChI23pG.js} +2 -4
  138. package/dist/esm/image-C-tzSDxw.js +11 -0
  139. package/dist/esm/{index-xWIb6INF.js → index-DwU5NnFF.js} +1 -1
  140. package/dist/esm/{index-6mr785rH.js → index-PHxPq4LJ.js} +137 -13
  141. package/dist/esm/interfaces-OF8QcbMM.js +15 -0
  142. package/dist/esm/keyboard_arrow_down-DCZbpt2a.js +11 -0
  143. package/dist/esm/keyboard_arrow_right-Vqpj4CWE.js +18 -0
  144. package/dist/esm/loader.js +3 -3
  145. package/dist/esm/minus-DfeagqF1.js +18 -0
  146. package/dist/esm/salla-accordion-body_3.entry.js +771 -0
  147. package/dist/esm/salla-accordion_6.entry.js +761 -0
  148. package/dist/esm/salla-add-product-button_4.entry.js +2384 -0
  149. package/dist/esm/salla-advertisement.entry.js +1 -1
  150. package/dist/esm/salla-alert_2.entry.js +191 -0
  151. package/dist/esm/salla-app-install-alert.entry.js +1 -1
  152. package/dist/esm/salla-apps-icons.entry.js +2 -2
  153. package/dist/esm/salla-booking-field_7.entry.js +1539 -0
  154. package/dist/esm/{salla-cart-item-offers.entry.js → salla-cart-item-offers_2.entry.js} +104 -6
  155. package/dist/esm/salla-comment-form_8.entry.js +1652 -0
  156. package/dist/esm/salla-conditional-offer.entry.js +1 -1
  157. package/dist/esm/salla-contacts.entry.js +3 -3
  158. package/dist/esm/salla-count-down_2.entry.js +299 -0
  159. package/dist/esm/salla-custom-fields.entry.js +3 -2
  160. package/dist/esm/salla-filters-widget.entry.js +1 -1
  161. package/dist/esm/salla-filters.entry.js +1 -1
  162. package/dist/esm/salla-gifting.entry.js +486 -0
  163. package/dist/esm/salla-hook.entry.js +1 -1
  164. package/dist/esm/salla-infinite-scroll.entry.js +89 -0
  165. package/dist/esm/salla-installment.entry.js +1 -1
  166. package/dist/esm/salla-list-tile.entry.js +32 -0
  167. package/dist/esm/salla-localization-modal.entry.js +135 -0
  168. package/dist/esm/salla-login-modal.entry.js +318 -0
  169. package/dist/esm/salla-loyalty-prize-item.entry.js +1 -1
  170. package/dist/esm/salla-loyalty-program.entry.js +3 -3
  171. package/dist/esm/salla-loyalty.entry.js +209 -0
  172. package/dist/esm/salla-maintenance-alert.entry.js +38 -0
  173. package/dist/esm/salla-menu.entry.js +137 -0
  174. package/dist/esm/salla-metadata.entry.js +1 -1
  175. package/dist/esm/salla-multiple-bundle-product-cart_2.entry.js +217 -0
  176. package/dist/esm/salla-multiple-bundle-product-options-modal_2.entry.js +595 -0
  177. package/dist/esm/salla-multiple-bundle-product.entry.js +67 -0
  178. package/dist/esm/salla-notification-item.entry.js +1 -1
  179. package/dist/esm/salla-notifications.entry.js +1 -1
  180. package/dist/esm/salla-offer-modal.entry.js +204 -0
  181. package/dist/esm/salla-offer.entry.js +1 -1
  182. package/dist/esm/salla-order-details-multiple-bundle-product.entry.js +1 -1
  183. package/dist/esm/salla-order-details-options.entry.js +1 -1
  184. package/dist/esm/salla-order-details.entry.js +1 -1
  185. package/dist/esm/salla-order-summary.entry.js +3 -3
  186. package/dist/esm/salla-order-totals-card.entry.js +1 -1
  187. package/dist/esm/salla-orders.entry.js +1 -1
  188. package/dist/esm/salla-payments.entry.js +6 -18
  189. package/dist/esm/salla-placeholder.entry.js +49 -0
  190. package/dist/esm/salla-price-range.entry.js +1 -1
  191. package/dist/esm/salla-product-size-guide.entry.js +64 -0
  192. package/dist/esm/salla-products-list.entry.js +760 -0
  193. package/dist/esm/salla-products-slider.entry.js +113 -0
  194. package/dist/esm/salla-progress-bar.entry.js +71 -0
  195. package/dist/esm/salla-quick-order.entry.js +237 -0
  196. package/dist/esm/salla-rating-modal.entry.js +451 -0
  197. package/dist/esm/salla-scopes.entry.js +178 -0
  198. package/dist/esm/salla-search.entry.js +151 -0
  199. package/dist/esm/salla-skeleton.entry.js +34 -0
  200. package/dist/esm/salla-slider.entry.js +10426 -0
  201. package/dist/esm/salla-social-share.entry.js +163 -0
  202. package/dist/esm/salla-social.entry.js +3 -3
  203. package/dist/esm/salla-tab-content_3.entry.js +153 -0
  204. package/dist/esm/salla-tiered-offer.entry.js +1 -1
  205. package/dist/esm/salla-tooltip.entry.js +2 -2
  206. package/dist/esm/salla-trust-badges.entry.js +1 -1
  207. package/dist/esm/salla-user-menu.entry.js +273 -0
  208. package/dist/esm/salla-user-profile.entry.js +143 -0
  209. package/dist/esm/salla-user-settings.entry.js +86 -0
  210. package/dist/esm/salla-verify.entry.js +1 -1
  211. package/dist/esm/salla-wallet.entry.js +1 -1
  212. package/dist/esm/search-BscTeWDc.js +11 -0
  213. package/dist/esm/{special-discount-yRO-ZESF.js → special-discount-Ctkfc4K-.js} +1 -8
  214. package/dist/esm/star-ZT7ehBBk.js +11 -0
  215. package/dist/esm/star2-D4oPi1Ov.js +11 -0
  216. package/dist/esm/twilight.js +3 -3
  217. package/dist/esm/{vanilla-picker-B4PKRAhm.js → vanilla-picker-fpTcpsmb.js} +1 -1
  218. package/dist/esm/{whatsapp2-DWksgowB.js → whatsapp2-CgR-T_ZS.js} +2 -2
  219. package/dist/twilight/p-009d1b75.entry.js +4 -0
  220. package/dist/twilight/{p-16b8d78c.entry.js → p-04e21492.entry.js} +1 -1
  221. package/dist/twilight/{p-ac6fc286.entry.js → p-0cc07ad0.entry.js} +1 -1
  222. package/dist/twilight/p-0f45b27f.entry.js +4 -0
  223. package/dist/twilight/p-112b4c91.entry.js +4 -0
  224. package/dist/twilight/p-14749ab0.entry.js +4 -0
  225. package/dist/twilight/{p-0c87ef6c.entry.js → p-1c66e567.entry.js} +1 -1
  226. package/dist/twilight/p-1e405d4e.entry.js +4 -0
  227. package/dist/twilight/{p-33ea3141.entry.js → p-1eb76272.entry.js} +1 -1
  228. package/dist/twilight/p-2322e6fc.entry.js +4 -0
  229. package/dist/twilight/{p-7e39343d.entry.js → p-2626b358.entry.js} +1 -1
  230. package/dist/twilight/{p-18ebec2c.entry.js → p-29e92637.entry.js} +1 -1
  231. package/dist/twilight/p-2ca5a8af.entry.js +4 -0
  232. package/dist/twilight/{p-4253fc44.entry.js → p-2cb04fa6.entry.js} +1 -1
  233. package/dist/twilight/{p-19e07b9e.entry.js → p-2e97a6cd.entry.js} +1 -1
  234. package/dist/twilight/{p-zHj-W7EE.js → p-2tEKDOI-.js} +1 -1
  235. package/dist/twilight/p-30b58124.entry.js +4 -0
  236. package/dist/twilight/{p-8c7b7712.entry.js → p-333171ce.entry.js} +1 -1
  237. package/dist/twilight/p-33cd8edb.entry.js +4 -0
  238. package/dist/twilight/p-3774fa61.entry.js +4 -0
  239. package/dist/twilight/{p-5067322a.entry.js → p-37aa131b.entry.js} +1 -1
  240. package/dist/twilight/{p-dde21f4b.entry.js → p-3c76e2d4.entry.js} +1 -1
  241. package/dist/twilight/{p-2d209f96.entry.js → p-3cbbd625.entry.js} +1 -1
  242. package/dist/twilight/{p-6f5d02c6.entry.js → p-3db132b8.entry.js} +1 -1
  243. package/dist/twilight/p-3eff2372.entry.js +4 -0
  244. package/dist/twilight/p-428fe4e6.entry.js +4 -0
  245. package/dist/twilight/p-475a61f8.entry.js +4 -0
  246. package/dist/twilight/{p-BijadG7g.js → p-4D4VVK4U.js} +1 -1
  247. package/dist/twilight/p-4c31b81f.entry.js +4 -0
  248. package/dist/twilight/{p-c096e336.entry.js → p-52ffcaba.entry.js} +1 -1
  249. package/dist/twilight/p-534be529.entry.js +4 -0
  250. package/dist/twilight/p-59697c9b.entry.js +4 -0
  251. package/dist/twilight/p-5c5aba15.entry.js +4 -0
  252. package/dist/twilight/p-666bea2d.entry.js +4 -0
  253. package/dist/twilight/p-6a934903.entry.js +4 -0
  254. package/dist/twilight/{p-6f576591.entry.js → p-6e89154f.entry.js} +1 -1
  255. package/dist/twilight/p-6f69cfa5.entry.js +4 -0
  256. package/dist/twilight/{p-d4aaeef4.entry.js → p-76ce3ec0.entry.js} +1 -1
  257. package/dist/twilight/p-781f1219.entry.js +4 -0
  258. package/dist/twilight/p-78e33f77.entry.js +4 -0
  259. package/dist/twilight/p-79aa2c2f.entry.js +4 -0
  260. package/dist/twilight/p-7a2bd261.entry.js +4 -0
  261. package/dist/twilight/p-7a769233.entry.js +4 -0
  262. package/dist/twilight/{p-6472200c.entry.js → p-7eef10c9.entry.js} +1 -1
  263. package/dist/twilight/{p-2a26c1d6.entry.js → p-8606c783.entry.js} +1 -1
  264. package/dist/twilight/p-8719301a.entry.js +4 -0
  265. package/dist/twilight/p-8ad78dfa.entry.js +4 -0
  266. package/dist/twilight/{p-300624bb.entry.js → p-9bea43d6.entry.js} +1 -1
  267. package/dist/twilight/{p-8b018d82.entry.js → p-9c01357f.entry.js} +1 -1
  268. package/dist/twilight/{p-C0JNGIpa.js → p-BChI23pG.js} +1 -1
  269. package/dist/twilight/{p-Cuxsz9f-.js → p-BPRHuBhm.js} +1 -1
  270. package/dist/twilight/{p-B2SkkGH8.js → p-BRh_eoK1.js} +1 -1
  271. package/dist/twilight/p-BV4kqbdL.js +4 -0
  272. package/dist/twilight/{p-tFBCbVoG.js → p-BitILwJ_.js} +1 -1
  273. package/dist/twilight/p-BsLF_HK7.js +4 -0
  274. package/dist/twilight/{p-uTyAzPSy.js → p-BsXh13x8.js} +1 -1
  275. package/dist/twilight/p-BscTeWDc.js +4 -0
  276. package/dist/twilight/{p-ChfiVIJv.js → p-Bx_UY06u.js} +1 -1
  277. package/dist/twilight/p-C-tzSDxw.js +4 -0
  278. package/dist/twilight/{p-Bp_xKTyn.js → p-C6S8Hr36.js} +1 -1
  279. package/dist/twilight/p-C6jIkM-X.js +4 -0
  280. package/dist/twilight/p-CO-PeZ27.js +4 -0
  281. package/dist/twilight/{p-DWksgowB.js → p-CgR-T_ZS.js} +1 -1
  282. package/dist/twilight/p-Ctkfc4K-.js +4 -0
  283. package/dist/twilight/p-D3mWkc-3.js +4 -0
  284. package/dist/twilight/p-D4oPi1Ov.js +4 -0
  285. package/dist/twilight/p-DCZbpt2a.js +4 -0
  286. package/dist/twilight/p-DY4LZmNP.js +4 -0
  287. package/dist/twilight/p-DfeagqF1.js +4 -0
  288. package/dist/twilight/{p-DnELO4MH.js → p-DtkaGJwR.js} +1 -1
  289. package/dist/twilight/p-OF8QcbMM.js +4 -0
  290. package/dist/twilight/{p-6mr785rH.js → p-PHxPq4LJ.js} +2 -2
  291. package/dist/twilight/p-Vqpj4CWE.js +4 -0
  292. package/dist/twilight/p-ZT7ehBBk.js +4 -0
  293. package/dist/twilight/p-a5bb66a3.entry.js +4 -0
  294. package/dist/twilight/p-ad9c9773.entry.js +4 -0
  295. package/dist/twilight/p-b502e876.entry.js +4 -0
  296. package/dist/twilight/{p-e909d28b.entry.js → p-b8d8175a.entry.js} +1 -1
  297. package/dist/twilight/p-ba5fc67a.entry.js +4 -0
  298. package/dist/twilight/p-c3750eaa.entry.js +4 -0
  299. package/dist/twilight/p-d7037864.entry.js +4 -0
  300. package/dist/twilight/p-d9880694.entry.js +4 -0
  301. package/dist/twilight/p-db0b3ed2.entry.js +4 -0
  302. package/dist/twilight/{p-81702ecb.entry.js → p-dbb4ede5.entry.js} +1 -1
  303. package/dist/twilight/{p-28900b2e.entry.js → p-e017e403.entry.js} +1 -1
  304. package/dist/twilight/p-e31177e7.entry.js +4 -0
  305. package/dist/twilight/p-e5b90edd.entry.js +4 -0
  306. package/dist/twilight/{p-b60db6c8.entry.js → p-ec3f15ee.entry.js} +1 -1
  307. package/dist/twilight/p-edc41bbc.entry.js +4 -0
  308. package/dist/twilight/p-f2c23e42.entry.js +4 -0
  309. package/dist/twilight/p-f34f5a30.entry.js +4 -0
  310. package/dist/twilight/{p-4bc98557.entry.js → p-f578dea7.entry.js} +1 -1
  311. package/dist/twilight/{p-9946fa76.entry.js → p-ffbd5949.entry.js} +1 -1
  312. package/dist/twilight/{p-C_h1JDCU.js → p-fq0HEcD_.js} +1 -1
  313. package/dist/twilight/twilight.esm.js +1 -1
  314. package/dist/types/components/salla-payments/salla-payments.d.ts +0 -2
  315. package/dist/types/components/salla-product-options/salla-product-options.d.ts +8 -1
  316. package/dist/types/components/salla-products-slider/salla-products-slider.d.ts +8 -0
  317. package/dist/types/components/salla-slider/salla-slider.d.ts +20 -2
  318. package/dist/types/components.d.ts +26 -0
  319. package/package.json +5 -5
  320. package/dist/cjs/salla-accordion_62.cjs.entry.js +0 -22470
  321. package/dist/cjs/salla-review-card.cjs.entry.js +0 -183
  322. package/dist/cjs/salla-reviews-page.cjs.entry.js +0 -695
  323. package/dist/cjs/salla-reviews.cjs.entry.js +0 -106
  324. package/dist/esm/salla-accordion_62.entry.js +0 -22389
  325. package/dist/esm/salla-review-card.entry.js +0 -181
  326. package/dist/esm/salla-reviews-page.entry.js +0 -693
  327. package/dist/esm/salla-reviews.entry.js +0 -104
  328. package/dist/twilight/p-12e49031.entry.js +0 -4
  329. package/dist/twilight/p-5bf05092.entry.js +0 -4
  330. package/dist/twilight/p-67830f2a.entry.js +0 -4
  331. package/dist/twilight/p-751dddd4.entry.js +0 -4
  332. package/dist/twilight/p-9b22a7eb.entry.js +0 -4
  333. package/dist/twilight/p-CBT_Nxny.js +0 -4
  334. package/dist/twilight/p-Dz7o69vX.js +0 -4
  335. package/dist/twilight/p-a515a8cc.entry.js +0 -4
  336. package/dist/twilight/p-c4821f8b.entry.js +0 -4
  337. package/dist/twilight/p-de807340.entry.js +0 -4
  338. package/dist/twilight/p-fa585081.entry.js +0 -4
  339. package/dist/twilight/p-yRO-ZESF.js +0 -4
  340. package/dist/cjs/{twitter-pOrUNjXi.js → facebook-DbXua6B9.js} +2 -2
  341. package/dist/esm/{twitter-Dz7o69vX.js → facebook-CO-PeZ27.js} +2 -2
@@ -0,0 +1,211 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ 'use strict';
5
+
6
+ var index = require('./index-DgOViweO.js');
7
+ var star2 = require('./star2-R146a27p.js');
8
+ var cancel = require('./cancel-De6vslRA.js');
9
+
10
+ var Star3 = `<svg xmlns="http://www.w3.org/2000/svg" width="80" height="80" viewBox="0 0 80 80">
11
+ <title>star3</title>
12
+ <defs>
13
+ <style>
14
+ .a {
15
+ fill: none !important;
16
+ }
17
+
18
+ .b {
19
+ fill: #ff9e01;
20
+ }
21
+
22
+ .c {
23
+ fill: #fff;
24
+ opacity: 0.1;
25
+ }
26
+
27
+ </style>
28
+ </defs>
29
+ <g transform="translate(-683 -269)">
30
+ <rect class="a" width="80" height="80" transform="translate(683 269)" />
31
+ <g transform="translate(684.539 261.216)">
32
+ <path class="b"
33
+ d="M110.117,37.062,90.024,35.2,82.043,16.665a1.61,1.61,0,0,0-2.958,0L71.1,35.2,51.011,37.062a1.61,1.61,0,0,0-.914,2.813l15.16,13.318L60.821,72.878a1.61,1.61,0,0,0,2.393,1.739l17.351-10.3,17.351,10.3a1.61,1.61,0,0,0,2.393-1.739L95.871,53.192l15.16-13.318A1.61,1.61,0,0,0,110.117,37.062Z"
34
+ transform="translate(-42.104 -4.011)" />
35
+ <g transform="translate(0 10.971)">
36
+ <path class="b"
37
+ d="M93.54,12.016c1.024,1.423,3.915,7.533,5.568,11.094a.559.559,0,0,1-.891.641c-2.853-2.7-7.73-7.377-8.754-8.8a2.512,2.512,0,0,1,4.077-2.935Z"
38
+ transform="translate(-75.621 -10.971)" />
39
+ <path class="b"
40
+ d="M360.909,12.016c-1.024,1.423-3.915,7.533-5.568,11.094a.559.559,0,0,0,.891.641c2.853-2.7,7.73-7.377,8.754-8.8a2.512,2.512,0,0,0-4.077-2.935Z"
41
+ transform="translate(-301.908 -10.971)" />
42
+ <path class="b"
43
+ d="M427.538,284.659c-1.667-.543-8.366-1.441-12.261-1.934a.559.559,0,0,0-.34,1.044c3.436,1.9,9.377,5.123,11.044,5.666a2.512,2.512,0,0,0,1.558-4.776Z"
44
+ transform="translate(-352.351 -241.894)" />
45
+ <path class="b"
46
+ d="M1.734,284.659c1.667-.543,8.366-1.441,12.261-1.934a.559.559,0,0,1,.34,1.044c-3.436,1.9-9.377,5.123-11.044,5.666a2.512,2.512,0,0,1-1.558-4.776Z"
47
+ transform="translate(0 -241.894)" />
48
+ <path class="b"
49
+ d="M239.794,412.414c0-1.753,1.224-8.4,1.963-12.257a.559.559,0,0,1,1.1,0c.739,3.855,1.963,10.5,1.963,12.257a2.512,2.512,0,0,1-5.023,0Z"
50
+ transform="translate(-203.768 -341.301)" />
51
+ </g>
52
+ <path class="c"
53
+ d="M84.945,23.4l-2.9-6.74a1.61,1.61,0,0,0-2.958,0L71.1,35.2,51.011,37.062a1.61,1.61,0,0,0-.914,2.813l15.16,13.318L60.821,72.878a1.61,1.61,0,0,0,2.393,1.739l2.309-1.371A125,125,0,0,1,84.945,23.4Z"
54
+ transform="translate(-42.104 -4.011)" />
55
+ </g>
56
+ </g>
57
+ </svg>
58
+ `;
59
+
60
+ var GiftImg = `<svg xmlns="http://www.w3.org/2000/svg" width="54.079" height="53.191" viewBox="0 0 54.079 53.191"><defs><style>.a{fill:#ee9d0d;}.b{fill:#c7830b;}.c{fill:#ea2b2d;}.d{fill:#cb2527;}.e{fill:#6699ce;}.f{fill:#faa6b2;}.g{fill:#a6deff;}.h{fill:#eeb436;}.i{fill:#f72d2f;}</style></defs><path class="a" d="M40,248H77.3v25.88a2.1,2.1,0,0,1-2.1,2.1H42.1a2.1,2.1,0,0,1-2.1-2.1Z" transform="translate(-38.135 -222.787)"/><path class="b" d="M250.632,248.711v12.755L236.2,248h13.67Z" transform="translate(-211.463 -222.787)"/><path class="b" d="M333.957,336v3.207L330.52,336Z" transform="translate(-294.787 -300.528)"/><path class="c" d="M226.194,32.048l-.5.185a5.035,5.035,0,0,0-3.072,3.292l-.468,1.585-.759.414a5.035,5.035,0,0,0-2.422,3l8.865,8.271,5.09-5.456.262-6.205a5.191,5.191,0,0,0-7-5.083Z" transform="translate(-196.246 -31.722)"/><path class="c" d="M358.628,175.48l-.15.509a5.034,5.034,0,0,1-3.072,3.292l-1.55.577-.359.785a5.034,5.034,0,0,1-2.822,2.624L341.81,175l5.09-5.455,6.172-.69a5.191,5.191,0,0,1,5.555,6.629Z" transform="translate(-304.761 -152.837)"/><path class="d" d="M168,248h7.461v27.978H168Z" transform="translate(-151.213 -222.787)"/><path class="c" d="M40,336H77.3v7.461H40Z" transform="translate(-38.135 -300.528)"/><path class="d" d="M333.957,336v3.207L330.52,336Z" transform="translate(-294.787 -300.528)"/><path class="a" d="M2.1,0H40.8a2.1,2.1,0,0,1,2.1,2.1V9.326H0V2.1A2.1,2.1,0,0,1,2.1,0Z" transform="matrix(0.731, 0.682, -0.682, 0.731, 18.641, 4.976)"/><path class="d" d="M0,0H9.326V9.326H0Z" transform="matrix(0.731, 0.682, -0.682, 0.731, 30.912, 16.424)"/><path class="d" d="M286.857,79.389a.931.931,0,0,1-.74-.365l-.615-.8a12.516,12.516,0,0,1-2.528-9,.933.933,0,0,1,1.855.2,10.66,10.66,0,0,0,2.153,7.667l.615.8a.933.933,0,0,1-.739,1.5Z" transform="translate(-252.718 -64.113)"/><path class="c" d="M185.485,178.151l-.039.014a30.78,30.78,0,0,1-12.034,1.906l-2.381-.1,4.092,3.817-1.181,4,3.728-1.206a30.775,30.775,0,0,0,9.833-5.315l.71-.572Z" transform="translate(-153.891 -161.081)"/><path class="d" d="M363.834,194.779a12.51,12.51,0,0,1-6.93-2.1l-.843-.559a.933.933,0,1,1,1.031-1.554l.842.558a10.659,10.659,0,0,0,7.8,1.618.933.933,0,1,1,.328,1.836A12.663,12.663,0,0,1,363.834,194.779Z" transform="translate(-316.982 -171.914)"/><path class="c" d="M275,202.524l-.012.04a30.776,30.776,0,0,0-1.069,12.137l.265,2.369-4.092-3.817-3.909,1.455.945-3.8a30.776,30.776,0,0,1,4.622-10.177l.521-.748Z" transform="translate(-237.949 -180.364)"/><circle class="e" cx="1.865" cy="1.865" r="1.865" transform="translate(10.259 0.032)"/><circle class="f" cx="1.865" cy="1.865" r="1.865" transform="translate(0 21.482)"/><path class="g" d="M36.663,36.663a.933.933,0,0,1-.885-.638l-.048-.143a2.946,2.946,0,0,0-2.8-2.017.933.933,0,1,1,0-1.865A4.808,4.808,0,0,1,37.5,35.292l.048.143a.933.933,0,0,1-.885,1.228Z" transform="translate(-31.067 -31.968)"/><path class="g" d="M79.493,194.438a.929.929,0,0,1-.506-.15l-.185-.12a2.074,2.074,0,0,0-2.192-.047.933.933,0,0,1-.947-1.607,3.929,3.929,0,0,1,4.153.088l.185.12a.933.933,0,0,1-.508,1.716Z" transform="translate(-69.235 -173.283)"/><path class="h" d="M27.751,85.141l2.88,2.644,3.811-.874-1.624,3.556,2.008,3.354-3.884-.446-2.569,2.946L27.6,92.49,24,90.957l3.4-1.922Z" transform="translate(-24 -78.914)"/><path class="h" d="M82.174,227.375l-.959,3.772,2.564,2.928-3.884.254L77.9,237.673l-1.442-3.615-3.8-.862,2.993-2.488-.353-3.876,3.291,2.078Z" transform="translate(-66.992 -204.086)"/><path class="i" d="M300.471,141.9l-5.455-5.09,5.09-5.456a8.342,8.342,0,0,1,5.455,5.09Z" transform="translate(-263.422 -119.737)"/></svg>`;
61
+
62
+ const sallaLoyaltyCss = "";
63
+
64
+ const SallaLoyalty = class {
65
+ constructor(hostRef) {
66
+ index.registerInstance(this, hostRef);
67
+ this.selectedItem = undefined;
68
+ /**
69
+ * Does the merchant allow to login using email
70
+ */
71
+ this.allowEmail = true;
72
+ /**
73
+ * Does the merchant/current location for visitor allow to login using mobile, By default outside KSA is `false`
74
+ */
75
+ this.allowMobile = true;
76
+ /**
77
+ * Does the merchant require registration with email & mobile
78
+ */
79
+ this.requireEmail = false;
80
+ salla.event.on('loyalty::open', () => this.open());
81
+ salla.auth.event.onLoggedIn(() => {
82
+ this.is_loggedin = true;
83
+ });
84
+ salla.onReady(() => {
85
+ this.is_loggedin = salla.config.isUser();
86
+ });
87
+ salla.lang.onLoaded(() => {
88
+ this.guestMessage = salla.lang.get('pages.loyalty_program.guest_message');
89
+ this.translationLoaded = true;
90
+ });
91
+ salla.cart.event.onUpdated(cart => {
92
+ this.prizePoints = cart.loyalty.prize?.points;
93
+ this.prizeTitle = cart.loyalty.prize?.title;
94
+ this.customerPoints = cart.loyalty.customer_points || this.customerPoints;
95
+ });
96
+ }
97
+ setSelectedPrizeItem(item) {
98
+ if (!this.selectedItem || this.selectedItem?.id != item.id) {
99
+ this.selectedItem = item;
100
+ }
101
+ else {
102
+ this.selectedItem = undefined;
103
+ }
104
+ }
105
+ handleLongText(text) {
106
+ if (text.length > 150) {
107
+ return text.substring(0, 150) + '...';
108
+ }
109
+ return text;
110
+ }
111
+ prizeItem(item) {
112
+ let klass = {
113
+ 's-loyalty-prize-item-selected': !!this.selectedItem && this.selectedItem?.id == item.id,
114
+ "s-loyalty-prize-item": true
115
+ };
116
+ return index.h("div", { onClick: () => this.setSelectedPrizeItem(item), class: klass }, index.h("img", { class: "s-loyalty-prize-item-image", src: item.image, alt: item.name }), index.h("div", { class: "s-loyalty-prize-item-title" }, item.name), index.h("div", { class: "s-loyalty-prize-item-subtitle" }, this.handleLongText(item.description)), index.h("div", { class: "s-loyalty-prize-item-points" }, item.cost_points, " ", salla.lang.get('pages.loyalty_program.point'), index.h("div", { class: "s-loyalty-prize-item-check" }, index.h("div", null))));
117
+ }
118
+ getConfirmationModal() {
119
+ return [
120
+ index.h("salla-placeholder", { alignment: "center", icon: Star3, class: "s-loyalty-confirmation-modal-content" }, index.h("div", { slot: "title", class: "s-loyalty-confirmation-title" }, salla.lang.get('pages.loyalty_program.exchange_points')), index.h("div", { slot: "description" }, salla.lang.get('pages.loyalty_program.are_you_sure_to_exchange'), " ( ", index.h("strong", null, this.selectedItem?.cost_points), " ", salla.lang.get('pages.loyalty_program.point'), " ) ", salla.lang.get('pages.loyalty_program.for'), " ( ", index.h("strong", null, this.selectedItem?.name), " )")),
121
+ index.h("div", { class: "s-loyalty-confirmation-actions" }, index.h("salla-button", { fill: 'outline', width: "wide", onClick: () => this.cancelProcess() }, salla.lang.get('pages.loyalty_program.cancellation')), index.h("salla-button", { loading: this.buttonLoading, width: "wide", onClick: () => this.exchangeLoyaltyPoint() }, salla.lang.get('pages.loyalty_program.confirm')))
122
+ ];
123
+ }
124
+ getAfterExchangeUI() {
125
+ return index.h("slot", { name: 'points-applied-widget' }, index.h("salla-list-tile", { class: "s-loyalty-after-exchange" }, index.h("div", { slot: "title", class: "s-loyalty-after-exchange-title" }, this.prizeTitle, " \u00A0 - \u00A0 ", this.prizePoints, " ", salla.lang.get('pages.loyalty_program.point')), index.h("div", { slot: 'action', class: "s-loyalty-after-exchange-action" }, index.h("salla-button", { class: "s-loyalty-after-exchange-reset", shape: "icon", fill: 'outline', color: "danger", size: "small", onClick: () => this.resetExchange() }, index.h("span", { innerHTML: cancel.Cancel })))));
126
+ }
127
+ /**
128
+ * Show loyalty modal
129
+ */
130
+ async open() {
131
+ if (!this.is_loggedin)
132
+ return salla.event.dispatch('login::open');
133
+ this.modal?.open();
134
+ return await salla.loyalty.getProgram()
135
+ .then(response => {
136
+ this.loyaltyProgram = response.data;
137
+ })
138
+ .catch(e => {
139
+ this.hasError = true;
140
+ this.errorMessage = e.response?.data?.error?.message || e.response?.data;
141
+ })
142
+ .finally(() => this.modal?.stopLoading());
143
+ }
144
+ /**
145
+ *
146
+ * Hide loyalty modal
147
+ */
148
+ async close() {
149
+ return this.modal.close();
150
+ }
151
+ /**
152
+ *
153
+ * Cancel Exchanged prizes
154
+ */
155
+ async resetExchange() {
156
+ return await salla.loyalty.reset();
157
+ }
158
+ /**
159
+ * Open Confirmation modal
160
+ */
161
+ async openConfirmation() {
162
+ return await this.modal.close()
163
+ .then(() => this.confirmationModal?.open())
164
+ .catch(e => console.log(e));
165
+ }
166
+ /**
167
+ * Cancel process
168
+ */
169
+ async cancelProcess() {
170
+ return await this.confirmationModal.close()
171
+ .then(() => this.selectedItem = null)
172
+ .catch(e => console.log(e));
173
+ }
174
+ /**
175
+ * Exchange loyalty points with the selected prize item
176
+ * @param {number} loyalty_prize_id
177
+ *
178
+ */
179
+ async exchangeLoyaltyPoint() {
180
+ this.buttonLoading = true;
181
+ return await salla.loyalty.exchange(this.selectedItem?.id)
182
+ .then(() => this.selectedItem.key == "FREE_PRODUCT" && salla.url.is_page('cart') && window.location.reload())
183
+ .finally(() => {
184
+ this.buttonLoading = false;
185
+ this.cancelProcess();
186
+ });
187
+ }
188
+ render() {
189
+ // A. when the exchange is done, and we have the final prize points to show it in cart page
190
+ if (this.prizePoints) {
191
+ return this.getAfterExchangeUI();
192
+ }
193
+ //todo:: change all translations to states
194
+ return [
195
+ index.h("slot", { name: 'widget' }, this.customerPoints ?
196
+ index.h("salla-list-tile", { class: 's-loyalty-widget' }, index.h("div", { slot: "icon", class: "s-loyalty-widget-icon", innerHTML: star2.Star }), index.h("div", { slot: "subtitle" }, this.customerPoints ? salla.lang.get('pages.loyalty_program.cart_total_point_summary', { "balance": this.customerPoints }) : this.guestMessage, index.h("salla-button", { shape: "link", color: "primary", onClick: () => salla.event.dispatch("loyalty::open") }, this.customerPoints ? salla.lang.get('pages.loyalty_program.cart_point_exchange_now') : salla.lang.get('blocks.header.login')))) :
197
+ ''),
198
+ index.h("salla-modal", { noPadding: true, width: "sm", ref: modal => this.confirmationModal = modal }, this.getConfirmationModal()),
199
+ index.h("salla-modal", { isLoading: true, "has-skeleton": true, width: "md", ref: modal => this.modal = modal }, index.h("div", { slot: "loading" }, index.h("div", { class: "s-loyalty-skeleton" }, index.h("salla-list-tile", { class: "s-loyalty-header" }, index.h("div", { slot: "icon", class: "s-loyalty-header-icon" }, index.h("salla-skeleton", { type: "circle", height: '6rem', width: '6rem' })), index.h("div", { slot: "title", class: "s-loyalty-header-title mb-5" }, index.h("salla-skeleton", { height: '15px', width: '50%' })), index.h("div", { slot: "subtitle", class: "s-loyalty-header-subtitle" }, index.h("salla-skeleton", { height: '10px' }), index.h("salla-skeleton", { height: '10px', width: '75%' }))), index.h("div", { class: "s-loyalty-skeleton-cards" }, [...Array(3)].map(() => index.h("div", { class: "s-loyalty-prize-item swiper-slide" }, index.h("salla-skeleton", { height: '9rem' }), index.h("div", { class: "s-loyalty-prize-item-title" }, index.h("salla-skeleton", { height: '15px', width: '75%' })), index.h("div", { class: "s-loyalty-prize-item-subtitle" }, index.h("salla-skeleton", { height: '10px', width: '50%' }), index.h("salla-skeleton", { height: '10px', width: '25%' })), index.h("div", { class: "s-loyalty-prize-item-points" }, index.h("salla-skeleton", { height: '15px', width: '100px' }), index.h("div", { class: "s-loyalty-prize-item-check" }, index.h("salla-skeleton", { height: '1rem', width: '1rem', type: 'circle' })))))))), !this.hasError && !!this.loyaltyProgram ?
200
+ [
201
+ index.h("salla-list-tile", { id: 's-loyalty-header', class: "s-loyalty-header" }, index.h("div", { slot: "icon", class: "s-loyalty-header-icon", innerHTML: GiftImg }), index.h("div", { slot: "title", class: "s-loyalty-header-title" }, this.loyaltyProgram.prize_promotion_title), index.h("div", { slot: "subtitle", class: "s-loyalty-header-subtitle" }, this.loyaltyProgram.prize_promotion_description)),
202
+ index.h("salla-tabs", null, this.loyaltyProgram.prizes.map((prize) => index.h("salla-tab-header", { slot: "header", name: prize.title }, index.h("span", null, prize.title))), this.loyaltyProgram.prizes.map((prize, index$1) => index.h("salla-tab-content", { slot: "content", name: prize.title }, index.h("salla-slider", { class: "s-loyalty-slider", loop: false, "controls-outer": true, id: 'loyalty-popup-slider-' + index$1, type: "carousel" }, index.h("div", { slot: 'items' }, prize.items.map((item) => this.prizeItem(item))))))),
203
+ index.h("salla-button", { disabled: !this.selectedItem, width: "wide", class: "s-loyalty-program-redeem-btn", onClick: () => this.openConfirmation() }, salla.lang.get('pages.loyalty_program.exchange_points')),
204
+ ]
205
+ : index.h("salla-placeholder", { class: "s-loyalty-placeholder", alignment: "center" }, !!this.errorMessage ? index.h("span", { slot: "description" }, this.errorMessage) : '')),
206
+ ];
207
+ }
208
+ };
209
+ SallaLoyalty.style = sallaLoyaltyCss;
210
+
211
+ exports.salla_loyalty = SallaLoyalty;
@@ -0,0 +1,40 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ 'use strict';
5
+
6
+ var index = require('./index-DgOViweO.js');
7
+ var cancel = require('./cancel-De6vslRA.js');
8
+
9
+ const sallaMaintenanceAlertCss = ".s-maintenance-alert-wrapper{display:flex;min-height:40px;width:100%;flex-direction:row;align-items:center;justify-content:center;--tw-bg-opacity:1;background-color:rgba(26, 38, 61, var(--tw-bg-opacity));padding:0.25rem 0.5rem;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.s-maintenance-alert-wrapper a{transition:0.35s cubic-bezier(0.2, 1, 0.3, 1)}.s-maintenance-alert-wrapper *{color:inherit}@media (min-width: 640px){.s-maintenance-alert-wrapper{padding-left:2rem;padding-right:2rem}}.s-maintenance-alert-content{margin-top:1rem;margin-bottom:1rem;display:flex;width:100%;align-items:center;justify-content:space-between}@media (min-width: 640px){.s-maintenance-alert-content{padding-left:2rem;padding-right:2rem}}.s-maintenance-alert-container{display:flex;align-items:center}.s-maintenance-alert-icon{margin-right:1.25rem;display:none}@media (min-width: 640px){.s-maintenance-alert-icon{display:block}}.s-maintenance-alert-text h2{margin-bottom:0.5rem;font-size:0.875rem;font-weight:700;line-height:1.4}@media (min-width: 640px){.s-maintenance-alert-text h2{font-size:1.5rem;line-height:2rem}}.s-maintenance-alert-text p{margin:0px;text-align:right;font-size:10px;line-height:1.2}@media (min-width: 640px){.s-maintenance-alert-text p{text-align:center;font-size:0.75rem;line-height:1}}.s-maintenance-alert-btn{position:relative;margin-left:4px;margin-right:4px;display:inline-block;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;white-space:nowrap;border-radius:0.125rem;border-width:1px;--tw-border-opacity:1;border-color:rgba(93, 213, 196, var(--tw-border-opacity));--tw-bg-opacity:1;background-color:rgba(93, 213, 196, var(--tw-bg-opacity));padding:0.5rem;text-align:center;vertical-align:middle;font-size:0.875rem;font-weight:400;line-height:1.4;--tw-text-opacity:1;color:rgba(255, 255, 255, var(--tw-text-opacity))}.s-maintenance-alert-btn:hover{--tw-bg-opacity:1;background-color:rgba(53, 203, 181, var(--tw-bg-opacity))}.s-maintenance-alert-btn *{pointer-events:none}[dir=rtl] .s-maintenance-alert-btn{margin-left:1.25rem;margin-right:0}@media (min-width: 640px){.s-maintenance-alert-btn{padding:0.5rem 1rem}}";
10
+
11
+ const SallaMaintenanceAlert = class {
12
+ constructor(hostRef) {
13
+ index.registerInstance(this, hostRef);
14
+ }
15
+ componentWillLoad() {
16
+ this.title = salla.config.get('maintenance_details.title');
17
+ this.message = salla.config.get('maintenance_details.message');
18
+ // Use matchMedia instead of window.innerWidth to avoid forced reflow (Lighthouse/PageSpeed)
19
+ const isMobile = typeof window !== 'undefined' && !window.matchMedia('(min-width: 768px)').matches;
20
+ this.buttonTitle = isMobile ? salla.config.get('maintenance_details.button_title') : salla.config.get('maintenance_details.button_full_title');
21
+ }
22
+ closeAlert() {
23
+ salla.storage.set('hide_salla-maintenance-alert_at', Date.now());
24
+ this.host.style.display = 'none';
25
+ }
26
+ render() {
27
+ return (index.h(index.Host, { key: '109e687d7d6ba48ddf89cd3631f5a852d50688fd', class: "s-maintenance-alert-wrapper" }, index.h("button", { key: 'd70e7e53acc699336e1611589ca3bdfc704504c2', class: "s-maintenance-alert-close", innerHTML: cancel.Cancel, onClick: () => this.closeAlert() }), index.h("div", { key: 'b816c1a9635828c206c792d68203ccfbe8e8235b', class: "s-maintenance-alert-content" }, index.h("div", { key: '61e91088a5613d943b6f662f5ed44093ecf99237', class: "s-maintenance-alert-container" }, index.h("div", { key: '1ca223334f52bc5097677dd23433107080567894', class: "s-maintenance-alert-icon" }, index.h("img", { key: '22e07c7a104267cda2bed74929307d039018698d', src: salla.url.cdn('images/alert.png'), alt: "Alert" })), index.h("div", { key: '64d37700bc1454f5afadb55b49512bbd5b412d9c', class: "s-maintenance-alert-text" }, index.h("h2", { key: '7651dcd09a0ba07f14ed744758598015d4b45ecd' }, this.title), index.h("p", { key: '1f8d057af072466f34d0f3a13396de5144bc967f' }, this.message))), index.h("div", { key: '34f8471b855011b499c2038b1ac9dd24cc5e2e8b' }, index.h("a", { key: 'd9c4f4a9fb80ab90c13dc1dde69adcb7c4cd7e9f', class: "s-maintenance-alert-btn", href: salla.config.get('maintenance_details.button_url') }, this.buttonTitle)))));
28
+ }
29
+ componentDidLoad() {
30
+ //auto-hide the alert if close button is clicked before one hour
31
+ let hidden_at = salla.storage.get('hide_salla-maintenance-alert_at');
32
+ if (hidden_at && ((Date.now() - hidden_at) / 1000 / 60) < 60) {
33
+ this.closeAlert();
34
+ }
35
+ }
36
+ get host() { return index.getElement(this); }
37
+ };
38
+ SallaMaintenanceAlert.style = sallaMaintenanceAlertCss;
39
+
40
+ exports.salla_maintenance_alert = SallaMaintenanceAlert;
@@ -0,0 +1,139 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ 'use strict';
5
+
6
+ var index = require('./index-DgOViweO.js');
7
+
8
+ const sallaMenuCss = ":host{display:block}";
9
+
10
+ const SallaMenu = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ /**
14
+ * The source of the menu, specifying whether it is a header or footer menu.
15
+ */
16
+ this.source = "header";
17
+ /**
18
+ * Boolean indicating whether to use React Link elements for menu links.
19
+ */
20
+ this.useReactLink = false;
21
+ this.menus = [];
22
+ }
23
+ async componentWillLoad() {
24
+ return salla.onReady(() => {
25
+ this.displayAllText = salla.lang.get('blocks.home.display_all');
26
+ if (this.sourceValue && this.source === 'json') {
27
+ this.menus = typeof this.sourceValue === 'string' ? JSON.parse(this.sourceValue) : this.sourceValue || [];
28
+ }
29
+ else {
30
+ return this.getMenuItems();
31
+ }
32
+ });
33
+ }
34
+ getMenuItems() {
35
+ /**
36
+ * Avoid saving the menu to localStorage (default) when in the development environment
37
+ * or when modifying the theme in the dashboard
38
+ */
39
+ // const isPreview = salla.config.isDebug() || salla.helpers.isPreview()
40
+ // const cacheKey = `${this.source}_menus_${salla.lang.locale}`
41
+ // const cachedMenus = salla.storage.getWithTTL(cacheKey, [])
42
+ // if (cachedMenus.length > 0 && !isPreview) {
43
+ // this.menus = cachedMenus
44
+ // return;
45
+ // }
46
+ return salla.api.component.getMenus(this.source).then(({ data }) => {
47
+ this.menus = data;
48
+ // !isPreview && salla.storage.setWithTTL(cacheKey, this.menus)
49
+ }).catch((error) => {
50
+ salla.logger.error('salla-menu::Error fetching menus', error);
51
+ });
52
+ }
53
+ hasChildren(menu) {
54
+ return menu?.children?.length > 0;
55
+ }
56
+ hasProducts(menu) {
57
+ return menu?.products?.length > 0;
58
+ }
59
+ /**
60
+ * Get the classes for desktop menu
61
+ * @param {Object} menu
62
+ * @param {Boolean} isRootMenu
63
+ * @returns {String}
64
+ */
65
+ getDesktopClasses(menu, isRootMenu) {
66
+ return `!hidden lg:!block ${isRootMenu ? 'root-level lg:!inline-block' : 'relative'} ${menu.products ? ' mega-menu' : ''}
67
+ ${this.hasChildren(menu) ? 'has-children' : ''}`;
68
+ }
69
+ getAttributes(attrs) {
70
+ return attrs.trim().split(' ').reduce((result, attr) => {
71
+ let [key, value] = attr.split('=');
72
+ result[key] = value.replace(/"/g, '');
73
+ return result;
74
+ }, {});
75
+ }
76
+ /**
77
+ * Get the mobile menu
78
+ * @param {Object} menu
79
+ * @param {String} displayAllText
80
+ * @returns {String}
81
+ */
82
+ getMobileMenu(menu, displayAllText) {
83
+ const menuImage = menu.image ? index.h("img", { src: menu.image, class: "rounded-full", width: "48", height: "48", alt: menu.title }) : null;
84
+ return (index.h("li", { class: "lg:hidden text-sm font-bold", ...this.getAttributes(menu.attrs) }, !this.hasChildren(menu) ?
85
+ index.h("a", { href: menu.url, "aria-label": menu.title || 'category', class: `text-gray-500 ${menu.image ? '!py-3' : ''}`, ...this.getAttributes(menu.link_attrs) }, menuImage, index.h("span", null, menu.title || ''))
86
+ :
87
+ index.h(index.Fragment, null, index.h("span", { class: menu.image ? '!py-3' : '' }, menuImage, menu.title), index.h("ul", null, index.h("li", { class: "text-sm font-bold" }, index.h("a", { href: menu.url, class: "text-gray-500" }, displayAllText)), menu.children.map((subMenu) => this.getMobileMenu(subMenu, displayAllText))))));
88
+ }
89
+ /**
90
+ * Get the desktop menu
91
+ * @param {Object} menu
92
+ * @param {Boolean} isRootMenu
93
+ * @returns {String}
94
+ */
95
+ getDesktopMenu(menu, isRootMenu) {
96
+ return index.h("li", { class: this.getDesktopClasses(menu, isRootMenu), ...this.getAttributes(menu.attrs) }, index.h("a", { href: menu.url, "aria-label": menu.title || 'category', ...this.getAttributes(menu.link_attrs) }, index.h("span", null, menu.title)), this.hasChildren(menu) ?
97
+ index.h("div", { class: `sub-menu shadow-default ${this.hasProducts(menu) ? 'w-full left-0 flex' : 'w-56'}` }, index.h("ul", { class: this.hasProducts(menu) ? 'w-56 shrink-0 m-8 rtl:ml-0 ltr:mr-0' : '' }, menu.children.map((subMenu) => this.getDesktopMenu(subMenu, false))), this.hasProducts(menu) ?
98
+ index.h("salla-products-list", { source: "selected", "shadow-on-hover": true, "source-value": `[${menu.products}]` }) : null) : null);
99
+ }
100
+ /**
101
+ * Get the footer menu
102
+ * @param {Array} menus
103
+ */
104
+ getFooterMenu(menus) {
105
+ const Menuitems = (this.topnav || this.limit) ? menus.slice(0, this.limit || 3) : menus;
106
+ return index.h("div", null, index.h("div", { class: {
107
+ "s-menu-footer-list": !this.topnav,
108
+ "s-menu-topnav-list": this.topnav
109
+ } }, Menuitems.map((menu) => {
110
+ return index.h("a", { key: menu.id, href: menu.url, target: menu.target, class: {
111
+ "s-menu-footer-item": !this.topnav,
112
+ "s-menu-topnav-item topnav-link-item right-side": this.topnav
113
+ } }, menu.title);
114
+ })));
115
+ }
116
+ /**
117
+ * Get the menus
118
+ * @param {Array} menus
119
+ * @returns {String}
120
+ */
121
+ getHeaderMenu(menus) {
122
+ return menus.map((menu) => [
123
+ this.getMobileMenu(menu, this.displayAllText),
124
+ this.getDesktopMenu(menu, true)
125
+ ]);
126
+ }
127
+ render() {
128
+ return this.source === "footer" ?
129
+ this.getFooterMenu(this.menus)
130
+ :
131
+ [
132
+ index.h("nav", { key: "main-nav", id: "mobile-menu", class: "mobile-menu" }, index.h("ul", { class: "main-menu" }, this.getHeaderMenu(this.menus)), index.h("button", { class: "btn--close close-mobile-menu sicon-cancel lg:hidden" })),
133
+ index.h("button", { key: "close-btn", class: "btn--close-sm close-mobile-menu sicon-cancel hidden" })
134
+ ];
135
+ }
136
+ };
137
+ SallaMenu.style = sallaMenuCss;
138
+
139
+ exports.salla_menu = SallaMenu;
@@ -3,7 +3,7 @@
3
3
  */
4
4
  'use strict';
5
5
 
6
- var index = require('./index-B5soIVRX.js');
6
+ var index = require('./index-DgOViweO.js');
7
7
 
8
8
  const sallaMetadataCss = "";
9
9
 
@@ -0,0 +1,220 @@
1
+ /*!
2
+ * Crafted with ❤ by Salla
3
+ */
4
+ 'use strict';
5
+
6
+ var index = require('./index-DgOViweO.js');
7
+
8
+ const sallaMultipleBundleProductCartCss = "";
9
+
10
+ const SallaMultipleBundleProductCart = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ this.sections = [];
14
+ this.itemNumber = '';
15
+ }
16
+ deleteItem(sectionId, product) {
17
+ const form = this.host.closest('form');
18
+ if (form) {
19
+ const formId = form.getAttribute('id');
20
+ if (formId && typeof formId === 'string') {
21
+ const itemNumber = formId.match(/item-(\d+)/)?.[1];
22
+ this.itemNumber = itemNumber || '';
23
+ const selectedAccordion = this.host.querySelector(`#accordion-${product.id}`);
24
+ salla.cart
25
+ .deleteItem(`${this.itemNumber}?product_id=${product.id}&section_id=${sectionId}`)
26
+ .then(() => selectedAccordion?.remove());
27
+ }
28
+ }
29
+ }
30
+ renderRemoveButton(sectionId, product, isText = false) {
31
+ return (index.h("salla-button", { type: "button", shape: isText ? 'btn' : 'icon', fill: isText ? 'outline' : 'solid', size: "small", color: "danger", "aria-label": "Remove from the cart", onClick: () => this.deleteItem(sectionId, product) }, isText ? salla.lang.get('common.elements.delete') : index.h("i", { class: "sicon-cancel" })));
32
+ }
33
+ renderAccordionHeader(sectionId, product) {
34
+ const hasOptions = product?.options && product?.options?.length > 0; // undefined or empty array
35
+ return (index.h("div", { slot: "html", class: "s-multiple-bundle-product-cart-header-wrapper" }, index.h("div", { class: `s-multiple-bundle-product-cart-header ${hasOptions ? '' : 's-multiple-bundle-product-cart-header-no-options'}` }, index.h("div", { class: "s-multiple-bundle-product-cart-header-content" }, index.h("a", { href: product?.url, class: "s-multiple-bundle-product-cart-header-image-wrapper" }, index.h("img", { src: product?.image?.url, alt: product?.image?.alt || product?.name, class: "s-multiple-bundle-product-cart-header-image" })), index.h("div", { class: "s-multiple-bundle-product-cart-header-content-details" }, index.h("h2", { class: "s-multiple-bundle-product-cart-header-content-details-title" }, index.h("a", { href: product?.url, class: "s-multiple-bundle-product-cart-header-content-details-title-link" }, product?.name)), index.h("div", { class: "s-multiple-bundle-product-cart-header-content-details-price" }, index.h("span", { class: "s-multiple-bundle-product-cart-header-content-details-price-regular" }, index.h("span", { innerHTML: product?.price ? salla.money(product?.price) : '' })), product?.sale_price > 0 && (index.h("span", { class: "s-multiple-bundle-product-cart-header-content-details-price-sale" }, index.h("span", { innerHTML: salla.money(product?.sale_price) })))), product?.quantity_in_group > 0 && product?.quantity !== 0 && (index.h("p", { class: "s-multiple-bundle-product-cart-header-content-details-quantity" }, index.h("span", null, salla.lang.get('pages.products.number_of_pieces')), index.h("span", null, product?.quantity_in_group))))), !hasOptions && (index.h("div", { class: "s-multiple-bundle-product-cart-header-remove-button" }, this.renderRemoveButton(sectionId, product, false))))));
36
+ }
37
+ render() {
38
+ return (index.h(index.Host, { key: '34b9ae8c08eccee16d15f5ebff73b1d27f636e79', class: "s-multiple-bundle-product-wrapper" }, index.h("div", { key: '2f8d0bf68e67aa3bc21206d7282113fbfa67560b', class: "s-multiple-bundle-product-wrapper-sections" }, this.sections.map((section, sectionIndex) => {
39
+ return section.products.map(product => {
40
+ const bundleContext = {
41
+ sectionId: section.id,
42
+ sectionIndex: sectionIndex,
43
+ productId: product.id,
44
+ };
45
+ return (index.h("salla-accordion", { key: product.id, collapsed: false, bordered: true, collapsible: product.options && product.options.length > 0 ? true : false, size: "sm", id: `accordion-${product.id}` }, index.h("salla-accordion-head", null, this.renderAccordionHeader(String(section.id), product)), product.options && product.options.length > 0 && (index.h("salla-accordion-body", null, index.h("salla-product-options", { options: JSON.stringify(product.options), key: `${product.id}-persistent`, "product-id": product.id, "bundle-context": JSON.stringify(bundleContext) }), index.h("div", { class: "s-multiple-bundle-product-cart-body-remove-button" }, this.renderRemoveButton(String(section.id), product, true))))));
46
+ });
47
+ }))));
48
+ }
49
+ get host() { return index.getElement(this); }
50
+ };
51
+ SallaMultipleBundleProductCart.style = sallaMultipleBundleProductCartCss;
52
+
53
+ const sallaMultipleBundleProductDetailsCss = "";
54
+
55
+ const SallaMultipleBundleProductDetails = class {
56
+ constructor(hostRef) {
57
+ index.registerInstance(this, hostRef);
58
+ this.sections = [];
59
+ // store selected product IDs per section (can be string or number)
60
+ this.selectedProducts = {};
61
+ // Event handler reference for cleanup
62
+ this.productSelectedHandler = null;
63
+ // handle selecting a product (toggle)
64
+ this.onSelectProduct = (sectionId, product) => {
65
+ this.selectedProducts = {
66
+ ...this.selectedProducts,
67
+ [sectionId]: new Set(this.selectedProducts[sectionId] || []),
68
+ };
69
+ const productId = product.id;
70
+ const wasSelected = this.selectedProducts[sectionId].has(productId);
71
+ if (wasSelected) {
72
+ // Product is being deselected
73
+ this.selectedProducts[sectionId].delete(productId);
74
+ // Clear form data and modal options for this product in this specific section
75
+ this.clearProductFormData(productId, sectionId);
76
+ this.clearProductModalOptions(productId, sectionId);
77
+ }
78
+ else {
79
+ // Product is being selected
80
+ this.selectedProducts[sectionId].add(productId);
81
+ }
82
+ // force re-render
83
+ this.selectedProducts = { ...this.selectedProducts };
84
+ // still dispatch event
85
+ salla.event.dispatch('on-bundle-product-selected', {
86
+ id: product.id,
87
+ name: product.name,
88
+ options: product.options,
89
+ wasSelected: wasSelected,
90
+ isSelected: !wasSelected,
91
+ });
92
+ };
93
+ // ensure product is selected (only add if not already selected)
94
+ this.ensureProductSelected = (sectionId, product) => {
95
+ this.selectedProducts = {
96
+ ...this.selectedProducts,
97
+ [sectionId]: new Set(this.selectedProducts[sectionId] || []),
98
+ };
99
+ const productId = product.id;
100
+ // Only add if not already selected
101
+ if (!this.selectedProducts[sectionId].has(productId)) {
102
+ this.selectedProducts[sectionId].add(productId);
103
+ // force re-render
104
+ this.selectedProducts = { ...this.selectedProducts };
105
+ // dispatch event
106
+ salla.event.dispatch('on-bundle-product-selected', {
107
+ id: product.id,
108
+ name: product.name,
109
+ options: product.options,
110
+ });
111
+ }
112
+ };
113
+ // open product options modal
114
+ this.onSelectProductOptions = (product, sectionId) => {
115
+ // Find the section index from the sectionId
116
+ const sectionIndex = this.sections.findIndex(section => section.id == sectionId);
117
+ // Find the product index within the section
118
+ const section = this.sections.find(section => section.id == sectionId);
119
+ const productIndex = section?.products?.findIndex(p => p.id == product.id) ?? 0;
120
+ salla.event.dispatch('multiple-bundle-product-modal::open', {
121
+ product,
122
+ sectionId,
123
+ sectionIndex,
124
+ productIndex,
125
+ });
126
+ };
127
+ // Event handlers for bundle slider component
128
+ this.handleBundleSliderProductSelected = (event) => {
129
+ const { product, sectionId } = event.detail;
130
+ this.onSelectProduct(sectionId, product);
131
+ };
132
+ this.handleBundleSliderProductOptionsSelected = (event) => {
133
+ const { product, sectionId } = event.detail;
134
+ this.onSelectProductOptions(product, sectionId);
135
+ };
136
+ }
137
+ // Clear form data for a specific product in specific section
138
+ clearProductFormData(productId, sectionId) {
139
+ const form = this.host.closest('form');
140
+ if (sectionId) {
141
+ // Remove inputs for specific section/productIndex combination
142
+ const productInputPattern = `bundle[${sectionId}][`;
143
+ const inputsToRemove = Array.from(form.querySelectorAll('input')).filter((input) => input.getAttribute('data-product-id') === String(productId) &&
144
+ input.name &&
145
+ input.name.startsWith(productInputPattern));
146
+ inputsToRemove.forEach(input => input.remove());
147
+ }
148
+ else {
149
+ // Fallback: Remove all hidden inputs related to this product (legacy behavior)
150
+ const inputsToRemove = form.querySelectorAll(`[data-product-id="${productId}"]`);
151
+ inputsToRemove.forEach(input => input.remove());
152
+ }
153
+ }
154
+ // Clear modal options state for a specific product
155
+ clearProductModalOptions(productId, sectionId) {
156
+ let sectionIndex = null;
157
+ let productIndex = null;
158
+ if (sectionId != null) {
159
+ sectionIndex = this.sections.findIndex(section => section.id == sectionId);
160
+ if (sectionIndex > -1) {
161
+ const section = this.sections[sectionIndex];
162
+ if (section) {
163
+ const foundIndex = section.products?.findIndex(product => product.id == productId);
164
+ productIndex = typeof foundIndex === 'number' && foundIndex > -1 ? foundIndex : null;
165
+ }
166
+ }
167
+ }
168
+ // Emit event to notify modal to reset its state for this product
169
+ salla.event.dispatch('multiple-bundle-product-modal::clear-options', {
170
+ productId,
171
+ sectionId,
172
+ sectionIndex,
173
+ productIndex,
174
+ });
175
+ }
176
+ renderAccordionHeader(section, selectedCount) {
177
+ return (index.h(index.Fragment, null, index.h("h2", { slot: "title" }, section?.name), section?.obligatory_products ? (index.h("span", { slot: "note" }, salla.lang.get('pages.products.obligatory_products', {
178
+ count: section?.obligatory_products || 0,
179
+ }))) : '', index.h("span", { slot: "progress" }, selectedCount, "/", section?.products?.length || 0)));
180
+ }
181
+ componentDidLoad() {
182
+ // Listen for product selected event from modal
183
+ const modal = this.host.querySelector('salla-multiple-bundle-product-options-modal');
184
+ if (modal) {
185
+ this.productSelectedHandler = (e) => {
186
+ const { productId, sectionId, product, fromModal } = e.detail;
187
+ if (fromModal) {
188
+ // When called from modal, only add to selection if not already selected
189
+ this.ensureProductSelected(sectionId, product || { id: productId });
190
+ }
191
+ else {
192
+ // Normal toggle behavior
193
+ this.onSelectProduct(sectionId, product || { id: productId });
194
+ }
195
+ };
196
+ modal.addEventListener('productSelected', this.productSelectedHandler);
197
+ }
198
+ }
199
+ disconnectedCallback() {
200
+ // Clean up event listener to prevent memory leaks
201
+ if (this.productSelectedHandler) {
202
+ const modal = this.host.querySelector('salla-multiple-bundle-product-options-modal');
203
+ if (modal) {
204
+ modal.removeEventListener('productSelected', this.productSelectedHandler);
205
+ }
206
+ this.productSelectedHandler = null;
207
+ }
208
+ }
209
+ render() {
210
+ return (index.h(index.Host, { key: '2a7a27e8bfc7325575fec782139828333590eb9f', class: "s-multiple-bundle-product-wrapper" }, index.h("div", { key: 'affcb43ee67e329a9a87d6234bb91b5494a69a35', class: "s-multiple-bundle-product-wrapper-sections" }, this.sections.map((section, index$1) => {
211
+ const selectedCount = this.selectedProducts[section.id]?.size || 0;
212
+ return (index.h("salla-accordion", { key: section.id, collapsed: index$1 === 0 ? false : true }, index.h("salla-accordion-head", null, this.renderAccordionHeader(section, selectedCount)), index.h("salla-accordion-body", null, index.h("salla-multiple-bundle-product-slider", { section: section, sectionIndex: index$1, selectedProducts: this.selectedProducts, onProductSelected: this.handleBundleSliderProductSelected, onProductOptionsSelected: this.handleBundleSliderProductOptionsSelected }))));
213
+ })), index.h("salla-multiple-bundle-product-options-modal", { key: '6b9065e8f7872da72166979fc9ce61efaad21c0a' })));
214
+ }
215
+ get host() { return index.getElement(this); }
216
+ };
217
+ SallaMultipleBundleProductDetails.style = sallaMultipleBundleProductDetailsCss;
218
+
219
+ exports.salla_multiple_bundle_product_cart = SallaMultipleBundleProductCart;
220
+ exports.salla_multiple_bundle_product_details = SallaMultipleBundleProductDetails;