@salla.sa/twilight-theme-engine 1.0.22 → 1.0.24

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 (378) hide show
  1. package/dist/{AddToCartForm-GQMQI2QS.js → AddToCartForm-RPBBQKPK.js} +3 -3
  2. package/dist/{AddToCartForm-GQMQI2QS.js.map → AddToCartForm-RPBBQKPK.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-N5UYXWUR.js → BlogAuthorPage-TVFUV56M.js} +15 -13
  4. package/dist/BlogAuthorPage-TVFUV56M.js.map +1 -0
  5. package/dist/{BlogCategoryPage-TVP7B2B5.js → BlogCategoryPage-IJUXUKS7.js} +15 -13
  6. package/dist/BlogCategoryPage-IJUXUKS7.js.map +1 -0
  7. package/dist/{BlogPage-4THEFN3C.js → BlogPage-PRQXQDUH.js} +13 -11
  8. package/dist/BlogPage-PRQXQDUH.js.map +1 -0
  9. package/dist/{BlogSinglePage-TZQHLDT4.js → BlogSinglePage-FMFV7W3Z.js} +13 -11
  10. package/dist/BlogSinglePage-FMFV7W3Z.js.map +1 -0
  11. package/dist/{BlogTagPage-TDRMBE25.js → BlogTagPage-HTGO6BSN.js} +15 -13
  12. package/dist/BlogTagPage-HTGO6BSN.js.map +1 -0
  13. package/dist/{BrandsPage-I3GPQIEZ.js → BrandsPage-U35JXHJR.js} +13 -11
  14. package/dist/BrandsPage-U35JXHJR.js.map +1 -0
  15. package/dist/{Breadcrumb-MLJJREUC.js → Breadcrumb-MMZI72KB.js} +13 -11
  16. package/dist/Breadcrumb-MMZI72KB.js.map +1 -0
  17. package/dist/{CartItem-UOH6PJ75.js → CartItem-QT2MDGJW.js} +13 -11
  18. package/dist/CartItem-QT2MDGJW.js.map +1 -0
  19. package/dist/{CartSummary-CJZOEJIV.js → CartSummary-DYGLRM55.js} +13 -11
  20. package/dist/CartSummary-DYGLRM55.js.map +1 -0
  21. package/dist/{Copyright-5PRVO5GN.js → Copyright-IJC4R2EC.js} +3 -3
  22. package/dist/{Copyright-5PRVO5GN.js.map → Copyright-IJC4R2EC.js.map} +1 -1
  23. package/dist/{CustomerLayout-E3OWHWIG.js → CustomerLayout-GJVHZWIJ.js} +13 -11
  24. package/dist/CustomerLayout-GJVHZWIJ.js.map +1 -0
  25. package/dist/{Footer-FZEMILEI.js → Footer-B2NQD5SY.js} +13 -11
  26. package/dist/{Footer-FZEMILEI.js.map → Footer-B2NQD5SY.js.map} +1 -1
  27. package/dist/{Header-2OT52BFE.js → Header-4BVMG3XU.js} +6 -6
  28. package/dist/{Header-2OT52BFE.js.map → Header-4BVMG3XU.js.map} +1 -1
  29. package/dist/{LoyaltyPage-UFPBBUWE.js → LoyaltyPage-5BRVSONO.js} +14 -12
  30. package/dist/LoyaltyPage-5BRVSONO.js.map +1 -0
  31. package/dist/{MainMenu-KS3CULI5.js → MainMenu-G2UOWOOA.js} +7 -7
  32. package/dist/{MainMenu-KS3CULI5.js.map → MainMenu-G2UOWOOA.js.map} +1 -1
  33. package/dist/{MasterLayout-DYVOIN5O.js → MasterLayout-5ICJO4UO.js} +13 -11
  34. package/dist/{MasterLayout-DYVOIN5O.js.map → MasterLayout-5ICJO4UO.js.map} +1 -1
  35. package/dist/{MobileMenu-NK7HM3UP.js → MobileMenu-HLOHDYMD.js} +14 -12
  36. package/dist/MobileMenu-HLOHDYMD.js.map +1 -0
  37. package/dist/{NotificationsPage-NMMURGF6.js → NotificationsPage-6EWGCPYG.js} +13 -11
  38. package/dist/NotificationsPage-6EWGCPYG.js.map +1 -0
  39. package/dist/{OrderSinglePage-HV3CH3B3.js → OrderSinglePage-6XI6DREN.js} +14 -12
  40. package/dist/OrderSinglePage-6XI6DREN.js.map +1 -0
  41. package/dist/{OrdersPage-V7R7GDIM.js → OrdersPage-RNOQQBIY.js} +14 -12
  42. package/dist/OrdersPage-RNOQQBIY.js.map +1 -0
  43. package/dist/{PageSingle-RPGUD25P.js → PageSingle-XIHQ5WLE.js} +3 -3
  44. package/dist/{PageSingle-RPGUD25P.js.map → PageSingle-XIHQ5WLE.js.map} +1 -1
  45. package/dist/{ProductDetails-MH6KKUUT.js → ProductDetails-2N6XFO3N.js} +3 -3
  46. package/dist/{ProductDetails-MH6KKUUT.js.map → ProductDetails-2N6XFO3N.js.map} +1 -1
  47. package/dist/{ProfilePage-QAE6LWCE.js → ProfilePage-M4D55XUW.js} +13 -11
  48. package/dist/ProfilePage-M4D55XUW.js.map +1 -0
  49. package/dist/{SeoCartWidget-WYUIW5I6.js → SeoCartWidget-QUYOXYUG.js} +13 -11
  50. package/dist/SeoCartWidget-QUYOXYUG.js.map +1 -0
  51. package/dist/{SettingsPage-UU5M3DH6.js → SettingsPage-5VXVGDGN.js} +13 -11
  52. package/dist/SettingsPage-5VXVGDGN.js.map +1 -0
  53. package/dist/{StoreClosedNotification-BYCN6FFR.js → StoreClosedNotification-FFCHNXJC.js} +14 -12
  54. package/dist/{StoreClosedNotification-BYCN6FFR.js.map → StoreClosedNotification-FFCHNXJC.js.map} +1 -1
  55. package/dist/{TestimonialsPage-LQHMTMUV.js → TestimonialsPage-7JP3OLAU.js} +3 -3
  56. package/dist/{TestimonialsPage-LQHMTMUV.js.map → TestimonialsPage-7JP3OLAU.js.map} +1 -1
  57. package/dist/{ThankYouPage-DKJAYXIX.js → ThankYouPage-6WFBFJQE.js} +13 -11
  58. package/dist/ThankYouPage-6WFBFJQE.js.map +1 -0
  59. package/dist/{WalletPage-CLWEBMG6.js → WalletPage-PQUO54K7.js} +14 -12
  60. package/dist/WalletPage-PQUO54K7.js.map +1 -0
  61. package/dist/{WishlistPage-KKGNJUXR.js → WishlistPage-XHJDEZCY.js} +14 -12
  62. package/dist/WishlistPage-XHJDEZCY.js.map +1 -0
  63. package/dist/api/apps.d.ts +40 -10
  64. package/dist/api/apps.d.ts.map +1 -1
  65. package/dist/api/apps.js +4 -22
  66. package/dist/api/apps.js.map +1 -1
  67. package/dist/api/brands.js +5 -5
  68. package/dist/api/cart.js +5 -5
  69. package/dist/api/category.js +5 -5
  70. package/dist/api/client.d.ts +6 -0
  71. package/dist/api/client.d.ts.map +1 -1
  72. package/dist/api/client.js +3 -3
  73. package/dist/api/home.js +4 -4
  74. package/dist/api/loyalty.js +5 -5
  75. package/dist/api/menu.js +4 -4
  76. package/dist/api/notification.js +4 -4
  77. package/dist/api/order.js +5 -5
  78. package/dist/api/page.js +5 -5
  79. package/dist/api/product.js +5 -5
  80. package/dist/api/profile.js +3 -3
  81. package/dist/api/store.js +4 -4
  82. package/dist/api/translations.js +4 -4
  83. package/dist/api/user.js +4 -4
  84. package/dist/api/wishlist.js +4 -4
  85. package/dist/{chunk-LSZEBJYM.js → chunk-2FDMBW2G.js} +3 -3
  86. package/dist/{chunk-LSZEBJYM.js.map → chunk-2FDMBW2G.js.map} +1 -1
  87. package/dist/{chunk-HNIUGQA3.js → chunk-2JHVZBQ7.js} +3 -3
  88. package/dist/{chunk-HNIUGQA3.js.map → chunk-2JHVZBQ7.js.map} +1 -1
  89. package/dist/{chunk-FUH74TV3.js → chunk-2WNYE75P.js} +39 -4
  90. package/dist/chunk-2WNYE75P.js.map +1 -0
  91. package/dist/{chunk-W7KPAKOF.js → chunk-4EHNAFYR.js} +4 -4
  92. package/dist/{chunk-W7KPAKOF.js.map → chunk-4EHNAFYR.js.map} +1 -1
  93. package/dist/{chunk-XCUNSPXR.js → chunk-53AXOEUK.js} +4 -4
  94. package/dist/{chunk-XCUNSPXR.js.map → chunk-53AXOEUK.js.map} +1 -1
  95. package/dist/{chunk-3SQ6C6AK.js → chunk-6V45LHKF.js} +7 -7
  96. package/dist/{chunk-3SQ6C6AK.js.map → chunk-6V45LHKF.js.map} +1 -1
  97. package/dist/{chunk-L7XGAVXX.js → chunk-ABKWUNWF.js} +5 -5
  98. package/dist/{chunk-L7XGAVXX.js.map → chunk-ABKWUNWF.js.map} +1 -1
  99. package/dist/{chunk-BB46SJTK.js → chunk-AY6KRPHL.js} +3 -3
  100. package/dist/{chunk-BB46SJTK.js.map → chunk-AY6KRPHL.js.map} +1 -1
  101. package/dist/{chunk-7WEGTIL3.js → chunk-BR26I5WV.js} +4 -4
  102. package/dist/{chunk-7WEGTIL3.js.map → chunk-BR26I5WV.js.map} +1 -1
  103. package/dist/chunk-E2FO6OSL.js +136 -0
  104. package/dist/chunk-E2FO6OSL.js.map +1 -0
  105. package/dist/{chunk-ELYMWPBG.js → chunk-EGXKYLBD.js} +4 -4
  106. package/dist/{chunk-ELYMWPBG.js.map → chunk-EGXKYLBD.js.map} +1 -1
  107. package/dist/{chunk-WA4A34G7.js → chunk-EXYGVSRB.js} +3 -3
  108. package/dist/{chunk-WA4A34G7.js.map → chunk-EXYGVSRB.js.map} +1 -1
  109. package/dist/{chunk-D2LY5L4Z.js → chunk-F7TFLW56.js} +8 -7
  110. package/dist/chunk-F7TFLW56.js.map +1 -0
  111. package/dist/{chunk-GCXKFC34.js → chunk-FALZ7SZO.js} +4 -4
  112. package/dist/{chunk-GCXKFC34.js.map → chunk-FALZ7SZO.js.map} +1 -1
  113. package/dist/{chunk-5QTXGXQ4.js → chunk-GVMWHNQ5.js} +4 -4
  114. package/dist/{chunk-5QTXGXQ4.js.map → chunk-GVMWHNQ5.js.map} +1 -1
  115. package/dist/{chunk-PPHY7D7Y.js → chunk-LP3IE6UV.js} +4 -4
  116. package/dist/{chunk-PPHY7D7Y.js.map → chunk-LP3IE6UV.js.map} +1 -1
  117. package/dist/{chunk-SATK6MSP.js → chunk-LSR4FTZJ.js} +4 -4
  118. package/dist/{chunk-SATK6MSP.js.map → chunk-LSR4FTZJ.js.map} +1 -1
  119. package/dist/{chunk-XBYPAJQR.js → chunk-LUFVVUWZ.js} +4 -4
  120. package/dist/{chunk-XBYPAJQR.js.map → chunk-LUFVVUWZ.js.map} +1 -1
  121. package/dist/{chunk-KJB6Z43Q.js → chunk-MAYB5543.js} +116 -13
  122. package/dist/chunk-MAYB5543.js.map +1 -0
  123. package/dist/{chunk-WO2B6HL6.js → chunk-MLJS3VEC.js} +6 -6
  124. package/dist/{chunk-WO2B6HL6.js.map → chunk-MLJS3VEC.js.map} +1 -1
  125. package/dist/{chunk-DKF6GTQ4.js → chunk-NUPOX7ID.js} +4 -4
  126. package/dist/{chunk-DKF6GTQ4.js.map → chunk-NUPOX7ID.js.map} +1 -1
  127. package/dist/{chunk-2XVLUW4F.js → chunk-NXM2FQJ7.js} +3 -3
  128. package/dist/{chunk-2XVLUW4F.js.map → chunk-NXM2FQJ7.js.map} +1 -1
  129. package/dist/chunk-O36J2QLP.js +14 -0
  130. package/dist/{chunk-E3UU6BXX.js.map → chunk-O36J2QLP.js.map} +1 -1
  131. package/dist/{chunk-WI7TR7RK.js → chunk-OPKTJIZQ.js} +10 -2
  132. package/dist/chunk-OPKTJIZQ.js.map +1 -0
  133. package/dist/{chunk-ZBTCQZVO.js → chunk-PQNPO2J3.js} +3 -3
  134. package/dist/{chunk-ZBTCQZVO.js.map → chunk-PQNPO2J3.js.map} +1 -1
  135. package/dist/{chunk-2CRMGVH6.js → chunk-Q5DFI4WQ.js} +3 -3
  136. package/dist/{chunk-2CRMGVH6.js.map → chunk-Q5DFI4WQ.js.map} +1 -1
  137. package/dist/{chunk-MJMMVV2D.js → chunk-QAZXUVOA.js} +4 -4
  138. package/dist/{chunk-MJMMVV2D.js.map → chunk-QAZXUVOA.js.map} +1 -1
  139. package/dist/{chunk-ZBASHNPK.js → chunk-QMT3KQ3V.js} +4 -4
  140. package/dist/{chunk-ZBASHNPK.js.map → chunk-QMT3KQ3V.js.map} +1 -1
  141. package/dist/{chunk-2Z6EOHMB.js → chunk-SBDHJUNI.js} +3 -3
  142. package/dist/{chunk-2Z6EOHMB.js.map → chunk-SBDHJUNI.js.map} +1 -1
  143. package/dist/{chunk-AAAYGTPY.js → chunk-SQCDRDPH.js} +6 -6
  144. package/dist/{chunk-AAAYGTPY.js.map → chunk-SQCDRDPH.js.map} +1 -1
  145. package/dist/{chunk-KVMFR4FN.js → chunk-U3S6RFYL.js} +3 -3
  146. package/dist/{chunk-KVMFR4FN.js.map → chunk-U3S6RFYL.js.map} +1 -1
  147. package/dist/chunk-ULAPZSHY.js +44 -0
  148. package/dist/chunk-ULAPZSHY.js.map +1 -0
  149. package/dist/{chunk-KN6YUQ6L.js → chunk-UNGQL6AB.js} +3 -3
  150. package/dist/{chunk-KN6YUQ6L.js.map → chunk-UNGQL6AB.js.map} +1 -1
  151. package/dist/{chunk-7P3CT2PM.js → chunk-UQ2MAJXN.js} +14 -4
  152. package/dist/chunk-UQ2MAJXN.js.map +1 -0
  153. package/dist/{chunk-F7X2IHA2.js → chunk-URH4CDTN.js} +4 -4
  154. package/dist/{chunk-F7X2IHA2.js.map → chunk-URH4CDTN.js.map} +1 -1
  155. package/dist/{chunk-H3QMQIKP.js → chunk-VIRPVAK3.js} +3 -3
  156. package/dist/{chunk-H3QMQIKP.js.map → chunk-VIRPVAK3.js.map} +1 -1
  157. package/dist/{chunk-KZDPUWPU.js → chunk-WPJEVWKC.js} +247 -156
  158. package/dist/chunk-WPJEVWKC.js.map +1 -0
  159. package/dist/{chunk-MV4FC2WC.js → chunk-YY2CTLTJ.js} +5 -5
  160. package/dist/{chunk-MV4FC2WC.js.map → chunk-YY2CTLTJ.js.map} +1 -1
  161. package/dist/components/cart/CartItem.d.ts +1 -1
  162. package/dist/components/cart/CartItem.d.ts.map +1 -1
  163. package/dist/components/cart/CartSummary.d.ts +1 -1
  164. package/dist/components/cart/CartSummary.d.ts.map +1 -1
  165. package/dist/components/cart/PreOrderNotification.d.ts +1 -1
  166. package/dist/components/cart/PreOrderNotification.d.ts.map +1 -1
  167. package/dist/components/cart/PriceQuoteButton.d.ts +1 -1
  168. package/dist/components/cart/PriceQuoteButton.d.ts.map +1 -1
  169. package/dist/components/cart/index.js +1 -1
  170. package/dist/components/collapse/Collapse.d.ts +3 -3
  171. package/dist/components/collapse/Collapse.d.ts.map +1 -1
  172. package/dist/components/common/Breadcrumb.d.ts +1 -1
  173. package/dist/components/common/Breadcrumb.d.ts.map +1 -1
  174. package/dist/components/common/BreadcrumbJsonLd.d.ts +1 -1
  175. package/dist/components/common/BreadcrumbJsonLd.d.ts.map +1 -1
  176. package/dist/components/common/CurrencySymbol.d.ts +1 -1
  177. package/dist/components/common/CurrencySymbol.d.ts.map +1 -1
  178. package/dist/components/common/DeferredData.d.ts +1 -1
  179. package/dist/components/common/DeferredData.d.ts.map +1 -1
  180. package/dist/components/common/ErrorPage.d.ts +1 -1
  181. package/dist/components/common/ErrorPage.d.ts.map +1 -1
  182. package/dist/components/common/NoContent.d.ts +1 -1
  183. package/dist/components/common/NoContent.d.ts.map +1 -1
  184. package/dist/components/common/index.js +1 -1
  185. package/dist/components/drawer/Drawer.d.ts +3 -3
  186. package/dist/components/drawer/index.js +11 -9
  187. package/dist/components/dropdown/Dropdown.d.ts +5 -5
  188. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  189. package/dist/components/home/FixedProducts.d.ts +1 -1
  190. package/dist/components/home/FixedProducts.d.ts.map +1 -1
  191. package/dist/components/home/ProductsSlider.d.ts +1 -1
  192. package/dist/components/home/ProductsSlider.d.ts.map +1 -1
  193. package/dist/components/home/index.js +14 -12
  194. package/dist/components/layout/Copyright.d.ts +1 -1
  195. package/dist/components/layout/Copyright.d.ts.map +1 -1
  196. package/dist/components/layout/CustomerLayout.d.ts +1 -1
  197. package/dist/components/layout/CustomerLayout.d.ts.map +1 -1
  198. package/dist/components/layout/Footer.d.ts +1 -1
  199. package/dist/components/layout/Footer.d.ts.map +1 -1
  200. package/dist/components/layout/Header.d.ts +1 -1
  201. package/dist/components/layout/Header.d.ts.map +1 -1
  202. package/dist/components/layout/MasterLayout.d.ts +1 -1
  203. package/dist/components/layout/MasterLayout.d.ts.map +1 -1
  204. package/dist/components/layout/WidgetHead.d.ts +1 -1
  205. package/dist/components/layout/WidgetHead.d.ts.map +1 -1
  206. package/dist/components/layout/index.js +5 -5
  207. package/dist/components/modal/ImageModal.d.ts +1 -1
  208. package/dist/components/modal/ImageModal.d.ts.map +1 -1
  209. package/dist/components/modal/Modal.d.ts +3 -3
  210. package/dist/components/navigation/MainMenu.d.ts +1 -1
  211. package/dist/components/navigation/MainMenu.d.ts.map +1 -1
  212. package/dist/components/navigation/MobileMenu.d.ts +1 -1
  213. package/dist/components/navigation/MobileMenu.d.ts.map +1 -1
  214. package/dist/components/product/AddToCartForm.d.ts +1 -1
  215. package/dist/components/product/AddToCartForm.d.ts.map +1 -1
  216. package/dist/components/product/ProductDetails.d.ts +1 -1
  217. package/dist/components/product/ProductDetails.d.ts.map +1 -1
  218. package/dist/components/product/ProductGallery.d.ts +1 -1
  219. package/dist/components/product/ProductGallery.d.ts.map +1 -1
  220. package/dist/components/product/index.js +12 -10
  221. package/dist/components/snippets/AppsSnippets.d.ts +18 -0
  222. package/dist/components/snippets/AppsSnippets.d.ts.map +1 -0
  223. package/dist/components/snippets/index.d.ts +2 -0
  224. package/dist/components/snippets/index.d.ts.map +1 -0
  225. package/dist/components/store/StoreClosedNotification.d.ts +1 -1
  226. package/dist/components/store/StoreClosedNotification.d.ts.map +1 -1
  227. package/dist/components/store/index.js +13 -11
  228. package/dist/components/store/index.js.map +1 -1
  229. package/dist/components/toast/Toaster.d.ts +1 -1
  230. package/dist/components/toast/Toaster.d.ts.map +1 -1
  231. package/dist/document-class-XCYIBISX.js +23 -0
  232. package/dist/{document-class-XXWIYBBT.js.map → document-class-XCYIBISX.js.map} +1 -1
  233. package/dist/hooks/index.js +11 -9
  234. package/dist/hooks/useGtm.js +11 -9
  235. package/dist/hooks/useMoney.js +11 -9
  236. package/dist/hooks/useStore.js +11 -9
  237. package/dist/hooks/useUser.js +5 -5
  238. package/dist/index.js +11 -9
  239. package/dist/index.js.map +1 -1
  240. package/dist/{navigation-SXCM653S.js → navigation-WMJ77B6H.js} +4 -4
  241. package/dist/{navigation-SXCM653S.js.map → navigation-WMJ77B6H.js.map} +1 -1
  242. package/dist/{navigation-B6FATNWM.js → navigation-WXELHHVJ.js} +5 -5
  243. package/dist/{navigation-B6FATNWM.js.map → navigation-WXELHHVJ.js.map} +1 -1
  244. package/dist/nextjs/navigation.d.ts +1 -1
  245. package/dist/nextjs/navigation.d.ts.map +1 -1
  246. package/dist/{not-found-SELXJ4HW.js → not-found-AO2ZXILV.js} +13 -11
  247. package/dist/not-found-AO2ZXILV.js.map +1 -0
  248. package/dist/providers/DocumentClassProvider.d.ts +1 -1
  249. package/dist/providers/DocumentClassProvider.d.ts.map +1 -1
  250. package/dist/providers/TwilightProvider.d.ts.map +1 -1
  251. package/dist/providers/index.js +11 -9
  252. package/dist/routes/account/notifications/NotificationsPage.d.ts +1 -1
  253. package/dist/routes/account/notifications/NotificationsPage.d.ts.map +1 -1
  254. package/dist/routes/account/orders/OrderSinglePage.d.ts +1 -1
  255. package/dist/routes/account/orders/OrderSinglePage.d.ts.map +1 -1
  256. package/dist/routes/account/orders/OrdersPage.d.ts +1 -1
  257. package/dist/routes/account/orders/OrdersPage.d.ts.map +1 -1
  258. package/dist/routes/account/orders.js +6 -6
  259. package/dist/routes/account/profile/ProfilePage.d.ts +1 -1
  260. package/dist/routes/account/profile/ProfilePage.d.ts.map +1 -1
  261. package/dist/routes/account/settings/SettingsPage.d.ts +1 -1
  262. package/dist/routes/account/settings/SettingsPage.d.ts.map +1 -1
  263. package/dist/routes/account/wallet/WalletPage.d.ts +1 -1
  264. package/dist/routes/account/wallet/WalletPage.d.ts.map +1 -1
  265. package/dist/routes/account/wishlist/WishlistPage.d.ts +1 -1
  266. package/dist/routes/account/wishlist/WishlistPage.d.ts.map +1 -1
  267. package/dist/routes/account.js +14 -14
  268. package/dist/routes/blog/BlogAuthorPage.d.ts +1 -1
  269. package/dist/routes/blog/BlogAuthorPage.d.ts.map +1 -1
  270. package/dist/routes/blog/BlogCategoryPage.d.ts +1 -1
  271. package/dist/routes/blog/BlogCategoryPage.d.ts.map +1 -1
  272. package/dist/routes/blog/BlogPage.d.ts +1 -1
  273. package/dist/routes/blog/BlogPage.d.ts.map +1 -1
  274. package/dist/routes/blog/BlogSinglePage.d.ts +1 -1
  275. package/dist/routes/blog/BlogSinglePage.d.ts.map +1 -1
  276. package/dist/routes/blog/BlogTagPage.d.ts +1 -1
  277. package/dist/routes/blog/BlogTagPage.d.ts.map +1 -1
  278. package/dist/routes/blog/components.d.ts +3 -3
  279. package/dist/routes/blog/components.d.ts.map +1 -1
  280. package/dist/routes/blog.js +10 -10
  281. package/dist/routes/brands/BrandsPage.d.ts +1 -1
  282. package/dist/routes/brands/BrandsPage.d.ts.map +1 -1
  283. package/dist/routes/brands/index.d.ts +2 -2
  284. package/dist/routes/brands/index.d.ts.map +1 -1
  285. package/dist/routes/brands.js +6 -6
  286. package/dist/routes/cart/CartPage.d.ts +1 -1
  287. package/dist/routes/cart/CartPage.d.ts.map +1 -1
  288. package/dist/routes/cart.js +19 -17
  289. package/dist/routes/cart.js.map +1 -1
  290. package/dist/routes/home.js +16 -14
  291. package/dist/routes/index.js +3 -3
  292. package/dist/routes/lazy.d.ts +1 -1
  293. package/dist/routes/lazy.d.ts.map +1 -1
  294. package/dist/routes/loyalty/LoyaltyPage.d.ts +1 -1
  295. package/dist/routes/loyalty/LoyaltyPage.d.ts.map +1 -1
  296. package/dist/routes/loyalty.js +6 -6
  297. package/dist/routes/not-found.d.ts +1 -1
  298. package/dist/routes/not-found.d.ts.map +1 -1
  299. package/dist/routes/page/PageSingle.d.ts +1 -1
  300. package/dist/routes/page/PageSingle.d.ts.map +1 -1
  301. package/dist/routes/page.js +6 -6
  302. package/dist/routes/product/ProductPage.d.ts +1 -1
  303. package/dist/routes/product/ProductPage.d.ts.map +1 -1
  304. package/dist/routes/product-listing/ProductListPage.d.ts +1 -1
  305. package/dist/routes/product-listing/ProductListPage.d.ts.map +1 -1
  306. package/dist/routes/product-listing.js +16 -14
  307. package/dist/routes/product-listing.js.map +1 -1
  308. package/dist/routes/product.js +14 -12
  309. package/dist/routes/product.js.map +1 -1
  310. package/dist/routes/root/beforeLoad.d.ts +7 -0
  311. package/dist/routes/root/beforeLoad.d.ts.map +1 -1
  312. package/dist/routes/root/head.d.ts +14 -0
  313. package/dist/routes/root/head.d.ts.map +1 -1
  314. package/dist/routes/seo-redirects.js +3 -3
  315. package/dist/routes/testimonials/TestimonialsPage.d.ts +1 -1
  316. package/dist/routes/testimonials/TestimonialsPage.d.ts.map +1 -1
  317. package/dist/routes/testimonials.js +2 -2
  318. package/dist/routes/thank-you/ThankYouPage.d.ts +1 -1
  319. package/dist/routes/thank-you/ThankYouPage.d.ts.map +1 -1
  320. package/dist/routes/thank-you.js +6 -6
  321. package/dist/skeleton.js +16 -14
  322. package/dist/tanstack/navigation.d.ts +2 -2
  323. package/dist/tanstack/navigation.d.ts.map +1 -1
  324. package/dist/tanstack/router.d.ts +1 -1
  325. package/dist/tanstack/router.d.ts.map +1 -1
  326. package/dist/tanstack.js +14 -12
  327. package/dist/tanstack.js.map +1 -1
  328. package/dist/twilight/context.d.ts +7 -0
  329. package/dist/twilight/context.d.ts.map +1 -1
  330. package/dist/twilight/ensure-context.d.ts.map +1 -1
  331. package/dist/types/salla-sdk.d.ts +15 -0
  332. package/dist/types/salla-sdk.d.ts.map +1 -1
  333. package/dist/utils/app-scope.d.ts +46 -0
  334. package/dist/utils/app-scope.d.ts.map +1 -0
  335. package/dist/utils/index.d.ts +2 -0
  336. package/dist/utils/index.d.ts.map +1 -1
  337. package/dist/utils/index.js +4 -3
  338. package/dist/utils/index.js.map +1 -1
  339. package/dist/utils/inline-script.d.ts +8 -0
  340. package/dist/utils/inline-script.d.ts.map +1 -0
  341. package/dist/utils/runtime-env.d.ts +34 -0
  342. package/dist/utils/runtime-env.d.ts.map +1 -0
  343. package/dist/utils/sdk-helpers.d.ts +4 -2
  344. package/dist/utils/sdk-helpers.d.ts.map +1 -1
  345. package/dist/utils/theme-hook-slots.d.ts +36 -0
  346. package/dist/utils/theme-hook-slots.d.ts.map +1 -0
  347. package/dist/vite/index.js +2 -2
  348. package/package.json +23 -23
  349. package/dist/BlogAuthorPage-N5UYXWUR.js.map +0 -1
  350. package/dist/BlogCategoryPage-TVP7B2B5.js.map +0 -1
  351. package/dist/BlogPage-4THEFN3C.js.map +0 -1
  352. package/dist/BlogSinglePage-TZQHLDT4.js.map +0 -1
  353. package/dist/BlogTagPage-TDRMBE25.js.map +0 -1
  354. package/dist/BrandsPage-I3GPQIEZ.js.map +0 -1
  355. package/dist/Breadcrumb-MLJJREUC.js.map +0 -1
  356. package/dist/CartItem-UOH6PJ75.js.map +0 -1
  357. package/dist/CartSummary-CJZOEJIV.js.map +0 -1
  358. package/dist/CustomerLayout-E3OWHWIG.js.map +0 -1
  359. package/dist/LoyaltyPage-UFPBBUWE.js.map +0 -1
  360. package/dist/MobileMenu-NK7HM3UP.js.map +0 -1
  361. package/dist/NotificationsPage-NMMURGF6.js.map +0 -1
  362. package/dist/OrderSinglePage-HV3CH3B3.js.map +0 -1
  363. package/dist/OrdersPage-V7R7GDIM.js.map +0 -1
  364. package/dist/ProfilePage-QAE6LWCE.js.map +0 -1
  365. package/dist/SeoCartWidget-WYUIW5I6.js.map +0 -1
  366. package/dist/SettingsPage-UU5M3DH6.js.map +0 -1
  367. package/dist/ThankYouPage-DKJAYXIX.js.map +0 -1
  368. package/dist/WalletPage-CLWEBMG6.js.map +0 -1
  369. package/dist/WishlistPage-KKGNJUXR.js.map +0 -1
  370. package/dist/chunk-7P3CT2PM.js.map +0 -1
  371. package/dist/chunk-D2LY5L4Z.js.map +0 -1
  372. package/dist/chunk-E3UU6BXX.js +0 -14
  373. package/dist/chunk-FUH74TV3.js.map +0 -1
  374. package/dist/chunk-KJB6Z43Q.js.map +0 -1
  375. package/dist/chunk-KZDPUWPU.js.map +0 -1
  376. package/dist/chunk-WI7TR7RK.js.map +0 -1
  377. package/dist/document-class-XXWIYBBT.js +0 -21
  378. package/dist/not-found-SELXJ4HW.js.map +0 -1
