@salla.sa/twilight-theme-engine 1.0.61 → 1.0.63

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 (277) hide show
  1. package/dist/{AddToCartForm-RAQX7VHU.js → AddToCartForm-365O6IQY.js} +26 -6
  2. package/dist/AddToCartForm-365O6IQY.js.map +1 -0
  3. package/dist/{BlogAuthorPage-HV6JUJNL.js → BlogAuthorPage-QIII3YRK.js} +12 -11
  4. package/dist/BlogAuthorPage-QIII3YRK.js.map +1 -0
  5. package/dist/{BlogCategoryPage-ATPIVUAL.js → BlogCategoryPage-HNGWYTN6.js} +12 -11
  6. package/dist/BlogCategoryPage-HNGWYTN6.js.map +1 -0
  7. package/dist/{BlogPage-6IIOSB45.js → BlogPage-7NGO5VLL.js} +10 -9
  8. package/dist/BlogPage-7NGO5VLL.js.map +1 -0
  9. package/dist/{BlogSinglePage-DV3XYB26.js → BlogSinglePage-Y42LPA2L.js} +10 -9
  10. package/dist/BlogSinglePage-Y42LPA2L.js.map +1 -0
  11. package/dist/{BlogTagPage-RVJIXERD.js → BlogTagPage-ZCFYLXH6.js} +12 -11
  12. package/dist/BlogTagPage-ZCFYLXH6.js.map +1 -0
  13. package/dist/{BrandsPage-RQXP67LV.js → BrandsPage-PPJVASUW.js} +11 -10
  14. package/dist/BrandsPage-PPJVASUW.js.map +1 -0
  15. package/dist/{Breadcrumb-NXXVZJJD.js → Breadcrumb-4DUAJK3V.js} +10 -9
  16. package/dist/Breadcrumb-4DUAJK3V.js.map +1 -0
  17. package/dist/{CartItem-XRWTSJB5.js → CartItem-T4N3HMXU.js} +83 -59
  18. package/dist/CartItem-T4N3HMXU.js.map +1 -0
  19. package/dist/{CartSummary-F6BY5APF.js → CartSummary-Z25JDFWN.js} +10 -9
  20. package/dist/CartSummary-Z25JDFWN.js.map +1 -0
  21. package/dist/{Copyright-TEDF6HMC.js → Copyright-WNJIDKSR.js} +3 -3
  22. package/dist/{Copyright-TEDF6HMC.js.map → Copyright-WNJIDKSR.js.map} +1 -1
  23. package/dist/{CustomerLayout-T5BSTU6T.js → CustomerLayout-A6DVYYC3.js} +10 -9
  24. package/dist/CustomerLayout-A6DVYYC3.js.map +1 -0
  25. package/dist/{Footer-IRX2WAEF.js → Footer-3YBOSAO5.js} +10 -9
  26. package/dist/{Footer-IRX2WAEF.js.map → Footer-3YBOSAO5.js.map} +1 -1
  27. package/dist/{Header-HQKDTZSI.js → Header-6M7TVMSW.js} +6 -6
  28. package/dist/{Header-HQKDTZSI.js.map → Header-6M7TVMSW.js.map} +1 -1
  29. package/dist/LoyaltyPage-XQJ6RDT6.js +61 -0
  30. package/dist/LoyaltyPage-XQJ6RDT6.js.map +1 -0
  31. package/dist/LoyaltyPointsPage-K75LJNNP.js +16 -0
  32. package/dist/LoyaltyPointsPage-K75LJNNP.js.map +1 -0
  33. package/dist/{MainMenu-4ZPVIJCN.js → MainMenu-V7GPKDTU.js} +3 -3
  34. package/dist/{MainMenu-4ZPVIJCN.js.map → MainMenu-V7GPKDTU.js.map} +1 -1
  35. package/dist/{MasterLayout-G3MVZLYZ.js → MasterLayout-MBQ4JM3D.js} +10 -9
  36. package/dist/{MasterLayout-G3MVZLYZ.js.map → MasterLayout-MBQ4JM3D.js.map} +1 -1
  37. package/dist/{MobileMenu-A5DBTPS7.js → MobileMenu-UFX4ZHW7.js} +10 -9
  38. package/dist/MobileMenu-UFX4ZHW7.js.map +1 -0
  39. package/dist/{NotificationsPage-T2O67MLD.js → NotificationsPage-M3YK2HRM.js} +10 -9
  40. package/dist/NotificationsPage-M3YK2HRM.js.map +1 -0
  41. package/dist/{OrderSinglePage-4W4JZX7I.js → OrderSinglePage-7LIUMNRB.js} +11 -10
  42. package/dist/OrderSinglePage-7LIUMNRB.js.map +1 -0
  43. package/dist/{OrdersPage-DYKFBMRC.js → OrdersPage-WI4OSGBF.js} +11 -10
  44. package/dist/OrdersPage-WI4OSGBF.js.map +1 -0
  45. package/dist/{PageSingle-6U6GPMXJ.js → PageSingle-HRMSVNHN.js} +4 -4
  46. package/dist/{PageSingle-6U6GPMXJ.js.map → PageSingle-HRMSVNHN.js.map} +1 -1
  47. package/dist/{ProductDetails-OWSIL357.js → ProductDetails-GAC3NYQM.js} +10 -3
  48. package/dist/ProductDetails-GAC3NYQM.js.map +1 -0
  49. package/dist/{ProfilePage-LLCIJHAI.js → ProfilePage-33I2XTJ6.js} +10 -9
  50. package/dist/ProfilePage-33I2XTJ6.js.map +1 -0
  51. package/dist/{SeoCartWidget-ZL3FTBWK.js → SeoCartWidget-AEG2YLEF.js} +13 -12
  52. package/dist/SeoCartWidget-AEG2YLEF.js.map +1 -0
  53. package/dist/{SettingsPage-2XU5IF4A.js → SettingsPage-N3M677LP.js} +10 -9
  54. package/dist/SettingsPage-N3M677LP.js.map +1 -0
  55. package/dist/{StoreClosedNotification-CNJI2Q26.js → StoreClosedNotification-5MTDRRC3.js} +11 -10
  56. package/dist/{StoreClosedNotification-CNJI2Q26.js.map → StoreClosedNotification-5MTDRRC3.js.map} +1 -1
  57. package/dist/{TestimonialsPage-QYPLMNWL.js → TestimonialsPage-Z64P6MZX.js} +4 -4
  58. package/dist/{TestimonialsPage-QYPLMNWL.js.map → TestimonialsPage-Z64P6MZX.js.map} +1 -1
  59. package/dist/{ThankYouPage-WG3CM5JP.js → ThankYouPage-ZXQZMWCX.js} +14 -12
  60. package/dist/ThankYouPage-ZXQZMWCX.js.map +1 -0
  61. package/dist/{WalletPage-J7CH22JM.js → WalletPage-557AU5GH.js} +10 -9
  62. package/dist/WalletPage-557AU5GH.js.map +1 -0
  63. package/dist/{WishlistPage-ZXWYB56R.js → WishlistPage-HTDQW2N2.js} +150 -26
  64. package/dist/WishlistPage-HTDQW2N2.js.map +1 -0
  65. package/dist/api/brands.js +3 -3
  66. package/dist/api/cart.d.ts +7 -6
  67. package/dist/api/cart.d.ts.map +1 -1
  68. package/dist/api/cart.js +3 -3
  69. package/dist/api/category.js +3 -3
  70. package/dist/api/loyalty.js +3 -3
  71. package/dist/api/order.js +3 -3
  72. package/dist/api/page.js +3 -3
  73. package/dist/api/product.js +3 -3
  74. package/dist/api/store.d.ts +12 -0
  75. package/dist/api/store.d.ts.map +1 -1
  76. package/dist/api/store.js +1 -1
  77. package/dist/api/wishlist.js +4 -4
  78. package/dist/{chunk-3YVAYIM4.js → chunk-4KTY2FT6.js} +6 -6
  79. package/dist/{chunk-3YVAYIM4.js.map → chunk-4KTY2FT6.js.map} +1 -1
  80. package/dist/chunk-7V36I5GT.js +26 -0
  81. package/dist/chunk-7V36I5GT.js.map +1 -0
  82. package/dist/{chunk-OET4G4XC.js → chunk-BE3JDKE2.js} +19 -3
  83. package/dist/chunk-BE3JDKE2.js.map +1 -0
  84. package/dist/{chunk-2U3PUO3V.js → chunk-EIJXSBL6.js} +34 -17
  85. package/dist/chunk-EIJXSBL6.js.map +1 -0
  86. package/dist/{chunk-7OIP65ER.js → chunk-EQ32CL4D.js} +7 -4
  87. package/dist/chunk-EQ32CL4D.js.map +1 -0
  88. package/dist/{chunk-IZFZLJHD.js → chunk-EXKTSWBC.js} +5 -5
  89. package/dist/{chunk-IZFZLJHD.js.map → chunk-EXKTSWBC.js.map} +1 -1
  90. package/dist/{chunk-PK7EU5TM.js → chunk-GD26FI4J.js} +2 -2
  91. package/dist/chunk-GD26FI4J.js.map +1 -0
  92. package/dist/{chunk-YMVLYYLU.js → chunk-GOPUP26T.js} +4 -4
  93. package/dist/chunk-GOPUP26T.js.map +1 -0
  94. package/dist/{chunk-N4THXNXA.js → chunk-HSVGQ2DV.js} +12 -10
  95. package/dist/chunk-HSVGQ2DV.js.map +1 -0
  96. package/dist/{chunk-WH225GEC.js → chunk-I62RENKM.js} +3 -3
  97. package/dist/{chunk-WH225GEC.js.map → chunk-I62RENKM.js.map} +1 -1
  98. package/dist/{chunk-TDZSHACC.js → chunk-IC7YN4OQ.js} +3 -3
  99. package/dist/{chunk-TDZSHACC.js.map → chunk-IC7YN4OQ.js.map} +1 -1
  100. package/dist/{chunk-4DHLIY6V.js → chunk-IIYK56TI.js} +4 -3
  101. package/dist/chunk-IIYK56TI.js.map +1 -0
  102. package/dist/chunk-JKT44Y2M.js +14 -0
  103. package/dist/{chunk-ZPRZQTYM.js.map → chunk-JKT44Y2M.js.map} +1 -1
  104. package/dist/{chunk-W2B5P54C.js → chunk-KHRIGLYL.js} +3 -3
  105. package/dist/{chunk-W2B5P54C.js.map → chunk-KHRIGLYL.js.map} +1 -1
  106. package/dist/{chunk-NHKP5XIG.js → chunk-KILNHLWE.js} +4 -4
  107. package/dist/{chunk-NHKP5XIG.js.map → chunk-KILNHLWE.js.map} +1 -1
  108. package/dist/{chunk-ZQGMVUPE.js → chunk-KWHCKGLL.js} +3 -3
  109. package/dist/{chunk-ZQGMVUPE.js.map → chunk-KWHCKGLL.js.map} +1 -1
  110. package/dist/{chunk-LCJW7JKZ.js → chunk-LUTMPFRW.js} +4 -4
  111. package/dist/{chunk-LCJW7JKZ.js.map → chunk-LUTMPFRW.js.map} +1 -1
  112. package/dist/{chunk-YH4O3H4R.js → chunk-NPEI4SAZ.js} +3 -3
  113. package/dist/{chunk-YH4O3H4R.js.map → chunk-NPEI4SAZ.js.map} +1 -1
  114. package/dist/{chunk-JVGZDLFP.js → chunk-PE3LLBNR.js} +3 -3
  115. package/dist/{chunk-JVGZDLFP.js.map → chunk-PE3LLBNR.js.map} +1 -1
  116. package/dist/{chunk-3U26OMNO.js → chunk-PWBMSGMU.js} +24 -17
  117. package/dist/chunk-PWBMSGMU.js.map +1 -0
  118. package/dist/{chunk-VSJLPWFI.js → chunk-Q5UYV2EN.js} +3 -3
  119. package/dist/{chunk-VSJLPWFI.js.map → chunk-Q5UYV2EN.js.map} +1 -1
  120. package/dist/{chunk-GUGZ4CEG.js → chunk-S3CC2YGF.js} +3 -3
  121. package/dist/{chunk-GUGZ4CEG.js.map → chunk-S3CC2YGF.js.map} +1 -1
  122. package/dist/{chunk-NFTOMTTI.js → chunk-UFPZXWGM.js} +4 -4
  123. package/dist/{chunk-NFTOMTTI.js.map → chunk-UFPZXWGM.js.map} +1 -1
  124. package/dist/{chunk-TLAEW7TB.js → chunk-UH5ZXDEO.js} +3 -3
  125. package/dist/{chunk-TLAEW7TB.js.map → chunk-UH5ZXDEO.js.map} +1 -1
  126. package/dist/{chunk-3ITQB3PY.js → chunk-VLBQPVHM.js} +3 -3
  127. package/dist/{chunk-3ITQB3PY.js.map → chunk-VLBQPVHM.js.map} +1 -1
  128. package/dist/{chunk-TLO2M5TJ.js → chunk-W66OHTSM.js} +3 -3
  129. package/dist/{chunk-TLO2M5TJ.js.map → chunk-W66OHTSM.js.map} +1 -1
  130. package/dist/{chunk-6IDCWH5K.js → chunk-XFCJM6RN.js} +7 -7
  131. package/dist/{chunk-6IDCWH5K.js.map → chunk-XFCJM6RN.js.map} +1 -1
  132. package/dist/chunk-Y7HKVYDG.js +21 -0
  133. package/dist/chunk-Y7HKVYDG.js.map +1 -0
  134. package/dist/{chunk-VJHDE6UT.js → chunk-YEY3SO23.js} +3 -3
  135. package/dist/{chunk-VJHDE6UT.js.map → chunk-YEY3SO23.js.map} +1 -1
  136. package/dist/{chunk-FUIPNVQY.js → chunk-YLPI4HDD.js} +9 -6
  137. package/dist/chunk-YLPI4HDD.js.map +1 -0
  138. package/dist/{chunk-TFB3QXYH.js → chunk-ZGHRSRDO.js} +3 -2
  139. package/dist/chunk-ZGHRSRDO.js.map +1 -0
  140. package/dist/components/cart/CartItem.d.ts.map +1 -1
  141. package/dist/components/cart/index.js +1 -1
  142. package/dist/components/common/index.js +1 -1
  143. package/dist/components/drawer/index.js +8 -7
  144. package/dist/components/home/index.js +11 -10
  145. package/dist/components/layout/index.js +1 -18
  146. package/dist/components/layout/index.js.map +1 -1
  147. package/dist/components/product/AddToCartForm.d.ts.map +1 -1
  148. package/dist/components/product/ProductCard.d.ts.map +1 -1
  149. package/dist/components/product/ProductDetails.d.ts.map +1 -1
  150. package/dist/components/product/index.js +9 -8
  151. package/dist/components/store/index.js +10 -9
  152. package/dist/components/store/index.js.map +1 -1
  153. package/dist/{document-class-7KPUN2DK.js → document-class-SKCL6IJF.js} +9 -9
  154. package/dist/{document-class-7KPUN2DK.js.map → document-class-SKCL6IJF.js.map} +1 -1
  155. package/dist/hooks/index.d.ts +1 -0
  156. package/dist/hooks/index.d.ts.map +1 -1
  157. package/dist/hooks/index.js +8 -7
  158. package/dist/hooks/useComments.js +1 -1
  159. package/dist/hooks/useGtm.js +8 -7
  160. package/dist/hooks/useHostAttributes.d.ts +4 -0
  161. package/dist/hooks/useHostAttributes.d.ts.map +1 -0
  162. package/dist/hooks/useHostAttributes.js +4 -0
  163. package/dist/hooks/useHostAttributes.js.map +1 -0
  164. package/dist/hooks/useMoney.js +8 -7
  165. package/dist/hooks/useProduct.d.ts.map +1 -1
  166. package/dist/hooks/useProduct.js +1 -1
  167. package/dist/hooks/useStore.js +8 -7
  168. package/dist/index.js +8 -7
  169. package/dist/index.js.map +1 -1
  170. package/dist/{navigation-QMBOIYJI.js → navigation-ESPAHRXM.js} +5 -5
  171. package/dist/{navigation-QMBOIYJI.js.map → navigation-ESPAHRXM.js.map} +1 -1
  172. package/dist/{navigation-XZJCQXY3.js → navigation-YKRXGGSL.js} +4 -4
  173. package/dist/{navigation-XZJCQXY3.js.map → navigation-YKRXGGSL.js.map} +1 -1
  174. package/dist/{not-found-UE5XOV5C.js → not-found-KBOXJ3AG.js} +11 -10
  175. package/dist/not-found-KBOXJ3AG.js.map +1 -0
  176. package/dist/providers/TwilightProvider.d.ts.map +1 -1
  177. package/dist/providers/index.js +8 -7
  178. package/dist/providers/twilight-init.d.ts.map +1 -1
  179. package/dist/router/route-ids.d.ts +1 -0
  180. package/dist/router/route-ids.d.ts.map +1 -1
  181. package/dist/routes/account/orders.js +4 -4
  182. package/dist/routes/account/wishlist/WishlistPage.d.ts +1 -1
  183. package/dist/routes/account/wishlist/WishlistPage.d.ts.map +1 -1
  184. package/dist/routes/account/wishlist/WishlistShare.d.ts +1 -0
  185. package/dist/routes/account/wishlist/WishlistShare.d.ts.map +1 -1
  186. package/dist/routes/account.js +11 -11
  187. package/dist/routes/blog.js +8 -8
  188. package/dist/routes/brands.js +4 -4
  189. package/dist/routes/cart/CartPage.d.ts.map +1 -1
  190. package/dist/routes/cart.js +17 -16
  191. package/dist/routes/cart.js.map +1 -1
  192. package/dist/routes/home.js +12 -11
  193. package/dist/routes/index.d.ts +1 -1
  194. package/dist/routes/index.d.ts.map +1 -1
  195. package/dist/routes/index.js +3 -3
  196. package/dist/routes/loyalty/LoyaltyPage.d.ts +1 -1
  197. package/dist/routes/loyalty/LoyaltyPage.d.ts.map +1 -1
  198. package/dist/routes/loyalty/LoyaltyPointsPage.d.ts +3 -0
  199. package/dist/routes/loyalty/LoyaltyPointsPage.d.ts.map +1 -0
  200. package/dist/routes/loyalty/index.d.ts +15 -3
  201. package/dist/routes/loyalty/index.d.ts.map +1 -1
  202. package/dist/routes/loyalty/loader.d.ts +2 -1
  203. package/dist/routes/loyalty/loader.d.ts.map +1 -1
  204. package/dist/routes/loyalty/types.d.ts +3 -0
  205. package/dist/routes/loyalty/types.d.ts.map +1 -1
  206. package/dist/routes/loyalty.js +62 -11
  207. package/dist/routes/loyalty.js.map +1 -1
  208. package/dist/routes/page.js +4 -4
  209. package/dist/routes/product/index.d.ts.map +1 -1
  210. package/dist/routes/product-listing/index.d.ts.map +1 -1
  211. package/dist/routes/product-listing.js +23 -19
  212. package/dist/routes/product-listing.js.map +1 -1
  213. package/dist/routes/product.js +16 -13
  214. package/dist/routes/product.js.map +1 -1
  215. package/dist/routes/seo-redirects.js +3 -3
  216. package/dist/routes/testimonials.js +2 -2
  217. package/dist/routes/thank-you/ThankYouPage.d.ts.map +1 -1
  218. package/dist/routes/thank-you.js +4 -4
  219. package/dist/skeleton.js +12 -11
  220. package/dist/tanstack/document-class.d.ts.map +1 -1
  221. package/dist/tanstack/head.d.ts +1 -4
  222. package/dist/tanstack/head.d.ts.map +1 -1
  223. package/dist/tanstack/router.d.ts.map +1 -1
  224. package/dist/tanstack/templates/locale-wrapper.d.ts.map +1 -1
  225. package/dist/tanstack.js +10 -10
  226. package/dist/types/index.d.ts +1 -0
  227. package/dist/types/index.d.ts.map +1 -1
  228. package/dist/types/salla-sdk.d.ts +1 -1
  229. package/dist/types/salla-sdk.d.ts.map +1 -1
  230. package/dist/utils/head.d.ts +3 -0
  231. package/dist/utils/head.d.ts.map +1 -1
  232. package/dist/utils/head.js +1 -1
  233. package/dist/utils/index.js +1 -1
  234. package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
  235. package/dist/vite/index.js +92 -11
  236. package/dist/vite/index.js.map +1 -1
  237. package/dist/vite/plugins/best-practices/hooks-registry.d.ts.map +1 -1
  238. package/dist/vite/plugins/component-deps.d.ts +5 -0
  239. package/dist/vite/plugins/component-deps.d.ts.map +1 -0
  240. package/dist/vite/plugins/package-aliases.plugin.d.ts.map +1 -1
  241. package/package.json +5 -1
  242. package/dist/AddToCartForm-RAQX7VHU.js.map +0 -1
  243. package/dist/BlogAuthorPage-HV6JUJNL.js.map +0 -1
  244. package/dist/BlogCategoryPage-ATPIVUAL.js.map +0 -1
  245. package/dist/BlogPage-6IIOSB45.js.map +0 -1
  246. package/dist/BlogSinglePage-DV3XYB26.js.map +0 -1
  247. package/dist/BlogTagPage-RVJIXERD.js.map +0 -1
  248. package/dist/BrandsPage-RQXP67LV.js.map +0 -1
  249. package/dist/Breadcrumb-NXXVZJJD.js.map +0 -1
  250. package/dist/CartItem-XRWTSJB5.js.map +0 -1
  251. package/dist/CartSummary-F6BY5APF.js.map +0 -1
  252. package/dist/CustomerLayout-T5BSTU6T.js.map +0 -1
  253. package/dist/LoyaltyPage-AIUDZLT7.js +0 -194
  254. package/dist/LoyaltyPage-AIUDZLT7.js.map +0 -1
  255. package/dist/MobileMenu-A5DBTPS7.js.map +0 -1
  256. package/dist/NotificationsPage-T2O67MLD.js.map +0 -1
  257. package/dist/OrderSinglePage-4W4JZX7I.js.map +0 -1
  258. package/dist/OrdersPage-DYKFBMRC.js.map +0 -1
  259. package/dist/ProductDetails-OWSIL357.js.map +0 -1
  260. package/dist/ProfilePage-LLCIJHAI.js.map +0 -1
  261. package/dist/SeoCartWidget-ZL3FTBWK.js.map +0 -1
  262. package/dist/SettingsPage-2XU5IF4A.js.map +0 -1
  263. package/dist/ThankYouPage-WG3CM5JP.js.map +0 -1
  264. package/dist/WalletPage-J7CH22JM.js.map +0 -1
  265. package/dist/WishlistPage-ZXWYB56R.js.map +0 -1
  266. package/dist/chunk-2U3PUO3V.js.map +0 -1
  267. package/dist/chunk-3U26OMNO.js.map +0 -1
  268. package/dist/chunk-4DHLIY6V.js.map +0 -1
  269. package/dist/chunk-7OIP65ER.js.map +0 -1
  270. package/dist/chunk-FUIPNVQY.js.map +0 -1
  271. package/dist/chunk-N4THXNXA.js.map +0 -1
  272. package/dist/chunk-OET4G4XC.js.map +0 -1
  273. package/dist/chunk-PK7EU5TM.js.map +0 -1
  274. package/dist/chunk-TFB3QXYH.js.map +0 -1
  275. package/dist/chunk-YMVLYYLU.js.map +0 -1
  276. package/dist/chunk-ZPRZQTYM.js +0 -14
  277. package/dist/not-found-UE5XOV5C.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/navigation/lazy.ts","../src/components/layout/Header.tsx"],"names":[],"mappings":"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","file":"chunk-3YVAYIM4.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded navigation components\n * Use these for code-splitting navigation sections\n */\nexport const LazyMainMenu = lazy(() => import('./MainMenu').then((m) => ({ default: m.MainMenu })));\n\nexport const LazyMobileMenu = lazy(() =>\n import('./MobileMenu').then((m) => ({ default: m.MobileMenu }))\n);\n","import { useState } from 'react';\nimport { useIsHome } from '../../providers/NavigationProvider';\nimport { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';\nimport { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaLocalizationModal } from '@salla.sa/twilight-components-react/localization-modal';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaSearch } from '@salla.sa/twilight-components-react/search';\nimport { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { MainMenu, MobileMenu } from '../navigation';\nimport { Image } from '../common';\nimport type { Cart } from '../../types';\n\ninterface HeaderProps {\n cart?: Cart;\n}\n\nexport function Header(_props: HeaderProps) {\n const { currency, theme, store } = useTwilight();\n const { locale, languageName } = useTranslation();\n const settings = theme?.settings || {};\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n\n // Check if we're on homepage\n const isHomepage = useIsHome();\n\n const StoreTitle = isHomepage ? 'h1' : 'span';\n\n return (\n <header className=\"store-header\" suppressHydrationWarning>\n <HookSlot name=\"header:start\" />\n <div className=\"advertisement-slot\">\n <SallaAdvertisement />\n </div>\n {/* Top Nav */}\n <div className={`top-navbar${settings.topnav_is_dark ? ' top-navbar--dark' : ''}`}>\n <div className=\"container flex justify-between\">\n <div className=\"flex-1 flex items-center gap-2\">\n {/* Footer Menu */}\n {settings.important_links && <SallaMenu source=\"footer\" topnav />}\n\n {/* Language & Currency */}\n <div className=\"header-buttons\">\n {(store?.settings?.is_multilingual || store?.settings?.currencies_enabled) && (\n <>\n <button\n type=\"button\"\n onClick={() => window.salla?.event.dispatch('localization::open')}\n className=\"btn--rounded-gray basis-0\"\n >\n <span>{languageName}</span>\n <span className=\"mx-1.5\">|</span>\n <span className={`flag iti__flag iti__${store?.country.toLowerCase()}`}></span>\n\n <span>\n {store?.settings?.use_sar_symbol && currency?.code === 'SAR' ? (\n <i className=\"sicon-sar\"></i>\n ) : (\n <>{currency?.symbol}</>\n )}\n </span>\n </button>\n {/* TODO:: support switch the lang without hit the web API, by set it in the sdk and local storage */}\n {/* TODO:: Support switch the curency without hit the web API, by set it in the sdk and local storage */}\n <SallaLocalizationModal\n language={locale}\n currency={currency?.code || 'SAR'}\n suppressHydrationWarning\n />\n </>\n )}\n </div>\n\n {/* Scopes / Branches */}\n {store?.scope && (\n <button\n type=\"button\"\n className=\"btn--rounded-gray\"\n onClick={() =>\n window.salla?.event.dispatch('scopes::open', {\n mode: 'default',\n })\n }\n >\n <i className=\"sicon-location rtl:ml-1 ltr:mr-1\"></i>\n {store.scope.name}\n </button>\n )}\n\n {/* Search bar */}\n <div className=\"header-search flex-1\">\n {/* todo:: use a search icon insted with open the search popup */}\n <SallaSearch inline oval height={36} />\n </div>\n </div>\n\n <SallaContacts contacts={store?.contacts} contactsTitle=\"N/A\" isHeader />\n </div>\n </div>\n\n {/* Main Nav */}\n <div\n id=\"mainnav\"\n className={`main-nav-container shadow-default bg-white flex items-center relative z-50${settings.header_is_sticky ? ' sticky top-0' : ''}`}\n >\n <div className=\"inner bg-inherit w-full\">\n <div className=\"container\">\n <div className=\"flex items-stretch justify-between relative\">\n <div className=\"flex items-center\">\n <a\n className=\"lg:hidden mburger mburger--collapse leading-none rtl:ml-4 ltr:mr-4\"\n href=\"#mobile-menu\"\n aria-label=\"Open-menu\"\n onClick={(e) => {\n e.preventDefault();\n setIsMobileMenuOpen(true);\n }}\n >\n <i className=\"sicon-menu text-primary text-2xl\"></i>\n </a>\n <a className=\"navbar-brand\" href={store?.url || '/'}>\n <div className=\"logo-wrapper\">\n <Image\n src={store?.logo}\n alt={`${store?.name || 'Store'} logo`}\n priority\n width={120}\n height={48}\n />\n </div>\n <StoreTitle className=\"sr-only\">{store?.name || 'Store'}</StoreTitle>\n </a>\n <MainMenu />\n </div>\n <div className=\"flex items-center justify-end my-2.5\">\n <SallaUserMenu avatarOnly showHeader className=\"header-btn\" />\n <SallaCartSummary className=\"ml-4 rtl:ml-[unset] rtl:mr-4\">\n <i slot=\"icon\" className=\"header-btn__icon icon sicon-shopping-bag\"></i>\n </SallaCartSummary>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Mobile Menu */}\n <MobileMenu isOpen={isMobileMenuOpen} onClose={() => setIsMobileMenuOpen(false)} />\n <HookSlot name=\"header:end\" />\n </header>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/navigation/lazy.ts","../src/components/layout/Header.tsx"],"names":[],"mappings":"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","file":"chunk-4KTY2FT6.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded navigation components\n * Use these for code-splitting navigation sections\n */\nexport const LazyMainMenu = lazy(() => import('./MainMenu').then((m) => ({ default: m.MainMenu })));\n\nexport const LazyMobileMenu = lazy(() =>\n import('./MobileMenu').then((m) => ({ default: m.MobileMenu }))\n);\n","import { useState } from 'react';\nimport { useIsHome } from '../../providers/NavigationProvider';\nimport { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';\nimport { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaLocalizationModal } from '@salla.sa/twilight-components-react/localization-modal';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaSearch } from '@salla.sa/twilight-components-react/search';\nimport { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { MainMenu, MobileMenu } from '../navigation';\nimport { Image } from '../common';\nimport type { Cart } from '../../types';\n\ninterface HeaderProps {\n cart?: Cart;\n}\n\nexport function Header(_props: HeaderProps) {\n const { currency, theme, store } = useTwilight();\n const { locale, languageName } = useTranslation();\n const settings = theme?.settings || {};\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n\n // Check if we're on homepage\n const isHomepage = useIsHome();\n\n const StoreTitle = isHomepage ? 'h1' : 'span';\n\n return (\n <header className=\"store-header\" suppressHydrationWarning>\n <HookSlot name=\"header:start\" />\n <div className=\"advertisement-slot\">\n <SallaAdvertisement />\n </div>\n {/* Top Nav */}\n <div className={`top-navbar${settings.topnav_is_dark ? ' top-navbar--dark' : ''}`}>\n <div className=\"container flex justify-between\">\n <div className=\"flex-1 flex items-center gap-2\">\n {/* Footer Menu */}\n {settings.important_links && <SallaMenu source=\"footer\" topnav />}\n\n {/* Language & Currency */}\n <div className=\"header-buttons\">\n {(store?.settings?.is_multilingual || store?.settings?.currencies_enabled) && (\n <>\n <button\n type=\"button\"\n onClick={() => window.salla?.event.dispatch('localization::open')}\n className=\"btn--rounded-gray basis-0\"\n >\n <span>{languageName}</span>\n <span className=\"mx-1.5\">|</span>\n <span className={`flag iti__flag iti__${store?.country.toLowerCase()}`}></span>\n\n <span>\n {store?.settings?.use_sar_symbol && currency?.code === 'SAR' ? (\n <i className=\"sicon-sar\"></i>\n ) : (\n <>{currency?.symbol}</>\n )}\n </span>\n </button>\n {/* TODO:: support switch the lang without hit the web API, by set it in the sdk and local storage */}\n {/* TODO:: Support switch the curency without hit the web API, by set it in the sdk and local storage */}\n <SallaLocalizationModal\n language={locale}\n currency={currency?.code || 'SAR'}\n suppressHydrationWarning\n />\n </>\n )}\n </div>\n\n {/* Scopes / Branches */}\n {store?.scope && (\n <button\n type=\"button\"\n className=\"btn--rounded-gray\"\n onClick={() =>\n window.salla?.event.dispatch('scopes::open', {\n mode: 'default',\n })\n }\n >\n <i className=\"sicon-location rtl:ml-1 ltr:mr-1\"></i>\n {store.scope.name}\n </button>\n )}\n\n {/* Search bar */}\n <div className=\"header-search flex-1\">\n {/* todo:: use a search icon insted with open the search popup */}\n <SallaSearch inline oval height={36} />\n </div>\n </div>\n\n <SallaContacts contacts={store?.contacts} contactsTitle=\"N/A\" isHeader />\n </div>\n </div>\n\n {/* Main Nav */}\n <div\n id=\"mainnav\"\n className={`main-nav-container shadow-default bg-white flex items-center relative z-50${settings.header_is_sticky ? ' sticky top-0' : ''}`}\n >\n <div className=\"inner bg-inherit w-full\">\n <div className=\"container\">\n <div className=\"flex items-stretch justify-between relative\">\n <div className=\"flex items-center\">\n <a\n className=\"lg:hidden mburger mburger--collapse leading-none rtl:ml-4 ltr:mr-4\"\n href=\"#mobile-menu\"\n aria-label=\"Open-menu\"\n onClick={(e) => {\n e.preventDefault();\n setIsMobileMenuOpen(true);\n }}\n >\n <i className=\"sicon-menu text-primary text-2xl\"></i>\n </a>\n <a className=\"navbar-brand\" href={store?.url || '/'}>\n <div className=\"logo-wrapper\">\n <Image\n src={store?.logo}\n alt={`${store?.name || 'Store'} logo`}\n priority\n width={120}\n height={48}\n />\n </div>\n <StoreTitle className=\"sr-only\">{store?.name || 'Store'}</StoreTitle>\n </a>\n <MainMenu />\n </div>\n <div className=\"flex items-center justify-end my-2.5\">\n <SallaUserMenu avatarOnly showHeader className=\"header-btn\" />\n <SallaCartSummary className=\"ml-4 rtl:ml-[unset] rtl:mr-4\">\n <i slot=\"icon\" className=\"header-btn__icon icon sicon-shopping-bag\"></i>\n </SallaCartSummary>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Mobile Menu */}\n <MobileMenu isOpen={isMobileMenuOpen} onClose={() => setIsMobileMenuOpen(false)} />\n <HookSlot name=\"header:end\" />\n </header>\n );\n}\n"]}
