@salla.sa/twilight-theme-engine 1.0.146 → 1.0.147

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 (238) hide show
  1. package/dist/{AddToCartForm-ZZMT3ZRO.js → AddToCartForm-GF22RRTM.js} +3 -3
  2. package/dist/{AddToCartForm-ZZMT3ZRO.js.map → AddToCartForm-GF22RRTM.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-LVRGWFOC.js → BlogAuthorPage-RL6AMYDY.js} +17 -17
  4. package/dist/{BlogAuthorPage-LVRGWFOC.js.map → BlogAuthorPage-RL6AMYDY.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-CONL6QSN.js → BlogCategoryPage-B4DIJZCK.js} +17 -17
  6. package/dist/{BlogCategoryPage-CONL6QSN.js.map → BlogCategoryPage-B4DIJZCK.js.map} +1 -1
  7. package/dist/{BlogPage-6ZA474IU.js → BlogPage-UQKCNSB7.js} +15 -15
  8. package/dist/{BlogPage-6ZA474IU.js.map → BlogPage-UQKCNSB7.js.map} +1 -1
  9. package/dist/{BlogSinglePage-W7WYKP7W.js → BlogSinglePage-MG7A3FK4.js} +15 -15
  10. package/dist/{BlogSinglePage-W7WYKP7W.js.map → BlogSinglePage-MG7A3FK4.js.map} +1 -1
  11. package/dist/{BlogTagPage-G5JX7FSN.js → BlogTagPage-G7GLKQIE.js} +17 -17
  12. package/dist/{BlogTagPage-G5JX7FSN.js.map → BlogTagPage-G7GLKQIE.js.map} +1 -1
  13. package/dist/{BrandsPage-TB5NDSGL.js → BrandsPage-EINNM2YV.js} +16 -16
  14. package/dist/{BrandsPage-TB5NDSGL.js.map → BrandsPage-EINNM2YV.js.map} +1 -1
  15. package/dist/{Breadcrumb-EVZDJG7H.js → Breadcrumb-VLIGUJV2.js} +15 -15
  16. package/dist/{Breadcrumb-EVZDJG7H.js.map → Breadcrumb-VLIGUJV2.js.map} +1 -1
  17. package/dist/{CartItem-D2LJIFGL.js → CartItem-QCNLWMWV.js} +15 -15
  18. package/dist/{CartItem-D2LJIFGL.js.map → CartItem-QCNLWMWV.js.map} +1 -1
  19. package/dist/{CartSummary-V4HYUEPB.js → CartSummary-ZWBB3R3X.js} +15 -15
  20. package/dist/{CartSummary-V4HYUEPB.js.map → CartSummary-ZWBB3R3X.js.map} +1 -1
  21. package/dist/{Copyright-JLIFLENS.js → Copyright-SG3C7STC.js} +3 -3
  22. package/dist/{Copyright-JLIFLENS.js.map → Copyright-SG3C7STC.js.map} +1 -1
  23. package/dist/{CustomerLayout-JSIYPWY4.js → CustomerLayout-OZCEEEL5.js} +15 -15
  24. package/dist/{CustomerLayout-JSIYPWY4.js.map → CustomerLayout-OZCEEEL5.js.map} +1 -1
  25. package/dist/{Footer-BNIVXKRM.js → Footer-F6H52J6C.js} +4 -4
  26. package/dist/{Footer-BNIVXKRM.js.map → Footer-F6H52J6C.js.map} +1 -1
  27. package/dist/{Header-DI3OK5TC.js → Header-IZ22UIE4.js} +8 -8
  28. package/dist/{Header-DI3OK5TC.js.map → Header-IZ22UIE4.js.map} +1 -1
  29. package/dist/{LatestProducts-PEIN355E.js → LatestProducts-EUROHOV5.js} +17 -17
  30. package/dist/{LatestProducts-PEIN355E.js.map → LatestProducts-EUROHOV5.js.map} +1 -1
  31. package/dist/{LoyaltyPage-GV6WMYVE.js → LoyaltyPage-V6UL2JG3.js} +15 -15
  32. package/dist/{LoyaltyPage-GV6WMYVE.js.map → LoyaltyPage-V6UL2JG3.js.map} +1 -1
  33. package/dist/{LoyaltyPointsPage-QNOVSCKB.js → LoyaltyPointsPage-DSUGI2WQ.js} +6 -6
  34. package/dist/{LoyaltyPointsPage-QNOVSCKB.js.map → LoyaltyPointsPage-DSUGI2WQ.js.map} +1 -1
  35. package/dist/{MainMenu-IN5HUX3U.js → MainMenu-L6SYV24F.js} +5 -5
  36. package/dist/{MainMenu-IN5HUX3U.js.map → MainMenu-L6SYV24F.js.map} +1 -1
  37. package/dist/{MasterLayout-GHAXKYOR.js → MasterLayout-35PAQI5L.js} +15 -15
  38. package/dist/{MasterLayout-GHAXKYOR.js.map → MasterLayout-35PAQI5L.js.map} +1 -1
  39. package/dist/{MobileMenu-XU45EZMG.js → MobileMenu-AMKXMQPQ.js} +16 -16
  40. package/dist/{MobileMenu-XU45EZMG.js.map → MobileMenu-AMKXMQPQ.js.map} +1 -1
  41. package/dist/{NotificationsPage-AMY7TARF.js → NotificationsPage-POSF3L7Z.js} +15 -15
  42. package/dist/{NotificationsPage-AMY7TARF.js.map → NotificationsPage-POSF3L7Z.js.map} +1 -1
  43. package/dist/{OrderSinglePage-L2E6YH3Z.js → OrderSinglePage-Y47JLCKF.js} +16 -16
  44. package/dist/{OrderSinglePage-L2E6YH3Z.js.map → OrderSinglePage-Y47JLCKF.js.map} +1 -1
  45. package/dist/{OrdersPage-76ORWMJY.js → OrdersPage-BLEBRK7S.js} +15 -15
  46. package/dist/{OrdersPage-76ORWMJY.js.map → OrdersPage-BLEBRK7S.js.map} +1 -1
  47. package/dist/{PageSingle-D7I6EHBF.js → PageSingle-UN5NXZ6G.js} +3 -3
  48. package/dist/{PageSingle-D7I6EHBF.js.map → PageSingle-UN5NXZ6G.js.map} +1 -1
  49. package/dist/{ProductDetails-BZVRXSCD.js → ProductDetails-MSJAUDZT.js} +5 -5
  50. package/dist/{ProductDetails-BZVRXSCD.js.map → ProductDetails-MSJAUDZT.js.map} +1 -1
  51. package/dist/{ProfilePage-65NYRBON.js → ProfilePage-ITTU6TKE.js} +15 -15
  52. package/dist/{ProfilePage-65NYRBON.js.map → ProfilePage-ITTU6TKE.js.map} +1 -1
  53. package/dist/{ReviewsPage-C7NSCMBE.js → ReviewsPage-F6LUX4JH.js} +3 -3
  54. package/dist/{ReviewsPage-C7NSCMBE.js.map → ReviewsPage-F6LUX4JH.js.map} +1 -1
  55. package/dist/{SeoCartWidget-GK3KC2M3.js → SeoCartWidget-ZPKKBEX6.js} +15 -15
  56. package/dist/{SeoCartWidget-GK3KC2M3.js.map → SeoCartWidget-ZPKKBEX6.js.map} +1 -1
  57. package/dist/{SettingsPage-7VGJBA5K.js → SettingsPage-DUT42ZM7.js} +15 -15
  58. package/dist/{SettingsPage-7VGJBA5K.js.map → SettingsPage-DUT42ZM7.js.map} +1 -1
  59. package/dist/{StoreClosedNotification-44JN2FZV.js → StoreClosedNotification-BIVXHO3M.js} +16 -16
  60. package/dist/{StoreClosedNotification-44JN2FZV.js.map → StoreClosedNotification-BIVXHO3M.js.map} +1 -1
  61. package/dist/{TestimonialsPage-KGCGTUJQ.js → TestimonialsPage-BVJKGYKY.js} +3 -3
  62. package/dist/{TestimonialsPage-KGCGTUJQ.js.map → TestimonialsPage-BVJKGYKY.js.map} +1 -1
  63. package/dist/ThankYouPage-4AF4JSSN.js +187 -0
  64. package/dist/ThankYouPage-4AF4JSSN.js.map +1 -0
  65. package/dist/{WalletPage-J3CX6MLS.js → WalletPage-JCGVSMQ2.js} +16 -16
  66. package/dist/{WalletPage-J3CX6MLS.js.map → WalletPage-JCGVSMQ2.js.map} +1 -1
  67. package/dist/{WebMcpTools-3MV53OMT.js → WebMcpTools-7AWIQEVW.js} +5 -5
  68. package/dist/{WebMcpTools-3MV53OMT.js.map → WebMcpTools-7AWIQEVW.js.map} +1 -1
  69. package/dist/{WishlistPage-HHX3OVOF.js → WishlistPage-PJGN3E6X.js} +17 -17
  70. package/dist/{WishlistPage-HHX3OVOF.js.map → WishlistPage-PJGN3E6X.js.map} +1 -1
  71. package/dist/ambient/salla-components.d.ts +42 -0
  72. package/dist/api/advertisement.js +2 -2
  73. package/dist/api/apps.js +2 -2
  74. package/dist/api/blog.js +3 -3
  75. package/dist/api/brands.js +3 -3
  76. package/dist/api/cart.js +3 -3
  77. package/dist/api/category.js +3 -3
  78. package/dist/api/client.js +1 -1
  79. package/dist/api/home.js +2 -2
  80. package/dist/api/loyalty.js +3 -3
  81. package/dist/api/menu.js +2 -2
  82. package/dist/api/notification.js +2 -2
  83. package/dist/api/order.js +3 -3
  84. package/dist/api/page.js +3 -3
  85. package/dist/api/product.js +3 -3
  86. package/dist/api/profile.js +1 -1
  87. package/dist/api/store.js +2 -2
  88. package/dist/api/translations.js +2 -2
  89. package/dist/api/user.js +2 -2
  90. package/dist/api/wallet.js +2 -2
  91. package/dist/api/wishlist.js +4 -4
  92. package/dist/{chunk-B36NISD2.js → chunk-25LQB2XQ.js} +4 -4
  93. package/dist/{chunk-B36NISD2.js.map → chunk-25LQB2XQ.js.map} +1 -1
  94. package/dist/{chunk-ZSEECSDV.js → chunk-3D4UXOBU.js} +7 -7
  95. package/dist/{chunk-ZSEECSDV.js.map → chunk-3D4UXOBU.js.map} +1 -1
  96. package/dist/{chunk-PCYZMJUC.js → chunk-3XRZEYOO.js} +3 -3
  97. package/dist/{chunk-PCYZMJUC.js.map → chunk-3XRZEYOO.js.map} +1 -1
  98. package/dist/{chunk-FXW6H6J3.js → chunk-4FUBEE6Q.js} +3 -3
  99. package/dist/{chunk-FXW6H6J3.js.map → chunk-4FUBEE6Q.js.map} +1 -1
  100. package/dist/{chunk-YEBA44IV.js → chunk-5C4ENAQA.js} +3 -3
  101. package/dist/{chunk-YEBA44IV.js.map → chunk-5C4ENAQA.js.map} +1 -1
  102. package/dist/{chunk-7PPNAVBF.js → chunk-6JTIZQEJ.js} +4 -4
  103. package/dist/{chunk-7PPNAVBF.js.map → chunk-6JTIZQEJ.js.map} +1 -1
  104. package/dist/{chunk-MVT5AF2A.js → chunk-6T55LXJL.js} +3 -2
  105. package/dist/chunk-6T55LXJL.js.map +1 -0
  106. package/dist/{chunk-VQO4TTPE.js → chunk-72I5YXU4.js} +4 -4
  107. package/dist/{chunk-VQO4TTPE.js.map → chunk-72I5YXU4.js.map} +1 -1
  108. package/dist/{chunk-K4YRFOFA.js → chunk-7QXWREJU.js} +7 -7
  109. package/dist/{chunk-K4YRFOFA.js.map → chunk-7QXWREJU.js.map} +1 -1
  110. package/dist/{chunk-DMGSEY7F.js → chunk-BETGKZUQ.js} +3 -3
  111. package/dist/{chunk-DMGSEY7F.js.map → chunk-BETGKZUQ.js.map} +1 -1
  112. package/dist/{chunk-QBVXQHVJ.js → chunk-BOB2Z4G7.js} +3 -3
  113. package/dist/{chunk-QBVXQHVJ.js.map → chunk-BOB2Z4G7.js.map} +1 -1
  114. package/dist/{chunk-AECYX56P.js → chunk-CITCHC3B.js} +4 -4
  115. package/dist/{chunk-AECYX56P.js.map → chunk-CITCHC3B.js.map} +1 -1
  116. package/dist/{chunk-X6WDFQYL.js → chunk-DOV2LE3E.js} +3 -3
  117. package/dist/{chunk-X6WDFQYL.js.map → chunk-DOV2LE3E.js.map} +1 -1
  118. package/dist/{chunk-C5P2C2NR.js → chunk-DQG7IMT3.js} +3 -3
  119. package/dist/{chunk-C5P2C2NR.js.map → chunk-DQG7IMT3.js.map} +1 -1
  120. package/dist/{chunk-VDY3VY7S.js → chunk-E6SVWI3B.js} +3 -3
  121. package/dist/{chunk-VDY3VY7S.js.map → chunk-E6SVWI3B.js.map} +1 -1
  122. package/dist/{chunk-O6RZ6AWT.js → chunk-ELI3F3IS.js} +4 -4
  123. package/dist/{chunk-O6RZ6AWT.js.map → chunk-ELI3F3IS.js.map} +1 -1
  124. package/dist/{chunk-C6PNF2OT.js → chunk-EXWAEAB2.js} +3 -3
  125. package/dist/{chunk-C6PNF2OT.js.map → chunk-EXWAEAB2.js.map} +1 -1
  126. package/dist/{chunk-FTH3XLIN.js → chunk-FR6K5DBJ.js} +3 -3
  127. package/dist/{chunk-FTH3XLIN.js.map → chunk-FR6K5DBJ.js.map} +1 -1
  128. package/dist/{chunk-5EN3XZ32.js → chunk-GEJDHAP5.js} +3 -3
  129. package/dist/{chunk-5EN3XZ32.js.map → chunk-GEJDHAP5.js.map} +1 -1
  130. package/dist/{chunk-2DUN6DZK.js → chunk-GIKY54MI.js} +3 -3
  131. package/dist/{chunk-2DUN6DZK.js.map → chunk-GIKY54MI.js.map} +1 -1
  132. package/dist/{chunk-DHKZCR6U.js → chunk-GKXRKR66.js} +5 -5
  133. package/dist/{chunk-DHKZCR6U.js.map → chunk-GKXRKR66.js.map} +1 -1
  134. package/dist/{chunk-JOHFXU4C.js → chunk-H3JEKVHZ.js} +4 -4
  135. package/dist/{chunk-JOHFXU4C.js.map → chunk-H3JEKVHZ.js.map} +1 -1
  136. package/dist/{chunk-F7S2QA3D.js → chunk-HAGJ2W6O.js} +7 -7
  137. package/dist/{chunk-F7S2QA3D.js.map → chunk-HAGJ2W6O.js.map} +1 -1
  138. package/dist/{chunk-CFG6PGUZ.js → chunk-HMMV7QYC.js} +4 -4
  139. package/dist/{chunk-CFG6PGUZ.js.map → chunk-HMMV7QYC.js.map} +1 -1
  140. package/dist/{chunk-3G4YCXOR.js → chunk-JCP3VCNO.js} +10 -10
  141. package/dist/{chunk-3G4YCXOR.js.map → chunk-JCP3VCNO.js.map} +1 -1
  142. package/dist/{chunk-EF3PLLLA.js → chunk-JLLDFGGH.js} +7 -7
  143. package/dist/{chunk-EF3PLLLA.js.map → chunk-JLLDFGGH.js.map} +1 -1
  144. package/dist/{chunk-3O6BB7SI.js → chunk-JZTNZ6C7.js} +3 -3
  145. package/dist/{chunk-3O6BB7SI.js.map → chunk-JZTNZ6C7.js.map} +1 -1
  146. package/dist/{chunk-QXWCIK6D.js → chunk-LAVMQ7HM.js} +4 -4
  147. package/dist/{chunk-QXWCIK6D.js.map → chunk-LAVMQ7HM.js.map} +1 -1
  148. package/dist/{chunk-A4Y5BVJN.js → chunk-LZ6RMZPJ.js} +3 -3
  149. package/dist/{chunk-A4Y5BVJN.js.map → chunk-LZ6RMZPJ.js.map} +1 -1
  150. package/dist/{chunk-Z4EQHB26.js → chunk-MDVGYQE6.js} +5 -5
  151. package/dist/{chunk-Z4EQHB26.js.map → chunk-MDVGYQE6.js.map} +1 -1
  152. package/dist/{chunk-T2O2IQJQ.js → chunk-MS2MOOPH.js} +4 -4
  153. package/dist/{chunk-T2O2IQJQ.js.map → chunk-MS2MOOPH.js.map} +1 -1
  154. package/dist/{chunk-VEVFVWF3.js → chunk-N7E6KO5Q.js} +3 -3
  155. package/dist/{chunk-VEVFVWF3.js.map → chunk-N7E6KO5Q.js.map} +1 -1
  156. package/dist/{chunk-VNHYMLGK.js → chunk-NFJE6MYZ.js} +3 -3
  157. package/dist/{chunk-VNHYMLGK.js.map → chunk-NFJE6MYZ.js.map} +1 -1
  158. package/dist/{chunk-BKSVKSAW.js → chunk-NMYYHEPN.js} +15 -15
  159. package/dist/{chunk-BKSVKSAW.js.map → chunk-NMYYHEPN.js.map} +1 -1
  160. package/dist/{chunk-7ZTSYUCJ.js → chunk-RDVZCO5A.js} +4 -4
  161. package/dist/{chunk-7ZTSYUCJ.js.map → chunk-RDVZCO5A.js.map} +1 -1
  162. package/dist/{chunk-YDRURQ2W.js → chunk-RMV5X6GY.js} +3 -3
  163. package/dist/{chunk-YDRURQ2W.js.map → chunk-RMV5X6GY.js.map} +1 -1
  164. package/dist/{chunk-3QOALQQJ.js → chunk-SCKSX4IS.js} +4 -4
  165. package/dist/{chunk-3QOALQQJ.js.map → chunk-SCKSX4IS.js.map} +1 -1
  166. package/dist/{chunk-PBT52UWY.js → chunk-XCSGB37K.js} +4 -4
  167. package/dist/{chunk-PBT52UWY.js.map → chunk-XCSGB37K.js.map} +1 -1
  168. package/dist/{chunk-TQQN5AE2.js → chunk-Y3G6GQKW.js} +3 -3
  169. package/dist/{chunk-TQQN5AE2.js.map → chunk-Y3G6GQKW.js.map} +1 -1
  170. package/dist/{chunk-HZWTDQVJ.js → chunk-ZONZSJ5G.js} +5 -5
  171. package/dist/{chunk-HZWTDQVJ.js.map → chunk-ZONZSJ5G.js.map} +1 -1
  172. package/dist/{chunk-BEYWTFOR.js → chunk-ZY5XF5ML.js} +3 -3
  173. package/dist/{chunk-BEYWTFOR.js.map → chunk-ZY5XF5ML.js.map} +1 -1
  174. package/dist/components/cart/index.js +1 -1
  175. package/dist/components/common/index.js +1 -1
  176. package/dist/components/drawer/index.js +13 -13
  177. package/dist/components/home/index.js +18 -18
  178. package/dist/components/layout/index.js +4 -4
  179. package/dist/components/product/index.js +15 -15
  180. package/dist/components/store/index.js +14 -14
  181. package/dist/dev/editor/index.js +1 -1
  182. package/dist/dev/index.js +1 -1
  183. package/dist/{document-class-SWL4NCC6.js → document-class-2BDL463P.js} +11 -11
  184. package/dist/{document-class-SWL4NCC6.js.map → document-class-2BDL463P.js.map} +1 -1
  185. package/dist/hooks/index.js +13 -13
  186. package/dist/hooks/useGtm.js +13 -13
  187. package/dist/hooks/useMoney.js +13 -13
  188. package/dist/hooks/useStore.js +13 -13
  189. package/dist/hooks/useUser.js +3 -3
  190. package/dist/index.js +13 -13
  191. package/dist/{navigation-VMR4V27L.js → navigation-4DEWYAFD.js} +4 -4
  192. package/dist/{navigation-VMR4V27L.js.map → navigation-4DEWYAFD.js.map} +1 -1
  193. package/dist/{navigation-7V4CSVG5.js → navigation-TXFKCXSH.js} +5 -5
  194. package/dist/{navigation-7V4CSVG5.js.map → navigation-TXFKCXSH.js.map} +1 -1
  195. package/dist/{not-found-S33EUV2Q.js → not-found-QCVLRYNM.js} +16 -16
  196. package/dist/{not-found-S33EUV2Q.js.map → not-found-QCVLRYNM.js.map} +1 -1
  197. package/dist/providers/index.js +13 -13
  198. package/dist/routes/account/orders.js +4 -4
  199. package/dist/routes/account.js +13 -13
  200. package/dist/routes/blog.js +8 -8
  201. package/dist/routes/brands.js +4 -4
  202. package/dist/routes/cart.js +22 -22
  203. package/dist/routes/home.js +19 -19
  204. package/dist/routes/index.js +3 -3
  205. package/dist/routes/loyalty.js +5 -5
  206. package/dist/routes/page.js +4 -4
  207. package/dist/routes/product-listing.js +20 -20
  208. package/dist/routes/product.js +18 -18
  209. package/dist/routes/seo-redirects.js +3 -3
  210. package/dist/routes/testimonials.js +2 -2
  211. package/dist/routes/thank-you/ThankYouPage.d.ts +2 -1
  212. package/dist/routes/thank-you/ThankYouPage.d.ts.map +1 -1
  213. package/dist/routes/thank-you/loader.d.ts +5 -1
  214. package/dist/routes/thank-you/loader.d.ts.map +1 -1
  215. package/dist/routes/thank-you/types.d.ts +23 -1
  216. package/dist/routes/thank-you/types.d.ts.map +1 -1
  217. package/dist/routes/thank-you.js +79 -15
  218. package/dist/routes/thank-you.js.map +1 -1
  219. package/dist/skeleton.js +19 -19
  220. package/dist/{store-lookup-D5C2LNXK.js → store-lookup-6GMQGPVL.js} +8 -8
  221. package/dist/{store-lookup-D5C2LNXK.js.map → store-lookup-6GMQGPVL.js.map} +1 -1
  222. package/dist/tanstack.js +11 -11
  223. package/dist/types/hooks.d.ts +1 -0
  224. package/dist/types/hooks.d.ts.map +1 -1
  225. package/dist/types/hooks.js +1 -1
  226. package/dist/types/index.js +1 -1
  227. package/dist/utils/index.js +2 -2
  228. package/dist/vite/index.js +1 -0
  229. package/dist/vite/index.js.map +1 -1
  230. package/dist/vite/plugins/best-practices/hooks-registry.d.ts.map +1 -1
  231. package/package.json +1 -1
  232. package/tailwind/routes/thank-you/ThankYouPage.tsx.txt +124 -209
  233. package/tailwind/routes/thank-you/index.tsx.txt +1 -1
  234. package/tailwind/routes/thank-you/loader.ts.txt +112 -14
  235. package/tailwind/routes/thank-you/types.ts.txt +24 -1
  236. package/dist/ThankYouPage-XWB4X236.js +0 -267
  237. package/dist/ThankYouPage-XWB4X236.js.map +0 -1
  238. package/dist/chunk-MVT5AF2A.js.map +0 -1