package/dist/api/menu.js CHANGED
@@ -1,7 +1,7 @@
1
- export { menu } from '../chunk-XCUNSPXR.js';
2
- import '../chunk-D2LY5L4Z.js';
3
- import '../chunk-FUH74TV3.js';
4
- import '../chunk-WI7TR7RK.js';
1
+ export { menu } from '../chunk-53AXOEUK.js';
2
+ import '../chunk-F7TFLW56.js';
3
+ import '../chunk-2WNYE75P.js';
4
+ import '../chunk-OPKTJIZQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=menu.js.map
@@ -1,7 +1,7 @@
1
- export { notification } from '../chunk-KVMFR4FN.js';
2
- import '../chunk-D2LY5L4Z.js';
3
- import '../chunk-FUH74TV3.js';
4
- import '../chunk-WI7TR7RK.js';
1
+ export { notification } from '../chunk-U3S6RFYL.js';
2
+ import '../chunk-F7TFLW56.js';
3
+ import '../chunk-2WNYE75P.js';
4
+ import '../chunk-OPKTJIZQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=notification.js.map
package/dist/api/order.js CHANGED
@@ -1,9 +1,9 @@
1
- export { order } from '../chunk-5QTXGXQ4.js';
2
- import '../chunk-ZBTCQZVO.js';
1
+ export { order } from '../chunk-GVMWHNQ5.js';
2
+ import '../chunk-PQNPO2J3.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-D2LY5L4Z.js';
5
- import '../chunk-FUH74TV3.js';
6
- import '../chunk-WI7TR7RK.js';
4
+ import '../chunk-F7TFLW56.js';
5
+ import '../chunk-2WNYE75P.js';
6
+ import '../chunk-OPKTJIZQ.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
package/dist/api/page.js CHANGED
@@ -1,9 +1,9 @@
1
- export { page } from '../chunk-F7X2IHA2.js';
2
- import '../chunk-ZBTCQZVO.js';
1
+ export { page } from '../chunk-URH4CDTN.js';
2
+ import '../chunk-PQNPO2J3.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-D2LY5L4Z.js';
5
- import '../chunk-FUH74TV3.js';
6
- import '../chunk-WI7TR7RK.js';
4
+ import '../chunk-F7TFLW56.js';
5
+ import '../chunk-2WNYE75P.js';
6
+ import '../chunk-OPKTJIZQ.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
@@ -1,9 +1,9 @@
1
- export { product } from '../chunk-GCXKFC34.js';
2
- import '../chunk-ZBTCQZVO.js';
1
+ export { product } from '../chunk-FALZ7SZO.js';
2
+ import '../chunk-PQNPO2J3.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-D2LY5L4Z.js';
5
- import '../chunk-FUH74TV3.js';
6
- import '../chunk-WI7TR7RK.js';
4
+ import '../chunk-F7TFLW56.js';
5
+ import '../chunk-2WNYE75P.js';
6
+ import '../chunk-OPKTJIZQ.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
@@ -1,6 +1,6 @@
1
- import { api } from '../chunk-D2LY5L4Z.js';
2
- import '../chunk-FUH74TV3.js';
3
- import '../chunk-WI7TR7RK.js';
1
+ import { api } from '../chunk-F7TFLW56.js';
2
+ import '../chunk-2WNYE75P.js';
3
+ import '../chunk-OPKTJIZQ.js';
4
4
  import '../chunk-T72DAX7R.js';