@@ -0,0 +1,26 @@
1
+ import { useCallback } from 'react';
2
+
3
+ // src/hooks/useHostAttributes.ts
4
+ var toAttribute = (value) => {
5
+ if (value === null || value === void 0 || value === false) return null;
6
+ return value === true ? "" : String(value);
7
+ };
8
+ function useHostAttributes(attributes) {
9
+ const serialized = JSON.stringify(
10
+ Object.entries(attributes).map(([name, value]) => [name, toAttribute(value)])
11
+ );
12
+ return useCallback(
13
+ (element) => {
14
+ if (!element) return;
15
+ for (const [name, value] of JSON.parse(serialized)) {
16
+ if (value === null) element.removeAttribute(name);
17
+ else element.setAttribute(name, value);
18
+ }
19
+ },
20
+ [serialized]
21
+ );
22
+ }
23
+
24
+ export { useHostAttributes };
25
+ //# sourceMappingURL=chunk-7V36I5GT.js.map
26
+ //# sourceMappingURL=chunk-7V36I5GT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useHostAttributes.ts"],"names":[],"mappings":";;;AAIA,IAAM,WAAA,GAAc,CAAC,KAAA,KAA6C;AAChE,EAAA,IAAI,UAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,OAAO,OAAO,IAAA;AACrE,EAAA,OAAO,KAAA,KAAU,IAAA,GAAO,EAAA,GAAK,MAAA,CAAO,KAAK,CAAA;AAC3C,CAAA;AAGO,SAAS,kBACd,UAAA,EAC6B;AAC7B,EAAA,MAAM,aAAa,IAAA,CAAK,SAAA;AAAA,IACtB,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CAAE,IAAI,CAAC,CAAC,IAAA,EAAM,KAAK,MAAM,CAAC,IAAA,EAAM,WAAA,CAAY,KAAK,CAAC,CAAC;AAAA,GAC9E;AAEA,EAAA,OAAO,WAAA;AAAA,IACL,CAAC,OAAA,KAAsB;AACrB,MAAA,IAAI,CAAC,OAAA,EAAS;AACd,MAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,KAAK,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA,EAAgC;AAC/E,QAAA,IAAI,KAAA,KAAU,IAAA,EAAM,OAAA,CAAQ,eAAA,CAAgB,IAAI,CAAA;AAAA,aAC3C,OAAA,CAAQ,YAAA,CAAa,IAAA,EAAM,KAAK,CAAA;AAAA,MACvC;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AACF","file":"chunk-7V36I5GT.js","sourcesContent":["import { useCallback } from 'react';\n\nexport type HostAttributeValue = string | number | boolean | null | undefined;\n\nconst toAttribute = (value: HostAttributeValue): string | null => {\n if (value === null || value === undefined || value === false) return null;\n return value === true ? '' : String(value);\n};\n\n/** Ref callback that sets `attributes` as real DOM attributes (`true` = empty, `false`/nullish = removed). */\nexport function useHostAttributes<T extends Element = HTMLElement>(\n attributes: Record<string, HostAttributeValue>\n): (element: T | null) => void {\n const serialized = JSON.stringify(\n Object.entries(attributes).map(([name, value]) => [name, toAttribute(value)])\n );\n\n return useCallback(\n (element: T | null) => {\n if (!element) return;\n for (const [name, value] of JSON.parse(serialized) as [string, string | null][]) {\n if (value === null) element.removeAttribute(name);\n else element.setAttribute(name, value);\n }\n },\n [serialized]\n );\n}\n"]}
@@ -105,6 +105,21 @@ function tanstackHeadAdapter(descriptor) {
105
105
  for (const s of descriptor.scripts ?? []) scripts.push(s);
106
106
  return { meta, links, styles, scripts };
107
107
  }
