@salla.sa/twilight-theme-engine 1.0.101 → 1.0.103

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 (274) hide show
  1. package/dist/{AddToCartForm-ZUQDN5PU.js → AddToCartForm-O7UZDX6G.js} +3 -3
  2. package/dist/{AddToCartForm-ZUQDN5PU.js.map → AddToCartForm-O7UZDX6G.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-6REYBEA4.js → BlogAuthorPage-JLU2JWPT.js} +28 -28
  4. package/dist/{BlogAuthorPage-6REYBEA4.js.map → BlogAuthorPage-JLU2JWPT.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-ZQLL4DTZ.js → BlogCategoryPage-FTZPLNTL.js} +28 -28
  6. package/dist/{BlogCategoryPage-ZQLL4DTZ.js.map → BlogCategoryPage-FTZPLNTL.js.map} +1 -1
  7. package/dist/{BlogPage-Q6K7VYJ4.js → BlogPage-JBVPGHR5.js} +26 -26
  8. package/dist/{BlogPage-Q6K7VYJ4.js.map → BlogPage-JBVPGHR5.js.map} +1 -1
  9. package/dist/{BlogSinglePage-T2ZCRQS7.js → BlogSinglePage-V3KQ5HIW.js} +26 -26
  10. package/dist/{BlogSinglePage-T2ZCRQS7.js.map → BlogSinglePage-V3KQ5HIW.js.map} +1 -1
  11. package/dist/{BlogTagPage-QAQ5BZZB.js → BlogTagPage-NTYO6TB4.js} +28 -28
  12. package/dist/{BlogTagPage-QAQ5BZZB.js.map → BlogTagPage-NTYO6TB4.js.map} +1 -1
  13. package/dist/{BrandsPage-KR2MC5TK.js → BrandsPage-5OSSOWDP.js} +27 -27
  14. package/dist/{BrandsPage-KR2MC5TK.js.map → BrandsPage-5OSSOWDP.js.map} +1 -1
  15. package/dist/{Breadcrumb-6S5OVQFO.js → Breadcrumb-GJI3N76F.js} +26 -26
  16. package/dist/{Breadcrumb-6S5OVQFO.js.map → Breadcrumb-GJI3N76F.js.map} +1 -1
  17. package/dist/{CartItem-UWXMIP5P.js → CartItem-KO34MYXT.js} +26 -26
  18. package/dist/{CartItem-UWXMIP5P.js.map → CartItem-KO34MYXT.js.map} +1 -1
  19. package/dist/{CartSummary-3TNNLC5A.js → CartSummary-NPFAJI7C.js} +26 -26
  20. package/dist/{CartSummary-3TNNLC5A.js.map → CartSummary-NPFAJI7C.js.map} +1 -1
  21. package/dist/{Copyright-QHX2TXLI.js → Copyright-VEJV2YTR.js} +3 -3
  22. package/dist/{Copyright-QHX2TXLI.js.map → Copyright-VEJV2YTR.js.map} +1 -1
  23. package/dist/{CustomerLayout-2KDONRD4.js → CustomerLayout-L374ZRWY.js} +26 -26
  24. package/dist/{CustomerLayout-2KDONRD4.js.map → CustomerLayout-L374ZRWY.js.map} +1 -1
  25. package/dist/{Footer-PJH36KWX.js → Footer-D4YSIM25.js} +4 -4
  26. package/dist/{Footer-PJH36KWX.js.map → Footer-D4YSIM25.js.map} +1 -1
  27. package/dist/Header-CXJ3TFHO.js +22 -0
  28. package/dist/{Header-TTFVFD7G.js.map → Header-CXJ3TFHO.js.map} +1 -1
  29. package/dist/{LoyaltyPage-GWXNY4NP.js → LoyaltyPage-BTKKAZYT.js} +26 -26
  30. package/dist/{LoyaltyPage-GWXNY4NP.js.map → LoyaltyPage-BTKKAZYT.js.map} +1 -1
  31. package/dist/{LoyaltyPointsPage-YBR3ZAZE.js → LoyaltyPointsPage-CBVSWLR6.js} +9 -9
  32. package/dist/{LoyaltyPointsPage-YBR3ZAZE.js.map → LoyaltyPointsPage-CBVSWLR6.js.map} +1 -1
  33. package/dist/{MainMenu-FKTMQHEM.js → MainMenu-KCVTEZRG.js} +8 -8
  34. package/dist/{MainMenu-FKTMQHEM.js.map → MainMenu-KCVTEZRG.js.map} +1 -1
  35. package/dist/MasterLayout-K6IGPKCD.js +53 -0
  36. package/dist/{MasterLayout-GQHDA63O.js.map → MasterLayout-K6IGPKCD.js.map} +1 -1
  37. package/dist/{MobileMenu-KTQAO2DE.js → MobileMenu-KDKARTM5.js} +27 -27
  38. package/dist/{MobileMenu-KTQAO2DE.js.map → MobileMenu-KDKARTM5.js.map} +1 -1
  39. package/dist/{NotificationsPage-IC6XXM4W.js → NotificationsPage-A3NZEO52.js} +26 -26
  40. package/dist/{NotificationsPage-IC6XXM4W.js.map → NotificationsPage-A3NZEO52.js.map} +1 -1
  41. package/dist/{OrderSinglePage-U2DRGLI4.js → OrderSinglePage-APA3LCWT.js} +27 -27
  42. package/dist/{OrderSinglePage-U2DRGLI4.js.map → OrderSinglePage-APA3LCWT.js.map} +1 -1
  43. package/dist/{OrdersPage-MOFIK76Y.js → OrdersPage-N4S2SKXD.js} +26 -26
  44. package/dist/{OrdersPage-MOFIK76Y.js.map → OrdersPage-N4S2SKXD.js.map} +1 -1
  45. package/dist/{PageSingle-YS2ALWZZ.js → PageSingle-ED3IQQLS.js} +7 -7
  46. package/dist/{PageSingle-YS2ALWZZ.js.map → PageSingle-ED3IQQLS.js.map} +1 -1
  47. package/dist/{ProductDetails-FMY3HST5.js → ProductDetails-MN3GXUXK.js} +8 -8
  48. package/dist/{ProductDetails-FMY3HST5.js.map → ProductDetails-MN3GXUXK.js.map} +1 -1
  49. package/dist/{ProfilePage-L6EZE5OV.js → ProfilePage-QQ2GN7RO.js} +26 -26
  50. package/dist/{ProfilePage-L6EZE5OV.js.map → ProfilePage-QQ2GN7RO.js.map} +1 -1
  51. package/dist/{ReviewsPage-UXWXPPDM.js → ReviewsPage-YHO2CNZP.js} +3 -3
  52. package/dist/{ReviewsPage-UXWXPPDM.js.map → ReviewsPage-YHO2CNZP.js.map} +1 -1
  53. package/dist/{SeoCartWidget-WDZVLEHH.js → SeoCartWidget-DWJT2WXI.js} +26 -26
  54. package/dist/{SeoCartWidget-WDZVLEHH.js.map → SeoCartWidget-DWJT2WXI.js.map} +1 -1
  55. package/dist/{SettingsPage-LFYR42O4.js → SettingsPage-BRCNPSRN.js} +26 -26
  56. package/dist/{SettingsPage-LFYR42O4.js.map → SettingsPage-BRCNPSRN.js.map} +1 -1
  57. package/dist/StoreClosedNotification-2CIG5LX6.js +54 -0
  58. package/dist/{StoreClosedNotification-Y6QRDSG6.js.map → StoreClosedNotification-2CIG5LX6.js.map} +1 -1
  59. package/dist/{TestimonialsPage-3NTMQL2K.js → TestimonialsPage-DDLTHBMM.js} +7 -7
  60. package/dist/{TestimonialsPage-3NTMQL2K.js.map → TestimonialsPage-DDLTHBMM.js.map} +1 -1
  61. package/dist/{ThankYouPage-H2LECFWC.js → ThankYouPage-YN6PC4GT.js} +26 -26
  62. package/dist/{ThankYouPage-H2LECFWC.js.map → ThankYouPage-YN6PC4GT.js.map} +1 -1
  63. package/dist/{WalletPage-3IDRHX7S.js → WalletPage-YVJYIL52.js} +27 -27
  64. package/dist/{WalletPage-3IDRHX7S.js.map → WalletPage-YVJYIL52.js.map} +1 -1
  65. package/dist/{WishlistPage-JYDHC3PQ.js → WishlistPage-PD3SHN27.js} +28 -28
  66. package/dist/{WishlistPage-JYDHC3PQ.js.map → WishlistPage-PD3SHN27.js.map} +1 -1
  67. package/dist/api/advertisement.js +5 -5
  68. package/dist/api/apps.js +5 -5
  69. package/dist/api/blog.js +7 -7
  70. package/dist/api/brands.js +7 -7
  71. package/dist/api/cart.js +7 -7
  72. package/dist/api/category.js +7 -7
  73. package/dist/api/client.js +4 -4
  74. package/dist/api/home.js +5 -5
  75. package/dist/api/loyalty.js +7 -7
  76. package/dist/api/menu.js +5 -5
  77. package/dist/api/notification.js +5 -5
  78. package/dist/api/order.js +7 -7
  79. package/dist/api/page.js +7 -7
  80. package/dist/api/product.js +7 -7
  81. package/dist/api/profile.js +4 -4
  82. package/dist/api/store.js +5 -5
  83. package/dist/api/translations.js +5 -5
  84. package/dist/api/user.js +5 -5
  85. package/dist/api/wallet.js +5 -5
  86. package/dist/api/wishlist.js +8 -8
  87. package/dist/{chunk-IBSQO6LW.js → chunk-224CL4SD.js} +4 -4
  88. package/dist/{chunk-IBSQO6LW.js.map → chunk-224CL4SD.js.map} +1 -1
  89. package/dist/{chunk-TIPR4JUO.js → chunk-3W746XYR.js} +5 -5
  90. package/dist/{chunk-TIPR4JUO.js.map → chunk-3W746XYR.js.map} +1 -1
  91. package/dist/{chunk-EV64HPL2.js → chunk-44FMRCHW.js} +3 -3
  92. package/dist/{chunk-EV64HPL2.js.map → chunk-44FMRCHW.js.map} +1 -1
  93. package/dist/{chunk-PSR6GPA7.js → chunk-46EXP3AL.js} +8 -8
  94. package/dist/{chunk-PSR6GPA7.js.map → chunk-46EXP3AL.js.map} +1 -1
  95. package/dist/{chunk-BH7YNCYB.js → chunk-46JZXQRS.js} +3 -3
  96. package/dist/{chunk-BH7YNCYB.js.map → chunk-46JZXQRS.js.map} +1 -1
  97. package/dist/{chunk-N2A72R2I.js → chunk-6EBVVCNI.js} +4 -4
  98. package/dist/{chunk-N2A72R2I.js.map → chunk-6EBVVCNI.js.map} +1 -1
  99. package/dist/{chunk-S34G5DL4.js → chunk-6LRTCW27.js} +4 -4
  100. package/dist/{chunk-S34G5DL4.js.map → chunk-6LRTCW27.js.map} +1 -1
  101. package/dist/{chunk-QS4EDTEX.js → chunk-6TWQZEPF.js} +4 -4
  102. package/dist/{chunk-QS4EDTEX.js.map → chunk-6TWQZEPF.js.map} +1 -1
  103. package/dist/{chunk-QZEQOVA5.js → chunk-6YWW5Y22.js} +3 -3
  104. package/dist/{chunk-QZEQOVA5.js.map → chunk-6YWW5Y22.js.map} +1 -1
  105. package/dist/{chunk-O7B5JL6H.js → chunk-7OB2DG2K.js} +4 -4
  106. package/dist/{chunk-O7B5JL6H.js.map → chunk-7OB2DG2K.js.map} +1 -1
  107. package/dist/{chunk-DKGJPF2X.js → chunk-7RL4DG54.js} +3 -3
  108. package/dist/{chunk-DKGJPF2X.js.map → chunk-7RL4DG54.js.map} +1 -1
  109. package/dist/{chunk-BPL5H33B.js → chunk-7YH3A5BT.js} +5 -5
  110. package/dist/{chunk-BPL5H33B.js.map → chunk-7YH3A5BT.js.map} +1 -1
  111. package/dist/{chunk-6FKV2CD3.js → chunk-AVPU5C5V.js} +4 -4
  112. package/dist/{chunk-6FKV2CD3.js.map → chunk-AVPU5C5V.js.map} +1 -1
  113. package/dist/{chunk-XHSRSZBR.js → chunk-BXOQ663B.js} +6 -6
  114. package/dist/{chunk-XHSRSZBR.js.map → chunk-BXOQ663B.js.map} +1 -1
  115. package/dist/{chunk-D56TVNOG.js → chunk-C7RM335V.js} +3 -3
  116. package/dist/{chunk-D56TVNOG.js.map → chunk-C7RM335V.js.map} +1 -1
  117. package/dist/chunk-CXONF653.js +14 -0
  118. package/dist/{chunk-JMLNYY5Q.js.map → chunk-CXONF653.js.map} +1 -1
  119. package/dist/{chunk-PGUKRWOY.js → chunk-FV6PNN6N.js} +5 -5
  120. package/dist/{chunk-PGUKRWOY.js.map → chunk-FV6PNN6N.js.map} +1 -1
  121. package/dist/{chunk-ENJIX7HX.js → chunk-GLWSJZJZ.js} +5 -5
  122. package/dist/{chunk-ENJIX7HX.js.map → chunk-GLWSJZJZ.js.map} +1 -1
  123. package/dist/{chunk-FO4WVGUQ.js → chunk-GNLCPK6N.js} +35 -9
  124. package/dist/chunk-GNLCPK6N.js.map +1 -0
  125. package/dist/{chunk-RWBTMHLR.js → chunk-GT2L5IJ4.js} +6 -6
  126. package/dist/{chunk-RWBTMHLR.js.map → chunk-GT2L5IJ4.js.map} +1 -1
  127. package/dist/{chunk-N2S25NXP.js → chunk-H3PJJKAQ.js} +16 -3
  128. package/dist/chunk-H3PJJKAQ.js.map +1 -0
  129. package/dist/{chunk-W2LNKEBF.js → chunk-HIAHDZI5.js} +3 -3
  130. package/dist/{chunk-W2LNKEBF.js.map → chunk-HIAHDZI5.js.map} +1 -1
  131. package/dist/{chunk-7WTUA4WY.js → chunk-HKSDEFQV.js} +3 -3
  132. package/dist/{chunk-7WTUA4WY.js.map → chunk-HKSDEFQV.js.map} +1 -1
  133. package/dist/{chunk-Q62YEBIA.js → chunk-IGD4G3SP.js} +4 -4
  134. package/dist/{chunk-Q62YEBIA.js.map → chunk-IGD4G3SP.js.map} +1 -1
  135. package/dist/{chunk-GXHJXZBG.js → chunk-IOUOF5KK.js} +4 -4
  136. package/dist/{chunk-GXHJXZBG.js.map → chunk-IOUOF5KK.js.map} +1 -1
  137. package/dist/{chunk-ENLKXUCJ.js → chunk-IYD3EN22.js} +7 -7
  138. package/dist/{chunk-ENLKXUCJ.js.map → chunk-IYD3EN22.js.map} +1 -1
  139. package/dist/{chunk-G3UTLICK.js → chunk-JDLXT6VI.js} +5 -5
  140. package/dist/{chunk-G3UTLICK.js.map → chunk-JDLXT6VI.js.map} +1 -1
  141. package/dist/{chunk-XT6CLGF5.js → chunk-JUUKZRE5.js} +3 -3
  142. package/dist/{chunk-XT6CLGF5.js.map → chunk-JUUKZRE5.js.map} +1 -1
  143. package/dist/{chunk-ZEGNYJOR.js → chunk-JZDJO2CK.js} +6 -6
  144. package/dist/{chunk-ZEGNYJOR.js.map → chunk-JZDJO2CK.js.map} +1 -1
  145. package/dist/{chunk-XGA7SPWP.js → chunk-L4AWMQPQ.js} +8 -8
  146. package/dist/{chunk-XGA7SPWP.js.map → chunk-L4AWMQPQ.js.map} +1 -1
  147. package/dist/{chunk-KNIGLCRV.js → chunk-OOCN4RFV.js} +3 -3
  148. package/dist/{chunk-KNIGLCRV.js.map → chunk-OOCN4RFV.js.map} +1 -1
  149. package/dist/{chunk-N45X7D55.js → chunk-OXMUPNMH.js} +2 -2
  150. package/dist/chunk-OXMUPNMH.js.map +1 -0
  151. package/dist/{chunk-RV54D2D7.js → chunk-P4XV656A.js} +3 -3
  152. package/dist/{chunk-RV54D2D7.js.map → chunk-P4XV656A.js.map} +1 -1
  153. package/dist/{chunk-IU4KTCS3.js → chunk-PENQTLAN.js} +3 -3
  154. package/dist/{chunk-IU4KTCS3.js.map → chunk-PENQTLAN.js.map} +1 -1
  155. package/dist/{chunk-CNUBL24W.js → chunk-PXHFHHTW.js} +4 -4
  156. package/dist/{chunk-CNUBL24W.js.map → chunk-PXHFHHTW.js.map} +1 -1
  157. package/dist/{chunk-GMXI6V2D.js → chunk-QTH6GGUH.js} +14 -8
  158. package/dist/chunk-QTH6GGUH.js.map +1 -0
  159. package/dist/{chunk-56T47K7P.js → chunk-RI5PSI34.js} +5 -5
  160. package/dist/{chunk-56T47K7P.js.map → chunk-RI5PSI34.js.map} +1 -1
  161. package/dist/{chunk-5SDCUGYR.js → chunk-RJTIP2L3.js} +4 -4
  162. package/dist/{chunk-5SDCUGYR.js.map → chunk-RJTIP2L3.js.map} +1 -1
  163. package/dist/{chunk-VCFNYY3V.js → chunk-RPVHCIR4.js} +4 -4
  164. package/dist/{chunk-VCFNYY3V.js.map → chunk-RPVHCIR4.js.map} +1 -1
  165. package/dist/{chunk-JANISEUE.js → chunk-TMN53ONR.js} +7 -7
  166. package/dist/{chunk-JANISEUE.js.map → chunk-TMN53ONR.js.map} +1 -1
  167. package/dist/{chunk-OZP2FID7.js → chunk-TSAIM4XM.js} +4 -4
  168. package/dist/{chunk-OZP2FID7.js.map → chunk-TSAIM4XM.js.map} +1 -1
  169. package/dist/{chunk-Q2755VB2.js → chunk-U73QOIGZ.js} +8 -8
  170. package/dist/{chunk-Q2755VB2.js.map → chunk-U73QOIGZ.js.map} +1 -1
  171. package/dist/{chunk-OU66LX2C.js → chunk-UIXEKYTM.js} +21 -21
  172. package/dist/{chunk-OU66LX2C.js.map → chunk-UIXEKYTM.js.map} +1 -1
  173. package/dist/{chunk-2FDLEB5J.js → chunk-UY57T42N.js} +3 -3
  174. package/dist/{chunk-2FDLEB5J.js.map → chunk-UY57T42N.js.map} +1 -1
  175. package/dist/{chunk-TJNBUVUA.js → chunk-V7EPED4G.js} +19 -19
  176. package/dist/chunk-V7EPED4G.js.map +1 -0
  177. package/dist/{chunk-2FKZAAV7.js → chunk-VEWF3NFM.js} +3 -3
  178. package/dist/{chunk-2FKZAAV7.js.map → chunk-VEWF3NFM.js.map} +1 -1
  179. package/dist/{chunk-EWLVLDRP.js → chunk-VPGOT3JO.js} +3 -3
  180. package/dist/{chunk-EWLVLDRP.js.map → chunk-VPGOT3JO.js.map} +1 -1
  181. package/dist/{chunk-J5X4LXNM.js → chunk-XMO7HDZZ.js} +3 -3
  182. package/dist/{chunk-J5X4LXNM.js.map → chunk-XMO7HDZZ.js.map} +1 -1
  183. package/dist/{chunk-DNPQ2JBM.js → chunk-Y6J6NYNK.js} +4 -4
  184. package/dist/{chunk-DNPQ2JBM.js.map → chunk-Y6J6NYNK.js.map} +1 -1
  185. package/dist/{chunk-NZRJOAA7.js → chunk-YXI2ZCXD.js} +4 -4
  186. package/dist/{chunk-NZRJOAA7.js.map → chunk-YXI2ZCXD.js.map} +1 -1
  187. package/dist/{chunk-VWVCSD3N.js → chunk-ZMCFSOYF.js} +4 -4
  188. package/dist/{chunk-VWVCSD3N.js.map → chunk-ZMCFSOYF.js.map} +1 -1
  189. package/dist/{chunk-6EQ7G3SZ.js → chunk-ZPX4LBQZ.js} +5 -5
  190. package/dist/{chunk-6EQ7G3SZ.js.map → chunk-ZPX4LBQZ.js.map} +1 -1
  191. package/dist/components/cart/index.js +1 -1
  192. package/dist/components/common/index.js +1 -1
  193. package/dist/components/drawer/index.js +24 -24
  194. package/dist/components/home/index.js +28 -28
  195. package/dist/components/layout/index.js +7 -7
  196. package/dist/components/product/index.js +25 -25
  197. package/dist/components/store/index.js +26 -26
  198. package/dist/components/toast/index.js +5 -5
  199. package/dist/dev/editor/index.js +4 -4
  200. package/dist/dev/editor/index.js.map +1 -1
  201. package/dist/dev/editor/pickers.d.ts +1 -1
  202. package/dist/dev/editor/pickers.d.ts.map +1 -1
  203. package/dist/dev/index.js +4 -4
  204. package/dist/dev/schema-types.d.ts +1 -1
  205. package/dist/dev/schema-types.d.ts.map +1 -1
  206. package/dist/document-class-JQ7ZZJAT.js +29 -0
  207. package/dist/{document-class-F75JZPRM.js.map → document-class-JQ7ZZJAT.js.map} +1 -1
  208. package/dist/hooks/index.js +24 -24
  209. package/dist/hooks/useComments.js +4 -4
  210. package/dist/hooks/useGtm.js +24 -24
  211. package/dist/hooks/useMoney.js +24 -24
  212. package/dist/hooks/useProduct.js +4 -4
  213. package/dist/hooks/useStore.js +24 -24
  214. package/dist/hooks/useUser.js +6 -6
  215. package/dist/hooks/useWishlist.js +4 -4
  216. package/dist/index.js +24 -24
  217. package/dist/native-app/index.js +4 -4
  218. package/dist/{navigation-JB2CJXBF.js → navigation-GQA6OA42.js} +8 -8
  219. package/dist/{navigation-JB2CJXBF.js.map → navigation-GQA6OA42.js.map} +1 -1
  220. package/dist/navigation-RO3T4FDQ.js +14 -0
  221. package/dist/{navigation-KTMLD4VB.js.map → navigation-RO3T4FDQ.js.map} +1 -1
  222. package/dist/{not-found-O4BCTCSH.js → not-found-MTU2BM73.js} +27 -27
  223. package/dist/{not-found-O4BCTCSH.js.map → not-found-MTU2BM73.js.map} +1 -1
  224. package/dist/providers/index.js +24 -24
  225. package/dist/routes/account/orders.js +8 -8
  226. package/dist/routes/account.js +17 -17
  227. package/dist/routes/blog.js +12 -12
  228. package/dist/routes/brands.js +8 -8
  229. package/dist/routes/cart.js +32 -32
  230. package/dist/routes/home.js +29 -29
  231. package/dist/routes/index.js +7 -7
  232. package/dist/routes/loyalty.js +9 -9
  233. package/dist/routes/page.js +8 -8
  234. package/dist/routes/product-listing.js +30 -30
  235. package/dist/routes/product.js +28 -28
  236. package/dist/routes/seo-redirects.js +7 -7
  237. package/dist/routes/testimonials.js +3 -3
  238. package/dist/routes/thank-you.js +8 -8
  239. package/dist/skeleton.js +29 -29
  240. package/dist/{store-lookup-T4TK7CKA.js → store-lookup-C4DMFSBT.js} +13 -13
  241. package/dist/{store-lookup-T4TK7CKA.js.map → store-lookup-C4DMFSBT.js.map} +1 -1
  242. package/dist/tanstack/middleware/twilight.d.ts.map +1 -1
  243. package/dist/tanstack/navigation.d.ts.map +1 -1
  244. package/dist/tanstack/router.d.ts.map +1 -1
  245. package/dist/tanstack/store-base.d.ts +5 -2
  246. package/dist/tanstack/store-base.d.ts.map +1 -1
  247. package/dist/tanstack.js +27 -22
  248. package/dist/tanstack.js.map +1 -1
  249. package/dist/twilight/context.d.ts +7 -0
  250. package/dist/twilight/context.d.ts.map +1 -1
  251. package/dist/utils/cookies.d.ts +32 -0
  252. package/dist/utils/cookies.d.ts.map +1 -1
  253. package/dist/utils/index.js +6 -6
  254. package/dist/utils/runtime-env.d.ts +7 -0
  255. package/dist/utils/runtime-env.d.ts.map +1 -1
  256. package/dist/utils/store-base.d.ts +12 -2
  257. package/dist/utils/store-base.d.ts.map +1 -1
  258. package/dist/utils/store-identity.d.ts +9 -0
  259. package/dist/utils/store-identity.d.ts.map +1 -1
  260. package/dist/vite/index.js +11 -5
  261. package/dist/vite/index.js.map +1 -1
  262. package/dist/vite/plugins/twilight-schema.d.ts.map +1 -1
  263. package/package.json +1 -1
  264. package/dist/Header-TTFVFD7G.js +0 -22
  265. package/dist/MasterLayout-GQHDA63O.js +0 -53
  266. package/dist/StoreClosedNotification-Y6QRDSG6.js +0 -54
  267. package/dist/chunk-FO4WVGUQ.js.map +0 -1
  268. package/dist/chunk-GMXI6V2D.js.map +0 -1
  269. package/dist/chunk-JMLNYY5Q.js +0 -14
  270. package/dist/chunk-N2S25NXP.js.map +0 -1
  271. package/dist/chunk-N45X7D55.js.map +0 -1
  272. package/dist/chunk-TJNBUVUA.js.map +0 -1
  273. package/dist/document-class-F75JZPRM.js +0 -29
  274. package/dist/navigation-KTMLD4VB.js +0 -14
