@salla.sa/twilight-theme-engine 1.0.56 → 1.0.58

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 (247) hide show
  1. package/dist/{AddToCartForm-QKJ72MFV.js → AddToCartForm-MTD46H63.js} +3 -3
  2. package/dist/{AddToCartForm-QKJ72MFV.js.map → AddToCartForm-MTD46H63.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-75HKHV53.js → BlogAuthorPage-BT5BGQQJ.js} +15 -16
  4. package/dist/BlogAuthorPage-BT5BGQQJ.js.map +1 -0
  5. package/dist/{BlogCategoryPage-R7QE3DNT.js → BlogCategoryPage-IDHUIFVG.js} +15 -16
  6. package/dist/BlogCategoryPage-IDHUIFVG.js.map +1 -0
  7. package/dist/{BlogPage-OAEP7OOU.js → BlogPage-VSZPR4AD.js} +13 -14
  8. package/dist/BlogPage-VSZPR4AD.js.map +1 -0
  9. package/dist/{BlogSinglePage-NSCAOZMR.js → BlogSinglePage-3FWJ6UTQ.js} +13 -14
  10. package/dist/BlogSinglePage-3FWJ6UTQ.js.map +1 -0
  11. package/dist/{BlogTagPage-QNAZWE5P.js → BlogTagPage-TIPPV2WW.js} +15 -16
  12. package/dist/BlogTagPage-TIPPV2WW.js.map +1 -0
  13. package/dist/{BrandsPage-5JHLX2XO.js → BrandsPage-LEXRPFVK.js} +13 -14
  14. package/dist/BrandsPage-LEXRPFVK.js.map +1 -0
  15. package/dist/{Breadcrumb-A4FLPDBV.js → Breadcrumb-Q3P72LPT.js} +13 -14
  16. package/dist/Breadcrumb-Q3P72LPT.js.map +1 -0
  17. package/dist/{CartItem-VZKFYO57.js → CartItem-LJYCK3UP.js} +13 -14
  18. package/dist/CartItem-LJYCK3UP.js.map +1 -0
  19. package/dist/{CartSummary-7ZSG6I6S.js → CartSummary-645YDH2N.js} +13 -14
  20. package/dist/CartSummary-645YDH2N.js.map +1 -0
  21. package/dist/{Copyright-C4NN5NWB.js → Copyright-N5323WE7.js} +3 -3
  22. package/dist/{Copyright-C4NN5NWB.js.map → Copyright-N5323WE7.js.map} +1 -1
  23. package/dist/{CustomerLayout-3HW7J2BB.js → CustomerLayout-LB2EWG2P.js} +13 -14
  24. package/dist/CustomerLayout-LB2EWG2P.js.map +1 -0
  25. package/dist/{Footer-373V56WN.js → Footer-TTYS7K4V.js} +13 -14
  26. package/dist/{Footer-373V56WN.js.map → Footer-TTYS7K4V.js.map} +1 -1
  27. package/dist/{Header-F4H4CBCL.js → Header-26PWNGDF.js} +6 -6
  28. package/dist/{Header-F4H4CBCL.js.map → Header-26PWNGDF.js.map} +1 -1
  29. package/dist/{LoyaltyPage-UMWLPECY.js → LoyaltyPage-F4QVHJAH.js} +14 -15
  30. package/dist/LoyaltyPage-F4QVHJAH.js.map +1 -0
  31. package/dist/{MainMenu-DP2N74AL.js → MainMenu-SACYMDKQ.js} +7 -7
  32. package/dist/{MainMenu-DP2N74AL.js.map → MainMenu-SACYMDKQ.js.map} +1 -1
  33. package/dist/{MasterLayout-27XOOCFM.js → MasterLayout-MVY5N7G6.js} +13 -14
  34. package/dist/{MasterLayout-27XOOCFM.js.map → MasterLayout-MVY5N7G6.js.map} +1 -1
  35. package/dist/{MobileMenu-RDTHWQC3.js → MobileMenu-DBIJRXTA.js} +14 -15
  36. package/dist/MobileMenu-DBIJRXTA.js.map +1 -0
  37. package/dist/{NotificationsPage-KTZLNZHM.js → NotificationsPage-TMGF4BQM.js} +13 -14
  38. package/dist/NotificationsPage-TMGF4BQM.js.map +1 -0
  39. package/dist/{OrderSinglePage-PQ74PMJK.js → OrderSinglePage-NCQR6ADR.js} +14 -15
  40. package/dist/OrderSinglePage-NCQR6ADR.js.map +1 -0
  41. package/dist/{OrdersPage-7NGAJPK2.js → OrdersPage-O2LSXL4W.js} +14 -15
  42. package/dist/OrdersPage-O2LSXL4W.js.map +1 -0
  43. package/dist/{PageSingle-2OITZXHA.js → PageSingle-745SGJUG.js} +3 -3
  44. package/dist/{PageSingle-2OITZXHA.js.map → PageSingle-745SGJUG.js.map} +1 -1
  45. package/dist/{ProductDetails-CCN7LHV7.js → ProductDetails-AHYFTGM6.js} +3 -3
  46. package/dist/{ProductDetails-CCN7LHV7.js.map → ProductDetails-AHYFTGM6.js.map} +1 -1
  47. package/dist/{ProfilePage-FBAQ4YFY.js → ProfilePage-5JUXB5SB.js} +13 -14
  48. package/dist/ProfilePage-5JUXB5SB.js.map +1 -0
  49. package/dist/{SeoCartWidget-IZSJ6YTX.js → SeoCartWidget-XPPMBCQB.js} +13 -14
  50. package/dist/SeoCartWidget-XPPMBCQB.js.map +1 -0
  51. package/dist/{SettingsPage-RAEWPKMK.js → SettingsPage-NFSZ4CKO.js} +13 -14
  52. package/dist/SettingsPage-NFSZ4CKO.js.map +1 -0
  53. package/dist/{StoreClosedNotification-OALAFI4Y.js → StoreClosedNotification-5XWRDBPA.js} +14 -15
  54. package/dist/{StoreClosedNotification-OALAFI4Y.js.map → StoreClosedNotification-5XWRDBPA.js.map} +1 -1
  55. package/dist/{TestimonialsPage-RWIXMIR6.js → TestimonialsPage-JHGMJMGG.js} +3 -3
  56. package/dist/{TestimonialsPage-RWIXMIR6.js.map → TestimonialsPage-JHGMJMGG.js.map} +1 -1
  57. package/dist/{ThankYouPage-TLFQE3TA.js → ThankYouPage-CYCVSBAO.js} +13 -14
  58. package/dist/ThankYouPage-CYCVSBAO.js.map +1 -0
  59. package/dist/{WalletPage-EFOMPLFB.js → WalletPage-2JZ32SNZ.js} +14 -15
  60. package/dist/WalletPage-2JZ32SNZ.js.map +1 -0
  61. package/dist/{WishlistPage-D6WQCUIS.js → WishlistPage-N3K6MBMC.js} +15 -16
  62. package/dist/WishlistPage-N3K6MBMC.js.map +1 -0
  63. package/dist/api/apps.js +4 -4
  64. package/dist/api/brands.js +5 -5
  65. package/dist/api/cart.js +5 -5
  66. package/dist/api/category.js +5 -5
  67. package/dist/api/client.d.ts +9 -0
  68. package/dist/api/client.d.ts.map +1 -1
  69. package/dist/api/client.js +3 -3
  70. package/dist/api/home.js +4 -4
  71. package/dist/api/loyalty.js +5 -5
  72. package/dist/api/menu.js +4 -4
  73. package/dist/api/notification.js +4 -4
  74. package/dist/api/order.js +5 -5
  75. package/dist/api/page.js +5 -5
  76. package/dist/api/product.js +5 -5
  77. package/dist/api/profile.js +3 -3
  78. package/dist/api/store.js +4 -4
  79. package/dist/api/translations-key.d.ts +25 -0
  80. package/dist/api/translations-key.d.ts.map +1 -0
  81. package/dist/api/translations.d.ts +27 -4
  82. package/dist/api/translations.d.ts.map +1 -1
  83. package/dist/api/translations.js +4 -4
  84. package/dist/api/user.js +4 -4
  85. package/dist/api/wishlist.js +6 -6
  86. package/dist/{chunk-WMSOSA74.js → chunk-2KU5ANFZ.js} +5 -5
  87. package/dist/{chunk-WMSOSA74.js.map → chunk-2KU5ANFZ.js.map} +1 -1
  88. package/dist/{chunk-QBIW266S.js → chunk-2OX3JML4.js} +4 -4
  89. package/dist/{chunk-QBIW266S.js.map → chunk-2OX3JML4.js.map} +1 -1
  90. package/dist/{chunk-NSSKTF6I.js → chunk-36PDYP56.js} +40 -19
  91. package/dist/chunk-36PDYP56.js.map +1 -0
  92. package/dist/chunk-3H27IEME.js +14 -0
  93. package/dist/{chunk-TUUBKHTD.js.map → chunk-3H27IEME.js.map} +1 -1
  94. package/dist/{chunk-BVB75J3R.js → chunk-3R7YKSO6.js} +5 -5
  95. package/dist/{chunk-BVB75J3R.js.map → chunk-3R7YKSO6.js.map} +1 -1
  96. package/dist/{chunk-XEQ6ILIP.js → chunk-675NJ2XP.js} +4 -4
  97. package/dist/{chunk-XEQ6ILIP.js.map → chunk-675NJ2XP.js.map} +1 -1
  98. package/dist/{chunk-OZV5P4VP.js → chunk-7BWZYECG.js} +5 -5
  99. package/dist/{chunk-OZV5P4VP.js.map → chunk-7BWZYECG.js.map} +1 -1
  100. package/dist/{chunk-PZL3JWM2.js → chunk-BFZ47MS5.js} +3 -3
  101. package/dist/{chunk-PZL3JWM2.js.map → chunk-BFZ47MS5.js.map} +1 -1
  102. package/dist/{chunk-NCGZMLBS.js → chunk-BZ7ZIO33.js} +3 -3
  103. package/dist/{chunk-NCGZMLBS.js.map → chunk-BZ7ZIO33.js.map} +1 -1
  104. package/dist/{chunk-O6XXHXC4.js → chunk-F4MMWEII.js} +9 -5
  105. package/dist/chunk-F4MMWEII.js.map +1 -0
  106. package/dist/{chunk-R6M6RM6U.js → chunk-GLRXYGYI.js} +3 -3
  107. package/dist/{chunk-R6M6RM6U.js.map → chunk-GLRXYGYI.js.map} +1 -1
  108. package/dist/{chunk-MENDTTOA.js → chunk-HOE2P2HU.js} +3 -3
  109. package/dist/{chunk-MENDTTOA.js.map → chunk-HOE2P2HU.js.map} +1 -1
  110. package/dist/{chunk-62SHHET3.js → chunk-HVHFTVZT.js} +4 -4
  111. package/dist/{chunk-62SHHET3.js.map → chunk-HVHFTVZT.js.map} +1 -1
  112. package/dist/chunk-IE2FU6BR.js +83 -0
  113. package/dist/chunk-IE2FU6BR.js.map +1 -0
  114. package/dist/{chunk-F5IEB43R.js → chunk-J2GGMK3X.js} +6 -6
  115. package/dist/{chunk-F5IEB43R.js.map → chunk-J2GGMK3X.js.map} +1 -1
  116. package/dist/{chunk-NQ5FQOE2.js → chunk-JBNI5ZVG.js} +3 -3
  117. package/dist/{chunk-NQ5FQOE2.js.map → chunk-JBNI5ZVG.js.map} +1 -1
  118. package/dist/{chunk-63GHZIAG.js → chunk-JDROOL5C.js} +3 -3
  119. package/dist/{chunk-63GHZIAG.js.map → chunk-JDROOL5C.js.map} +1 -1
  120. package/dist/{chunk-P4DUWQU4.js → chunk-K4YT7TOV.js} +3 -3
  121. package/dist/{chunk-P4DUWQU4.js.map → chunk-K4YT7TOV.js.map} +1 -1
  122. package/dist/{chunk-JD4J2ZB6.js → chunk-KTOKX3GC.js} +3 -3
  123. package/dist/{chunk-JD4J2ZB6.js.map → chunk-KTOKX3GC.js.map} +1 -1
  124. package/dist/{chunk-IVDXRPIG.js → chunk-LKRI35NZ.js} +15 -19
  125. package/dist/chunk-LKRI35NZ.js.map +1 -0
  126. package/dist/{chunk-7XBSSGRK.js → chunk-MQBGRVOJ.js} +4 -4
  127. package/dist/{chunk-7XBSSGRK.js.map → chunk-MQBGRVOJ.js.map} +1 -1
  128. package/dist/{chunk-MDIUVANI.js → chunk-O2YV5DAL.js} +4 -4
  129. package/dist/{chunk-MDIUVANI.js.map → chunk-O2YV5DAL.js.map} +1 -1
  130. package/dist/{chunk-GLJX3BH2.js → chunk-PSRSWHML.js} +4 -4
  131. package/dist/{chunk-GLJX3BH2.js.map → chunk-PSRSWHML.js.map} +1 -1
  132. package/dist/{chunk-A2ZO3IR7.js → chunk-RBVFIPX2.js} +4 -4
  133. package/dist/{chunk-A2ZO3IR7.js.map → chunk-RBVFIPX2.js.map} +1 -1
  134. package/dist/{chunk-BQ4CV7YX.js → chunk-RJAV554G.js} +4 -4
  135. package/dist/{chunk-BQ4CV7YX.js.map → chunk-RJAV554G.js.map} +1 -1
  136. package/dist/{chunk-UV5BRJH4.js → chunk-S7XYSF4X.js} +4 -4
  137. package/dist/{chunk-UV5BRJH4.js.map → chunk-S7XYSF4X.js.map} +1 -1
  138. package/dist/{chunk-PJWFEMBX.js → chunk-SOPK72TP.js} +9 -4
  139. package/dist/chunk-SOPK72TP.js.map +1 -0
  140. package/dist/{chunk-YGAU6PFQ.js → chunk-TJGYL7GD.js} +5 -5
  141. package/dist/{chunk-YGAU6PFQ.js.map → chunk-TJGYL7GD.js.map} +1 -1
  142. package/dist/{chunk-3FIWHGCZ.js → chunk-TX6ZP4FF.js} +3 -3
  143. package/dist/{chunk-3FIWHGCZ.js.map → chunk-TX6ZP4FF.js.map} +1 -1
  144. package/dist/{chunk-QKIQ3K24.js → chunk-UOALND7V.js} +4 -4
  145. package/dist/{chunk-QKIQ3K24.js.map → chunk-UOALND7V.js.map} +1 -1
  146. package/dist/{chunk-TIDHWQIS.js → chunk-VO5ODVVL.js} +4 -4
  147. package/dist/{chunk-TIDHWQIS.js.map → chunk-VO5ODVVL.js.map} +1 -1
  148. package/dist/{chunk-U43L4ZLH.js → chunk-WFSOVIYU.js} +6 -6
  149. package/dist/{chunk-U43L4ZLH.js.map → chunk-WFSOVIYU.js.map} +1 -1
  150. package/dist/{chunk-4D44TJ72.js → chunk-WIAPOLEA.js} +3 -3
  151. package/dist/{chunk-4D44TJ72.js.map → chunk-WIAPOLEA.js.map} +1 -1
  152. package/dist/{chunk-EPDF4ZU7.js → chunk-XDB2POG3.js} +7 -7
  153. package/dist/{chunk-EPDF4ZU7.js.map → chunk-XDB2POG3.js.map} +1 -1
  154. package/dist/{chunk-UIDPX3GA.js → chunk-YJ6ZSGQY.js} +3 -3
  155. package/dist/{chunk-UIDPX3GA.js.map → chunk-YJ6ZSGQY.js.map} +1 -1
  156. package/dist/{chunk-QM75GGXX.js → chunk-YJJZN5UP.js} +4 -4
  157. package/dist/{chunk-QM75GGXX.js.map → chunk-YJJZN5UP.js.map} +1 -1
  158. package/dist/{chunk-3MHDV5JS.js → chunk-YNY5P2DG.js} +3 -3
  159. package/dist/{chunk-3MHDV5JS.js.map → chunk-YNY5P2DG.js.map} +1 -1
  160. package/dist/{chunk-Z74NUTEI.js → chunk-YSFWVMBA.js} +3 -3
  161. package/dist/{chunk-Z74NUTEI.js.map → chunk-YSFWVMBA.js.map} +1 -1
  162. package/dist/components/cart/index.js +1 -1
  163. package/dist/components/common/index.js +1 -1
  164. package/dist/components/drawer/index.js +11 -12
  165. package/dist/components/home/index.js +14 -15
  166. package/dist/components/layout/index.js +5 -5
  167. package/dist/components/product/index.js +12 -13
  168. package/dist/components/store/index.js +13 -14
  169. package/dist/components/store/index.js.map +1 -1
  170. package/dist/document-class-YYEVAIVJ.js +25 -0
  171. package/dist/{document-class-JZAILFK3.js.map → document-class-YYEVAIVJ.js.map} +1 -1
  172. package/dist/hooks/index.js +11 -12
  173. package/dist/hooks/registerDefaultHooks.d.ts.map +1 -1
  174. package/dist/hooks/useGtm.js +11 -12
  175. package/dist/hooks/useMoney.js +11 -12
  176. package/dist/hooks/useStore.js +11 -12
  177. package/dist/hooks/useUser.js +5 -5
  178. package/dist/index.js +11 -12
  179. package/dist/index.js.map +1 -1
  180. package/dist/{navigation-JINL5V44.js → navigation-4VEQUXHI.js} +5 -5
  181. package/dist/{navigation-JINL5V44.js.map → navigation-4VEQUXHI.js.map} +1 -1
  182. package/dist/{navigation-ERMAPC4D.js → navigation-MVKZENRD.js} +4 -4
  183. package/dist/{navigation-ERMAPC4D.js.map → navigation-MVKZENRD.js.map} +1 -1
  184. package/dist/{not-found-OSTTTMCL.js → not-found-JGDH4AQ3.js} +14 -15
  185. package/dist/not-found-JGDH4AQ3.js.map +1 -0
  186. package/dist/providers/index.js +11 -12
  187. package/dist/routes/account/orders.js +6 -6
  188. package/dist/routes/account.js +15 -15
  189. package/dist/routes/blog.js +10 -10
  190. package/dist/routes/brands.js +6 -6
  191. package/dist/routes/cart.js +19 -20
  192. package/dist/routes/cart.js.map +1 -1
  193. package/dist/routes/home.js +16 -17
  194. package/dist/routes/index.js +3 -3
  195. package/dist/routes/loyalty.js +6 -6
  196. package/dist/routes/page.js +6 -6
  197. package/dist/routes/product/index.d.ts.map +1 -1
  198. package/dist/routes/product-listing.js +16 -17
  199. package/dist/routes/product-listing.js.map +1 -1
  200. package/dist/routes/product.js +19 -16
  201. package/dist/routes/product.js.map +1 -1
  202. package/dist/routes/root/head.d.ts.map +1 -1
  203. package/dist/routes/seo-redirects.js +3 -3
  204. package/dist/routes/testimonials.js +2 -2
  205. package/dist/routes/thank-you.js +6 -6
  206. package/dist/skeleton.js +16 -17
  207. package/dist/tanstack/router.d.ts.map +1 -1
  208. package/dist/tanstack.js +15 -16
  209. package/dist/tanstack.js.map +1 -1
  210. package/dist/twilight/context.d.ts.map +1 -1
  211. package/dist/utils/fast-checkout.d.ts +16 -1
  212. package/dist/utils/fast-checkout.d.ts.map +1 -1
  213. package/dist/utils/index.js +4 -4
  214. package/dist/vite/index.js +2 -2
  215. package/package.json +1 -1
  216. package/dist/BlogAuthorPage-75HKHV53.js.map +0 -1
  217. package/dist/BlogCategoryPage-R7QE3DNT.js.map +0 -1
  218. package/dist/BlogPage-OAEP7OOU.js.map +0 -1
  219. package/dist/BlogSinglePage-NSCAOZMR.js.map +0 -1
  220. package/dist/BlogTagPage-QNAZWE5P.js.map +0 -1
  221. package/dist/BrandsPage-5JHLX2XO.js.map +0 -1
  222. package/dist/Breadcrumb-A4FLPDBV.js.map +0 -1
  223. package/dist/CartItem-VZKFYO57.js.map +0 -1
  224. package/dist/CartSummary-7ZSG6I6S.js.map +0 -1
  225. package/dist/CustomerLayout-3HW7J2BB.js.map +0 -1
  226. package/dist/LoyaltyPage-UMWLPECY.js.map +0 -1
  227. package/dist/MobileMenu-RDTHWQC3.js.map +0 -1
  228. package/dist/NotificationsPage-KTZLNZHM.js.map +0 -1
  229. package/dist/OrderSinglePage-PQ74PMJK.js.map +0 -1
  230. package/dist/OrdersPage-7NGAJPK2.js.map +0 -1
  231. package/dist/ProfilePage-FBAQ4YFY.js.map +0 -1
  232. package/dist/SeoCartWidget-IZSJ6YTX.js.map +0 -1
  233. package/dist/SettingsPage-RAEWPKMK.js.map +0 -1
  234. package/dist/ThankYouPage-TLFQE3TA.js.map +0 -1
  235. package/dist/WalletPage-EFOMPLFB.js.map +0 -1
  236. package/dist/WishlistPage-D6WQCUIS.js.map +0 -1
  237. package/dist/chunk-6IATCGID.js +0 -7
  238. package/dist/chunk-6IATCGID.js.map +0 -1
  239. package/dist/chunk-IVDXRPIG.js.map +0 -1
  240. package/dist/chunk-KT2MUSRN.js +0 -25
  241. package/dist/chunk-KT2MUSRN.js.map +0 -1
  242. package/dist/chunk-NSSKTF6I.js.map +0 -1
  243. package/dist/chunk-O6XXHXC4.js.map +0 -1
  244. package/dist/chunk-PJWFEMBX.js.map +0 -1
  245. package/dist/chunk-TUUBKHTD.js +0 -14
  246. package/dist/document-class-JZAILFK3.js +0 -26
  247. package/dist/not-found-OSTTTMCL.js.map +0 -1
