@salla.sa/twilight-theme-engine 1.0.70 → 1.0.72

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 (260) hide show
  1. package/dist/{AddToCartForm-RVJDH34Q.js → AddToCartForm-5KE3LZSE.js} +5 -5
  2. package/dist/AddToCartForm-5KE3LZSE.js.map +1 -0
  3. package/dist/{BlogAuthorPage-HRUKRVXC.js → BlogAuthorPage-ZE2H4IIQ.js} +22 -22
  4. package/dist/BlogAuthorPage-ZE2H4IIQ.js.map +1 -0
  5. package/dist/{BlogCategoryPage-X2BB6FPW.js → BlogCategoryPage-Y5GBZV2E.js} +20 -20
  6. package/dist/{BlogCategoryPage-X2BB6FPW.js.map → BlogCategoryPage-Y5GBZV2E.js.map} +1 -1
  7. package/dist/{BlogPage-LMN2BBLX.js → BlogPage-WJ46QFWA.js} +18 -18
  8. package/dist/{BlogPage-LMN2BBLX.js.map → BlogPage-WJ46QFWA.js.map} +1 -1
  9. package/dist/{BlogSinglePage-D46SPQTX.js → BlogSinglePage-TWAW5FYE.js} +18 -18
  10. package/dist/{BlogSinglePage-D46SPQTX.js.map → BlogSinglePage-TWAW5FYE.js.map} +1 -1
  11. package/dist/{BlogTagPage-WEJAPD5G.js → BlogTagPage-GDSNBEUM.js} +20 -20
  12. package/dist/{BlogTagPage-WEJAPD5G.js.map → BlogTagPage-GDSNBEUM.js.map} +1 -1
  13. package/dist/{BrandsPage-4M2DWNN3.js → BrandsPage-S5J5LPBJ.js} +19 -19
  14. package/dist/{BrandsPage-4M2DWNN3.js.map → BrandsPage-S5J5LPBJ.js.map} +1 -1
  15. package/dist/{Breadcrumb-74NZ4CAI.js → Breadcrumb-JID6FMRH.js} +18 -18
  16. package/dist/{Breadcrumb-74NZ4CAI.js.map → Breadcrumb-JID6FMRH.js.map} +1 -1
  17. package/dist/{CartItem-AIGCVTNA.js → CartItem-65SS67V5.js} +18 -18
  18. package/dist/{CartItem-AIGCVTNA.js.map → CartItem-65SS67V5.js.map} +1 -1
  19. package/dist/{CartSummary-ONAQNID6.js → CartSummary-N4JVOPO5.js} +18 -18
  20. package/dist/{CartSummary-ONAQNID6.js.map → CartSummary-N4JVOPO5.js.map} +1 -1
  21. package/dist/{Copyright-M3Y6AW2X.js → Copyright-KMWFNZEF.js} +4 -4
  22. package/dist/{Copyright-M3Y6AW2X.js.map → Copyright-KMWFNZEF.js.map} +1 -1
  23. package/dist/{CustomerLayout-HXVLROR7.js → CustomerLayout-RFFISOFD.js} +18 -18
  24. package/dist/{CustomerLayout-HXVLROR7.js.map → CustomerLayout-RFFISOFD.js.map} +1 -1
  25. package/dist/{Footer-VJXKRENW.js → Footer-NDSP2GVD.js} +18 -18
  26. package/dist/{Footer-VJXKRENW.js.map → Footer-NDSP2GVD.js.map} +1 -1
  27. package/dist/{Header-2BEJOO3R.js → Header-524EF77Y.js} +7 -7
  28. package/dist/{Header-2BEJOO3R.js.map → Header-524EF77Y.js.map} +1 -1
  29. package/dist/{ImageModal-LHFSYPSU.js → ImageModal-4FNL5UC5.js} +3 -3
  30. package/dist/{ImageModal-LHFSYPSU.js.map → ImageModal-4FNL5UC5.js.map} +1 -1
  31. package/dist/{LoyaltyPage-IGSNMPPU.js → LoyaltyPage-4BTICEVT.js} +18 -18
  32. package/dist/{LoyaltyPage-IGSNMPPU.js.map → LoyaltyPage-4BTICEVT.js.map} +1 -1
  33. package/dist/{LoyaltyPointsPage-Z3GWZVHU.js → LoyaltyPointsPage-D6S4DMGL.js} +6 -6
  34. package/dist/{LoyaltyPointsPage-Z3GWZVHU.js.map → LoyaltyPointsPage-D6S4DMGL.js.map} +1 -1
  35. package/dist/{MainMenu-BUG3VS7Y.js → MainMenu-KXNWUVAF.js} +6 -6
  36. package/dist/{MainMenu-BUG3VS7Y.js.map → MainMenu-KXNWUVAF.js.map} +1 -1
  37. package/dist/{MasterLayout-XOMOFH26.js → MasterLayout-4PV6RJJN.js} +18 -18
  38. package/dist/{MasterLayout-XOMOFH26.js.map → MasterLayout-4PV6RJJN.js.map} +1 -1
  39. package/dist/{MobileMenu-U5Y43SK2.js → MobileMenu-VJJ7BG56.js} +19 -19
  40. package/dist/{MobileMenu-U5Y43SK2.js.map → MobileMenu-VJJ7BG56.js.map} +1 -1
  41. package/dist/{NotificationsPage-WOW7R5EL.js → NotificationsPage-PCWYS2WC.js} +18 -18
  42. package/dist/{NotificationsPage-WOW7R5EL.js.map → NotificationsPage-PCWYS2WC.js.map} +1 -1
  43. package/dist/{OrderSinglePage-SFZEAMAG.js → OrderSinglePage-6MS5Q5GD.js} +19 -19
  44. package/dist/{OrderSinglePage-SFZEAMAG.js.map → OrderSinglePage-6MS5Q5GD.js.map} +1 -1
  45. package/dist/{OrdersPage-2KWKJZAM.js → OrdersPage-UBGWPLRU.js} +18 -18
  46. package/dist/{OrdersPage-2KWKJZAM.js.map → OrdersPage-UBGWPLRU.js.map} +1 -1
  47. package/dist/{PageSingle-D4UTD6XX.js → PageSingle-YFIFFSON.js} +4 -4
  48. package/dist/{PageSingle-D4UTD6XX.js.map → PageSingle-YFIFFSON.js.map} +1 -1
  49. package/dist/{ProductDetails-53UVIHR3.js → ProductDetails-PYWNF2YH.js} +8 -9
  50. package/dist/ProductDetails-PYWNF2YH.js.map +1 -0
  51. package/dist/{ProfilePage-WZQJBMP3.js → ProfilePage-F72TLSO5.js} +18 -18
  52. package/dist/{ProfilePage-WZQJBMP3.js.map → ProfilePage-F72TLSO5.js.map} +1 -1
  53. package/dist/{SeoCartWidget-EZD6YRUG.js → SeoCartWidget-TK2BVDFT.js} +18 -18
  54. package/dist/{SeoCartWidget-EZD6YRUG.js.map → SeoCartWidget-TK2BVDFT.js.map} +1 -1
  55. package/dist/{SettingsPage-4GTH7FJS.js → SettingsPage-4W5YIWPU.js} +18 -18
  56. package/dist/{SettingsPage-4GTH7FJS.js.map → SettingsPage-4W5YIWPU.js.map} +1 -1
  57. package/dist/{StoreClosedNotification-SUKGXBTP.js → StoreClosedNotification-IV2JTVDU.js} +19 -19
  58. package/dist/{StoreClosedNotification-SUKGXBTP.js.map → StoreClosedNotification-IV2JTVDU.js.map} +1 -1
  59. package/dist/{TestimonialsPage-YKXSTNWR.js → TestimonialsPage-YOQJQ2HD.js} +4 -4
  60. package/dist/{TestimonialsPage-YKXSTNWR.js.map → TestimonialsPage-YOQJQ2HD.js.map} +1 -1
  61. package/dist/{ThankYouPage-CMMQ3JFO.js → ThankYouPage-CRSSRVY7.js} +18 -18
  62. package/dist/{ThankYouPage-CMMQ3JFO.js.map → ThankYouPage-CRSSRVY7.js.map} +1 -1
  63. package/dist/{WalletPage-LK6XXNHY.js → WalletPage-26HBCIHR.js} +19 -19
  64. package/dist/{WalletPage-LK6XXNHY.js.map → WalletPage-26HBCIHR.js.map} +1 -1
  65. package/dist/WidgetHead-BCRIXIJQ.js +7 -0
  66. package/dist/{WidgetHead-RWL7D3CT.js.map → WidgetHead-BCRIXIJQ.js.map} +1 -1
  67. package/dist/{WishlistPage-FAEXGOAH.js → WishlistPage-AZ3DGIYV.js} +20 -20
  68. package/dist/{WishlistPage-FAEXGOAH.js.map → WishlistPage-AZ3DGIYV.js.map} +1 -1
  69. package/dist/api/apps.js +2 -2
  70. package/dist/api/blog.js +12 -0
  71. package/dist/api/blog.js.map +1 -0
  72. package/dist/api/brands.js +2 -2
  73. package/dist/api/cart.js +2 -2
  74. package/dist/api/category.js +2 -2
  75. package/dist/api/client.d.ts +0 -6
  76. package/dist/api/client.d.ts.map +1 -1
  77. package/dist/api/client.js +1 -1
  78. package/dist/api/home.js +2 -2
  79. package/dist/api/loyalty.js +2 -2
  80. package/dist/api/menu.js +2 -2
  81. package/dist/api/notification.js +2 -2
  82. package/dist/api/order.js +2 -2
  83. package/dist/api/page.js +2 -2
  84. package/dist/api/product.js +2 -2
  85. package/dist/api/profile.js +1 -1
  86. package/dist/api/store.js +2 -2
  87. package/dist/api/translations.js +2 -2
  88. package/dist/api/types.d.ts +5 -0
  89. package/dist/api/types.d.ts.map +1 -1
  90. package/dist/api/user.js +2 -2
  91. package/dist/api/wallet.js +9 -0
  92. package/dist/api/wallet.js.map +1 -0
  93. package/dist/api/wishlist.js +3 -3
  94. package/dist/{chunk-7PYHB3PP.js → chunk-25FWAL3O.js} +3 -3
  95. package/dist/{chunk-7PYHB3PP.js.map → chunk-25FWAL3O.js.map} +1 -1
  96. package/dist/{chunk-USN5NHJ5.js → chunk-2ALN2BPM.js} +3 -3
  97. package/dist/{chunk-USN5NHJ5.js.map → chunk-2ALN2BPM.js.map} +1 -1
  98. package/dist/{chunk-6YIAULAP.js → chunk-34VXOUQT.js} +10 -10
  99. package/dist/chunk-34VXOUQT.js.map +1 -0
  100. package/dist/{chunk-5HOD4BKK.js → chunk-3CYIB6BL.js} +3 -3
  101. package/dist/{chunk-5HOD4BKK.js.map → chunk-3CYIB6BL.js.map} +1 -1
  102. package/dist/{chunk-VYJDRAWX.js → chunk-3EE62REP.js} +3 -3
  103. package/dist/{chunk-VYJDRAWX.js.map → chunk-3EE62REP.js.map} +1 -1
  104. package/dist/{chunk-5ZTYXQ7T.js → chunk-4S3XHNUG.js} +5 -5
  105. package/dist/{chunk-5ZTYXQ7T.js.map → chunk-4S3XHNUG.js.map} +1 -1
  106. package/dist/{chunk-P6EOXGUE.js → chunk-52ETYODY.js} +4 -4
  107. package/dist/{chunk-P6EOXGUE.js.map → chunk-52ETYODY.js.map} +1 -1
  108. package/dist/{chunk-N3BSUMD7.js → chunk-5AFTFN72.js} +3 -3
  109. package/dist/{chunk-N3BSUMD7.js.map → chunk-5AFTFN72.js.map} +1 -1
  110. package/dist/{chunk-GTG22RZG.js → chunk-5DPR7GWH.js} +3 -3
  111. package/dist/{chunk-GTG22RZG.js.map → chunk-5DPR7GWH.js.map} +1 -1
  112. package/dist/{chunk-Q7VWURUR.js → chunk-5XDPAKF5.js} +3 -3
  113. package/dist/{chunk-Q7VWURUR.js.map → chunk-5XDPAKF5.js.map} +1 -1
  114. package/dist/chunk-7V5HOZW4.js +10 -0
  115. package/dist/{chunk-CUG6VOLM.js.map → chunk-7V5HOZW4.js.map} +1 -1
  116. package/dist/{chunk-BMVQEOBM.js → chunk-7VYI6EF4.js} +4 -4
  117. package/dist/{chunk-BMVQEOBM.js.map → chunk-7VYI6EF4.js.map} +1 -1
  118. package/dist/{chunk-7W7SLN5M.js → chunk-B5FDWE4U.js} +3 -3
  119. package/dist/{chunk-7W7SLN5M.js.map → chunk-B5FDWE4U.js.map} +1 -1
  120. package/dist/{chunk-7N52RMEY.js → chunk-BD4V56PZ.js} +13 -13
  121. package/dist/{chunk-7N52RMEY.js.map → chunk-BD4V56PZ.js.map} +1 -1
  122. package/dist/chunk-DRMTTDZU.js +14 -0
  123. package/dist/{chunk-AMEU3DNR.js.map → chunk-DRMTTDZU.js.map} +1 -1
  124. package/dist/{chunk-VX2T7JCB.js → chunk-EXBH6RGD.js} +5 -5
  125. package/dist/chunk-EXBH6RGD.js.map +1 -0
  126. package/dist/{chunk-GU2KUQVD.js → chunk-GCPEMNSU.js} +14 -3
  127. package/dist/chunk-GCPEMNSU.js.map +1 -0
  128. package/dist/{chunk-C5X6CVXC.js → chunk-HI5V5X3S.js} +4 -7
  129. package/dist/chunk-HI5V5X3S.js.map +1 -0
  130. package/dist/{chunk-BAOBHXU5.js → chunk-IO77BQGI.js} +6 -6
  131. package/dist/{chunk-BAOBHXU5.js.map → chunk-IO77BQGI.js.map} +1 -1
  132. package/dist/{chunk-DY5WGKDX.js → chunk-JZ7BOB4G.js} +3 -3
  133. package/dist/{chunk-DY5WGKDX.js.map → chunk-JZ7BOB4G.js.map} +1 -1
  134. package/dist/{chunk-FGROIU3Y.js → chunk-L5K7VBOH.js} +3 -3
  135. package/dist/{chunk-FGROIU3Y.js.map → chunk-L5K7VBOH.js.map} +1 -1
  136. package/dist/chunk-LOMFLRJI.js +21 -0
  137. package/dist/{chunk-PPU6MI3G.js.map → chunk-LOMFLRJI.js.map} +1 -1
  138. package/dist/{chunk-I26VPNDP.js → chunk-MEPYG77L.js} +6 -4
  139. package/dist/chunk-MEPYG77L.js.map +1 -0
  140. package/dist/{chunk-VLONFUZM.js → chunk-MFR2WJBJ.js} +8 -13
  141. package/dist/chunk-MFR2WJBJ.js.map +1 -0
  142. package/dist/chunk-MVT5AF2A.js +94 -0
  143. package/dist/chunk-MVT5AF2A.js.map +1 -0
  144. package/dist/{chunk-VVAV3DJL.js → chunk-N56EGFBC.js} +6 -6
  145. package/dist/{chunk-VVAV3DJL.js.map → chunk-N56EGFBC.js.map} +1 -1
  146. package/dist/{chunk-UZUHDKKD.js → chunk-NZOXKPCW.js} +3 -3
  147. package/dist/{chunk-UZUHDKKD.js.map → chunk-NZOXKPCW.js.map} +1 -1
  148. package/dist/{chunk-A32NANNC.js → chunk-OYP5CGHU.js} +3 -3
  149. package/dist/{chunk-A32NANNC.js.map → chunk-OYP5CGHU.js.map} +1 -1
  150. package/dist/{chunk-NFE2H5JE.js → chunk-RO6KBURF.js} +3 -3
  151. package/dist/{chunk-NFE2H5JE.js.map → chunk-RO6KBURF.js.map} +1 -1
  152. package/dist/{chunk-GBWCXUPD.js → chunk-RSVAPXXI.js} +39 -16
  153. package/dist/chunk-RSVAPXXI.js.map +1 -0
  154. package/dist/{chunk-MSUGP566.js → chunk-UAY6LTWB.js} +3 -3
  155. package/dist/{chunk-MSUGP566.js.map → chunk-UAY6LTWB.js.map} +1 -1
  156. package/dist/{chunk-RJPPO3ET.js → chunk-V2ZDTY6H.js} +3 -3
  157. package/dist/{chunk-RJPPO3ET.js.map → chunk-V2ZDTY6H.js.map} +1 -1
  158. package/dist/{chunk-H2DXJCJP.js → chunk-VFYT2VWC.js} +3 -3
  159. package/dist/{chunk-H2DXJCJP.js.map → chunk-VFYT2VWC.js.map} +1 -1
  160. package/dist/{chunk-EJK33TNK.js → chunk-WNGLJJVH.js} +30 -9
  161. package/dist/chunk-WNGLJJVH.js.map +1 -0
  162. package/dist/{chunk-5H4NIOTY.js → chunk-WSXRUOI2.js} +3 -3
  163. package/dist/{chunk-5H4NIOTY.js.map → chunk-WSXRUOI2.js.map} +1 -1
  164. package/dist/{chunk-7BGEGHAI.js → chunk-XVNXXF67.js} +3 -3
  165. package/dist/{chunk-7BGEGHAI.js.map → chunk-XVNXXF67.js.map} +1 -1
  166. package/dist/{chunk-HX3YKS5W.js → chunk-YA6ABQB7.js} +16 -10
  167. package/dist/chunk-YA6ABQB7.js.map +1 -0
  168. package/dist/{chunk-4YHSQSM6.js → chunk-YKFGUVF7.js} +3 -3
  169. package/dist/{chunk-4YHSQSM6.js.map → chunk-YKFGUVF7.js.map} +1 -1
  170. package/dist/{chunk-E7PYHBCX.js → chunk-YLSG4MEK.js} +3 -3
  171. package/dist/{chunk-E7PYHBCX.js.map → chunk-YLSG4MEK.js.map} +1 -1
  172. package/dist/components/cart/index.js +1 -1
  173. package/dist/components/common/Image.d.ts.map +1 -1
  174. package/dist/components/common/index.js +2 -2
  175. package/dist/components/drawer/index.js +16 -16
  176. package/dist/components/home/index.js +20 -20
  177. package/dist/components/layout/index.js +4 -4
  178. package/dist/components/modal/Modal.d.ts.map +1 -1
  179. package/dist/components/modal/index.js +2 -2
  180. package/dist/components/product/ProductDetails.d.ts.map +1 -1
  181. package/dist/components/product/index.js +17 -17
  182. package/dist/components/store/index.js +18 -18
  183. package/dist/components/toast/index.js +8 -6
  184. package/dist/components/toast/index.js.map +1 -1
  185. package/dist/components/toast/useToast.d.ts.map +1 -1
  186. package/dist/components/tracking/index.js +1 -1
  187. package/dist/contexts/CartContext.d.ts +14 -6
  188. package/dist/contexts/CartContext.d.ts.map +1 -1
  189. package/dist/contexts/index.js.map +1 -1
  190. package/dist/{document-class-APAX4M7D.js → document-class-FIAXRNEM.js} +8 -8
  191. package/dist/{document-class-APAX4M7D.js.map → document-class-FIAXRNEM.js.map} +1 -1
  192. package/dist/hooks/HookRegistry.d.ts +3 -1
  193. package/dist/hooks/HookRegistry.d.ts.map +1 -1
  194. package/dist/hooks/HookRegistry.js +1 -1
  195. package/dist/hooks/HookSlot.js +2 -2
  196. package/dist/hooks/index.js +16 -16
  197. package/dist/hooks/useGtm.js +16 -16
  198. package/dist/hooks/useHook.d.ts.map +1 -1
  199. package/dist/hooks/useHook.js +2 -2
  200. package/dist/hooks/useMoney.js +16 -16
  201. package/dist/hooks/useStore.js +16 -16
  202. package/dist/hooks/useUser.js +3 -3
  203. package/dist/hooks/useWishlist.d.ts.map +1 -1
  204. package/dist/hooks/useWishlist.js +3 -1
  205. package/dist/index.js +16 -16
  206. package/dist/{not-found-G4N25RWR.js → not-found-SCNJYKWP.js} +19 -19
  207. package/dist/{not-found-G4N25RWR.js.map → not-found-SCNJYKWP.js.map} +1 -1
  208. package/dist/providers/index.js +16 -16
  209. package/dist/routes/account/orders/index.d.ts.map +1 -1
  210. package/dist/routes/account/orders.js +3 -3
  211. package/dist/routes/account.js +12 -12
  212. package/dist/routes/blog/loader.d.ts.map +1 -1
  213. package/dist/routes/blog.js +23 -13
  214. package/dist/routes/blog.js.map +1 -1
  215. package/dist/routes/brands/types.d.ts +16 -2
  216. package/dist/routes/brands/types.d.ts.map +1 -1
  217. package/dist/routes/brands.js +3 -3
  218. package/dist/routes/cart.js +24 -24
  219. package/dist/routes/home.js +21 -21
  220. package/dist/routes/loyalty.js +4 -4
  221. package/dist/routes/page.js +3 -3
  222. package/dist/routes/product/ProductPage.d.ts.map +1 -1
  223. package/dist/routes/product-listing/loader.d.ts.map +1 -1
  224. package/dist/routes/product-listing.js +24 -23
  225. package/dist/routes/product-listing.js.map +1 -1
  226. package/dist/routes/product.js +23 -25
  227. package/dist/routes/product.js.map +1 -1
  228. package/dist/routes/root/head.d.ts.map +1 -1
  229. package/dist/routes/testimonials.js +1 -1
  230. package/dist/routes/thank-you.js +3 -3
  231. package/dist/skeleton.js +21 -21
  232. package/dist/tanstack.js +7 -7
  233. package/dist/types/hooks.d.ts +61 -1
  234. package/dist/types/hooks.d.ts.map +1 -1
  235. package/dist/types/hooks.js +1 -1
  236. package/dist/types/index.d.ts +626 -53
  237. package/dist/types/index.d.ts.map +1 -1
  238. package/dist/types/index.js +1 -1
  239. package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
  240. package/dist/vite/index.js +11 -3
  241. package/dist/vite/index.js.map +1 -1
  242. package/package.json +9 -1
  243. package/dist/AddToCartForm-RVJDH34Q.js.map +0 -1
  244. package/dist/BlogAuthorPage-HRUKRVXC.js.map +0 -1
  245. package/dist/ProductDetails-53UVIHR3.js.map +0 -1
  246. package/dist/WidgetHead-RWL7D3CT.js +0 -7
  247. package/dist/chunk-6YIAULAP.js.map +0 -1
  248. package/dist/chunk-AMEU3DNR.js +0 -14
  249. package/dist/chunk-C5X6CVXC.js.map +0 -1
  250. package/dist/chunk-CUG6VOLM.js +0 -10
  251. package/dist/chunk-EJK33TNK.js.map +0 -1
  252. package/dist/chunk-GBWCXUPD.js.map +0 -1
  253. package/dist/chunk-GU2KUQVD.js.map +0 -1
  254. package/dist/chunk-HX3YKS5W.js.map +0 -1
  255. package/dist/chunk-I26VPNDP.js.map +0 -1
  256. package/dist/chunk-PPU6MI3G.js +0 -21
  257. package/dist/chunk-TP3LCGE7.js +0 -34
  258. package/dist/chunk-TP3LCGE7.js.map +0 -1
  259. package/dist/chunk-VLONFUZM.js.map +0 -1
  260. package/dist/chunk-VX2T7JCB.js.map +0 -1