package/dist/api/cart.js CHANGED
@@ -1,11 +1,11 @@
1
- export { cart } from '../chunk-PGUKRWOY.js';
2
- import '../chunk-RWBTMHLR.js';
1
+ export { cart } from '../chunk-FV6PNN6N.js';
2
+ import '../chunk-GT2L5IJ4.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-6EQ7G3SZ.js';
5
- import '../chunk-EWLVLDRP.js';
6
- import '../chunk-2FKZAAV7.js';
7
- import '../chunk-FO4WVGUQ.js';
8
- import '../chunk-N2S25NXP.js';
4
+ import '../chunk-ZPX4LBQZ.js';
5
+ import '../chunk-VPGOT3JO.js';
6
+ import '../chunk-VEWF3NFM.js';
7
+ import '../chunk-GNLCPK6N.js';
8
+ import '../chunk-H3PJJKAQ.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
@@ -1,11 +1,11 @@
1
- export { category } from '../chunk-IBSQO6LW.js';
2
- import '../chunk-RWBTMHLR.js';
1
+ export { category } from '../chunk-224CL4SD.js';
2
+ import '../chunk-GT2L5IJ4.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-6EQ7G3SZ.js';
5
- import '../chunk-EWLVLDRP.js';
6
- import '../chunk-2FKZAAV7.js';
7
- import '../chunk-FO4WVGUQ.js';
8
- import '../chunk-N2S25NXP.js';
4
+ import '../chunk-ZPX4LBQZ.js';
5
+ import '../chunk-VPGOT3JO.js';
6
+ import '../chunk-VEWF3NFM.js';
7
+ import '../chunk-GNLCPK6N.js';
8
+ import '../chunk-H3PJJKAQ.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
@@ -1,7 +1,7 @@
1
- export { STORE_IDENTIFIER_HEADER, api, cdn, filesCdn, getActiveCurrency, getActiveScope, getActiveScopeId, getAuthToken } from '../chunk-6EQ7G3SZ.js';
2
- import '../chunk-2FKZAAV7.js';
3
- import '../chunk-FO4WVGUQ.js';
4
- import '../chunk-N2S25NXP.js';
1
+ export { STORE_IDENTIFIER_HEADER, api, cdn, filesCdn, getActiveCurrency, getActiveScope, getActiveScopeId, getAuthToken } from '../chunk-ZPX4LBQZ.js';
2
+ import '../chunk-VEWF3NFM.js';
3
+ import '../chunk-GNLCPK6N.js';
4
+ import '../chunk-H3PJJKAQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=client.js.map
package/dist/api/home.js CHANGED
@@ -1,8 +1,8 @@
1
- export { home } from '../chunk-7WTUA4WY.js';
2
- import '../chunk-6EQ7G3SZ.js';
3
- import '../chunk-2FKZAAV7.js';
4
- import '../chunk-FO4WVGUQ.js';
5
- import '../chunk-N2S25NXP.js';
1
+ export { home } from '../chunk-HKSDEFQV.js';
2
+ import '../chunk-ZPX4LBQZ.js';
3
+ import '../chunk-VEWF3NFM.js';
4
+ import '../chunk-GNLCPK6N.js';
5
+ import '../chunk-H3PJJKAQ.js';
6
6
  import '../chunk-T72DAX7R.js';