@@ -1,20 +1,19 @@
1
- export { useStore } from '../chunk-NSSKTF6I.js';
2
- import '../chunk-F5IEB43R.js';
1
+ export { useStore } from '../chunk-36PDYP56.js';
2
+ import '../chunk-J2GGMK3X.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
- import '../chunk-6IATCGID.js';
6
- import '../chunk-3MHDV5JS.js';
5
+ import '../chunk-YNY5P2DG.js';
7
6
  import '../chunk-VVZNW5CB.js';
8
- import '../chunk-JD4J2ZB6.js';
9
- import '../chunk-63GHZIAG.js';
7
+ import '../chunk-KTOKX3GC.js';
8
+ import '../chunk-JDROOL5C.js';
10
9
  import '../chunk-TFB3QXYH.js';
11
10
  import '../chunk-C5X6CVXC.js';
12
- import '../chunk-QKIQ3K24.js';
13
- import '../chunk-Z74NUTEI.js';
14
- import '../chunk-O6XXHXC4.js';
15
- import '../chunk-3FIWHGCZ.js';
11
+ import '../chunk-UOALND7V.js';
12
+ import '../chunk-YSFWVMBA.js';
13
+ import '../chunk-F4MMWEII.js';
14
+ import '../chunk-TX6ZP4FF.js';
16
15
  import '../chunk-XTMHHLNK.js';
