@salla.sa/twilight-theme-engine 1.0.63 → 1.0.65

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 (223) hide show
  1. package/dist/{AddToCartForm-365O6IQY.js → AddToCartForm-NKXOZ6TW.js} +3 -3
  2. package/dist/{AddToCartForm-365O6IQY.js.map → AddToCartForm-NKXOZ6TW.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-QIII3YRK.js → BlogAuthorPage-GQPWTGT2.js} +9 -9
  4. package/dist/{BlogAuthorPage-QIII3YRK.js.map → BlogAuthorPage-GQPWTGT2.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-HNGWYTN6.js → BlogCategoryPage-LTSZDBIZ.js} +9 -9
  6. package/dist/{BlogCategoryPage-HNGWYTN6.js.map → BlogCategoryPage-LTSZDBIZ.js.map} +1 -1
  7. package/dist/{BlogPage-7NGO5VLL.js → BlogPage-QN7QL562.js} +7 -7
  8. package/dist/{BlogPage-7NGO5VLL.js.map → BlogPage-QN7QL562.js.map} +1 -1
  9. package/dist/{BlogSinglePage-Y42LPA2L.js → BlogSinglePage-7GVVVVBL.js} +7 -7
  10. package/dist/{BlogSinglePage-Y42LPA2L.js.map → BlogSinglePage-7GVVVVBL.js.map} +1 -1
  11. package/dist/{BlogTagPage-ZCFYLXH6.js → BlogTagPage-QKYXFRET.js} +9 -9
  12. package/dist/{BlogTagPage-ZCFYLXH6.js.map → BlogTagPage-QKYXFRET.js.map} +1 -1
  13. package/dist/{BrandsPage-PPJVASUW.js → BrandsPage-LF5NVBUE.js} +8 -8
  14. package/dist/{BrandsPage-PPJVASUW.js.map → BrandsPage-LF5NVBUE.js.map} +1 -1
  15. package/dist/{Breadcrumb-4DUAJK3V.js → Breadcrumb-E7KDHZX4.js} +7 -7
  16. package/dist/{Breadcrumb-4DUAJK3V.js.map → Breadcrumb-E7KDHZX4.js.map} +1 -1
  17. package/dist/{CartItem-T4N3HMXU.js → CartItem-RB5CTJT6.js} +7 -7
  18. package/dist/{CartItem-T4N3HMXU.js.map → CartItem-RB5CTJT6.js.map} +1 -1
  19. package/dist/{CartSummary-Z25JDFWN.js → CartSummary-JCYQ2SQD.js} +12 -7
  20. package/dist/CartSummary-JCYQ2SQD.js.map +1 -0
  21. package/dist/{Copyright-WNJIDKSR.js → Copyright-XXSKQ3TB.js} +3 -3
  22. package/dist/{Copyright-WNJIDKSR.js.map → Copyright-XXSKQ3TB.js.map} +1 -1
  23. package/dist/{CustomerLayout-A6DVYYC3.js → CustomerLayout-CBFF4QEB.js} +27 -11
  24. package/dist/CustomerLayout-CBFF4QEB.js.map +1 -0
  25. package/dist/{Footer-3YBOSAO5.js → Footer-NFN2EMI2.js} +7 -7
  26. package/dist/{Footer-3YBOSAO5.js.map → Footer-NFN2EMI2.js.map} +1 -1
  27. package/dist/{Header-6M7TVMSW.js → Header-THQIZ2IR.js} +5 -5
  28. package/dist/{Header-6M7TVMSW.js.map → Header-THQIZ2IR.js.map} +1 -1
  29. package/dist/{LoyaltyPage-XQJ6RDT6.js → LoyaltyPage-5SLR7TJX.js} +7 -7
  30. package/dist/{LoyaltyPage-XQJ6RDT6.js.map → LoyaltyPage-5SLR7TJX.js.map} +1 -1
  31. package/dist/{LoyaltyPointsPage-K75LJNNP.js → LoyaltyPointsPage-HSXFTJUH.js} +3 -3
  32. package/dist/{LoyaltyPointsPage-K75LJNNP.js.map → LoyaltyPointsPage-HSXFTJUH.js.map} +1 -1
  33. package/dist/{MainMenu-V7GPKDTU.js → MainMenu-7SVMOZ6P.js} +3 -3
  34. package/dist/{MainMenu-V7GPKDTU.js.map → MainMenu-7SVMOZ6P.js.map} +1 -1
  35. package/dist/{MasterLayout-MBQ4JM3D.js → MasterLayout-7IHDLNPZ.js} +7 -7
  36. package/dist/{MasterLayout-MBQ4JM3D.js.map → MasterLayout-7IHDLNPZ.js.map} +1 -1
  37. package/dist/{MobileMenu-UFX4ZHW7.js → MobileMenu-7HKRWQBQ.js} +7 -7
  38. package/dist/{MobileMenu-UFX4ZHW7.js.map → MobileMenu-7HKRWQBQ.js.map} +1 -1
  39. package/dist/{NotificationsPage-M3YK2HRM.js → NotificationsPage-4JX7GFXF.js} +7 -7
  40. package/dist/{NotificationsPage-M3YK2HRM.js.map → NotificationsPage-4JX7GFXF.js.map} +1 -1
  41. package/dist/OrderSinglePage-B7TBZ7TX.js +719 -0
  42. package/dist/OrderSinglePage-B7TBZ7TX.js.map +1 -0
  43. package/dist/OrdersPage-XZ2DAJYB.js +68 -0
  44. package/dist/OrdersPage-XZ2DAJYB.js.map +1 -0
  45. package/dist/{PageSingle-HRMSVNHN.js → PageSingle-QWT77P4S.js} +3 -3
  46. package/dist/{PageSingle-HRMSVNHN.js.map → PageSingle-QWT77P4S.js.map} +1 -1
  47. package/dist/{ProductDetails-GAC3NYQM.js → ProductDetails-5IQHNQPS.js} +3 -3
  48. package/dist/{ProductDetails-GAC3NYQM.js.map → ProductDetails-5IQHNQPS.js.map} +1 -1
  49. package/dist/{ProfilePage-33I2XTJ6.js → ProfilePage-R2JDY6BF.js} +7 -7
  50. package/dist/{ProfilePage-33I2XTJ6.js.map → ProfilePage-R2JDY6BF.js.map} +1 -1
  51. package/dist/{SeoCartWidget-AEG2YLEF.js → SeoCartWidget-I2FBWKI4.js} +7 -7
  52. package/dist/{SeoCartWidget-AEG2YLEF.js.map → SeoCartWidget-I2FBWKI4.js.map} +1 -1
  53. package/dist/{SettingsPage-N3M677LP.js → SettingsPage-7X5YPAXL.js} +7 -7
  54. package/dist/{SettingsPage-N3M677LP.js.map → SettingsPage-7X5YPAXL.js.map} +1 -1
  55. package/dist/{StoreClosedNotification-5MTDRRC3.js → StoreClosedNotification-5F4I3N27.js} +8 -8
  56. package/dist/{StoreClosedNotification-5MTDRRC3.js.map → StoreClosedNotification-5F4I3N27.js.map} +1 -1
  57. package/dist/{TestimonialsPage-Z64P6MZX.js → TestimonialsPage-7YXSU33Z.js} +3 -3
  58. package/dist/{TestimonialsPage-Z64P6MZX.js.map → TestimonialsPage-7YXSU33Z.js.map} +1 -1
  59. package/dist/{ThankYouPage-ZXQZMWCX.js → ThankYouPage-7BN53JTK.js} +7 -7
  60. package/dist/{ThankYouPage-ZXQZMWCX.js.map → ThankYouPage-7BN53JTK.js.map} +1 -1
  61. package/dist/{WalletPage-557AU5GH.js → WalletPage-JKXQSYPX.js} +7 -7
  62. package/dist/{WalletPage-557AU5GH.js.map → WalletPage-JKXQSYPX.js.map} +1 -1
  63. package/dist/{WishlistPage-HTDQW2N2.js → WishlistPage-CSFHKERP.js} +9 -9
  64. package/dist/{WishlistPage-HTDQW2N2.js.map → WishlistPage-CSFHKERP.js.map} +1 -1
  65. package/dist/api/brands.js +2 -2
  66. package/dist/api/cart.d.ts +5 -0
  67. package/dist/api/cart.d.ts.map +1 -1
  68. package/dist/api/cart.js +2 -2
  69. package/dist/api/category.js +2 -2
  70. package/dist/api/loyalty.js +2 -2
  71. package/dist/api/order.d.ts +22 -0
  72. package/dist/api/order.d.ts.map +1 -1
  73. package/dist/api/order.js +2 -2
  74. package/dist/api/page.js +2 -2
  75. package/dist/api/product.js +2 -2
  76. package/dist/api/wishlist.js +3 -3
  77. package/dist/{chunk-Q5UYV2EN.js → chunk-24QOBDMC.js} +8 -4
  78. package/dist/chunk-24QOBDMC.js.map +1 -0
  79. package/dist/{chunk-KILNHLWE.js → chunk-2BRCE7MK.js} +4 -4
  80. package/dist/{chunk-KILNHLWE.js.map → chunk-2BRCE7MK.js.map} +1 -1
  81. package/dist/{chunk-YEY3SO23.js → chunk-2QNDO2OY.js} +12 -3
  82. package/dist/chunk-2QNDO2OY.js.map +1 -0
  83. package/dist/{chunk-LUTMPFRW.js → chunk-347K33DP.js} +3 -3
  84. package/dist/{chunk-LUTMPFRW.js.map → chunk-347K33DP.js.map} +1 -1
  85. package/dist/{chunk-KHRIGLYL.js → chunk-43XFO6KF.js} +3 -3
  86. package/dist/{chunk-KHRIGLYL.js.map → chunk-43XFO6KF.js.map} +1 -1
  87. package/dist/{chunk-EIJXSBL6.js → chunk-55VTMG2H.js} +31 -51
  88. package/dist/chunk-55VTMG2H.js.map +1 -0
  89. package/dist/{chunk-UFPZXWGM.js → chunk-65JM62NV.js} +4 -4
  90. package/dist/{chunk-UFPZXWGM.js.map → chunk-65JM62NV.js.map} +1 -1
  91. package/dist/{chunk-HSVGQ2DV.js → chunk-6AV7RQ6H.js} +27 -21
  92. package/dist/chunk-6AV7RQ6H.js.map +1 -0
  93. package/dist/{chunk-KWHCKGLL.js → chunk-A6SKDX5E.js} +3 -3
  94. package/dist/{chunk-KWHCKGLL.js.map → chunk-A6SKDX5E.js.map} +1 -1
  95. package/dist/chunk-D5UIBY3V.js +47 -0
  96. package/dist/chunk-D5UIBY3V.js.map +1 -0
  97. package/dist/{chunk-Y7HKVYDG.js → chunk-EBMMJWX6.js} +7 -7
  98. package/dist/{chunk-Y7HKVYDG.js.map → chunk-EBMMJWX6.js.map} +1 -1
  99. package/dist/{chunk-YLPI4HDD.js → chunk-FY573DJA.js} +6 -6
  100. package/dist/{chunk-YLPI4HDD.js.map → chunk-FY573DJA.js.map} +1 -1
  101. package/dist/{chunk-EXKTSWBC.js → chunk-GRV7ELSP.js} +5 -5
  102. package/dist/{chunk-EXKTSWBC.js.map → chunk-GRV7ELSP.js.map} +1 -1
  103. package/dist/{chunk-PE3LLBNR.js → chunk-GXDBY4WB.js} +3 -3
  104. package/dist/{chunk-PE3LLBNR.js.map → chunk-GXDBY4WB.js.map} +1 -1
  105. package/dist/{chunk-I62RENKM.js → chunk-KBQXQKPZ.js} +14 -2
  106. package/dist/chunk-KBQXQKPZ.js.map +1 -0
  107. package/dist/{chunk-IC7YN4OQ.js → chunk-OJPJP7ML.js} +3 -3
  108. package/dist/{chunk-IC7YN4OQ.js.map → chunk-OJPJP7ML.js.map} +1 -1
  109. package/dist/{chunk-VLBQPVHM.js → chunk-P6DV6EHM.js} +3 -3
  110. package/dist/{chunk-VLBQPVHM.js.map → chunk-P6DV6EHM.js.map} +1 -1
  111. package/dist/{chunk-NPEI4SAZ.js → chunk-PDMVQCEV.js} +3 -3
  112. package/dist/{chunk-NPEI4SAZ.js.map → chunk-PDMVQCEV.js.map} +1 -1
  113. package/dist/{chunk-W66OHTSM.js → chunk-QYUYQPXN.js} +3 -3
  114. package/dist/{chunk-W66OHTSM.js.map → chunk-QYUYQPXN.js.map} +1 -1
  115. package/dist/{chunk-XFCJM6RN.js → chunk-RWTZH6G3.js} +16 -12
  116. package/dist/chunk-RWTZH6G3.js.map +1 -0
  117. package/dist/{chunk-OBSAH7K6.js → chunk-SVPXQCOA.js} +12 -4
  118. package/dist/chunk-SVPXQCOA.js.map +1 -0
  119. package/dist/{chunk-4KTY2FT6.js → chunk-UEKIAED3.js} +6 -6
  120. package/dist/{chunk-4KTY2FT6.js.map → chunk-UEKIAED3.js.map} +1 -1
  121. package/dist/{chunk-UH5ZXDEO.js → chunk-WF7DYPR6.js} +3 -3
  122. package/dist/{chunk-UH5ZXDEO.js.map → chunk-WF7DYPR6.js.map} +1 -1
  123. package/dist/chunk-XMZPFHE7.js +14 -0
  124. package/dist/{chunk-JKT44Y2M.js.map → chunk-XMZPFHE7.js.map} +1 -1
  125. package/dist/{chunk-S3CC2YGF.js → chunk-ZBARSETM.js} +3 -3
  126. package/dist/{chunk-S3CC2YGF.js.map → chunk-ZBARSETM.js.map} +1 -1
  127. package/dist/components/cart/CartSummary.d.ts.map +1 -1
  128. package/dist/components/cart/index.js +1 -1
  129. package/dist/components/common/index.js +1 -1
  130. package/dist/components/drawer/index.js +5 -5
  131. package/dist/components/home/index.js +8 -8
  132. package/dist/components/layout/CustomerLayout.d.ts.map +1 -1
  133. package/dist/components/layout/index.js +1 -1
  134. package/dist/components/product/index.js +6 -6
  135. package/dist/components/store/index.js +7 -7
  136. package/dist/components/toast/Toaster.d.ts.map +1 -1
  137. package/dist/components/toast/index.js +1 -1
  138. package/dist/{document-class-SKCL6IJF.js → document-class-ZLPAWZEX.js} +5 -5
  139. package/dist/{document-class-SKCL6IJF.js.map → document-class-ZLPAWZEX.js.map} +1 -1
  140. package/dist/hooks/index.js +5 -5
  141. package/dist/hooks/useGtm.js +5 -5
  142. package/dist/hooks/useMoney.d.ts +3 -3
  143. package/dist/hooks/useMoney.d.ts.map +1 -1
  144. package/dist/hooks/useMoney.js +5 -5
  145. package/dist/hooks/useStore.js +5 -5
  146. package/dist/index.js +5 -5
  147. package/dist/{navigation-YKRXGGSL.js → navigation-DU3BF72V.js} +3 -3
  148. package/dist/{navigation-YKRXGGSL.js.map → navigation-DU3BF72V.js.map} +1 -1
  149. package/dist/{navigation-ESPAHRXM.js → navigation-WB75NC6Y.js} +4 -4
  150. package/dist/{navigation-ESPAHRXM.js.map → navigation-WB75NC6Y.js.map} +1 -1
  151. package/dist/{not-found-KBOXJ3AG.js → not-found-MA54AXJB.js} +8 -8
  152. package/dist/{not-found-KBOXJ3AG.js.map → not-found-MA54AXJB.js.map} +1 -1
  153. package/dist/providers/NavigationProvider.d.ts.map +1 -1
  154. package/dist/providers/index.js +5 -5
  155. package/dist/providers/twilight-init.d.ts.map +1 -1
  156. package/dist/routes/account/notifications/loader.d.ts.map +1 -1
  157. package/dist/routes/account/orders/OrderSinglePage.d.ts +7 -1
  158. package/dist/routes/account/orders/OrderSinglePage.d.ts.map +1 -1
  159. package/dist/routes/account/orders/OrdersPage.d.ts +2 -1
  160. package/dist/routes/account/orders/OrdersPage.d.ts.map +1 -1
  161. package/dist/routes/account/orders/loader.d.ts.map +1 -1
  162. package/dist/routes/account/orders/single/OrderActions.d.ts +7 -0
  163. package/dist/routes/account/orders/single/OrderActions.d.ts.map +1 -0
  164. package/dist/routes/account/orders/single/OrderHeader.d.ts +8 -0
  165. package/dist/routes/account/orders/single/OrderHeader.d.ts.map +1 -0
  166. package/dist/routes/account/orders/single/OrderItemRow.d.ts +9 -0
  167. package/dist/routes/account/orders/single/OrderItemRow.d.ts.map +1 -0
  168. package/dist/routes/account/orders/single/OrderSections.d.ts +23 -0
  169. package/dist/routes/account/orders/single/OrderSections.d.ts.map +1 -0
  170. package/dist/routes/account/orders/single/types.d.ts +53 -0
  171. package/dist/routes/account/orders/single/types.d.ts.map +1 -0
  172. package/dist/routes/account/orders/types.d.ts +3 -0
  173. package/dist/routes/account/orders/types.d.ts.map +1 -1
  174. package/dist/routes/account/orders.js +3 -3
  175. package/dist/routes/account/profile/loader.d.ts.map +1 -1
  176. package/dist/routes/account/settings/loader.d.ts.map +1 -1
  177. package/dist/routes/account/wallet/loader.d.ts.map +1 -1
  178. package/dist/routes/account/wishlist/loader.d.ts.map +1 -1
  179. package/dist/routes/account.js +16 -15
  180. package/dist/routes/account.js.map +1 -1
  181. package/dist/routes/blog.js +7 -7
  182. package/dist/routes/brands.js +3 -3
  183. package/dist/routes/cart/CartPage.d.ts.map +1 -1
  184. package/dist/routes/cart.js +14 -18
  185. package/dist/routes/cart.js.map +1 -1
  186. package/dist/routes/home.js +9 -9
  187. package/dist/routes/index.js +2 -2
  188. package/dist/routes/loyalty.js +4 -4
  189. package/dist/routes/page.js +3 -3
  190. package/dist/routes/product-listing.js +12 -11
  191. package/dist/routes/product-listing.js.map +1 -1
  192. package/dist/routes/product.js +8 -8
  193. package/dist/routes/seo-redirects.d.ts +4 -0
  194. package/dist/routes/seo-redirects.d.ts.map +1 -1
  195. package/dist/routes/seo-redirects.js +2 -2
  196. package/dist/routes/testimonials.js +1 -1
  197. package/dist/routes/thank-you.js +3 -3
  198. package/dist/skeleton.js +9 -9
  199. package/dist/tanstack/document-class.d.ts.map +1 -1
  200. package/dist/tanstack/router.d.ts.map +1 -1
  201. package/dist/tanstack.js +6 -6
  202. package/dist/types/salla-sdk.d.ts +1 -1
  203. package/dist/types/salla-sdk.d.ts.map +1 -1
  204. package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
  205. package/dist/vite/index.js +12 -2
  206. package/dist/vite/index.js.map +1 -1
  207. package/package.json +1 -1
  208. package/dist/CartSummary-Z25JDFWN.js.map +0 -1
  209. package/dist/CustomerLayout-A6DVYYC3.js.map +0 -1
  210. package/dist/OrderSinglePage-7LIUMNRB.js +0 -502
  211. package/dist/OrderSinglePage-7LIUMNRB.js.map +0 -1
  212. package/dist/OrdersPage-WI4OSGBF.js +0 -252
  213. package/dist/OrdersPage-WI4OSGBF.js.map +0 -1
  214. package/dist/chunk-EIJXSBL6.js.map +0 -1
  215. package/dist/chunk-HSVGQ2DV.js.map +0 -1
  216. package/dist/chunk-I62RENKM.js.map +0 -1
  217. package/dist/chunk-IIYK56TI.js +0 -29
  218. package/dist/chunk-IIYK56TI.js.map +0 -1
  219. package/dist/chunk-JKT44Y2M.js +0 -14
  220. package/dist/chunk-OBSAH7K6.js.map +0 -1
  221. package/dist/chunk-Q5UYV2EN.js.map +0 -1
  222. package/dist/chunk-XFCJM6RN.js.map +0 -1
  223. package/dist/chunk-YEY3SO23.js.map +0 -1