7
7
  import '../chunk-DGUM43GV.js';
8
8
  //# sourceMappingURL=home.js.map
@@ -1,11 +1,11 @@
1
- export { loyalty } from '../chunk-Q62YEBIA.js';
2
- import '../chunk-RWBTMHLR.js';
1
+ export { loyalty } from '../chunk-IGD4G3SP.js';
2
+ import '../chunk-GT2L5IJ4.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-6EQ7G3SZ.js';
5
- import '../chunk-EWLVLDRP.js';
6
- import '../chunk-2FKZAAV7.js';
7
- import '../chunk-FO4WVGUQ.js';
8
- import '../chunk-N2S25NXP.js';
4
+ import '../chunk-ZPX4LBQZ.js';
5
+ import '../chunk-VPGOT3JO.js';
6
+ import '../chunk-VEWF3NFM.js';
7
+ import '../chunk-GNLCPK6N.js';
8
+ import '../chunk-H3PJJKAQ.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
package/dist/api/menu.js CHANGED
@@ -1,8 +1,8 @@
1
- export { menu } from '../chunk-QS4EDTEX.js';
2
- import '../chunk-6EQ7G3SZ.js';
3
- import '../chunk-2FKZAAV7.js';
4
- import '../chunk-FO4WVGUQ.js';
5
- import '../chunk-N2S25NXP.js';
1
+ export { menu } from '../chunk-6TWQZEPF.js';
2
+ import '../chunk-ZPX4LBQZ.js';
3
+ import '../chunk-VEWF3NFM.js';
4
+ import '../chunk-GNLCPK6N.js';
5
+ import '../chunk-H3PJJKAQ.js';
6
6
  import '../chunk-T72DAX7R.js';