17
- import '../chunk-PJWFEMBX.js';
16
+ import '../chunk-SOPK72TP.js';
18
17
  import '../chunk-TP3LCGE7.js';
19
18
  import '../chunk-Z653O7MX.js';
20
19
  import '../chunk-ZCH7W7DZ.js';
@@ -30,7 +29,7 @@ import '../chunk-YMVLYYLU.js';
30
29
  import '../chunk-RJPPO3ET.js';
31
30
  import '../chunk-Q7VWURUR.js';
32
31
  import '../chunk-GU2KUQVD.js';
33
- import '../chunk-NQ5FQOE2.js';
32
+ import '../chunk-JBNI5ZVG.js';
34
33
  import '../chunk-AXW67SY7.js';
35
34
  import '../chunk-BYMOPN2S.js';
36
35
  import '../chunk-SKLEJJ6M.js';
@@ -1,9 +1,9 @@
1
- export { useUser } from '../chunk-QKIQ3K24.js';
2
- import '../chunk-Z74NUTEI.js';
3
- import '../chunk-O6XXHXC4.js';
4
- import '../chunk-3FIWHGCZ.js';
1
+ export { useUser } from '../chunk-UOALND7V.js';
2
+ import '../chunk-YSFWVMBA.js';
3
+ import '../chunk-F4MMWEII.js';
4
+ import '../chunk-TX6ZP4FF.js';
5
5
  import '../chunk-XTMHHLNK.js';
6
- import '../chunk-PJWFEMBX.js';
6
+ import '../chunk-SOPK72TP.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DGUM43GV.js';
9
9
  //# sourceMappingURL=useUser.js.map
package/dist/index.js CHANGED
@@ -1,22 +1,21 @@
1
1
  import { registry } from './chunk-342EPVXN.js';
2
2
  export { ComponentRegistry, registry } from './chunk-342EPVXN.js';
3
- export { TwilightProvider } from './chunk-NSSKTF6I.js';
4
- import './chunk-F5IEB43R.js';
3
+ export { TwilightProvider } from './chunk-36PDYP56.js';
4
+ import './chunk-J2GGMK3X.js';
5
5
  import './chunk-JKIRRMBU.js';
6
6
  import './chunk-2JV6WZ6O.js';
7
- import './chunk-6IATCGID.js';
8
- import './chunk-3MHDV5JS.js';
7
+ import './chunk-YNY5P2DG.js';
9
8
  import './chunk-VVZNW5CB.js';
10
- import './chunk-JD4J2ZB6.js';
11
- export { useIsBlog, useIsBrands, useIsCart, useIsCustomer, useIsHome, useIsProduct, useIsSearch, useRouteId } from './chunk-63GHZIAG.js';
9
+ import './chunk-KTOKX3GC.js';
10
+ export { useIsBlog, useIsBrands, useIsCart, useIsCustomer, useIsHome, useIsProduct, useIsSearch, useRouteId } from './chunk-JDROOL5C.js';
12
11
  export { RouteId } from './chunk-TFB3QXYH.js';
13
12
  import './chunk-C5X6CVXC.js';
14
- import './chunk-QKIQ3K24.js';
15
- import './chunk-Z74NUTEI.js';
16
- import './chunk-O6XXHXC4.js';
17
- import './chunk-3FIWHGCZ.js';
13
+ import './chunk-UOALND7V.js';
14
+ import './chunk-YSFWVMBA.js';
15
+ import './chunk-F4MMWEII.js';
16
+ import './chunk-TX6ZP4FF.js';
18
17
  import './chunk-XTMHHLNK.js';
19
- export { SettingsError } from './chunk-PJWFEMBX.js';
18
+ export { SettingsError } from './chunk-SOPK72TP.js';
20
19
  export { HookName } from './chunk-TP3LCGE7.js';
21
20
  import './chunk-Z653O7MX.js';