5
5
  import '../chunk-DGUM43GV.js';
6
6
 
package/dist/api/store.js CHANGED
@@ -1,7 +1,7 @@
1
- export { resolveStoreIdentifier, store } from '../chunk-PPHY7D7Y.js';
2
- import '../chunk-D2LY5L4Z.js';
3
- import '../chunk-FUH74TV3.js';
4
- import '../chunk-WI7TR7RK.js';
1
+ export { resolveStoreIdentifier, store } from '../chunk-LP3IE6UV.js';
2
+ import '../chunk-F7TFLW56.js';
3
+ import '../chunk-2WNYE75P.js';
4
+ import '../chunk-OPKTJIZQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=store.js.map
@@ -1,7 +1,7 @@
1
- export { translations } from '../chunk-WA4A34G7.js';
2
- import '../chunk-D2LY5L4Z.js';
3
- import '../chunk-FUH74TV3.js';
4
- import '../chunk-WI7TR7RK.js';
1
+ export { translations } from '../chunk-EXYGVSRB.js';
2
+ import '../chunk-F7TFLW56.js';
3
+ import '../chunk-2WNYE75P.js';
4
+ import '../chunk-OPKTJIZQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=translations.js.map
package/dist/api/user.js CHANGED
@@ -1,7 +1,7 @@
1
- export { user } from '../chunk-HNIUGQA3.js';
2
- import '../chunk-D2LY5L4Z.js';
3
- import '../chunk-FUH74TV3.js';
4
- import '../chunk-WI7TR7RK.js';
1
+ export { user } from '../chunk-2JHVZBQ7.js';
2
+ import '../chunk-F7TFLW56.js';
3
+ import '../chunk-2WNYE75P.js';
4
+ import '../chunk-OPKTJIZQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=user.js.map
@@ -1,7 +1,7 @@
1
- export { wishlist } from '../chunk-2Z6EOHMB.js';
2
- import '../chunk-D2LY5L4Z.js';
3
- import '../chunk-FUH74TV3.js';
4
- import '../chunk-WI7TR7RK.js';
1
+ export { wishlist } from '../chunk-SBDHJUNI.js';
2
+ import '../chunk-F7TFLW56.js';
3
+ import '../chunk-2WNYE75P.js';
4
+ import '../chunk-OPKTJIZQ.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=wishlist.js.map
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-D2LY5L4Z.js';
1
+ import { api } from './chunk-F7TFLW56.js';
2
2
  import { queryOptions } from '@tanstack/react-query';