7
7
  import '../chunk-DGUM43GV.js';
8
8
  //# sourceMappingURL=menu.js.map
@@ -1,8 +1,8 @@
1
- export { notification } from '../chunk-D56TVNOG.js';
2
- import '../chunk-6EQ7G3SZ.js';
3
- import '../chunk-2FKZAAV7.js';
4
- import '../chunk-FO4WVGUQ.js';
5
- import '../chunk-N2S25NXP.js';
1
+ export { notification } from '../chunk-C7RM335V.js';
2
+ import '../chunk-ZPX4LBQZ.js';
3
+ import '../chunk-VEWF3NFM.js';
4
+ import '../chunk-GNLCPK6N.js';
5
+ import '../chunk-H3PJJKAQ.js';
6
6
  import '../chunk-T72DAX7R.js';
7
7
  import '../chunk-DGUM43GV.js';
8
8
  //# sourceMappingURL=notification.js.map
package/dist/api/order.js CHANGED
@@ -1,11 +1,11 @@
1
- export { order } from '../chunk-O7B5JL6H.js';
2
- import '../chunk-RWBTMHLR.js';
1
+ export { order } from '../chunk-7OB2DG2K.js';
2
+ import '../chunk-GT2L5IJ4.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-6EQ7G3SZ.js';
5
- import '../chunk-EWLVLDRP.js';
6
- import '../chunk-2FKZAAV7.js';
7
- import '../chunk-FO4WVGUQ.js';
8
- import '../chunk-N2S25NXP.js';
4
+ import '../chunk-ZPX4LBQZ.js';
5
+ import '../chunk-VPGOT3JO.js';
6
+ import '../chunk-VEWF3NFM.js';
7
+ import '../chunk-GNLCPK6N.js';
8
+ import '../chunk-H3PJJKAQ.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
package/dist/api/page.js CHANGED
@@ -1,11 +1,11 @@
1
- export { page } from '../chunk-DNPQ2JBM.js';
2
- import '../chunk-RWBTMHLR.js';
1
+ export { page } from '../chunk-Y6J6NYNK.js';
2
+ import '../chunk-GT2L5IJ4.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-6EQ7G3SZ.js';
5
- import '../chunk-EWLVLDRP.js';
6
- import '../chunk-2FKZAAV7.js';
7
- import '../chunk-FO4WVGUQ.js';
8
- import '../chunk-N2S25NXP.js';
4
+ import '../chunk-ZPX4LBQZ.js';
5
+ import '../chunk-VPGOT3JO.js';
6
+ import '../chunk-VEWF3NFM.js';
7
+ import '../chunk-GNLCPK6N.js';
8
+ import '../chunk-H3PJJKAQ.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
@@ -1,11 +1,11 @@
1
- export { getProductPreview, isProductPreviewQuery, parseNextPageToken, product, productDetailQueryKey, productPreviewQueryKey, rememberProductPreview, shouldDehydrateQuery } from '../chunk-56T47K7P.js';
2
- import '../chunk-RWBTMHLR.js';
1
+ export { getProductPreview, isProductPreviewQuery, parseNextPageToken, product, productDetailQueryKey, productPreviewQueryKey, rememberProductPreview, shouldDehydrateQuery } from '../chunk-RI5PSI34.js';
2
+ import '../chunk-GT2L5IJ4.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-6EQ7G3SZ.js';
5
- import '../chunk-EWLVLDRP.js';
6
- import '../chunk-2FKZAAV7.js';
7
- import '../chunk-FO4WVGUQ.js';
8
- import '../chunk-N2S25NXP.js';
4
+ import '../chunk-ZPX4LBQZ.js';
5
+ import '../chunk-VPGOT3JO.js';
6
+ import '../chunk-VEWF3NFM.js';
7
+ import '../chunk-GNLCPK6N.js';
8
+ import '../chunk-H3PJJKAQ.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
@@ -1,7 +1,7 @@
1
- import { api } from '../chunk-6EQ7G3SZ.js';
2
- import '../chunk-2FKZAAV7.js';
3
- import '../chunk-FO4WVGUQ.js';
4
- import '../chunk-N2S25NXP.js';
1
+ import { api } from '../chunk-ZPX4LBQZ.js';
2
+ import '../chunk-VEWF3NFM.js';
3
+ import '../chunk-GNLCPK6N.js';
4
+ import '../chunk-H3PJJKAQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
 
package/dist/api/store.js CHANGED
@@ -1,8 +1,8 @@
1
- export { store } from '../chunk-G3UTLICK.js';
2
- import '../chunk-6EQ7G3SZ.js';
3
- import '../chunk-2FKZAAV7.js';
4
- export { resolveStoreIdentifier } from '../chunk-FO4WVGUQ.js';
5
- import '../chunk-N2S25NXP.js';
1
+ export { store } from '../chunk-JDLXT6VI.js';
2
+ import '../chunk-ZPX4LBQZ.js';
3
+ import '../chunk-VEWF3NFM.js';
4
+ export { resolveStoreIdentifier } from '../chunk-GNLCPK6N.js';
5
+ import '../chunk-H3PJJKAQ.js';
6
6
  import '../chunk-T72DAX7R.js';
7
7
  import '../chunk-DGUM43GV.js';
8
8
  //# sourceMappingURL=store.js.map
@@ -1,8 +1,8 @@
1
- export { commonTranslationsPath, storeTranslationsPath, translations } from '../chunk-NZRJOAA7.js';
2
- import '../chunk-6EQ7G3SZ.js';
3
- import '../chunk-2FKZAAV7.js';
4
- import '../chunk-FO4WVGUQ.js';
5
- import '../chunk-N2S25NXP.js';
1
+ export { commonTranslationsPath, storeTranslationsPath, translations } from '../chunk-YXI2ZCXD.js';
2
+ import '../chunk-ZPX4LBQZ.js';
3
+ import '../chunk-VEWF3NFM.js';
4
+ import '../chunk-GNLCPK6N.js';
5
+ import '../chunk-H3PJJKAQ.js';
6
6
  import '../chunk-T72DAX7R.js';
7
7
  import '../chunk-DGUM43GV.js';
8
8
  //# sourceMappingURL=translations.js.map
package/dist/api/user.js CHANGED
@@ -1,8 +1,8 @@
1
- export { user } from '../chunk-J5X4LXNM.js';
2
- import '../chunk-6EQ7G3SZ.js';
3
- import '../chunk-2FKZAAV7.js';
4
- import '../chunk-FO4WVGUQ.js';
5
- import '../chunk-N2S25NXP.js';
1
+ export { user } from '../chunk-XMO7HDZZ.js';
2
+ import '../chunk-ZPX4LBQZ.js';
3
+ import '../chunk-VEWF3NFM.js';
4
+ import '../chunk-GNLCPK6N.js';
5
+ import '../chunk-H3PJJKAQ.js';
6
6
  import '../chunk-T72DAX7R.js';
