@salla.sa/twilight-theme-engine 1.0.74 → 1.0.76

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 (278) hide show
  1. package/dist/{AddToCartForm-H2PRWRO7.js → AddToCartForm-ELTXWGK7.js} +3 -3
  2. package/dist/{AddToCartForm-H2PRWRO7.js.map → AddToCartForm-ELTXWGK7.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-QDGBWGGT.js → BlogAuthorPage-MBVZGSPQ.js} +19 -20
  4. package/dist/BlogAuthorPage-MBVZGSPQ.js.map +1 -0
  5. package/dist/{BlogCategoryPage-BK4OL6T4.js → BlogCategoryPage-V4HHHLCL.js} +19 -20
  6. package/dist/BlogCategoryPage-V4HHHLCL.js.map +1 -0
  7. package/dist/{BlogPage-5LLIKUOQ.js → BlogPage-LWRXQVF6.js} +17 -18
  8. package/dist/BlogPage-LWRXQVF6.js.map +1 -0
  9. package/dist/{BlogSinglePage-3BDXSFTY.js → BlogSinglePage-DPO6N4BK.js} +17 -18
  10. package/dist/BlogSinglePage-DPO6N4BK.js.map +1 -0
  11. package/dist/{BlogTagPage-S77JPNEZ.js → BlogTagPage-QCV2BNEV.js} +19 -20
  12. package/dist/BlogTagPage-QCV2BNEV.js.map +1 -0
  13. package/dist/{BrandsPage-2TJALMEG.js → BrandsPage-YECC2M27.js} +18 -19
  14. package/dist/BrandsPage-YECC2M27.js.map +1 -0
  15. package/dist/{Breadcrumb-SXC43X3D.js → Breadcrumb-ENQ4QMRD.js} +17 -18
  16. package/dist/Breadcrumb-ENQ4QMRD.js.map +1 -0
  17. package/dist/{CartItem-R6BYAM4O.js → CartItem-4CPUCDZE.js} +17 -18
  18. package/dist/CartItem-4CPUCDZE.js.map +1 -0
  19. package/dist/{CartSummary-YQ2RMHID.js → CartSummary-XSFNCT5V.js} +17 -18
  20. package/dist/CartSummary-XSFNCT5V.js.map +1 -0
  21. package/dist/{Copyright-5VLQICDY.js → Copyright-OJ2EKXRI.js} +3 -3
  22. package/dist/{Copyright-5VLQICDY.js.map → Copyright-OJ2EKXRI.js.map} +1 -1
  23. package/dist/{CustomerLayout-DUT7BEKW.js → CustomerLayout-UPXQEA26.js} +17 -18
  24. package/dist/CustomerLayout-UPXQEA26.js.map +1 -0
  25. package/dist/{Footer-J2KXYFB3.js → Footer-4CAAFHB2.js} +17 -18
  26. package/dist/{Footer-J2KXYFB3.js.map → Footer-4CAAFHB2.js.map} +1 -1
  27. package/dist/{Header-GZQINLEQ.js → Header-HDYYP4C6.js} +7 -6
  28. package/dist/{Header-GZQINLEQ.js.map → Header-HDYYP4C6.js.map} +1 -1
  29. package/dist/{LoyaltyPage-IXLUF6MF.js → LoyaltyPage-AOHHLCLU.js} +17 -18
  30. package/dist/LoyaltyPage-AOHHLCLU.js.map +1 -0
  31. package/dist/{LoyaltyPointsPage-RDNXI5VY.js → LoyaltyPointsPage-XWRBDU27.js} +3 -3
  32. package/dist/{LoyaltyPointsPage-RDNXI5VY.js.map → LoyaltyPointsPage-XWRBDU27.js.map} +1 -1
  33. package/dist/{MainMenu-KNJDJFJX.js → MainMenu-CTRSU7ZV.js} +6 -7
  34. package/dist/MainMenu-CTRSU7ZV.js.map +1 -0
  35. package/dist/{MasterLayout-MFL2NYPF.js → MasterLayout-PRM5ELY3.js} +17 -18
  36. package/dist/{MasterLayout-MFL2NYPF.js.map → MasterLayout-PRM5ELY3.js.map} +1 -1
  37. package/dist/{MobileMenu-RXLYUAWL.js → MobileMenu-3YHFM2UF.js} +18 -19
  38. package/dist/MobileMenu-3YHFM2UF.js.map +1 -0
  39. package/dist/{NotificationsPage-QSF7S2PD.js → NotificationsPage-F344UHAJ.js} +17 -18
  40. package/dist/NotificationsPage-F344UHAJ.js.map +1 -0
  41. package/dist/{OrderSinglePage-CWBHU2C6.js → OrderSinglePage-YX7NRH6P.js} +18 -19
  42. package/dist/OrderSinglePage-YX7NRH6P.js.map +1 -0
  43. package/dist/{OrdersPage-L76IEAXR.js → OrdersPage-TDZ3OX3J.js} +17 -18
  44. package/dist/OrdersPage-TDZ3OX3J.js.map +1 -0
  45. package/dist/{PageSingle-BUAZBPIQ.js → PageSingle-U5XNYQ6W.js} +5 -6
  46. package/dist/PageSingle-U5XNYQ6W.js.map +1 -0
  47. package/dist/{ProductDetails-MPNSWRTQ.js → ProductDetails-KLJDRLJ6.js} +6 -7
  48. package/dist/ProductDetails-KLJDRLJ6.js.map +1 -0
  49. package/dist/{ProfilePage-I72265CD.js → ProfilePage-Z6YJQ6C2.js} +17 -18
  50. package/dist/ProfilePage-Z6YJQ6C2.js.map +1 -0
  51. package/dist/{ReviewsPage-M5GNHNZG.js → ReviewsPage-A2PZTDEA.js} +3 -3
  52. package/dist/{ReviewsPage-M5GNHNZG.js.map → ReviewsPage-A2PZTDEA.js.map} +1 -1
  53. package/dist/{SeoCartWidget-KV3T3BO7.js → SeoCartWidget-MDNO2GBO.js} +17 -18
  54. package/dist/SeoCartWidget-MDNO2GBO.js.map +1 -0
  55. package/dist/{SettingsPage-3F5HZNXX.js → SettingsPage-JKC3CLCB.js} +17 -18
  56. package/dist/SettingsPage-JKC3CLCB.js.map +1 -0
  57. package/dist/{StoreClosedNotification-65QIOIAM.js → StoreClosedNotification-E3E4C5G7.js} +18 -19
  58. package/dist/{StoreClosedNotification-65QIOIAM.js.map → StoreClosedNotification-E3E4C5G7.js.map} +1 -1
  59. package/dist/{TestimonialsPage-5U7PH4TT.js → TestimonialsPage-TIFOLC6V.js} +5 -6
  60. package/dist/TestimonialsPage-TIFOLC6V.js.map +1 -0
  61. package/dist/{ThankYouPage-HFUTJCRT.js → ThankYouPage-XYKVHOJ4.js} +17 -18
  62. package/dist/ThankYouPage-XYKVHOJ4.js.map +1 -0
  63. package/dist/{WalletPage-KURO6WSP.js → WalletPage-KTDDXEEZ.js} +18 -19
  64. package/dist/WalletPage-KTDDXEEZ.js.map +1 -0
  65. package/dist/{WishlistPage-RLUK4JRD.js → WishlistPage-4JEBFBW4.js} +19 -20
  66. package/dist/WishlistPage-4JEBFBW4.js.map +1 -0
  67. package/dist/api/apps.js +3 -4
  68. package/dist/api/blog.js +4 -5
  69. package/dist/api/brands.js +4 -5
  70. package/dist/api/cart.js +4 -5
  71. package/dist/api/category.js +4 -5
  72. package/dist/api/client.js +2 -3
  73. package/dist/api/home.js +3 -4
  74. package/dist/api/loyalty.js +4 -5
  75. package/dist/api/menu.js +3 -4
  76. package/dist/api/notification.js +3 -4
  77. package/dist/api/order.js +4 -5
  78. package/dist/api/page.js +4 -5
  79. package/dist/api/product.js +4 -5
  80. package/dist/api/profile.js +2 -3
  81. package/dist/api/profile.js.map +1 -1
  82. package/dist/api/store.js +3 -4
  83. package/dist/api/translations.js +3 -4
  84. package/dist/api/user.js +3 -4
  85. package/dist/api/wallet.js +3 -4
  86. package/dist/api/wishlist.js +5 -6
  87. package/dist/{chunk-E5O5ICIY.js → chunk-2APQP7KK.js} +4 -4
  88. package/dist/{chunk-E5O5ICIY.js.map → chunk-2APQP7KK.js.map} +1 -1
  89. package/dist/{chunk-PNM4NP4U.js → chunk-3GZ5OOAK.js} +3 -3
  90. package/dist/{chunk-PNM4NP4U.js.map → chunk-3GZ5OOAK.js.map} +1 -1
  91. package/dist/{chunk-2OYXPNCE.js → chunk-3UMHUKMJ.js} +3 -3
  92. package/dist/{chunk-2OYXPNCE.js.map → chunk-3UMHUKMJ.js.map} +1 -1
  93. package/dist/{chunk-Y5OGXJLH.js → chunk-4A5IAMNL.js} +196 -4
  94. package/dist/chunk-4A5IAMNL.js.map +1 -0
  95. package/dist/{chunk-D2T6246Q.js → chunk-7FDT2IFI.js} +3 -3
  96. package/dist/{chunk-D2T6246Q.js.map → chunk-7FDT2IFI.js.map} +1 -1
  97. package/dist/{chunk-VYCNB6VN.js → chunk-7HWX2PEO.js} +3 -3
  98. package/dist/{chunk-VYCNB6VN.js.map → chunk-7HWX2PEO.js.map} +1 -1
  99. package/dist/{chunk-IK57LAIA.js → chunk-BP6LUZXJ.js} +10 -5
  100. package/dist/chunk-BP6LUZXJ.js.map +1 -0
  101. package/dist/{chunk-FVDUTMH6.js → chunk-DUA2GB5Z.js} +4 -4
  102. package/dist/{chunk-FVDUTMH6.js.map → chunk-DUA2GB5Z.js.map} +1 -1
  103. package/dist/{chunk-R72Q5Z6M.js → chunk-EUWKQJNI.js} +4 -4
  104. package/dist/{chunk-R72Q5Z6M.js.map → chunk-EUWKQJNI.js.map} +1 -1
  105. package/dist/{chunk-3TJKB3WR.js → chunk-F2YLRVPH.js} +3 -3
  106. package/dist/{chunk-3TJKB3WR.js.map → chunk-F2YLRVPH.js.map} +1 -1
  107. package/dist/{chunk-JEG5WPNT.js → chunk-F4FCETQT.js} +3 -3
  108. package/dist/{chunk-JEG5WPNT.js.map → chunk-F4FCETQT.js.map} +1 -1
  109. package/dist/{chunk-3QT7JMAD.js → chunk-FSCIJ55A.js} +4 -4
  110. package/dist/{chunk-3QT7JMAD.js.map → chunk-FSCIJ55A.js.map} +1 -1
  111. package/dist/{chunk-FIFNYC7B.js → chunk-H2CED43W.js} +7 -7
  112. package/dist/{chunk-FIFNYC7B.js.map → chunk-H2CED43W.js.map} +1 -1
  113. package/dist/{chunk-P2YAPWMS.js → chunk-HZYFU3PZ.js} +4 -4
  114. package/dist/{chunk-P2YAPWMS.js.map → chunk-HZYFU3PZ.js.map} +1 -1
  115. package/dist/{chunk-3EBAXWBJ.js → chunk-J2VJGXIX.js} +5 -5
  116. package/dist/{chunk-3EBAXWBJ.js.map → chunk-J2VJGXIX.js.map} +1 -1
  117. package/dist/{chunk-WHGOO4A2.js → chunk-L4EX7DLC.js} +6 -6
  118. package/dist/{chunk-WHGOO4A2.js.map → chunk-L4EX7DLC.js.map} +1 -1
  119. package/dist/{chunk-RYSJOCHI.js → chunk-LCDSHSP7.js} +3 -3
  120. package/dist/{chunk-RYSJOCHI.js.map → chunk-LCDSHSP7.js.map} +1 -1
  121. package/dist/{chunk-JAPH535M.js → chunk-LL3X2N7L.js} +4 -4
  122. package/dist/{chunk-JAPH535M.js.map → chunk-LL3X2N7L.js.map} +1 -1
  123. package/dist/{chunk-E7EBWXCA.js → chunk-LLQE4JAW.js} +3 -3
  124. package/dist/{chunk-E7EBWXCA.js.map → chunk-LLQE4JAW.js.map} +1 -1
  125. package/dist/{chunk-IDY6OEXA.js → chunk-MCZJEDPZ.js} +7 -7
  126. package/dist/{chunk-IDY6OEXA.js.map → chunk-MCZJEDPZ.js.map} +1 -1
  127. package/dist/{chunk-2ZQKAGSZ.js → chunk-MHVR2OUR.js} +4 -4
  128. package/dist/{chunk-2ZQKAGSZ.js.map → chunk-MHVR2OUR.js.map} +1 -1
  129. package/dist/{chunk-4YVGMXG7.js → chunk-MOANE2YM.js} +3 -3
  130. package/dist/{chunk-4YVGMXG7.js.map → chunk-MOANE2YM.js.map} +1 -1
  131. package/dist/{chunk-TWVTIAMO.js → chunk-MYJL5MGW.js} +3 -3
  132. package/dist/{chunk-TWVTIAMO.js.map → chunk-MYJL5MGW.js.map} +1 -1
  133. package/dist/{chunk-MEMB7JYJ.js → chunk-NDJWR7EF.js} +4 -4
  134. package/dist/{chunk-MEMB7JYJ.js.map → chunk-NDJWR7EF.js.map} +1 -1
  135. package/dist/{chunk-WS3WQ3OL.js → chunk-NJWKVTQD.js} +4 -4
  136. package/dist/{chunk-WS3WQ3OL.js.map → chunk-NJWKVTQD.js.map} +1 -1
  137. package/dist/{chunk-XN7TVPAU.js → chunk-O6L3BZBB.js} +4 -4
  138. package/dist/{chunk-XN7TVPAU.js.map → chunk-O6L3BZBB.js.map} +1 -1
  139. package/dist/{chunk-6KVB2WHE.js → chunk-ODF4CAF4.js} +4 -4
  140. package/dist/{chunk-6KVB2WHE.js.map → chunk-ODF4CAF4.js.map} +1 -1
  141. package/dist/{chunk-JHCLU3PS.js → chunk-OXQL57QN.js} +8 -8
  142. package/dist/{chunk-JHCLU3PS.js.map → chunk-OXQL57QN.js.map} +1 -1
  143. package/dist/{chunk-JNZLH2OR.js → chunk-PVNF6JXS.js} +7 -7
  144. package/dist/{chunk-JNZLH2OR.js.map → chunk-PVNF6JXS.js.map} +1 -1
  145. package/dist/{chunk-3EHECJ7M.js → chunk-RA2CIT7N.js} +4 -4
  146. package/dist/{chunk-3EHECJ7M.js.map → chunk-RA2CIT7N.js.map} +1 -1
  147. package/dist/chunk-RL4WOX4L.js +14 -0
  148. package/dist/{chunk-WG47KLHH.js.map → chunk-RL4WOX4L.js.map} +1 -1
  149. package/dist/{chunk-YUGZDWD6.js → chunk-RYFIWQ6L.js} +4 -4
  150. package/dist/{chunk-YUGZDWD6.js.map → chunk-RYFIWQ6L.js.map} +1 -1
  151. package/dist/{chunk-BLWLKRKH.js → chunk-S3R7B6QH.js} +17 -18
  152. package/dist/chunk-S3R7B6QH.js.map +1 -0
  153. package/dist/{chunk-5NUDOT33.js → chunk-SLXGP6KF.js} +3 -3
  154. package/dist/{chunk-5NUDOT33.js.map → chunk-SLXGP6KF.js.map} +1 -1
  155. package/dist/{chunk-6I4LWF5Y.js → chunk-UKVYP7ME.js} +3 -3
  156. package/dist/{chunk-6I4LWF5Y.js.map → chunk-UKVYP7ME.js.map} +1 -1
  157. package/dist/{chunk-OQA2MKZA.js → chunk-V76JM4UW.js} +60 -13
  158. package/dist/chunk-V76JM4UW.js.map +1 -0
  159. package/dist/{chunk-M6BXZTRK.js → chunk-VPNKJFT7.js} +3 -3
  160. package/dist/{chunk-M6BXZTRK.js.map → chunk-VPNKJFT7.js.map} +1 -1
  161. package/dist/{chunk-OKNJFS44.js → chunk-VPPSRRGK.js} +18 -4
  162. package/dist/chunk-VPPSRRGK.js.map +1 -0
  163. package/dist/{chunk-KO3HG5GQ.js → chunk-W3LADQOR.js} +3 -3
  164. package/dist/{chunk-KO3HG5GQ.js.map → chunk-W3LADQOR.js.map} +1 -1
  165. package/dist/{chunk-4VWWIA4M.js → chunk-WV3B2FOG.js} +4 -4
  166. package/dist/{chunk-4VWWIA4M.js.map → chunk-WV3B2FOG.js.map} +1 -1
  167. package/dist/{chunk-GFSTJ2PF.js → chunk-XON5AXAP.js} +3 -3
  168. package/dist/{chunk-GFSTJ2PF.js.map → chunk-XON5AXAP.js.map} +1 -1
  169. package/dist/{chunk-CJDAZQV6.js → chunk-YJAMQRFS.js} +5 -6
  170. package/dist/chunk-YJAMQRFS.js.map +1 -0
  171. package/dist/components/cart/index.js +1 -1
  172. package/dist/components/common/index.js +1 -1
  173. package/dist/components/drawer/index.js +15 -16
  174. package/dist/components/home/index.js +19 -20
  175. package/dist/components/layout/index.js +1 -1
  176. package/dist/components/product/index.js +16 -17
  177. package/dist/components/store/index.js +17 -18
  178. package/dist/components/store/index.js.map +1 -1
  179. package/dist/components/toast/index.js +3 -4
  180. package/dist/components/toast/index.js.map +1 -1
  181. package/dist/document-class-SUOV33NA.js +24 -0
  182. package/dist/{document-class-5FTU6EZE.js.map → document-class-SUOV33NA.js.map} +1 -1
  183. package/dist/hooks/index.js +15 -16
  184. package/dist/hooks/useComments.js +2 -3
  185. package/dist/hooks/useGtm.js +15 -16
  186. package/dist/hooks/useMoney.js +15 -16
  187. package/dist/hooks/useProduct.js +2 -3
  188. package/dist/hooks/useStore.js +15 -16
  189. package/dist/hooks/useUser.js +4 -5
  190. package/dist/hooks/useWishlist.js +2 -3
  191. package/dist/index.js +15 -16
  192. package/dist/index.js.map +1 -1
  193. package/dist/native-app/index.js +2 -3
  194. package/dist/{navigation-CDITJYUW.js → navigation-KMDVLHXU.js} +7 -7
  195. package/dist/{navigation-CDITJYUW.js.map → navigation-KMDVLHXU.js.map} +1 -1
  196. package/dist/{navigation-WCGV6RUK.js → navigation-WEV6XJJT.js} +5 -4
  197. package/dist/navigation-WEV6XJJT.js.map +1 -0
  198. package/dist/{not-found-EL2XQE5D.js → not-found-M77B5UIT.js} +18 -19
  199. package/dist/not-found-M77B5UIT.js.map +1 -0
  200. package/dist/providers/NavigationProvider.d.ts +9 -0
  201. package/dist/providers/NavigationProvider.d.ts.map +1 -1
  202. package/dist/providers/index.js +15 -16
  203. package/dist/routes/account/orders.js +5 -6
  204. package/dist/routes/account.js +14 -15
  205. package/dist/routes/account.js.map +1 -1
  206. package/dist/routes/blog.js +9 -10
  207. package/dist/routes/blog.js.map +1 -1
  208. package/dist/routes/brands.js +5 -6
  209. package/dist/routes/brands.js.map +1 -1
  210. package/dist/routes/cart.js +23 -24
  211. package/dist/routes/cart.js.map +1 -1
  212. package/dist/routes/home.js +20 -21
  213. package/dist/routes/index.js +4 -3
  214. package/dist/routes/loyalty.js +6 -7
  215. package/dist/routes/loyalty.js.map +1 -1
  216. package/dist/routes/page.js +5 -6
  217. package/dist/routes/page.js.map +1 -1
  218. package/dist/routes/product-listing.js +21 -22
  219. package/dist/routes/product-listing.js.map +1 -1
  220. package/dist/routes/product.js +19 -20
  221. package/dist/routes/product.js.map +1 -1
  222. package/dist/routes/root/beforeLoad.d.ts +28 -0
  223. package/dist/routes/root/beforeLoad.d.ts.map +1 -1
  224. package/dist/routes/seo-redirects.js +4 -3
  225. package/dist/routes/testimonials.js +2 -2
  226. package/dist/routes/thank-you.js +5 -6
  227. package/dist/routes/thank-you.js.map +1 -1
  228. package/dist/skeleton.js +20 -21
  229. package/dist/tanstack/middleware/twilight.d.ts.map +1 -1
  230. package/dist/tanstack.js +15 -16
  231. package/dist/tanstack.js.map +1 -1
  232. package/dist/utils/cookies.d.ts +26 -0
  233. package/dist/utils/cookies.d.ts.map +1 -1
  234. package/dist/utils/index.js +4 -5
  235. package/dist/utils/index.js.map +1 -1
  236. package/dist/utils/theme-version.d.ts +0 -29
  237. package/dist/utils/theme-version.d.ts.map +1 -1
  238. package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
  239. package/dist/vite/index.js +3 -1
  240. package/dist/vite/index.js.map +1 -1
  241. package/package.json +1 -1
  242. package/dist/BlogAuthorPage-QDGBWGGT.js.map +0 -1
  243. package/dist/BlogCategoryPage-BK4OL6T4.js.map +0 -1
  244. package/dist/BlogPage-5LLIKUOQ.js.map +0 -1
  245. package/dist/BlogSinglePage-3BDXSFTY.js.map +0 -1
  246. package/dist/BlogTagPage-S77JPNEZ.js.map +0 -1
  247. package/dist/BrandsPage-2TJALMEG.js.map +0 -1
  248. package/dist/Breadcrumb-SXC43X3D.js.map +0 -1
  249. package/dist/CartItem-R6BYAM4O.js.map +0 -1
  250. package/dist/CartSummary-YQ2RMHID.js.map +0 -1
  251. package/dist/CustomerLayout-DUT7BEKW.js.map +0 -1
  252. package/dist/LoyaltyPage-IXLUF6MF.js.map +0 -1
  253. package/dist/MainMenu-KNJDJFJX.js.map +0 -1
  254. package/dist/MobileMenu-RXLYUAWL.js.map +0 -1
  255. package/dist/NotificationsPage-QSF7S2PD.js.map +0 -1
  256. package/dist/OrderSinglePage-CWBHU2C6.js.map +0 -1
  257. package/dist/OrdersPage-L76IEAXR.js.map +0 -1
  258. package/dist/PageSingle-BUAZBPIQ.js.map +0 -1
  259. package/dist/ProductDetails-MPNSWRTQ.js.map +0 -1
  260. package/dist/ProfilePage-I72265CD.js.map +0 -1
  261. package/dist/SeoCartWidget-KV3T3BO7.js.map +0 -1
  262. package/dist/SettingsPage-3F5HZNXX.js.map +0 -1
  263. package/dist/TestimonialsPage-5U7PH4TT.js.map +0 -1
  264. package/dist/ThankYouPage-HFUTJCRT.js.map +0 -1
  265. package/dist/WalletPage-KURO6WSP.js.map +0 -1
  266. package/dist/WishlistPage-RLUK4JRD.js.map +0 -1
  267. package/dist/chunk-BLWLKRKH.js.map +0 -1
  268. package/dist/chunk-CJDAZQV6.js.map +0 -1
  269. package/dist/chunk-IK57LAIA.js.map +0 -1
  270. package/dist/chunk-OKNJFS44.js.map +0 -1
  271. package/dist/chunk-OQA2MKZA.js.map +0 -1
  272. package/dist/chunk-P4GOLSA2.js +0 -166
  273. package/dist/chunk-P4GOLSA2.js.map +0 -1
  274. package/dist/chunk-WG47KLHH.js +0 -14
  275. package/dist/chunk-Y5OGXJLH.js.map +0 -1
  276. package/dist/document-class-5FTU6EZE.js +0 -25
  277. package/dist/navigation-WCGV6RUK.js.map +0 -1
  278. package/dist/not-found-EL2XQE5D.js.map +0 -1