3
3
 
4
4
  var home = {
@@ -15,5 +15,5 @@ var home = {
15
15
  };
16
16
 
17
17
  export { home };
18
- //# sourceMappingURL=chunk-LSZEBJYM.js.map
19
- //# sourceMappingURL=chunk-LSZEBJYM.js.map
18
+ //# sourceMappingURL=chunk-2FDMBW2G.js.map
19
+ //# sourceMappingURL=chunk-2FDMBW2G.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/home.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,YAAY,YAA0C;AACpD,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,gBAAgB,EAAE,IAAA,EAAoC;AACrF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,MACV,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,YAAY,CAAA;AAAA,MAC/B,OAAA,EAAS,MAAM,IAAA,CAAK,UAAA;AAAW,KAChC;AAAA;AAEP","file":"chunk-LSZEBJYM.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { HomeComponentData } from '../types';\n\nexport const home = {\n components: async (): Promise<HomeComponentData[]> => {\n const { data } = await api.get('component/list').json<{ data: HomeComponentData[] }>();\n return data ?? [];\n },\n\n queries: {\n components: () =>\n queryOptions({\n queryKey: ['home', 'components'],\n queryFn: () => home.components(),\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/home.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,YAAY,YAA0C;AACpD,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,gBAAgB,EAAE,IAAA,EAAoC;AACrF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,MACV,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,YAAY,CAAA;AAAA,MAC/B,OAAA,EAAS,MAAM,IAAA,CAAK,UAAA;AAAW,KAChC;AAAA;AAEP","file":"chunk-2FDMBW2G.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { HomeComponentData } from '../types';\n\nexport const home = {\n components: async (): Promise<HomeComponentData[]> => {\n const { data } = await api.get('component/list').json<{ data: HomeComponentData[] }>();\n return data ?? [];\n },\n\n queries: {\n components: () =>\n queryOptions({\n queryKey: ['home', 'components'],\n queryFn: () => home.components(),\n }),\n },\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-D2LY5L4Z.js';
1
+ import { api } from './chunk-F7TFLW56.js';
2
2
  import { queryOptions } from '@tanstack/react-query';
3
3
 
4
4
  var user = {
@@ -19,5 +19,5 @@ var user = {
19
19
  };
20
20
 
21
21
  export { user };
22
- //# sourceMappingURL=chunk-HNIUGQA3.js.map
23
- //# sourceMappingURL=chunk-HNIUGQA3.js.map
22
+ //# sourceMappingURL=chunk-2JHVZBQ7.js.map
23
+ //# sourceMappingURL=chunk-2JHVZBQ7.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/user.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,KAAK,YAAkC;AACrC,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,GAAA,CACV,GAAA,CAAI,WAAW,CAAA,CACf,MAAmC,CACnC,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,CAAE,IAAA,EAAM,IAAA,EAAM,QAAgB,CAAE,CAAA;AAAA,IACvD,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,sBAAsB,KAAK,CAAA;AACzC,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MACP,YAAA,CAA0B;AAAA,MACxB,QAAA,EAAU,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,MAC5B,SAAS,IAAA,CAAK;AAAA,KACf;AAAA;AAEP","file":"chunk-HNIUGQA3.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { User } from '../types';\n\nexport const user = {\n get: async (): Promise<User | null> => {\n try {\n return await api\n .get('auth/user')\n .json<{ data: Omit<User, 'type'> }>()\n .then((r) => ({ ...r.data, type: 'user' as const }));\n } catch (error) {\n console.debug('[user.get] Failed:', error);\n return null;\n }\n },\n\n queries: {\n current: () =>\n queryOptions<User | null>({\n queryKey: ['user', 'current'],\n queryFn: user.get,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/user.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,KAAK,YAAkC;AACrC,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,GAAA,CACV,GAAA,CAAI,WAAW,CAAA,CACf,MAAmC,CACnC,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,CAAE,IAAA,EAAM,IAAA,EAAM,QAAgB,CAAE,CAAA;AAAA,IACvD,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,sBAAsB,KAAK,CAAA;AACzC,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MACP,YAAA,CAA0B;AAAA,MACxB,QAAA,EAAU,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,MAC5B,SAAS,IAAA,CAAK;AAAA,KACf;AAAA;AAEP","file":"chunk-2JHVZBQ7.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { User } from '../types';\n\nexport const user = {\n get: async (): Promise<User | null> => {\n try {\n return await api\n .get('auth/user')\n .json<{ data: Omit<User, 'type'> }>()\n .then((r) => ({ ...r.data, type: 'user' as const }));\n } catch (error) {\n console.debug('[user.get] Failed:', error);\n return null;\n }\n },\n\n queries: {\n current: () =>\n queryOptions<User | null>({\n queryKey: ['user', 'current'],\n queryFn: user.get,\n }),\n },\n};\n"]}
@@ -61,6 +61,39 @@ function syncScopeCookie() {
61
61
  return scopeId === void 0 ? false : writeScopeCookie(scopeId);
62
62
  }
63
63
 
64
+ // src/utils/inline-script.ts
65
+ function escapeForInlineScript(value) {
66
+ return value.replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
67
+ }
68
+
69
+ // src/utils/runtime-env.ts
70
+ var RUNTIME_ENV_KEY = "__SALLA_RUNTIME_ENV__";
71
+ function readEnv(key) {
72
+ try {
73
+ const vite = import.meta.env?.[key];
74
+ if (vite) return vite;
75
+ } catch {
76
+ }
77
+ return typeof process !== "undefined" ? process.env?.[key] : void 0;
78
+ }
79
+ function resolveRuntimeEnv() {
80
+ const injected = getInjectedRuntimeEnv();
81
+ return {
82
+ apiBase: injected.apiBase || readEnv("VITE_API_URL"),
83
+ storeIdentifier: injected.storeIdentifier || readEnv("VITE_STORE_DOMAIN")
84
+ };
85
+ }
86
+ function getInjectedRuntimeEnv() {
87
+ const holder = globalThis;
88
+ return holder[RUNTIME_ENV_KEY] ?? {};
89
+ }
90
+ function renderRuntimeEnvScript(env = resolveRuntimeEnv()) {
91
+ const set = Object.entries(env).filter(([, value]) => Boolean(value));
92
+ if (!set.length) return null;
93
+ const json = escapeForInlineScript(JSON.stringify(Object.fromEntries(set)));
94
+ return `window.${RUNTIME_ENV_KEY}=${json};`;
95
+ }
96
+
64
97
  // src/utils/sdk-helpers.ts
65
98
  var isBrowser = typeof window !== "undefined";
66
99
  function getStoreIdentifier(explicit) {
@@ -70,8 +103,10 @@ function getStoreIdentifier(explicit) {
70
103
  if (viteEnv) return viteEnv;
71
104
  } catch {
72
105
  }
106
+ const injected = getInjectedRuntimeEnv().storeIdentifier;
107
+ if (injected) return injected;
73
108
  if (isBrowser) return window.location.host;
74
- return typeof process !== "undefined" && process.env?.STORE_DOMAIN || "";
109
+ return typeof process !== "undefined" && (process.env?.VITE_STORE_DOMAIN || process.env?.STORE_DOMAIN) || "";
75
110
  }
76
111
  function getSallaSDK() {
77
112
  if (!isBrowser) return void 0;
@@ -88,6 +123,6 @@ function syncSdkLocale(locale) {
88
123
  }
89
124
  }
90
125
 
91
- export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractScopeIdFromCookies, extractTokenFromCookies, getSallaSDK, getStoreIdentifier, readSdkScopeId, syncScopeCookie, syncSdkLocale };
92
- //# sourceMappingURL=chunk-FUH74TV3.js.map
93
- //# sourceMappingURL=chunk-FUH74TV3.js.map
126
+ export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, escapeForInlineScript, extractScopeIdFromCookies, extractTokenFromCookies, getSallaSDK, getStoreIdentifier, readEnv, readSdkScopeId, renderRuntimeEnvScript, syncScopeCookie, syncSdkLocale };
127
+ //# sourceMappingURL=chunk-2WNYE75P.js.map
128
+ //# sourceMappingURL=chunk-2WNYE75P.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/utils/cookies.ts","../src/utils/inline-script.ts","../src/utils/runtime-env.ts","../src/utils/sdk-helpers.ts"],"names":[],"mappings":"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","file":"chunk-2WNYE75P.js","sourcesContent":["export const AUTH_TOKEN_COOKIE_NAME = 'token';\nexport const SCOPE_COOKIE_NAME = 'scope';\n\n/**\n * Deletes the auth `token` cookie. This cookie is written client-side by the theme\n * (TwilightProvider), not by the SDK — `salla.cookie.clearAll()` only clears its own\n * allowlist and leaves `token` behind — so logout must clear it here. Client-only.\n */\nexport function clearAuthTokenCookie(): void {\n if (typeof document === 'undefined') return;\n document.cookie = `${AUTH_TOKEN_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;\n}\n\nexport function extractTokenFromCookies(\n cookieHeader: string | null,\n cookieName: string\n): string | null {\n if (!cookieHeader) return null;\n\n const prefix = `${cookieName}=`;\n let start = 0;\n\n while (start < cookieHeader.length) {\n const idx = cookieHeader.indexOf(prefix, start);\n if (idx === -1) return null;\n\n const prevChar = idx > 0 ? cookieHeader[idx - 1] : '';\n if (prevChar === '' || prevChar === ';' || prevChar === ' ') {\n let end = cookieHeader.indexOf(';', idx);\n if (end === -1) end = cookieHeader.length;\n\n const value = cookieHeader.slice(idx + prefix.length, end).trim();\n try {\n return decodeURIComponent(value) || null;\n } catch {\n return value || null;\n }\n }\n\n start = idx + prefix.length;\n }\n\n return null;\n}\n\n/**\n * Reads the active scope id from the `scope` cookie, which Salla persists as a\n * JSON object (e.g. `{\"id\":123,\"type\":\"branch\"}`). Returns null when the cookie\n * is missing or unparseable. Used server-side, where `salla.storage` is absent.\n */\nexport function extractScopeIdFromCookies(cookieHeader: string | null): string | null {\n const raw = extractTokenFromCookies(cookieHeader, SCOPE_COOKIE_NAME);\n if (!raw) return null;\n try {\n const scope = JSON.parse(raw) as { id?: number | string | null };\n return scope?.id != null ? String(scope.id) : null;\n } catch {\n return null;\n }\n}\n\n/**\n * The branch the Salla SDK persisted in its storage (`salla.storage.get('scope')`),\n * which it stores either as `{ id, type }` or as a bare id.\n *\n * Returns `undefined` when the SDK storage API isn't ready yet — deliberately\n * distinct from `null` (\"no branch selected\"), so callers can't mistake a\n * not-yet-hydrated SDK for a cleared selection. Client-only.\n */\nexport function readSdkScopeId(): string | null | undefined {\n const storage = typeof window !== 'undefined' ? window.salla?.storage : undefined;\n if (typeof storage?.get !== 'function') return undefined;\n\n const scope = storage.get(SCOPE_COOKIE_NAME) as\n | { id?: number | string | null }\n | number\n | string\n | null;\n const id = typeof scope === 'object' && scope !== null ? scope.id : scope;\n return id != null ? String(id) : null;\n}\n\n/** One year — the SDK keeps the selected branch in localStorage indefinitely. */\nconst SCOPE_COOKIE_MAX_AGE = 60 * 60 * 24 * 365;\n\n/**\n * Mirrors the branch the Salla SDK selected into the `scope` cookie so the SERVER\n * can see it. The SDK persists the selection in localStorage ONLY and writes no\n * cookie, so without this the server computes scope=null for every visitor who\n * picked a branch while the client computes the branch id — the dehydrated settings\n * query key never matches and the client refetches store settings on every page\n * load (SAL-122).\n *\n * Written in the SDK's own JSON shape so {@link extractScopeIdFromCookies} parses it.\n * Returns true when the cookie was (re)written. Client-only; no-op on the server.\n */\nexport function writeScopeCookie(scopeId: string | null): boolean {\n if (typeof document === 'undefined') return false;\n if (extractScopeIdFromCookies(document.cookie) === scopeId) return false;\n\n if (scopeId == null) {\n document.cookie = `${SCOPE_COOKIE_NAME}=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/`;\n return true;\n }\n\n const value = encodeURIComponent(JSON.stringify({ id: scopeId }));\n document.cookie = `${SCOPE_COOKIE_NAME}=${value}; path=/; max-age=${SCOPE_COOKIE_MAX_AGE}; samesite=lax`;\n return true;\n}\n\n/**\n * Keeps the `scope` cookie in step with the SDK's selected branch. Call on every\n * client navigation; it no-ops while the SDK storage API is still hydrating so a\n * late-loading SDK can't wipe a valid cookie.\n */\nexport function syncScopeCookie(): boolean {\n const scopeId = readSdkScopeId();\n return scopeId === undefined ? false : writeScopeCookie(scopeId);\n}\n","/**\n * Escape a JSON-stringified value for safe embedding inside an inline `<script>` body.\n *\n * The head injects script bodies raw, so a `</script>` inside partner-set data would break out\n * of the tag; U+2028/U+2029 are line terminators in JS but not in JSON, so they must go too.\n */\nexport function escapeForInlineScript(value: string): string {\n return value\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/&/g, '\\\\u0026')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029');\n}\n","import { escapeForInlineScript } from './inline-script';\n\n/** Where `rootHead` publishes the SSR-resolved env for the browser bundle to read. */\nconst RUNTIME_ENV_KEY = '__SALLA_RUNTIME_ENV__';\n\n/** The env values that must agree between the SSR render and the hydrated client. */\nexport interface RuntimeEnv {\n /** Store API base — `VITE_API_URL`. */\n apiBase?: string;\n /** Store identifier — `VITE_STORE_DOMAIN`. */\n storeIdentifier?: string;\n}\n\n/**\n * A build-time `import.meta.env` var, falling back to the worker's runtime `process.env`\n * (wrangler `vars`, exposed via the `nodejs_compat_populate_process_env` flag).\n */\nexport function readEnv(key: string): string | undefined {\n try {\n const vite = (import.meta as unknown as { env?: Record<string, string | undefined> }).env?.[\n key\n ];\n if (vite) return vite;\n } catch {\n /* import.meta.env not available in all environments */\n }\n return typeof process !== 'undefined' ? process.env?.[key] : undefined;\n}\n\n/**\n * What this runtime resolves from its own env — server-side that includes the worker vars.\n * Prefers what the server already published, so re-rendering the head during hydration yields\n * the same script instead of dropping it.\n */\nexport function resolveRuntimeEnv(): RuntimeEnv {\n const injected = getInjectedRuntimeEnv();\n return {\n apiBase: injected.apiBase || readEnv('VITE_API_URL'),\n storeIdentifier: injected.storeIdentifier || readEnv('VITE_STORE_DOMAIN'),\n };\n}\n\n/**\n * The env the SSR worker resolved, as handed to the browser by `rootHead`. Empty on the server\n * and on a client whose head carried nothing.\n *\n * Worker `vars` are *runtime* env: they live in `process.env` on the server only, while\n * `import.meta.env` is substituted at build time. A bundle built without those vars therefore\n * sees `undefined` in the browser and silently falls back to the production defaults — SSR\n * would render off the configured backend while every post-hydration fetch hits another one.\n */\nexport function getInjectedRuntimeEnv(): RuntimeEnv {\n const holder = globalThis as typeof globalThis & { [RUNTIME_ENV_KEY]?: RuntimeEnv };\n return holder[RUNTIME_ENV_KEY] ?? {};\n}\n\n/**\n * Inline head `<script>` body publishing the server-resolved env, or null when there is nothing\n * to publish (no overrides configured — the defaults already agree on both sides).\n */\nexport function renderRuntimeEnvScript(env: RuntimeEnv = resolveRuntimeEnv()): string | null {\n const set = Object.entries(env).filter(([, value]) => Boolean(value));\n if (!set.length) return null;\n const json = escapeForInlineScript(JSON.stringify(Object.fromEntries(set)));\n return `window.${RUNTIME_ENV_KEY}=${json};`;\n}\n","export type { StoreContext } from '../api/store';\nimport { getInjectedRuntimeEnv } from './runtime-env';\n\nconst isBrowser = typeof window !== 'undefined';\n\n/**\n * Get the store identifier. Priority: explicit > VITE_STORE_DOMAIN (build-time) > the identifier\n * the SSR worker resolved (published into the head — wrangler `vars` are server-only, so\n * without this the browser would fall back to its own host and request a different store than\n * the one that was rendered) > window.location.host > runtime env (process.env).\n */\nexport function getStoreIdentifier(explicit?: string): string {\n if (explicit) return explicit;\n try {\n const viteEnv = (import.meta as any).env?.VITE_STORE_DOMAIN;\n if (viteEnv) return viteEnv;\n } catch {\n /* import.meta not available in all environments */\n }\n const injected = getInjectedRuntimeEnv().storeIdentifier;\n if (injected) return injected;\n if (isBrowser) return window.location.host;\n return (\n (typeof process !== 'undefined' &&\n (process.env?.VITE_STORE_DOMAIN || process.env?.STORE_DOMAIN)) ||\n ''\n );\n}\n\n/**\n * Get Salla SDK instance if available\n */\nexport function getSallaSDK(): typeof window.salla | undefined {\n if (!isBrowser) return undefined;\n return window.salla;\n}\n\n/**\n * Push the active route locale onto the Salla SDK.\n *\n * Why this is needed (and why it must run on every navigation):\n * - The SDK seeds its locale from `navigator.language` — the theme sets no `s-lang`\n * cookie or `window.locale` — so an English browser starts the SDK in `en` even on\n * an `/ar` store.\n * - The SDK fixes its axios `accept-language` header ONCE, at init. `salla.lang.setLocale`\n * only swaps UI translations (it never touches the header), and `salla.init()` is a\n * no-op after `Salla.status === 'ready'`, so the header never refreshes on its own.\n * - `profile::info.fetched` (login / profile refresh on navigation) overrides the header\n * to the *account's* language.\n *\n * Net result without this: `salla.api.*` calls (cart/product details) return data in the\n * wrong locale — e.g. English cart item names on `/ar/cart` — intermittently, depending on\n * load order and whether a profile fetch ran. Re-asserting the URL locale here keeps the\n * header correct. No-op on the server and until the SDK exposes the methods.\n */\nexport function syncSdkLocale(locale: string): void {\n const sdk = getSallaSDK();\n if (!sdk || !locale) return;\n try {\n sdk.lang?.setLocale?.(locale);\n sdk.api?.setHeader?.('accept-language', locale);\n // The localization modal swaps `/${user.language_code}/` in the URL on submit;\n // the SDK never sets this locally, so without it the switch reloads the same page.\n sdk.config?.set?.('user.language_code', locale);\n } catch {\n // SDK partially loaded — the header is re-asserted on the next navigation.\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { orThrow } from './chunk-ZBTCQZVO.js';
2
- import { getAuthToken, api } from './chunk-D2LY5L4Z.js';
1
+ import { orThrow } from './chunk-PQNPO2J3.js';
2
+ import { getAuthToken, api } from './chunk-F7TFLW56.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var loyalty = {
@@ -29,5 +29,5 @@ var loyalty = {
29
29
  };