@@ -1,6 +1,6 @@
1
- export { SiftSnippet } from '../../chunk-AQANJRBD.js';
2
1
  export { GoogleTagBody } from '../../chunk-DNCQIT6S.js';
3
2
  export { TwilightBundles } from '../../chunk-RBEYMAKM.js';
3
+ export { SiftSnippet } from '../../chunk-AQANJRBD.js';
4
4
  import '../../chunk-DGUM43GV.js';
5
5
  import { lazy } from 'react';
6
6
 
@@ -1,23 +1,31 @@
1
1
  import React from 'react';
2
2
  import type { Cart } from '../types';
3
3
  /**
4
- * CartContext - Provides cart data to hooks with `cart:*` prefix
4
+ * CartContext - Optional React context that carries a `Cart` down a subtree.
5
5
  *
6
- * Used by HookSlot to automatically inject cart context into cart-related hooks.
7
- * This avoids repetitive context passing for hooks like CART_ITEMS_START, CART_SUMMARY, etc.
6
+ * Read it with `useCartContext()` (returns `null` outside a provider). The engine
7
+ * itself neither mounts `CartContextProvider` nor reads this context: `HookSlot`
8
+ * does NOT inject it into `cart:*` hooks, so a hook handler only receives the
9
+ * `context` prop you pass to `<HookSlot context={{ cart }} />` plus `twilight`.
10
+ * This is a convenience for theme code that wants to share the cart without prop
11
+ * drilling.
8
12
  *
9
13
  * @example
10
14
  * ```tsx
11
- * import { CartContextProvider, HookSlot, HookName } from '@salla.sa/twilight-theme-engine';
15
+ * import { CartContextProvider, useCartContext } from '@salla.sa/twilight-theme-engine';
12
16
  *
13
17
  * function CartPage({ cart }) {
14
18
  * return (
15
19
  * <CartContextProvider value={{ cart }}>
16
- * <HookSlot name={HookName.CART_ITEMS_START} />
17
- * // No need to pass context={{ cart }}
20
+ * <CartSummary />
18
21
  * </CartContextProvider>
19
22
  * );
20
23
  * }
24
+ *
25
+ * function CartSummary() {
26
+ * const ctx = useCartContext(); // { cart } | null
27
+ * return <span>{ctx?.cart.count}</span>;
28
+ * }
21
29
  * ```
22
30
  */