108
+ function appendStoreTitle(descriptor, settings) {
109
+ const store = settings?.store;
110
+ const storeTitle = store?.meta?.title || store?.name;
111
+ const pageTitle = descriptor.title;
112
+ if (!pageTitle || !storeTitle || descriptor.appendStoreTitle === false) return descriptor;
113
+ if (pageTitle === storeTitle) return descriptor;
114
+ const title = `${pageTitle} - ${storeTitle}`;
115
+ const shareTitle = (current) => !current || current === pageTitle ? title : current;
116
+ return {
117
+ ...descriptor,
118
+ title,
119
+ openGraph: { ...descriptor.openGraph, title: shareTitle(descriptor.openGraph?.title) },
120
+ twitter: { ...descriptor.twitter, title: shareTitle(descriptor.twitter?.title) }
121
+ };
122
+ }
108
123
  function withHead(route, extend) {
109
124
  return (ctx) => {
110
125
  const loaderData = ctx.loaderData;
@@ -113,7 +128,8 @@ function withHead(route, extend) {
113
128
  try {
114
129
  const context = getTwilightContext();
115
130
  const result = route.head(context, loaderData);
116
- const finalResult = extend ? extend(result, context, loaderData) : result;
131
+ const extended = extend ? extend(result, context, loaderData) : result;
132
+ const finalResult = appendStoreTitle(extended, context.settings);
117
133
  return tanstackHeadAdapter(finalResult);
118
134
  } catch (error) {
119
135
  if (error instanceof SettingsError) return {};
@@ -123,5 +139,5 @@ function withHead(route, extend) {
123
139
  }
124
140
 
125
141
  export { ensureTwilightContextFromMatches, tanstackHeadAdapter, withHead };
126
- //# sourceMappingURL=chunk-OET4G4XC.js.map
127
- //# sourceMappingURL=chunk-OET4G4XC.js.map
142
+ //# sourceMappingURL=chunk-BE3JDKE2.js.map
143
+ //# sourceMappingURL=chunk-BE3JDKE2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/twilight/ensure-context.ts","../src/tanstack/head.ts"],"names":[],"mappings":"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","file":"chunk-BE3JDKE2.js","sourcesContent":["import type { StoreContext } from '../api/store';\nimport type { AppSnippet, AppSettings } from '../api/apps';\nimport { hasTwilightSettings, updateTwilightContext } from './context';\n\n/**\n * The slice of a router match we can recover store settings from.\n *\n * TanStack resolves `match.context` (which spreads `__beforeLoadContext` over the\n * parent context) immediately before it invokes `route.options.head()`, so both\n * fields are populated by the time any head function runs — including during\n * client hydration, when the twilight module store may still be empty.\n */\nexport interface TwilightContextMatch {\n context?: Record<string, unknown>;\n __beforeLoadContext?: Record<string, unknown>;\n}\n\nfunction readSettings(source: Record<string, unknown> | undefined): StoreContext | undefined {\n const settings = source?.settings;\n return settings ? (settings as StoreContext) : undefined;\n}\n\nfunction readString(source: Record<string, unknown> | undefined, key: string): string | undefined {\n const value = source?.[key];\n return typeof value === 'string' && value ? value : undefined;\n}\n\nfunction readSnippets(source: Record<string, unknown> | undefined): AppSnippet[] | undefined {\n const snippets = source?.appsSnippets;\n return Array.isArray(snippets) ? (snippets as AppSnippet[]) : undefined;\n}\n\nfunction readAppSettings(source: Record<string, unknown> | undefined): AppSettings | undefined {\n const settings = source?.appsSettings as AppSettings | undefined;\n return settings && typeof settings === 'object' && 'apps' in settings ? settings : undefined;\n}\n\n/**\n * Seeds the twilight module store from the router matches when it is empty.\n *\n * Head functions read store settings through `getTwilightContext()`, whose\n * `settings` getter **throws** a `SettingsError` when the store has not been\n * populated. TanStack re-runs every matched route's head function during client\n * hydration, and a throw there aborts hydration outright: React then discards\n * the server-rendered tree and re-renders from scratch, which blanks the page.\n *\n * `hydrateTwilightContext` normally populates the store first, but it is a\n * single best-effort pass — if it bails (missing root match, missing settings,\n * or a duplicated module instance holding a different store) every head\n * function downstream throws. Seeding from the match TanStack already resolved\n * removes that dependency at the point of use.\n *\n * @returns whether the store has settings after the attempt.\n */\nexport function ensureTwilightContextFromMatches(\n matches: readonly TwilightContextMatch[] | undefined\n): boolean {\n if (hasTwilightSettings()) return true;\n\n const rootMatch = matches?.[0];\n if (!rootMatch) return false;\n\n const beforeLoadCtx = rootMatch.__beforeLoadContext;\n const matchCtx = rootMatch.context;\n\n const settings = readSettings(beforeLoadCtx) ?? readSettings(matchCtx);\n const locale = readString(beforeLoadCtx, 'locale') ?? readString(matchCtx, 'locale');\n if (!settings || !locale) return false;\n\n const authToken =\n readString(beforeLoadCtx, 'authToken') ?? readString(matchCtx, 'authToken') ?? null;\n const appsSnippets = readSnippets(beforeLoadCtx) ?? readSnippets(matchCtx);\n const appsSettings = readAppSettings(beforeLoadCtx) ?? readAppSettings(matchCtx);\n\n updateTwilightContext({ settings, locale, authToken, appsSnippets, appsSettings });\n return true;\n}\n","import type { HeadDescriptor, OpenGraphImage } from '../utils/head';\nimport type { TwilightContext } from '../twilight/context';\nimport { getTwilightContext } from '../twilight/context';\nimport type { TwilightContextMatch } from '../twilight/ensure-context';\nimport { ensureTwilightContextFromMatches } from '../twilight/ensure-context';\nimport { SettingsError } from '../utils/errors';\n\ntype OgImagesInput = string | OpenGraphImage | Array<string | OpenGraphImage> | undefined;\n\nfunction normalizeOgImages(images: OgImagesInput): OpenGraphImage[] {\n if (!images) return [];\n const arr = Array.isArray(images) ? images : [images];\n return arr.map((img) => (typeof img === 'string' ? { url: img } : img));\n}\n\nexport function tanstackHeadAdapter(descriptor: HeadDescriptor) {\n const meta: Array<Record<string, unknown>> = [];\n const links: Array<Record<string, unknown>> = [];\n const scripts: Array<Record<string, unknown>> = [];\n const styles: Record<string, unknown>[] = [];\n\n if (descriptor.title) meta.push({ title: descriptor.title });\n if (descriptor.description) meta.push({ name: 'description', content: descriptor.description });\n\n if (descriptor.keywords) {\n const kw = Array.isArray(descriptor.keywords)\n ? descriptor.keywords.join(', ')\n : descriptor.keywords;\n meta.push({ name: 'keywords', content: kw });\n }\n\n if (descriptor.robots) meta.push({ name: 'robots', content: descriptor.robots });\n\n // Open Graph\n const og = descriptor.openGraph;\n if (og) {\n if (og.siteName) meta.push({ property: 'og:site_name', content: og.siteName });\n if (og.type) meta.push({ property: 'og:type', content: og.type });\n if (og.title) meta.push({ property: 'og:title', content: og.title });\n if (og.description) meta.push({ property: 'og:description', content: og.description });\n if (og.url) meta.push({ property: 'og:url', content: og.url });\n if (og.locale) meta.push({ property: 'og:locale', content: og.locale });\n for (const alt of og.alternateLocale ?? []) {\n meta.push({ property: 'og:locale:alternate', content: alt });\n }\n for (const img of normalizeOgImages(og.images)) {\n meta.push({ property: 'og:image', content: img.url });\n if (img.width != null) meta.push({ property: 'og:image:width', content: String(img.width) });\n if (img.height != null)\n meta.push({ property: 'og:image:height', content: String(img.height) });\n if (img.alt) meta.push({ property: 'og:image:alt', content: img.alt });\n }\n if (og.publishedTime)\n meta.push({ property: 'article:published_time', content: og.publishedTime });\n if (og.modifiedTime) meta.push({ property: 'article:modified_time', content: og.modifiedTime });\n }\n\n // Twitter Card\n const tw = descriptor.twitter;\n if (tw) {\n if (tw.card) meta.push({ name: 'twitter:card', content: tw.card });\n if (tw.title) meta.push({ name: 'twitter:title', content: tw.title });\n if (tw.description) meta.push({ name: 'twitter:description', content: tw.description });\n if (tw.site) meta.push({ name: 'twitter:site', content: tw.site });\n if (tw.creator) meta.push({ name: 'twitter:creator', content: tw.creator });\n if (tw.url) meta.push({ name: 'twitter:url', content: tw.url });\n const twImages = tw.images ? (Array.isArray(tw.images) ? tw.images : [tw.images]) : [];\n for (const img of twImages) {\n meta.push({ name: 'twitter:image', content: img });\n }\n }\n\n // Canonical\n if (descriptor.canonical) links.push({ rel: 'canonical', href: descriptor.canonical });\n\n // hreflang alternates (React requires camelCase: hrefLang)\n for (const alt of descriptor.alternateLanguages ?? []) {\n links.push({ rel: 'alternate', hrefLang: alt.hreflang, href: alt.href });\n }\n\n // JSON-LD\n if (descriptor.jsonLd) {\n scripts.push({ type: 'application/ld+json', children: JSON.stringify(descriptor.jsonLd) });\n }\n\n // Escape hatches\n for (const m of descriptor.meta ?? []) {\n const { httpEquiv, ...rest } = m as typeof m & { httpEquiv?: string };\n meta.push(httpEquiv ? { httpEquiv, ...rest } : rest);\n }\n for (const l of descriptor.links ?? []) links.push(l);\n for (const s of descriptor.styles ?? []) styles.push(s as unknown as Record<string, unknown>);\n\n // Import maps must be emitted before module scripts that rely on bare specifiers.\n for (const im of descriptor.importMap ?? []) {\n scripts.push({ type: 'importmap', children: JSON.stringify(im) });\n }\n for (const s of descriptor.scripts ?? []) scripts.push(s);\n\n return { meta, links, styles, scripts };\n}\n\n// ============================================================================\n// withHead - Simplified head callback wrapper for TanStack Router\n// ============================================================================\n\n/** Twig's page title format: \"<page title> - <store meta title or store name>\". */\nfunction appendStoreTitle(\n descriptor: HeadDescriptor,\n settings: TwilightContext['settings']\n): HeadDescriptor {\n const store = settings?.store;\n const storeTitle = store?.meta?.title || store?.name;\n const pageTitle = descriptor.title;\n if (!pageTitle || !storeTitle || descriptor.appendStoreTitle === false) return descriptor;\n if (pageTitle === storeTitle) return descriptor;\n\n const title = `${pageTitle} - ${storeTitle}`;\n // Share titles follow the page title too, unless the route set its own.\n const shareTitle = (current?: string) => (!current || current === pageTitle ? title : current);\n return {\n ...descriptor,\n title,\n openGraph: { ...descriptor.openGraph, title: shareTitle(descriptor.openGraph?.title) },\n twitter: { ...descriptor.twitter, title: shareTitle(descriptor.twitter?.title) },\n };\n}\n\n/**\n * Minimal shape we need from TanStack Router's AssetFnContextOptions.\n * `loaderData` feeds the route's own head function; `matches` is the recovery\n * source for store settings when the twilight module store is not populated yet\n * (see `ensureTwilightContextFromMatches`).\n */\ntype HeadContext = {\n loaderData?: unknown;\n matches?: readonly TwilightContextMatch[];\n};\n\n/**\n * Wraps a route module's head function for TanStack Router.\n *\n * @example\n * ```typescript\n * head: withHead(Offers)\n * head: withHead(Product, (result) => ({ ...result, robots: 'noindex, follow' }))\n * ```\n */\nexport function withHead<T>(\n route: { head: (ctx: TwilightContext, data: T) => HeadDescriptor },\n extend?: (result: HeadDescriptor, _ctx: TwilightContext, data: T) => HeadDescriptor\n): (_ctx: Record<string, unknown>) => Record<string, unknown> {\n return (ctx: HeadContext) => {\n const loaderData = ctx.loaderData;\n\n if (!loaderData) return {};\n\n // TanStack re-runs every matched route's head() during client hydration,\n // where the twilight module store can still be empty. Recover it from the\n // match context TanStack has already resolved before giving up.\n ensureTwilightContextFromMatches(ctx.matches);\n\n try {\n const context = getTwilightContext();\n const result = route.head(context, loaderData as T);\n const extended = extend ? extend(result, context, loaderData as T) : result;\n const finalResult = appendStoreTitle(extended, context.settings);\n\n return tanstackHeadAdapter(finalResult);\n } catch (error) {\n // A head function must never throw: TanStack surfaces the throw as a\n // hydration error, React then discards the server-rendered tree and the\n // storefront renders blank. Dropping this route's head tags degrades\n // gracefully — the server-rendered ones stay in the document.\n if (error instanceof SettingsError) return {};\n throw error;\n }\n };\n}\n"]}
@@ -1,10 +1,10 @@
1
- import { Header } from './chunk-3YVAYIM4.js';
1
+ import { Header } from './chunk-4KTY2FT6.js';
2
2
  import { Copyright } from './chunk-JKIRRMBU.js';
3
3
  import { useDevSettingsOverrides } from './chunk-2JV6WZ6O.js';
4
4
  import { apps } from './chunk-UIOLSYKV.js';
5
5
  import { color } from './chunk-VVZNW5CB.js';
6
6
  import { applyThemeHookSlots, installAppScope } from './chunk-2XGQSJKH.js';
7
- import { useLocation, useIsHome, NavigationInterceptor } from './chunk-WH225GEC.js';
7
+ import { useLocation, useIsHome, NavigationInterceptor } from './chunk-I62RENKM.js';
8
8
  import { useUser } from './chunk-UZKTK6YV.js';
9
9
  import { syncSdkLocale } from './chunk-WY4IYO3G.js';
10
10
  import { AUTH_TOKEN_COOKIE_NAME, rememberDevStoreId, clearAuthTokenCookie, syncScopeCookie } from './chunk-SR4OTLTJ.js';
@@ -16,7 +16,7 @@ import { FALLBACK_LOCALE, getLanguageInfo } from './chunk-T72DAX7R.js';
16
16
  import { WidgetHead } from './chunk-RJPPO3ET.js';
17
17
  import { HookSlot } from './chunk-Q7VWURUR.js';
18
18
  import { hookRegistry } from './chunk-GU2KUQVD.js';
19
- import { Image } from './chunk-TLAEW7TB.js';
19
+ import { Image } from './chunk-UH5ZXDEO.js';
20
20
  import { Link } from './chunk-AXW67SY7.js';
21
21
  import { LazyImageModal } from './chunk-CUG6VOLM.js';
22
22
  import { Toaster } from './chunk-OBSAH7K6.js';
@@ -109,13 +109,29 @@ function ThemeDocumentSync({
109
109
  }
110
110
 
111
111
  // src/utils/engine-version.ts
112
- var ENGINE_VERSION = "1.0.61" ;
112
+ var ENGINE_VERSION = "1.0.63" ;
113
113
 
114
114
  // src/providers/twilight-init.ts
115
115
  function getSalla() {
116
116
  if (typeof window === "undefined") return void 0;
117
117
  return window.salla;
118
118
  }
119
+ var SDK_GUEST_CURRENCY = "SAR";
120
+ function withSettingsUser(sdk, settings) {
121
+ if (!settings) return settings;
122
+ const { user: guest, ...rest } = settings;
123
+ if (!guest || sdk.storage?.get?.("user")) return rest;
124
+ const {
125
+ currency_code: _currency,
126
+ country_code: _country,
127
+ default_geo_location: _geo,
128
+ ...visitor
129
+ } = guest;
130
+ return {
131
+ ...rest,
132
+ user: { ...visitor, currency_code: sdk.cookie?.get?.("s-curr") ?? SDK_GUEST_CURRENCY }
133
+ };
134
+ }
119
135
  function useTwilightInit({
120
136
  debug: _debug,
121
137
  initialData,
@@ -172,13 +188,14 @@ function useTwilightInit({
172
188
  if (typeof sdk.init !== "function") return;
173
189
  const ctx = getTwilightContext();
174
190
  const pageCtx = ctx.page;
191
+ const baseData = withSettingsUser(sdk, settingsData);
175
192
  const initData = pageCtx ? {
176
- ...settingsData,
193
+ ...baseData,
177
194
  page: {
178
195
  ...pageCtx,
179
196
  url: pageCtx.url ?? ctx.location.pathname + ctx.location.searchStr
180
197
  }
181
- } : settingsData;
198
+ } : baseData;
182
199
  sdk.init(initData);
183
200
  const initSdk = async () => {
184
201
  try {
@@ -207,13 +224,13 @@ function useTwilightInit({
207
224
  }
208
225
  var navigationSetups = {
209
226
  tanstack: lazy(
210
- () => import('./navigation-QMBOIYJI.js').then((m) => ({ default: m.NavigationSetup }))
227
+ () => import('./navigation-ESPAHRXM.js').then((m) => ({ default: m.NavigationSetup }))
211
228
  ),
212
- nextjs: lazy(() => import('./navigation-XZJCQXY3.js').then((m) => ({ default: m.NavigationSetup })))
229
+ nextjs: lazy(() => import('./navigation-YKRXGGSL.js').then((m) => ({ default: m.NavigationSetup })))
213
230
  };
214
231
  var routeDocumentSyncs = {
215
232
  tanstack: lazy(
216
- () => import('./document-class-7KPUN2DK.js').then((m) => ({
233
+ () => import('./document-class-SKCL6IJF.js').then((m) => ({
217
234
  default: m.TanStackDocumentSync
218
235
  }))
219
236
  )
@@ -757,7 +774,7 @@ var LazySiftSnippet = lazy(
757
774
  () => import('./SiftSnippet-5FCU6TR6.js').then((m) => ({ default: m.SiftSnippet }))
758
775
  );
759
776
  var LazyStoreClosedNotification = lazy(
760
- () => import('./StoreClosedNotification-CNJI2Q26.js').then((m) => ({
777
+ () => import('./StoreClosedNotification-5MTDRRC3.js').then((m) => ({
761
778
  default: m.StoreClosedNotification
762
779
  }))
763
780
  );
@@ -1126,7 +1143,7 @@ function TwilightProvider({
1126
1143
  useEffect(() => {
1127
1144
  if (typeof window === "undefined") return;
1128
1145
  const sdk = getSalla2();
1129
- if (!sdk?.auth?.event) return;
1146
+ if (!sdk?.event) return;
1130
1147
  const writeAuthCookie = (token) => {
1131
1148
  document.cookie = `${AUTH_TOKEN_COOKIE_NAME}=${token}; path=/; max-age=${60 * 60 * 24 * 30}; SameSite=Lax; Secure`;
1132
1149
  };
@@ -1172,14 +1189,14 @@ function TwilightProvider({
1172
1189
  } catch {
1173
1190
  }
1174
1191
  };
1175
- sdk.auth.event.onLoggedIn(handleLogin);
1176
- sdk.auth.event.onLoggedOut(handleLogout);
1192
+ sdk.event.on("auth::logged.in", handleLogin);
1193
+ sdk.event.on("auth::logged.out", handleLogout);
1177
1194
  sdk.event.on("auth::token.invalid", handleTokenInvalid);
1178
1195
  sdk.event.on("auth::token.fetched", handleTokenFetched);
1179
1196
  sdk.event.on("api::token.injected", handleTokenFetched);
1180
1197
  return () => {
1181
- sdk.event.off("auth::loggedIn", handleLogin);
1182
- sdk.event.off("auth::loggedOut", handleLogout);
1198
+ sdk.event.off("auth::logged.in", handleLogin);
1199
+ sdk.event.off("auth::logged.out", handleLogout);
1183
1200
  sdk.event.off("auth::token.invalid", handleTokenInvalid);
1184
1201
  sdk.event.off("auth::token.fetched", handleTokenFetched);
1185
1202
  sdk.event.off("api::token.injected", handleTokenFetched);
@@ -1340,5 +1357,5 @@ function useStore() {
1340
1357
  }
1341
1358
 
1342
1359
  export { Footer, MasterLayout, TwilightProvider, fastCheckoutScript, registerDefaultHooks, registerDocumentSync, routeDocumentSyncs, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore };
1343
- //# sourceMappingURL=chunk-2U3PUO3V.js.map
1344
- //# sourceMappingURL=chunk-2U3PUO3V.js.map
1360
+ //# sourceMappingURL=chunk-EIJXSBL6.js.map
1361
+ //# sourceMappingURL=chunk-EIJXSBL6.js.map