@@ -1,31 +1,31 @@
1
- import { ProductsSlider, LazyTestimonials } from '../chunk-ZSEECSDV.js';
2
- import '../chunk-FXW6H6J3.js';
3
- import { product } from '../chunk-7PPNAVBF.js';
4
- import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-DHKZCR6U.js';
5
- import '../chunk-JOHFXU4C.js';
1
+ import { ProductsSlider, LazyTestimonials } from '../chunk-3D4UXOBU.js';
2
+ import '../chunk-4FUBEE6Q.js';
3
+ import { product } from '../chunk-6JTIZQEJ.js';
4
+ import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-GKXRKR66.js';
5
+ import '../chunk-H3JEKVHZ.js';
6
6
  import '../chunk-Y32RHCOH.js';
7
- import { fastCheckoutScript } from '../chunk-BKSVKSAW.js';
7
+ import { fastCheckoutScript } from '../chunk-NMYYHEPN.js';
8
8
  import '../chunk-Q77J3D2W.js';
9
- import '../chunk-F7S2QA3D.js';
10
- import '../chunk-PCYZMJUC.js';
9
+ import '../chunk-HAGJ2W6O.js';
10
+ import '../chunk-3XRZEYOO.js';
11
11
  import '../chunk-5V4W3GBI.js';
