@salla.sa/twilight-theme-engine 1.0.151 → 1.0.152

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 (226) hide show
  1. package/dist/{AddToCartForm-O6TPONV2.js → AddToCartForm-HOBSTMWX.js} +3 -3
  2. package/dist/{AddToCartForm-O6TPONV2.js.map → AddToCartForm-HOBSTMWX.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-H6LRQ5YW.js → BlogAuthorPage-56OY5GCN.js} +16 -16
  4. package/dist/{BlogAuthorPage-H6LRQ5YW.js.map → BlogAuthorPage-56OY5GCN.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-NORT43JE.js → BlogCategoryPage-HW7A6RNL.js} +16 -16
  6. package/dist/{BlogCategoryPage-NORT43JE.js.map → BlogCategoryPage-HW7A6RNL.js.map} +1 -1
  7. package/dist/{BlogPage-ZGTRTQT6.js → BlogPage-RRHKP3GP.js} +14 -14
  8. package/dist/{BlogPage-ZGTRTQT6.js.map → BlogPage-RRHKP3GP.js.map} +1 -1
  9. package/dist/{BlogSinglePage-G7TUMA4L.js → BlogSinglePage-STNMFQHX.js} +14 -14
  10. package/dist/{BlogSinglePage-G7TUMA4L.js.map → BlogSinglePage-STNMFQHX.js.map} +1 -1
  11. package/dist/{BlogTagPage-3LFUVXP3.js → BlogTagPage-YD3EPTQY.js} +16 -16
  12. package/dist/{BlogTagPage-3LFUVXP3.js.map → BlogTagPage-YD3EPTQY.js.map} +1 -1
  13. package/dist/{BrandsPage-NA5BVFVS.js → BrandsPage-KJFB4QBN.js} +15 -15
  14. package/dist/{BrandsPage-NA5BVFVS.js.map → BrandsPage-KJFB4QBN.js.map} +1 -1
  15. package/dist/{Breadcrumb-MNSFVYUT.js → Breadcrumb-QKHYTTFB.js} +14 -14
  16. package/dist/{Breadcrumb-MNSFVYUT.js.map → Breadcrumb-QKHYTTFB.js.map} +1 -1
  17. package/dist/{CartItem-N6OPII7B.js → CartItem-DCCYGMRI.js} +14 -14
  18. package/dist/{CartItem-N6OPII7B.js.map → CartItem-DCCYGMRI.js.map} +1 -1
  19. package/dist/{CartSummary-LGYAIG7C.js → CartSummary-DAAYDRFS.js} +14 -14
  20. package/dist/{CartSummary-LGYAIG7C.js.map → CartSummary-DAAYDRFS.js.map} +1 -1
  21. package/dist/{Copyright-YXWJNV5Q.js → Copyright-GL5Q4FTN.js} +3 -3
  22. package/dist/{Copyright-YXWJNV5Q.js.map → Copyright-GL5Q4FTN.js.map} +1 -1
  23. package/dist/{CustomerLayout-YU7TKV2Q.js → CustomerLayout-D7HC4G7V.js} +14 -14
  24. package/dist/{CustomerLayout-YU7TKV2Q.js.map → CustomerLayout-D7HC4G7V.js.map} +1 -1
  25. package/dist/{Footer-4QV4H67O.js → Footer-3NQWLPAA.js} +4 -4
  26. package/dist/{Footer-4QV4H67O.js.map → Footer-3NQWLPAA.js.map} +1 -1
  27. package/dist/{Header-DEUDDAWD.js → Header-SCR46P4B.js} +8 -8
  28. package/dist/{Header-DEUDDAWD.js.map → Header-SCR46P4B.js.map} +1 -1
  29. package/dist/{LatestProducts-KA54KWOQ.js → LatestProducts-4UML6BNG.js} +16 -16
  30. package/dist/{LatestProducts-KA54KWOQ.js.map → LatestProducts-4UML6BNG.js.map} +1 -1
  31. package/dist/{LoyaltyPage-7FJROQFU.js → LoyaltyPage-CQIUT7MD.js} +14 -14
  32. package/dist/{LoyaltyPage-7FJROQFU.js.map → LoyaltyPage-CQIUT7MD.js.map} +1 -1
  33. package/dist/{LoyaltyPointsPage-JXT65P5U.js → LoyaltyPointsPage-ZOZFDRZT.js} +6 -6
  34. package/dist/{LoyaltyPointsPage-JXT65P5U.js.map → LoyaltyPointsPage-ZOZFDRZT.js.map} +1 -1
  35. package/dist/{MainMenu-UOAPVNJH.js → MainMenu-YLCB4MT7.js} +5 -5
  36. package/dist/{MainMenu-UOAPVNJH.js.map → MainMenu-YLCB4MT7.js.map} +1 -1
  37. package/dist/{MasterLayout-Z45QJW3M.js → MasterLayout-BDDKPLS6.js} +14 -14
  38. package/dist/{MasterLayout-Z45QJW3M.js.map → MasterLayout-BDDKPLS6.js.map} +1 -1
  39. package/dist/{MobileMenu-A4QIBBYN.js → MobileMenu-S5LB622I.js} +15 -15
  40. package/dist/{MobileMenu-A4QIBBYN.js.map → MobileMenu-S5LB622I.js.map} +1 -1
  41. package/dist/{NotificationsPage-XU5IBNPR.js → NotificationsPage-FPF7UU3Q.js} +14 -14
  42. package/dist/{NotificationsPage-XU5IBNPR.js.map → NotificationsPage-FPF7UU3Q.js.map} +1 -1
  43. package/dist/{OrderSinglePage-5ANTMCBP.js → OrderSinglePage-M37ROUBX.js} +15 -15
  44. package/dist/{OrderSinglePage-5ANTMCBP.js.map → OrderSinglePage-M37ROUBX.js.map} +1 -1
  45. package/dist/{OrdersPage-LZLPSDZR.js → OrdersPage-GIZFTPQ7.js} +14 -14
  46. package/dist/{OrdersPage-LZLPSDZR.js.map → OrdersPage-GIZFTPQ7.js.map} +1 -1
  47. package/dist/{PageSingle-PMLCSRMC.js → PageSingle-EQD5Y3L5.js} +3 -3
  48. package/dist/{PageSingle-PMLCSRMC.js.map → PageSingle-EQD5Y3L5.js.map} +1 -1
  49. package/dist/{ProductDetails-ECPCGZLO.js → ProductDetails-53BXVF37.js} +4 -4
  50. package/dist/{ProductDetails-ECPCGZLO.js.map → ProductDetails-53BXVF37.js.map} +1 -1
  51. package/dist/{ProfilePage-XVWB4ZOO.js → ProfilePage-6GJXTBFN.js} +14 -14
  52. package/dist/{ProfilePage-XVWB4ZOO.js.map → ProfilePage-6GJXTBFN.js.map} +1 -1
  53. package/dist/{ReviewsPage-6EOSOIU4.js → ReviewsPage-SCHVMKXV.js} +3 -3
  54. package/dist/{ReviewsPage-6EOSOIU4.js.map → ReviewsPage-SCHVMKXV.js.map} +1 -1
  55. package/dist/{SeoCartWidget-TYNXS4UD.js → SeoCartWidget-IUXLYOTC.js} +14 -14
  56. package/dist/{SeoCartWidget-TYNXS4UD.js.map → SeoCartWidget-IUXLYOTC.js.map} +1 -1
  57. package/dist/{SettingsPage-BHW3CJC6.js → SettingsPage-2TKL2COF.js} +14 -14
  58. package/dist/{SettingsPage-BHW3CJC6.js.map → SettingsPage-2TKL2COF.js.map} +1 -1
  59. package/dist/{StoreClosedNotification-7YHL4XTT.js → StoreClosedNotification-HHOQXT6N.js} +15 -15
  60. package/dist/{StoreClosedNotification-7YHL4XTT.js.map → StoreClosedNotification-HHOQXT6N.js.map} +1 -1
  61. package/dist/{TestimonialsPage-ZY2U4QDN.js → TestimonialsPage-GJJT7F5G.js} +3 -3
  62. package/dist/{TestimonialsPage-ZY2U4QDN.js.map → TestimonialsPage-GJJT7F5G.js.map} +1 -1
  63. package/dist/{ThankYouPage-MINROTEH.js → ThankYouPage-ZAEZWSUK.js} +14 -14
  64. package/dist/{ThankYouPage-MINROTEH.js.map → ThankYouPage-ZAEZWSUK.js.map} +1 -1
  65. package/dist/{WalletPage-4VFAGWIE.js → WalletPage-74LAUONG.js} +15 -15
  66. package/dist/{WalletPage-4VFAGWIE.js.map → WalletPage-74LAUONG.js.map} +1 -1
  67. package/dist/{WebMcpTools-F42SFWVP.js → WebMcpTools-J6HCO5B6.js} +5 -5
  68. package/dist/{WebMcpTools-F42SFWVP.js.map → WebMcpTools-J6HCO5B6.js.map} +1 -1
  69. package/dist/{WishlistPage-VMM4YDMX.js → WishlistPage-SV55V5CP.js} +16 -16
  70. package/dist/{WishlistPage-VMM4YDMX.js.map → WishlistPage-SV55V5CP.js.map} +1 -1
  71. package/dist/api/advertisement.js +2 -2
  72. package/dist/api/apps.js +2 -2
  73. package/dist/api/blog.js +3 -3
  74. package/dist/api/brands.js +3 -3
  75. package/dist/api/cart.js +3 -3
  76. package/dist/api/category.js +3 -3
  77. package/dist/api/client.js +1 -1
  78. package/dist/api/home.js +2 -2
  79. package/dist/api/loyalty.js +3 -3
  80. package/dist/api/menu.js +2 -2
  81. package/dist/api/notification.js +2 -2
  82. package/dist/api/order.js +3 -3
  83. package/dist/api/page.js +3 -3
  84. package/dist/api/product.js +3 -3
  85. package/dist/api/profile.js +1 -1
  86. package/dist/api/store.js +2 -2
  87. package/dist/api/translations.js +2 -2
  88. package/dist/api/user.js +2 -2
  89. package/dist/api/wallet.js +2 -2
  90. package/dist/api/wishlist.js +4 -4
  91. package/dist/{chunk-WZAJS44F.js → chunk-4SZNUX4K.js} +11 -11
  92. package/dist/{chunk-WZAJS44F.js.map → chunk-4SZNUX4K.js.map} +1 -1
  93. package/dist/{chunk-N2Y5VSHM.js → chunk-5VTVPQQB.js} +4 -4
  94. package/dist/{chunk-N2Y5VSHM.js.map → chunk-5VTVPQQB.js.map} +1 -1
  95. package/dist/{chunk-DGPSZUI3.js → chunk-64RDACOS.js} +4 -4
  96. package/dist/{chunk-DGPSZUI3.js.map → chunk-64RDACOS.js.map} +1 -1
  97. package/dist/{chunk-R6Z6JQIB.js → chunk-677OXNGV.js} +3 -3
  98. package/dist/{chunk-R6Z6JQIB.js.map → chunk-677OXNGV.js.map} +1 -1
  99. package/dist/{chunk-OGEG4QHV.js → chunk-A2SS3TNE.js} +3 -3
  100. package/dist/{chunk-OGEG4QHV.js.map → chunk-A2SS3TNE.js.map} +1 -1
  101. package/dist/{chunk-R4QBCQ4K.js → chunk-AFFBCOH6.js} +3 -3
  102. package/dist/{chunk-R4QBCQ4K.js.map → chunk-AFFBCOH6.js.map} +1 -1
  103. package/dist/{chunk-SF2POPJW.js → chunk-AU2XMLTH.js} +3 -3
  104. package/dist/{chunk-SF2POPJW.js.map → chunk-AU2XMLTH.js.map} +1 -1
  105. package/dist/{chunk-F6MYOPZB.js → chunk-BIVBSVWR.js} +4 -4
  106. package/dist/{chunk-F6MYOPZB.js.map → chunk-BIVBSVWR.js.map} +1 -1
  107. package/dist/{chunk-CEIXIUJ7.js → chunk-BWKHA4ZD.js} +4 -4
  108. package/dist/{chunk-CEIXIUJ7.js.map → chunk-BWKHA4ZD.js.map} +1 -1
  109. package/dist/{chunk-DXQUURZX.js → chunk-BY4DQTOG.js} +7 -7
  110. package/dist/{chunk-DXQUURZX.js.map → chunk-BY4DQTOG.js.map} +1 -1
  111. package/dist/{chunk-6R2AUQMP.js → chunk-CV32FSEL.js} +3 -3
  112. package/dist/{chunk-6R2AUQMP.js.map → chunk-CV32FSEL.js.map} +1 -1
  113. package/dist/{chunk-77SZTUQE.js → chunk-EAQAPYYU.js} +7 -7
  114. package/dist/{chunk-77SZTUQE.js.map → chunk-EAQAPYYU.js.map} +1 -1
  115. package/dist/{chunk-PHWFTUTE.js → chunk-EFKVEYML.js} +5 -5
  116. package/dist/{chunk-PHWFTUTE.js.map → chunk-EFKVEYML.js.map} +1 -1
  117. package/dist/{chunk-A7E6XFZC.js → chunk-F5RU2UCE.js} +15 -15
  118. package/dist/{chunk-A7E6XFZC.js.map → chunk-F5RU2UCE.js.map} +1 -1
  119. package/dist/{chunk-YQ365K65.js → chunk-FCFIG4M3.js} +3 -3
  120. package/dist/{chunk-YQ365K65.js.map → chunk-FCFIG4M3.js.map} +1 -1
  121. package/dist/{chunk-MQU6G2ZE.js → chunk-HSJCVD3P.js} +4 -4
  122. package/dist/{chunk-MQU6G2ZE.js.map → chunk-HSJCVD3P.js.map} +1 -1
  123. package/dist/{chunk-DKIU6ZOP.js → chunk-I3KAWUPG.js} +4 -4
  124. package/dist/{chunk-DKIU6ZOP.js.map → chunk-I3KAWUPG.js.map} +1 -1
  125. package/dist/{chunk-QNGA2NAC.js → chunk-I5GFTVR2.js} +4 -4
  126. package/dist/{chunk-QNGA2NAC.js.map → chunk-I5GFTVR2.js.map} +1 -1
  127. package/dist/{chunk-KBWIXAHN.js → chunk-IO4CVUL5.js} +3 -3
  128. package/dist/{chunk-KBWIXAHN.js.map → chunk-IO4CVUL5.js.map} +1 -1
  129. package/dist/{chunk-MVSOSNNB.js → chunk-JWYZLXJZ.js} +5 -5
  130. package/dist/{chunk-MVSOSNNB.js.map → chunk-JWYZLXJZ.js.map} +1 -1
  131. package/dist/{chunk-ULGRYCUV.js → chunk-KNY2ZZ5M.js} +3 -3
  132. package/dist/{chunk-ULGRYCUV.js.map → chunk-KNY2ZZ5M.js.map} +1 -1
  133. package/dist/{chunk-LRQ75MWP.js → chunk-LAO3MSKN.js} +7 -7
  134. package/dist/{chunk-LRQ75MWP.js.map → chunk-LAO3MSKN.js.map} +1 -1
  135. package/dist/{chunk-K577255O.js → chunk-LJXWCGBH.js} +7 -7
  136. package/dist/{chunk-K577255O.js.map → chunk-LJXWCGBH.js.map} +1 -1
  137. package/dist/{chunk-O7PJBTH3.js → chunk-LPF6YURL.js} +3 -3
  138. package/dist/{chunk-O7PJBTH3.js.map → chunk-LPF6YURL.js.map} +1 -1
  139. package/dist/{chunk-CATEET2N.js → chunk-MJQ3HFLJ.js} +3 -3
  140. package/dist/{chunk-CATEET2N.js.map → chunk-MJQ3HFLJ.js.map} +1 -1
  141. package/dist/{chunk-3JJQCRXD.js → chunk-N2RAPPQ3.js} +4 -4
  142. package/dist/{chunk-3JJQCRXD.js.map → chunk-N2RAPPQ3.js.map} +1 -1
  143. package/dist/{chunk-Q76O67KK.js → chunk-O76H6TDP.js} +3 -3
  144. package/dist/{chunk-Q76O67KK.js.map → chunk-O76H6TDP.js.map} +1 -1
  145. package/dist/{chunk-DKPM4T4C.js → chunk-OZRGUVHQ.js} +4 -4
  146. package/dist/{chunk-DKPM4T4C.js.map → chunk-OZRGUVHQ.js.map} +1 -1
  147. package/dist/{chunk-GZUBV5S3.js → chunk-R4LA6IMS.js} +3 -3
  148. package/dist/{chunk-GZUBV5S3.js.map → chunk-R4LA6IMS.js.map} +1 -1
  149. package/dist/{chunk-OJ4PJK27.js → chunk-S5KE6KPV.js} +4 -4
  150. package/dist/{chunk-OJ4PJK27.js.map → chunk-S5KE6KPV.js.map} +1 -1
  151. package/dist/{chunk-3ULBL56H.js → chunk-SIYINCXL.js} +3 -3
  152. package/dist/{chunk-3ULBL56H.js.map → chunk-SIYINCXL.js.map} +1 -1
  153. package/dist/{chunk-SBZWX6II.js → chunk-SXJEZEGN.js} +3 -3
  154. package/dist/{chunk-SBZWX6II.js.map → chunk-SXJEZEGN.js.map} +1 -1
  155. package/dist/{chunk-T7H5KE5Y.js → chunk-UBRG55VM.js} +4 -4
  156. package/dist/{chunk-T7H5KE5Y.js.map → chunk-UBRG55VM.js.map} +1 -1
  157. package/dist/{chunk-5CXBBDJB.js → chunk-UG44HSCN.js} +4 -4
  158. package/dist/{chunk-5CXBBDJB.js.map → chunk-UG44HSCN.js.map} +1 -1
  159. package/dist/{chunk-LDXVGQA2.js → chunk-UL2DRYH3.js} +3 -3
  160. package/dist/{chunk-LDXVGQA2.js.map → chunk-UL2DRYH3.js.map} +1 -1
  161. package/dist/{chunk-Z4BOATCC.js → chunk-URBOD4MX.js} +3 -3
  162. package/dist/{chunk-Z4BOATCC.js.map → chunk-URBOD4MX.js.map} +1 -1
  163. package/dist/{chunk-CH6BNMS6.js → chunk-VBAFSMNX.js} +3 -3
  164. package/dist/{chunk-CH6BNMS6.js.map → chunk-VBAFSMNX.js.map} +1 -1
  165. package/dist/{chunk-RRDKYXHU.js → chunk-XEHOZTER.js} +3 -3
  166. package/dist/{chunk-RRDKYXHU.js.map → chunk-XEHOZTER.js.map} +1 -1
  167. package/dist/{chunk-GYJJX4EI.js → chunk-XTBFIIAR.js} +4 -4
  168. package/dist/{chunk-GYJJX4EI.js.map → chunk-XTBFIIAR.js.map} +1 -1
  169. package/dist/{chunk-H7A7LOQJ.js → chunk-ZBGMIDDO.js} +3 -3
  170. package/dist/{chunk-H7A7LOQJ.js.map → chunk-ZBGMIDDO.js.map} +1 -1
  171. package/dist/{chunk-WJCDY35D.js → chunk-ZC4O472R.js} +5 -5
  172. package/dist/{chunk-WJCDY35D.js.map → chunk-ZC4O472R.js.map} +1 -1
  173. package/dist/components/cart/index.js +1 -1
  174. package/dist/components/common/index.js +1 -1
  175. package/dist/components/drawer/index.js +12 -12
  176. package/dist/components/home/index.js +17 -17
  177. package/dist/components/layout/index.js +4 -4
  178. package/dist/components/product/index.js +14 -14
  179. package/dist/components/store/index.js +13 -13
  180. package/dist/dev/editor/index.js +1 -1
  181. package/dist/dev/index.js +1 -1
  182. package/dist/{document-class-QZXX5ZEE.js → document-class-XYBFXCE7.js} +12 -12
  183. package/dist/{document-class-QZXX5ZEE.js.map → document-class-XYBFXCE7.js.map} +1 -1
  184. package/dist/hooks/index.js +12 -12
  185. package/dist/hooks/useGtm.js +12 -12
  186. package/dist/hooks/useMoney.js +12 -12
  187. package/dist/hooks/useStore.js +12 -12
  188. package/dist/hooks/useUser.js +3 -3
  189. package/dist/index.js +12 -12
  190. package/dist/{navigation-FKU75TCE.js → navigation-QDTYXINL.js} +4 -4
  191. package/dist/{navigation-FKU75TCE.js.map → navigation-QDTYXINL.js.map} +1 -1
  192. package/dist/{navigation-DF4JEVKE.js → navigation-SHFUWYCA.js} +5 -5
  193. package/dist/{navigation-DF4JEVKE.js.map → navigation-SHFUWYCA.js.map} +1 -1
  194. package/dist/{not-found-E72Z34CJ.js → not-found-IFD562WC.js} +15 -15
  195. package/dist/{not-found-E72Z34CJ.js.map → not-found-IFD562WC.js.map} +1 -1
  196. package/dist/providers/index.js +12 -12
  197. package/dist/routes/account/orders.js +4 -4
  198. package/dist/routes/account.js +13 -13
  199. package/dist/routes/blog.js +8 -8
  200. package/dist/routes/brands.js +4 -4
  201. package/dist/routes/cart.js +21 -21
  202. package/dist/routes/home.js +18 -18
  203. package/dist/routes/index.js +3 -3
  204. package/dist/routes/loyalty.js +5 -5
  205. package/dist/routes/page/loader.d.ts.map +1 -1
  206. package/dist/routes/page.js +5 -4
  207. package/dist/routes/page.js.map +1 -1
  208. package/dist/routes/product/loader.d.ts.map +1 -1
  209. package/dist/routes/product-listing.js +22 -22
  210. package/dist/routes/product.js +18 -17
  211. package/dist/routes/product.js.map +1 -1
  212. package/dist/routes/seo-redirects.js +3 -3
  213. package/dist/routes/testimonials.js +2 -2
  214. package/dist/routes/thank-you.js +4 -4
  215. package/dist/skeleton.js +18 -18
  216. package/dist/{store-lookup-LPXG5JSB.js → store-lookup-AJT3ZHTS.js} +8 -8
  217. package/dist/{store-lookup-LPXG5JSB.js.map → store-lookup-AJT3ZHTS.js.map} +1 -1
  218. package/dist/tanstack/templates/locale-wrapper.d.ts +3 -1
  219. package/dist/tanstack/templates/locale-wrapper.d.ts.map +1 -1
  220. package/dist/tanstack.js +12 -12
  221. package/dist/utils/index.js +2 -2
  222. package/dist/vite/index.js +29 -11
  223. package/dist/vite/index.js.map +1 -1
  224. package/package.json +1 -1
  225. package/tailwind/routes/page/loader.ts.txt +4 -0
  226. package/tailwind/routes/product/loader.ts.txt +5 -0
