@salla.sa/twilight-theme-engine 1.0.81 → 1.0.83

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 (275) hide show
  1. package/dist/{AddToCartForm-TX3QMS4O.js → AddToCartForm-37APRET4.js} +3 -3
  2. package/dist/{AddToCartForm-TX3QMS4O.js.map → AddToCartForm-37APRET4.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-BNMZL5DW.js → BlogAuthorPage-562MX2LO.js} +23 -19
  4. package/dist/BlogAuthorPage-562MX2LO.js.map +1 -0
  5. package/dist/{BlogCategoryPage-4M52MRXH.js → BlogCategoryPage-Q5H5OKLS.js} +23 -19
  6. package/dist/BlogCategoryPage-Q5H5OKLS.js.map +1 -0
  7. package/dist/{BlogPage-5HWA2DQF.js → BlogPage-DTNPNV2B.js} +21 -17
  8. package/dist/BlogPage-DTNPNV2B.js.map +1 -0
  9. package/dist/{BlogSinglePage-AAXWX5P2.js → BlogSinglePage-T7P5I4C3.js} +21 -17
  10. package/dist/BlogSinglePage-T7P5I4C3.js.map +1 -0
  11. package/dist/{BlogTagPage-4N2BZSFE.js → BlogTagPage-K5IPJ7V2.js} +23 -19
  12. package/dist/BlogTagPage-K5IPJ7V2.js.map +1 -0
  13. package/dist/{BrandsPage-HMWHRDKS.js → BrandsPage-TSLY4GNB.js} +22 -18
  14. package/dist/BrandsPage-TSLY4GNB.js.map +1 -0
  15. package/dist/{Breadcrumb-FASP32PM.js → Breadcrumb-2WAXVVO4.js} +21 -17
  16. package/dist/Breadcrumb-2WAXVVO4.js.map +1 -0
  17. package/dist/{CartItem-WQ4L2YDN.js → CartItem-QST2C243.js} +21 -17
  18. package/dist/CartItem-QST2C243.js.map +1 -0
  19. package/dist/{CartSummary-P26475WT.js → CartSummary-IFZI2NFE.js} +21 -17
  20. package/dist/CartSummary-IFZI2NFE.js.map +1 -0
  21. package/dist/{Copyright-GCH5MMDB.js → Copyright-J7OL7EZS.js} +3 -3
  22. package/dist/{Copyright-GCH5MMDB.js.map → Copyright-J7OL7EZS.js.map} +1 -1
  23. package/dist/{CustomerLayout-LXQDPPTU.js → CustomerLayout-HADICNS2.js} +21 -17
  24. package/dist/CustomerLayout-HADICNS2.js.map +1 -0
  25. package/dist/{Footer-FBU4RZ6X.js → Footer-TTGSSHPD.js} +21 -17
  26. package/dist/{Footer-FBU4RZ6X.js.map → Footer-TTGSSHPD.js.map} +1 -1
  27. package/dist/GoogleTag-Y6N4BOCW.js +4 -0
  28. package/dist/{GoogleTag-HBGKI3VH.js.map → GoogleTag-Y6N4BOCW.js.map} +1 -1
  29. package/dist/{Header-YDW2ED77.js → Header-W232GUVN.js} +7 -7
  30. package/dist/{Header-YDW2ED77.js.map → Header-W232GUVN.js.map} +1 -1
  31. package/dist/{LoyaltyPage-SDWFURDQ.js → LoyaltyPage-GV37IVB5.js} +21 -17
  32. package/dist/LoyaltyPage-GV37IVB5.js.map +1 -0
  33. package/dist/{LoyaltyPointsPage-3Y2VZSDJ.js → LoyaltyPointsPage-XWPUI5XG.js} +3 -3
  34. package/dist/{LoyaltyPointsPage-3Y2VZSDJ.js.map → LoyaltyPointsPage-XWPUI5XG.js.map} +1 -1
  35. package/dist/{MainMenu-QSSHJ7PU.js → MainMenu-3D6TQ5MX.js} +6 -6
  36. package/dist/{MainMenu-QSSHJ7PU.js.map → MainMenu-3D6TQ5MX.js.map} +1 -1
  37. package/dist/{StoreClosedNotification-DVYG4MOV.js → MasterLayout-X3SRGN7P.js} +21 -18
  38. package/dist/{MasterLayout-GPD6K47U.js.map → MasterLayout-X3SRGN7P.js.map} +1 -1
  39. package/dist/{MobileMenu-UNFCBLYN.js → MobileMenu-GZNQH3NF.js} +22 -18
  40. package/dist/MobileMenu-GZNQH3NF.js.map +1 -0
  41. package/dist/{NotificationsPage-TRD5V4ZT.js → NotificationsPage-ZWX7URQ6.js} +21 -17
  42. package/dist/NotificationsPage-ZWX7URQ6.js.map +1 -0
  43. package/dist/{OrderSinglePage-ITTG63VH.js → OrderSinglePage-HADHBSZF.js} +22 -18
  44. package/dist/OrderSinglePage-HADHBSZF.js.map +1 -0
  45. package/dist/{OrdersPage-ETVDAHD4.js → OrdersPage-JMR5PSPX.js} +21 -17
  46. package/dist/OrdersPage-JMR5PSPX.js.map +1 -0
  47. package/dist/{PageSingle-ZBYRUSLH.js → PageSingle-FYN6UCT5.js} +5 -5
  48. package/dist/{PageSingle-ZBYRUSLH.js.map → PageSingle-FYN6UCT5.js.map} +1 -1
  49. package/dist/{ProductDetails-M5NRFG3I.js → ProductDetails-QONKMMI6.js} +6 -6
  50. package/dist/{ProductDetails-M5NRFG3I.js.map → ProductDetails-QONKMMI6.js.map} +1 -1
  51. package/dist/{ProfilePage-ICYN6WXG.js → ProfilePage-DBKJZEII.js} +21 -17
  52. package/dist/ProfilePage-DBKJZEII.js.map +1 -0
  53. package/dist/{ReviewsPage-G3PABBMM.js → ReviewsPage-6Y57FGOZ.js} +3 -3
  54. package/dist/{ReviewsPage-G3PABBMM.js.map → ReviewsPage-6Y57FGOZ.js.map} +1 -1
  55. package/dist/{SeoCartWidget-5R73R2CW.js → SeoCartWidget-YSCC2V65.js} +21 -17
  56. package/dist/SeoCartWidget-YSCC2V65.js.map +1 -0
  57. package/dist/{SettingsPage-VG3I3KLW.js → SettingsPage-EJG4JMOK.js} +21 -17
  58. package/dist/SettingsPage-EJG4JMOK.js.map +1 -0
  59. package/dist/{MasterLayout-GPD6K47U.js → StoreClosedNotification-4F3KJTA4.js} +22 -17
  60. package/dist/{StoreClosedNotification-DVYG4MOV.js.map → StoreClosedNotification-4F3KJTA4.js.map} +1 -1
  61. package/dist/{TestimonialsPage-6RYVIZP5.js → TestimonialsPage-RAMT7OZ4.js} +5 -5
  62. package/dist/{TestimonialsPage-6RYVIZP5.js.map → TestimonialsPage-RAMT7OZ4.js.map} +1 -1
  63. package/dist/{ThankYouPage-TZ4YMMZE.js → ThankYouPage-IODVASK5.js} +21 -17
  64. package/dist/ThankYouPage-IODVASK5.js.map +1 -0
  65. package/dist/{WalletPage-3DGNYRZ3.js → WalletPage-Q2M55EB2.js} +22 -18
  66. package/dist/WalletPage-Q2M55EB2.js.map +1 -0
  67. package/dist/{WishlistPage-HWLHAOJO.js → WishlistPage-YUPZ5JDV.js} +23 -19
  68. package/dist/WishlistPage-YUPZ5JDV.js.map +1 -0
  69. package/dist/api/apps.js +3 -3
  70. package/dist/api/blog.js +4 -4
  71. package/dist/api/brands.js +4 -4
  72. package/dist/api/cart.js +4 -4
  73. package/dist/api/category.js +4 -4
  74. package/dist/api/client.js +2 -2
  75. package/dist/api/home.js +3 -3
  76. package/dist/api/loyalty.js +4 -4
  77. package/dist/api/menu.js +3 -3
  78. package/dist/api/notification.js +3 -3
  79. package/dist/api/order.js +4 -4
  80. package/dist/api/page.js +4 -4
  81. package/dist/api/product.js +4 -4
  82. package/dist/api/profile.js +2 -2
  83. package/dist/api/store.js +3 -3
  84. package/dist/api/translations.js +3 -3
  85. package/dist/api/user.js +3 -3
  86. package/dist/api/wallet.js +3 -3
  87. package/dist/api/wishlist.js +5 -5
  88. package/dist/chunk-22SH7OVF.js +298 -0
  89. package/dist/chunk-22SH7OVF.js.map +1 -0
  90. package/dist/{chunk-J2VJGXIX.js → chunk-27Z442XF.js} +5 -5
  91. package/dist/{chunk-J2VJGXIX.js.map → chunk-27Z442XF.js.map} +1 -1
  92. package/dist/{chunk-RPPTJY25.js → chunk-37EW45F4.js} +8 -8
  93. package/dist/{chunk-RPPTJY25.js.map → chunk-37EW45F4.js.map} +1 -1
  94. package/dist/{chunk-BE3JDKE2.js → chunk-3LXB4VFK.js} +5 -37
  95. package/dist/chunk-3LXB4VFK.js.map +1 -0
  96. package/dist/{chunk-UJNHLV37.js → chunk-3NLO5SK3.js} +3 -3
  97. package/dist/{chunk-UJNHLV37.js.map → chunk-3NLO5SK3.js.map} +1 -1
  98. package/dist/{chunk-7FDT2IFI.js → chunk-46NBPXAI.js} +3 -3
  99. package/dist/{chunk-7FDT2IFI.js.map → chunk-46NBPXAI.js.map} +1 -1
  100. package/dist/chunk-4ENPEHYZ.js +64 -0
  101. package/dist/chunk-4ENPEHYZ.js.map +1 -0
  102. package/dist/{chunk-LLQE4JAW.js → chunk-4WAUITU2.js} +3 -3
  103. package/dist/{chunk-LLQE4JAW.js.map → chunk-4WAUITU2.js.map} +1 -1
  104. package/dist/{chunk-VKYXOAKU.js → chunk-5FGZZON5.js} +4 -4
  105. package/dist/{chunk-VKYXOAKU.js.map → chunk-5FGZZON5.js.map} +1 -1
  106. package/dist/{chunk-LCDSHSP7.js → chunk-5G7NYNX6.js} +3 -3
  107. package/dist/{chunk-LCDSHSP7.js.map → chunk-5G7NYNX6.js.map} +1 -1
  108. package/dist/chunk-5RAADM2K.js +14 -0
  109. package/dist/{chunk-3LTQKLKJ.js.map → chunk-5RAADM2K.js.map} +1 -1
  110. package/dist/{chunk-EUWKQJNI.js → chunk-5SD7BUSA.js} +4 -4
  111. package/dist/{chunk-EUWKQJNI.js.map → chunk-5SD7BUSA.js.map} +1 -1
  112. package/dist/{chunk-3UMHUKMJ.js → chunk-66K5P5ZX.js} +3 -3
  113. package/dist/{chunk-3UMHUKMJ.js.map → chunk-66K5P5ZX.js.map} +1 -1
  114. package/dist/{chunk-7HWX2PEO.js → chunk-6DMNJPLW.js} +3 -3
  115. package/dist/{chunk-7HWX2PEO.js.map → chunk-6DMNJPLW.js.map} +1 -1
  116. package/dist/{chunk-F4FCETQT.js → chunk-6N33IKYP.js} +3 -3
  117. package/dist/{chunk-F4FCETQT.js.map → chunk-6N33IKYP.js.map} +1 -1
  118. package/dist/{chunk-3GZ5OOAK.js → chunk-6OOTDFC7.js} +3 -3
  119. package/dist/{chunk-3GZ5OOAK.js.map → chunk-6OOTDFC7.js.map} +1 -1
  120. package/dist/{chunk-64L2L76T.js → chunk-6QMYSKUE.js} +6 -6
  121. package/dist/{chunk-64L2L76T.js.map → chunk-6QMYSKUE.js.map} +1 -1
  122. package/dist/{chunk-VPPSRRGK.js → chunk-6ZMNTJM3.js} +4 -4
  123. package/dist/{chunk-VPPSRRGK.js.map → chunk-6ZMNTJM3.js.map} +1 -1
  124. package/dist/{chunk-WV3B2FOG.js → chunk-7X4XGKXO.js} +4 -4
  125. package/dist/{chunk-WV3B2FOG.js.map → chunk-7X4XGKXO.js.map} +1 -1
  126. package/dist/{chunk-NJWKVTQD.js → chunk-B2G7S4UR.js} +4 -4
  127. package/dist/{chunk-NJWKVTQD.js.map → chunk-B2G7S4UR.js.map} +1 -1
  128. package/dist/{chunk-HZYFU3PZ.js → chunk-BNI6SKFL.js} +4 -4
  129. package/dist/{chunk-HZYFU3PZ.js.map → chunk-BNI6SKFL.js.map} +1 -1
  130. package/dist/{chunk-XON5AXAP.js → chunk-ENJ3CM5M.js} +3 -3
  131. package/dist/{chunk-XON5AXAP.js.map → chunk-ENJ3CM5M.js.map} +1 -1
  132. package/dist/{chunk-LL3X2N7L.js → chunk-FFCYACTA.js} +4 -4
  133. package/dist/{chunk-LL3X2N7L.js.map → chunk-FFCYACTA.js.map} +1 -1
  134. package/dist/{chunk-W3LADQOR.js → chunk-FZYR4BA2.js} +3 -3
  135. package/dist/{chunk-W3LADQOR.js.map → chunk-FZYR4BA2.js.map} +1 -1
  136. package/dist/{chunk-MHVR2OUR.js → chunk-GAXVDCMA.js} +4 -4
  137. package/dist/{chunk-MHVR2OUR.js.map → chunk-GAXVDCMA.js.map} +1 -1
  138. package/dist/{chunk-VPNKJFT7.js → chunk-HIZ2SEJE.js} +3 -3
  139. package/dist/{chunk-VPNKJFT7.js.map → chunk-HIZ2SEJE.js.map} +1 -1
  140. package/dist/{chunk-SLXGP6KF.js → chunk-HQAFPDJK.js} +3 -3
  141. package/dist/{chunk-SLXGP6KF.js.map → chunk-HQAFPDJK.js.map} +1 -1
  142. package/dist/{chunk-4A5IAMNL.js → chunk-HSWRYXC7.js} +2 -2
  143. package/dist/{chunk-4A5IAMNL.js.map → chunk-HSWRYXC7.js.map} +1 -1
  144. package/dist/{chunk-6BITDRR2.js → chunk-IBDMGZ23.js} +100 -44
  145. package/dist/chunk-IBDMGZ23.js.map +1 -0
  146. package/dist/{chunk-RQ5EAUPQ.js → chunk-ID5SIAGH.js} +5 -5
  147. package/dist/{chunk-RQ5EAUPQ.js.map → chunk-ID5SIAGH.js.map} +1 -1
  148. package/dist/{chunk-LDVEJNPH.js → chunk-LJUFGTG2.js} +7 -7
  149. package/dist/{chunk-LDVEJNPH.js.map → chunk-LJUFGTG2.js.map} +1 -1
  150. package/dist/{chunk-2APQP7KK.js → chunk-MKVCFBVF.js} +4 -4
  151. package/dist/{chunk-2APQP7KK.js.map → chunk-MKVCFBVF.js.map} +1 -1
  152. package/dist/{chunk-MYJL5MGW.js → chunk-OH2L4U2C.js} +3 -3
  153. package/dist/{chunk-MYJL5MGW.js.map → chunk-OH2L4U2C.js.map} +1 -1
  154. package/dist/{chunk-KEZMQRKI.js → chunk-OHXODJAA.js} +4 -4
  155. package/dist/{chunk-KEZMQRKI.js.map → chunk-OHXODJAA.js.map} +1 -1
  156. package/dist/{chunk-BP6LUZXJ.js → chunk-QGOPTVV5.js} +3 -3
  157. package/dist/{chunk-BP6LUZXJ.js.map → chunk-QGOPTVV5.js.map} +1 -1
  158. package/dist/{chunk-SAZEDKBS.js → chunk-R42T7UL7.js} +4 -4
  159. package/dist/{chunk-SAZEDKBS.js.map → chunk-R42T7UL7.js.map} +1 -1
  160. package/dist/chunk-RV54D2D7.js +38 -0
  161. package/dist/chunk-RV54D2D7.js.map +1 -0
  162. package/dist/{chunk-MOANE2YM.js → chunk-SAGXF3MU.js} +3 -3
  163. package/dist/{chunk-MOANE2YM.js.map → chunk-SAGXF3MU.js.map} +1 -1
  164. package/dist/{chunk-FSCIJ55A.js → chunk-TWJXVT6S.js} +4 -4
  165. package/dist/{chunk-FSCIJ55A.js.map → chunk-TWJXVT6S.js.map} +1 -1
  166. package/dist/{chunk-YJAMQRFS.js → chunk-UGLZPGPF.js} +5 -5
  167. package/dist/{chunk-YJAMQRFS.js.map → chunk-UGLZPGPF.js.map} +1 -1
  168. package/dist/{chunk-IEQQVBQ3.js → chunk-UHAI6CIG.js} +7 -7
  169. package/dist/{chunk-IEQQVBQ3.js.map → chunk-UHAI6CIG.js.map} +1 -1
  170. package/dist/{chunk-ODF4CAF4.js → chunk-WSBVUIRW.js} +4 -4
  171. package/dist/{chunk-ODF4CAF4.js.map → chunk-WSBVUIRW.js.map} +1 -1
  172. package/dist/{chunk-PKNHFIY4.js → chunk-YGJMUJVR.js} +4 -4
  173. package/dist/{chunk-PKNHFIY4.js.map → chunk-YGJMUJVR.js.map} +1 -1
  174. package/dist/{chunk-2KH7ZBXA.js → chunk-YNIALL22.js} +15 -309
  175. package/dist/chunk-YNIALL22.js.map +1 -0
  176. package/dist/{chunk-JVTAP4JW.js → chunk-ZUAR7FWG.js} +7 -7
  177. package/dist/{chunk-JVTAP4JW.js.map → chunk-ZUAR7FWG.js.map} +1 -1
  178. package/dist/{chunk-F2YLRVPH.js → chunk-ZVZGLEZ6.js} +3 -3
  179. package/dist/{chunk-F2YLRVPH.js.map → chunk-ZVZGLEZ6.js.map} +1 -1
  180. package/dist/components/cart/index.js +1 -1
  181. package/dist/components/common/index.js +1 -1
  182. package/dist/components/drawer/index.js +19 -15
  183. package/dist/components/home/index.js +23 -19
  184. package/dist/components/layout/index.js +1 -1
  185. package/dist/components/product/index.js +20 -16
  186. package/dist/components/snippets/SallaSdkScripts.d.ts +6 -0
  187. package/dist/components/snippets/SallaSdkScripts.d.ts.map +1 -0
  188. package/dist/components/store/index.js +21 -17
  189. package/dist/components/store/index.js.map +1 -1
  190. package/dist/components/toast/index.js +3 -3
  191. package/dist/components/tracking/GoogleTag.d.ts +3 -7
  192. package/dist/components/tracking/GoogleTag.d.ts.map +1 -1
  193. package/dist/components/tracking/index.js +2 -2
  194. package/dist/document-class-HEO4N5Z5.js +26 -0
  195. package/dist/{document-class-DEQYGHKC.js.map → document-class-HEO4N5Z5.js.map} +1 -1
  196. package/dist/hooks/index.js +19 -15
  197. package/dist/hooks/useComments.js +2 -2
  198. package/dist/hooks/useGtm.js +19 -15
  199. package/dist/hooks/useMoney.js +19 -15
  200. package/dist/hooks/useProduct.js +2 -2
  201. package/dist/hooks/useStore.js +19 -15
  202. package/dist/hooks/useUser.js +4 -4
  203. package/dist/hooks/useWishlist.js +2 -2
  204. package/dist/index.js +19 -15
  205. package/dist/index.js.map +1 -1
  206. package/dist/native-app/index.js +2 -2
  207. package/dist/{navigation-KMDVLHXU.js → navigation-BRWTNATO.js} +7 -7
  208. package/dist/{navigation-KMDVLHXU.js.map → navigation-BRWTNATO.js.map} +1 -1
  209. package/dist/{navigation-WEV6XJJT.js → navigation-ZEY4KF4D.js} +5 -5
  210. package/dist/{navigation-WEV6XJJT.js.map → navigation-ZEY4KF4D.js.map} +1 -1
  211. package/dist/{not-found-YAVF7BEM.js → not-found-NHSV2Q5D.js} +22 -18
  212. package/dist/not-found-NHSV2Q5D.js.map +1 -0
  213. package/dist/providers/TwilightProvider.d.ts.map +1 -1
  214. package/dist/providers/index.js +19 -15
  215. package/dist/providers/twilight-init.d.ts.map +1 -1
  216. package/dist/providers/twilight-theme.d.ts +5 -1
  217. package/dist/providers/twilight-theme.d.ts.map +1 -1
  218. package/dist/routes/account/orders.js +5 -5
  219. package/dist/routes/account.js +14 -14
  220. package/dist/routes/blog.js +9 -9
  221. package/dist/routes/brands.js +5 -5
  222. package/dist/routes/cart.js +27 -24
  223. package/dist/routes/cart.js.map +1 -1
  224. package/dist/routes/home.js +24 -21
  225. package/dist/routes/index.js +4 -4
  226. package/dist/routes/loyalty.js +6 -6
  227. package/dist/routes/page.js +5 -5
  228. package/dist/routes/product-listing.js +25 -22
  229. package/dist/routes/product-listing.js.map +1 -1
  230. package/dist/routes/product.js +23 -20
  231. package/dist/routes/product.js.map +1 -1
  232. package/dist/routes/root/head.d.ts +1 -0
  233. package/dist/routes/root/head.d.ts.map +1 -1
  234. package/dist/routes/seo-redirects.js +4 -4
  235. package/dist/routes/testimonials.js +2 -2
  236. package/dist/routes/thank-you.js +5 -5
  237. package/dist/skeleton.js +24 -21
  238. package/dist/tanstack.js +16 -15
  239. package/dist/tanstack.js.map +1 -1
  240. package/dist/utils/apply-theme.d.ts +1 -0
  241. package/dist/utils/apply-theme.d.ts.map +1 -1
  242. package/dist/utils/index.js +6 -6
  243. package/dist/vite/index.js +2 -1
  244. package/dist/vite/index.js.map +1 -1
  245. package/package.json +1 -1
  246. package/dist/BlogAuthorPage-BNMZL5DW.js.map +0 -1
  247. package/dist/BlogCategoryPage-4M52MRXH.js.map +0 -1
  248. package/dist/BlogPage-5HWA2DQF.js.map +0 -1
  249. package/dist/BlogSinglePage-AAXWX5P2.js.map +0 -1
  250. package/dist/BlogTagPage-4N2BZSFE.js.map +0 -1
  251. package/dist/BrandsPage-HMWHRDKS.js.map +0 -1
  252. package/dist/Breadcrumb-FASP32PM.js.map +0 -1
  253. package/dist/CartItem-WQ4L2YDN.js.map +0 -1
  254. package/dist/CartSummary-P26475WT.js.map +0 -1
  255. package/dist/CustomerLayout-LXQDPPTU.js.map +0 -1
  256. package/dist/GoogleTag-HBGKI3VH.js +0 -4
  257. package/dist/LoyaltyPage-SDWFURDQ.js.map +0 -1
  258. package/dist/MobileMenu-UNFCBLYN.js.map +0 -1
  259. package/dist/NotificationsPage-TRD5V4ZT.js.map +0 -1
  260. package/dist/OrderSinglePage-ITTG63VH.js.map +0 -1
  261. package/dist/OrdersPage-ETVDAHD4.js.map +0 -1
  262. package/dist/ProfilePage-ICYN6WXG.js.map +0 -1
  263. package/dist/SeoCartWidget-5R73R2CW.js.map +0 -1
  264. package/dist/SettingsPage-VG3I3KLW.js.map +0 -1
  265. package/dist/ThankYouPage-TZ4YMMZE.js.map +0 -1
  266. package/dist/WalletPage-3DGNYRZ3.js.map +0 -1
  267. package/dist/WishlistPage-HWLHAOJO.js.map +0 -1
  268. package/dist/chunk-2KH7ZBXA.js.map +0 -1
  269. package/dist/chunk-3LTQKLKJ.js +0 -14
  270. package/dist/chunk-6BITDRR2.js.map +0 -1
  271. package/dist/chunk-BE3JDKE2.js.map +0 -1
  272. package/dist/chunk-DNCQIT6S.js +0 -52
  273. package/dist/chunk-DNCQIT6S.js.map +0 -1
  274. package/dist/document-class-DEQYGHKC.js +0 -24
  275. package/dist/not-found-YAVF7BEM.js.map +0 -1