30
30
 
31
31
  export { loyalty };
32
- //# sourceMappingURL=chunk-W7KPAKOF.js.map
33
- //# sourceMappingURL=chunk-W7KPAKOF.js.map
32
+ //# sourceMappingURL=chunk-4EHNAFYR.js.map
33
+ //# sourceMappingURL=chunk-4EHNAFYR.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/loyalty.ts"],"names":[],"mappings":";;;;AAKO,IAAM,OAAA,GAAU;AAAA,EACrB,KAAK,YAA8B;AACjC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,SAAS,EAAE,IAAA,EAAwB;AAClE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,UAAA,EAAY,MAAwB,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAA;AAAA,EAEzD,kBAAkB,YAA6B;AAC7C,IAAA,MAAM,WAAW,MAAM,GAAA,CAAI,GAAA,CAAI,gBAAgB,EAAE,IAAA,EAA2B;AAC5E,IAAA,OAAO,QAAA,CAAS,OAAA;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,MACN,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,SAAS,CAAA;AAAA,MACpB,OAAA,EAAS,MAAM,OAAA,CAAQ,GAAA;AAAI,KAC5B,CAAA;AAAA,IACH,MAAA,EAAQ,MACN,YAAA,CAA4B;AAAA,MAC1B,QAAA,EAAU,CAAC,SAAA,EAAW,QAAQ,CAAA;AAAA,MAC9B,OAAA,EAAS,MAAM,OAAA,CAAQ,gBAAA,EAAiB;AAAA;AAAA;AAAA,MAGxC,OAAA,EAAS,CAAC,CAAC,YAAA,EAAa;AAAA,MACxB,SAAA,EAAW;AAAA,KACZ;AAAA;AAEP","file":"chunk-W7KPAKOF.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getAuthToken } from './client';\nimport type { Loyalty, PointBalanceResponse } from '../routes/loyalty/types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const loyalty = {\n get: async (): Promise<Loyalty> => {\n const { data } = await api.get('loyalty').json<{ data: Loyalty }>();\n return data;\n },\n\n getOrThrow: (): Promise<Loyalty> => orThrow(loyalty.get()),\n\n getPointsBalance: async (): Promise<number> => {\n const response = await api.get('balance/points').json<PointBalanceResponse>();\n return response.balance;\n },\n\n queries: {\n detail: () =>\n queryOptions({\n queryKey: ['loyalty'],\n queryFn: () => loyalty.get(),\n }),\n points: () =>\n queryOptions<number | null>({\n queryKey: ['loyalty', 'points'],\n queryFn: () => loyalty.getPointsBalance(),\n // Points are customer-scoped; skip for guests (no token) — the request would\n // otherwise 400 with `token_not_provided`.\n enabled: !!getAuthToken(),\n staleTime: 30_000,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/loyalty.ts"],"names":[],"mappings":";;;;AAKO,IAAM,OAAA,GAAU;AAAA,EACrB,KAAK,YAA8B;AACjC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,SAAS,EAAE,IAAA,EAAwB;AAClE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,UAAA,EAAY,MAAwB,OAAA,CAAQ,OAAA,CAAQ,KAAK,CAAA;AAAA,EAEzD,kBAAkB,YAA6B;AAC7C,IAAA,MAAM,WAAW,MAAM,GAAA,CAAI,GAAA,CAAI,gBAAgB,EAAE,IAAA,EAA2B;AAC5E,IAAA,OAAO,QAAA,CAAS,OAAA;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,MACN,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,SAAS,CAAA;AAAA,MACpB,OAAA,EAAS,MAAM,OAAA,CAAQ,GAAA;AAAI,KAC5B,CAAA;AAAA,IACH,MAAA,EAAQ,MACN,YAAA,CAA4B;AAAA,MAC1B,QAAA,EAAU,CAAC,SAAA,EAAW,QAAQ,CAAA;AAAA,MAC9B,OAAA,EAAS,MAAM,OAAA,CAAQ,gBAAA,EAAiB;AAAA;AAAA;AAAA,MAGxC,OAAA,EAAS,CAAC,CAAC,YAAA,EAAa;AAAA,MACxB,SAAA,EAAW;AAAA,KACZ;AAAA;AAEP","file":"chunk-4EHNAFYR.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getAuthToken } from './client';\nimport type { Loyalty, PointBalanceResponse } from '../routes/loyalty/types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const loyalty = {\n get: async (): Promise<Loyalty> => {\n const { data } = await api.get('loyalty').json<{ data: Loyalty }>();\n return data;\n },\n\n getOrThrow: (): Promise<Loyalty> => orThrow(loyalty.get()),\n\n getPointsBalance: async (): Promise<number> => {\n const response = await api.get('balance/points').json<PointBalanceResponse>();\n return response.balance;\n },\n\n queries: {\n detail: () =>\n queryOptions({\n queryKey: ['loyalty'],\n queryFn: () => loyalty.get(),\n }),\n points: () =>\n queryOptions<number | null>({\n queryKey: ['loyalty', 'points'],\n queryFn: () => loyalty.getPointsBalance(),\n // Points are customer-scoped; skip for guests (no token) — the request would\n // otherwise 400 with `token_not_provided`.\n enabled: !!getAuthToken(),\n staleTime: 30_000,\n }),\n },\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { api } from './chunk-D2LY5L4Z.js';
2
- import { getTwilightContext } from './chunk-WI7TR7RK.js';
1
+ import { api } from './chunk-F7TFLW56.js';
2
+ import { getTwilightContext } from './chunk-OPKTJIZQ.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var menu = {
@@ -23,5 +23,5 @@ var menu = {
23
23
  };