23
31
  export interface CartContextValue {
@@ -1 +1 @@
1
- {"version":3,"file":"CartContext.d.ts","sourceRoot":"","sources":["../../src/contexts/CartContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,QAAA,MAAM,WAAW,wCAA+C,CAAC;AAEjE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,KAAK,GACN,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAG/C;AAED,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,IAAI,CAExD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
1
+ {"version":3,"file":"CartContext.d.ts","sourceRoot":"","sources":["../../src/contexts/CartContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA6C,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAErC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,IAAI,CAAC;CACZ;AAED,QAAA,MAAM,WAAW,wCAA+C,CAAC;AAEjE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,gBAAgB,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CAAC,EAClC,QAAQ,EACR,KAAK,GACN,EAAE,wBAAwB,GAAG,KAAK,CAAC,YAAY,CAG/C;AAED,wBAAgB,cAAc,IAAI,gBAAgB,GAAG,IAAI,CAExD;AAED,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/contexts/ProductContext.tsx","../../src/contexts/CartContext.tsx"],"names":["createContext","useMemo","jsx","useContext"],"mappings":";;;;AA4BA,IAAM,cAAA,GAAiB,cAA0C,IAAI;AAO9D,SAAS,sBAAA,CAAuB;AAAA,EACrC,QAAA;AAAA,EACA;AACF,CAAA,EAAoD;AAClD,EAAA,MAAM,gBAAgB,OAAA,CAAQ,MAAM,OAAO,CAAC,KAAA,CAAM,OAAO,CAAC,CAAA;AAC1D,EAAA,2BAAQ,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EAAO,eAAgB,QAAA,EAAS,CAAA;AAClE;AAEO,SAAS,iBAAA,GAAgD;AAC9D,EAAA,OAAO,WAAW,cAAc,CAAA;AAClC;ACjBA,IAAM,WAAA,GAAcA,cAAuC,IAAI;AAOxD,SAAS,mBAAA,CAAoB;AAAA,EAClC,QAAA;AAAA,EACA;AACF,CAAA,EAAiD;AAC/C,EAAA,MAAM,gBAAgBC,OAAAA,CAAQ,MAAM,OAAO,CAAC,KAAA,CAAM,IAAI,CAAC,CAAA;AACvD,EAAA,uBAAOC,GAAAA,CAAC,WAAA,CAAY,UAAZ,EAAqB,KAAA,EAAO,eAAgB,QAAA,EAAS,CAAA;AAC/D;AAEO,SAAS,cAAA,GAA0C;AACxD,EAAA,OAAOC,WAAW,WAAW,CAAA;AAC/B","file":"index.js","sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\nimport type { Product } from '../types';\n\n/**\n * ProductContext - Provides product data to hooks with `product:*` prefix\n *\n * Used by HookSlot to automatically inject product context into product-related hooks.\n * This avoids repetitive context passing for hooks like PRODUCT_DESCRIPTION, PRODUCT_FORM, etc.\n *\n * @example\n * ```tsx\n * import { ProductContextProvider, HookSlot, HookName } from '@salla.sa/twilight-theme-engine';\n *\n * function ProductDetails({ product }) {\n * return (\n * <ProductContextProvider value={{ product }}>\n * <HookSlot name={HookName.PRODUCT_DESCRIPTION} />\n * // No need to pass context={{ product }}\n * </ProductContextProvider>\n * );\n * }\n * ```\n */\n\nexport interface ProductContextValue {\n product: Product;\n}\n\nconst ProductContext = createContext<ProductContextValue | null>(null);\n\nexport interface ProductContextProviderProps {\n children: React.ReactNode;\n value: ProductContextValue;\n}\n\nexport function ProductContextProvider({\n children,\n value,\n}: ProductContextProviderProps): React.ReactElement {\n const memoizedValue = useMemo(() => value, [value.product]);\n return <ProductContext.Provider value={memoizedValue}>{children}</ProductContext.Provider>;\n}\n\nexport function useProductContext(): ProductContextValue | null {\n return useContext(ProductContext);\n}\n\nexport { ProductContext };\n","import React, { createContext, useContext, useMemo } from 'react';\nimport type { Cart } from '../types';\n\n/**\n * CartContext - Provides cart data to hooks with `cart:*` prefix\n *\n * Used by HookSlot to automatically inject cart context into cart-related hooks.\n * This avoids repetitive context passing for hooks like CART_ITEMS_START, CART_SUMMARY, etc.\n *\n * @example\n * ```tsx\n * import { CartContextProvider, HookSlot, HookName } from '@salla.sa/twilight-theme-engine';\n *\n * function CartPage({ cart }) {\n * return (\n * <CartContextProvider value={{ cart }}>\n * <HookSlot name={HookName.CART_ITEMS_START} />\n * // No need to pass context={{ cart }}\n * </CartContextProvider>\n * );\n * }\n * ```\n */\n\nexport interface CartContextValue {\n cart: Cart;\n}\n\nconst CartContext = createContext<CartContextValue | null>(null);\n\nexport interface CartContextProviderProps {\n children: React.ReactNode;\n value: CartContextValue;\n}\n\nexport function CartContextProvider({\n children,\n value,\n}: CartContextProviderProps): React.ReactElement {\n const memoizedValue = useMemo(() => value, [value.cart]);\n return <CartContext.Provider value={memoizedValue}>{children}</CartContext.Provider>;\n}\n\nexport function useCartContext(): CartContextValue | null {\n return useContext(CartContext);\n}\n\nexport { CartContext };\n"]}
1
+ {"version":3,"sources":["../../src/contexts/ProductContext.tsx","../../src/contexts/CartContext.tsx"],"names":["createContext","useMemo","jsx","useContext"],"mappings":";;;;AA4BA,IAAM,cAAA,GAAiB,cAA0C,IAAI;AAO9D,SAAS,sBAAA,CAAuB;AAAA,EACrC,QAAA;AAAA,EACA;AACF,CAAA,EAAoD;AAClD,EAAA,MAAM,gBAAgB,OAAA,CAAQ,MAAM,OAAO,CAAC,KAAA,CAAM,OAAO,CAAC,CAAA;AAC1D,EAAA,2BAAQ,cAAA,CAAe,QAAA,EAAf,EAAwB,KAAA,EAAO,eAAgB,QAAA,EAAS,CAAA;AAClE;AAEO,SAAS,iBAAA,GAAgD;AAC9D,EAAA,OAAO,WAAW,cAAc,CAAA;AAClC;ACTA,IAAM,WAAA,GAAcA,cAAuC,IAAI;AAOxD,SAAS,mBAAA,CAAoB;AAAA,EAClC,QAAA;AAAA,EACA;AACF,CAAA,EAAiD;AAC/C,EAAA,MAAM,gBAAgBC,OAAAA,CAAQ,MAAM,OAAO,CAAC,KAAA,CAAM,IAAI,CAAC,CAAA;AACvD,EAAA,uBAAOC,GAAAA,CAAC,WAAA,CAAY,UAAZ,EAAqB,KAAA,EAAO,eAAgB,QAAA,EAAS,CAAA;AAC/D;AAEO,SAAS,cAAA,GAA0C;AACxD,EAAA,OAAOC,WAAW,WAAW,CAAA;AAC/B","file":"index.js","sourcesContent":["import React, { createContext, useContext, useMemo } from 'react';\nimport type { Product } from '../types';\n\n/**\n * ProductContext - Provides product data to hooks with `product:*` prefix\n *\n * Used by HookSlot to automatically inject product context into product-related hooks.\n * This avoids repetitive context passing for hooks like PRODUCT_DESCRIPTION, PRODUCT_FORM, etc.\n *\n * @example\n * ```tsx\n * import { ProductContextProvider, HookSlot, HookName } from '@salla.sa/twilight-theme-engine';\n *\n * function ProductDetails({ product }) {\n * return (\n * <ProductContextProvider value={{ product }}>\n * <HookSlot name={HookName.PRODUCT_DESCRIPTION} />\n * // No need to pass context={{ product }}\n * </ProductContextProvider>\n * );\n * }\n * ```\n */\n\nexport interface ProductContextValue {\n product: Product;\n}\n\nconst ProductContext = createContext<ProductContextValue | null>(null);\n\nexport interface ProductContextProviderProps {\n children: React.ReactNode;\n value: ProductContextValue;\n}\n\nexport function ProductContextProvider({\n children,\n value,\n}: ProductContextProviderProps): React.ReactElement {\n const memoizedValue = useMemo(() => value, [value.product]);\n return <ProductContext.Provider value={memoizedValue}>{children}</ProductContext.Provider>;\n}\n\nexport function useProductContext(): ProductContextValue | null {\n return useContext(ProductContext);\n}\n\nexport { ProductContext };\n","import React, { createContext, useContext, useMemo } from 'react';\nimport type { Cart } from '../types';\n\n/**\n * CartContext - Optional React context that carries a `Cart` down a subtree.\n *\n * Read it with `useCartContext()` (returns `null` outside a provider). The engine\n * itself neither mounts `CartContextProvider` nor reads this context: `HookSlot`\n * does NOT inject it into `cart:*` hooks, so a hook handler only receives the\n * `context` prop you pass to `<HookSlot context={{ cart }} />` plus `twilight`.\n * This is a convenience for theme code that wants to share the cart without prop\n * drilling.\n *\n * @example\n * ```tsx\n * import { CartContextProvider, useCartContext } from '@salla.sa/twilight-theme-engine';\n *\n * function CartPage({ cart }) {\n * return (\n * <CartContextProvider value={{ cart }}>\n * <CartSummary />\n * </CartContextProvider>\n * );\n * }\n *\n * function CartSummary() {\n * const ctx = useCartContext(); // { cart } | null\n * return <span>{ctx?.cart.count}</span>;\n * }\n * ```\n */\n\nexport interface CartContextValue {\n cart: Cart;\n}\n\nconst CartContext = createContext<CartContextValue | null>(null);\n\nexport interface CartContextProviderProps {\n children: React.ReactNode;\n value: CartContextValue;\n}\n\nexport function CartContextProvider({\n children,\n value,\n}: CartContextProviderProps): React.ReactElement {\n const memoizedValue = useMemo(() => value, [value.cart]);\n return <CartContext.Provider value={memoizedValue}>{children}</CartContext.Provider>;\n}\n\nexport function useCartContext(): CartContextValue | null {\n return useContext(CartContext);\n}\n\nexport { CartContext };\n"]}
@@ -1,17 +1,17 @@
1
- export { RouteDocumentSync, TanStackDocumentSync, tanstackDocumentAdapter, useTanstackDocumentAttrs } from './chunk-EJK33TNK.js';
1
+ export { RouteDocumentSync, TanStackDocumentSync, tanstackDocumentAdapter, useTanstackDocumentAttrs } from './chunk-WNGLJJVH.js';
2
2
  import './chunk-Z4Y55HWX.js';
3
3
  import './chunk-BE3JDKE2.js';
4
4
  import './chunk-5ZR2HKZ7.js';
5
5
  import './chunk-GD26FI4J.js';
6
- import './chunk-4YHSQSM6.js';
7
- import './chunk-7BGEGHAI.js';
6
+ import './chunk-YKFGUVF7.js';
7
+ import './chunk-XVNXXF67.js';
8
8
  import './chunk-TZ3E5BN4.js';
9
- import './chunk-H2DXJCJP.js';
10
- import './chunk-A32NANNC.js';
9
+ import './chunk-VFYT2VWC.js';
10
+ import './chunk-OYP5CGHU.js';
11
11
  import './chunk-HBTIZWT2.js';
12
12
  import './chunk-SDIQHTDG.js';
13
13
  import './chunk-ZGHRSRDO.js';
14
- import './chunk-VX2T7JCB.js';
14
+ import './chunk-EXBH6RGD.js';
15
15
  import './chunk-JWXJPJBO.js';
16
16
  import './chunk-CW625T2E.js';
17
17
  import './chunk-TYNZ5B2B.js';
@@ -21,5 +21,5 @@ import './chunk-N2S25NXP.js';
21
21
  import './chunk-T72DAX7R.js';
22
22
  import './chunk-DF6FBKDN.js';
23
23
  import './chunk-DGUM43GV.js';
24
- //# sourceMappingURL=document-class-APAX4M7D.js.map
25
- //# sourceMappingURL=document-class-APAX4M7D.js.map
24
+ //# sourceMappingURL=document-class-FIAXRNEM.js.map
25
+ //# sourceMappingURL=document-class-FIAXRNEM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"document-class-APAX4M7D.js"}
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"document-class-FIAXRNEM.js"}
@@ -32,7 +32,9 @@ declare class HookRegistry {
32
32
  private hooks;
33
33
  private subscribers;
34
34
  private nextId;
35
- register<T = Record<string, unknown>>(name: HookName | string, handler: HookHandler<T>, priority?: number): void;
35
+ register<T = Record<string, unknown>>(name: HookName | string, handler: HookHandler<T>, priority?: number): () => void;
36
+ /** Removes the single handler registered under `id`; other handlers on the slot are kept. */
37
+ private unregister;
36
38
  subscribe(name: HookName | string, callback: () => void): () => void;
37
39
  unsubscribe(name: HookName | string, callback: () => void): void;
38
40
  private notify;
@@ -1 +1 @@
1
- {"version":3,"file":"HookRegistry.d.ts","sourceRoot":"","sources":["../../src/hooks/HookRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,MAAM,CAAK;IAEnB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,QAAQ,SAAK,GACZ,IAAI;IASP,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IASpE,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKhE,OAAO,CAAC,MAAM;IAId,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,EAAE;IAKtD,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO;IAKrC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAMpC,QAAQ,IAAI,IAAI;IAKhB,IAAI,IAAI,MAAM,EAAE;CAGjB;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC;AAE/C,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAUrD;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
1
+ {"version":3,"file":"HookRegistry.d.ts","sourceRoot":"","sources":["../../src/hooks/HookRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,KAAK,CAAuC;IACpD,OAAO,CAAC,WAAW,CAAsC;IACzD,OAAO,CAAC,MAAM,CAAK;IAEnB,QAAQ,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,QAAQ,GAAG,MAAM,EACvB,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,QAAQ,SAAK,GACZ,MAAM,IAAI;IAWb,6FAA6F;IAC7F,OAAO,CAAC,UAAU;IASlB,SAAS,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IASpE,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,IAAI;IAKhE,OAAO,CAAC,MAAM;IAId,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,cAAc,EAAE;IAKtD,GAAG,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,OAAO;IAKrC,KAAK,CAAC,IAAI,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI;IAMpC,QAAQ,IAAI,IAAI;IAKhB,IAAI,IAAI,MAAM,EAAE;CAGjB;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC;AAE/C,wBAAgB,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI,CAUrD;AAED,OAAO,EAAE,YAAY,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- export { HookRegistry, defineHooks, hookRegistry } from '../chunk-GU2KUQVD.js';
1
+ export { HookRegistry, defineHooks, hookRegistry } from '../chunk-GCPEMNSU.js';
2
2
  import '../chunk-DGUM43GV.js';
3
3
  //# sourceMappingURL=HookRegistry.js.map
4
4
  //# sourceMappingURL=HookRegistry.js.map
@@ -1,5 +1,5 @@
1
- export { HookSlot } from '../chunk-Q7VWURUR.js';
2
- import '../chunk-GU2KUQVD.js';
1
+ export { HookSlot } from '../chunk-5XDPAKF5.js';
2
+ import '../chunk-GCPEMNSU.js';
3
3
  import '../chunk-DF6FBKDN.js';
4
4
  import '../chunk-DGUM43GV.js';
5
5
  //# sourceMappingURL=HookSlot.js.map
@@ -1,18 +1,18 @@
1
- export { registerDefaultHooks, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore } from '../chunk-7N52RMEY.js';
2
- import '../chunk-BAOBHXU5.js';
1
+ export { registerDefaultHooks, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore } from '../chunk-BD4V56PZ.js';
2
+ import '../chunk-IO77BQGI.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
- import '../chunk-A32NANNC.js';
5
+ import '../chunk-OYP5CGHU.js';
6
6
  import '../chunk-VVZNW5CB.js';
7
7
  import '../chunk-HBTIZWT2.js';
8
8
  import '../chunk-SDIQHTDG.js';
9
9
  import '../chunk-ZGHRSRDO.js';
10
10
  export { useComments } from '../chunk-DIVEHHMD.js';
11
- export { useHook } from '../chunk-C5X6CVXC.js';
12
- export { useUser } from '../chunk-VYJDRAWX.js';
13
- import '../chunk-FGROIU3Y.js';
14
- import '../chunk-VX2T7JCB.js';
15
- export { HookName } from '../chunk-TP3LCGE7.js';
11
+ export { useHook } from '../chunk-HI5V5X3S.js';
12
+ export { useUser } from '../chunk-3EE62REP.js';
13
+ import '../chunk-L5K7VBOH.js';
14
+ import '../chunk-EXBH6RGD.js';
15
+ export { HookName } from '../chunk-MVT5AF2A.js';
16
16
  export { useAsset } from '../chunk-Z653O7MX.js';
17
17
  import '../chunk-ZCH7W7DZ.js';
18
18
  export { useProduct } from '../chunk-OGVUFMLX.js';
@@ -20,20 +20,20 @@ export { useDocumentClass } from '../chunk-JWXJPJBO.js';
20
20
  import '../chunk-CW625T2E.js';
21
21
  export { useHostAttributes } from '../chunk-7V36I5GT.js';
22
22
  export { useCoupon } from '../chunk-BVSJPBJ6.js';
23
- export { useWishlist } from '../chunk-GBWCXUPD.js';
23
+ export { useWishlist } from '../chunk-RSVAPXXI.js';
24
24
  export { useBlogLike } from '../chunk-OAMIDZKW.js';
25
25
  import '../chunk-TYNZ5B2B.js';
26
- import '../chunk-RJPPO3ET.js';
27
- export { HookSlot, useIsClient } from '../chunk-Q7VWURUR.js';
28
- export { HookRegistry, defineHooks, hookRegistry } from '../chunk-GU2KUQVD.js';
29
- import '../chunk-I26VPNDP.js';
26
+ import '../chunk-V2ZDTY6H.js';
27
+ export { HookSlot, useIsClient } from '../chunk-5XDPAKF5.js';
28
+ export { HookRegistry, defineHooks, hookRegistry } from '../chunk-GCPEMNSU.js';
29
+ import '../chunk-MEPYG77L.js';
30
30
  import '../chunk-AXW67SY7.js';
31
- import '../chunk-BYMOPN2S.js';
32
31
  import '../chunk-SKLEJJ6M.js';
32
+ import '../chunk-BYMOPN2S.js';
33
33
  export { useAsyncFn } from '../chunk-6BZ5TKEV.js';
34
34
  export { useTheme } from '../chunk-FZKRSGLP.js';
35
- import '../chunk-CUG6VOLM.js';
36
- import '../chunk-HX3YKS5W.js';
35
+ import '../chunk-7V5HOZW4.js';
36
+ import '../chunk-YA6ABQB7.js';
37
37
  import '../chunk-MISI3T6V.js';
38
38
  import '../chunk-3IHFA2X5.js';
39
39
  import '../chunk-QVJDYSCT.js';
@@ -1,18 +1,18 @@
1
- export { useGtm } from '../chunk-7N52RMEY.js';
2
- import '../chunk-BAOBHXU5.js';
1
+ export { useGtm } from '../chunk-BD4V56PZ.js';
2
+ import '../chunk-IO77BQGI.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
- import '../chunk-A32NANNC.js';
5
+ import '../chunk-OYP5CGHU.js';
6
6
  import '../chunk-VVZNW5CB.js';
7
7
  import '../chunk-HBTIZWT2.js';
8
8
  import '../chunk-SDIQHTDG.js';
9
9
  import '../chunk-ZGHRSRDO.js';
10
10
  import '../chunk-DIVEHHMD.js';
11
- import '../chunk-C5X6CVXC.js';
12
- import '../chunk-VYJDRAWX.js';
13
- import '../chunk-FGROIU3Y.js';
14
- import '../chunk-VX2T7JCB.js';
15
- import '../chunk-TP3LCGE7.js';
11
+ import '../chunk-HI5V5X3S.js';
12
+ import '../chunk-3EE62REP.js';
13
+ import '../chunk-L5K7VBOH.js';
14
+ import '../chunk-EXBH6RGD.js';
15
+ import '../chunk-MVT5AF2A.js';
16
16
  import '../chunk-Z653O7MX.js';
17
17
  import '../chunk-ZCH7W7DZ.js';
18
18
  import '../chunk-OGVUFMLX.js';
@@ -20,20 +20,20 @@ import '../chunk-JWXJPJBO.js';
20
20
  import '../chunk-CW625T2E.js';
21
21
  import '../chunk-7V36I5GT.js';
22
22
  import '../chunk-BVSJPBJ6.js';
23
- import '../chunk-GBWCXUPD.js';
23
+ import '../chunk-RSVAPXXI.js';
24
24
  import '../chunk-OAMIDZKW.js';
25
25
  import '../chunk-TYNZ5B2B.js';
26
- import '../chunk-RJPPO3ET.js';
27
- import '../chunk-Q7VWURUR.js';
28
- import '../chunk-GU2KUQVD.js';
29
- import '../chunk-I26VPNDP.js';
26
+ import '../chunk-V2ZDTY6H.js';
27
+ import '../chunk-5XDPAKF5.js';
28
+ import '../chunk-GCPEMNSU.js';
29
+ import '../chunk-MEPYG77L.js';
30
30
  import '../chunk-AXW67SY7.js';
31
- import '../chunk-BYMOPN2S.js';
32
31
  import '../chunk-SKLEJJ6M.js';
32
+ import '../chunk-BYMOPN2S.js';
33
33
  import '../chunk-6BZ5TKEV.js';
34
34
  import '../chunk-FZKRSGLP.js';
35
- import '../chunk-CUG6VOLM.js';
36
- import '../chunk-HX3YKS5W.js';
35
+ import '../chunk-7V5HOZW4.js';
36
+ import '../chunk-YA6ABQB7.js';
37
37
  import '../chunk-MISI3T6V.js';
38
38
  import '../chunk-3IHFA2X5.js';
39
39
  import '../chunk-QVJDYSCT.js';
@@ -1 +1 @@
1
- {"version":3,"file":"useHook.d.ts","sourceRoot":"","sources":["../../src/hooks/useHook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,QAAQ,SAAK,GACZ,IAAI,CAYN"}
1
+ {"version":3,"file":"useHook.d.ts","sourceRoot":"","sources":["../../src/hooks/useHook.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjD,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,EACvB,QAAQ,SAAK,GACZ,IAAI,CAUN"}
@@ -1,5 +1,5 @@
1
- export { useHook } from '../chunk-C5X6CVXC.js';
2
- import '../chunk-GU2KUQVD.js';
1
+ export { useHook } from '../chunk-HI5V5X3S.js';
2
+ import '../chunk-GCPEMNSU.js';
3
3
  import '../chunk-DGUM43GV.js';
4
4
  //# sourceMappingURL=useHook.js.map
5
5
  //# sourceMappingURL=useHook.js.map
@@ -1,18 +1,18 @@
1
- export { useMoney } from '../chunk-7N52RMEY.js';
2
- import '../chunk-BAOBHXU5.js';
1
+ export { useMoney } from '../chunk-BD4V56PZ.js';
2
+ import '../chunk-IO77BQGI.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
- import '../chunk-A32NANNC.js';
5
+ import '../chunk-OYP5CGHU.js';
6
6
  import '../chunk-VVZNW5CB.js';
7
7
  import '../chunk-HBTIZWT2.js';
8
8
  import '../chunk-SDIQHTDG.js';
9
9
  import '../chunk-ZGHRSRDO.js';
10
10
  import '../chunk-DIVEHHMD.js';
11
- import '../chunk-C5X6CVXC.js';
12
- import '../chunk-VYJDRAWX.js';
13
- import '../chunk-FGROIU3Y.js';
14
- import '../chunk-VX2T7JCB.js';
15
- import '../chunk-TP3LCGE7.js';
11
+ import '../chunk-HI5V5X3S.js';
12
+ import '../chunk-3EE62REP.js';
13
+ import '../chunk-L5K7VBOH.js';
14
+ import '../chunk-EXBH6RGD.js';
15
+ import '../chunk-MVT5AF2A.js';
16
16
  import '../chunk-Z653O7MX.js';
17
17
  import '../chunk-ZCH7W7DZ.js';
18
18
  import '../chunk-OGVUFMLX.js';
@@ -20,20 +20,20 @@ import '../chunk-JWXJPJBO.js';
20
20
  import '../chunk-CW625T2E.js';
21
21
  import '../chunk-7V36I5GT.js';
22
22
  import '../chunk-BVSJPBJ6.js';
23
- import '../chunk-GBWCXUPD.js';
23
+ import '../chunk-RSVAPXXI.js';
24
24
  import '../chunk-OAMIDZKW.js';
25
25
  import '../chunk-TYNZ5B2B.js';
26
- import '../chunk-RJPPO3ET.js';
27
- import '../chunk-Q7VWURUR.js';
28
- import '../chunk-GU2KUQVD.js';
29
- import '../chunk-I26VPNDP.js';
26
+ import '../chunk-V2ZDTY6H.js';
27
+ import '../chunk-5XDPAKF5.js';
28
+ import '../chunk-GCPEMNSU.js';
29
+ import '../chunk-MEPYG77L.js';
30
30
  import '../chunk-AXW67SY7.js';
31
- import '../chunk-BYMOPN2S.js';
32
31
  import '../chunk-SKLEJJ6M.js';
32
+ import '../chunk-BYMOPN2S.js';
33
33
  import '../chunk-6BZ5TKEV.js';
34
34
  import '../chunk-FZKRSGLP.js';
35
- import '../chunk-CUG6VOLM.js';
36
- import '../chunk-HX3YKS5W.js';
35
+ import '../chunk-7V5HOZW4.js';
36
+ import '../chunk-YA6ABQB7.js';
37
37
  import '../chunk-MISI3T6V.js';
38
38
  import '../chunk-3IHFA2X5.js';
39
39
  import '../chunk-QVJDYSCT.js';
@@ -1,18 +1,18 @@
1
- export { useStore } from '../chunk-7N52RMEY.js';
2
- import '../chunk-BAOBHXU5.js';
1
+ export { useStore } from '../chunk-BD4V56PZ.js';
2
+ import '../chunk-IO77BQGI.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
- import '../chunk-A32NANNC.js';
5
+ import '../chunk-OYP5CGHU.js';
6
6
  import '../chunk-VVZNW5CB.js';
7
7
  import '../chunk-HBTIZWT2.js';
8
8
  import '../chunk-SDIQHTDG.js';
9
9
  import '../chunk-ZGHRSRDO.js';
10
10
  import '../chunk-DIVEHHMD.js';
11
- import '../chunk-C5X6CVXC.js';
12
- import '../chunk-VYJDRAWX.js';
13
- import '../chunk-FGROIU3Y.js';
14
- import '../chunk-VX2T7JCB.js';
15
- import '../chunk-TP3LCGE7.js';
11
+ import '../chunk-HI5V5X3S.js';
12
+ import '../chunk-3EE62REP.js';
13
+ import '../chunk-L5K7VBOH.js';
14
+ import '../chunk-EXBH6RGD.js';
15
+ import '../chunk-MVT5AF2A.js';
16
16
  import '../chunk-Z653O7MX.js';
17
17
  import '../chunk-ZCH7W7DZ.js';
18
18
  import '../chunk-OGVUFMLX.js';
@@ -20,20 +20,20 @@ import '../chunk-JWXJPJBO.js';
20
20
  import '../chunk-CW625T2E.js';
21
21
  import '../chunk-7V36I5GT.js';
22
22
  import '../chunk-BVSJPBJ6.js';
23
- import '../chunk-GBWCXUPD.js';
23
+ import '../chunk-RSVAPXXI.js';
24
24
  import '../chunk-OAMIDZKW.js';
25
25
  import '../chunk-TYNZ5B2B.js';
26
- import '../chunk-RJPPO3ET.js';
27
- import '../chunk-Q7VWURUR.js';
28
- import '../chunk-GU2KUQVD.js';
29
- import '../chunk-I26VPNDP.js';
26
+ import '../chunk-V2ZDTY6H.js';
27
+ import '../chunk-5XDPAKF5.js';
28
+ import '../chunk-GCPEMNSU.js';
29
+ import '../chunk-MEPYG77L.js';
30
30
  import '../chunk-AXW67SY7.js';
31
- import '../chunk-BYMOPN2S.js';
32
31
  import '../chunk-SKLEJJ6M.js';
32
+ import '../chunk-BYMOPN2S.js';
33
33
  import '../chunk-6BZ5TKEV.js';
34
34
  import '../chunk-FZKRSGLP.js';
35
- import '../chunk-CUG6VOLM.js';
36
- import '../chunk-HX3YKS5W.js';
35
+ import '../chunk-7V5HOZW4.js';
36
+ import '../chunk-YA6ABQB7.js';
37
37
  import '../chunk-MISI3T6V.js';
38
38
  import '../chunk-3IHFA2X5.js';
39
39
  import '../chunk-QVJDYSCT.js';
@@ -1,6 +1,6 @@
1
- export { useUser } from '../chunk-VYJDRAWX.js';
2
- import '../chunk-FGROIU3Y.js';
3
- import '../chunk-VX2T7JCB.js';
1
+ export { useUser } from '../chunk-3EE62REP.js';
2
+ import '../chunk-L5K7VBOH.js';
3
+ import '../chunk-EXBH6RGD.js';
4
4
  import '../chunk-QVJDYSCT.js';
5
5
  import '../chunk-LPQFTXBB.js';
6
6
  import '../chunk-N2S25NXP.js';
@@ -1 +1 @@
1
- {"version":3,"file":"useWishlist.d.ts","sourceRoot":"","sources":["../../src/hooks/useWishlist.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAiG3D,wBAAgB,WAAW,IAAI,iBAAiB,CA6C/C;AAED,wBAAgB,kBAAkB,SAIjC"}
1
+ {"version":3,"file":"useWishlist.d.ts","sourceRoot":"","sources":["../../src/hooks/useWishlist.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,MAAM,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,MAAM,CAAC,CAAC;AA6G3D,wBAAgB,WAAW,IAAI,iBAAiB,CA6D/C;AAED,wBAAgB,kBAAkB,SAIjC"}
@@ -1,5 +1,7 @@
1
- export { resetWishlistStore, useWishlist } from '../chunk-GBWCXUPD.js';
1
+ export { resetWishlistStore, useWishlist } from '../chunk-RSVAPXXI.js';
2
+ import '../chunk-TYNZ5B2B.js';
2
3
  import '../chunk-6BZ5TKEV.js';
4
+ import '../chunk-T72DAX7R.js';
3
5
  import '../chunk-DGUM43GV.js';
4
6
  //# sourceMappingURL=useWishlist.js.map
5
7
  //# sourceMappingURL=useWishlist.js.map
package/dist/index.js CHANGED
@@ -1,20 +1,20 @@
1
1
  import { registry } from './chunk-342EPVXN.js';
2
2
  export { ComponentRegistry, registry } from './chunk-342EPVXN.js';
3
- export { TwilightProvider } from './chunk-7N52RMEY.js';
4
- import './chunk-BAOBHXU5.js';
3
+ export { TwilightProvider } from './chunk-BD4V56PZ.js';
4
+ import './chunk-IO77BQGI.js';
5
5
  import './chunk-JKIRRMBU.js';
6
6
  import './chunk-2JV6WZ6O.js';
7
- import './chunk-A32NANNC.js';
7
+ import './chunk-OYP5CGHU.js';
8
8
  import './chunk-VVZNW5CB.js';
9
9
  import './chunk-HBTIZWT2.js';
10
10
  export { useIsBlog, useIsBrands, useIsCart, useIsCustomer, useIsHome, useIsProduct, useIsSearch, useRouteId } from './chunk-SDIQHTDG.js';
11
11
  export { RouteId } from './chunk-ZGHRSRDO.js';
12
12
  import './chunk-DIVEHHMD.js';
13
- import './chunk-C5X6CVXC.js';
14
- import './chunk-VYJDRAWX.js';
15
- import './chunk-FGROIU3Y.js';
16
- import './chunk-VX2T7JCB.js';
17
- export { HookName } from './chunk-TP3LCGE7.js';
13
+ import './chunk-HI5V5X3S.js';
14
+ import './chunk-3EE62REP.js';
15
+ import './chunk-L5K7VBOH.js';
16
+ import './chunk-EXBH6RGD.js';
17
+ export { HookName } from './chunk-MVT5AF2A.js';
18
18
  import './chunk-Z653O7MX.js';
19
19
  import './chunk-ZCH7W7DZ.js';
20
20
  import './chunk-OGVUFMLX.js';
@@ -22,20 +22,20 @@ import './chunk-JWXJPJBO.js';
22
22
  import './chunk-CW625T2E.js';
23
23
  import './chunk-7V36I5GT.js';
24
24
  import './chunk-BVSJPBJ6.js';
25
- import './chunk-GBWCXUPD.js';
25
+ import './chunk-RSVAPXXI.js';
26
26
  import './chunk-OAMIDZKW.js';
27
27
  import './chunk-TYNZ5B2B.js';
28
- import './chunk-RJPPO3ET.js';
29
- import './chunk-Q7VWURUR.js';
30
- import './chunk-GU2KUQVD.js';
31
- import './chunk-I26VPNDP.js';
28
+ import './chunk-V2ZDTY6H.js';
29
+ import './chunk-5XDPAKF5.js';
30
+ import './chunk-GCPEMNSU.js';
31
+ import './chunk-MEPYG77L.js';
32
32
  import './chunk-AXW67SY7.js';
33
- import './chunk-BYMOPN2S.js';
34
33
  import './chunk-SKLEJJ6M.js';
34
+ import './chunk-BYMOPN2S.js';
35
35
  import './chunk-6BZ5TKEV.js';
36
36
  import './chunk-FZKRSGLP.js';
37
- import './chunk-CUG6VOLM.js';
38
- import './chunk-HX3YKS5W.js';
37
+ import './chunk-7V5HOZW4.js';
38
+ import './chunk-YA6ABQB7.js';
39
39
  import './chunk-MISI3T6V.js';
40
40
  import './chunk-3IHFA2X5.js';
41
41
  import './chunk-QVJDYSCT.js';
@@ -1,19 +1,19 @@
1
- import { product } from './chunk-H2DXJCJP.js';
2
- import './chunk-7N52RMEY.js';
3
- import './chunk-BAOBHXU5.js';
1
+ import { product } from './chunk-VFYT2VWC.js';
2
+ import './chunk-BD4V56PZ.js';
3
+ import './chunk-IO77BQGI.js';
4
4
  import './chunk-JKIRRMBU.js';
5
5
  import './chunk-2JV6WZ6O.js';
6
- import './chunk-A32NANNC.js';
6
+ import './chunk-OYP5CGHU.js';
7
7
  import './chunk-VVZNW5CB.js';
8
8
  import './chunk-HBTIZWT2.js';
9
9
  import { useLocation, useNavigate } from './chunk-SDIQHTDG.js';
10
10
  import './chunk-ZGHRSRDO.js';
11
11
  import './chunk-DIVEHHMD.js';
12
- import './chunk-C5X6CVXC.js';
13
- import './chunk-VYJDRAWX.js';
14
- import './chunk-FGROIU3Y.js';
15
- import './chunk-VX2T7JCB.js';
16
- import './chunk-TP3LCGE7.js';
12
+ import './chunk-HI5V5X3S.js';
13
+ import './chunk-3EE62REP.js';
14
+ import './chunk-L5K7VBOH.js';
15
+ import './chunk-EXBH6RGD.js';
16
+ import './chunk-MVT5AF2A.js';
17
17
  import './chunk-Z653O7MX.js';
18
18
  import './chunk-ZCH7W7DZ.js';
19
19
  import './chunk-OGVUFMLX.js';
@@ -21,20 +21,20 @@ import './chunk-JWXJPJBO.js';
21
21
  import './chunk-CW625T2E.js';
22
22
  import './chunk-7V36I5GT.js';
23
23
  import './chunk-BVSJPBJ6.js';
24
- import './chunk-GBWCXUPD.js';
24
+ import './chunk-RSVAPXXI.js';
25
25
  import './chunk-OAMIDZKW.js';
26
26
  import { useTranslation } from './chunk-TYNZ5B2B.js';
27
- import './chunk-RJPPO3ET.js';
28
- import { HookSlot } from './chunk-Q7VWURUR.js';
29
- import './chunk-GU2KUQVD.js';
30
- import { LazyErrorPage } from './chunk-I26VPNDP.js';
27
+ import './chunk-V2ZDTY6H.js';
28
+ import { HookSlot } from './chunk-5XDPAKF5.js';
29
+ import './chunk-GCPEMNSU.js';
30
+ import { LazyErrorPage } from './chunk-MEPYG77L.js';
31
31
  import './chunk-AXW67SY7.js';
32
- import './chunk-BYMOPN2S.js';
33
32
  import './chunk-SKLEJJ6M.js';
33
+ import './chunk-BYMOPN2S.js';
34
34
  import './chunk-6BZ5TKEV.js';
35
35
  import './chunk-FZKRSGLP.js';
36
- import './chunk-CUG6VOLM.js';
37
- import './chunk-HX3YKS5W.js';
36
+ import './chunk-7V5HOZW4.js';
37
+ import './chunk-YA6ABQB7.js';
38
38
  import './chunk-MISI3T6V.js';
39
39
  import './chunk-3IHFA2X5.js';
40
40
  import './chunk-QVJDYSCT.js';
@@ -118,5 +118,5 @@ function NotFoundPage(props = {}) {
118
118
  }
119
119
 
120
120
  export { NotFoundPage };
121
- //# sourceMappingURL=not-found-G4N25RWR.js.map
122
- //# sourceMappingURL=not-found-G4N25RWR.js.map
121
+ //# sourceMappingURL=not-found-SCNJYKWP.js.map
122
+ //# sourceMappingURL=not-found-SCNJYKWP.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/product-short-link.ts","../src/routes/not-found.tsx"],"names":[],"mappings":"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","file":"not-found-G4N25RWR.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { product } from '../api/product';\nimport { isLocale } from '../providers/locale-constants';\nimport { useLocation, useNavigate } from '../providers/NavigationProvider';\n\n/** Short codes are 5-10 letters/digits (e.g. `lvXvzln`). */\nconst SHORT_CODE = /^[A-Za-z0-9]{5,10}$/;\n\n/**\n * The product short code in a path shaped `/{locale}/{code}` or `/{code}` (the\n * store base is already stripped from the router's location), plus the locale\n * segment to keep when redirecting. `null` for any other path.\n */\nexport function parseShortLinkPath(pathname: string): { code: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n if (segments.length === 2 && isLocale(segments[0]) && SHORT_CODE.test(segments[1])) {\n return { code: segments[1], locale: segments[0] };\n }\n if (segments.length === 1 && !isLocale(segments[0]) && SHORT_CODE.test(segments[0])) {\n return { code: segments[0] };\n }\n return null;\n}\n\n/** The SEO slug from a product URL (`…/{slug}/p{id}`), `-` when it has none. */\nexport function slugFromProductUrl(url: string | undefined): string {\n try {\n const segments = new URL(url ?? '').pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1] ?? '';\n return /^p\\d+$/.test(last) && segments.length > 1 ? segments[segments.length - 2] : '-';\n } catch {\n return '-';\n }\n}\n\n/**\n * Resolves a product short link (`/ar/lvXvzln`) that matched no route: the\n * products API accepts the code as an id, so look it up and replace the URL with\n * the product's canonical page. Returns `true` while a lookup is in flight (so the\n * 404 isn't flashed); settles to `false` when the path isn't a short link or the\n * code doesn't resolve.\n */\nexport function useProductShortLink(): boolean {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const target = parseShortLinkPath(pathname);\n const code = target?.code;\n const locale = target?.locale;\n const [failedCode, setFailedCode] = useState<string | null>(null);\n\n useEffect(() => {\n if (!code) return;\n let cancelled = false;\n product\n .find(code)\n .then((found) => {\n if (cancelled) return;\n if (!found?.id) return setFailedCode(code);\n const prefix = locale ? `/${locale}` : '';\n navigate(`${prefix}/${slugFromProductUrl(found.url)}/p${found.id}`, { replace: true });\n })\n .catch(() => !cancelled && setFailedCode(code));\n return () => {\n cancelled = true;\n };\n }, [code, locale, navigate]);\n\n return !!code && failedCode !== code;\n}\n","import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\nimport { useProductShortLink } from './product-short-link';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n // A product short link (`/ar/lvXvzln`) matches no route; resolve it instead of 404ing.\n const resolvingShortLink = useProductShortLink();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n if (resolvingShortLink) return null;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/product-short-link.ts","../src/routes/not-found.tsx"],"names":[],"mappings":"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","file":"not-found-SCNJYKWP.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { product } from '../api/product';\nimport { isLocale } from '../providers/locale-constants';\nimport { useLocation, useNavigate } from '../providers/NavigationProvider';\n\n/** Short codes are 5-10 letters/digits (e.g. `lvXvzln`). */\nconst SHORT_CODE = /^[A-Za-z0-9]{5,10}$/;\n\n/**\n * The product short code in a path shaped `/{locale}/{code}` or `/{code}` (the\n * store base is already stripped from the router's location), plus the locale\n * segment to keep when redirecting. `null` for any other path.\n */\nexport function parseShortLinkPath(pathname: string): { code: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n if (segments.length === 2 && isLocale(segments[0]) && SHORT_CODE.test(segments[1])) {\n return { code: segments[1], locale: segments[0] };\n }\n if (segments.length === 1 && !isLocale(segments[0]) && SHORT_CODE.test(segments[0])) {\n return { code: segments[0] };\n }\n return null;\n}\n\n/** The SEO slug from a product URL (`…/{slug}/p{id}`), `-` when it has none. */\nexport function slugFromProductUrl(url: string | undefined): string {\n try {\n const segments = new URL(url ?? '').pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1] ?? '';\n return /^p\\d+$/.test(last) && segments.length > 1 ? segments[segments.length - 2] : '-';\n } catch {\n return '-';\n }\n}\n\n/**\n * Resolves a product short link (`/ar/lvXvzln`) that matched no route: the\n * products API accepts the code as an id, so look it up and replace the URL with\n * the product's canonical page. Returns `true` while a lookup is in flight (so the\n * 404 isn't flashed); settles to `false` when the path isn't a short link or the\n * code doesn't resolve.\n */\nexport function useProductShortLink(): boolean {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const target = parseShortLinkPath(pathname);\n const code = target?.code;\n const locale = target?.locale;\n const [failedCode, setFailedCode] = useState<string | null>(null);\n\n useEffect(() => {\n if (!code) return;\n let cancelled = false;\n product\n .find(code)\n .then((found) => {\n if (cancelled) return;\n if (!found?.id) return setFailedCode(code);\n const prefix = locale ? `/${locale}` : '';\n navigate(`${prefix}/${slugFromProductUrl(found.url)}/p${found.id}`, { replace: true });\n })\n .catch(() => !cancelled && setFailedCode(code));\n return () => {\n cancelled = true;\n };\n }, [code, locale, navigate]);\n\n return !!code && failedCode !== code;\n}\n","import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\nimport { useProductShortLink } from './product-short-link';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n // A product short link (`/ar/lvXvzln`) matches no route; resolve it instead of 404ing.\n const resolvingShortLink = useProductShortLink();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n if (resolvingShortLink) return null;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}