22
21
  import './chunk-ZCH7W7DZ.js';
@@ -32,7 +31,7 @@ import './chunk-YMVLYYLU.js';
32
31
  import './chunk-RJPPO3ET.js';
33
32
  import './chunk-Q7VWURUR.js';
34
33
  import './chunk-GU2KUQVD.js';
35
- import './chunk-NQ5FQOE2.js';
34
+ import './chunk-JBNI5ZVG.js';
36
35
  import './chunk-AXW67SY7.js';
37
36
  import './chunk-BYMOPN2S.js';
38
37
  import './chunk-SKLEJJ6M.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Component.tsx","../src/components/useComponent.ts","../src/components/defineComponent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAAS,UAAU,EAAE,IAAA,EAAM,WAAW,IAAA,EAAM,GAAG,OAAM,EAAoC;AAC9F,EAAA,MAAM,iBAAA,GAAoB,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAE/C,EAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,EAAe;AAC1C,MAAA,MAAA,CAAO,KAAA,EAAO,MAAA,EAAQ,IAAA,CAAK,CAAA,YAAA,EAAe,IAAI,CAAA,uBAAA,CAAyB,CAAA;AAAA,IACzE;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AACvC;;;ACjBO,SAAS,aAA0C,IAAA,EAAuC;AAC/F,EAAA,OAAO,QAAA,CAAS,QAAW,IAAI,CAAA;AACjC;AAEO,SAAS,qBACd,IAAA,EACyB;AACzB,EAAA,OAAO,QAAA,CAAS,YAAe,IAAI,CAAA;AACrC;;;ACFO,SAAS,gBACd,MAAA,EACkB;AAClB,EAAA,IAAI,OAAO,QAAA,EAAU;AACnB,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD,CAAA,MAAO;AACL,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,MAAA,CAAO,SAAA;AAChB;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF","file":"index.js","sourcesContent":["import React from 'react';\nimport { registry } from './ComponentRegistry';\n\nexport interface ComponentProps {\n name: string;\n fallback?: React.ReactNode;\n [key: string]: unknown;\n}\n\nexport function Component({ name, fallback = null, ...props }: ComponentProps): React.ReactNode {\n const ResolvedComponent = registry.resolve(name);\n\n if (!ResolvedComponent) {\n if (process.env.NODE_ENV === 'development') {\n window.salla?.logger?.warn(`Component::\"${name}\" not found in registry`);\n }\n return fallback;\n }\n\n return <ResolvedComponent {...props} />;\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\nexport function useComponent<P = Record<string, unknown>>(name: string): ComponentType<P> | null {\n return registry.resolve<P>(name);\n}\n\nexport function useOriginalComponent<P = Record<string, unknown>>(\n name: string\n): ComponentType<P> | null {\n return registry.getOriginal<P>(name);\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\ninterface DefineComponentConfig<P = Record<string, unknown>> {\n name: string;\n component: ComponentType<P>;\n override?: boolean;\n}\n\nexport function defineComponent<P = Record<string, unknown>>(\n config: DefineComponentConfig<P>\n): ComponentType<P> {\n if (config.override) {\n registry.override(config.name, config.component);\n } else {\n registry.register(config.name, config.component);\n }\n\n return config.component;\n}\n\nexport function registerComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.register(name, component);\n }\n}\n\nexport function overrideComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.override(name, component);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Component.tsx","../src/components/useComponent.ts","../src/components/defineComponent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAAS,UAAU,EAAE,IAAA,EAAM,WAAW,IAAA,EAAM,GAAG,OAAM,EAAoC;AAC9F,EAAA,MAAM,iBAAA,GAAoB,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAE/C,EAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,EAAe;AAC1C,MAAA,MAAA,CAAO,KAAA,EAAO,MAAA,EAAQ,IAAA,CAAK,CAAA,YAAA,EAAe,IAAI,CAAA,uBAAA,CAAyB,CAAA;AAAA,IACzE;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AACvC;;;ACjBO,SAAS,aAA0C,IAAA,EAAuC;AAC/F,EAAA,OAAO,QAAA,CAAS,QAAW,IAAI,CAAA;AACjC;AAEO,SAAS,qBACd,IAAA,EACyB;AACzB,EAAA,OAAO,QAAA,CAAS,YAAe,IAAI,CAAA;AACrC;;;ACFO,SAAS,gBACd,MAAA,EACkB;AAClB,EAAA,IAAI,OAAO,QAAA,EAAU;AACnB,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD,CAAA,MAAO;AACL,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,MAAA,CAAO,SAAA;AAChB;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF","file":"index.js","sourcesContent":["import React from 'react';\nimport { registry } from './ComponentRegistry';\n\nexport interface ComponentProps {\n name: string;\n fallback?: React.ReactNode;\n [key: string]: unknown;\n}\n\nexport function Component({ name, fallback = null, ...props }: ComponentProps): React.ReactNode {\n const ResolvedComponent = registry.resolve(name);\n\n if (!ResolvedComponent) {\n if (process.env.NODE_ENV === 'development') {\n window.salla?.logger?.warn(`Component::\"${name}\" not found in registry`);\n }\n return fallback;\n }\n\n return <ResolvedComponent {...props} />;\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\nexport function useComponent<P = Record<string, unknown>>(name: string): ComponentType<P> | null {\n return registry.resolve<P>(name);\n}\n\nexport function useOriginalComponent<P = Record<string, unknown>>(\n name: string\n): ComponentType<P> | null {\n return registry.getOriginal<P>(name);\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\ninterface DefineComponentConfig<P = Record<string, unknown>> {\n name: string;\n component: ComponentType<P>;\n override?: boolean;\n}\n\nexport function defineComponent<P = Record<string, unknown>>(\n config: DefineComponentConfig<P>\n): ComponentType<P> {\n if (config.override) {\n registry.override(config.name, config.component);\n } else {\n registry.register(config.name, config.component);\n }\n\n return config.component;\n}\n\nexport function registerComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.register(name, component);\n }\n}\n\nexport function overrideComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.override(name, component);\n }\n}\n"]}
@@ -1,11 +1,11 @@
1
- export { NavigationSetup, TanStackNavigationProvider } from './chunk-NCGZMLBS.js';
2
- import './chunk-63GHZIAG.js';
1
+ export { NavigationSetup, TanStackNavigationProvider } from './chunk-BZ7ZIO33.js';
2
+ import './chunk-JDROOL5C.js';
3
3
  import './chunk-TFB3QXYH.js';
4
4
  import './chunk-XTMHHLNK.js';
5
- import './chunk-PJWFEMBX.js';
5
+ import './chunk-SOPK72TP.js';
6
6
  import './chunk-T72DAX7R.js';
7
7
  import './chunk-BYMOPN2S.js';
8
8
  import './chunk-DF6FBKDN.js';
9
9
  import './chunk-DGUM43GV.js';
10
- //# sourceMappingURL=navigation-JINL5V44.js.map
11
- //# sourceMappingURL=navigation-JINL5V44.js.map
10
+ //# sourceMappingURL=navigation-4VEQUXHI.js.map
11
+ //# sourceMappingURL=navigation-4VEQUXHI.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"navigation-JINL5V44.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"navigation-4VEQUXHI.js"}
@@ -1,8 +1,8 @@
1
1
  import { NextJsLinkAdapter } from './chunk-HTGBIA7K.js';
2
- import { NavigationProvider, defaultNavigate } from './chunk-63GHZIAG.js';
2
+ import { NavigationProvider, defaultNavigate } from './chunk-JDROOL5C.js';
3
3
  import './chunk-TFB3QXYH.js';
4
4
  import './chunk-XTMHHLNK.js';
5
- import './chunk-PJWFEMBX.js';
5
+ import './chunk-SOPK72TP.js';
6
6
  import './chunk-T72DAX7R.js';
7
7
  import { LinkProvider } from './chunk-BYMOPN2S.js';
8
8
  import './chunk-DF6FBKDN.js';
@@ -14,5 +14,5 @@ function NavigationSetup({ children }) {
14
14
  }
15
15
 
16
16
  export { NavigationSetup };