package/dist/tanstack.js CHANGED
@@ -1,26 +1,27 @@
1
- import { rootHead } from './chunk-2KH7ZBXA.js';
2
- export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-2KH7ZBXA.js';
3
- import { requestHostOf } from './chunk-YJAMQRFS.js';
4
- export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-YJAMQRFS.js';
1
+ export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-YNIALL22.js';
2
+ import { requestHostOf } from './chunk-UGLZPGPF.js';
3
+ export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-UGLZPGPF.js';
5
4
  import './chunk-Z4Y55HWX.js';
6
- export { tanstackHeadAdapter as head, withHead } from './chunk-BE3JDKE2.js';
7
- import './chunk-2APQP7KK.js';
5
+ export { tanstackHeadAdapter as head, withHead } from './chunk-3LXB4VFK.js';
6
+ import './chunk-MKVCFBVF.js';
7
+ import './chunk-BNI6SKFL.js';
8
+ import './chunk-OH2L4U2C.js';
9
+ import './chunk-TWJXVT6S.js';
10
+ import { rootHead } from './chunk-22SH7OVF.js';
11
+ import './chunk-RV54D2D7.js';
12
+ import './chunk-ZVZGLEZ6.js';
13
+ import './chunk-5G7NYNX6.js';
8
14
  import './chunk-GD26FI4J.js';