7
7
  import '../chunk-DGUM43GV.js';
8
8
  //# sourceMappingURL=user.js.map
@@ -1,8 +1,8 @@
1
- export { wallet } from '../chunk-2FDLEB5J.js';
2
- import '../chunk-6EQ7G3SZ.js';
3
- import '../chunk-2FKZAAV7.js';
4
- import '../chunk-FO4WVGUQ.js';
5
- import '../chunk-N2S25NXP.js';
1
+ export { wallet } from '../chunk-UY57T42N.js';
2
+ import '../chunk-ZPX4LBQZ.js';
3
+ import '../chunk-VEWF3NFM.js';
4
+ import '../chunk-GNLCPK6N.js';
5
+ import '../chunk-H3PJJKAQ.js';
6
6
  import '../chunk-T72DAX7R.js';
7
7
  import '../chunk-DGUM43GV.js';
8
8
  //# sourceMappingURL=wallet.js.map
@@ -1,12 +1,12 @@
1
- export { wishlist } from '../chunk-OZP2FID7.js';
2
- import '../chunk-56T47K7P.js';
3
- import '../chunk-RWBTMHLR.js';
1
+ export { wishlist } from '../chunk-TSAIM4XM.js';
2
+ import '../chunk-RI5PSI34.js';
3
+ import '../chunk-GT2L5IJ4.js';
4
4
  import '../chunk-OUW6WESU.js';
5
- import '../chunk-6EQ7G3SZ.js';
6
- import '../chunk-EWLVLDRP.js';
7
- import '../chunk-2FKZAAV7.js';
8
- import '../chunk-FO4WVGUQ.js';
9
- import '../chunk-N2S25NXP.js';
5
+ import '../chunk-ZPX4LBQZ.js';
6
+ import '../chunk-VPGOT3JO.js';
7
+ import '../chunk-VEWF3NFM.js';
8
+ import '../chunk-GNLCPK6N.js';
9
+ import '../chunk-H3PJJKAQ.js';
10
10
  import '../chunk-T72DAX7R.js';
11
11
  import '../chunk-DF6FBKDN.js';
12
12
  import '../chunk-DGUM43GV.js';
@@ -1,5 +1,5 @@
1
- import { orThrow } from './chunk-RWBTMHLR.js';
2
- import { getActiveScope, api } from './chunk-6EQ7G3SZ.js';
1
+ import { orThrow } from './chunk-GT2L5IJ4.js';
2
+ import { getActiveScope, api } from './chunk-ZPX4LBQZ.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var category = {
@@ -26,5 +26,5 @@ var category = {
26
26
  };
27
27
 
28
28
  export { category };
29
- //# sourceMappingURL=chunk-IBSQO6LW.js.map
30
- //# sourceMappingURL=chunk-IBSQO6LW.js.map
29
+ //# sourceMappingURL=chunk-224CL4SD.js.map
30
+ //# sourceMappingURL=chunk-224CL4SD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/category.ts"],"names":[],"mappings":";;;;AAKO,IAAM,QAAA,GAAW;AAAA,EACtB,IAAA,EAAM,OAAO,EAAA,KAAkC;AAC7C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,WAAA,EAAc,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAyB;AAC5E,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAAkC,QAAQ,QAAA,CAAS,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEzE,MAAM,YAAiC;AACrC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,YAAY,EAAE,IAAA,EAA2B;AACxE,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,YAAA,EAAc,QAAA,EAAU,EAAE,CAAA;AAAA,MACrC,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,EAAE;AAAA,KAChC,CAAA;AAAA,IAEH,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA;AAAA,MAEX,QAAA,EAAU,CAAC,YAAA,EAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,cAAA,IAAkB,CAAA;AAAA,MAC5D,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA;AAAK,KAC9B;AAAA;AAEP","file":"chunk-IBSQO6LW.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getActiveScope } from './client';\nimport type { Category } from '../types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const category = {\n find: async (id: string): Promise<Category> => {\n const { data } = await api.get(`categories/${id}`).json<{ data: Category }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Category> => orThrow(category.find(id)),\n\n list: async (): Promise<Category[]> => {\n const { data } = await api.get('categories').json<{ data: Category[] }>();\n return data ?? [];\n },\n\n queries: {\n detail: (id: string) =>\n queryOptions({\n queryKey: ['categories', 'detail', id],\n queryFn: () => category.find(id),\n }),\n\n list: () =>\n queryOptions({\n // Scope (branch) varies the API response — key must include it.\n queryKey: ['categories', 'list', { scope: getActiveScope() }],\n queryFn: () => category.list(),\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/category.ts"],"names":[],"mappings":";;;;AAKO,IAAM,QAAA,GAAW;AAAA,EACtB,IAAA,EAAM,OAAO,EAAA,KAAkC;AAC7C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,WAAA,EAAc,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAyB;AAC5E,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAAkC,QAAQ,QAAA,CAAS,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEzE,MAAM,YAAiC;AACrC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,YAAY,EAAE,IAAA,EAA2B;AACxE,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,YAAA,EAAc,QAAA,EAAU,EAAE,CAAA;AAAA,MACrC,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,EAAE;AAAA,KAChC,CAAA;AAAA,IAEH,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA;AAAA,MAEX,QAAA,EAAU,CAAC,YAAA,EAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,cAAA,IAAkB,CAAA;AAAA,MAC5D,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA;AAAK,KAC9B;AAAA;AAEP","file":"chunk-224CL4SD.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getActiveScope } from './client';\nimport type { Category } from '../types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const category = {\n find: async (id: string): Promise<Category> => {\n const { data } = await api.get(`categories/${id}`).json<{ data: Category }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Category> => orThrow(category.find(id)),\n\n list: async (): Promise<Category[]> => {\n const { data } = await api.get('categories').json<{ data: Category[] }>();\n return data ?? [];\n },\n\n queries: {\n detail: (id: string) =>\n queryOptions({\n queryKey: ['categories', 'detail', id],\n queryFn: () => category.find(id),\n }),\n\n list: () =>\n queryOptions({\n // Scope (branch) varies the API response — key must include it.\n queryKey: ['categories', 'list', { scope: getActiveScope() }],\n queryFn: () => category.list(),\n }),\n },\n};\n"]}
@@ -1,6 +1,6 @@
1
- import { getActiveCurrency } from './chunk-6EQ7G3SZ.js';
2
- import { whenSallaLoaded } from './chunk-2FKZAAV7.js';
3
- import { getTwilightContext } from './chunk-N2S25NXP.js';
1
+ import { getActiveCurrency } from './chunk-ZPX4LBQZ.js';
2
+ import { whenSallaLoaded } from './chunk-VEWF3NFM.js';
3
+ import { getTwilightContext } from './chunk-H3PJJKAQ.js';
4
4
 
5
5
  // src/utils/sdk-events.ts