17
- //# sourceMappingURL=navigation-ERMAPC4D.js.map
18
- //# sourceMappingURL=navigation-ERMAPC4D.js.map
17
+ //# sourceMappingURL=navigation-MVKZENRD.js.map
18
+ //# sourceMappingURL=navigation-MVKZENRD.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/nextjs/navigation.tsx"],"names":[],"mappings":";;;;;;;;;;;AASO,SAAS,eAAA,CAAgB,EAAE,QAAA,EAAS,EAA4B;AACrE,EAAA,uBACE,GAAA,CAAC,sBAAmB,QAAA,EAAU,eAAA,EAC5B,8BAAC,YAAA,EAAA,EAAa,OAAA,EAAS,iBAAA,EAAoB,QAAA,EAAS,CAAA,EACtD,CAAA;AAEJ","file":"navigation-ERMAPC4D.js","sourcesContent":["import { NavigationProvider, defaultNavigate } from '../providers/NavigationProvider';\nimport { LinkProvider } from '../providers/LinkProvider';\nimport { NextJsLinkAdapter } from './link';\nimport type { ReactNode } from 'react';\n\n/**\n * Next.js navigation setup - wraps children with NavigationProvider and LinkProvider.\n * Called by TwilightProvider when client.framework === 'nextjs'.\n */\nexport function NavigationSetup({ children }: { children: ReactNode }) {\n return (\n <NavigationProvider navigate={defaultNavigate}>\n <LinkProvider adapter={NextJsLinkAdapter}>{children}</LinkProvider>\n </NavigationProvider>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/nextjs/navigation.tsx"],"names":[],"mappings":";;;;;;;;;;;AASO,SAAS,eAAA,CAAgB,EAAE,QAAA,EAAS,EAA4B;AACrE,EAAA,uBACE,GAAA,CAAC,sBAAmB,QAAA,EAAU,eAAA,EAC5B,8BAAC,YAAA,EAAA,EAAa,OAAA,EAAS,iBAAA,EAAoB,QAAA,EAAS,CAAA,EACtD,CAAA;AAEJ","file":"navigation-MVKZENRD.js","sourcesContent":["import { NavigationProvider, defaultNavigate } from '../providers/NavigationProvider';\nimport { LinkProvider } from '../providers/LinkProvider';\nimport { NextJsLinkAdapter } from './link';\nimport type { ReactNode } from 'react';\n\n/**\n * Next.js navigation setup - wraps children with NavigationProvider and LinkProvider.\n * Called by TwilightProvider when client.framework === 'nextjs'.\n */\nexport function NavigationSetup({ children }: { children: ReactNode }) {\n return (\n <NavigationProvider navigate={defaultNavigate}>\n <LinkProvider adapter={NextJsLinkAdapter}>{children}</LinkProvider>\n </NavigationProvider>\n );\n}\n"]}
@@ -1,21 +1,20 @@
1
- import { product } from './chunk-BVB75J3R.js';
2
- import './chunk-NSSKTF6I.js';
3
- import './chunk-F5IEB43R.js';
1
+ import { product } from './chunk-3R7YKSO6.js';
2
+ import './chunk-36PDYP56.js';
3
+ import './chunk-J2GGMK3X.js';
4
4
  import './chunk-JKIRRMBU.js';
5
5
  import './chunk-2JV6WZ6O.js';
6
- import './chunk-6IATCGID.js';
7
- import './chunk-3MHDV5JS.js';
6
+ import './chunk-YNY5P2DG.js';
8
7
  import './chunk-VVZNW5CB.js';
9
- import './chunk-JD4J2ZB6.js';
10
- import { useLocation, useNavigate } from './chunk-63GHZIAG.js';
8
+ import './chunk-KTOKX3GC.js';
9
+ import { useLocation, useNavigate } from './chunk-JDROOL5C.js';
11
10
  import './chunk-TFB3QXYH.js';
12
11
  import './chunk-C5X6CVXC.js';
13
- import './chunk-QKIQ3K24.js';
14
- import './chunk-Z74NUTEI.js';
15
- import './chunk-O6XXHXC4.js';
16
- import './chunk-3FIWHGCZ.js';
12
+ import './chunk-UOALND7V.js';
13
+ import './chunk-YSFWVMBA.js';
14
+ import './chunk-F4MMWEII.js';
15
+ import './chunk-TX6ZP4FF.js';
17
16
  import './chunk-XTMHHLNK.js';
18
- import './chunk-PJWFEMBX.js';
17
+ import './chunk-SOPK72TP.js';
19
18
  import './chunk-TP3LCGE7.js';
20
19
  import './chunk-Z653O7MX.js';
21
20
  import './chunk-ZCH7W7DZ.js';
@@ -31,7 +30,7 @@ import './chunk-YMVLYYLU.js';
31
30
  import './chunk-RJPPO3ET.js';
32
31
  import { HookSlot } from './chunk-Q7VWURUR.js';
33
32
  import './chunk-GU2KUQVD.js';
34
- import { LazyErrorPage } from './chunk-NQ5FQOE2.js';
33
+ import { LazyErrorPage } from './chunk-JBNI5ZVG.js';
35
34
  import './chunk-AXW67SY7.js';
36
35
  import './chunk-BYMOPN2S.js';
37
36
  import './chunk-SKLEJJ6M.js';
@@ -117,5 +116,5 @@ function NotFoundPage(props = {}) {
117
116
  }
118
117
 
119
118
  export { NotFoundPage };
120
- //# sourceMappingURL=not-found-OSTTTMCL.js.map
121
- //# sourceMappingURL=not-found-OSTTTMCL.js.map
119
+ //# sourceMappingURL=not-found-JGDH4AQ3.js.map
120
+ //# sourceMappingURL=not-found-JGDH4AQ3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/routes/product-short-link.ts","../src/routes/not-found.tsx"],"names":[],"mappings":"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","file":"not-found-JGDH4AQ3.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { product } from '../api/product';\nimport { isLocale } from '../providers/locale-constants';\nimport { useLocation, useNavigate } from '../providers/NavigationProvider';\n\n/** Short codes are 5-10 letters/digits (e.g. `lvXvzln`). */\nconst SHORT_CODE = /^[A-Za-z0-9]{5,10}$/;\n\n/**\n * The product short code in a path shaped `/{locale}/{code}` or `/{code}` (the\n * store base is already stripped from the router's location), plus the locale\n * segment to keep when redirecting. `null` for any other path.\n */\nexport function parseShortLinkPath(pathname: string): { code: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n if (segments.length === 2 && isLocale(segments[0]) && SHORT_CODE.test(segments[1])) {\n return { code: segments[1], locale: segments[0] };\n }\n if (segments.length === 1 && !isLocale(segments[0]) && SHORT_CODE.test(segments[0])) {\n return { code: segments[0] };\n }\n return null;\n}\n\n/** The SEO slug from a product URL (`…/{slug}/p{id}`), `-` when it has none. */\nexport function slugFromProductUrl(url: string | undefined): string {\n try {\n const segments = new URL(url ?? '').pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1] ?? '';\n return /^p\\d+$/.test(last) && segments.length > 1 ? segments[segments.length - 2] : '-';\n } catch {\n return '-';\n }\n}\n\n/**\n * Resolves a product short link (`/ar/lvXvzln`) that matched no route: the\n * products API accepts the code as an id, so look it up and replace the URL with\n * the product's canonical page. Returns `true` while a lookup is in flight (so the\n * 404 isn't flashed); settles to `false` when the path isn't a short link or the\n * code doesn't resolve.\n */\nexport function useProductShortLink(): boolean {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const target = parseShortLinkPath(pathname);\n const code = target?.code;\n const locale = target?.locale;\n const [failedCode, setFailedCode] = useState<string | null>(null);\n\n useEffect(() => {\n if (!code) return;\n let cancelled = false;\n product\n .find(code)\n .then((found) => {\n if (cancelled) return;\n if (!found?.id) return setFailedCode(code);\n const prefix = locale ? `/${locale}` : '';\n navigate(`${prefix}/${slugFromProductUrl(found.url)}/p${found.id}`, { replace: true });\n })\n .catch(() => !cancelled && setFailedCode(code));\n return () => {\n cancelled = true;\n };\n }, [code, locale, navigate]);\n\n return !!code && failedCode !== code;\n}\n","import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\nimport { useProductShortLink } from './product-short-link';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n // A product short link (`/ar/lvXvzln`) matches no route; resolve it instead of 404ing.\n const resolvingShortLink = useProductShortLink();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n if (resolvingShortLink) return null;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}
@@ -1,20 +1,19 @@
1
- export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-NSSKTF6I.js';
2
- import '../chunk-F5IEB43R.js';
1
+ export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-36PDYP56.js';
2
+ import '../chunk-J2GGMK3X.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
- import '../chunk-6IATCGID.js';
6
- import '../chunk-3MHDV5JS.js';
5
+ import '../chunk-YNY5P2DG.js';
7
6
  import '../chunk-VVZNW5CB.js';
8
- import '../chunk-JD4J2ZB6.js';
9
- export { NavigationInterceptor, NavigationProvider, NotFoundError, RedirectError, UnauthorizedError, configureNavigation, notFound, orThrow, orUnauthorized, redirect, unauthorized, useIsBlog, useIsBrands, useIsCart, useIsCustomer, useIsHome, useIsProduct, useIsSearch, useLocation, useNavigate, useRouteId } from '../chunk-63GHZIAG.js';
7
+ import '../chunk-KTOKX3GC.js';
8
+ export { NavigationInterceptor, NavigationProvider, NotFoundError, RedirectError, UnauthorizedError, configureNavigation, notFound, orThrow, orUnauthorized, redirect, unauthorized, useIsBlog, useIsBrands, useIsCart, useIsCustomer, useIsHome, useIsProduct, useIsSearch, useLocation, useNavigate, useRouteId } from '../chunk-JDROOL5C.js';
10
9
  export { RouteId } from '../chunk-TFB3QXYH.js';
11
10
  import '../chunk-C5X6CVXC.js';
12
- import '../chunk-QKIQ3K24.js';
13
- import '../chunk-Z74NUTEI.js';
14
- import '../chunk-O6XXHXC4.js';
15
- import '../chunk-3FIWHGCZ.js';
11
+ import '../chunk-UOALND7V.js';
12
+ import '../chunk-YSFWVMBA.js';
13
+ import '../chunk-F4MMWEII.js';
14
+ import '../chunk-TX6ZP4FF.js';
16
15
  import '../chunk-XTMHHLNK.js';