9
- import './chunk-HZYFU3PZ.js';
10
- import './chunk-MYJL5MGW.js';
11
15
  import './chunk-TZ3E5BN4.js';
12
- import './chunk-FSCIJ55A.js';
13
- import './chunk-F2YLRVPH.js';
14
- import './chunk-LCDSHSP7.js';
15
- import './chunk-VPPSRRGK.js';
16
+ import './chunk-6ZMNTJM3.js';
16
17
  import './chunk-OUW6WESU.js';
17
- import './chunk-BP6LUZXJ.js';
18
+ import './chunk-QGOPTVV5.js';
18
19
  import './chunk-JWXJPJBO.js';
19
20
  export { mergeDocumentDescriptors as mergeAttrs } from './chunk-CW625T2E.js';
20
21
  import './chunk-TYNZ5B2B.js';
21
22
  import './chunk-BYMOPN2S.js';
22
- import './chunk-F4FCETQT.js';
23
- import { AUTH_TOKEN_COOKIE_NAME, extractTokenFromCookies, resolveRequestScope, resolveRequestStore, resolveRequestVersionId } from './chunk-4A5IAMNL.js';
23
+ import './chunk-6N33IKYP.js';
24
+ import { AUTH_TOKEN_COOKIE_NAME, extractTokenFromCookies, resolveRequestScope, resolveRequestStore, resolveRequestVersionId } from './chunk-HSWRYXC7.js';
24
25
  import { runWithTwilightContext } from './chunk-N2S25NXP.js';