6
6
  function dispatchRouteChanged() {
@@ -36,5 +36,5 @@ function dispatchProductViewed(product) {
36
36
  }
37
37
 
38
38
  export { dispatchProductViewed, dispatchRouteChanged };
39
- //# sourceMappingURL=chunk-TIPR4JUO.js.map
40
- //# sourceMappingURL=chunk-TIPR4JUO.js.map
39
+ //# sourceMappingURL=chunk-3W746XYR.js.map
40
+ //# sourceMappingURL=chunk-3W746XYR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/utils/sdk-events.ts"],"names":[],"mappings":";;;;;AA6BO,SAAS,oBAAA,GAA6B;AAC3C,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAEnC,EAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,EAAA,IAAI,CAAC,KAAA,EAAO,KAAA,EAAO,QAAA,EAAU;AAE7B,EAAA,MAAM,MAAM,kBAAA,EAAmB;AAC/B,EAAA,KAAA,CAAM,MAAM,QAAA,CAAS,gBAAA,EAAkB,GAAA,CAAI,IAAA,IAAQ,EAAE,CAAA;AACvD;AAMO,SAAS,sBAAsB,OAAA,EAAwB;AAC5D,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACnC,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,IAAK,CAAA;AACvC,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,EAAO,GAAA,IAAO,EAAA;AACpC,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,IAAI,OAAA,CAAQ,EAAA;AAAA,IACZ,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,UAAA,EAAY,OAAA,CAAQ,QAAA,GAAW,CAAC,EAAE,EAAA,EAAI,OAAA,CAAQ,QAAA,CAAS,EAAA,EAAI,MAAM,OAAA,CAAQ,QAAA,CAAS,IAAA,EAAM,IAAI,EAAC;AAAA,IAC7F,QAAA,EAAU,OAAA,CAAQ,QAAA,EAAU,IAAA,IAAQ,EAAA;AAAA,IACpC,KAAA;AAAA,IACA,QAAA,EAAU,CAAA;AAAA,IACV,OAAA,EAAS,EAAA;AAAA,IACT,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAO,IAAA,IAAQ,EAAA;AAAA,IAC9B,KAAA;AAAA,IACA,QAAA,EAAU,iBAAA,CAAkB,OAAA,CAAQ,QAAQ,CAAA;AAAA,IAC5C,GAAA,EAAK,QAAQ,GAAA,IAAO,EAAA;AAAA,IACpB,KAAA,EAAO,KAAA;AAAA,IACP,KAAK,OAAA,CAAQ,GAAA;AAAA,IACb,SAAA,EAAW;AAAA,GACb;AAEA,EAAA,eAAA;AAAA,IACE,CAAC,GAAA,KAAQ,KAAK,GAAA,CAAI,SAAQ,CAAE,IAAA,CAAK,MAAM,GAAA,CAAI,MAAM,QAAA,CAAS,gBAAA,EAAkB,CAAC,OAAO,CAAC,CAAC;AAAA,GACxF;AACF","file":"chunk-TIPR4JUO.js","sourcesContent":["import { getTwilightContext } from '../twilight/context';\nimport type { PageContext } from '../twilight/context';\nimport type { Product } from '../types';\nimport { getActiveCurrency } from '../api/client';\nimport { whenSallaLoaded } from './sdk-helpers';\n\n/**\n * Payload dispatched via `salla.event.dispatch('route::changed', payload)`\n * after each client-side navigation completes.\n *\n * The page config fields are spread at root level. When the matched route\n * has no page data (e.g., 404, error boundary), an empty object is dispatched.\n *\n * @example\n * ```ts\n * salla.event.on('route::changed', (page: RouteChangedEvent) => {\n * console.log(page.slug, page.title, page.id);\n * });\n * ```\n */\nexport type RouteChangedEvent = PageContext;\n\n/**\n * Dispatch the `route::changed` Salla SDK event with the current page config.\n *\n * Framework-agnostic — reads from the twilight context store which is\n * populated by whichever framework adapter is active (TanStack, Next.js, etc.).\n * Each adapter should call this after navigation resolves.\n */\nexport function dispatchRouteChanged(): void {\n if (typeof window === 'undefined') return;\n\n const salla = window.salla;\n if (!salla?.event?.dispatch) return;\n\n const ctx = getTwilightContext();\n salla.event.dispatch('route::changed', ctx.page ?? {});\n}\n\n/**\n * Dispatch `Product Viewed`, which Twig's product page hands the SDK through `salla.init`'s\n * `events`: store analytics, pixels and apps that remember viewed products listen for it.\n */\nexport function dispatchProductViewed(product: Product): void {\n if (typeof window === 'undefined') return;\n const price = Number(product.price) || 0;\n const image = product.image?.url ?? '';\n const payload = {\n id: product.id,\n name: product.name,\n categories: product.category ? [{ id: product.category.id, name: product.category.name }] : [],\n category: product.category?.name ?? '',\n price,\n quantity: 1,\n variant: '',\n brand: product.brand?.name ?? '',\n image,\n currency: getActiveCurrency(product.currency),\n sku: product.sku ?? '',\n value: price,\n url: product.url,\n image_url: image,\n };\n // After init: analytics drops events until `salla.init` has merged the store's `jitsu` list.\n whenSallaLoaded(\n (sdk) => void sdk.onReady().then(() => sdk.event.dispatch('Product Viewed', [payload]))\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/utils/sdk-events.ts"],"names":[],"mappings":";;;;;AA6BO,SAAS,oBAAA,GAA6B;AAC3C,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AAEnC,EAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,EAAA,IAAI,CAAC,KAAA,EAAO,KAAA,EAAO,QAAA,EAAU;AAE7B,EAAA,MAAM,MAAM,kBAAA,EAAmB;AAC/B,EAAA,KAAA,CAAM,MAAM,QAAA,CAAS,gBAAA,EAAkB,GAAA,CAAI,IAAA,IAAQ,EAAE,CAAA;AACvD;AAMO,SAAS,sBAAsB,OAAA,EAAwB;AAC5D,EAAA,IAAI,OAAO,WAAW,WAAA,EAAa;AACnC,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,IAAK,CAAA;AACvC,EAAA,MAAM,KAAA,GAAQ,OAAA,CAAQ,KAAA,EAAO,GAAA,IAAO,EAAA;AACpC,EAAA,MAAM,OAAA,GAAU;AAAA,IACd,IAAI,OAAA,CAAQ,EAAA;AAAA,IACZ,MAAM,OAAA,CAAQ,IAAA;AAAA,IACd,UAAA,EAAY,OAAA,CAAQ,QAAA,GAAW,CAAC,EAAE,EAAA,EAAI,OAAA,CAAQ,QAAA,CAAS,EAAA,EAAI,MAAM,OAAA,CAAQ,QAAA,CAAS,IAAA,EAAM,IAAI,EAAC;AAAA,IAC7F,QAAA,EAAU,OAAA,CAAQ,QAAA,EAAU,IAAA,IAAQ,EAAA;AAAA,IACpC,KAAA;AAAA,IACA,QAAA,EAAU,CAAA;AAAA,IACV,OAAA,EAAS,EAAA;AAAA,IACT,KAAA,EAAO,OAAA,CAAQ,KAAA,EAAO,IAAA,IAAQ,EAAA;AAAA,IAC9B,KAAA;AAAA,IACA,QAAA,EAAU,iBAAA,CAAkB,OAAA,CAAQ,QAAQ,CAAA;AAAA,IAC5C,GAAA,EAAK,QAAQ,GAAA,IAAO,EAAA;AAAA,IACpB,KAAA,EAAO,KAAA;AAAA,IACP,KAAK,OAAA,CAAQ,GAAA;AAAA,IACb,SAAA,EAAW;AAAA,GACb;AAEA,EAAA,eAAA;AAAA,IACE,CAAC,GAAA,KAAQ,KAAK,GAAA,CAAI,SAAQ,CAAE,IAAA,CAAK,MAAM,GAAA,CAAI,MAAM,QAAA,CAAS,gBAAA,EAAkB,CAAC,OAAO,CAAC,CAAC;AAAA,GACxF;AACF","file":"chunk-3W746XYR.js","sourcesContent":["import { getTwilightContext } from '../twilight/context';\nimport type { PageContext } from '../twilight/context';\nimport type { Product } from '../types';\nimport { getActiveCurrency } from '../api/client';\nimport { whenSallaLoaded } from './sdk-helpers';\n\n/**\n * Payload dispatched via `salla.event.dispatch('route::changed', payload)`\n * after each client-side navigation completes.\n *\n * The page config fields are spread at root level. When the matched route\n * has no page data (e.g., 404, error boundary), an empty object is dispatched.\n *\n * @example\n * ```ts\n * salla.event.on('route::changed', (page: RouteChangedEvent) => {\n * console.log(page.slug, page.title, page.id);\n * });\n * ```\n */\nexport type RouteChangedEvent = PageContext;\n\n/**\n * Dispatch the `route::changed` Salla SDK event with the current page config.\n *\n * Framework-agnostic — reads from the twilight context store which is\n * populated by whichever framework adapter is active (TanStack, Next.js, etc.).\n * Each adapter should call this after navigation resolves.\n */\nexport function dispatchRouteChanged(): void {\n if (typeof window === 'undefined') return;\n\n const salla = window.salla;\n if (!salla?.event?.dispatch) return;\n\n const ctx = getTwilightContext();\n salla.event.dispatch('route::changed', ctx.page ?? {});\n}\n\n/**\n * Dispatch `Product Viewed`, which Twig's product page hands the SDK through `salla.init`'s\n * `events`: store analytics, pixels and apps that remember viewed products listen for it.\n */\nexport function dispatchProductViewed(product: Product): void {\n if (typeof window === 'undefined') return;\n const price = Number(product.price) || 0;\n const image = product.image?.url ?? '';\n const payload = {\n id: product.id,\n name: product.name,\n categories: product.category ? [{ id: product.category.id, name: product.category.name }] : [],\n category: product.category?.name ?? '',\n price,\n quantity: 1,\n variant: '',\n brand: product.brand?.name ?? '',\n image,\n currency: getActiveCurrency(product.currency),\n sku: product.sku ?? '',\n value: price,\n url: product.url,\n image_url: image,\n };\n // After init: analytics drops events until `salla.init` has merged the store's `jitsu` list.\n whenSallaLoaded(\n (sdk) => void sdk.onReady().then(() => sdk.event.dispatch('Product Viewed', [payload]))\n );\n}\n"]}
@@ -4,7 +4,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
4
4
  export { BlogSkeleton, BreadcrumbSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from '@salla.sa/twilight-components-react';
5
5
 
6
6
  var LazyBreadcrumb = lazy(
7
- () => import('./Breadcrumb-6S5OVQFO.js').then((m) => ({ default: m.Breadcrumb }))
7
+ () => import('./Breadcrumb-GJI3N76F.js').then((m) => ({ default: m.Breadcrumb }))
8
8
  );
9
9
  var LazyNoContent = lazy(
10
10
  () => import('./NoContent-63TMCPGY.js').then((m) => ({ default: m.NoContent }))
@@ -153,5 +153,5 @@ function DeferredData({ promise, fallback, children }) {
153
153
  }
154
154
 
155
155
  export { DeferredData, Image, LazyBreadcrumb, LazyCurrencySymbol, LazyErrorPage, LazyNoContent, LazyRenderWhenVisible, resolveDeferred };
156
- //# sourceMappingURL=chunk-EV64HPL2.js.map
157
- //# sourceMappingURL=chunk-EV64HPL2.js.map
156
+ //# sourceMappingURL=chunk-44FMRCHW.js.map
157
+ //# sourceMappingURL=chunk-44FMRCHW.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/common/lazy.ts","../src/components/common/Image.tsx","../src/components/common/DeferredData.tsx"],"names":["Image","memo","DeferredRenderer","jsx"],"mappings":"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","file":"chunk-EV64HPL2.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded common components\n * Use these for code-splitting non-critical components\n *\n * NOTE: Skeleton components are sourced from @salla.sa/twilight-components-react\n * because they must render instantly during route transitions.\n */\nexport const LazyBreadcrumb = lazy(() =>\n import('./Breadcrumb').then((m) => ({ default: m.Breadcrumb }))\n);\n\nexport const LazyNoContent = lazy(() =>\n import('./NoContent').then((m) => ({ default: m.NoContent }))\n);\n\nexport const LazyRenderWhenVisible = lazy(() =>\n import('./RenderWhenVisible').then((m) => ({ default: m.RenderWhenVisible }))\n);\n\nexport const LazyCurrencySymbol = lazy(() =>\n import('./CurrencySymbol').then((m) => ({ default: m.CurrencySymbol }))\n);\n\nexport const LazyErrorPage = lazy(() =>\n import('./ErrorPage').then((m) => ({ default: m.ErrorPage }))\n);\n","import { memo } from 'react';\nimport { getCdnImageSrcSet, getCdnImageUrl } from '../../utils/cdn-image';\n\nexport interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n /** Image source URL */\n src?: string;\n /** Alt text for accessibility */\n alt: string;\n /** Whether this image is above the fold / LCP candidate */\n priority?: boolean;\n /** Aspect ratio for CLS prevention (e.g. \"16/9\", \"1/1\", \"4/3\") */\n aspectRatio?: string;\n /** Object fit mode */\n objectFit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';\n /** Mobile image source for <picture> element */\n mobileSrc?: string;\n /** Mobile breakpoint for <source> media query (default: 768px) */\n mobileBreakpoint?: number;\n /** Skip the wrapper div */\n noWrapper?: boolean;\n /**\n * CDN widths for a density `srcset`. Pass `sizes` so the browser picks a\n * candidate close to the displayed CSS size.\n */\n srcSetWidths?: readonly number[];\n}\n\n/**\n * Optimized Image component with native browser lazy loading.\n *\n * - Uses `loading=\"lazy\"` + `decoding=\"async\"` by default for below-the-fold images.\n * - Uses `loading=\"eager\"` + `fetchPriority=\"high\"` for priority (above-the-fold / LCP) images.\n * - Supports responsive `<picture>` with mobile source.\n * - Provides `aspectRatio` for CLS prevention.\n * - When `srcSetWidths` + `sizes` are set, emits a sized CDN `srcset`.\n */\nexport const Image = memo(function Image({\n src,\n alt,\n priority = false,\n aspectRatio,\n objectFit = 'cover',\n mobileSrc,\n mobileBreakpoint = 768,\n noWrapper = false,\n className = '',\n style,\n width,\n height,\n sizes,\n srcSet: srcSetProp,\n srcSetWidths,\n ...rest\n}: ImageProps) {\n if (!src) return null;\n\n const generatedSrcSet =\n srcSetProp || (srcSetWidths?.length ? getCdnImageSrcSet(src, srcSetWidths) : undefined);\n const generatedMobileSrcSet =\n srcSetWidths?.length && mobileSrc ? getCdnImageSrcSet(mobileSrc, srcSetWidths) : undefined;\n const cdnWidth = srcSetWidths?.length\n ? width != null && srcSetWidths.includes(Number(width))\n ? Number(width)\n : srcSetWidths[0]\n : width;\n // Width-only CDN URLs so `src` matches a srcset candidate for preload.\n const cdnOptions = generatedSrcSet ? { width: cdnWidth } : { width: cdnWidth, height };\n\n const optimizedSrc = getCdnImageUrl(src, cdnOptions);\n const optimizedMobileSrc = getCdnImageUrl(mobileSrc, cdnOptions);\n\n const objectFitClass = `object-${objectFit}`;\n const imgClasses = [className, objectFitClass].filter(Boolean).join(' ');\n\n const loadingProps: React.ImgHTMLAttributes<HTMLImageElement> = priority\n ? { loading: 'eager' as const, fetchPriority: 'high' as const, decoding: 'sync' as const }\n : { loading: 'lazy' as const, decoding: 'async' as const };\n\n const hasWrapper = !noWrapper && !!aspectRatio;\n\n const img = (\n <img\n src={optimizedSrc}\n alt={alt}\n className={imgClasses}\n width={width}\n height={height}\n sizes={sizes}\n srcSet={generatedSrcSet}\n // With a wrapper, `style` goes to the wrapper; otherwise it must land on the <img>.\n style={hasWrapper ? undefined : style}\n {...loadingProps}\n {...rest}\n />\n );\n\n const imgElement = optimizedMobileSrc ? (\n <picture>\n <source\n media={`(max-width: ${mobileBreakpoint}px)`}\n srcSet={generatedMobileSrcSet || optimizedMobileSrc}\n sizes={generatedMobileSrcSet ? sizes : undefined}\n />\n {img}\n </picture>\n ) : (\n img\n );\n\n if (!hasWrapper) {\n return imgElement;\n }\n\n return (\n <div className=\"relative overflow-hidden\" style={{ aspectRatio, ...style }}>\n {imgElement}\n </div>\n );\n});\n","import { Suspense, memo, use, type ReactNode } from 'react';\n\nexport interface DeferredDataProps<T> {\n promise: Promise<T> | T;\n fallback: ReactNode;\n children: (data: T) => ReactNode;\n}\n\nconst DEFERRED_KEY = Symbol.for('twilight.deferred');\n\ninterface DeferredState<T> {\n status: 'pending' | 'success' | 'error';\n value?: T;\n error?: unknown;\n}\n\nexport interface DeferredPromise<T> extends Promise<T> {\n [DEFERRED_KEY]?: DeferredState<T>;\n}\n\nconst seenPromises = typeof WeakSet !== 'undefined' ? new WeakSet() : null;\n\nfunction defer<T>(promise: Promise<T>): DeferredPromise<T> {\n const existing = (promise as DeferredPromise<T>)[DEFERRED_KEY];\n if (existing) return promise as DeferredPromise<T>;\n\n const state: DeferredState<T> = { status: 'pending' };\n\n const deferred = promise as DeferredPromise<T>;\n deferred[DEFERRED_KEY] = state;\n\n promise.then(\n (value) => {\n state.status = 'success';\n state.value = value;\n },\n (error) => {\n state.status = 'error';\n state.error = error;\n }\n );\n\n return deferred;\n}\n\nconst DeferredRenderer = memo(function DeferredRenderer<T>({\n promise,\n children,\n}: {\n promise: DeferredPromise<T>;\n children: (data: T) => ReactNode;\n}) {\n const state = promise[DEFERRED_KEY];\n\n if (state?.status === 'success') {\n return children(state.value!);\n }\n\n if (state?.status === 'error') {\n throw state.error;\n }\n\n const data = use(promise);\n return children(data);\n}) as <T>(props: { promise: DeferredPromise<T>; children: (data: T) => ReactNode }) => ReactNode;\n\nfunction DeferredFallback<T>({\n promise,\n fallback,\n children,\n}: {\n promise: DeferredPromise<T>;\n fallback: ReactNode;\n children: (data: T) => ReactNode;\n}) {\n const state = promise[DEFERRED_KEY];\n if (state?.status === 'success') {\n return children(state.value!);\n }\n return <>{fallback}</>;\n}\n\nexport function resolveDeferred<T>(\n promiseOrValue: Promise<T> | T | undefined\n): T | Promise<T> | undefined {\n if (promiseOrValue == null || !(promiseOrValue instanceof Promise)) return promiseOrValue;\n const deferred = defer(promiseOrValue);\n const state = deferred[DEFERRED_KEY];\n if (state?.status === 'success') return state.value as T;\n return promiseOrValue;\n}\n\nexport function DeferredData<T>({ promise, fallback, children }: DeferredDataProps<T>) {\n if (!(promise instanceof Promise)) {\n return children(promise);\n }\n\n if (seenPromises && promise instanceof Promise) seenPromises.add(promise);\n\n const deferred = defer(promise);\n const state = deferred[DEFERRED_KEY];\n\n if (state?.status === 'success') {\n return children(state.value!);\n }\n\n if (state?.status === 'error') {\n throw state.error;\n }\n\n return (\n <Suspense\n fallback={\n <DeferredFallback promise={deferred} fallback={fallback}>\n {children}\n </DeferredFallback>\n }\n >\n <DeferredRenderer promise={deferred}>{children}</DeferredRenderer>\n </Suspense>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/common/lazy.ts","../src/components/common/Image.tsx","../src/components/common/DeferredData.tsx"],"names":["Image","memo","DeferredRenderer","jsx"],"mappings":"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","file":"chunk-44FMRCHW.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded common components\n * Use these for code-splitting non-critical components\n *\n * NOTE: Skeleton components are sourced from @salla.sa/twilight-components-react\n * because they must render instantly during route transitions.\n */\nexport const LazyBreadcrumb = lazy(() =>\n import('./Breadcrumb').then((m) => ({ default: m.Breadcrumb }))\n);\n\nexport const LazyNoContent = lazy(() =>\n import('./NoContent').then((m) => ({ default: m.NoContent }))\n);\n\nexport const LazyRenderWhenVisible = lazy(() =>\n import('./RenderWhenVisible').then((m) => ({ default: m.RenderWhenVisible }))\n);\n\nexport const LazyCurrencySymbol = lazy(() =>\n import('./CurrencySymbol').then((m) => ({ default: m.CurrencySymbol }))\n);\n\nexport const LazyErrorPage = lazy(() =>\n import('./ErrorPage').then((m) => ({ default: m.ErrorPage }))\n);\n","import { memo } from 'react';\nimport { getCdnImageSrcSet, getCdnImageUrl } from '../../utils/cdn-image';\n\nexport interface ImageProps extends React.ImgHTMLAttributes<HTMLImageElement> {\n /** Image source URL */\n src?: string;\n /** Alt text for accessibility */\n alt: string;\n /** Whether this image is above the fold / LCP candidate */\n priority?: boolean;\n /** Aspect ratio for CLS prevention (e.g. \"16/9\", \"1/1\", \"4/3\") */\n aspectRatio?: string;\n /** Object fit mode */\n objectFit?: 'cover' | 'contain' | 'fill' | 'none' | 'scale-down';\n /** Mobile image source for <picture> element */\n mobileSrc?: string;\n /** Mobile breakpoint for <source> media query (default: 768px) */\n mobileBreakpoint?: number;\n /** Skip the wrapper div */\n noWrapper?: boolean;\n /**\n * CDN widths for a density `srcset`. Pass `sizes` so the browser picks a\n * candidate close to the displayed CSS size.\n */\n srcSetWidths?: readonly number[];\n}\n\n/**\n * Optimized Image component with native browser lazy loading.\n *\n * - Uses `loading=\"lazy\"` + `decoding=\"async\"` by default for below-the-fold images.\n * - Uses `loading=\"eager\"` + `fetchPriority=\"high\"` for priority (above-the-fold / LCP) images.\n * - Supports responsive `<picture>` with mobile source.\n * - Provides `aspectRatio` for CLS prevention.\n * - When `srcSetWidths` + `sizes` are set, emits a sized CDN `srcset`.\n */\nexport const Image = memo(function Image({\n src,\n alt,\n priority = false,\n aspectRatio,\n objectFit = 'cover',\n mobileSrc,\n mobileBreakpoint = 768,\n noWrapper = false,\n className = '',\n style,\n width,\n height,\n sizes,\n srcSet: srcSetProp,\n srcSetWidths,\n ...rest\n}: ImageProps) {\n if (!src) return null;\n\n const generatedSrcSet =\n srcSetProp || (srcSetWidths?.length ? getCdnImageSrcSet(src, srcSetWidths) : undefined);\n const generatedMobileSrcSet =\n srcSetWidths?.length && mobileSrc ? getCdnImageSrcSet(mobileSrc, srcSetWidths) : undefined;\n const cdnWidth = srcSetWidths?.length\n ? width != null && srcSetWidths.includes(Number(width))\n ? Number(width)\n : srcSetWidths[0]\n : width;\n // Width-only CDN URLs so `src` matches a srcset candidate for preload.\n const cdnOptions = generatedSrcSet ? { width: cdnWidth } : { width: cdnWidth, height };\n\n const optimizedSrc = getCdnImageUrl(src, cdnOptions);\n const optimizedMobileSrc = getCdnImageUrl(mobileSrc, cdnOptions);\n\n const objectFitClass = `object-${objectFit}`;\n const imgClasses = [className, objectFitClass].filter(Boolean).join(' ');\n\n const loadingProps: React.ImgHTMLAttributes<HTMLImageElement> = priority\n ? { loading: 'eager' as const, fetchPriority: 'high' as const, decoding: 'sync' as const }\n : { loading: 'lazy' as const, decoding: 'async' as const };\n\n const hasWrapper = !noWrapper && !!aspectRatio;\n\n const img = (\n <img\n src={optimizedSrc}\n alt={alt}\n className={imgClasses}\n width={width}\n height={height}\n sizes={sizes}\n srcSet={generatedSrcSet}\n // With a wrapper, `style` goes to the wrapper; otherwise it must land on the <img>.\n style={hasWrapper ? undefined : style}\n {...loadingProps}\n {...rest}\n />\n );\n\n const imgElement = optimizedMobileSrc ? (\n <picture>\n <source\n media={`(max-width: ${mobileBreakpoint}px)`}\n srcSet={generatedMobileSrcSet || optimizedMobileSrc}\n sizes={generatedMobileSrcSet ? sizes : undefined}\n />\n {img}\n </picture>\n ) : (\n img\n );\n\n if (!hasWrapper) {\n return imgElement;\n }\n\n return (\n <div className=\"relative overflow-hidden\" style={{ aspectRatio, ...style }}>\n {imgElement}\n </div>\n );\n});\n","import { Suspense, memo, use, type ReactNode } from 'react';\n\nexport interface DeferredDataProps<T> {\n promise: Promise<T> | T;\n fallback: ReactNode;\n children: (data: T) => ReactNode;\n}\n\nconst DEFERRED_KEY = Symbol.for('twilight.deferred');\n\ninterface DeferredState<T> {\n status: 'pending' | 'success' | 'error';\n value?: T;\n error?: unknown;\n}\n\nexport interface DeferredPromise<T> extends Promise<T> {\n [DEFERRED_KEY]?: DeferredState<T>;\n}\n\nconst seenPromises = typeof WeakSet !== 'undefined' ? new WeakSet() : null;\n\nfunction defer<T>(promise: Promise<T>): DeferredPromise<T> {\n const existing = (promise as DeferredPromise<T>)[DEFERRED_KEY];\n if (existing) return promise as DeferredPromise<T>;\n\n const state: DeferredState<T> = { status: 'pending' };\n\n const deferred = promise as DeferredPromise<T>;\n deferred[DEFERRED_KEY] = state;\n\n promise.then(\n (value) => {\n state.status = 'success';\n state.value = value;\n },\n (error) => {\n state.status = 'error';\n state.error = error;\n }\n );\n\n return deferred;\n}\n\nconst DeferredRenderer = memo(function DeferredRenderer<T>({\n promise,\n children,\n}: {\n promise: DeferredPromise<T>;\n children: (data: T) => ReactNode;\n}) {\n const state = promise[DEFERRED_KEY];\n\n if (state?.status === 'success') {\n return children(state.value!);\n }\n\n if (state?.status === 'error') {\n throw state.error;\n }\n\n const data = use(promise);\n return children(data);\n}) as <T>(props: { promise: DeferredPromise<T>; children: (data: T) => ReactNode }) => ReactNode;\n\nfunction DeferredFallback<T>({\n promise,\n fallback,\n children,\n}: {\n promise: DeferredPromise<T>;\n fallback: ReactNode;\n children: (data: T) => ReactNode;\n}) {\n const state = promise[DEFERRED_KEY];\n if (state?.status === 'success') {\n return children(state.value!);\n }\n return <>{fallback}</>;\n}\n\nexport function resolveDeferred<T>(\n promiseOrValue: Promise<T> | T | undefined\n): T | Promise<T> | undefined {\n if (promiseOrValue == null || !(promiseOrValue instanceof Promise)) return promiseOrValue;\n const deferred = defer(promiseOrValue);\n const state = deferred[DEFERRED_KEY];\n if (state?.status === 'success') return state.value as T;\n return promiseOrValue;\n}\n\nexport function DeferredData<T>({ promise, fallback, children }: DeferredDataProps<T>) {\n if (!(promise instanceof Promise)) {\n return children(promise);\n }\n\n if (seenPromises && promise instanceof Promise) seenPromises.add(promise);\n\n const deferred = defer(promise);\n const state = deferred[DEFERRED_KEY];\n\n if (state?.status === 'success') {\n return children(state.value!);\n }\n\n if (state?.status === 'error') {\n throw state.error;\n }\n\n return (\n <Suspense\n fallback={\n <DeferredFallback promise={deferred} fallback={fallback}>\n {children}\n </DeferredFallback>\n }\n >\n <DeferredRenderer promise={deferred}>{children}</DeferredRenderer>\n </Suspense>\n );\n}\n"]}
@@ -1,11 +1,11 @@
1
1
  import { registry } from './chunk-Y32RHCOH.js';
2
- import { useMoney, useNumber } from './chunk-OU66LX2C.js';
2
+ import { useMoney, useNumber } from './chunk-UIXEKYTM.js';
3
3
  import { useAsset } from './chunk-Z653O7MX.js';
4
- import { useWishlist } from './chunk-KNIGLCRV.js';
4
+ import { useWishlist } from './chunk-OOCN4RFV.js';
5
5
  import { useTranslation } from './chunk-TYNZ5B2B.js';
6
- import { Image } from './chunk-EV64HPL2.js';
6
+ import { Image } from './chunk-44FMRCHW.js';
7
7
  import { LazyImageModal } from './chunk-7V5HOZW4.js';
8
- import { isNativeApp } from './chunk-EWLVLDRP.js';
8
+ import { isNativeApp } from './chunk-VPGOT3JO.js';
9
9
  import { useTwilight } from './chunk-DF6FBKDN.js';
10
10
  import { lazy, memo, useCallback, useMemo, useState, useEffect, Suspense } from 'react';
11
11
  import { SallaAddProductButton } from '@salla.sa/twilight-components-react/add-product-button';
@@ -15,10 +15,10 @@ import { jsxs, jsx } from 'react/jsx-runtime';
15
15
  import { SallaSlider } from '@salla.sa/twilight-components-react/slider';
16
16
 
17
17
  var LazyProductDetails = lazy(
18
- () => import('./ProductDetails-FMY3HST5.js').then((m) => ({ default: m.ProductDetails }))
18
+ () => import('./ProductDetails-MN3GXUXK.js').then((m) => ({ default: m.ProductDetails }))
19
19
  );
20
20
  var LazyAddToCartForm = lazy(
21
- () => import('./AddToCartForm-ZUQDN5PU.js').then((m) => ({ default: m.AddToCartForm }))
21
+ () => import('./AddToCartForm-O7UZDX6G.js').then((m) => ({ default: m.AddToCartForm }))
22
22
  );
23
23
  var PRODUCT_CARD_KEY = "product:card";
24
24
  var PRODUCT_IMAGE_SRCSET_WIDTHS = [150, 300, 450, 600];
@@ -421,5 +421,5 @@ function ThumbSlide({ image, index }) {
421
421
  }
422
422
 
423
423
  export { LazyAddToCartForm, LazyProductDetails, ProductCard, ProductGallery };
424
- //# sourceMappingURL=chunk-PSR6GPA7.js.map
425
- //# sourceMappingURL=chunk-PSR6GPA7.js.map
424
+ //# sourceMappingURL=chunk-46EXP3AL.js.map
425
+ //# sourceMappingURL=chunk-46EXP3AL.js.map