@@ -33,10 +33,10 @@ async function reviewsLoader() {
33
33
 
34
34
  // src/routes/testimonials/index.tsx
35
35
  var LazyTestimonialsPage = lazyComponent(
36
- () => import('../TestimonialsPage-ZY2U4QDN.js').then((m) => ({ default: m.TestimonialsPage }))
36
+ () => import('../TestimonialsPage-GJJT7F5G.js').then((m) => ({ default: m.TestimonialsPage }))
37
37
  );
38
38
  var LazyReviewsPage = lazyComponent(
39
- () => import('../ReviewsPage-6EOSOIU4.js').then((m) => ({ default: m.ReviewsPage }))
39
+ () => import('../ReviewsPage-SCHVMKXV.js').then((m) => ({ default: m.ReviewsPage }))
40
40
  );
41
41
  var TestimonialsPage = LazyTestimonialsPage;
42
42
  var ReviewsPage = LazyReviewsPage;
@@ -1,8 +1,8 @@
1
- import { order } from '../chunk-3JJQCRXD.js';
1
+ import { order } from '../chunk-N2RAPPQ3.js';
2
2
  import { buildHreflangAlternates, storePageUrl } from '../chunk-M2MJKUQF.js';
3
- import '../chunk-H7A7LOQJ.js';
3
+ import '../chunk-ZBGMIDDO.js';
4
4
  import { RouteId } from '../chunk-OUW6WESU.js';
5
- import { getAuthToken, api } from '../chunk-YQ365K65.js';
5
+ import { getAuthToken, api } from '../chunk-FCFIG4M3.js';
6
6
  import '../chunk-Z5M4YYWT.js';
7
7
  import '../chunk-IURXJAIK.js';
8
8
  import '../chunk-7IVHY4OR.js';
@@ -105,7 +105,7 @@ async function thankYouLoader({
105
105
 
106
106
  // src/routes/thank-you/index.tsx
107
107
  var LazyThankYouPage = lazyComponent(
108
- () => import('../ThankYouPage-MINROTEH.js').then((m) => ({ default: m.ThankYouPage }))
108
+ () => import('../ThankYouPage-ZAEZWSUK.js').then((m) => ({ default: m.ThankYouPage }))
109
109
  );
110
110
  var ThankYouPage = LazyThankYouPage;
111
111
  async function loader(ctx, extend) {
package/dist/skeleton.js CHANGED
@@ -1,33 +1,33 @@
1
1
  export { BlogSkeleton, BreadcrumbSkeleton, CartSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from './chunk-N7CCSGZF.js';
2
- export { HomeSkeleton } from './chunk-PHWFTUTE.js';
2
+ export { HomeSkeleton } from './chunk-EFKVEYML.js';
3
3
  import './chunk-IXHM24Z4.js';
4
- import './chunk-LRQ75MWP.js';
5
- import './chunk-R4QBCQ4K.js';
6
- import './chunk-CEIXIUJ7.js';
7
- import './chunk-WJCDY35D.js';
8
- import './chunk-DGPSZUI3.js';
4
+ import './chunk-LAO3MSKN.js';
5
+ import './chunk-AFFBCOH6.js';
6
+ import './chunk-BWKHA4ZD.js';
7
+ import './chunk-ZC4O472R.js';
8
+ import './chunk-64RDACOS.js';
9
9
  import './chunk-Y32RHCOH.js';
10
- import './chunk-A7E6XFZC.js';
10
+ import './chunk-F5RU2UCE.js';
11
11
  import './chunk-Q77J3D2W.js';
12
- import './chunk-DXQUURZX.js';
13
- import './chunk-CH6BNMS6.js';
12
+ import './chunk-BY4DQTOG.js';
13
+ import './chunk-VBAFSMNX.js';
14
14
  import './chunk-GMXNVBCD.js';
15
15
  import './chunk-X55R4VVK.js';
16
16
  import './chunk-YL6X3ZMG.js';
17
- import './chunk-CATEET2N.js';
17
+ import './chunk-MJQ3HFLJ.js';
18
18
  import './chunk-OXMUPNMH.js';
19
- import './chunk-6R2AUQMP.js';
19
+ import './chunk-CV32FSEL.js';
20
20
  import './chunk-VVZNW5CB.js';
21
21
  import './chunk-VDPMCOHX.js';
22
22
  import './chunk-GD26FI4J.js';
23
23
  import './chunk-BRIRWS2Q.js';
24
24
  import './chunk-M2MJKUQF.js';
25
- import './chunk-H7A7LOQJ.js';
25
+ import './chunk-ZBGMIDDO.js';
26
26
  import './chunk-OUW6WESU.js';
27
27
  import './chunk-PPUV27YN.js';
28
28
  import './chunk-HI5V5X3S.js';
29
- import './chunk-RRDKYXHU.js';
30
- import './chunk-R6Z6JQIB.js';
29
+ import './chunk-XEHOZTER.js';
30
+ import './chunk-677OXNGV.js';
31
31
  import './chunk-6T55LXJL.js';
32
32
  import './chunk-Z653O7MX.js';
33
33
  import './chunk-ZCH7W7DZ.js';
@@ -38,16 +38,16 @@ import './chunk-7V36I5GT.js';
38
38
  import './chunk-6WI7R2BD.js';
39
39
  import './chunk-LFMCUQQ3.js';
40
40
  import './chunk-OAMIDZKW.js';
41
- import './chunk-LDXVGQA2.js';
41
+ import './chunk-UL2DRYH3.js';
42
42
  import './chunk-OQIIJRAS.js';
43
43
  import './chunk-V2ZDTY6H.js';
44
- import './chunk-Z4BOATCC.js';
44
+ import './chunk-URBOD4MX.js';
45
45
  import './chunk-5XDPAKF5.js';
46
46
  import './chunk-GCPEMNSU.js';
47
- import './chunk-YQ365K65.js';
47
+ import './chunk-FCFIG4M3.js';
48
48
  import './chunk-Z5M4YYWT.js';
49
49
  import './chunk-TYNZ5B2B.js';
50
- import './chunk-SF2POPJW.js';
50
+ import './chunk-AU2XMLTH.js';
51
51
  import './chunk-AXW67SY7.js';
52
52
  import './chunk-BYMOPN2S.js';
53
53
  import './chunk-SKLEJJ6M.js';
@@ -1,11 +1,11 @@
1
- import { category } from './chunk-F6MYOPZB.js';
2
- import { blog } from './chunk-QNGA2NAC.js';
3
- import { brand } from './chunk-N2Y5VSHM.js';
4
- import { product } from './chunk-CEIXIUJ7.js';
1
+ import { category } from './chunk-BIVBSVWR.js';
2
+ import { blog } from './chunk-I5GFTVR2.js';
3
+ import { brand } from './chunk-5VTVPQQB.js';
4
+ import { product } from './chunk-BWKHA4ZD.js';
5
5
  import { DEV_LOOKUP_BUDGET_MS } from './chunk-OXMUPNMH.js';
6
- import './chunk-H7A7LOQJ.js';
6
+ import './chunk-ZBGMIDDO.js';
7
7
  import './chunk-OUW6WESU.js';
8
- import './chunk-YQ365K65.js';
8
+ import './chunk-FCFIG4M3.js';
9
9
  import './chunk-Z5M4YYWT.js';
10
10
  import './chunk-IURXJAIK.js';
11
11
  import './chunk-7IVHY4OR.js';
@@ -111,5 +111,5 @@ function lookupInStore(source, query) {
111
111
  }
112
112
 
113
113
  export { lookupInStore };
114
- //# sourceMappingURL=store-lookup-LPXG5JSB.js.map
115
- //# sourceMappingURL=store-lookup-LPXG5JSB.js.map
114
+ //# sourceMappingURL=store-lookup-AJT3ZHTS.js.map
115
+ //# sourceMappingURL=store-lookup-AJT3ZHTS.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":"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","file":"store-lookup-LPXG5JSB.js","sourcesContent":["/**\n * Runs in the editor's frame (the storefront), which has the engine's API\n * client set up for the dev store: answers the editor's pickers with the real\n * store's products, categories, brands and blog. Loaded with `import()` on the\n * first lookup, so a storefront never carries it.\n *\n * Each item's `data` is what a block receives for it, in the API's shape: a\n * product block reads only the ids and fetches the rest, while categories and\n * brands are drawn from what is saved.\n */\n\nimport { product } from '../api/product';\nimport { category } from '../api/category';\nimport { brand } from '../api/brands';\nimport { blog } from '../api/blog';\nimport type { Category } from '../types';\nimport { DEV_LOOKUP_BUDGET_MS, type DevLookupItem, type DevLookupSource } from './schema-types';\n\n/** Enough to choose from; a search narrows it further. */\nconst PER_PAGE = 20;\n/** How far a paged list is searched before giving up, so a big store can't stall the picker. */\nconst MAX_PAGES = 10;\n\ninterface Page<T> {\n items: T[];\n next: string | null;\n}\n\n/**\n * The matching items of a paged list, read page after page until there are\n * enough, the pages run out, or the time budget is spent: a brand or article on\n * page three is still found, and what was found so far always reaches the\n * editor before it stops waiting (`DEV_LOOKUP_BUDGET_MS` < its timeout).\n */\nasync function collect<T>(\n fetchPage: (page: number, cursor: string | null) => Promise<Page<T>>,\n keep: (item: T) => boolean\n): Promise<T[]> {\n const deadline = Date.now() + DEV_LOOKUP_BUDGET_MS;\n const found: T[] = [];\n let cursor: string | null = null;\n for (let page = 1; page <= MAX_PAGES; page += 1) {\n const { items, next } = await fetchPage(page, cursor);\n found.push(...items.filter(keep));\n if (found.length >= PER_PAGE || !next || Date.now() >= deadline) break;\n cursor = next;\n }\n return found.slice(0, PER_PAGE);\n}\n\nfunction matches(name: string, query: string): boolean {\n return !query || name.toLowerCase().includes(query.toLowerCase());\n}\n\n/** Categories with their subcategories, flattened, parents first. */\nfunction flatten(categories: Category[]): Category[] {\n return categories.flatMap((c) => [c, ...flatten(c.sub_categories ?? [])]);\n}\n\nasync function products(query: string): Promise<DevLookupItem[]> {\n const { items } = await product.list({\n source: query ? 'search' : 'latest',\n ...(query ? { keyword: query } : {}),\n perPage: PER_PAGE,\n });\n // List responses send the id as a numeric string; the block reads a number. Use it for both.\n return items.map((p) => ({\n id: Number(p.id),\n name: p.name,\n image: p.image?.url,\n url: p.url,\n data: { id: Number(p.id), name: p.name, url: p.url, image: p.image?.url ?? null },\n }));\n}\n\nasync function categories(query: string): Promise<DevLookupItem[]> {\n return flatten(await category.list())\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n image: c.image ?? undefined,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url, image: c.image ?? null, icon: c.icon ?? null },\n }));\n}\n\nasync function brands(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n (page) => brand.list(page),\n (b) => matches(b.name, query)\n );\n return found.map((b) => ({\n id: b.id,\n name: b.name,\n image: b.logo,\n url: b.url,\n data: { id: b.id, name: b.name, url: b.url, logo: b.logo, banner: b.banner ?? null },\n }));\n}\n\nasync function blogArticles(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n async (_page, cursor) => {\n const { data, cursor: pages } = await blog.articles.list(cursor ? { cursor } : undefined);\n return { items: data, next: pages?.next ?? null };\n },\n (a) => matches(a.name, query)\n );\n return found.map((a) => ({\n id: a.id,\n name: a.name,\n image: a.image,\n url: a.url,\n data: { id: a.id, name: a.name, url: a.url },\n }));\n}\n\nasync function blogCategories(query: string): Promise<DevLookupItem[]> {\n const { categories: list } = await blog.get();\n return list\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url },\n }));\n}\n\nconst LOOKUPS: Record<DevLookupSource, (query: string) => Promise<DevLookupItem[]>> = {\n products,\n categories,\n brands,\n blog_articles: blogArticles,\n blog_categories: blogCategories,\n};\n\nexport function lookupInStore(source: DevLookupSource, query: string): Promise<DevLookupItem[]> {\n const lookup = LOOKUPS[source];\n if (!lookup) return Promise.reject(new Error(`no lookup for ${source}`));\n return lookup(query.trim());\n}\n"]}
1
+ {"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":"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","file":"store-lookup-AJT3ZHTS.js","sourcesContent":["/**\n * Runs in the editor's frame (the storefront), which has the engine's API\n * client set up for the dev store: answers the editor's pickers with the real\n * store's products, categories, brands and blog. Loaded with `import()` on the\n * first lookup, so a storefront never carries it.\n *\n * Each item's `data` is what a block receives for it, in the API's shape: a\n * product block reads only the ids and fetches the rest, while categories and\n * brands are drawn from what is saved.\n */\n\nimport { product } from '../api/product';\nimport { category } from '../api/category';\nimport { brand } from '../api/brands';\nimport { blog } from '../api/blog';\nimport type { Category } from '../types';\nimport { DEV_LOOKUP_BUDGET_MS, type DevLookupItem, type DevLookupSource } from './schema-types';\n\n/** Enough to choose from; a search narrows it further. */\nconst PER_PAGE = 20;\n/** How far a paged list is searched before giving up, so a big store can't stall the picker. */\nconst MAX_PAGES = 10;\n\ninterface Page<T> {\n items: T[];\n next: string | null;\n}\n\n/**\n * The matching items of a paged list, read page after page until there are\n * enough, the pages run out, or the time budget is spent: a brand or article on\n * page three is still found, and what was found so far always reaches the\n * editor before it stops waiting (`DEV_LOOKUP_BUDGET_MS` < its timeout).\n */\nasync function collect<T>(\n fetchPage: (page: number, cursor: string | null) => Promise<Page<T>>,\n keep: (item: T) => boolean\n): Promise<T[]> {\n const deadline = Date.now() + DEV_LOOKUP_BUDGET_MS;\n const found: T[] = [];\n let cursor: string | null = null;\n for (let page = 1; page <= MAX_PAGES; page += 1) {\n const { items, next } = await fetchPage(page, cursor);\n found.push(...items.filter(keep));\n if (found.length >= PER_PAGE || !next || Date.now() >= deadline) break;\n cursor = next;\n }\n return found.slice(0, PER_PAGE);\n}\n\nfunction matches(name: string, query: string): boolean {\n return !query || name.toLowerCase().includes(query.toLowerCase());\n}\n\n/** Categories with their subcategories, flattened, parents first. */\nfunction flatten(categories: Category[]): Category[] {\n return categories.flatMap((c) => [c, ...flatten(c.sub_categories ?? [])]);\n}\n\nasync function products(query: string): Promise<DevLookupItem[]> {\n const { items } = await product.list({\n source: query ? 'search' : 'latest',\n ...(query ? { keyword: query } : {}),\n perPage: PER_PAGE,\n });\n // List responses send the id as a numeric string; the block reads a number. Use it for both.\n return items.map((p) => ({\n id: Number(p.id),\n name: p.name,\n image: p.image?.url,\n url: p.url,\n data: { id: Number(p.id), name: p.name, url: p.url, image: p.image?.url ?? null },\n }));\n}\n\nasync function categories(query: string): Promise<DevLookupItem[]> {\n return flatten(await category.list())\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n image: c.image ?? undefined,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url, image: c.image ?? null, icon: c.icon ?? null },\n }));\n}\n\nasync function brands(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n (page) => brand.list(page),\n (b) => matches(b.name, query)\n );\n return found.map((b) => ({\n id: b.id,\n name: b.name,\n image: b.logo,\n url: b.url,\n data: { id: b.id, name: b.name, url: b.url, logo: b.logo, banner: b.banner ?? null },\n }));\n}\n\nasync function blogArticles(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n async (_page, cursor) => {\n const { data, cursor: pages } = await blog.articles.list(cursor ? { cursor } : undefined);\n return { items: data, next: pages?.next ?? null };\n },\n (a) => matches(a.name, query)\n );\n return found.map((a) => ({\n id: a.id,\n name: a.name,\n image: a.image,\n url: a.url,\n data: { id: a.id, name: a.name, url: a.url },\n }));\n}\n\nasync function blogCategories(query: string): Promise<DevLookupItem[]> {\n const { categories: list } = await blog.get();\n return list\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url },\n }));\n}\n\nconst LOOKUPS: Record<DevLookupSource, (query: string) => Promise<DevLookupItem[]>> = {\n products,\n categories,\n brands,\n blog_articles: blogArticles,\n blog_categories: blogCategories,\n};\n\nexport function lookupInStore(source: DevLookupSource, query: string): Promise<DevLookupItem[]> {\n const lookup = LOOKUPS[source];\n if (!lookup) return Promise.reject(new Error(`no lookup for ${source}`));\n return lookup(query.trim());\n}\n"]}
@@ -5,7 +5,9 @@
5
5
  * Uses TanStack Router's optional path parameter syntax /{-$locale}:
6
6
  * - /{-$locale}/cart matches both /cart and /ar/cart
7
7
  *
8
- * beforeLoad: validates the locale format when present.
8
+ * beforeLoad: validates the locale format when present. A first segment that is not a locale
9
+ * gets the fallback locale, except on a store whose addresses carry none: there it is a page
10
+ * no route has, and the loader would strip the locale straight off again.
9
11
  * loader: checks store.settings.is_multilingual (and the number of languages) and redirects
10
12
  * accordingly. On a Salla shared host the address has no locale, so it redirects nothing.
11
13
  *
@@ -1 +1 @@
1
- {"version":3,"file":"locale-wrapper.d.ts","sourceRoot":"","sources":["../../../src/tanstack/templates/locale-wrapper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CA4FzE"}
1
+ {"version":3,"file":"locale-wrapper.d.ts","sourceRoot":"","sources":["../../../src/tanstack/templates/locale-wrapper.ts"],"names":[],"mappings":"AAkBA;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,EAAE,MAAM,GAAG,MAAM,CA8FzE"}
package/dist/tanstack.js CHANGED
@@ -1,27 +1,27 @@
1
- export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-WZAJS44F.js';
2
- import { requestHostOf } from './chunk-KBWIXAHN.js';
3
- export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-KBWIXAHN.js';
1
+ export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-4SZNUX4K.js';
2
+ import { requestHostOf } from './chunk-IO4CVUL5.js';
3
+ export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-IO4CVUL5.js';
4
4
  import './chunk-Z4Y55HWX.js';
5
5
  export { tanstackHeadAdapter as head, withHead } from './chunk-CIJVNUNZ.js';
6
6
  import { CRITICAL_STYLE_HREF } from './chunk-4FJGZQD3.js';
7
- import { readNativeAppHeaders } from './chunk-Q76O67KK.js';
8
- import './chunk-SBZWX6II.js';
9
- import './chunk-DKIU6ZOP.js';
10
- import './chunk-ULGRYCUV.js';
11
- import './chunk-CEIXIUJ7.js';
7
+ import { readNativeAppHeaders } from './chunk-O76H6TDP.js';
8
+ import './chunk-SXJEZEGN.js';
9
+ import './chunk-I3KAWUPG.js';
10
+ import './chunk-KNY2ZZ5M.js';
11
+ import './chunk-BWKHA4ZD.js';
12
12
  import { rootHead } from './chunk-GMXNVBCD.js';
13
13
  import './chunk-X55R4VVK.js';
14
- import './chunk-6R2AUQMP.js';
14
+ import './chunk-CV32FSEL.js';
15
15
  import './chunk-VDPMCOHX.js';
16
16
  import './chunk-GD26FI4J.js';
17
17
  import { maintenanceEvidence, MAINTENANCE_EVIDENCE_HEADER, maintenanceEvidenceHeader } from './chunk-BRIRWS2Q.js';
18
18
  import './chunk-M2MJKUQF.js';
19
- import './chunk-H7A7LOQJ.js';
19
+ import './chunk-ZBGMIDDO.js';
20
20
  import './chunk-OUW6WESU.js';
21
21
  import './chunk-JWXJPJBO.js';
22
22
  export { mergeDocumentDescriptors as mergeAttrs } from './chunk-CW625T2E.js';
23
- import './chunk-Z4BOATCC.js';
24
- import './chunk-YQ365K65.js';
23
+ import './chunk-URBOD4MX.js';
24
+ import './chunk-FCFIG4M3.js';
25
25
  import './chunk-Z5M4YYWT.js';
26
26
  import './chunk-TYNZ5B2B.js';
27
27
  import './chunk-BYMOPN2S.js';
@@ -1,6 +1,6 @@
1
1
  export { stripUnsafeHtml } from '../chunk-RUHSV4Z6.js';
2
2
  export { formatSallaPlural } from '../chunk-BT6HEEAP.js';
3
- export { dispatchRouteChanged } from '../chunk-ULGRYCUV.js';
3
+ export { dispatchRouteChanged } from '../chunk-KNY2ZZ5M.js';
4
4
  export { sortOptions } from '../chunk-3LZJXKVO.js';
5
5
  export { color } from '../chunk-VVZNW5CB.js';
6
6
  export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-VDPMCOHX.js';
@@ -8,7 +8,7 @@ export { mergeHead, resolveHead, setHeadAdapter } from '../chunk-GD26FI4J.js';
8
8
  export { buildBaseHead, buildHreflangAlternates, localeToOgLocale } from '../chunk-M2MJKUQF.js';
9
9
  export { asset, cdn, isPlaceholder } from '../chunk-ZCH7W7DZ.js';
10
10
  export { mergeDocumentDescriptors, mergeElementAttrs, normalizeClasses, syncAttrsToElement, toReactProps } from '../chunk-CW625T2E.js';
11
- import '../chunk-YQ365K65.js';
11
+ import '../chunk-FCFIG4M3.js';
12
12
  import '../chunk-Z5M4YYWT.js';
13
13
  export { getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-7IVHY4OR.js';
14
14
  export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies } from '../chunk-EEL6OYAQ.js';
@@ -1852,6 +1852,22 @@ function resolveWorkerConfigPath(projectRoot, options = {}) {
1852
1852
  }
1853
1853
 
1854
1854
  // src/tanstack/templates/locale-wrapper.ts
1855
+ var ADDRESS_LANGUAGE = `/**
1856
+ * Which language the store's addresses carry. Single-language when the merchant says so, or
1857
+ * when the store lists fewer than two languages. A page with no locale is read as
1858
+ * FALLBACK_LOCALE (\`rootBeforeLoad\`), so a single-language store in another language keeps
1859
+ * its segment instead: it is what the page is addressed and read by. Without it an
1860
+ * English-only store would render in Arabic.
1861
+ */
1862
+ function addressLanguage(settings) {
1863
+ const listed = settings?.languages;
1864
+ const soleEntry = listed?.length === 1 ? listed[0] : undefined;
1865
+ const soleLang = soleEntry ? (soleEntry.iso_code ?? soleEntry.code)?.toLowerCase() : undefined;
1866
+ const single =
1867
+ settings?.store?.settings?.is_multilingual === false || (listed != null && listed.length < 2);
1868
+ const segment = single && isLocale(soleLang) && soleLang !== FALLBACK_LOCALE ? soleLang : null;
1869
+ return { single, segment };
1870
+ }`;
1855
1871
  function getLocaleWrapperTemplate(baseRoutesImport) {
1856
1872
  const mainPkg = baseRoutesImport.replace(/\/routes$/, "");
1857
1873
  return `// @auto-generated
@@ -1860,11 +1876,22 @@ import { createFileRoute, notFound, Outlet, redirect } from '@tanstack/react-rou
1860
1876
  import { FALLBACK_LOCALE, isLocale } from '${baseRoutesImport}';
1861
1877
  import { store } from '${mainPkg}/api/store';
1862
1878
 
1879
+ ${ADDRESS_LANGUAGE}
1880
+
1863
1881
  export const Route = createFileRoute('/{-$locale}')({
1864
- beforeLoad: ({ params, location }) => {
1882
+ beforeLoad: async ({ params, location, context }) => {
1865
1883
  const { locale } = params;
1866
1884
  if (!locale) return;
1867
1885
  if (!isLocale(locale)) {
1886
+ // A first segment that is not a language is a page no route has: \`/nothing-here\` binds
1887
+ // \`{-$locale}\` to \`nothing-here\`. On a store whose addresses carry no language the
1888
+ // loader strips the locale this would add, and the two redirects sent the page back
1889
+ // and forth forever (\`/x\` \u2192 \`/ar/x\` \u2192 \`/x\`), so there it is the not-found page.
1890
+ if (!context.storeBaseFollowsLocale) {
1891
+ const settings = await context.queryClient.ensureQueryData(store.queries.settings());
1892
+ const { single, segment } = addressLanguage(settings);
1893
+ if (single && !segment) throw notFound();
1894
+ }
1868
1895
  throw redirect({
1869
1896
  to: \`/\${FALLBACK_LOCALE}\${location.pathname}\`,
1870
1897
  search: location.search,
@@ -1880,16 +1907,7 @@ export const Route = createFileRoute('/{-$locale}')({
1880
1907
  if (context.storeBaseFollowsLocale) return;
1881
1908
 
1882
1909
  const settings = await context.queryClient.ensureQueryData(store.queries.settings());
1883
- // Single-language when the merchant says so, or when the store lists fewer than two
1884
- // languages. A page with no locale is read as FALLBACK_LOCALE (\`rootBeforeLoad\`), so a
1885
- // single-language store in another language keeps its segment instead: it is what the
1886
- // page is addressed and read by. Without it an English-only store would render in Arabic.
1887
- const listed = settings?.languages;
1888
- const soleEntry = listed?.length === 1 ? listed[0] : undefined;
1889
- const soleLang = soleEntry ? (soleEntry.iso_code ?? soleEntry.code)?.toLowerCase() : undefined;
1890
- const single =
1891
- settings?.store?.settings?.is_multilingual === false || (listed != null && listed.length < 2);
1892
- const segment = single && isLocale(soleLang) && soleLang !== FALLBACK_LOCALE ? soleLang : null;
1910
+ const { single, segment } = addressLanguage(settings);
1893
1911
  const isMultilingual = !single;
1894
1912
  const pathWithoutLocale = params.locale
1895
1913
  ? location.pathname.slice(params.locale.length + 1) || '/'