25
26
  export { getTwilightContext, runWithTwilightContext, updateTwilightContext } from './chunk-N2S25NXP.js';
26
27
  import './chunk-T72DAX7R.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,IAAM,kBAAA,GAAqB,CAAC,OAAA,KAA8D;AAC/F,EAAA,MAAM,UAAA,GAAa,SAAS,UAAA,IAAc,sBAAA;AAE1C,EAAA,OAAO,kBAAiB,CAAE,MAAA,CAAO,CAAC,EAAE,OAAA,EAAS,MAAK,KAAM;AACtD,IAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA;AACjD,IAAA,MAAM,SAAA,GAAY,uBAAA,CAAwB,YAAA,EAAc,UAAU,CAAA;AAElE,IAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,CAAQ,GAAA,EAAK,YAAY,CAAA;AAC3D,IAAA,MAAM,WAAA,GAAc,cAAc,OAAO,CAAA;AAczC,IAAA,MAAM,EAAE,SAAS,SAAA,EAAU,GAAI,oBAAoB,OAAA,CAAQ,GAAA,EAAK,cAAc,WAAW,CAAA;AAKzF,IAAA,MAAM,SAAA,GAAY,uBAAA,CAAwB,OAAA,CAAQ,GAAA,EAAK,cAAc,WAAW,CAAA;AAEhF,IAAA,OAAO,sBAAA;AAAA,MACL,EAAE,SAAA,EAAW,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,WAAW,WAAA,EAAY;AAAA,MAC/D,MAAM,IAAA,CAAK,EAAE,SAAS,EAAE,SAAA,IAAa;AAAA,KACvC;AAAA,EACF,CAAC,CAAA;AACH;AC5CA,IAAM,eAAA,GAAkB;AAAA,EACtB,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,uBAAA,EAAwB;AAAA,EACnD,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,sBAAA,EAAuB;AAAA,EAClD,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,kCAAA,EAAoC,aAAa,WAAA,EAAY;AAAA,EACxF,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,2BAAA,EAA6B,aAAa,WAAA;AACvE,CAAA;AAGA,SAAS,cAAc,GAAA,EAAiC;AACtD,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,qBAAqB,CAAA;AAC7C,EAAA,OAAO,QAAQ,CAAC,CAAA;AAClB;AAGA,SAAS,gBAAgB,IAAA,EAA8C;AACrE,EAAA,MAAM,OAAO,IAAA,CAAK,IAAA;AAClB,EAAA,MAAM,MAAM,IAAA,CAAK,GAAA;AACjB,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,GAAA,EAAK,OAAO,IAAA;AAG1B,EAAA,IAAI,QAAQ,YAAA,EAAc;AACxB,IAAA,MAAM,QAAQ,IAAA,CAAK,KAAA;AACnB,IAAA,IAAI,KAAA,KAAU,SAAS,OAAO,IAAA;AAC9B,IAAA,OAAO,IAAI,IAAI,CAAA,wBAAA,CAAA;AAAA,EACjB;AAEA,EAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,IAAA,MAAM,SAAS,IAAA,CAAK,EAAA;AACpB,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,CAAA,EAAI,IAAI,KAAK,aAAA,EAAe,CAAA,GAAA,EAAM,MAAM,CAAA,CAAE,CAAA;AACzD,IAAA,IAAI,MAAA,KAAW,MAAA,IAAU,IAAA,CAAK,WAAA,EAAa;AACzC,MAAA,KAAA,CAAM,KAAK,aAAa,CAAA;AAAA,IAC1B;AACA,IAAA,OAAO,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,EACxB;AAEA,EAAA,IAAI,QAAQ,eAAA,EAAiB;AAC3B,IAAA,OAAO,IAAI,IAAI,CAAA,oBAAA,CAAA;AAAA,EACjB;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,uBAAuB,MAA4B;AAC9D,EAAA,IAAI,mBAAA,GAAuC,IAAA;AAE3C,EAAA,OAAOA,kBAAiB,CAAE,MAAA,CAAO,OAAO,EAAE,OAAA,EAAS,MAAK,KAAM;AAC5D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,EAAK;AAE5B,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA,IAAK,EAAA;AAChD,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA,IAAK,MAAA,KAAW,OAAO,OAAO,QAAA;AAC9D,IAAA,IAAI,EAAE,QAAA,YAAoB,QAAA,CAAA,EAAW,OAAO,QAAA;AAE5C,IAAA,MAAM,cAAwB,EAAC;AAG/B,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA;AAC/B,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA;AACzC,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,MAAM,aAAa,QAAA,CAAS,EAAE,QAAQ,EAAE,MAAA,IAAU,CAAA;AAClD,QAAA,MAAM,KAAA,GAAS,UAAA,CAAW,KAAA,IAAuC,EAAC;AAClE,QAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,UAAA,MAAM,MAAA,GAAS,gBAAgB,IAAI,CAAA;AACnC,UAAA,IAAI,MAAA,EAAQ,WAAA,CAAY,IAAA,CAAK,MAAM,CAAA;AAAA,QACrC;AAAA,MACF;AAAA,IACF,SAAS,CAAA,EAAG;AAEV,MAAA,OAAA,CAAQ,KAAK,+BAAA,EAAiC,CAAA,YAAa,KAAA,GAAQ,CAAA,CAAE,UAAU,CAAC,CAAA;AAChF,MAAA,KAAA,MAAW,SAAS,eAAA,EAAiB;AACnC,QAAA,MAAM,EAAA,GAAK,aAAA,IAAiB,KAAA,GAAQ,KAAA,CAAM,WAAA,GAAc,MAAA;AACxD,QAAA,WAAA,CAAY,IAAA,CAAK,CAAA,CAAA,EAAI,KAAA,CAAM,IAAI,CAAA,OAAA,EAAU,KAAA,CAAM,GAAG,CAAA,EAAG,EAAA,GAAK,eAAA,GAAkB,EAAE,CAAA,CAAE,CAAA;AAAA,MAClF;AAAA,IACF;AAGA,IAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,MAAA,IAAI;AACF,QAAA,MAAM,WAAW,gBAAA,EAAiB;AAClC,QAAA,MAAM,aAAa,QAAA,CAAS,MAAA,CAAO,UAAU,CAAA,EAAG,UAAU,EAAC;AAC3D,QAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,QAAA,mBAAA,GAAsB,EAAC;AACvB,QAAA,KAAA,MAAW,SAAS,UAAA,EAAY;AAC9B,UAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,IAAU,KAAA,CAAM,OAAO,IAAA,EAAM,QAAA,CAAS,MAAM,CAAA,EAAG;AAC/D,YAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA,EAAG;AAC/B,cAAA,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA;AACzB,cAAA,mBAAA,CAAoB,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA;AAAA,YAC3C;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,CAAA,EAAG;AAEV,QAAA,OAAA,CAAQ,KAAK,uCAAA,EAAyC,CAAA,YAAa,KAAA,GAAQ,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,MAC1F;AAAA,IACF;AAEA,IAAA,IAAI,mBAAA,EAAqB;AACvB,MAAA,KAAA,MAAW,QAAQ,mBAAA,EAAqB;AACtC,QAAA,WAAA,CAAY,IAAA,CAAK,CAAA,CAAA,EAAI,IAAI,CAAA,wBAAA,CAA0B,CAAA;AAAA,MACrD;AAAA,IACF;AAGA,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,MAAA,OAAA,CAAQ,KAAK,oEAA+D,CAAA;AAC5E,MAAA,OAAO,QAAA;AAAA,IACT;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,QAAA,CAAS,OAAO,CAAA;AAC5C,IAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACpC,MAAA,OAAA,CAAQ,MAAA,CAAO,QAAQ,UAAU,CAAA;AAAA,IACnC;AAEA,IAAA,OAAO,IAAI,QAAA,CAAS,QAAA,CAAS,IAAA,EAAM;AAAA,MACjC,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,YAAY,QAAA,CAAS,UAAA;AAAA,MACrB;AAAA,KACD,CAAA;AAAA,EACH,CAAC,CAAA;AACH","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"]}