24
24
 
25
25
  export { menu };
26
- //# sourceMappingURL=chunk-XCUNSPXR.js.map
27
- //# sourceMappingURL=chunk-XCUNSPXR.js.map
26
+ //# sourceMappingURL=chunk-53AXOEUK.js.map
27
+ //# sourceMappingURL=chunk-53AXOEUK.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/menu.ts"],"names":[],"mappings":";;;;AAKO,IAAM,IAAA,GAAO;AAAA,EAClB,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,MACN,YAAA,CAAa;AAAA,MACX,UAAU,CAAC,OAAA,EAAS,QAAA,EAAU,kBAAA,GAAqB,MAAM,CAAA;AAAA,MACzD,OAAA,EAAS,MAAM,IAAA,CAAK,MAAA,EAAO;AAAA,MAC3B,SAAA,EAAW,IAAI,EAAA,GAAK;AAAA,KACrB;AAAA;AAEP","file":"chunk-XCUNSPXR.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport { getTwilightContext } from '../twilight/context';\nimport type { MenuItem } from '../types';\n\nexport const menu = {\n header: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/header?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n footer: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/footer?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n queries: {\n header: () =>\n queryOptions({\n queryKey: ['menus', 'header', getTwilightContext().locale],\n queryFn: () => menu.header(),\n staleTime: 5 * 60 * 1000,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/menu.ts"],"names":[],"mappings":";;;;AAKO,IAAM,IAAA,GAAO;AAAA,EAClB,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,MACN,YAAA,CAAa;AAAA,MACX,UAAU,CAAC,OAAA,EAAS,QAAA,EAAU,kBAAA,GAAqB,MAAM,CAAA;AAAA,MACzD,OAAA,EAAS,MAAM,IAAA,CAAK,MAAA,EAAO;AAAA,MAC3B,SAAA,EAAW,IAAI,EAAA,GAAK;AAAA,KACrB;AAAA;AAEP","file":"chunk-53AXOEUK.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport { getTwilightContext } from '../twilight/context';\nimport type { MenuItem } from '../types';\n\nexport const menu = {\n header: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/header?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n footer: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/footer?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n queries: {\n header: () =>\n queryOptions({\n queryKey: ['menus', 'header', getTwilightContext().locale],\n queryFn: () => menu.header(),\n staleTime: 5 * 60 * 1000,\n }),\n },\n};\n"]}
@@ -1,8 +1,8 @@
1
- import { order } from './chunk-5QTXGXQ4.js';
1
+ import { order } from './chunk-GVMWHNQ5.js';
2
2
  import { buildHreflangAlternates } from './chunk-TZ3E5BN4.js';
3
- import { orUnauthorized } from './chunk-ZBTCQZVO.js';
3
+ import { orUnauthorized } from './chunk-PQNPO2J3.js';
4
4
  import { RouteId } from './chunk-MTONGOJD.js';
5
- import { getTwilightContext } from './chunk-WI7TR7RK.js';
5
+ import { getTwilightContext } from './chunk-OPKTJIZQ.js';
6
6
  import { lazy } from 'react';
7
7
 
8
8
  // src/routes/account/orders/loader.ts
@@ -47,9 +47,9 @@ async function orderSingleLoader({
47
47
  }
48
48
 
49
49
  // src/routes/account/orders/index.tsx
50
- var LazyOrdersPage = lazy(() => import('./OrdersPage-V7R7GDIM.js').then((m) => ({ default: m.OrdersPage })));
50
+ var LazyOrdersPage = lazy(() => import('./OrdersPage-RNOQQBIY.js').then((m) => ({ default: m.OrdersPage })));
51
51
  var LazyOrderSinglePage = lazy(
52
- () => import('./OrderSinglePage-HV3CH3B3.js').then((m) => ({ default: m.OrderSinglePage }))
52
+ () => import('./OrderSinglePage-6XI6DREN.js').then((m) => ({ default: m.OrderSinglePage }))
53
53
  );
54
54
  var OrdersPage = LazyOrdersPage;
55
55
  var OrderSinglePage = LazyOrderSinglePage;
@@ -101,5 +101,5 @@ var OrderSingle = {
101
101
  };
102
102
 
103
103
  export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader };
104
- //# sourceMappingURL=chunk-3SQ6C6AK.js.map
105
- //# sourceMappingURL=chunk-3SQ6C6AK.js.map
104
+ //# sourceMappingURL=chunk-6V45LHKF.js.map
105
+ //# sourceMappingURL=chunk-6V45LHKF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-3SQ6C6AK.js","sourcesContent":["import { order } from '../../../api/order';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersQuery } from './types';\nimport type { IdParams } from '../../types';\n\nexport async function ordersLoader(\n ctx: { query?: OrdersQuery },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.query;\n const isPending = query?.status === 'pending';\n const response = await orUnauthorized(\n order.list({\n status: query?.status,\n feedback_status: query?.feedback_status,\n })\n );\n const i18n = getTwilightContext().i18n;\n const pageData: OrdersPageProps = {\n page: {\n title: isPending\n ? i18n.t('common.titles.pending_orders') || 'Pending Orders'\n : i18n.t('common.titles.orders') || 'Orders',\n slug: 'orders',\n },\n orders: response.data,\n cursor: response.cursor,\n query,\n };\n\n if (extend) {\n const extra = await extend(pageData, { params: {} });\n return { ...pageData, ...extra } as OrdersPageProps;\n }\n return pageData;\n}\n\nexport async function orderSingleLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<OrderSinglePageProps> {\n const data = await order.findOrThrow(params.id);\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.CUSTOMER_ORDERS_SINGLE,\n id: String(params.id),\n title: (i18n.t('pages.orders.order_details') || 'Order Details').replace(':id', params.id),\n },\n order: data.order,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { ordersLoader, orderSingleLoader } from './loader';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersSearchParams } from './types';\nimport type { IdParams } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\n// Lazy-load components for code-splitting\nconst LazyOrdersPage = lazy(() => import('./OrdersPage').then((m) => ({ default: m.OrdersPage })));\nconst LazyOrderSinglePage = lazy(() =>\n import('./OrderSinglePage').then((m) => ({ default: m.OrderSinglePage }))\n);\n\nexport const OrdersPage = LazyOrdersPage;\nexport const OrderSinglePage = LazyOrderSinglePage;\nexport { ordersLoader, orderSingleLoader } from './loader';\nexport type {\n OrdersPageProps,\n OrderSinglePageProps,\n OrdersSearchParams,\n OrdersQuery,\n} from './types';\n\nasync function ordersLoaderWithExtend(\n ctx: { search?: OrdersSearchParams; locale?: string },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.search;\n const data = await ordersLoader({ query }, extend);\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as OrdersPageProps;\n }\n return data;\n}\n\nfunction ordersHead(ctx: TwilightContext, data: OrdersPageProps): HeadDescriptor {\n const isPending = ctx.location.search?.status === 'pending';\n const base: HeadDescriptor = {\n title: ctx.i18n.t(isPending ? 'common.titles.pending_orders' : 'common.titles.orders'),\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function orderSingleLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: OrderSinglePageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrderSinglePageProps> {\n const data = await orderSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as OrderSinglePageProps;\n }\n return data;\n}\n\nfunction orderSingleHead(ctx: TwilightContext, data: OrderSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Orders = {\n id: RouteId.CUSTOMER_ORDERS_INDEX,\n loader: ordersLoaderWithExtend,\n head: ordersHead,\n Component: LazyOrdersPage,\n} as const;\nexport const OrderSingle = {\n id: RouteId.CUSTOMER_ORDERS_SINGLE,\n loader: orderSingleLoaderWithExtend,\n head: orderSingleHead,\n Component: LazyOrderSinglePage,\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-6V45LHKF.js","sourcesContent":["import { order } from '../../../api/order';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersQuery } from './types';\nimport type { IdParams } from '../../types';\n\nexport async function ordersLoader(\n ctx: { query?: OrdersQuery },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.query;\n const isPending = query?.status === 'pending';\n const response = await orUnauthorized(\n order.list({\n status: query?.status,\n feedback_status: query?.feedback_status,\n })\n );\n const i18n = getTwilightContext().i18n;\n const pageData: OrdersPageProps = {\n page: {\n title: isPending\n ? i18n.t('common.titles.pending_orders') || 'Pending Orders'\n : i18n.t('common.titles.orders') || 'Orders',\n slug: 'orders',\n },\n orders: response.data,\n cursor: response.cursor,\n query,\n };\n\n if (extend) {\n const extra = await extend(pageData, { params: {} });\n return { ...pageData, ...extra } as OrdersPageProps;\n }\n return pageData;\n}\n\nexport async function orderSingleLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<OrderSinglePageProps> {\n const data = await order.findOrThrow(params.id);\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.CUSTOMER_ORDERS_SINGLE,\n id: String(params.id),\n title: (i18n.t('pages.orders.order_details') || 'Order Details').replace(':id', params.id),\n },\n order: data.order,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { ordersLoader, orderSingleLoader } from './loader';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersSearchParams } from './types';\nimport type { IdParams } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\n// Lazy-load components for code-splitting\nconst LazyOrdersPage = lazy(() => import('./OrdersPage').then((m) => ({ default: m.OrdersPage })));\nconst LazyOrderSinglePage = lazy(() =>\n import('./OrderSinglePage').then((m) => ({ default: m.OrderSinglePage }))\n);\n\nexport const OrdersPage = LazyOrdersPage;\nexport const OrderSinglePage = LazyOrderSinglePage;\nexport { ordersLoader, orderSingleLoader } from './loader';\nexport type {\n OrdersPageProps,\n OrderSinglePageProps,\n OrdersSearchParams,\n OrdersQuery,\n} from './types';\n\nasync function ordersLoaderWithExtend(\n ctx: { search?: OrdersSearchParams; locale?: string },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.search;\n const data = await ordersLoader({ query }, extend);\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as OrdersPageProps;\n }\n return data;\n}\n\nfunction ordersHead(ctx: TwilightContext, data: OrdersPageProps): HeadDescriptor {\n const isPending = ctx.location.search?.status === 'pending';\n const base: HeadDescriptor = {\n title: ctx.i18n.t(isPending ? 'common.titles.pending_orders' : 'common.titles.orders'),\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function orderSingleLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: OrderSinglePageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrderSinglePageProps> {\n const data = await orderSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as OrderSinglePageProps;\n }\n return data;\n}\n\nfunction orderSingleHead(ctx: TwilightContext, data: OrderSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Orders = {\n id: RouteId.CUSTOMER_ORDERS_INDEX,\n loader: ordersLoaderWithExtend,\n head: ordersHead,\n Component: LazyOrdersPage,\n} as const;\nexport const OrderSingle = {\n id: RouteId.CUSTOMER_ORDERS_SINGLE,\n loader: orderSingleLoaderWithExtend,\n head: orderSingleHead,\n Component: LazyOrderSinglePage,\n} as const;\n"]}
@@ -1,9 +1,9 @@
1
- import { home } from './chunk-LSZEBJYM.js';
1
+ import { home } from './chunk-2FDMBW2G.js';
2
2
  import { buildHreflangAlternates } from './chunk-TZ3E5BN4.js';