package/dist/skeleton.js CHANGED
@@ -1,40 +1,40 @@
1
1
  export { BlogSkeleton, BreadcrumbSkeleton, CartSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from './chunk-N7CCSGZF.js';
2
- export { HomeSkeleton } from './chunk-3EHECJ7M.js';
2
+ export { HomeSkeleton } from './chunk-RA2CIT7N.js';
3
3
  import './chunk-TZ3E5BN4.js';
4
- import './chunk-JNZLH2OR.js';
5
- import './chunk-KO3HG5GQ.js';
6
- import './chunk-3QT7JMAD.js';
7
- import './chunk-JHCLU3PS.js';
4
+ import './chunk-PVNF6JXS.js';
5
+ import './chunk-W3LADQOR.js';
6
+ import './chunk-FSCIJ55A.js';
7
+ import './chunk-OXQL57QN.js';
8
8
  import './chunk-342EPVXN.js';
9
- import './chunk-BLWLKRKH.js';
10
- import './chunk-WHGOO4A2.js';
9
+ import './chunk-S3R7B6QH.js';
10
+ import './chunk-L4EX7DLC.js';
11
11
  import './chunk-JKIRRMBU.js';
12
12
  import './chunk-2JV6WZ6O.js';
13
- import './chunk-3TJKB3WR.js';
13
+ import './chunk-F2YLRVPH.js';
14
14
  import './chunk-VVZNW5CB.js';
15
- import './chunk-RYSJOCHI.js';
16
- import './chunk-OKNJFS44.js';
15
+ import './chunk-LCDSHSP7.js';
16
+ import './chunk-VPPSRRGK.js';
17
17
  import './chunk-OUW6WESU.js';
18
- import './chunk-4YVGMXG7.js';
18
+ import './chunk-MOANE2YM.js';
19
19
  import './chunk-HI5V5X3S.js';
20
- import './chunk-2OYXPNCE.js';
21
- import './chunk-GFSTJ2PF.js';
22
- import './chunk-IK57LAIA.js';
20
+ import './chunk-3UMHUKMJ.js';
21
+ import './chunk-XON5AXAP.js';
22
+ import './chunk-BP6LUZXJ.js';
23
23
  import './chunk-MVT5AF2A.js';
24
24
  import './chunk-Z653O7MX.js';
25
25
  import './chunk-ZCH7W7DZ.js';
26
- import './chunk-D2T6246Q.js';
26
+ import './chunk-7FDT2IFI.js';
27
27
  import './chunk-JWXJPJBO.js';
28
28
  import './chunk-CW625T2E.js';
29
29
  import './chunk-7V36I5GT.js';
30
30
  import './chunk-6WI7R2BD.js';
31
- import './chunk-E7EBWXCA.js';
31
+ import './chunk-LLQE4JAW.js';
32
32
  import './chunk-OAMIDZKW.js';
33
33
  import './chunk-TYNZ5B2B.js';
34
34
  import './chunk-V2ZDTY6H.js';
35
35
  import './chunk-5XDPAKF5.js';
36
36
  import './chunk-GCPEMNSU.js';
37
- import './chunk-6I4LWF5Y.js';
37
+ import './chunk-UKVYP7ME.js';
38
38
  import './chunk-AXW67SY7.js';
39
39
  import './chunk-SKLEJJ6M.js';
40
40
  import './chunk-BYMOPN2S.js';
@@ -42,10 +42,9 @@ import './chunk-6BZ5TKEV.js';
42
42
  import './chunk-FZKRSGLP.js';
43
43
  import './chunk-7V5HOZW4.js';
44
44
  import './chunk-YA6ABQB7.js';
45
- import './chunk-M6BXZTRK.js';
46
- import './chunk-JEG5WPNT.js';
47
- import './chunk-P4GOLSA2.js';
48
- import './chunk-Y5OGXJLH.js';
45
+ import './chunk-VPNKJFT7.js';
46
+ import './chunk-F4FCETQT.js';
47
+ import './chunk-4A5IAMNL.js';
49
48
  import './chunk-N2S25NXP.js';
50
49
  import './chunk-T72DAX7R.js';
51
50
  import './chunk-DF6FBKDN.js';
@@ -1 +1 @@
1
- {"version":3,"file":"twilight.d.ts","sourceRoot":"","sources":["../../../src/tanstack/middleware/twilight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAYlE,UAAU,yBAAyB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,GAAI,UAAU,yBAAyB,KAAG,oBAiCxE,CAAC"}
1
+ {"version":3,"file":"twilight.d.ts","sourceRoot":"","sources":["../../../src/tanstack/middleware/twilight.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAYlE,UAAU,yBAAyB;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,kBAAkB,GAAI,UAAU,yBAAyB,KAAG,oBAkCxE,CAAC"}
package/dist/tanstack.js CHANGED
@@ -1,27 +1,26 @@
1
- import { rootHead } from './chunk-OQA2MKZA.js';
2
- export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-OQA2MKZA.js';
3
- import { requestHostOf } from './chunk-CJDAZQV6.js';
4
- export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-CJDAZQV6.js';
1
+ import { rootHead } from './chunk-V76JM4UW.js';
2
+ export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-V76JM4UW.js';
3
+ import { requestHostOf } from './chunk-YJAMQRFS.js';
4
+ export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-YJAMQRFS.js';
5
5
  import './chunk-Z4Y55HWX.js';
6
6
  export { tanstackHeadAdapter as head, withHead } from './chunk-BE3JDKE2.js';
7
- import './chunk-E5O5ICIY.js';
7
+ import './chunk-2APQP7KK.js';
8
8
  import './chunk-GD26FI4J.js';
9
- import './chunk-P2YAPWMS.js';
10
- import './chunk-TWVTIAMO.js';
9
+ import './chunk-HZYFU3PZ.js';
10
+ import './chunk-MYJL5MGW.js';
11
11
  import './chunk-TZ3E5BN4.js';
12
- import './chunk-3QT7JMAD.js';
13
- import './chunk-3TJKB3WR.js';
14
- import './chunk-RYSJOCHI.js';
15
- import './chunk-OKNJFS44.js';
12
+ import './chunk-FSCIJ55A.js';
13
+ import './chunk-F2YLRVPH.js';
14
+ import './chunk-LCDSHSP7.js';
15
+ import './chunk-VPPSRRGK.js';
16
16
  import './chunk-OUW6WESU.js';
17
- import './chunk-IK57LAIA.js';
17
+ import './chunk-BP6LUZXJ.js';
18
18
  import './chunk-JWXJPJBO.js';
19
19
  export { mergeDocumentDescriptors as mergeAttrs } from './chunk-CW625T2E.js';
20
20
  import './chunk-TYNZ5B2B.js';
21
21
  import './chunk-BYMOPN2S.js';
22
- import './chunk-JEG5WPNT.js';
23
- import './chunk-P4GOLSA2.js';
24
- import { AUTH_TOKEN_COOKIE_NAME, extractTokenFromCookies, extractScopeFromCookies, resolveRequestStore, resolveRequestVersionId } from './chunk-Y5OGXJLH.js';
22
+ import './chunk-F4FCETQT.js';
23
+ import { AUTH_TOKEN_COOKIE_NAME, extractTokenFromCookies, resolveRequestScope, resolveRequestStore, resolveRequestVersionId } from './chunk-4A5IAMNL.js';
25
24
  import { runWithTwilightContext } from './chunk-N2S25NXP.js';
26
25
  export { getTwilightContext, runWithTwilightContext, updateTwilightContext } from './chunk-N2S25NXP.js';
27
26
  import './chunk-T72DAX7R.js';
@@ -35,7 +34,7 @@ var twilightMiddleware = (options) => {
35
34
  return createMiddleware().server(({ request, next }) => {
36
35
  const cookieHeader = request.headers.get("Cookie");
37
36
  const authToken = extractTokenFromCookies(cookieHeader, cookieName);
38
- const scope = extractScopeFromCookies(cookieHeader);
37
+ const scope = resolveRequestScope(request.url, cookieHeader);
39
38
  const requestHost = requestHostOf(request);
40
39
  const { storeId, storeBase } = resolveRequestStore(request.url, cookieHeader, requestHost);
41
40
  const versionId = resolveRequestVersionId(request.url, cookieHeader, requestHost);
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":"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","file":"tanstack.js","sourcesContent":["import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport {\n extractTokenFromCookies,\n extractScopeFromCookies,\n resolveRequestStore,\n resolveRequestVersionId,\n AUTH_TOKEN_COOKIE_NAME,\n} from '../../utils/cookies';\nimport { runWithTwilightContext } from '../../twilight/context';\nimport { requestHostOf } from '../../utils/request-host';\n\ninterface TwilightMiddlewareOptions {\n cookieName?: string;\n}\n\nexport const twilightMiddleware = (options?: TwilightMiddlewareOptions): AnyRequestMiddleware => {\n const cookieName = options?.cookieName ?? AUTH_TOKEN_COOKIE_NAME;\n\n return createMiddleware().server(({ request, next }) => {\n const cookieHeader = request.headers.get('Cookie');\n const authToken = extractTokenFromCookies(cookieHeader, cookieName);\n const scope = extractScopeFromCookies(cookieHeader);\n const requestHost = requestHostOf(request);\n // Read here and nowhere else: a deployed theme worker has no vars and no\n // bindings, so the request is the only thing that knows which store it is\n // serving. Everything downstream reads it off the context rather than\n // reaching for a build-time constant that is not there in production.\n //\n // The host goes in because it decides whether the request is allowed to name\n // a store at all. On a merchant's own domain it is not: the hostname is the\n // store, and `?storeId=` there would serve a stranger's shop from a domain\n // its owner controls.\n //\n // On those same hosts the store is also the first segment of the path, the\n // root of every URL there, and a store named that way takes the cookie's\n // place: the path is the address the visitor can see.\n const { storeId, storeBase } = resolveRequestStore(request.url, cookieHeader, requestHost);\n // The version is read here for the same reason and behind the same gate. A\n // theme editor previews a draft version of a merchant's settings before it is\n // published, and a partner running the theme locally renders against one —\n // both open the storefront in an iframe and say which version in the URL.\n const versionId = resolveRequestVersionId(request.url, cookieHeader, requestHost);\n\n return runWithTwilightContext(\n { authToken, scope, storeId, storeBase, versionId, requestHost },\n () => next({ context: { authToken } })\n );\n });\n};\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport { tsrStartManifest } from 'tanstack-start-manifest:v';\nimport { rootHead } from '../../routes/root/head';\n\n/** Known critical assets that should always be preloaded */\nconst CRITICAL_ASSETS = [\n { rel: 'preconnect', href: 'https://api.salla.dev' },\n { rel: 'preconnect', href: 'https://cdn.salla.sa' },\n { rel: 'preconnect', href: 'https://cdn.assets.salla.network', crossOrigin: 'anonymous' },\n { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossOrigin: 'anonymous' },\n] as const;\n\n/** Extract locale from URL path (e.g., /ar/products → 'ar') */\nfunction extractLocale(url: string): string | undefined {\n const match = url.match(/^\\/([a-z]{2})(\\/|$)/);\n return match?.[1];\n}\n\n/** Build Link header value from a link descriptor */\nfunction buildLinkHeader(link: Record<string, unknown>): string | null {\n const href = link.href as string | undefined;\n const rel = link.rel as string | undefined;\n if (!href || !rel) return null;\n\n // Skip print-media stylesheets (already non-blocking)\n if (rel === 'stylesheet') {\n const media = link.media as string | undefined;\n if (media === 'print') return null;\n return `<${href}>; rel=preload; as=style`;\n }\n\n if (rel === 'preload') {\n const asType = link.as as string | undefined;\n if (!asType) return null;\n const parts = [`<${href}>`, 'rel=preload', `as=${asType}`];\n if (asType === 'font' || link.crossOrigin) {\n parts.push('crossorigin');\n }\n return parts.join('; ');\n }\n\n if (rel === 'modulepreload') {\n return `<${href}>; rel=modulepreload`;\n }\n\n return null;\n}\n\nexport const earlyHintsMiddleware = (): AnyRequestMiddleware => {\n let cachedManifestPaths: string[] | null = null;\n\n return createMiddleware().server(async ({ request, next }) => {\n const response = await next();\n\n const accept = request.headers.get('Accept') ?? '';\n if (!accept.includes('text/html') && accept !== '*/*') return response;\n if (!(response instanceof Response)) return response;\n\n const linkHeaders: string[] = [];\n\n // 1. Add critical assets from rootHead (fonts, icons, SDK, etc.)\n try {\n const url = new URL(request.url);\n const locale = extractLocale(url.pathname);\n if (locale) {\n const headResult = rootHead({ params: { locale } });\n const links = (headResult.links as Record<string, unknown>[]) ?? [];\n for (const link of links) {\n const header = buildLinkHeader(link);\n if (header) linkHeaders.push(header);\n }\n }\n } catch (e) {\n // rootHead failed — log why, then fall back to known critical assets\n console.warn('[earlyHints] rootHead failed:', e instanceof Error ? e.message : e);\n for (const asset of CRITICAL_ASSETS) {\n const co = 'crossOrigin' in asset ? asset.crossOrigin : undefined;\n linkHeaders.push(`<${asset.href}>; rel=${asset.rel}${co ? '; crossorigin' : ''}`);\n }\n }\n\n // 2. Add CSS from TanStack Start manifest (bundled theme CSS)\n if (!cachedManifestPaths) {\n try {\n const manifest = tsrStartManifest();\n const rootAssets = manifest.routes['__root__']?.assets ?? [];\n const seen = new Set<string>();\n cachedManifestPaths = [];\n for (const asset of rootAssets) {\n if (asset.tag === 'link' && asset.attrs?.href?.endsWith('.css')) {\n if (!seen.has(asset.attrs.href)) {\n seen.add(asset.attrs.href);\n cachedManifestPaths.push(asset.attrs.href);\n }\n }\n }\n } catch (e) {\n // manifest not available — skip\n console.warn('[earlyHints] tsrStartManifest failed:', e instanceof Error ? e.message : e);\n }\n }\n\n if (cachedManifestPaths) {\n for (const href of cachedManifestPaths) {\n linkHeaders.push(`<${href}>; rel=preload; as=style`);\n }\n }\n\n // Apply Link headers if we have any\n if (linkHeaders.length === 0) {\n console.warn('[earlyHints] no critical assets found — no Link headers added');\n return response;\n }\n\n const headers = new Headers(response.headers);\n for (const linkHeader of linkHeaders) {\n headers.append('Link', linkHeader);\n }\n\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n });\n};\n"]}
1
+ {"version":3,"sources":["../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":"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","file":"tanstack.js","sourcesContent":["import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport {\n extractTokenFromCookies,\n resolveRequestScope,\n resolveRequestStore,\n resolveRequestVersionId,\n AUTH_TOKEN_COOKIE_NAME,\n} from '../../utils/cookies';\nimport { runWithTwilightContext } from '../../twilight/context';\nimport { requestHostOf } from '../../utils/request-host';\n\ninterface TwilightMiddlewareOptions {\n cookieName?: string;\n}\n\nexport const twilightMiddleware = (options?: TwilightMiddlewareOptions): AnyRequestMiddleware => {\n const cookieName = options?.cookieName ?? AUTH_TOKEN_COOKIE_NAME;\n\n return createMiddleware().server(({ request, next }) => {\n const cookieHeader = request.headers.get('Cookie');\n const authToken = extractTokenFromCookies(cookieHeader, cookieName);\n // `?scope=` before the cookie: it is how a market is switched (see resolveRequestScope).\n const scope = resolveRequestScope(request.url, cookieHeader);\n const requestHost = requestHostOf(request);\n // Read here and nowhere else: a deployed theme worker has no vars and no\n // bindings, so the request is the only thing that knows which store it is\n // serving. Everything downstream reads it off the context rather than\n // reaching for a build-time constant that is not there in production.\n //\n // The host goes in because it decides whether the request is allowed to name\n // a store at all. On a merchant's own domain it is not: the hostname is the\n // store, and `?storeId=` there would serve a stranger's shop from a domain\n // its owner controls.\n //\n // On those same hosts the store is also the first segment of the path, the\n // root of every URL there, and a store named that way takes the cookie's\n // place: the path is the address the visitor can see.\n const { storeId, storeBase } = resolveRequestStore(request.url, cookieHeader, requestHost);\n // The version is read here for the same reason and behind the same gate. A\n // theme editor previews a draft version of a merchant's settings before it is\n // published, and a partner running the theme locally renders against one —\n // both open the storefront in an iframe and say which version in the URL.\n const versionId = resolveRequestVersionId(request.url, cookieHeader, requestHost);\n\n return runWithTwilightContext(\n { authToken, scope, storeId, storeBase, versionId, requestHost },\n () => next({ context: { authToken } })\n );\n });\n};\n","import type { AnyRequestMiddleware } from '@tanstack/react-start';\nimport { createMiddleware } from '@tanstack/react-start';\nimport { tsrStartManifest } from 'tanstack-start-manifest:v';\nimport { rootHead } from '../../routes/root/head';\n\n/** Known critical assets that should always be preloaded */\nconst CRITICAL_ASSETS = [\n { rel: 'preconnect', href: 'https://api.salla.dev' },\n { rel: 'preconnect', href: 'https://cdn.salla.sa' },\n { rel: 'preconnect', href: 'https://cdn.assets.salla.network', crossOrigin: 'anonymous' },\n { rel: 'preconnect', href: 'https://fonts.gstatic.com', crossOrigin: 'anonymous' },\n] as const;\n\n/** Extract locale from URL path (e.g., /ar/products → 'ar') */\nfunction extractLocale(url: string): string | undefined {\n const match = url.match(/^\\/([a-z]{2})(\\/|$)/);\n return match?.[1];\n}\n\n/** Build Link header value from a link descriptor */\nfunction buildLinkHeader(link: Record<string, unknown>): string | null {\n const href = link.href as string | undefined;\n const rel = link.rel as string | undefined;\n if (!href || !rel) return null;\n\n // Skip print-media stylesheets (already non-blocking)\n if (rel === 'stylesheet') {\n const media = link.media as string | undefined;\n if (media === 'print') return null;\n return `<${href}>; rel=preload; as=style`;\n }\n\n if (rel === 'preload') {\n const asType = link.as as string | undefined;\n if (!asType) return null;\n const parts = [`<${href}>`, 'rel=preload', `as=${asType}`];\n if (asType === 'font' || link.crossOrigin) {\n parts.push('crossorigin');\n }\n return parts.join('; ');\n }\n\n if (rel === 'modulepreload') {\n return `<${href}>; rel=modulepreload`;\n }\n\n return null;\n}\n\nexport const earlyHintsMiddleware = (): AnyRequestMiddleware => {\n let cachedManifestPaths: string[] | null = null;\n\n return createMiddleware().server(async ({ request, next }) => {\n const response = await next();\n\n const accept = request.headers.get('Accept') ?? '';\n if (!accept.includes('text/html') && accept !== '*/*') return response;\n if (!(response instanceof Response)) return response;\n\n const linkHeaders: string[] = [];\n\n // 1. Add critical assets from rootHead (fonts, icons, SDK, etc.)\n try {\n const url = new URL(request.url);\n const locale = extractLocale(url.pathname);\n if (locale) {\n const headResult = rootHead({ params: { locale } });\n const links = (headResult.links as Record<string, unknown>[]) ?? [];\n for (const link of links) {\n const header = buildLinkHeader(link);\n if (header) linkHeaders.push(header);\n }\n }\n } catch (e) {\n // rootHead failed — log why, then fall back to known critical assets\n console.warn('[earlyHints] rootHead failed:', e instanceof Error ? e.message : e);\n for (const asset of CRITICAL_ASSETS) {\n const co = 'crossOrigin' in asset ? asset.crossOrigin : undefined;\n linkHeaders.push(`<${asset.href}>; rel=${asset.rel}${co ? '; crossorigin' : ''}`);\n }\n }\n\n // 2. Add CSS from TanStack Start manifest (bundled theme CSS)\n if (!cachedManifestPaths) {\n try {\n const manifest = tsrStartManifest();\n const rootAssets = manifest.routes['__root__']?.assets ?? [];\n const seen = new Set<string>();\n cachedManifestPaths = [];\n for (const asset of rootAssets) {\n if (asset.tag === 'link' && asset.attrs?.href?.endsWith('.css')) {\n if (!seen.has(asset.attrs.href)) {\n seen.add(asset.attrs.href);\n cachedManifestPaths.push(asset.attrs.href);\n }\n }\n }\n } catch (e) {\n // manifest not available — skip\n console.warn('[earlyHints] tsrStartManifest failed:', e instanceof Error ? e.message : e);\n }\n }\n\n if (cachedManifestPaths) {\n for (const href of cachedManifestPaths) {\n linkHeaders.push(`<${href}>; rel=preload; as=style`);\n }\n }\n\n // Apply Link headers if we have any\n if (linkHeaders.length === 0) {\n console.warn('[earlyHints] no critical assets found — no Link headers added');\n return response;\n }\n\n const headers = new Headers(response.headers);\n for (const linkHeader of linkHeaders) {\n headers.append('Link', linkHeader);\n }\n\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n });\n};\n"]}
@@ -230,10 +230,36 @@ export declare function extractScopeIdFromCookies(cookieHeader: string | null):
230
230
  * Returns `undefined` when the SDK storage API isn't ready yet — deliberately
231
231
  * distinct from `null` ("no branch selected"), so callers can't mistake a
232
232
  * not-yet-hydrated SDK for a cleared selection. Client-only.
233
+ *
234
+ * Storage the SDK has loaded but not yet initialised counts as not ready: it is
235
+ * what the previous visit left, and `init` replaces it with the scope the page
236
+ * was rendered for and the one `?scope=` names. Read before that, it would
237
+ * outvote the `scope` cookie the server wrote for this page.
233
238
  */
234
239
  export declare function readSdkScope(): ActiveScope | null | undefined;
240
+ /**
241
+ * The scope a page URL names, the way Twig storefronts switch market: the SDK's
242
+ * scopes modal reloads the page with `?scope=<id>`, and a branch picked for it
243
+ * travels as `allocation_type` / `allocation_id`. Null when the URL names none
244
+ * or names it malformed; an allocation is kept only when both halves are valid.
245
+ */
246
+ export declare function extractScopeFromUrl(url: string): ActiveScope | null;
247
+ /**
248
+ * The scope a request is for: the one its URL names, else the `scope` cookie.
249
+ *
250
+ * The URL wins because it is the newer choice: it is how a market is switched,
251
+ * and the cookie still holds the one switched from. Merged with that cookie only
252
+ * when both name the same scope; a different scope does not inherit the previous
253
+ * one's branch. The type is store-wide, so it comes from the cookie, or is the
254
+ * multi-market one when there is no cookie yet — the settings answer corrects it
255
+ * for a store that browses by branch or city (see `rootBeforeLoad`).
256
+ */
257
+ export declare function resolveRequestScope(url: string, cookieHeader: string | null): ActiveScope | null;
235
258
  /** {@link readSdkScope} reduced to the id; keeps the not-ready/none distinction. */
236
259
  export declare function readSdkScopeId(): string | null | undefined;
260
+ /** One year — the SDK keeps the selected branch in localStorage indefinitely. */
261
+ export declare const SCOPE_COOKIE_MAX_AGE: number;
262
+ export declare const sameScope: (a: ActiveScope | null, b: ActiveScope | null) => boolean;
237
263
  /**
238
264
  * Mirrors the scope the Salla SDK selected into the `scope` cookie so the SERVER
239
265
  * can see it. The SDK persists the selection in localStorage ONLY and writes no
@@ -1 +1 @@
1
- {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/utils/cookies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/utils/cookies.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  export { stripUnsafeHtml } from '../chunk-RUHSV4Z6.js';
2
2
  export { formatSallaPlural } from '../chunk-BT6HEEAP.js';
3
- export { dispatchRouteChanged } from '../chunk-E5O5ICIY.js';
3
+ export { dispatchRouteChanged } from '../chunk-2APQP7KK.js';
4
4
  export { mergeHead, resolveHead, setHeadAdapter } from '../chunk-GD26FI4J.js';
5
5
  export { sortOptions } from '../chunk-6Z4MOC4S.js';
6
6
  export { buildBaseHead, buildHreflangAlternates, localeToOgLocale } from '../chunk-TZ3E5BN4.js';
7
7
  export { color } from '../chunk-VVZNW5CB.js';
8
- export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-RYSJOCHI.js';
9
- import '../chunk-IK57LAIA.js';
8
+ export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-LCDSHSP7.js';
9
+ import '../chunk-BP6LUZXJ.js';
10
10
  export { asset, cdn, isPlaceholder } from '../chunk-ZCH7W7DZ.js';
11
11
  export { mergeDocumentDescriptors, mergeElementAttrs, normalizeClasses, syncAttrsToElement, toReactProps } from '../chunk-CW625T2E.js';
12
- export { getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-P4GOLSA2.js';
13
- export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies } from '../chunk-Y5OGXJLH.js';
12
+ export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies, getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-4A5IAMNL.js';
14
13
  import '../chunk-N2S25NXP.js';
15
14
  import '../chunk-T72DAX7R.js';
16
15
  import '../chunk-DGUM43GV.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AASO,SAAS,WAAA,GAAwB;AACtC,EAAA,IAAI,OAAO,SAAA,KAAc,WAAA,EAAa,OAAO,OAAA;AAC7C,EAAA,MAAM,EAAA,GAAK,UAAU,SAAA,IAAa,EAAA;AAClC,EAAA,IAAI,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,SAAA;AAEhC,EAAA,IAAI,kBAAA,CAAmB,IAAA,CAAK,EAAE,CAAA,IAAM,WAAA,CAAY,KAAK,EAAE,CAAA,IAAK,SAAA,CAAU,cAAA,GAAiB,CAAA,EAAI;AACzF,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,OAAA;AACT;AAWO,SAAS,kBAAA,CACd,IAAA,EACA,EAAA,GAAe,WAAA,EAAY,EACP;AACpB,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,IAAI,EAAA,KAAO,SAAA,EAAW,OAAO,IAAA,CAAK,cAAc,IAAA,CAAK,QAAA;AACrD,EAAA,OAAO,IAAA,CAAK,YAAY,IAAA,CAAK,UAAA;AAC/B","file":"index.js","sourcesContent":["import type { StoreApps } from '../types';\n\n/** The visitor's mobile operating system, or `'other'` (desktop/unknown/server). */\nexport type MobileOS = 'ios' | 'android' | 'other';\n\n/**\n * Detects the current mobile OS from the User-Agent.\n * Returns `'other'` on the server (no `navigator`) and on desktop/unknown agents.\n */\nexport function getMobileOS(): MobileOS {\n if (typeof navigator === 'undefined') return 'other';\n const ua = navigator.userAgent || '';\n if (/android/i.test(ua)) return 'android';\n // iOS, incl. iPadOS which reports a desktop \"Macintosh\" UA but exposes touch\n if (/iPad|iPhone|iPod/.test(ua) || (/Macintosh/.test(ua) && navigator.maxTouchPoints > 1)) {\n return 'ios';\n }\n return 'other';\n}\n\n/**\n * Picks the mobile-app store URL for the given OS:\n * - `ios` → App Store, falling back to Google Play\n * - `android` → Google Play, falling back to App Store\n * - `other` → App Store, falling back to Google Play\n *\n * `os` defaults to {@link getMobileOS}; pass `'other'` during SSR/first render\n * to keep the output stable and avoid a hydration mismatch on the resolved URL.\n */\nexport function resolveAppStoreUrl(\n apps?: StoreApps,\n os: MobileOS = getMobileOS()\n): string | undefined {\n if (!apps) return undefined;\n if (os === 'android') return apps.googleplay || apps.appstore;\n return apps.appstore || apps.googleplay;\n}\n"]}
1
+ {"version":3,"sources":["../../src/utils/device.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AASO,SAAS,WAAA,GAAwB;AACtC,EAAA,IAAI,OAAO,SAAA,KAAc,WAAA,EAAa,OAAO,OAAA;AAC7C,EAAA,MAAM,EAAA,GAAK,UAAU,SAAA,IAAa,EAAA;AAClC,EAAA,IAAI,UAAA,CAAW,IAAA,CAAK,EAAE,CAAA,EAAG,OAAO,SAAA;AAEhC,EAAA,IAAI,kBAAA,CAAmB,IAAA,CAAK,EAAE,CAAA,IAAM,WAAA,CAAY,KAAK,EAAE,CAAA,IAAK,SAAA,CAAU,cAAA,GAAiB,CAAA,EAAI;AACzF,IAAA,OAAO,KAAA;AAAA,EACT;AACA,EAAA,OAAO,OAAA;AACT;AAWO,SAAS,kBAAA,CACd,IAAA,EACA,EAAA,GAAe,WAAA,EAAY,EACP;AACpB,EAAA,IAAI,CAAC,MAAM,OAAO,MAAA;AAClB,EAAA,IAAI,EAAA,KAAO,SAAA,EAAW,OAAO,IAAA,CAAK,cAAc,IAAA,CAAK,QAAA;AACrD,EAAA,OAAO,IAAA,CAAK,YAAY,IAAA,CAAK,UAAA;AAC/B","file":"index.js","sourcesContent":["import type { StoreApps } from '../types';\n\n/** The visitor's mobile operating system, or `'other'` (desktop/unknown/server). */\nexport type MobileOS = 'ios' | 'android' | 'other';\n\n/**\n * Detects the current mobile OS from the User-Agent.\n * Returns `'other'` on the server (no `navigator`) and on desktop/unknown agents.\n */\nexport function getMobileOS(): MobileOS {\n if (typeof navigator === 'undefined') return 'other';\n const ua = navigator.userAgent || '';\n if (/android/i.test(ua)) return 'android';\n // iOS, incl. iPadOS which reports a desktop \"Macintosh\" UA but exposes touch\n if (/iPad|iPhone|iPod/.test(ua) || (/Macintosh/.test(ua) && navigator.maxTouchPoints > 1)) {\n return 'ios';\n }\n return 'other';\n}\n\n/**\n * Picks the mobile-app store URL for the given OS:\n * - `ios` → App Store, falling back to Google Play\n * - `android` → Google Play, falling back to App Store\n * - `other` → App Store, falling back to Google Play\n *\n * `os` defaults to {@link getMobileOS}; pass `'other'` during SSR/first render\n * to keep the output stable and avoid a hydration mismatch on the resolved URL.\n */\nexport function resolveAppStoreUrl(\n apps?: StoreApps,\n os: MobileOS = getMobileOS()\n): string | undefined {\n if (!apps) return undefined;\n if (os === 'android') return apps.googleplay || apps.appstore;\n return apps.appstore || apps.googleplay;\n}\n"]}
@@ -13,34 +13,5 @@
13
13
  * once the dispatcher has stripped `?versionId=` from the URL.
14
14
  */
15
15
  export declare function requestedThemeVersionId(): string | null;
16
- /**
17
- * The version every Salla API call is answered with — what goes in `s-version-id`.
18
- *
19
- * The requested version outranks the settings, because a request that named one
20
- * is the only reason this is ever anything but the live version: falling back to
21
- * the settings there would let the first answer overwrite the question.
22
- *
23
- * The settings' own `theme.profile.id` stays as the fallback, unchanged. It is
24
- * what this header has always carried, and on an ordinary storefront it still
25
- * is — it keeps the rest of a page's calls pinned to the version the settings
26
- * call resolved, rather than letting a version go live mid-render.
27
- *
28
- * That pin is only good for the scope the settings were requested with. Each
29
- * market (scope) has its own version, and the API lets a named version outrank
30
- * the market's: once the shopper switches market, the loaded settings still
31
- * describe the previous one, and replaying their version — on the settings call
32
- * for the new market first of all — gets the previous market's theme back, for
33
- * good. So the version is replayed only while the active scope is the one
34
- * `store.settings` stamped on them (`requestedScopeId`); otherwise nothing is
35
- * sent and the API picks the version of the scope on the request. That covers a
36
- * market selected, switched, or cleared.
37
- *
38
- * `activeScopeId` is passed in by the caller that already resolved the scope for
39
- * its `s-scope-*` headers.
40
- *
41
- * Reading the settings is guarded because `getTwilightContext().settings` throws
42
- * a `SettingsError` when they have not loaded — which is the normal state on the
43
- * very first call, the settings call itself.
44
- */
45
16
  export declare function resolveThemeVersionId(activeScopeId?: string | null): string | null;
46
17
  //# sourceMappingURL=theme-version.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"theme-version.d.ts","sourceRoot":"","sources":["../../src/utils/theme-version.ts"],"names":[],"mappings":"AAsBA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAKvD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,GAAG,IAAI,CAaxF"}
1
+ {"version":3,"file":"theme-version.d.ts","sourceRoot":"","sources":["../../src/utils/theme-version.ts"],"names":[],"mappings":"AAuBA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,GAAG,IAAI,CAKvD;AA0CD,wBAAgB,qBAAqB,CAAC,aAAa,GAAE,MAAM,GAAG,IAAW,GAAG,MAAM,GAAG,IAAI,CAaxF"}
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack.adapter.d.ts","sourceRoot":"","sources":["../../../src/vite/adapters/tanstack.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAWH,OAAO,KAAK,EACV,gBAAgB,EAGhB,aAAa,EACd,MAAM,UAAU,CAAC;AAkBlB,eAAO,MAAM,mBAAmB,EAAE,aAAa,EAuQ9C,CAAC;AA82BF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EAAE,EACvB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAwCT;AAED,eAAO,MAAM,eAAe,EAAE,gBA+N7B,CAAC"}
1
+ {"version":3,"file":"tanstack.adapter.d.ts","sourceRoot":"","sources":["../../../src/vite/adapters/tanstack.adapter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AAWH,OAAO,KAAK,EACV,gBAAgB,EAGhB,aAAa,EACd,MAAM,UAAU,CAAC;AAkBlB,eAAO,MAAM,mBAAmB,EAAE,aAAa,EAuQ9C,CAAC;AAg3BF,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,aAAa,EAAE,EACvB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,OAAO,CAwCT;AAED,eAAO,MAAM,eAAe,EAAE,gBA+N7B,CAAC"}
@@ -2486,7 +2486,9 @@ export const Route = createFileRoute('${tanstackRoutePath}')({
2486
2486
  var ENGINE_OWNED_FACTORIES = /* @__PURE__ */ new Set([
2487
2487
  "createAccountRedirectConfig",
2488
2488
  "createPendingOrdersRedirectConfig",
2489
- "createRatingRedirectConfig"
2489
+ "createRatingRedirectConfig",
2490
+ "createProductsRouteConfig",
2491
+ "createReviewsRouteConfig"
2490
2492
  ]);
2491
2493
  function isEngineOwned(route, routesDir) {
2492
2494
  if (!ENGINE_OWNED_FACTORIES.has(route.factory)) return false;