17
- export { SettingsError } from '../chunk-PJWFEMBX.js';
16
+ export { SettingsError } from '../chunk-SOPK72TP.js';
18
17
  import '../chunk-TP3LCGE7.js';
19
18
  import '../chunk-Z653O7MX.js';
20
19
  import '../chunk-ZCH7W7DZ.js';
@@ -30,7 +29,7 @@ import '../chunk-YMVLYYLU.js';
30
29
  import '../chunk-RJPPO3ET.js';
31
30
  import '../chunk-Q7VWURUR.js';
32
31
  import '../chunk-GU2KUQVD.js';
33
- import '../chunk-NQ5FQOE2.js';
32
+ import '../chunk-JBNI5ZVG.js';
34
33
  import '../chunk-AXW67SY7.js';
35
34
  export { LinkProvider, LinkProviderError, createLinkWithAdapter, useLinkAdapter } from '../chunk-BYMOPN2S.js';
36
35
  import '../chunk-SKLEJJ6M.js';
@@ -1,12 +1,12 @@
1
- export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-EPDF4ZU7.js';
2
- import '../../chunk-QM75GGXX.js';
1
+ export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-XDB2POG3.js';
2
+ import '../../chunk-YJJZN5UP.js';
3
3
  import '../../chunk-TZ3E5BN4.js';
4
- import '../../chunk-63GHZIAG.js';
4
+ import '../../chunk-JDROOL5C.js';
5
5
  import '../../chunk-TFB3QXYH.js';
6
- import '../../chunk-O6XXHXC4.js';
7
- import '../../chunk-3FIWHGCZ.js';
6
+ import '../../chunk-F4MMWEII.js';
7
+ import '../../chunk-TX6ZP4FF.js';
8
8
  import '../../chunk-XTMHHLNK.js';
9
- import '../../chunk-PJWFEMBX.js';
9
+ import '../../chunk-SOPK72TP.js';
10
10
  import '../../chunk-T72DAX7R.js';
11
11
  import '../../chunk-DF6FBKDN.js';
12
12
  import '../../chunk-DGUM43GV.js';
@@ -1,16 +1,16 @@
1
- import { wallet } from '../chunk-PZL3JWM2.js';
2
- export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-EPDF4ZU7.js';
3
- import '../chunk-QM75GGXX.js';
4
- import { notification } from '../chunk-MENDTTOA.js';
5
- import { wishlist } from '../chunk-7XBSSGRK.js';
1
+ import { wallet } from '../chunk-BFZ47MS5.js';
2
+ export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-XDB2POG3.js';
3
+ import '../chunk-YJJZN5UP.js';
4
+ import { notification } from '../chunk-HOE2P2HU.js';
5
+ import { wishlist } from '../chunk-MQBGRVOJ.js';
6
6
  import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
7
- import '../chunk-BVB75J3R.js';
8
- import { unauthorized, orUnauthorized } from '../chunk-63GHZIAG.js';
7
+ import '../chunk-3R7YKSO6.js';
8
+ import { unauthorized, orUnauthorized } from '../chunk-JDROOL5C.js';
9
9
  import { RouteId } from '../chunk-TFB3QXYH.js';
10
- import '../chunk-O6XXHXC4.js';
11
- import '../chunk-3FIWHGCZ.js';
10
+ import '../chunk-F4MMWEII.js';
11
+ import '../chunk-TX6ZP4FF.js';
12
12
  import '../chunk-XTMHHLNK.js';
13
- import { getTwilightContext } from '../chunk-PJWFEMBX.js';
13
+ import { getTwilightContext } from '../chunk-SOPK72TP.js';
14
14
  import '../chunk-T72DAX7R.js';
15
15
  import '../chunk-DF6FBKDN.js';
16
16
  import '../chunk-DGUM43GV.js';