12
12
  import '../chunk-X55R4VVK.js';
13
13
  import '../chunk-YL6X3ZMG.js';
14
- import '../chunk-YEBA44IV.js';
14
+ import '../chunk-5C4ENAQA.js';
15
15
  import '../chunk-OXMUPNMH.js';
16
- import '../chunk-5EN3XZ32.js';
16
+ import '../chunk-GEJDHAP5.js';
17
17
  import '../chunk-VVZNW5CB.js';
18
18
  import '../chunk-EGI7F57E.js';
19
19
  import '../chunk-GD26FI4J.js';
20
20
  import '../chunk-SLBO4SEE.js';
21
21
  import { buildHreflangAlternates } from '../chunk-MGG4XAJ5.js';
22
- import '../chunk-VEVFVWF3.js';
22
+ import '../chunk-N7E6KO5Q.js';
23
23
  import { RouteId } from '../chunk-OUW6WESU.js';
24
24
  import { useComments } from '../chunk-IHOUADLX.js';
25
25
  import '../chunk-HI5V5X3S.js';
26
- import '../chunk-3O6BB7SI.js';
27
- import '../chunk-A4Y5BVJN.js';
28
- import '../chunk-MVT5AF2A.js';
26
+ import '../chunk-JZTNZ6C7.js';
27
+ import '../chunk-LZ6RMZPJ.js';
28
+ import '../chunk-6T55LXJL.js';
29
29
  import '../chunk-Z653O7MX.js';
30
30
  import '../chunk-ZCH7W7DZ.js';
31
31
  import { useProduct } from '../chunk-H7LRGY7U.js';
@@ -35,16 +35,16 @@ import '../chunk-7V36I5GT.js';
35
35
  import '../chunk-6WI7R2BD.js';
36
36
  import '../chunk-M5WTY3EH.js';
37
37
  import '../chunk-OAMIDZKW.js';
38
- import '../chunk-YDRURQ2W.js';
38
+ import '../chunk-RMV5X6GY.js';
39
39
  import '../chunk-OQIIJRAS.js';
40
40
  import '../chunk-V2ZDTY6H.js';
41
- import '../chunk-VDY3VY7S.js';
41
+ import '../chunk-E6SVWI3B.js';
42
42
  import { HookSlot } from '../chunk-5XDPAKF5.js';
43
43
  import '../chunk-GCPEMNSU.js';
44
- import { getActiveCurrency } from '../chunk-2DUN6DZK.js';
44
+ import { getActiveCurrency } from '../chunk-GIKY54MI.js';
45
45
  import '../chunk-Z5M4YYWT.js';
46
46
  import { useTranslation } from '../chunk-TYNZ5B2B.js';
47
- import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-FTH3XLIN.js';
47
+ import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-FR6K5DBJ.js';
48
48
  import '../chunk-AXW67SY7.js';
49
49
  import '../chunk-BYMOPN2S.js';