3
- import { HomeComponentRenderer } from './chunk-MV4FC2WC.js';
3
+ import { HomeComponentRenderer } from './chunk-YY2CTLTJ.js';
4
4
  import { useDevHomeComponentOverrides } from './chunk-2JV6WZ6O.js';
5
5
  import { RouteId } from './chunk-MTONGOJD.js';
6
- import { getTwilightContext } from './chunk-WI7TR7RK.js';
6
+ import { getTwilightContext } from './chunk-OPKTJIZQ.js';
7
7
  import { HookSlot } from './chunk-Q7VWURUR.js';
8
8
  import { memo } from 'react';
9
9
  import { Pulse } from '@salla.sa/twilight-components-react';
@@ -80,5 +80,5 @@ function head(ctx) {
80
80
  var Home = { id: RouteId.INDEX, loader, head, Component: HomePage };
81
81
 
82
82
  export { Home, HomeSkeleton, homeLoader };
83
- //# sourceMappingURL=chunk-L7XGAVXX.js.map
84
- //# sourceMappingURL=chunk-L7XGAVXX.js.map
83
+ //# sourceMappingURL=chunk-ABKWUNWF.js.map
84
+ //# sourceMappingURL=chunk-ABKWUNWF.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/home/loader.ts","../src/routes/home/HomePage.tsx","../src/routes/home/index.tsx"],"names":["HomeSkeleton","HomePage"],"mappings":"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","file":"chunk-L7XGAVXX.js","sourcesContent":["import { getTwilightContext } from '../../twilight/context';\nimport { home } from '../../api/home';\nimport type { HomeComponentData } from '../../types';\nimport { RouteId } from '../../router/route-ids';\n\nexport interface HomeLoaderData {\n locale: string;\n components: HomeComponentData[];\n page: { slug: string };\n}\n\nexport async function homeLoader(ctx?: { locale?: string }): Promise<HomeLoaderData> {\n const { queryClient } = getTwilightContext();\n const components = await queryClient.ensureQueryData(home.queries.components());\n const result = {\n locale: ctx?.locale || 'ar',\n components: components.map((comp) => ({\n ...comp,\n path: comp.path?.replace('home.', '') || comp.path,\n })),\n page: { slug: RouteId.INDEX },\n };\n return result;\n}\n","import { memo } from 'react';\nimport { useDevHomeComponentOverrides } from '../../dev/dev-settings-store';\nimport { HookSlot } from '../../hooks';\nimport { HomeComponentRenderer } from '../../components/home';\nimport type { HomePageProps } from './types';\nimport { Pulse } from '@salla.sa/twilight-components-react';\n\nexport const HomeSkeleton = memo(function HomeSkeleton() {\n return (\n <>\n <div className=\"s-block container skeleton-block-hero\">\n <Pulse className=\"h-64 sm:h-80 rounded-md\" />\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n </>\n );\n});\n\nexport const HomePage = memo(function HomePage({ components = [] }: HomePageProps) {\n // Dev-mode only: overlay DevSettingsWidget component-field overrides onto the\n // blocks so edits render live. No-op passthrough in production builds.\n const renderedComponents = useDevHomeComponentOverrides(components);\n return (\n <>\n <HookSlot name=\"home:start\" />\n <HookSlot name=\"home:content\" />\n {renderedComponents.map((data, index) => (\n <HomeComponentRenderer key={data.key ?? JSON.stringify(data)} data={data} index={index} />\n ))}\n <HookSlot name=\"home:end\" />\n </>\n );\n});\n\nexport { HomePage as default };\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport type { HomeLoaderData } from './loader';\nimport { homeLoader } from './loader';\nimport type { TwilightContext } from '../../twilight/context';\nimport { HomePage } from './HomePage';\nimport { RouteId } from '../../router/route-ids';\n\nexport { HomeSkeleton } from './HomePage';\nexport { registerHomeComponents, DefaultHomeComponents } from '../../components/home/register';\nexport { registerHomeComponentConfig } from '../../components/home';\nexport type { HomePageProps } from './types';\nexport type { HomeLoaderData } from './loader';\nexport type {\n HomeComponentsProps,\n AnyHomeComponent,\n HomeComponentConfig,\n} from '../../components/home';\n\nfunction loader(_ctx?: { locale?: string }): Promise<HomeLoaderData> {\n return homeLoader({ locale: _ctx?.locale });\n}\n\nfunction head(ctx: TwilightContext): HeadDescriptor {\n const store = ctx.settings?.store;\n if (!store) return {};\n\n const title = store.meta?.title ?? store.name;\n const description = store.meta?.description ?? store.description;\n const keywords = store.meta?.keywords;\n\n return {\n title,\n description,\n keywords,\n canonical: store.url,\n openGraph: {\n type: 'website',\n title,\n description,\n images: store.logo,\n url: store.url,\n },\n twitter: {\n card: 'summary_large_image',\n title,\n description,\n images: store.logo,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n}\n\nexport const Home = { id: RouteId.INDEX, loader, head, Component: HomePage } as const;\n\nexport { homeLoader };\n"]}
1
+ {"version":3,"sources":["../src/routes/home/loader.ts","../src/routes/home/HomePage.tsx","../src/routes/home/index.tsx"],"names":["HomeSkeleton","HomePage"],"mappings":";;;;;;;;;;;;AAWA,eAAsB,WAAW,GAAA,EAAoD;AACnF,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,kBAAA,EAAmB;AAC3C,EAAA,MAAM,aAAa,MAAM,WAAA,CAAY,gBAAgB,IAAA,CAAK,OAAA,CAAQ,YAAY,CAAA;AAC9E,EAAA,MAAM,MAAA,GAAS;AAAA,IACb,MAAA,EAAQ,KAAK,MAAA,IAAU,IAAA;AAAA,IACvB,UAAA,EAAY,UAAA,CAAW,GAAA,CAAI,CAAC,IAAA,MAAU;AAAA,MACpC,GAAG,IAAA;AAAA,MACH,MAAM,IAAA,CAAK,IAAA,EAAM,QAAQ,OAAA,EAAS,EAAE,KAAK,IAAA,CAAK;AAAA,KAChD,CAAE,CAAA;AAAA,IACF,IAAA,EAAM,EAAE,IAAA,EAAM,OAAA,CAAQ,KAAA;AAAM,GAC9B;AACA,EAAA,OAAO,MAAA;AACT;AChBO,IAAM,YAAA,GAAe,IAAA,CAAK,SAASA,aAAAA,GAAe;AACvD,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAI,SAAA,EAAU,uCAAA,EACb,8BAAC,KAAA,EAAA,EAAM,SAAA,EAAU,2BAA0B,CAAA,EAC7C,CAAA;AAAA,oBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,KAAA,EAAA,EAAM,WAAU,gBAAA,EAAiB,CAAA;AAAA,0BACjC,KAAA,EAAA,EAAI,SAAA,EAAU,yCACZ,QAAA,EAAA,CAAC,CAAA,EAAG,GAAG,CAAA,EAAG,CAAC,EAAE,GAAA,CAAI,CAAC,sBACjB,GAAA,CAAC,KAAA,EAAA,EAAc,WAAU,MAAA,EAAA,EAAb,CAAoB,CACjC,CAAA,EACH;AAAA,KAAA,EACF,CAAA;AAAA,oBACA,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2CAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,KAAA,EAAA,EAAM,WAAU,gBAAA,EAAiB,CAAA;AAAA,0BACjC,KAAA,EAAA,EAAI,SAAA,EAAU,yCACZ,QAAA,EAAA,CAAC,CAAA,EAAG,GAAG,CAAA,EAAG,CAAC,EAAE,GAAA,CAAI,CAAC,sBACjB,GAAA,CAAC,KAAA,EAAA,EAAc,WAAU,MAAA,EAAA,EAAb,CAAoB,CACjC,CAAA,EACH;AAAA,KAAA,EACF;AAAA,GAAA,EACF,CAAA;AAEJ,CAAC;AAEM,IAAM,QAAA,GAAW,KAAK,SAASC,SAAAA,CAAS,EAAE,UAAA,GAAa,IAAG,EAAkB;AAGjF,EAAA,MAAM,kBAAA,GAAqB,6BAA6B,UAAU,CAAA;AAClE,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,YAAA,EAAa,CAAA;AAAA,oBAC5B,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,cAAA,EAAe,CAAA;AAAA,IAC7B,kBAAA,CAAmB,GAAA,CAAI,CAAC,IAAA,EAAM,0BAC7B,GAAA,CAAC,qBAAA,EAAA,EAA6D,IAAA,EAAY,KAAA,EAAA,EAA9C,KAAK,GAAA,IAAO,IAAA,CAAK,SAAA,CAAU,IAAI,CAA6B,CACzF,CAAA;AAAA,oBACD,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,UAAA,EAAW;AAAA,GAAA,EAC5B,CAAA;AAEJ,CAAC,CAAA;;;AC5BD,SAAS,OAAO,IAAA,EAAqD;AACnE,EAAA,OAAO,UAAA,CAAW,EAAE,MAAA,EAAQ,IAAA,EAAM,QAAQ,CAAA;AAC5C;AAEA,SAAS,KAAK,GAAA,EAAsC;AAClD,EAAA,MAAM,KAAA,GAAQ,IAAI,QAAA,EAAU,KAAA;AAC5B,EAAA,IAAI,CAAC,KAAA,EAAO,OAAO,EAAC;AAEpB,EAAA,MAAM,KAAA,GAAQ,KAAA,CAAM,IAAA,EAAM,KAAA,IAAS,KAAA,CAAM,IAAA;AACzC,EAAA,MAAM,WAAA,GAAc,KAAA,CAAM,IAAA,EAAM,WAAA,IAAe,KAAA,CAAM,WAAA;AACrD,EAAA,MAAM,QAAA,GAAW,MAAM,IAAA,EAAM,QAAA;AAE7B,EAAA,OAAO;AAAA,IACL,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,WAAW,KAAA,CAAM,GAAA;AAAA,IACjB,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,SAAA;AAAA,MACN,KAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAQ,KAAA,CAAM,IAAA;AAAA,MACd,KAAK,KAAA,CAAM;AAAA,KACb;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA;AAAA,MACA,WAAA;AAAA,MACA,QAAQ,KAAA,CAAM;AAAA,KAChB;AAAA,IACA,oBAAoB,uBAAA,CAAwB,GAAA,CAAI,QAAA,EAAU,GAAA,CAAI,SAAS,QAAQ;AAAA,GACjF;AACF;AAEO,IAAM,IAAA,GAAO,EAAE,EAAA,EAAI,OAAA,CAAQ,OAAO,MAAA,EAAQ,IAAA,EAAM,WAAW,QAAA","file":"chunk-ABKWUNWF.js","sourcesContent":["import { getTwilightContext } from '../../twilight/context';\nimport { home } from '../../api/home';\nimport type { HomeComponentData } from '../../types';\nimport { RouteId } from '../../router/route-ids';\n\nexport interface HomeLoaderData {\n locale: string;\n components: HomeComponentData[];\n page: { slug: string };\n}\n\nexport async function homeLoader(ctx?: { locale?: string }): Promise<HomeLoaderData> {\n const { queryClient } = getTwilightContext();\n const components = await queryClient.ensureQueryData(home.queries.components());\n const result = {\n locale: ctx?.locale || 'ar',\n components: components.map((comp) => ({\n ...comp,\n path: comp.path?.replace('home.', '') || comp.path,\n })),\n page: { slug: RouteId.INDEX },\n };\n return result;\n}\n","import { memo } from 'react';\nimport { useDevHomeComponentOverrides } from '../../dev/dev-settings-store';\nimport { HookSlot } from '../../hooks';\nimport { HomeComponentRenderer } from '../../components/home';\nimport type { HomePageProps } from './types';\nimport { Pulse } from '@salla.sa/twilight-components-react';\n\nexport const HomeSkeleton = memo(function HomeSkeleton() {\n return (\n <>\n <div className=\"s-block container skeleton-block-hero\">\n <Pulse className=\"h-64 sm:h-80 rounded-md\" />\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n <div className=\"s-block container skeleton-block-products\">\n <Pulse className=\"h-10 w-48 mb-4\" />\n <div className=\"grid grid-cols-2 sm:grid-cols-4 gap-4\">\n {[1, 2, 3, 4].map((i) => (\n <Pulse key={i} className=\"h-56\" />\n ))}\n </div>\n </div>\n </>\n );\n});\n\nexport const HomePage = memo(function HomePage({ components = [] }: HomePageProps) {\n // Dev-mode only: overlay DevSettingsWidget component-field overrides onto the\n // blocks so edits render live. No-op passthrough in production builds.\n const renderedComponents = useDevHomeComponentOverrides(components);\n return (\n <>\n <HookSlot name=\"home:start\" />\n <HookSlot name=\"home:content\" />\n {renderedComponents.map((data, index) => (\n <HomeComponentRenderer key={data.key ?? JSON.stringify(data)} data={data} index={index} />\n ))}\n <HookSlot name=\"home:end\" />\n </>\n );\n});\n\nexport { HomePage as default };\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport type { HomeLoaderData } from './loader';\nimport { homeLoader } from './loader';\nimport type { TwilightContext } from '../../twilight/context';\nimport { HomePage } from './HomePage';\nimport { RouteId } from '../../router/route-ids';\n\nexport { HomeSkeleton } from './HomePage';\nexport { registerHomeComponents, DefaultHomeComponents } from '../../components/home/register';\nexport { registerHomeComponentConfig } from '../../components/home';\nexport type { HomePageProps } from './types';\nexport type { HomeLoaderData } from './loader';\nexport type {\n HomeComponentsProps,\n AnyHomeComponent,\n HomeComponentConfig,\n} from '../../components/home';\n\nfunction loader(_ctx?: { locale?: string }): Promise<HomeLoaderData> {\n return homeLoader({ locale: _ctx?.locale });\n}\n\nfunction head(ctx: TwilightContext): HeadDescriptor {\n const store = ctx.settings?.store;\n if (!store) return {};\n\n const title = store.meta?.title ?? store.name;\n const description = store.meta?.description ?? store.description;\n const keywords = store.meta?.keywords;\n\n return {\n title,\n description,\n keywords,\n canonical: store.url,\n openGraph: {\n type: 'website',\n title,\n description,\n images: store.logo,\n url: store.url,\n },\n twitter: {\n card: 'summary_large_image',\n title,\n description,\n images: store.logo,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n}\n\nexport const Home = { id: RouteId.INDEX, loader, head, Component: HomePage } as const;\n\nexport { homeLoader };\n"]}
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-D2LY5L4Z.js';
1
+ import { api } from './chunk-F7TFLW56.js';
2
2
 
3
3
  // src/api/wallet.ts
4
4
  var wallet = {
@@ -20,5 +20,5 @@ var wallet = {
20
20
  };
21
21
 
22
22
  export { wallet };
23
- //# sourceMappingURL=chunk-BB46SJTK.js.map
24
- //# sourceMappingURL=chunk-BB46SJTK.js.map
23
+ //# sourceMappingURL=chunk-AY6KRPHL.js.map
24
+ //# sourceMappingURL=chunk-AY6KRPHL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/wallet.ts"],"names":[],"mappings":";;;AAgCO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAA,EAAM,OAAO,MAAA,GAA2B,EAAC,KAAiC;AACxE,IAAA,MAAM,EAAE,IAAA,GAAO,CAAA,EAAG,OAAA,GAAU,EAAA,EAAI,QAAO,GAAI,MAAA;AAE3C,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,EAAgB;AACzC,IAAA,YAAA,CAAa,GAAA,CAAI,MAAA,EAAQ,MAAA,CAAO,IAAI,CAAC,CAAA;AACrC,IAAA,YAAA,CAAa,GAAA,CAAI,UAAA,EAAY,MAAA,CAAO,OAAO,CAAC,CAAA;AAE5C,IAAA,MAAM,UAAmC,EAAC;AAC1C,IAAA,IAAI,MAAA,UAAgB,MAAA,GAAS,MAAA;AAE7B,IAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CACpB,GAAA,CAAI,CAAA,eAAA,EAAkB,YAAA,CAAa,QAAA,EAAU,CAAA,CAAA,EAAI,OAAc,CAAA,CAC/D,IAAA,EAAsE;AAEzE,IAAA,MAAM,YAAA,GAAe,SAAS,IAAA,CAAK,YAAA;AAEnC,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,YAAA,CAAa,IAAA,IAAQ,EAAC;AAAA,MAC7B,MAAM,YAAA,CAAa,aAAA;AAAA,MACnB,OAAA,EAAS,SAAS,IAAA,CAAK;AAAA,KACzB;AAAA,EACF;AACF","file":"chunk-BB46SJTK.js","sourcesContent":["import { api } from './client';\n\nexport interface TransactionItem {\n id: number;\n order_id: number;\n transaction_type: string;\n action_type: string;\n type: string;\n title: string;\n description: string;\n amount: number;\n created_at: number;\n expired_at: number;\n}\n\nexport interface WalletListParams {\n page?: number;\n perPage?: number;\n signal?: AbortSignal;\n}\n\nexport interface WalletListResponse {\n data: TransactionItem[];\n next_page_url: string | null;\n}\n\nexport interface WalletListResult {\n items: TransactionItem[];\n next: string | null;\n balance: number;\n}\n\nexport const wallet = {\n list: async (params: WalletListParams = {}): Promise<WalletListResult> => {\n const { page = 1, perPage = 10, signal } = params;\n\n const searchParams = new URLSearchParams();\n searchParams.set('page', String(page));\n searchParams.set('per_page', String(perPage));\n\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`balance/wallet?${searchParams.toString()}`, options as any)\n .json<{ data: { transactions: WalletListResponse; balance: number } }>();\n\n const transactions = response.data.transactions;\n\n return {\n items: transactions.data ?? [],\n next: transactions.next_page_url,\n balance: response.data.balance,\n };\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/wallet.ts"],"names":[],"mappings":";;;AAgCO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAA,EAAM,OAAO,MAAA,GAA2B,EAAC,KAAiC;AACxE,IAAA,MAAM,EAAE,IAAA,GAAO,CAAA,EAAG,OAAA,GAAU,EAAA,EAAI,QAAO,GAAI,MAAA;AAE3C,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,EAAgB;AACzC,IAAA,YAAA,CAAa,GAAA,CAAI,MAAA,EAAQ,MAAA,CAAO,IAAI,CAAC,CAAA;AACrC,IAAA,YAAA,CAAa,GAAA,CAAI,UAAA,EAAY,MAAA,CAAO,OAAO,CAAC,CAAA;AAE5C,IAAA,MAAM,UAAmC,EAAC;AAC1C,IAAA,IAAI,MAAA,UAAgB,MAAA,GAAS,MAAA;AAE7B,IAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CACpB,GAAA,CAAI,CAAA,eAAA,EAAkB,YAAA,CAAa,QAAA,EAAU,CAAA,CAAA,EAAI,OAAc,CAAA,CAC/D,IAAA,EAAsE;AAEzE,IAAA,MAAM,YAAA,GAAe,SAAS,IAAA,CAAK,YAAA;AAEnC,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,YAAA,CAAa,IAAA,IAAQ,EAAC;AAAA,MAC7B,MAAM,YAAA,CAAa,aAAA;AAAA,MACnB,OAAA,EAAS,SAAS,IAAA,CAAK;AAAA,KACzB;AAAA,EACF;AACF","file":"chunk-AY6KRPHL.js","sourcesContent":["import { api } from './client';\n\nexport interface TransactionItem {\n id: number;\n order_id: number;\n transaction_type: string;\n action_type: string;\n type: string;\n title: string;\n description: string;\n amount: number;\n created_at: number;\n expired_at: number;\n}\n\nexport interface WalletListParams {\n page?: number;\n perPage?: number;\n signal?: AbortSignal;\n}\n\nexport interface WalletListResponse {\n data: TransactionItem[];\n next_page_url: string | null;\n}\n\nexport interface WalletListResult {\n items: TransactionItem[];\n next: string | null;\n balance: number;\n}\n\nexport const wallet = {\n list: async (params: WalletListParams = {}): Promise<WalletListResult> => {\n const { page = 1, perPage = 10, signal } = params;\n\n const searchParams = new URLSearchParams();\n searchParams.set('page', String(page));\n searchParams.set('per_page', String(perPage));\n\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`balance/wallet?${searchParams.toString()}`, options as any)\n .json<{ data: { transactions: WalletListResponse; balance: number } }>();\n\n const transactions = response.data.transactions;\n\n return {\n items: transactions.data ?? [],\n next: transactions.next_page_url,\n balance: response.data.balance,\n };\n },\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { orThrow } from './chunk-ZBTCQZVO.js';
2
- import { api } from './chunk-D2LY5L4Z.js';
1
+ import { orThrow } from './chunk-PQNPO2J3.js';
2
+ import { api } from './chunk-F7TFLW56.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var brand = {
@@ -25,5 +25,5 @@ var brand = {
25
25
  };
26
26
 
27
27
  export { brand };
28
- //# sourceMappingURL=chunk-7WEGTIL3.js.map
29
- //# sourceMappingURL=chunk-7WEGTIL3.js.map
28
+ //# sourceMappingURL=chunk-BR26I5WV.js.map
29
+ //# sourceMappingURL=chunk-BR26I5WV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/brands.ts"],"names":[],"mappings":";;;;AAKO,IAAM,KAAA,GAAQ;AAAA,EACnB,MAAM,YAAkC;AACtC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,QAAQ,EAAE,IAAA,EAA4B;AACrE,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,IAAA,EAAM,OAAO,EAAA,KAA+B;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAsB;AACrE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAA+B,QAAQ,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEnE,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,MAC3B,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA;AAAK,KAC3B,CAAA;AAAA,IACH,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,QAAA,EAAU,EAAE,CAAA;AAAA,MACjC,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE;AAAA,KAC7B;AAAA;AAEP","file":"chunk-7WEGTIL3.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { Brand, BrandsGroup } from '../routes/brands/types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const brand = {\n list: async (): Promise<BrandsGroup> => {\n const { data } = await api.get('brands').json<{ data: BrandsGroup }>();\n return data ?? {};\n },\n\n find: async (id: string): Promise<Brand> => {\n const { data } = await api.get(`brands/${id}`).json<{ data: Brand }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Brand> => orThrow(brand.find(id)),\n\n queries: {\n list: () =>\n queryOptions({\n queryKey: ['brands', 'list'],\n queryFn: () => brand.list(),\n }),\n detail: (id: string) =>\n queryOptions({\n queryKey: ['brands', 'detail', id],\n queryFn: () => brand.find(id),\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/brands.ts"],"names":[],"mappings":";;;;AAKO,IAAM,KAAA,GAAQ;AAAA,EACnB,MAAM,YAAkC;AACtC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,QAAQ,EAAE,IAAA,EAA4B;AACrE,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,IAAA,EAAM,OAAO,EAAA,KAA+B;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,OAAA,EAAU,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAsB;AACrE,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAA+B,QAAQ,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEnE,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,MAAM,CAAA;AAAA,MAC3B,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA;AAAK,KAC3B,CAAA;AAAA,IACH,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,QAAA,EAAU,EAAE,CAAA;AAAA,MACjC,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE;AAAA,KAC7B;AAAA;AAEP","file":"chunk-BR26I5WV.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { Brand, BrandsGroup } from '../routes/brands/types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const brand = {\n list: async (): Promise<BrandsGroup> => {\n const { data } = await api.get('brands').json<{ data: BrandsGroup }>();\n return data ?? {};\n },\n\n find: async (id: string): Promise<Brand> => {\n const { data } = await api.get(`brands/${id}`).json<{ data: Brand }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Brand> => orThrow(brand.find(id)),\n\n queries: {\n list: () =>\n queryOptions({\n queryKey: ['brands', 'list'],\n queryFn: () => brand.list(),\n }),\n detail: (id: string) =>\n queryOptions({\n queryKey: ['brands', 'detail', id],\n queryFn: () => brand.find(id),\n }),\n },\n};\n"]}