@@ -1,29 +0,0 @@
1
- import { orThrow } from './chunk-I62RENKM.js';
2
- import { api } from './chunk-P3OPJL6I.js';
3
- import { queryOptions } from '@tanstack/react-query';
4
-
5
- function normalizeCartResponse(data) {
6
- if (!data.cart) return null;
7
- return {
8
- ...data.cart,
9
- loyalty: data.loyalty ?? null,
10
- gift: data.gift ?? null
11
- };
12
- }
13
- var cart = {
14
- get: async (cartId) => {
15
- const { data } = await api.get(`cart/${cartId}`).json();
16
- return normalizeCartResponse(data);
17
- },
18
- getOrThrow: (cartId) => orThrow(cart.get(cartId)),
19
- queries: {
20
- detail: (cartId) => queryOptions({
21
- queryKey: ["cart", cartId],
22
- queryFn: () => cart.get(cartId)
23
- })
24
- }
25
- };
26
-
27
- export { cart };
28
- //# sourceMappingURL=chunk-IIYK56TI.js.map
29
- //# sourceMappingURL=chunk-IIYK56TI.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api/cart.ts"],"names":[],"mappings":";;;;AAYA,SAAS,sBAAsB,IAAA,EAAoC;AACjE,EAAA,IAAI,CAAC,IAAA,CAAK,IAAA,EAAM,OAAO,IAAA;AACvB,EAAA,OAAO;AAAA,IACL,GAAG,IAAA,CAAK,IAAA;AAAA,IACR,OAAA,EAAS,KAAK,OAAA,IAAW,IAAA;AAAA,IACzB,IAAA,EAAM,KAAK,IAAA,IAAQ;AAAA,GACrB;AACF;AAEO,IAAM,IAAA,GAAO;AAAA,EAClB,GAAA,EAAK,OAAO,MAAA,KAAyC;AACnD,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,KAAA,EAAQ,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAAgC;AACjF,IAAA,OAAO,sBAAsB,IAAI,CAAA;AAAA,EACnC,CAAA;AAAA,EAEA,YAAY,CAAC,MAAA,KAAyC,QAAQ,IAAA,CAAK,GAAA,CAAI,MAAM,CAAC,CAAA;AAAA,EAE9E,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,MAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,MAAM,CAAA;AAAA,MACzB,OAAA,EAAS,MAAM,IAAA,CAAK,GAAA,CAAI,MAAM;AAAA,KAC/B;AAAA;AAEP","file":"chunk-IIYK56TI.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { Cart } from '../types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport interface CartApiResponse {\n /** Absent once the cart was turned into an order (the body then carries a top-level `redirect`). */\n cart?: Omit<Cart, 'loyalty' | 'gift'>;\n loyalty?: Cart['loyalty'];\n gift?: Cart['gift'];\n}\n\nfunction normalizeCartResponse(data: CartApiResponse): Cart | null {\n if (!data.cart) return null;\n return {\n ...data.cart,\n loyalty: data.loyalty ?? null,\n gift: data.gift ?? null,\n } as Cart;\n}\n\nexport const cart = {\n get: async (cartId: number): Promise<Cart | null> => {\n const { data } = await api.get(`cart/${cartId}`).json<{ data: CartApiResponse }>();\n return normalizeCartResponse(data);\n },\n\n getOrThrow: (cartId: number): Promise<Cart | null> => orThrow(cart.get(cartId)),\n\n queries: {\n detail: (cartId: number) =>\n queryOptions({\n queryKey: ['cart', cartId],\n queryFn: () => cart.get(cartId),\n }),\n },\n};\n"]}
@@ -1,14 +0,0 @@
1
- import { lazy } from 'react';
2
-
3
- // src/components/cart/lazy.ts
4
- var LazyCartItem = lazy(() => import('./CartItem-T4N3HMXU.js').then((m) => ({ default: m.CartItem })));
5
- var LazyCartSummary = lazy(
6
- () => import('./CartSummary-Z25JDFWN.js').then((m) => ({ default: m.CartSummary }))
7
- );
8
- var LazySeoCartWidget = lazy(
9
- () => import('./SeoCartWidget-AEG2YLEF.js').then((m) => ({ default: m.SeoCartWidget }))
10
- );
11
-
12
- export { LazyCartItem, LazyCartSummary, LazySeoCartWidget };
13
- //# sourceMappingURL=chunk-JKT44Y2M.js.map
14
- //# sourceMappingURL=chunk-JKT44Y2M.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/toast/Toaster.tsx"],"names":["SonnerToaster"],"mappings":";;;;;AAKA,IAAM,eAAA,GAAkB;AAAA,EACtB,KAAA,EAAO,gEAAA;AAAA,EACP,KAAA,EAAO,qBAAA;AAAA,EACP,WAAA,EAAa,4BAAA;AAAA,EACb,YAAA,EAAc,yCAAA;AAAA,EACd,YAAA,EAAc,+BAAA;AAAA,EACd,OAAA,EAAS,kEAAA;AAAA,EACT,KAAA,EAAO,4DAAA;AAAA,EACP,OAAA,EAAS,qEAAA;AAAA,EACT,IAAA,EAAM,+DAAA;AAAA,EACN,OAAA,EAAS;AACX,CAAA;AAKA,IAAM,iBAAA,GAAoB,GAAA;AAC1B,IAAM,kBAAA,GAAqB,WAAA;AAE3B,SAAS,mBAAA,CAAoB,IAAA,EAAoB,OAAA,EAAiB,KAAA,EAAgB;AAChF,EAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,EAAA,IAAI,CAAC,OAAO,MAAA,EAAQ,SAAA,QAAiB,CAAC,KAAA,CAAM,KAAA,EAAO,QAAA,EAAU,OAAO,KAAA;AAEpE,EAAA,KAAA,CAAM,KAAA,CAAM,SAAS,kBAAA,EAAoB;AAAA,IACvC,IAAA;AAAA,IACA,OAAA;AAAA,IACA,GAAwB;AAAC,GAC1B,CAAA;AACD,EAAA,OAAO,IAAA;AACT;AAEO,SAAS,OAAA,CAAQ;AAAA,EACtB,cAAA,GAAiB,eAAA;AAAA,EACjB,cAAA,GAAiB;AACnB,CAAA,EAIG;AACD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAC9B,EAAA,MAAM,QAAA,GAAW,OAAO,KAAK,CAAA;AAC7B,EAAA,QAAA,CAAS,OAAA,GAAU,KAAA;AACnB,EAAA,MAAM,aAAA,GAAgB,OAAO,KAAK,CAAA;AAElC,EAAA,MAAM,QAAQ,KAAA,CAAM,MAAA;AACpB,EAAA,MAAM,eAAA,GAAiC,QAAQ,UAAA,GAAa,WAAA;AAE5D,EAAA,MAAM,CAAC,QAAA,EAAU,WAAW,CAAA,GAAI,SAAwB,MAAM;AAC5D,IAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,eAAA;AAC1C,IAAA,OAAO,MAAA,CAAO,UAAA,GAAa,iBAAA,GAAoB,cAAA,GAAiB,eAAA;AAAA,EAClE,CAAC,CAAA;AAED,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,eAAe,MAAM;AACzB,MAAA,WAAA,CAAY,MAAA,CAAO,UAAA,GAAa,iBAAA,GAAoB,cAAA,GAAiB,eAAe,CAAA;AAAA,IACtF,CAAA;AACA,IAAA,MAAA,CAAO,gBAAA,CAAiB,UAAU,YAAY,CAAA;AAC9C,IAAA,OAAO,MAAM,MAAA,CAAO,mBAAA,CAAoB,QAAA,EAAU,YAAY,CAAA;AAAA,EAChE,CAAA,EAAG,CAAC,eAAA,EAAiB,cAAc,CAAC,CAAA;AAEpC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,QAAQ,MAAA,CAAO,KAAA;AACrB,IAAA,IAAI,CAAC,KAAA,EAAO,MAAA,EAAQ,WAAA,EAAa;AAEjC,IAAA,MAAM,YAAA,GAAe,CAAC,OAAA,EAAqB,IAAA,EAAc,IAAA,KAAmB;AAC1E,MAAA,MAAM,SAAA,GAAY,IAAA;AAClB,MAAA,MAAM,4BAAA,GAAA,CACH,CAAC,cAAA,IAAkB,QAAA,CAAS,OAAA,CAAQ,UAAU,wBAAA,KAC/C,SAAA,EAAW,IAAA,EAAM,UAAA,EAAY,KAAA,KAAU,WAAA;AACzC,MAAA,IAAI,KAAA;AACJ,MAAA,IAAI,SAAA;AAEJ,MAAA,IAAI,OAAO,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,IAAA,EAAM;AACnD,QAAA,KAAA,GAAQ,OAAA,CAAQ,KAAA,IAAS,OAAA,CAAQ,IAAA,IAAQ,EAAA;AACzC,QAAA,SAAA,GAAa,OAAA,CAAQ,QAAQ,IAAA,IAAQ,MAAA;AAAA,MACvC,CAAA,MAAO;AACL,QAAA,KAAA,GAAQ,OAAA;AACR,QAAA,SAAA,GAAa,IAAA,IAAQ,MAAA;AAAA,MACvB;AAIA,MAAA,IAAI,4BAAA,EAA8B;AAChC,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,mBAAA,CAAoB,SAAA,EAAW,KAAK,CAAA,EAAG;AACzC,QAAA;AAAA,MACF;AAEA,MAAA,IAAI,cAAc,SAAA,EAAW;AAC3B,QAAA,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,KAAM,CAAA;AAAA,MACzC,CAAA,MAAA,IAAW,cAAc,OAAA,EAAS;AAChC,QAAA,KAAA,CAAM,KAAA,CAAM,KAAA,EAAO,EAAE,QAAA,EAAU,KAAM,CAAA;AAAA,MACvC,CAAA,MAAA,IAAW,cAAc,SAAA,EAAW;AAClC,QAAA,KAAA,CAAM,OAAA,CAAQ,KAAA,EAAO,EAAE,QAAA,EAAU,KAAM,CAAA;AAAA,MACzC,CAAA,MAAO;AACL,QAAA,KAAA,CAAM,IAAA,CAAK,KAAA,EAAO,EAAE,QAAA,EAAU,KAAM,CAAA;AAAA,MACtC;AAAA,IACF,CAAA;AAEA,IAAA,KAAA,CAAM,MAAA,CAAO,YAAY,YAAY,CAAA;AACrC,IAAA,OAAO,MAAM;AACX,MAAA,KAAA,CAAM,MAAA,EAAQ,cAAc,MAAM;AAAA,MAAC,CAAC,CAAA;AAAA,IACtC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,cAAc,CAAC,CAAA;AAEnB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,aAAA,CAAc,OAAA,IAAW,OAAO,MAAA,KAAW,WAAA,EAAa;AAE5D,IAAA,MAAM,MAAA,GAAS,IAAI,eAAA,CAAgB,MAAA,CAAO,SAAS,MAAM,CAAA;AACzD,IAAA,MAAM,UAAA,GAAa,MAAA,CAAO,GAAA,CAAI,SAAS,CAAA;AACvC,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,GAAA,CAAI,QAAQ,CAAA;AAErC,IAAA,IAAI,CAAC,UAAA,IAAc,CAAC,SAAA,EAAW;AAE/B,IAAA,aAAA,CAAc,OAAA,GAAU,IAAA;AAExB,IAAA,MAAM,OAAA,GAAU,cAAc,SAAA,IAAa,EAAA;AAC3C,IAAA,MAAM,SAAA,GAAY,YAAY,OAAA,GAAU,SAAA;AAExC,IAAA,MAAM,GAAA,GAAM,IAAI,GAAA,CAAI,MAAA,CAAO,SAAS,IAAI,CAAA;AACxC,IAAA,GAAA,CAAI,YAAA,CAAa,OAAO,SAAS,CAAA;AACjC,IAAA,GAAA,CAAI,YAAA,CAAa,OAAO,QAAQ,CAAA;AAChC,IAAA,MAAA,CAAO,QAAQ,YAAA,CAAa,IAAI,EAAA,EAAI,GAAA,CAAI,UAAU,CAAA;AAElD,IAAA,MAAM,KAAA,GAAQ,WAAW,MAAM;AAC7B,MAAA,IAAI,mBAAA,CAAoB,SAAA,EAAW,OAAO,CAAA,EAAG;AAE7C,MAAA,IAAI,cAAc,SAAA,EAAW;AAC3B,QAAA,KAAA,CAAM,OAAA,CAAQ,OAAA,EAAS,EAAE,QAAA,EAAU,KAAM,CAAA;AAAA,MAC3C,CAAA,MAAO;AACL,QAAA,KAAA,CAAM,KAAA,CAAM,OAAA,EAAS,EAAE,QAAA,EAAU,KAAM,CAAA;AAAA,MACzC;AAAA,IACF,GAAG,GAAG,CAAA;AAEN,IAAA,OAAO,MAAM,aAAa,KAAK,CAAA;AAAA,EACjC,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA;AAAA,IAAA;AAAA,MACC,QAAA;AAAA,MAIA,MAAA,EAAQ,EAAE,GAAA,EAAK,4CAAA,EAA6C;AAAA,MAC5D,YAAA,EAAc,EAAE,GAAA,EAAK,4CAAA,EAA6C;AAAA,MAClE,YAAA,EAAc;AAAA,QACZ,UAAA,EAAY,eAAA;AAAA,QACZ,KAAA,EAAO;AAAA,UACL,UAAA,EAAY;AAAA;AACd,OACF;AAAA,MACA,KAAA,EAAO;AAAA,QACL,UAAA,EAAY;AAAA;AACd;AAAA,GACF;AAEJ","file":"chunk-OBSAH7K6.js","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { Toaster as SonnerToaster, toast } from 'sonner';\nimport { useTwilight } from '../../providers/twilight-context';\nimport type { ToastPosition } from './types';\n\nconst toastClassNames = {\n toast: 'group bg-white border-2 rounded-xl shadow-2xl p-4 font-primary',\n title: 'text-base font-bold',\n description: 'text-sm mt-1 text-gray-600',\n actionButton: 'bg-primary text-white px-3 py-1 rounded',\n cancelButton: 'bg-gray-100 px-3 py-1 rounded',\n success: 'border-green-500 [&_svg]:text-green-500 [&_aside]:text-green-700',\n error: 'border-red-500 [&_svg]:text-red-500 [&_aside]:text-red-700',\n warning: 'border-yellow-500 [&_svg]:text-yellow-500 [&_aside]:text-yellow-700',\n info: 'border-blue-500 [&_svg]:text-blue-500 [&_aside]:text-blue-700',\n loading: 'border-gray-400',\n};\n\ntype RawMessage = string | { title?: string; text?: string; icon?: string };\ntype ToastVariant = 'success' | 'error' | 'warning' | 'info';\n\nconst MOBILE_BREAKPOINT = 768;\nconst NATIVE_ALERT_EVENT = 'ui::alert';\n\nfunction dispatchNativeAlert(type: ToastVariant, message: string, title?: string) {\n const salla = window.salla;\n if (!salla?.mobile?.isEnabled?.() || !salla.event?.dispatch) return false;\n\n salla.event.dispatch(NATIVE_ALERT_EVENT, {\n type,\n message,\n ...(title ? { title } : {}),\n });\n return true;\n}\n\nexport function Toaster({\n mobilePosition = 'bottom-center',\n addToCartToast = true,\n}: {\n mobilePosition?: ToastPosition;\n /** Show the default add-to-cart toast. Themes whose cart badge is the feedback can turn it off. */\n addToCartToast?: boolean;\n}) {\n const { theme } = useTwilight();\n const themeRef = useRef(theme);\n themeRef.current = theme;\n const flashShownRef = useRef(false);\n\n const isRtl = theme.is_rtl;\n const desktopPosition: ToastPosition = isRtl ? 'top-left' : 'top-right';\n\n const [position, setPosition] = useState<ToastPosition>(() => {\n if (typeof window === 'undefined') return desktopPosition;\n return window.innerWidth < MOBILE_BREAKPOINT ? mobilePosition : desktopPosition;\n });\n\n useEffect(() => {\n const handleResize = () => {\n setPosition(window.innerWidth < MOBILE_BREAKPOINT ? mobilePosition : desktopPosition);\n };\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [desktopPosition, mobilePosition]);\n\n useEffect(() => {\n const salla = window.salla;\n if (!salla?.notify?.setNotifier) return;\n\n const handleNotify = (message: RawMessage, type: string, data?: unknown) => {\n const eventData = data as { data?: { googleTags?: { event?: string } } } | undefined;\n const shouldSuppressAddToCartToast =\n (!addToCartToast || themeRef.current.settings?.enable_add_product_toast) &&\n eventData?.data?.googleTags?.event === 'addToCart';\n let title: string;\n let toastType: ToastVariant;\n\n if (typeof message === 'object' && message !== null) {\n title = message.title || message.text || '';\n toastType = (message.icon || type || 'info') as ToastVariant;\n } else {\n title = message;\n toastType = (type || 'info') as ToastVariant;\n }\n\n // Suppress the default addToCart toast when the theme opted out (addToCartToast=false)\n // or renders its own rich toast (enable_add_product_toast) so they don't double up.\n if (shouldSuppressAddToCartToast) {\n return;\n }\n\n if (dispatchNativeAlert(toastType, title)) {\n return;\n }\n\n if (toastType === 'success') {\n toast.success(title, { duration: 3000 });\n } else if (toastType === 'error') {\n toast.error(title, { duration: 3000 });\n } else if (toastType === 'warning') {\n toast.warning(title, { duration: 3000 });\n } else {\n toast.info(title, { duration: 3000 });\n }\n };\n\n salla.notify.setNotifier(handleNotify);\n return () => {\n salla.notify?.setNotifier?.(() => {});\n };\n }, [addToCartToast]);\n\n useEffect(() => {\n if (flashShownRef.current || typeof window === 'undefined') return;\n\n const params = new URLSearchParams(window.location.search);\n const successMsg = params.get('success');\n const dangerMsg = params.get('danger');\n\n if (!successMsg && !dangerMsg) return;\n\n flashShownRef.current = true;\n\n const message = successMsg || dangerMsg || '';\n const toastType = dangerMsg ? 'error' : 'success';\n\n const url = new URL(window.location.href);\n url.searchParams.delete('success');\n url.searchParams.delete('danger');\n window.history.replaceState({}, '', url.toString());\n\n const timer = setTimeout(() => {\n if (dispatchNativeAlert(toastType, message)) return;\n\n if (toastType === 'success') {\n toast.success(message, { duration: 3000 });\n } else {\n toast.error(message, { duration: 3000 });\n }\n }, 100);\n\n return () => clearTimeout(timer);\n }, []);\n\n return (\n <SonnerToaster\n position={position}\n // Keep sonner's default gaps (24px desktop / 16px mobile) but clear the\n // native status bar inset (--app-safe-area-top, set by useSafeAreaInset)\n // so top-positioned toasts aren't covered in the app webview.\n offset={{ top: 'calc(var(--app-safe-area-top, 0px) + 24px)' }}\n mobileOffset={{ top: 'calc(var(--app-safe-area-top, 0px) + 16px)' }}\n toastOptions={{\n classNames: toastClassNames,\n style: {\n fontFamily: 'var(--font-main, inherit)',\n },\n }}\n style={{\n fontFamily: 'var(--font-main, inherit)',\n }}\n />\n );\n}\n\nexport type { ToasterProps } from 'sonner';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/routes/seo-redirects.ts"],"names":[],"mappings":";;;;;AAcA,eAAsB,wBAAwB,GAAA,EAAkD;AAC9F,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,MAAA,IAAU,eAAA;AACpC,EAAA,MAAM,SAAS,CAAA,CAAA,EAAI,MAAM,WAAW,GAAA,CAAI,MAAA,CAAO,EAAE,CAAA,CAAE,CAAA;AACrD;AAOA,eAAsB,4BACpB,GAAA,GAA+C,EAAE,MAAA,EAAQ,IAAG,EAC5C;AAChB,EAAA,MAAM,MAAA,GAAS,GAAA,CAAI,MAAA,CAAO,MAAA,IAAU,eAAA;AACpC,EAAA,MAAM,QAAA,CAAS,CAAA,CAAA,EAAI,MAAM,CAAA,8BAAA,CAAgC,CAAA;AAC3D;AAUO,SAAS,cAAA,GAAuB;AACrC,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,oBAAA,EAAqB;AAErB,IAAA,MAAA,CAAO,QAAA,CAAS,QAAQ,MAAA,CAAO,QAAA,CAAS,KAAK,OAAA,CAAQ,8BAAA,EAAgC,EAAE,CAAC,CAAA;AAAA,EAC1F,CAAA,EAAG,EAAE,CAAA;AACL,EAAA,OAAO,IAAA;AACT","file":"chunk-Q5UYV2EN.js","sourcesContent":["import { useEffect } from 'react';\nimport { redirect } from '../providers/NavigationProvider';\nimport { FALLBACK_LOCALE } from '../providers/locale-constants';\nimport { clearAuthTokenCookie } from '../utils/cookies';\n\nexport interface SlugBrandParams {\n /** SEO slug segment (ignored — only here to match the route pattern). */\n slug: string;\n /** Brand numeric ID to redirect to. */\n id: string;\n /** Active locale from the `/$locale` parent layout (e.g. `'ar'`, `'en'`). */\n locale?: string;\n}\n\nexport async function slugBrandRedirectLoader(ctx: { params: SlugBrandParams }): Promise<never> {\n const locale = ctx.params.locale || FALLBACK_LOCALE;\n throw redirect(`/${locale}/brands/${ctx.params.id}`);\n}\n\nexport interface PendingOrdersRedirectParams {\n /** Active locale from the `/$locale` parent layout (e.g. `'ar'`, `'en'`). */\n locale?: string;\n}\n\nexport async function pendingOrdersRedirectLoader(\n ctx: { params: PendingOrdersRedirectParams } = { params: {} }\n): Promise<never> {\n const locale = ctx.params.locale || FALLBACK_LOCALE;\n throw redirect(`/${locale}/account/orders?status=pending`);\n}\n\n/**\n * `/logout` — where the SDK sends the browser once `salla.auth.logout()` has run\n * (`salla.url.get('logout?from=…')`). The Twig storefront serves that URL server-side. Here\n * it renders nothing and, in the browser, removes the theme's own `token` cookie (the SDK's\n * `cookie.clearAll()` leaves it) and then does a full navigation home. It has to be a\n * component, not a loader redirect: a loader runs during server rendering, where the cookie\n * can't be cleared, so the redirect would leave the visitor signed in on the next request.\n */\nexport function LogoutRedirect(): null {\n useEffect(() => {\n clearAuthTokenCookie();\n // `/{store base}/{locale}/logout?from=…` → `/{store base}/{locale}`\n window.location.replace(window.location.href.replace(/\\/logout\\/?(\\?[^#]*)?(#.*)?$/, ''));\n }, []);\n return null;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-XFCJM6RN.js","sourcesContent":["import { order } from '../../../api/order';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\nimport { orUnauthorized, unauthorized } from '../../../providers/NavigationProvider';\nimport { getAuthToken } from '../../../api/client';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersQuery } from './types';\nimport type { IdParams } from '../../types';\n\nexport async function ordersLoader(\n ctx: { query?: OrdersQuery; with_items?: boolean | number },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n if (!getAuthToken()) throw unauthorized();\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 ...(ctx.with_items ? { with_items: ctx.with_items } : {}),\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 if (!getAuthToken()) throw unauthorized();\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; with_items?: boolean | number },\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, with_items: ctx.with_items }, 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 +0,0 @@
1
- {"version":3,"sources":["../src/api/order.ts"],"names":[],"mappings":"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","file":"chunk-YEY3SO23.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type {\n Order,\n OrderListItem,\n OrderShipmentItem,\n OrderRatingItem,\n} from '../routes/account/types';\nimport type { Pagination } from './types';\nimport { orThrow, orUnauthorized } from '../providers/NavigationProvider';\n\nexport interface OrderDetailResponse {\n order: Order;\n}\n\nexport interface CheckoutThankYouData {\n thank_you_title?: string;\n messages?: string[];\n share_message?: string;\n short_share_message?: string;\n}\n\nexport interface OrdersListResponse {\n data: OrderListItem[];\n cursor?: Pagination;\n}\n\nexport interface OrdersListParams {\n page?: number;\n cursor?: string | null;\n status?: string;\n feedback_status?: string;\n /** When set, the list payload includes each order's `items[]` (`with_items=1`). */\n with_items?: boolean | number;\n signal?: AbortSignal;\n}\n\nexport const order = {\n list: async (params?: OrdersListParams): Promise<OrdersListResponse> => {\n const {\n page,\n cursor,\n status,\n feedback_status: feedbackStatus,\n with_items: withItems,\n signal,\n } = params ?? {};\n\n const searchParams = new URLSearchParams();\n if (page !== undefined) searchParams.set('page', String(page));\n if (cursor) searchParams.set('cursor', cursor);\n if (status) searchParams.set('status', status);\n if (feedbackStatus) searchParams.set('feedback_status', feedbackStatus);\n if (withItems) searchParams.set('with_items', '1');\n\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`orders?${searchParams.toString()}`, options as any)\n .json<{ data: OrderListItem[] | null; cursor?: Pagination }>();\n\n return {\n data: response.data ?? [],\n cursor: response.cursor,\n };\n },\n\n find: async (id: string): Promise<OrderDetailResponse> => {\n const response = await api.get(`orders/${id}`).json<{ data: Order }>();\n\n return { order: response.data };\n },\n\n shipments: async (orderId: string): Promise<OrderShipmentItem[]> => {\n const response = await api\n .get(`orders/${orderId}/shipments`)\n .json<{ data: OrderShipmentItem[] }>();\n return response.data ?? [];\n },\n\n ratings: async (orderId: string): Promise<OrderRatingItem[]> => {\n const response = await api.get(`orders/${orderId}/ratings`).json<{ data: OrderRatingItem[] }>();\n return response.data ?? [];\n },\n\n findOrThrow: (id: string): Promise<OrderDetailResponse> => orUnauthorized(order.find(id)),\n\n thankYou: async (orderId: string): Promise<CheckoutThankYouData> => {\n const { data } = await api\n .get(`checkout/thank-you/${orderId}`)\n .json<{ data: CheckoutThankYouData }>();\n return data;\n },\n\n thankYouOrThrow: (orderId: string): Promise<CheckoutThankYouData> =>\n orThrow(order.thankYou(orderId)),\n\n queries: {\n list: (params?: Omit<OrdersListParams, 'signal'>) =>\n queryOptions({\n queryKey: ['orders', 'list', params],\n queryFn: ({ signal }) => order.list({ ...params, signal }),\n }),\n find: (id: string) =>\n queryOptions({\n queryKey: ['orders', 'detail', id],\n queryFn: () => order.find(id),\n }),\n shipments: (orderId: string) =>\n queryOptions({\n queryKey: ['orders', 'shipments', orderId],\n queryFn: () => order.shipments(orderId),\n }),\n ratings: (orderId: string) =>\n queryOptions({\n queryKey: ['orders', 'ratings', orderId],\n queryFn: () => order.ratings(orderId),\n }),\n thankYou: (orderId: string) =>\n queryOptions({\n queryKey: ['orders', 'thankYou', orderId],\n queryFn: () => order.thankYou(orderId),\n }),\n },\n};\n"]}