1
+ {"version":3,"sources":["../src/tanstack/middleware/twilight.ts","../src/tanstack/middleware/earlyHints.ts"],"names":["createMiddleware"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,IAAM,kBAAA,GAAqB,CAAC,OAAA,KAA8D;AAC/F,EAAA,MAAM,UAAA,GAAa,SAAS,UAAA,IAAc,sBAAA;AAE1C,EAAA,OAAO,kBAAiB,CAAE,MAAA,CAAO,CAAC,EAAE,OAAA,EAAS,MAAK,KAAM;AACtD,IAAA,MAAM,YAAA,GAAe,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA;AACjD,IAAA,MAAM,SAAA,GAAY,uBAAA,CAAwB,YAAA,EAAc,UAAU,CAAA;AAElE,IAAA,MAAM,KAAA,GAAQ,mBAAA,CAAoB,OAAA,CAAQ,GAAA,EAAK,YAAY,CAAA;AAC3D,IAAA,MAAM,WAAA,GAAc,cAAc,OAAO,CAAA;AAczC,IAAA,MAAM,EAAE,SAAS,SAAA,EAAU,GAAI,oBAAoB,OAAA,CAAQ,GAAA,EAAK,cAAc,WAAW,CAAA;AAKzF,IAAA,MAAM,SAAA,GAAY,uBAAA,CAAwB,OAAA,CAAQ,GAAA,EAAK,cAAc,WAAW,CAAA;AAEhF,IAAA,OAAO,sBAAA;AAAA,MACL,EAAE,SAAA,EAAW,KAAA,EAAO,OAAA,EAAS,SAAA,EAAW,WAAW,WAAA,EAAY;AAAA,MAC/D,MAAM,IAAA,CAAK,EAAE,SAAS,EAAE,SAAA,IAAa;AAAA,KACvC;AAAA,EACF,CAAC,CAAA;AACH;AC5CA,IAAM,eAAA,GAAkB;AAAA,EACtB,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,uBAAA,EAAwB;AAAA,EACnD,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,sBAAA,EAAuB;AAAA,EAClD,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,kCAAA,EAAoC,aAAa,WAAA,EAAY;AAAA,EACxF,EAAE,GAAA,EAAK,YAAA,EAAc,IAAA,EAAM,2BAAA,EAA6B,aAAa,WAAA;AACvE,CAAA;AAGA,SAAS,cAAc,GAAA,EAAiC;AACtD,EAAA,MAAM,KAAA,GAAQ,GAAA,CAAI,KAAA,CAAM,qBAAqB,CAAA;AAC7C,EAAA,OAAO,QAAQ,CAAC,CAAA;AAClB;AAGA,SAAS,gBAAgB,IAAA,EAA8C;AACrE,EAAA,MAAM,OAAO,IAAA,CAAK,IAAA;AAClB,EAAA,MAAM,MAAM,IAAA,CAAK,GAAA;AACjB,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,GAAA,EAAK,OAAO,IAAA;AAG1B,EAAA,IAAI,QAAQ,YAAA,EAAc;AACxB,IAAA,MAAM,QAAQ,IAAA,CAAK,KAAA;AACnB,IAAA,IAAI,KAAA,KAAU,SAAS,OAAO,IAAA;AAC9B,IAAA,OAAO,IAAI,IAAI,CAAA,wBAAA,CAAA;AAAA,EACjB;AAEA,EAAA,IAAI,QAAQ,SAAA,EAAW;AACrB,IAAA,MAAM,SAAS,IAAA,CAAK,EAAA;AACpB,IAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,IAAA,MAAM,KAAA,GAAQ,CAAC,CAAA,CAAA,EAAI,IAAI,KAAK,aAAA,EAAe,CAAA,GAAA,EAAM,MAAM,CAAA,CAAE,CAAA;AACzD,IAAA,IAAI,MAAA,KAAW,MAAA,IAAU,IAAA,CAAK,WAAA,EAAa;AACzC,MAAA,KAAA,CAAM,KAAK,aAAa,CAAA;AAAA,IAC1B;AACA,IAAA,OAAO,KAAA,CAAM,KAAK,IAAI,CAAA;AAAA,EACxB;AAEA,EAAA,IAAI,QAAQ,eAAA,EAAiB;AAC3B,IAAA,OAAO,IAAI,IAAI,CAAA,oBAAA,CAAA;AAAA,EACjB;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,uBAAuB,MAA4B;AAC9D,EAAA,IAAI,mBAAA,GAAuC,IAAA;AAE3C,EAAA,OAAOA,kBAAiB,CAAE,MAAA,CAAO,OAAO,EAAE,OAAA,EAAS,MAAK,KAAM;AAC5D,IAAA,MAAM,QAAA,GAAW,MAAM,IAAA,EAAK;AAE5B,IAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,OAAA,CAAQ,GAAA,CAAI,QAAQ,CAAA,IAAK,EAAA;AAChD,IAAA,IAAI,CAAC,MAAA,CAAO,QAAA,CAAS,WAAW,CAAA,IAAK,MAAA,KAAW,OAAO,OAAO,QAAA;AAC9D,IAAA,IAAI,EAAE,QAAA,YAAoB,QAAA,CAAA,EAAW,OAAO,QAAA;AAE5C,IAAA,MAAM,cAAwB,EAAC;AAG/B,IAAA,IAAI;AACF,MAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA;AAC/B,MAAA,MAAM,MAAA,GAAS,aAAA,CAAc,GAAA,CAAI,QAAQ,CAAA;AACzC,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,MAAM,aAAa,QAAA,CAAS,EAAE,QAAQ,EAAE,MAAA,IAAU,CAAA;AAClD,QAAA,MAAM,KAAA,GAAS,UAAA,CAAW,KAAA,IAAuC,EAAC;AAClE,QAAA,KAAA,MAAW,QAAQ,KAAA,EAAO;AACxB,UAAA,MAAM,MAAA,GAAS,gBAAgB,IAAI,CAAA;AACnC,UAAA,IAAI,MAAA,EAAQ,WAAA,CAAY,IAAA,CAAK,MAAM,CAAA;AAAA,QACrC;AAAA,MACF;AAAA,IACF,SAAS,CAAA,EAAG;AAEV,MAAA,OAAA,CAAQ,KAAK,+BAAA,EAAiC,CAAA,YAAa,KAAA,GAAQ,CAAA,CAAE,UAAU,CAAC,CAAA;AAChF,MAAA,KAAA,MAAW,SAAS,eAAA,EAAiB;AACnC,QAAA,MAAM,EAAA,GAAK,aAAA,IAAiB,KAAA,GAAQ,KAAA,CAAM,WAAA,GAAc,MAAA;AACxD,QAAA,WAAA,CAAY,IAAA,CAAK,CAAA,CAAA,EAAI,KAAA,CAAM,IAAI,CAAA,OAAA,EAAU,KAAA,CAAM,GAAG,CAAA,EAAG,EAAA,GAAK,eAAA,GAAkB,EAAE,CAAA,CAAE,CAAA;AAAA,MAClF;AAAA,IACF;AAGA,IAAA,IAAI,CAAC,mBAAA,EAAqB;AACxB,MAAA,IAAI;AACF,QAAA,MAAM,WAAW,gBAAA,EAAiB;AAClC,QAAA,MAAM,aAAa,QAAA,CAAS,MAAA,CAAO,UAAU,CAAA,EAAG,UAAU,EAAC;AAC3D,QAAA,MAAM,IAAA,uBAAW,GAAA,EAAY;AAC7B,QAAA,mBAAA,GAAsB,EAAC;AACvB,QAAA,KAAA,MAAW,SAAS,UAAA,EAAY;AAC9B,UAAA,IAAI,KAAA,CAAM,QAAQ,MAAA,IAAU,KAAA,CAAM,OAAO,IAAA,EAAM,QAAA,CAAS,MAAM,CAAA,EAAG;AAC/D,YAAA,IAAI,CAAC,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA,EAAG;AAC/B,cAAA,IAAA,CAAK,GAAA,CAAI,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA;AACzB,cAAA,mBAAA,CAAoB,IAAA,CAAK,KAAA,CAAM,KAAA,CAAM,IAAI,CAAA;AAAA,YAC3C;AAAA,UACF;AAAA,QACF;AAAA,MACF,SAAS,CAAA,EAAG;AAEV,QAAA,OAAA,CAAQ,KAAK,uCAAA,EAAyC,CAAA,YAAa,KAAA,GAAQ,CAAA,CAAE,UAAU,CAAC,CAAA;AAAA,MAC1F;AAAA,IACF;AAEA,IAAA,IAAI,mBAAA,EAAqB;AACvB,MAAA,KAAA,MAAW,QAAQ,mBAAA,EAAqB;AACtC,QAAA,WAAA,CAAY,IAAA,CAAK,CAAA,CAAA,EAAI,IAAI,CAAA,wBAAA,CAA0B,CAAA;AAAA,MACrD;AAAA,IACF;AAGA,IAAA,IAAI,WAAA,CAAY,WAAW,CAAA,EAAG;AAC5B,MAAA,OAAA,CAAQ,KAAK,oEAA+D,CAAA;AAC5E,MAAA,OAAO,QAAA;AAAA,IACT;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,CAAQ,QAAA,CAAS,OAAO,CAAA;AAC5C,IAAA,KAAA,MAAW,cAAc,WAAA,EAAa;AACpC,MAAA,OAAA,CAAQ,MAAA,CAAO,QAAQ,UAAU,CAAA;AAAA,IACnC;AAEA,IAAA,OAAO,IAAI,QAAA,CAAS,QAAA,CAAS,IAAA,EAAM;AAAA,MACjC,QAAQ,QAAA,CAAS,MAAA;AAAA,MACjB,YAAY,QAAA,CAAS,UAAA;AAAA,MACrB;AAAA,KACD,CAAA;AAAA,EACH,CAAC,CAAA;AACH","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"]}
@@ -1,3 +1,4 @@
1
1
  import type { Theme } from '../types';
2
+ export declare function themeCssVars(theme: Theme): [string, string][];
2
3
  export declare function applyTheme(theme: Theme): void;
3
4
  //# sourceMappingURL=apply-theme.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"apply-theme.d.ts","sourceRoot":"","sources":["../../src/utils/apply-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAiD7C"}
1
+ {"version":3,"file":"apply-theme.d.ts","sourceRoot":"","sources":["../../src/utils/apply-theme.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAGtC,wBAAgB,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CA2C7D;AAMD,wBAAgB,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAa7C"}
@@ -1,15 +1,15 @@
1
1
  export { stripUnsafeHtml } from '../chunk-RUHSV4Z6.js';
2
2
  export { formatSallaPlural } from '../chunk-BT6HEEAP.js';
3
- export { dispatchRouteChanged } from '../chunk-2APQP7KK.js';
4
- export { mergeHead, resolveHead, setHeadAdapter } from '../chunk-GD26FI4J.js';
3
+ export { dispatchRouteChanged } from '../chunk-MKVCFBVF.js';
5
4
  export { sortOptions } from '../chunk-6Z4MOC4S.js';
6
- export { buildBaseHead, buildHreflangAlternates, localeToOgLocale } from '../chunk-TZ3E5BN4.js';
7
5
  export { color } from '../chunk-VVZNW5CB.js';
8
- export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-LCDSHSP7.js';
9
- import '../chunk-BP6LUZXJ.js';
6
+ export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-5G7NYNX6.js';
7
+ export { mergeHead, resolveHead, setHeadAdapter } from '../chunk-GD26FI4J.js';
8
+ export { buildBaseHead, buildHreflangAlternates, localeToOgLocale } from '../chunk-TZ3E5BN4.js';
9
+ import '../chunk-QGOPTVV5.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 { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies, getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-4A5IAMNL.js';
12
+ export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies, getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-HSWRYXC7.js';
13
13
  import '../chunk-N2S25NXP.js';
14
14
  import '../chunk-T72DAX7R.js';
15
15
  import '../chunk-DGUM43GV.js';
@@ -1,5 +1,6 @@
1
- import { tanstackHeadAdapter } from '../chunk-BE3JDKE2.js';
1
+ import { tanstackHeadAdapter } from '../chunk-3LXB4VFK.js';
2
2
  import { nextjsHeadAdapter } from '../chunk-HOSHJBPS.js';
3
+ import '../chunk-RV54D2D7.js';
3
4
  import { setHeadAdapter } from '../chunk-GD26FI4J.js';
4
5
  import { RouteId } from '../chunk-OUW6WESU.js';
5
6
  import '../chunk-N2S25NXP.js';