@@ -30,7 +30,7 @@ async function profileLoader(_ctx) {
30
30
 
31
31
  // src/routes/account/profile/index.tsx
32
32
  var LazyProfilePage = lazy(
33
- () => import('../ProfilePage-FBAQ4YFY.js').then((m) => ({ default: m.ProfilePage }))
33
+ () => import('../ProfilePage-5JUXB5SB.js').then((m) => ({ default: m.ProfilePage }))
34
34
  );
35
35
  var ProfilePage = LazyProfilePage;
36
36
  var Profile = {
@@ -71,7 +71,7 @@ async function wishlistLoader(ctx) {
71
71
 
72
72
  // src/routes/account/wishlist/index.tsx
73
73
  var LazyWishlistPage = lazy(
74
- () => import('../WishlistPage-D6WQCUIS.js').then((m) => ({ default: m.WishlistPage }))
74
+ () => import('../WishlistPage-N3K6MBMC.js').then((m) => ({ default: m.WishlistPage }))
75
75
  );
76
76
  var WishlistPage = LazyWishlistPage;
77
77
  var Wishlist = {
@@ -112,7 +112,7 @@ async function walletLoader(ctx) {
112
112
  }
113
113
 
114
114
  // src/routes/account/wallet/index.tsx
115
- var LazyWalletPage = lazy(() => import('../WalletPage-EFOMPLFB.js').then((m) => ({ default: m.WalletPage })));
115
+ var LazyWalletPage = lazy(() => import('../WalletPage-2JZ32SNZ.js').then((m) => ({ default: m.WalletPage })));
116
116
  var WalletPage = LazyWalletPage;
117
117
  var Wallet = {
118
118
  id: RouteId.CUSTOMER_WALLET,
@@ -147,7 +147,7 @@ async function notificationsLoader(_ctx) {
147
147
 
148
148
  // src/routes/account/notifications/index.tsx
149
149
  var LazyNotificationsPage = lazy(
150
- () => import('../NotificationsPage-KTZLNZHM.js').then((m) => ({ default: m.NotificationsPage }))
150
+ () => import('../NotificationsPage-TMGF4BQM.js').then((m) => ({ default: m.NotificationsPage }))
151
151
  );
152
152
  var NotificationsPage = LazyNotificationsPage;
153
153
  var Notifications = {
@@ -179,7 +179,7 @@ async function settingsLoader(_ctx) {
179
179
 
180
180
  // src/routes/account/settings/index.tsx
181
181
  var LazySettingsPage = lazy(
182
- () => import('../SettingsPage-RAEWPKMK.js').then((m) => ({ default: m.SettingsPage }))
182
+ () => import('../SettingsPage-NFSZ4CKO.js').then((m) => ({ default: m.SettingsPage }))
183
183
  );
184
184
  var SettingsPage = LazySettingsPage;
185
185
  var Settings = {
@@ -1,11 +1,11 @@
1
- import { blog } from '../chunk-BQ4CV7YX.js';
1
+ import { blog } from '../chunk-RJAV554G.js';
2
2
  import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
3
- import '../chunk-63GHZIAG.js';
3
+ import '../chunk-JDROOL5C.js';
4
4
  import { RouteId } from '../chunk-TFB3QXYH.js';
5
- import '../chunk-O6XXHXC4.js';
6
- import '../chunk-3FIWHGCZ.js';
5
+ import '../chunk-F4MMWEII.js';
6
+ import '../chunk-TX6ZP4FF.js';
7
7
  import '../chunk-XTMHHLNK.js';
8
- import { getTwilightContext } from '../chunk-PJWFEMBX.js';
8
+ import { getTwilightContext } from '../chunk-SOPK72TP.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
@@ -134,18 +134,18 @@ async function blogTagLoader({
134
134
  }
135
135
 
136
136
  // src/routes/blog/index.tsx
137
- var LazyBlogPage = lazy(() => import('../BlogPage-OAEP7OOU.js').then((m) => ({ default: m.BlogPage })));
137
+ var LazyBlogPage = lazy(() => import('../BlogPage-VSZPR4AD.js').then((m) => ({ default: m.BlogPage })));
138
138
  var LazyBlogSinglePage = lazy(
139
- () => import('../BlogSinglePage-NSCAOZMR.js').then((m) => ({ default: m.BlogSinglePage }))
139
+ () => import('../BlogSinglePage-3FWJ6UTQ.js').then((m) => ({ default: m.BlogSinglePage }))
140
140
  );
141
141
  var LazyBlogAuthorPage = lazy(
142
- () => import('../BlogAuthorPage-75HKHV53.js').then((m) => ({ default: m.BlogAuthorPage }))
142
+ () => import('../BlogAuthorPage-BT5BGQQJ.js').then((m) => ({ default: m.BlogAuthorPage }))
143
143
  );
144
144
  var LazyBlogCategoryPage = lazy(
145
- () => import('../BlogCategoryPage-R7QE3DNT.js').then((m) => ({ default: m.BlogCategoryPage }))
145
+ () => import('../BlogCategoryPage-IDHUIFVG.js').then((m) => ({ default: m.BlogCategoryPage }))
146
146
  );
147
147
  var LazyBlogTagPage = lazy(
148
- () => import('../BlogTagPage-QNAZWE5P.js').then((m) => ({ default: m.BlogTagPage }))
148
+ () => import('../BlogTagPage-TIPPV2WW.js').then((m) => ({ default: m.BlogTagPage }))
149
149
  );
150
150
  var BlogPage = LazyBlogPage;
151
151
  var BlogSinglePage = LazyBlogSinglePage;
@@ -1,11 +1,11 @@
1
- import { brand } from '../chunk-XEQ6ILIP.js';
1
+ import { brand } from '../chunk-675NJ2XP.js';
2
2
  import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
3
- import '../chunk-63GHZIAG.js';
3
+ import '../chunk-JDROOL5C.js';
4
4
  import { RouteId } from '../chunk-TFB3QXYH.js';
5
- import '../chunk-O6XXHXC4.js';
6
- import '../chunk-3FIWHGCZ.js';
5
+ import '../chunk-F4MMWEII.js';
6
+ import '../chunk-TX6ZP4FF.js';
7
7
  import '../chunk-XTMHHLNK.js';
8
- import { getTwilightContext } from '../chunk-PJWFEMBX.js';
8
+ import { getTwilightContext } from '../chunk-SOPK72TP.js';
9
9
  import '../chunk-T72DAX7R.js';
10
10
  import '../chunk-DF6FBKDN.js';
11
11
  import '../chunk-DGUM43GV.js';
@@ -34,7 +34,7 @@ async function brandsLoader() {
34
34
  }
35
35
 
36
36
  // src/routes/brands/index.tsx
37
- var LazyBrandsPage = lazy(() => import('../BrandsPage-5JHLX2XO.js').then((m) => ({ default: m.BrandsPage })));
37
+ var LazyBrandsPage = lazy(() => import('../BrandsPage-LEXRPFVK.js').then((m) => ({ default: m.BrandsPage })));
38
38
  var BrandsPage = LazyBrandsPage;
39
39
  async function brandsLoaderWithExtend(_ctx, extend) {
40
40
  const data = await brandsLoader();
@@ -1,31 +1,30 @@
1
- import { cart } from '../chunk-QBIW266S.js';
2
- import { loyalty } from '../chunk-62SHHET3.js';
1
+ import { cart } from '../chunk-2OX3JML4.js';
2
+ import { loyalty } from '../chunk-HVHFTVZT.js';
3
3
  import { CartSkeleton } from '../chunk-N7CCSGZF.js';
4
- import '../chunk-YGAU6PFQ.js';
5
- import '../chunk-P4DUWQU4.js';
4
+ import '../chunk-TJGYL7GD.js';
5
+ import '../chunk-K4YT7TOV.js';
6
6
  import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
7
- import '../chunk-OZV5P4VP.js';
8
- import '../chunk-BVB75J3R.js';
9
- import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-TUUBKHTD.js';
10
- import '../chunk-U43L4ZLH.js';
7
+ import '../chunk-7BWZYECG.js';
8
+ import '../chunk-3R7YKSO6.js';
9
+ import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-3H27IEME.js';
10
+ import '../chunk-WFSOVIYU.js';
11
11
  import '../chunk-342EPVXN.js';
12
- import '../chunk-NSSKTF6I.js';
13
- import '../chunk-F5IEB43R.js';
12
+ import '../chunk-36PDYP56.js';
13
+ import '../chunk-J2GGMK3X.js';
14
14
  import '../chunk-JKIRRMBU.js';
15
15
  import '../chunk-2JV6WZ6O.js';
16
- import '../chunk-6IATCGID.js';
17
- import '../chunk-3MHDV5JS.js';
16
+ import '../chunk-YNY5P2DG.js';
18
17
  import '../chunk-VVZNW5CB.js';
19
- import '../chunk-JD4J2ZB6.js';
20
- import '../chunk-63GHZIAG.js';
18
+ import '../chunk-KTOKX3GC.js';
19
+ import '../chunk-JDROOL5C.js';
21
20
  import { RouteId } from '../chunk-TFB3QXYH.js';
22
21
  import '../chunk-C5X6CVXC.js';
23
- import '../chunk-QKIQ3K24.js';
24
- import '../chunk-Z74NUTEI.js';
25
- import '../chunk-O6XXHXC4.js';
26
- import '../chunk-3FIWHGCZ.js';
22
+ import '../chunk-UOALND7V.js';
23
+ import '../chunk-YSFWVMBA.js';
24
+ import '../chunk-F4MMWEII.js';
25
+ import '../chunk-TX6ZP4FF.js';
27
26
  import '../chunk-XTMHHLNK.js';
28
- import { getTwilightContext } from '../chunk-PJWFEMBX.js';
27
+ import { getTwilightContext } from '../chunk-SOPK72TP.js';
29
28
  import '../chunk-TP3LCGE7.js';
30
29
  import '../chunk-Z653O7MX.js';
31
30
  import '../chunk-ZCH7W7DZ.js';
@@ -41,7 +40,7 @@ import '../chunk-YMVLYYLU.js';
41
40
  import '../chunk-RJPPO3ET.js';
42
41
  import { HookSlot } from '../chunk-Q7VWURUR.js';
43
42
  import '../chunk-GU2KUQVD.js';
44
- import { LazyBreadcrumb, LazyNoContent } from '../chunk-NQ5FQOE2.js';
43
+ import { LazyBreadcrumb, LazyNoContent } from '../chunk-JBNI5ZVG.js';
45
44
  import '../chunk-AXW67SY7.js';
46
45
  import '../chunk-BYMOPN2S.js';
47
46
  import '../chunk-SKLEJJ6M.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/routes/cart/CartPage.tsx","../../src/routes/cart/loader.ts","../../src/routes/cart/index.tsx"],"names":[],"mappings":"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","file":"cart.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { SallaConditionalOffer } from '@salla.sa/twilight-components-react/conditional-offer';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaProductOptions } from '@salla.sa/twilight-components-react/product-options';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { CartPageProps } from './types';\nimport { Breadcrumb, NoContent } from '../../components/common';\nimport { CartItem, CartSummary, SeoCartWidget } from '../../components/cart';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { CartSkeleton } from '../../skeleton';\nimport { loyalty } from '../../api/loyalty';\nimport { cart } from '../../api/cart';\n\nfunction CartPageContent({ page }: CartPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const { data: loyaltyPoints } = useQuery(loyalty.queries.points());\n\n const [cartId, setCartId] = useState<number | null>(null);\n\n useEffect(() => {\n window.salla?.cart.api.getCurrentCartId().then(setCartId);\n }, []);\n\n const { data: cartData } = useQuery({\n ...cart.queries.detail(cartId!),\n enabled: !!cartId,\n });\n\n const isLoading = cartId === null || !cartData;\n\n if (isLoading) {\n return <CartSkeleton />;\n }\n\n if (cartData.items.length === 0) {\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n <NoContent\n icon=\"sicon-shopping-bag\"\n message={t('pages.cart.empty_cart', 'Your cart is empty')}\n actionLabel={t('common.elements.back_home', 'Back to Home')}\n actionUrl=\"/\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"container\">\n {/* Analytics — no visible UI, fires GTM checkout events */}\n <SeoCartWidget cart={cartData} />\n\n <Breadcrumb page={page} />\n <h1 className=\"sr-only\">{t('common.titles.cart', 'Cart')}</h1>\n <SallaConditionalOffer />\n\n <HookSlot name=\"cart:start\" />\n\n <div className=\"pt-5 flex flex-col items-start lg:flex-row pb-6 lg:pb-20\">\n <div className=\"main-content w-full lg:w-[calc(100%-384px)]\">\n <HookSlot name=\"cart:items.start\" context={{ cartItems: cartData.items }} />\n\n {cartData.items.map((item, index) => (\n <CartItem key={item.id} item={item} isFirst={index === 0} />\n ))}\n\n {cartData.options?.length > 0 && (\n <div className=\"cart-options\">\n {cartData.options.map((option) => (\n <form\n key={option.id}\n className=\"first:pt-5 relative\"\n onChange={(e) => window.salla?.form.onChange('cart.updateItem', e)}\n id={`item-${option.id}`}\n >\n <input type=\"hidden\" name=\"id\" value={option.id} />\n <input type=\"hidden\" name=\"quantity\" value={option.quantity} />\n {/* Twig: {% include 'pages.partials.product.options' with {product:product_option} %} */}\n {option.options && option.options.length > 0 && (\n <SallaProductOptions\n options={JSON.stringify(option.options)}\n productId={option.id}\n />\n )}\n </form>\n ))}\n </div>\n )}\n\n <SallaOffer />\n <HookSlot name=\"cart:items.end\" />\n </div>\n\n <CartSummary\n cart={cartData}\n applyCouponEnabled={store.settings?.cart?.apply_coupon_enabled}\n taxAmount={cartData.tax_amount}\n key={cartData.id}\n loyalty={cartData.loyalty}\n gift={cartData.gift}\n loyaltyPoints={loyaltyPoints ?? undefined}\n />\n </div>\n\n <HookSlot name=\"cart:end\" />\n </div>\n );\n}\n\nexport function CartPage(props: CartPageProps) {\n return <CartPageContent {...props} />;\n}\n","import type { CartPageProps } from './types';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\n/**\n * SSR-safe loader that returns only page metadata.\n * Cart data is fetched client-side via React Query since the cart ID\n * lives in localStorage (unavailable during SSR).\n */\nexport function cartLoader(): CartPageProps {\n const i18n = getTwilightContext().i18n;\n return {\n page: { slug: RouteId.CART, title: i18n.t('common.titles.cart') || 'Cart' },\n } as CartPageProps;\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport { CartPage } from './CartPage';\nimport { cartLoader } from './loader';\nimport type { CartPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport { CartPage } from './CartPage';\nexport { cartLoader } from './loader';\nexport type { CartPageProps } from './types';\n\nasync function loader(\n _ctx?: { locale?: string },\n extend?: (\n data: CartPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<CartPageProps> {\n const data = cartLoader();\n\n if (extend) {\n const extra = extend(data, { params: {} });\n return { ...data, ...(extra instanceof Promise ? {} : extra) } as CartPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: CartPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Cart = { id: RouteId.CART, loader, head, Component: CartPage } as const;\n"]}
1
+ {"version":3,"sources":["../../src/routes/cart/CartPage.tsx","../../src/routes/cart/loader.ts","../../src/routes/cart/index.tsx"],"names":[],"mappings":"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","file":"cart.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { SallaConditionalOffer } from '@salla.sa/twilight-components-react/conditional-offer';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaProductOptions } from '@salla.sa/twilight-components-react/product-options';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { CartPageProps } from './types';\nimport { Breadcrumb, NoContent } from '../../components/common';\nimport { CartItem, CartSummary, SeoCartWidget } from '../../components/cart';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { CartSkeleton } from '../../skeleton';\nimport { loyalty } from '../../api/loyalty';\nimport { cart } from '../../api/cart';\n\nfunction CartPageContent({ page }: CartPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const { data: loyaltyPoints } = useQuery(loyalty.queries.points());\n\n const [cartId, setCartId] = useState<number | null>(null);\n\n useEffect(() => {\n window.salla?.cart.api.getCurrentCartId().then(setCartId);\n }, []);\n\n const { data: cartData } = useQuery({\n ...cart.queries.detail(cartId!),\n enabled: !!cartId,\n });\n\n const isLoading = cartId === null || !cartData;\n\n if (isLoading) {\n return <CartSkeleton />;\n }\n\n if (cartData.items.length === 0) {\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n <NoContent\n icon=\"sicon-shopping-bag\"\n message={t('pages.cart.empty_cart', 'Your cart is empty')}\n actionLabel={t('common.elements.back_home', 'Back to Home')}\n actionUrl=\"/\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"container\">\n {/* Analytics — no visible UI, fires GTM checkout events */}\n <SeoCartWidget cart={cartData} />\n\n <Breadcrumb page={page} />\n <h1 className=\"sr-only\">{t('common.titles.cart', 'Cart')}</h1>\n <SallaConditionalOffer />\n\n <HookSlot name=\"cart:start\" />\n\n <div className=\"pt-5 flex flex-col items-start lg:flex-row pb-6 lg:pb-20\">\n <div className=\"main-content w-full lg:w-[calc(100%-384px)]\">\n <HookSlot name=\"cart:items.start\" context={{ cartItems: cartData.items }} />\n\n {cartData.items.map((item, index) => (\n <CartItem key={item.id} item={item} isFirst={index === 0} />\n ))}\n\n {cartData.options?.length > 0 && (\n <div className=\"cart-options\">\n {cartData.options.map((option) => (\n <form\n key={option.id}\n className=\"first:pt-5 relative\"\n onChange={(e) => window.salla?.form.onChange('cart.updateItem', e)}\n id={`item-${option.id}`}\n >\n <input type=\"hidden\" name=\"id\" value={option.id} />\n <input type=\"hidden\" name=\"quantity\" value={option.quantity} />\n {/* Twig: {% include 'pages.partials.product.options' with {product:product_option} %} */}\n {option.options && option.options.length > 0 && (\n <SallaProductOptions\n options={JSON.stringify(option.options)}\n productId={option.id}\n />\n )}\n </form>\n ))}\n </div>\n )}\n\n <SallaOffer />\n <HookSlot name=\"cart:items.end\" />\n </div>\n\n <CartSummary\n cart={cartData}\n applyCouponEnabled={store.settings?.cart?.apply_coupon_enabled}\n taxAmount={cartData.tax_amount}\n key={cartData.id}\n loyalty={cartData.loyalty}\n gift={cartData.gift}\n loyaltyPoints={loyaltyPoints ?? undefined}\n />\n </div>\n\n <HookSlot name=\"cart:end\" />\n </div>\n );\n}\n\nexport function CartPage(props: CartPageProps) {\n return <CartPageContent {...props} />;\n}\n","import type { CartPageProps } from './types';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\n/**\n * SSR-safe loader that returns only page metadata.\n * Cart data is fetched client-side via React Query since the cart ID\n * lives in localStorage (unavailable during SSR).\n */\nexport function cartLoader(): CartPageProps {\n const i18n = getTwilightContext().i18n;\n return {\n page: { slug: RouteId.CART, title: i18n.t('common.titles.cart') || 'Cart' },\n } as CartPageProps;\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport { CartPage } from './CartPage';\nimport { cartLoader } from './loader';\nimport type { CartPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport { CartPage } from './CartPage';\nexport { cartLoader } from './loader';\nexport type { CartPageProps } from './types';\n\nasync function loader(\n _ctx?: { locale?: string },\n extend?: (\n data: CartPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<CartPageProps> {\n const data = cartLoader();\n\n if (extend) {\n const extra = extend(data, { params: {} });\n return { ...data, ...(extra instanceof Promise ? {} : extra) } as CartPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: CartPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Cart = { id: RouteId.CART, loader, head, Component: CartPage } as const;\n"]}
@@ -1,27 +1,26 @@
1
- export { Home, HomeSkeleton, homeLoader } from '../chunk-YGAU6PFQ.js';
2
- import '../chunk-P4DUWQU4.js';
1
+ export { Home, HomeSkeleton, homeLoader } from '../chunk-TJGYL7GD.js';
2
+ import '../chunk-K4YT7TOV.js';
3
3
  import '../chunk-TZ3E5BN4.js';
4
- export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-OZV5P4VP.js';
5
- import '../chunk-BVB75J3R.js';
6
- import '../chunk-U43L4ZLH.js';
4
+ export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-7BWZYECG.js';
5
+ import '../chunk-3R7YKSO6.js';
6
+ import '../chunk-WFSOVIYU.js';
7
7
  import '../chunk-342EPVXN.js';
8
- import '../chunk-NSSKTF6I.js';
9
- import '../chunk-F5IEB43R.js';
8
+ import '../chunk-36PDYP56.js';
9
+ import '../chunk-J2GGMK3X.js';
10
10
  import '../chunk-JKIRRMBU.js';
11
11
  import '../chunk-2JV6WZ6O.js';
12
- import '../chunk-6IATCGID.js';
13
- import '../chunk-3MHDV5JS.js';
12
+ import '../chunk-YNY5P2DG.js';
14
13
  import '../chunk-VVZNW5CB.js';
15
- import '../chunk-JD4J2ZB6.js';
16
- import '../chunk-63GHZIAG.js';
14
+ import '../chunk-KTOKX3GC.js';
15
+ import '../chunk-JDROOL5C.js';
17
16
  import '../chunk-TFB3QXYH.js';
18
17
  import '../chunk-C5X6CVXC.js';
19
- import '../chunk-QKIQ3K24.js';
20
- import '../chunk-Z74NUTEI.js';
21
- import '../chunk-O6XXHXC4.js';
22
- import '../chunk-3FIWHGCZ.js';
18
+ import '../chunk-UOALND7V.js';
19
+ import '../chunk-YSFWVMBA.js';
20
+ import '../chunk-F4MMWEII.js';
21
+ import '../chunk-TX6ZP4FF.js';
23
22
  import '../chunk-XTMHHLNK.js';
24
- import '../chunk-PJWFEMBX.js';
23
+ import '../chunk-SOPK72TP.js';
25
24
  import '../chunk-TP3LCGE7.js';
26
25
  import '../chunk-Z653O7MX.js';
27
26
  import '../chunk-ZCH7W7DZ.js';
@@ -37,7 +36,7 @@ import '../chunk-YMVLYYLU.js';
37
36
  import '../chunk-RJPPO3ET.js';
38
37
  import '../chunk-Q7VWURUR.js';
39
38
  import '../chunk-GU2KUQVD.js';
40
- import '../chunk-NQ5FQOE2.js';
39
+ import '../chunk-JBNI5ZVG.js';
41
40
  import '../chunk-AXW67SY7.js';
42
41
  import '../chunk-BYMOPN2S.js';
43
42
  import '../chunk-SKLEJJ6M.js';
@@ -1,8 +1,8 @@
1
- export { slugBrandRedirectLoader } from '../chunk-UIDPX3GA.js';
2
- import '../chunk-63GHZIAG.js';
1
+ export { slugBrandRedirectLoader } from '../chunk-YJ6ZSGQY.js';
2
+ import '../chunk-JDROOL5C.js';
3
3
  import '../chunk-TFB3QXYH.js';
4
4
  import '../chunk-XTMHHLNK.js';
5
- import '../chunk-PJWFEMBX.js';
5
+ import '../chunk-SOPK72TP.js';
6
6
  import '../chunk-TYNZ5B2B.js';
7
7
  export { FALLBACK_LOCALE, SUPPORTED_LOCALES, getLanguageInfo, isLocale } from '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';