50
50
  import '../chunk-SKLEJJ6M.js';
@@ -1,7 +1,7 @@
1
- export { LogoutRedirect, accountRedirectLoader, pendingOrdersRedirectLoader, productsSourceRedirectLoader, ratingRedirectLoader, slugBrandRedirectLoader } from '../chunk-BEYWTFOR.js';
2
- import '../chunk-VEVFVWF3.js';
1
+ export { LogoutRedirect, accountRedirectLoader, pendingOrdersRedirectLoader, productsSourceRedirectLoader, ratingRedirectLoader, slugBrandRedirectLoader } from '../chunk-ZY5XF5ML.js';
2
+ import '../chunk-N7E6KO5Q.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-2DUN6DZK.js';
4
+ import '../chunk-GIKY54MI.js';
5
5
  import '../chunk-Z5M4YYWT.js';
6
6
  import '../chunk-6TFM3UTF.js';
7
7
  import '../chunk-XMRNYUQY.js';
@@ -33,10 +33,10 @@ async function reviewsLoader() {
33
33
 
34
34
  // src/routes/testimonials/index.tsx
35
35
  var LazyTestimonialsPage = lazyComponent(
36
- () => import('../TestimonialsPage-KGCGTUJQ.js').then((m) => ({ default: m.TestimonialsPage }))
36
+ () => import('../TestimonialsPage-BVJKGYKY.js').then((m) => ({ default: m.TestimonialsPage }))
37
37
  );
38
38
  var LazyReviewsPage = lazyComponent(
39
- () => import('../ReviewsPage-C7NSCMBE.js').then((m) => ({ default: m.ReviewsPage }))
39
+ () => import('../ReviewsPage-F6LUX4JH.js').then((m) => ({ default: m.ReviewsPage }))
40
40
  );
41
41
  var TestimonialsPage = LazyTestimonialsPage;
42
42
  var ReviewsPage = LazyReviewsPage;
@@ -1,3 +1,4 @@
1
1
  import type { ThankYouPageProps } from './types';
2
- export declare function ThankYouPage({ page, order, thank_you_title, messages, }: ThankYouPageProps): import("react").JSX.Element;
2
+ /** The order confirmation page, built like Twig Raed's from the Twilight thank-you components. */
3
+ export declare function ThankYouPage({ page, order, thank_you_title, messages, instructions, items, is_pickable, created_at, loyalty_points, loyalty_url, cashback, wallet_url, }: ThankYouPageProps): import("react").JSX.Element;
3
4
  //# sourceMappingURL=ThankYouPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThankYouPage.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/ThankYouPage.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAQjD,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAK,EACL,eAAe,EACf,QAAyB,GAC1B,EAAE,iBAAiB,+BA4NnB"}
1
+ {"version":3,"file":"ThankYouPage.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/ThankYouPage.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAQjD,kGAAkG;AAClG,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,KAAK,EACL,eAAe,EACf,QAAyB,EACzB,YAAY,EACZ,KAAK,EACL,WAAW,EACX,UAAU,EACV,cAAkB,EAClB,WAAW,EACX,QAAQ,EACR,UAAU,GACX,EAAE,iBAAiB,+BAmInB"}
@@ -1,5 +1,9 @@
1
1
  import type { ThankYouPageProps, ThankYouLoaderParams } from './types';
2
- export declare function thankYouLoader({ params, }: {
2
+ import type { Order } from '../account/types';
3
+ /** `2026-11-03 14:00:42.000000` in `Asia/Riyadh` -> `2026-11-03T14:00:42+03:00`. */
4
+ export declare function orderCreatedAtIso(createdAt?: Order['created_at']): string | undefined;
5
+ export declare function thankYouLoader({ params, locale, }: {
3
6
  params: ThankYouLoaderParams;
7
+ locale?: string;
4
8
  }): Promise<ThankYouPageProps>;
5
9
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAMvE,wBAAsB,cAAc,CAAC,EACnC,MAAM,GACP,EAAE;IACD,MAAM,EAAE,oBAAoB,CAAC;CAC9B,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6B7B"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/loader.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAoB,MAAM,SAAS,CAAC;AACzF,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAsC9C,oFAAoF;AACpF,wBAAgB,iBAAiB,CAAC,SAAS,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,GAAG,MAAM,GAAG,SAAS,CAiBrF;AAED,wBAAsB,cAAc,CAAC,EACnC,MAAM,EACN,MAAM,GACP,EAAE;IACD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwE7B"}
@@ -1,8 +1,17 @@
1
- import type { Page } from '../../types';
1
+ import type { Money, Page } from '../../types';
2
2
  import type { Order } from '../account/types';
3
3
  export interface ThankYouLoaderParams {
4
4
  orderId: string;
5
5
  }
6
+ /** An order line in the shape the thank-you web components read. */
7
+ export interface ThankYouLineItem {
8
+ id?: number;
9
+ name: string;
10
+ image?: string;
11
+ quantity: number;
12
+ price?: Money;
13
+ url?: string;
14
+ }
6
15
  export interface ThankYouPageProps {
7
16
  page: Page;
8
17
  /** Absent when the authenticated `orders/{id}` fetch fails (e.g. guest checkout / no token). */
@@ -11,5 +20,18 @@ export interface ThankYouPageProps {
11
20
  share_message?: string;
12
21
  short_share_message?: string;
13
22
  messages?: string[];
23
+ /** The merchant's message for the order's status (HTML). */
24
+ instructions?: string;
25
+ items?: ThankYouLineItem[];
26
+ /** Pickup orders show the branch card instead of the shipments card. */
27
+ is_pickable?: boolean;
28
+ /** Order time as ISO 8601 with the store's offset. */
29
+ created_at?: string;
30
+ /** Loyalty points this order earns; 0 when the store has no loyalty program. */
31
+ loyalty_points?: number;
32
+ loyalty_url?: string;
33
+ /** Cashback already credited to the customer's wallet for this order. */
34
+ cashback?: Money;
35
+ wallet_url?: string;
14
36
  }
15
37
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,gGAAgG;IAChG,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE9C,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,oEAAoE;AACpE,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,IAAI,CAAC;IACX,gGAAgG;IAChG,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC3B,wEAAwE;IACxE,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,sDAAsD;IACtD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,KAAK,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
@@ -1,8 +1,8 @@
1
- import { order } from '../chunk-T2O2IQJQ.js';
2
- import { buildHreflangAlternates } from '../chunk-MGG4XAJ5.js';
3
- import '../chunk-VEVFVWF3.js';
1
+ import { order } from '../chunk-MS2MOOPH.js';
2
+ import { buildHreflangAlternates, storePageUrl } from '../chunk-MGG4XAJ5.js';
3
+ import '../chunk-N7E6KO5Q.js';
4
4
  import { RouteId } from '../chunk-OUW6WESU.js';
5
- import '../chunk-2DUN6DZK.js';
5
+ import { getAuthToken, api } from '../chunk-GIKY54MI.js';
6
6
  import '../chunk-Z5M4YYWT.js';
7
7
  import '../chunk-6TFM3UTF.js';
8
8
  import '../chunk-XMRNYUQY.js';
@@ -14,17 +14,75 @@ import { lazyComponent } from '../chunk-VYGA5AT5.js';
14
14
  import '../chunk-DGUM43GV.js';
15
15
 
16
16
  // src/routes/thank-you/loader.ts
17
+ var INSTRUCTION_BY_STATUS = {
18
+ payment_pending: "order_instructions_payment_waiting",
19
+ under_review: "order_instructions_under_review",
20
+ completed: "order_instructions_completed"
21
+ };
22
+ async function orderLoyaltyPoints() {
23
+ const response = await api.get("balance/points").json();
24
+ return response.data ?? [];
25
+ }
26
+ async function walletTransactions() {
27
+ const response = await api.get("balance/wallet?page=1&per_page=20").json();
28
+ const transactions = response.data?.transactions;
29
+ return Array.isArray(transactions) ? transactions : transactions?.data ?? [];
30
+ }
31
+ function offsetMinutes(timeZone, at) {
32
+ const name = new Intl.DateTimeFormat("en-US", { timeZone, timeZoneName: "longOffset" }).formatToParts(at).find((part) => part.type === "timeZoneName")?.value;
33
+ const [, sign, hours, minutes] = name?.match(/([+-])(\d{2}):(\d{2})/) ?? [];
34
+ return sign ? (sign === "-" ? -1 : 1) * (Number(hours) * 60 + Number(minutes)) : 0;
35
+ }
36
+ function orderCreatedAtIso(createdAt) {
37
+ if (!createdAt?.date) return void 0;
38
+ const [day, time = "00:00:00"] = createdAt.date.split(" ");
39
+ const local = `${day}T${time.slice(0, 8)}`;
40
+ try {
41
+ const asUtc = Date.parse(`${local}Z`);
42
+ const offset = offsetMinutes(
43
+ createdAt.timezone,
44
+ asUtc - offsetMinutes(createdAt.timezone, asUtc) * 6e4
45
+ );
46
+ const abs = Math.abs(offset);
47
+ const hhmm = `${String(Math.floor(abs / 60)).padStart(2, "0")}:${String(abs % 60).padStart(2, "0")}`;
48
+ return `${local}${offset < 0 ? "-" : "+"}${hhmm}`;
49
+ } catch {
50
+ return local;
51
+ }
52
+ }
17
53
  async function thankYouLoader({
18
- params
54
+ params,
55
+ locale
19
56
  }) {
20
57
  const orderId = params.orderId;
21
- const [orderResult, thankYouResult] = await Promise.allSettled([
58
+ const { i18n, settings } = getTwilightContext();
59
+ const store = settings?.store;
60
+ const signedIn = !!getAuthToken();
61
+ const loyaltyEnabled = signedIn && !!store?.features?.includes("loyalty-system");
62
+ const [orderResult, componentsResult, pointsResult, walletResult] = await Promise.allSettled([
22
63
  order.find(orderId),
23
- order.thankYou(orderId)
64
+ order.findForComponents(orderId),
65
+ loyaltyEnabled ? orderLoyaltyPoints() : Promise.resolve([]),
66
+ signedIn ? walletTransactions() : Promise.resolve([])
24
67
  ]);
25
68
  const orderData = orderResult.status === "fulfilled" ? orderResult.value.order : void 0;
26
- const thankYouData = thankYouResult.status === "fulfilled" ? thankYouResult.value : void 0;
27
- const i18n = getTwilightContext().i18n;
69
+ const componentsOrder = componentsResult.status === "fulfilled" ? componentsResult.value : void 0;
70
+ const isThisOrder = (id) => !!orderData && Number(id) === Number(orderData.reference_id);
71
+ const loyaltyPoints = pointsResult.status === "fulfilled" ? pointsResult.value.find(
72
+ (entry) => entry.key === "BUY_FROM_STORE" && isThisOrder(entry.order_id)
73
+ )?.amount ?? 0 : 0;
74
+ const cashbackAmount = walletResult.status === "fulfilled" ? walletResult.value.filter((entry) => entry.action_type === "cashback" && isThisOrder(entry.order_id)).reduce((sum, entry) => sum + Number(entry.amount), 0) : 0;
75
+ const items = orderData?.items.map((item, index) => ({
76
+ id: item.id,
77
+ name: item.name,
78
+ image: item.thumbnail ?? item.product_thumbnail ?? item.image,
79
+ quantity: item.quantity,
80
+ price: item.amounts.amount,
81
+ url: componentsOrder?.items[index]?.product?.url
82
+ }));
83
+ const instructionKey = orderData ? INSTRUCTION_BY_STATUS[orderData.status?.slug ?? ""] : void 0;
84
+ const instruction = instructionKey ? store?.order_instruction?.[instructionKey] : void 0;
85
+ const storeUrl = (path) => storePageUrl(settings, locale ? `/${locale}${path}` : path);
28
86
  return {
29
87
  page: {
30
88
  slug: RouteId.THANK_YOU,
@@ -32,20 +90,26 @@ async function thankYouLoader({
32
90
  title: i18n.t("common.titles.thank_you") || "Thank You"
33
91
  },
34
92
  order: orderData,
35
- thank_you_title: thankYouData?.thank_you_title,
36
- messages: thankYouData?.messages ?? [],
37
- share_message: thankYouData?.share_message,
38
- short_share_message: thankYouData?.short_share_message
93
+ thank_you_title: store?.order_instruction?.thank_title || void 0,
94
+ messages: [],
95
+ instructions: instruction || void 0,
96
+ items,
97
+ is_pickable: !!componentsOrder?.is_pickable,
98
+ created_at: orderCreatedAtIso(orderData?.created_at),
99
+ loyalty_points: loyaltyPoints,
100
+ loyalty_url: storeUrl("/loyalty"),
101
+ cashback: cashbackAmount > 0 && orderData ? { amount: cashbackAmount, currency: orderData.currency } : void 0,
102
+ wallet_url: storeUrl("/wallet")
39
103
  };
40
104
  }
41
105
 
42
106
  // src/routes/thank-you/index.tsx
43
107
  var LazyThankYouPage = lazyComponent(
44
- () => import('../ThankYouPage-XWB4X236.js').then((m) => ({ default: m.ThankYouPage }))
108
+ () => import('../ThankYouPage-4AF4JSSN.js').then((m) => ({ default: m.ThankYouPage }))
45
109
  );
46
110
  var ThankYouPage = LazyThankYouPage;
47
111
  async function loader(ctx, extend) {
48
- const data = await thankYouLoader({ params: ctx.params });
112
+ const data = await thankYouLoader({ params: ctx.params, locale: ctx.locale });
49
113
  if (extend) {
50
114
  const extra = await extend(data, ctx);
51
115
  return { ...data, ...extra };
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/routes/thank-you/loader.ts","../../src/routes/thank-you/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,eAAsB,cAAA,CAAe;AAAA,EACnC;AACF,CAAA,EAE+B;AAC7B,EAAA,MAAM,UAAU,MAAA,CAAO,OAAA;AAMvB,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,MAAM,QAAQ,UAAA,CAAW;AAAA,IAC7D,KAAA,CAAM,KAAK,OAAO,CAAA;AAAA,IAClB,KAAA,CAAM,SAAS,OAAO;AAAA,GACvB,CAAA;AAED,EAAA,MAAM,YACJ,WAAA,CAAY,MAAA,KAAW,WAAA,GAAc,WAAA,CAAY,MAAM,KAAA,GAAQ,MAAA;AACjE,EAAA,MAAM,YAAA,GAAe,cAAA,CAAe,MAAA,KAAW,WAAA,GAAc,eAAe,KAAA,GAAQ,MAAA;AAEpF,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,MACJ,MAAM,OAAA,CAAQ,SAAA;AAAA,MACd,EAAA,EAAI,SAAA,GAAY,MAAA,CAAO,SAAA,CAAU,EAAE,CAAA,GAAI,OAAA;AAAA,MACvC,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,yBAAyB,CAAA,IAAK;AAAA,KAC9C;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,iBAAiB,YAAA,EAAc,eAAA;AAAA,IAC/B,QAAA,EAAU,YAAA,EAAc,QAAA,IAAY,EAAC;AAAA,IACrC,eAAe,YAAA,EAAc,aAAA;AAAA,IAC7B,qBAAqB,YAAA,EAAc;AAAA,GACrC;AACF;;;AC7BA,IAAM,gBAAA,GAAmB,aAAA;AAAA,EAAc,MACrC,OAAO,6BAAgB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,YAAA,EAAa,CAAE;AACpE,CAAA;AAEO,IAAM,YAAA,GAAe;AAI5B,eAAe,MAAA,CACb,KACA,MAAA,EAI4B;AAC5B,EAAA,MAAM,OAAO,MAAM,cAAA,CAAe,EAAE,MAAA,EAAQ,GAAA,CAAI,QAAQ,CAAA;AAExD,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,IAAA,EAAM,GAAG,CAAA;AACpC,IAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAG,KAAA,EAAM;AAAA,EAC7B;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,IAAA,CAAK,KAAsB,IAAA,EAAyC;AAC3E,EAAA,MAAM,IAAA,GAAuB;AAAA,IAC3B,KAAA,EAAO,KAAK,IAAA,CAAK,KAAA;AAAA,IACjB,WAAA,EAAa,KAAK,IAAA,CAAK,WAAA;AAAA,IACvB,oBAAoB,uBAAA,CAAwB,GAAA,CAAI,QAAA,EAAU,GAAA,CAAI,SAAS,QAAQ;AAAA,GACjF;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,QAAA,GAAW;AAAA,EACtB,IAAI,OAAA,CAAQ,SAAA;AAAA,EACZ,MAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA,EAAW;AACb","file":"thank-you.js","sourcesContent":["import type { ThankYouPageProps, ThankYouLoaderParams } from './types';\nimport type { Order } from '../account/types';\nimport { order } from '../../api/order';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport async function thankYouLoader({\n params,\n}: {\n params: ThankYouLoaderParams;\n}): Promise<ThankYouPageProps> {\n const orderId = params.orderId;\n\n // orders/{id} needs a customer token that guest checkout / tokenless SSR lacks (400\n // token_not_provided). Don't let that 500 the page — render whatever resolves.\n // ponytail: guest order detail needs checkout/thank-you to return the order; source it\n // here once that payload is confirmed on a correctly store-bound worker.\n const [orderResult, thankYouResult] = await Promise.allSettled([\n order.find(orderId),\n order.thankYou(orderId),\n ]);\n\n const orderData: Order | undefined =\n orderResult.status === 'fulfilled' ? orderResult.value.order : undefined;\n const thankYouData = thankYouResult.status === 'fulfilled' ? thankYouResult.value : undefined;\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.THANK_YOU,\n id: orderData ? String(orderData.id) : orderId,\n title: i18n.t('common.titles.thank_you') || 'Thank You',\n },\n order: orderData,\n thank_you_title: thankYouData?.thank_you_title,\n messages: thankYouData?.messages ?? [],\n share_message: thankYouData?.share_message,\n short_share_message: thankYouData?.short_share_message,\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport { thankYouLoader } from './loader';\nimport type { ThankYouPageProps, ThankYouLoaderParams } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { lazyComponent } from '../../utils/lazy-component';\n\n// Lazy-load component for code-splitting\nconst LazyThankYouPage = lazyComponent(() =>\n import('./ThankYouPage').then((m) => ({ default: m.ThankYouPage }))\n);\n\nexport const ThankYouPage = LazyThankYouPage;\nexport { thankYouLoader } from './loader';\nexport type { ThankYouLoaderParams, ThankYouPageProps } from './types';\n\nasync function loader(\n ctx: { params: ThankYouLoaderParams; locale?: string },\n extend?: (\n data: ThankYouPageProps,\n ctx: { params: ThankYouLoaderParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<ThankYouPageProps> {\n const data = await thankYouLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as ThankYouPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: ThankYouPageProps): 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 ThankYou = {\n id: RouteId.THANK_YOU,\n loader,\n head,\n Component: LazyThankYouPage,\n} as const;\n"]}
1
+ {"version":3,"sources":["../../src/routes/thank-you/loader.ts","../../src/routes/thank-you/index.tsx"],"names":[],"mappings":"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","file":"thank-you.js","sourcesContent":["import type { ThankYouPageProps, ThankYouLoaderParams, ThankYouLineItem } from './types';\nimport type { Order } from '../account/types';\nimport type { PointBalanceResponse } from '../loyalty/types';\nimport type { TransactionItem } from '../../api/wallet';\nimport type { StoreOrderInstruction } from '../../types';\nimport { api, getAuthToken } from '../../api/client';\nimport { order, type TwilightOrder } from '../../api/order';\nimport { getTwilightContext } from '../../twilight/context';\nimport { storePageUrl } from '../../utils/baseHead';\nimport { RouteId } from '../../router/route-ids';\n\nconst INSTRUCTION_BY_STATUS: Record<string, keyof StoreOrderInstruction> = {\n payment_pending: 'order_instructions_payment_waiting',\n under_review: 'order_instructions_under_review',\n completed: 'order_instructions_completed',\n};\n\nasync function orderLoyaltyPoints(): Promise<PointBalanceResponse['data']> {\n const response = await api.get('balance/points').json<PointBalanceResponse>();\n return response.data ?? [];\n}\n\n// A plain array today; `wallet.list` expects the paginated object, so accept both.\nasync function walletTransactions(): Promise<TransactionItem[]> {\n const response = await api\n .get('balance/wallet?page=1&per_page=20')\n .json<{ data?: { transactions?: TransactionItem[] | { data?: TransactionItem[] } } }>();\n const transactions = response.data?.transactions;\n return Array.isArray(transactions) ? transactions : (transactions?.data ?? []);\n}\n\nfunction offsetMinutes(timeZone: string, at: number): number {\n const name = new Intl.DateTimeFormat('en-US', { timeZone, timeZoneName: 'longOffset' })\n .formatToParts(at)\n .find((part) => part.type === 'timeZoneName')?.value;\n const [, sign, hours, minutes] = name?.match(/([+-])(\\d{2}):(\\d{2})/) ?? [];\n return sign ? (sign === '-' ? -1 : 1) * (Number(hours) * 60 + Number(minutes)) : 0;\n}\n\n/** `2026-11-03 14:00:42.000000` in `Asia/Riyadh` -> `2026-11-03T14:00:42+03:00`. */\nexport function orderCreatedAtIso(createdAt?: Order['created_at']): string | undefined {\n if (!createdAt?.date) return undefined;\n const [day, time = '00:00:00'] = createdAt.date.split(' ');\n const local = `${day}T${time.slice(0, 8)}`;\n try {\n const asUtc = Date.parse(`${local}Z`);\n // The local clock read as UTC can fall on the other side of a DST change; look again.\n const offset = offsetMinutes(\n createdAt.timezone,\n asUtc - offsetMinutes(createdAt.timezone, asUtc) * 60_000\n );\n const abs = Math.abs(offset);\n const hhmm = `${String(Math.floor(abs / 60)).padStart(2, '0')}:${String(abs % 60).padStart(2, '0')}`;\n return `${local}${offset < 0 ? '-' : '+'}${hhmm}`;\n } catch {\n return local;\n }\n}\n\nexport async function thankYouLoader({\n params,\n locale,\n}: {\n params: ThankYouLoaderParams;\n locale?: string;\n}): Promise<ThankYouPageProps> {\n const orderId = params.orderId;\n const { i18n, settings } = getTwilightContext();\n const store = settings?.store;\n const signedIn = !!getAuthToken();\n const loyaltyEnabled = signedIn && !!store?.features?.includes('loyalty-system');\n\n // Guests have no token for orders/{id}; render whatever resolves.\n const [orderResult, componentsResult, pointsResult, walletResult] = await Promise.allSettled([\n order.find(orderId),\n order.findForComponents(orderId),\n loyaltyEnabled ? orderLoyaltyPoints() : Promise.resolve([]),\n signedIn ? walletTransactions() : Promise.resolve([]),\n ]);\n\n const orderData: Order | undefined =\n orderResult.status === 'fulfilled' ? orderResult.value.order : undefined;\n const componentsOrder: TwilightOrder | undefined =\n componentsResult.status === 'fulfilled' ? componentsResult.value : undefined;\n // Points and wallet entries name the order by its reference number, not its id.\n const isThisOrder = (id: number | string | null | undefined) =>\n !!orderData && Number(id) === Number(orderData.reference_id);\n\n const loyaltyPoints =\n pointsResult.status === 'fulfilled'\n ? (pointsResult.value.find(\n (entry) => entry.key === 'BUY_FROM_STORE' && isThisOrder(entry.order_id)\n )?.amount ?? 0)\n : 0;\n const cashbackAmount =\n walletResult.status === 'fulfilled'\n ? walletResult.value\n .filter((entry) => entry.action_type === 'cashback' && isThisOrder(entry.order_id))\n .reduce((sum, entry) => sum + Number(entry.amount), 0)\n : 0;\n\n const items: ThankYouLineItem[] | undefined = orderData?.items.map((item, index) => ({\n id: item.id,\n name: item.name,\n image: item.thumbnail ?? item.product_thumbnail ?? item.image,\n quantity: item.quantity,\n price: item.amounts.amount,\n url: componentsOrder?.items[index]?.product?.url,\n }));\n\n const instructionKey = orderData\n ? INSTRUCTION_BY_STATUS[orderData.status?.slug ?? '']\n : undefined;\n const instruction = instructionKey ? store?.order_instruction?.[instructionKey] : undefined;\n const storeUrl = (path: string) => storePageUrl(settings, locale ? `/${locale}${path}` : path);\n\n return {\n page: {\n slug: RouteId.THANK_YOU,\n id: orderData ? String(orderData.id) : orderId,\n title: i18n.t('common.titles.thank_you') || 'Thank You',\n },\n order: orderData,\n thank_you_title: store?.order_instruction?.thank_title || undefined,\n messages: [],\n instructions: instruction || undefined,\n items,\n is_pickable: !!(componentsOrder as { is_pickable?: boolean } | undefined)?.is_pickable,\n created_at: orderCreatedAtIso(orderData?.created_at),\n loyalty_points: loyaltyPoints,\n loyalty_url: storeUrl('/loyalty'),\n cashback:\n cashbackAmount > 0 && orderData\n ? { amount: cashbackAmount, currency: orderData.currency }\n : undefined,\n wallet_url: storeUrl('/wallet'),\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport { thankYouLoader } from './loader';\nimport type { ThankYouPageProps, ThankYouLoaderParams } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { lazyComponent } from '../../utils/lazy-component';\n\n// Lazy-load component for code-splitting\nconst LazyThankYouPage = lazyComponent(() =>\n import('./ThankYouPage').then((m) => ({ default: m.ThankYouPage }))\n);\n\nexport const ThankYouPage = LazyThankYouPage;\nexport { thankYouLoader } from './loader';\nexport type { ThankYouLoaderParams, ThankYouPageProps } from './types';\n\nasync function loader(\n ctx: { params: ThankYouLoaderParams; locale?: string },\n extend?: (\n data: ThankYouPageProps,\n ctx: { params: ThankYouLoaderParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<ThankYouPageProps> {\n const data = await thankYouLoader({ params: ctx.params, locale: ctx.locale });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as ThankYouPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: ThankYouPageProps): 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 ThankYou = {\n id: RouteId.THANK_YOU,\n loader,\n head,\n Component: LazyThankYouPage,\n} as const;\n"]}
package/dist/skeleton.js CHANGED
@@ -1,34 +1,34 @@
1
1
  export { BlogSkeleton, BreadcrumbSkeleton, CartSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from './chunk-N7CCSGZF.js';
2
- export { HomeSkeleton } from './chunk-HZWTDQVJ.js';
2
+ export { HomeSkeleton } from './chunk-ZONZSJ5G.js';
3
3
  import './chunk-IXHM24Z4.js';
4
- import './chunk-ZSEECSDV.js';
5
- import './chunk-FXW6H6J3.js';
6
- import './chunk-7PPNAVBF.js';
7
- import './chunk-DHKZCR6U.js';
8
- import './chunk-JOHFXU4C.js';
4
+ import './chunk-3D4UXOBU.js';
5
+ import './chunk-4FUBEE6Q.js';
6
+ import './chunk-6JTIZQEJ.js';
7
+ import './chunk-GKXRKR66.js';
8
+ import './chunk-H3JEKVHZ.js';
9
9
  import './chunk-Y32RHCOH.js';
10
- import './chunk-BKSVKSAW.js';
10
+ import './chunk-NMYYHEPN.js';
11
11
  import './chunk-Q77J3D2W.js';
12
- import './chunk-F7S2QA3D.js';
13
- import './chunk-PCYZMJUC.js';
12
+ import './chunk-HAGJ2W6O.js';
13
+ import './chunk-3XRZEYOO.js';
14
14
  import './chunk-5V4W3GBI.js';
15
15
  import './chunk-X55R4VVK.js';
16
16
  import './chunk-YL6X3ZMG.js';
17
- import './chunk-YEBA44IV.js';
17
+ import './chunk-5C4ENAQA.js';
18
18
  import './chunk-OXMUPNMH.js';
19
- import './chunk-5EN3XZ32.js';
19
+ import './chunk-GEJDHAP5.js';
20
20
  import './chunk-VVZNW5CB.js';
21
21
  import './chunk-EGI7F57E.js';
22
22
  import './chunk-GD26FI4J.js';
23
23
  import './chunk-SLBO4SEE.js';
24
24
  import './chunk-MGG4XAJ5.js';
25
- import './chunk-VEVFVWF3.js';
25
+ import './chunk-N7E6KO5Q.js';
26
26
  import './chunk-OUW6WESU.js';
27
27
  import './chunk-IHOUADLX.js';
28
28
  import './chunk-HI5V5X3S.js';
29
- import './chunk-3O6BB7SI.js';
30
- import './chunk-A4Y5BVJN.js';
31
- import './chunk-MVT5AF2A.js';
29
+ import './chunk-JZTNZ6C7.js';
30
+ import './chunk-LZ6RMZPJ.js';
31
+ import './chunk-6T55LXJL.js';
32
32
  import './chunk-Z653O7MX.js';
33
33
  import './chunk-ZCH7W7DZ.js';
34
34
  import './chunk-H7LRGY7U.js';
@@ -38,16 +38,16 @@ import './chunk-7V36I5GT.js';
38
38
  import './chunk-6WI7R2BD.js';
39
39
  import './chunk-M5WTY3EH.js';
40
40
  import './chunk-OAMIDZKW.js';
41
- import './chunk-YDRURQ2W.js';
41
+ import './chunk-RMV5X6GY.js';
42
42
  import './chunk-OQIIJRAS.js';
43
43
  import './chunk-V2ZDTY6H.js';
44
- import './chunk-VDY3VY7S.js';
44
+ import './chunk-E6SVWI3B.js';
45
45
  import './chunk-5XDPAKF5.js';
46
46
  import './chunk-GCPEMNSU.js';
47
- import './chunk-2DUN6DZK.js';
47
+ import './chunk-GIKY54MI.js';
48
48
  import './chunk-Z5M4YYWT.js';
49
49
  import './chunk-TYNZ5B2B.js';
50
- import './chunk-FTH3XLIN.js';
50
+ import './chunk-FR6K5DBJ.js';
51
51
  import './chunk-AXW67SY7.js';
52
52
  import './chunk-BYMOPN2S.js';
53
53
  import './chunk-SKLEJJ6M.js';
@@ -1,11 +1,11 @@
1
- import { category } from './chunk-O6RZ6AWT.js';
2
- import { blog } from './chunk-3QOALQQJ.js';
3
- import { brand } from './chunk-QXWCIK6D.js';
4
- import { product } from './chunk-7PPNAVBF.js';
1
+ import { category } from './chunk-ELI3F3IS.js';
2
+ import { blog } from './chunk-SCKSX4IS.js';
3
+ import { brand } from './chunk-LAVMQ7HM.js';
4
+ import { product } from './chunk-6JTIZQEJ.js';
5
5
  import { DEV_LOOKUP_BUDGET_MS } from './chunk-OXMUPNMH.js';
6
- import './chunk-VEVFVWF3.js';
6
+ import './chunk-N7E6KO5Q.js';
7
7
  import './chunk-OUW6WESU.js';
8
- import './chunk-2DUN6DZK.js';
8
+ import './chunk-GIKY54MI.js';
9
9
  import './chunk-Z5M4YYWT.js';
10
10
  import './chunk-6TFM3UTF.js';
11
11
  import './chunk-XMRNYUQY.js';
@@ -111,5 +111,5 @@ function lookupInStore(source, query) {
111
111
  }
112
112
 
113
113
  export { lookupInStore };
114
- //# sourceMappingURL=store-lookup-D5C2LNXK.js.map
115
- //# sourceMappingURL=store-lookup-D5C2LNXK.js.map
114
+ //# sourceMappingURL=store-lookup-6GMQGPVL.js.map
115
+ //# sourceMappingURL=store-lookup-6GMQGPVL.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":"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","file":"store-lookup-D5C2LNXK.js","sourcesContent":["/**\n * Runs in the editor's frame (the storefront), which has the engine's API\n * client set up for the dev store: answers the editor's pickers with the real\n * store's products, categories, brands and blog. Loaded with `import()` on the\n * first lookup, so a storefront never carries it.\n *\n * Each item's `data` is what a block receives for it, in the API's shape: a\n * product block reads only the ids and fetches the rest, while categories and\n * brands are drawn from what is saved.\n */\n\nimport { product } from '../api/product';\nimport { category } from '../api/category';\nimport { brand } from '../api/brands';\nimport { blog } from '../api/blog';\nimport type { Category } from '../types';\nimport { DEV_LOOKUP_BUDGET_MS, type DevLookupItem, type DevLookupSource } from './schema-types';\n\n/** Enough to choose from; a search narrows it further. */\nconst PER_PAGE = 20;\n/** How far a paged list is searched before giving up, so a big store can't stall the picker. */\nconst MAX_PAGES = 10;\n\ninterface Page<T> {\n items: T[];\n next: string | null;\n}\n\n/**\n * The matching items of a paged list, read page after page until there are\n * enough, the pages run out, or the time budget is spent: a brand or article on\n * page three is still found, and what was found so far always reaches the\n * editor before it stops waiting (`DEV_LOOKUP_BUDGET_MS` < its timeout).\n */\nasync function collect<T>(\n fetchPage: (page: number, cursor: string | null) => Promise<Page<T>>,\n keep: (item: T) => boolean\n): Promise<T[]> {\n const deadline = Date.now() + DEV_LOOKUP_BUDGET_MS;\n const found: T[] = [];\n let cursor: string | null = null;\n for (let page = 1; page <= MAX_PAGES; page += 1) {\n const { items, next } = await fetchPage(page, cursor);\n found.push(...items.filter(keep));\n if (found.length >= PER_PAGE || !next || Date.now() >= deadline) break;\n cursor = next;\n }\n return found.slice(0, PER_PAGE);\n}\n\nfunction matches(name: string, query: string): boolean {\n return !query || name.toLowerCase().includes(query.toLowerCase());\n}\n\n/** Categories with their subcategories, flattened, parents first. */\nfunction flatten(categories: Category[]): Category[] {\n return categories.flatMap((c) => [c, ...flatten(c.sub_categories ?? [])]);\n}\n\nasync function products(query: string): Promise<DevLookupItem[]> {\n const { items } = await product.list({\n source: query ? 'search' : 'latest',\n ...(query ? { keyword: query } : {}),\n perPage: PER_PAGE,\n });\n // List responses send the id as a numeric string; the block reads a number. Use it for both.\n return items.map((p) => ({\n id: Number(p.id),\n name: p.name,\n image: p.image?.url,\n url: p.url,\n data: { id: Number(p.id), name: p.name, url: p.url, image: p.image?.url ?? null },\n }));\n}\n\nasync function categories(query: string): Promise<DevLookupItem[]> {\n return flatten(await category.list())\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n image: c.image ?? undefined,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url, image: c.image ?? null, icon: c.icon ?? null },\n }));\n}\n\nasync function brands(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n (page) => brand.list(page),\n (b) => matches(b.name, query)\n );\n return found.map((b) => ({\n id: b.id,\n name: b.name,\n image: b.logo,\n url: b.url,\n data: { id: b.id, name: b.name, url: b.url, logo: b.logo, banner: b.banner ?? null },\n }));\n}\n\nasync function blogArticles(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n async (_page, cursor) => {\n const { data, cursor: pages } = await blog.articles.list(cursor ? { cursor } : undefined);\n return { items: data, next: pages?.next ?? null };\n },\n (a) => matches(a.name, query)\n );\n return found.map((a) => ({\n id: a.id,\n name: a.name,\n image: a.image,\n url: a.url,\n data: { id: a.id, name: a.name, url: a.url },\n }));\n}\n\nasync function blogCategories(query: string): Promise<DevLookupItem[]> {\n const { categories: list } = await blog.get();\n return list\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url },\n }));\n}\n\nconst LOOKUPS: Record<DevLookupSource, (query: string) => Promise<DevLookupItem[]>> = {\n products,\n categories,\n brands,\n blog_articles: blogArticles,\n blog_categories: blogCategories,\n};\n\nexport function lookupInStore(source: DevLookupSource, query: string): Promise<DevLookupItem[]> {\n const lookup = LOOKUPS[source];\n if (!lookup) return Promise.reject(new Error(`no lookup for ${source}`));\n return lookup(query.trim());\n}\n"]}
1
+ {"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":"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","file":"store-lookup-6GMQGPVL.js","sourcesContent":["/**\n * Runs in the editor's frame (the storefront), which has the engine's API\n * client set up for the dev store: answers the editor's pickers with the real\n * store's products, categories, brands and blog. Loaded with `import()` on the\n * first lookup, so a storefront never carries it.\n *\n * Each item's `data` is what a block receives for it, in the API's shape: a\n * product block reads only the ids and fetches the rest, while categories and\n * brands are drawn from what is saved.\n */\n\nimport { product } from '../api/product';\nimport { category } from '../api/category';\nimport { brand } from '../api/brands';\nimport { blog } from '../api/blog';\nimport type { Category } from '../types';\nimport { DEV_LOOKUP_BUDGET_MS, type DevLookupItem, type DevLookupSource } from './schema-types';\n\n/** Enough to choose from; a search narrows it further. */\nconst PER_PAGE = 20;\n/** How far a paged list is searched before giving up, so a big store can't stall the picker. */\nconst MAX_PAGES = 10;\n\ninterface Page<T> {\n items: T[];\n next: string | null;\n}\n\n/**\n * The matching items of a paged list, read page after page until there are\n * enough, the pages run out, or the time budget is spent: a brand or article on\n * page three is still found, and what was found so far always reaches the\n * editor before it stops waiting (`DEV_LOOKUP_BUDGET_MS` < its timeout).\n */\nasync function collect<T>(\n fetchPage: (page: number, cursor: string | null) => Promise<Page<T>>,\n keep: (item: T) => boolean\n): Promise<T[]> {\n const deadline = Date.now() + DEV_LOOKUP_BUDGET_MS;\n const found: T[] = [];\n let cursor: string | null = null;\n for (let page = 1; page <= MAX_PAGES; page += 1) {\n const { items, next } = await fetchPage(page, cursor);\n found.push(...items.filter(keep));\n if (found.length >= PER_PAGE || !next || Date.now() >= deadline) break;\n cursor = next;\n }\n return found.slice(0, PER_PAGE);\n}\n\nfunction matches(name: string, query: string): boolean {\n return !query || name.toLowerCase().includes(query.toLowerCase());\n}\n\n/** Categories with their subcategories, flattened, parents first. */\nfunction flatten(categories: Category[]): Category[] {\n return categories.flatMap((c) => [c, ...flatten(c.sub_categories ?? [])]);\n}\n\nasync function products(query: string): Promise<DevLookupItem[]> {\n const { items } = await product.list({\n source: query ? 'search' : 'latest',\n ...(query ? { keyword: query } : {}),\n perPage: PER_PAGE,\n });\n // List responses send the id as a numeric string; the block reads a number. Use it for both.\n return items.map((p) => ({\n id: Number(p.id),\n name: p.name,\n image: p.image?.url,\n url: p.url,\n data: { id: Number(p.id), name: p.name, url: p.url, image: p.image?.url ?? null },\n }));\n}\n\nasync function categories(query: string): Promise<DevLookupItem[]> {\n return flatten(await category.list())\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n image: c.image ?? undefined,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url, image: c.image ?? null, icon: c.icon ?? null },\n }));\n}\n\nasync function brands(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n (page) => brand.list(page),\n (b) => matches(b.name, query)\n );\n return found.map((b) => ({\n id: b.id,\n name: b.name,\n image: b.logo,\n url: b.url,\n data: { id: b.id, name: b.name, url: b.url, logo: b.logo, banner: b.banner ?? null },\n }));\n}\n\nasync function blogArticles(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n async (_page, cursor) => {\n const { data, cursor: pages } = await blog.articles.list(cursor ? { cursor } : undefined);\n return { items: data, next: pages?.next ?? null };\n },\n (a) => matches(a.name, query)\n );\n return found.map((a) => ({\n id: a.id,\n name: a.name,\n image: a.image,\n url: a.url,\n data: { id: a.id, name: a.name, url: a.url },\n }));\n}\n\nasync function blogCategories(query: string): Promise<DevLookupItem[]> {\n const { categories: list } = await blog.get();\n return list\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url },\n }));\n}\n\nconst LOOKUPS: Record<DevLookupSource, (query: string) => Promise<DevLookupItem[]>> = {\n products,\n categories,\n brands,\n blog_articles: blogArticles,\n blog_categories: blogCategories,\n};\n\nexport function lookupInStore(source: DevLookupSource, query: string): Promise<DevLookupItem[]> {\n const lookup = LOOKUPS[source];\n if (!lookup) return Promise.reject(new Error(`no lookup for ${source}`));\n return lookup(query.trim());\n}\n"]}
package/dist/tanstack.js CHANGED
@@ -1,26 +1,26 @@
1
- export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-3G4YCXOR.js';
2
- import { requestHostOf } from './chunk-VNHYMLGK.js';
3
- export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-VNHYMLGK.js';
1
+ export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-JCP3VCNO.js';
2
+ import { requestHostOf } from './chunk-NFJE6MYZ.js';
3
+ export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-NFJE6MYZ.js';
4
4
  import './chunk-Z4Y55HWX.js';
5
5
  export { tanstackHeadAdapter as head, withHead } from './chunk-R7VWIXFX.js';
6
6
  import { CRITICAL_STYLE_HREF } from './chunk-4FJGZQD3.js';
7
- import './chunk-QBVXQHVJ.js';
8
- import { readNativeAppHeaders } from './chunk-TQQN5AE2.js';
9
- import './chunk-C6PNF2OT.js';
10
- import './chunk-7PPNAVBF.js';
7
+ import './chunk-BOB2Z4G7.js';
8
+ import { readNativeAppHeaders } from './chunk-Y3G6GQKW.js';
9
+ import './chunk-EXWAEAB2.js';
10
+ import './chunk-6JTIZQEJ.js';
11
11
  import { rootHead } from './chunk-5V4W3GBI.js';
12
12
  import './chunk-X55R4VVK.js';
13
- import './chunk-5EN3XZ32.js';
13
+ import './chunk-GEJDHAP5.js';
14
14
  import './chunk-EGI7F57E.js';
15
15
  import './chunk-GD26FI4J.js';
16
16
  import { maintenanceEvidence, MAINTENANCE_EVIDENCE_HEADER, maintenanceEvidenceHeader } from './chunk-SLBO4SEE.js';
17
17
  import './chunk-MGG4XAJ5.js';
18
- import './chunk-VEVFVWF3.js';
18
+ import './chunk-N7E6KO5Q.js';
19
19
  import './chunk-OUW6WESU.js';
20
20
  import './chunk-JWXJPJBO.js';
21
21
  export { mergeDocumentDescriptors as mergeAttrs } from './chunk-CW625T2E.js';
22
- import './chunk-VDY3VY7S.js';
23
- import './chunk-2DUN6DZK.js';
22
+ import './chunk-E6SVWI3B.js';
23
+ import './chunk-GIKY54MI.js';
24
24
  import './chunk-Z5M4YYWT.js';
25
25
  import './chunk-TYNZ5B2B.js';
26
26
  import './chunk-BYMOPN2S.js';
@@ -61,6 +61,7 @@ export declare enum HookName {
61
61
  THANK_YOU_START = "thank-you:start",
62
62
  THANK_YOU_ITEMS_START = "thank-you:items.start",
63
63
  THANK_YOU_ITEMS_END = "thank-you:items.end",
64
+ THANK_YOU_PAYMENT_END = "thank-you:payment.end",
64
65
  THANK_YOU_END = "thank-you:end",
65
66
  BRANDS_INDEX_ITEMS_START = "brands:index.items.start",
66
67
  BRANDS_INDEX_ITEMS_END = "brands:index.items.end",
@@ -1 +1 @@
1
- {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/types/hooks.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export { HookName } from '../chunk-MVT5AF2A.js';
1
+ export { HookName } from '../chunk-6T55LXJL.js';
2
2
  import '../chunk-DGUM43GV.js';
3
3
  //# sourceMappingURL=hooks.js.map
4
4
  //# sourceMappingURL=hooks.js.map
@@ -1,4 +1,4 @@
1
- export { HookName } from '../chunk-MVT5AF2A.js';
1
+ export { HookName } from '../chunk-6T55LXJL.js';
2
2
  import '../chunk-DGUM43GV.js';
3
3
  //# sourceMappingURL=index.js.map
4
4
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
1
  export { stripUnsafeHtml } from '../chunk-RUHSV4Z6.js';
2
2
  export { formatSallaPlural } from '../chunk-BT6HEEAP.js';
3
- export { dispatchRouteChanged } from '../chunk-QBVXQHVJ.js';
3
+ export { dispatchRouteChanged } from '../chunk-BOB2Z4G7.js';
4
4
  export { sortOptions } from '../chunk-3LZJXKVO.js';
5
5
  export { color } from '../chunk-VVZNW5CB.js';
6
6
  export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-EGI7F57E.js';
@@ -8,7 +8,7 @@ export { mergeHead, resolveHead, setHeadAdapter } from '../chunk-GD26FI4J.js';
8
8
  export { buildBaseHead, buildHreflangAlternates, localeToOgLocale } from '../chunk-MGG4XAJ5.js';
9
9
  export { asset, cdn, isPlaceholder } from '../chunk-ZCH7W7DZ.js';
10
10
  export { mergeDocumentDescriptors, mergeElementAttrs, normalizeClasses, syncAttrsToElement, toReactProps } from '../chunk-CW625T2E.js';
11
- import '../chunk-2DUN6DZK.js';
11
+ import '../chunk-GIKY54MI.js';
12
12
  import '../chunk-Z5M4YYWT.js';
13
13
  export { getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-XMRNYUQY.js';
14
14
  export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies } from '../chunk-T2752RH7.js';
@@ -1049,6 +1049,7 @@ var ROUTE_HOOK_MAP = [
1049
1049
  { hook: "thank-you:start", severity: "warn" },
1050
1050
  { hook: "thank-you:items.start", severity: "warn" },
1051
1051
  { hook: "thank-you:items.end", severity: "warn" },
1052
+ { hook: "thank-you:payment.end", severity: "warn" },
1052
1053
  { hook: "thank-you:end", severity: "warn" }
1053
1054
  ]
1054
1055
  },