@salla.sa/twilight-theme-engine 1.0.0-beta.8 → 1.0.0

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 (412) hide show
  1. package/dist/{AddToCartForm-KIIP7WPE.js → AddToCartForm-H4K4VS3M.js} +24 -25
  2. package/dist/AddToCartForm-H4K4VS3M.js.map +1 -0
  3. package/dist/{BlogAuthorPage-MFG3IQPU.js → BlogAuthorPage-FN4XX2OK.js} +26 -23
  4. package/dist/BlogAuthorPage-FN4XX2OK.js.map +1 -0
  5. package/dist/{BlogCategoryPage-UVGE3GHP.js → BlogCategoryPage-MUHIK4WT.js} +26 -23
  6. package/dist/BlogCategoryPage-MUHIK4WT.js.map +1 -0
  7. package/dist/{BlogPage-UHS6PGXG.js → BlogPage-ZG655QM7.js} +29 -20
  8. package/dist/BlogPage-ZG655QM7.js.map +1 -0
  9. package/dist/{BlogSinglePage-EKHG3EEB.js → BlogSinglePage-FLVGIIL7.js} +21 -19
  10. package/dist/BlogSinglePage-FLVGIIL7.js.map +1 -0
  11. package/dist/{BlogTagPage-YS7XJXCP.js → BlogTagPage-ETQGMVW3.js} +26 -23
  12. package/dist/BlogTagPage-ETQGMVW3.js.map +1 -0
  13. package/dist/{BrandsPage-IR6BCOOA.js → BrandsPage-BCJWSKQ4.js} +20 -19
  14. package/dist/BrandsPage-BCJWSKQ4.js.map +1 -0
  15. package/dist/{Breadcrumb-ZC2CFR3R.js → Breadcrumb-4AANUEKN.js} +20 -19
  16. package/dist/Breadcrumb-4AANUEKN.js.map +1 -0
  17. package/dist/{CartItem-3F7WSPBH.js → CartItem-VMYGVMOT.js} +23 -22
  18. package/dist/CartItem-VMYGVMOT.js.map +1 -0
  19. package/dist/{CartSummary-CWNETS3X.js → CartSummary-W7H5YTN6.js} +20 -19
  20. package/dist/CartSummary-W7H5YTN6.js.map +1 -0
  21. package/dist/Copyright-VREW3OTU.js +9 -0
  22. package/dist/{Copyright-NDRRFPDN.js.map → Copyright-VREW3OTU.js.map} +1 -1
  23. package/dist/{CustomerLayout-D57CJOKS.js → CustomerLayout-HI3MHMOJ.js} +20 -19
  24. package/dist/CustomerLayout-HI3MHMOJ.js.map +1 -0
  25. package/dist/ErrorPage-XGBROULF.js +6 -0
  26. package/dist/{ErrorPage-TK4U3ENF.js.map → ErrorPage-XGBROULF.js.map} +1 -1
  27. package/dist/Footer-66XHPADY.js +40 -0
  28. package/dist/{Footer-D7ZEGC6L.js.map → Footer-66XHPADY.js.map} +1 -1
  29. package/dist/Header-TZX55FDN.js +15 -0
  30. package/dist/{Header-HF73ZIFG.js.map → Header-TZX55FDN.js.map} +1 -1
  31. package/dist/ImageModal-LHFSYPSU.js +32 -0
  32. package/dist/ImageModal-LHFSYPSU.js.map +1 -0
  33. package/dist/{LoyaltyPage-P7IAFKNS.js → LoyaltyPage-JN2KJC7E.js} +25 -24
  34. package/dist/LoyaltyPage-JN2KJC7E.js.map +1 -0
  35. package/dist/{MainMenu-B7AP2G53.js → MainMenu-M2SHKHOK.js} +13 -34
  36. package/dist/MainMenu-M2SHKHOK.js.map +1 -0
  37. package/dist/MasterLayout-2346V2WQ.js +40 -0
  38. package/dist/{MasterLayout-2A2JGJOW.js.map → MasterLayout-2346V2WQ.js.map} +1 -1
  39. package/dist/{MobileMenu-NWBLBWXG.js → MobileMenu-LTGCUCOZ.js} +42 -55
  40. package/dist/MobileMenu-LTGCUCOZ.js.map +1 -0
  41. package/dist/{NotificationsPage-RYSVKPHN.js → NotificationsPage-6D7WS3H2.js} +20 -19
  42. package/dist/NotificationsPage-6D7WS3H2.js.map +1 -0
  43. package/dist/{OrderSinglePage-Y4CWIQZG.js → OrderSinglePage-NAZY23SD.js} +69 -57
  44. package/dist/OrderSinglePage-NAZY23SD.js.map +1 -0
  45. package/dist/{OrdersPage-ERZOMNEJ.js → OrdersPage-ARIDUNIW.js} +21 -20
  46. package/dist/OrdersPage-ARIDUNIW.js.map +1 -0
  47. package/dist/{PageSingle-2FJRQTTK.js → PageSingle-X7FAYXMH.js} +3 -3
  48. package/dist/{PageSingle-2FJRQTTK.js.map → PageSingle-X7FAYXMH.js.map} +1 -1
  49. package/dist/{PreOrderNotification-ZVTGNV7K.js → PreOrderNotification-OP57EA6F.js} +3 -3
  50. package/dist/PreOrderNotification-OP57EA6F.js.map +1 -0
  51. package/dist/{PriceQuoteButton-RAAPL4N4.js → PriceQuoteButton-CGRNHY3E.js} +6 -6
  52. package/dist/PriceQuoteButton-CGRNHY3E.js.map +1 -0
  53. package/dist/{ProductDetails-GJXX7FBT.js → ProductDetails-M5DBXW7K.js} +11 -10
  54. package/dist/ProductDetails-M5DBXW7K.js.map +1 -0
  55. package/dist/{ProfilePage-7XAPVC5W.js → ProfilePage-YMFZQIKT.js} +20 -19
  56. package/dist/ProfilePage-YMFZQIKT.js.map +1 -0
  57. package/dist/{SeoCartWidget-ZSMB4PZR.js → SeoCartWidget-VVDUBWCT.js} +20 -19
  58. package/dist/SeoCartWidget-VVDUBWCT.js.map +1 -0
  59. package/dist/{SettingsPage-K4KPFS23.js → SettingsPage-P7H7MQHU.js} +20 -19
  60. package/dist/SettingsPage-P7H7MQHU.js.map +1 -0
  61. package/dist/StoreClosedNotification-4WCOB6Y6.js +41 -0
  62. package/dist/{StoreClosedNotification-FM7OGUVZ.js.map → StoreClosedNotification-4WCOB6Y6.js.map} +1 -1
  63. package/dist/{TestimonialsPage-K5XGI4UL.js → TestimonialsPage-OYWHHUB3.js} +4 -4
  64. package/dist/TestimonialsPage-OYWHHUB3.js.map +1 -0
  65. package/dist/{ThankYouPage-2LFEJXD5.js → ThankYouPage-XSZXBUV3.js} +28 -22
  66. package/dist/ThankYouPage-XSZXBUV3.js.map +1 -0
  67. package/dist/{WalletPage-5T432FV5.js → WalletPage-EPD22OHW.js} +20 -19
  68. package/dist/WalletPage-EPD22OHW.js.map +1 -0
  69. package/dist/WidgetHead-RWL7D3CT.js +7 -0
  70. package/dist/{WidgetHead-FXEPCB23.js.map → WidgetHead-RWL7D3CT.js.map} +1 -1
  71. package/dist/{WishlistPage-3KRCEEJ2.js → WishlistPage-I27GDNTK.js} +20 -19
  72. package/dist/WishlistPage-I27GDNTK.js.map +1 -0
  73. package/dist/ambient/virtual-modules.d.ts +28 -0
  74. package/dist/api/brands.js +3 -32
  75. package/dist/api/cart.js +3 -32
  76. package/dist/api/category.js +3 -32
  77. package/dist/api/loyalty.js +3 -32
  78. package/dist/api/order.js +3 -32
  79. package/dist/api/page.js +3 -32
  80. package/dist/api/product.js +3 -32
  81. package/dist/api/translations.d.ts +1 -1
  82. package/dist/api/translations.d.ts.map +1 -1
  83. package/dist/api/translations.js +1 -1
  84. package/dist/chunk-2JV6WZ6O.js +136 -0
  85. package/dist/chunk-2JV6WZ6O.js.map +1 -0
  86. package/dist/{chunk-H6J7FTB6.js → chunk-2ZRLSZ4V.js} +5 -11
  87. package/dist/chunk-2ZRLSZ4V.js.map +1 -0
  88. package/dist/{chunk-OZEQVDBM.js → chunk-3OAVM4PY.js} +4 -4
  89. package/dist/chunk-3OAVM4PY.js.map +1 -0
  90. package/dist/{chunk-77PLWFVT.js → chunk-4LGAJDZV.js} +55 -28
  91. package/dist/chunk-4LGAJDZV.js.map +1 -0
  92. package/dist/{chunk-EX5U2RKM.js → chunk-6JMXDZXL.js} +7 -7
  93. package/dist/{chunk-EX5U2RKM.js.map → chunk-6JMXDZXL.js.map} +1 -1
  94. package/dist/{chunk-XHGF75TM.js → chunk-6TKIUG5C.js} +11 -4
  95. package/dist/chunk-6TKIUG5C.js.map +1 -0
  96. package/dist/{chunk-TQLEQSXE.js → chunk-6Z4MOC4S.js} +3 -19
  97. package/dist/chunk-6Z4MOC4S.js.map +1 -0
  98. package/dist/{chunk-F5B7KCTV.js → chunk-7O5DYSLX.js} +3 -3
  99. package/dist/chunk-7O5DYSLX.js.map +1 -0
  100. package/dist/{chunk-XUUID4XZ.js → chunk-7UZEHQEQ.js} +3 -3
  101. package/dist/{chunk-XUUID4XZ.js.map → chunk-7UZEHQEQ.js.map} +1 -1
  102. package/dist/{chunk-KXI7DU7Y.js → chunk-B2NXQJEO.js} +3 -3
  103. package/dist/{chunk-KXI7DU7Y.js.map → chunk-B2NXQJEO.js.map} +1 -1
  104. package/dist/{chunk-2FU6CVSB.js → chunk-C5X6CVXC.js} +3 -3
  105. package/dist/{chunk-2FU6CVSB.js.map → chunk-C5X6CVXC.js.map} +1 -1
  106. package/dist/chunk-CUG6VOLM.js +10 -0
  107. package/dist/{chunk-3DCZJDDK.js.map → chunk-CUG6VOLM.js.map} +1 -1
  108. package/dist/{chunk-BWFBVXT3.js → chunk-DF6FBKDN.js} +2 -2
  109. package/dist/chunk-DF6FBKDN.js.map +1 -0
  110. package/dist/{chunk-FWZZL6LO.js → chunk-DIVL44G5.js} +65 -43
  111. package/dist/chunk-DIVL44G5.js.map +1 -0
  112. package/dist/{chunk-4YQJ27IO.js → chunk-ENIGLGGV.js} +6 -6
  113. package/dist/chunk-ENIGLGGV.js.map +1 -0
  114. package/dist/{chunk-UE3BUFZI.js → chunk-FZKRSGLP.js} +3 -3
  115. package/dist/{chunk-UE3BUFZI.js.map → chunk-FZKRSGLP.js.map} +1 -1
  116. package/dist/{chunk-7KY4RVH4.js → chunk-GQG4KE5Z.js} +3 -3
  117. package/dist/chunk-GQG4KE5Z.js.map +1 -0
  118. package/dist/{chunk-J37AYLWL.js → chunk-GU2KUQVD.js} +4 -3
  119. package/dist/chunk-GU2KUQVD.js.map +1 -0
  120. package/dist/{chunk-SVZOWI7E.js → chunk-HTGBIA7K.js} +3 -6
  121. package/dist/chunk-HTGBIA7K.js.map +1 -0
  122. package/dist/{chunk-SFR5V2QH.js → chunk-HWVEOUG4.js} +3 -3
  123. package/dist/{chunk-SFR5V2QH.js.map → chunk-HWVEOUG4.js.map} +1 -1
  124. package/dist/{chunk-3UHSMGPY.js → chunk-HX3YKS5W.js} +9 -3
  125. package/dist/chunk-HX3YKS5W.js.map +1 -0
  126. package/dist/{chunk-PDLXJYO3.js → chunk-IWMGDYNN.js} +3 -3
  127. package/dist/chunk-IWMGDYNN.js.map +1 -0
  128. package/dist/{chunk-TFZ2RT6P.js → chunk-JKIRRMBU.js} +3 -3
  129. package/dist/chunk-JKIRRMBU.js.map +1 -0
  130. package/dist/{chunk-M6ICEIWY.js → chunk-KJRALAYM.js} +2 -2
  131. package/dist/chunk-KJRALAYM.js.map +1 -0
  132. package/dist/{chunk-KN7CD7ZL.js → chunk-KZDE3XKU.js} +6 -6
  133. package/dist/chunk-KZDE3XKU.js.map +1 -0
  134. package/dist/{chunk-UIX3W2PN.js → chunk-OAMIDZKW.js} +3 -3
  135. package/dist/chunk-OAMIDZKW.js.map +1 -0
  136. package/dist/{chunk-MXQCE3KA.js → chunk-OBSAH7K6.js} +4 -45
  137. package/dist/chunk-OBSAH7K6.js.map +1 -0
  138. package/dist/{chunk-FUUWI2B6.js → chunk-P26QKBJC.js} +78 -41
  139. package/dist/chunk-P26QKBJC.js.map +1 -0
  140. package/dist/chunk-Q5YIGQTT.js +14 -0
  141. package/dist/{chunk-BGF4LMSE.js.map → chunk-Q5YIGQTT.js.map} +1 -1
  142. package/dist/{chunk-25SSLQAJ.js → chunk-Q7VWURUR.js} +5 -12
  143. package/dist/chunk-Q7VWURUR.js.map +1 -0
  144. package/dist/{chunk-F7MTREKM.js → chunk-RINZVHVS.js} +3 -3
  145. package/dist/chunk-RINZVHVS.js.map +1 -0
  146. package/dist/{chunk-RYBA3JDM.js → chunk-RJPPO3ET.js} +4 -4
  147. package/dist/{chunk-RYBA3JDM.js.map → chunk-RJPPO3ET.js.map} +1 -1
  148. package/dist/{chunk-GOYYO4NI.js → chunk-TP3LCGE7.js} +2 -2
  149. package/dist/{chunk-GOYYO4NI.js.map → chunk-TP3LCGE7.js.map} +1 -1
  150. package/dist/{chunk-TLB7XC4D.js → chunk-TSAQIQCD.js} +10 -9
  151. package/dist/chunk-TSAQIQCD.js.map +1 -0
  152. package/dist/{chunk-VVRYP6IL.js → chunk-TYNZ5B2B.js} +2 -2
  153. package/dist/chunk-TYNZ5B2B.js.map +1 -0
  154. package/dist/{chunk-KIOJB7HI.js → chunk-W6HFR7YA.js} +3 -3
  155. package/dist/chunk-W6HFR7YA.js.map +1 -0
  156. package/dist/{chunk-7ZAP64PR.js → chunk-WUTGBZQR.js} +7 -12
  157. package/dist/chunk-WUTGBZQR.js.map +1 -0
  158. package/dist/{chunk-YOAEGGXM.js → chunk-XK42WXU5.js} +3 -3
  159. package/dist/chunk-XK42WXU5.js.map +1 -0
  160. package/dist/{chunk-ERQIOVSF.js → chunk-Y62QQRYP.js} +5 -5
  161. package/dist/chunk-Y62QQRYP.js.map +1 -0
  162. package/dist/{chunk-FBFPH5BB.js → chunk-Z4Y55HWX.js} +8 -8
  163. package/dist/chunk-Z4Y55HWX.js.map +1 -0
  164. package/dist/{chunk-KRX225QA.js → chunk-ZNOJPVX3.js} +3 -3
  165. package/dist/chunk-ZNOJPVX3.js.map +1 -0
  166. package/dist/components/cart/CartItem.d.ts.map +1 -1
  167. package/dist/components/cart/PriceQuoteButton.d.ts.map +1 -1
  168. package/dist/components/cart/index.js +1 -1
  169. package/dist/components/collapse/Collapse.d.ts +2 -2
  170. package/dist/components/collapse/Collapse.d.ts.map +1 -1
  171. package/dist/components/collapse/index.js +3 -3
  172. package/dist/components/collapse/index.js.map +1 -1
  173. package/dist/components/common/DeferredData.d.ts +0 -1
  174. package/dist/components/common/DeferredData.d.ts.map +1 -1
  175. package/dist/components/common/ErrorPage.d.ts.map +1 -1
  176. package/dist/components/common/index.js +1 -1
  177. package/dist/components/drawer/Drawer.d.ts.map +1 -1
  178. package/dist/components/drawer/index.js +19 -18
  179. package/dist/components/dropdown/Dropdown.d.ts.map +1 -1
  180. package/dist/components/dropdown/index.js +17 -1
  181. package/dist/components/dropdown/index.js.map +1 -1
  182. package/dist/components/home/ComponentErrorBoundary.d.ts +1 -1
  183. package/dist/components/home/ComponentErrorBoundary.d.ts.map +1 -1
  184. package/dist/components/home/PhotosSlider.d.ts +1 -0
  185. package/dist/components/home/PhotosSlider.d.ts.map +1 -1
  186. package/dist/components/home/SquarePhotos.d.ts +1 -0
  187. package/dist/components/home/SquarePhotos.d.ts.map +1 -1
  188. package/dist/components/home/StoreFeatures.d.ts.map +1 -1
  189. package/dist/components/home/index.js +21 -20
  190. package/dist/components/layout/Header.d.ts.map +1 -1
  191. package/dist/components/layout/index.js +10 -10
  192. package/dist/components/modal/ImageModal.d.ts.map +1 -1
  193. package/dist/components/modal/Modal.d.ts.map +1 -1
  194. package/dist/components/modal/index.js +2 -2
  195. package/dist/components/navigation/MainMenu.d.ts.map +1 -1
  196. package/dist/components/navigation/MobileMenu.d.ts +1 -1
  197. package/dist/components/navigation/MobileMenu.d.ts.map +1 -1
  198. package/dist/components/product/AddToCartForm.d.ts +1 -1
  199. package/dist/components/product/AddToCartForm.d.ts.map +1 -1
  200. package/dist/components/product/ProductGallery.d.ts.map +1 -1
  201. package/dist/components/product/index.js +19 -18
  202. package/dist/components/store/index.js +20 -19
  203. package/dist/components/store/index.js.map +1 -1
  204. package/dist/components/toast/index.js +47 -2
  205. package/dist/components/toast/index.js.map +1 -1
  206. package/dist/dev/DevSettingsWidget.d.ts +19 -0
  207. package/dist/dev/DevSettingsWidget.d.ts.map +1 -0
  208. package/dist/dev/dev-settings-store.d.ts +62 -0
  209. package/dist/dev/dev-settings-store.d.ts.map +1 -0
  210. package/dist/dev/index.d.ts +9 -0
  211. package/dist/dev/index.d.ts.map +1 -0
  212. package/dist/dev/index.js +330 -0
  213. package/dist/dev/index.js.map +1 -0
  214. package/dist/dev/schema-types.d.ts +43 -0
  215. package/dist/dev/schema-types.d.ts.map +1 -0
  216. package/dist/{document-class-NEP4TMDL.js → document-class-WLNCTQI2.js} +9 -9
  217. package/dist/{document-class-NEP4TMDL.js.map → document-class-WLNCTQI2.js.map} +1 -1
  218. package/dist/hooks/HookRegistry.d.ts +1 -0
  219. package/dist/hooks/HookRegistry.d.ts.map +1 -1
  220. package/dist/hooks/HookRegistry.js +1 -1
  221. package/dist/hooks/HookSlot.d.ts +1 -1
  222. package/dist/hooks/HookSlot.d.ts.map +1 -1
  223. package/dist/hooks/HookSlot.js +3 -3
  224. package/dist/hooks/index.js +18 -17
  225. package/dist/hooks/useBlogLike.js +2 -2
  226. package/dist/hooks/useGtm.js +18 -17
  227. package/dist/hooks/useHook.js +2 -2
  228. package/dist/hooks/useMoney.d.ts.map +1 -1
  229. package/dist/hooks/useMoney.js +18 -17
  230. package/dist/hooks/useNumber.d.ts.map +1 -1
  231. package/dist/hooks/useStore.js +18 -17
  232. package/dist/hooks/useTheme.js +2 -2
  233. package/dist/i18n.d.ts +1 -1
  234. package/dist/i18n.js +1 -1
  235. package/dist/index.d.ts +1 -1
  236. package/dist/index.d.ts.map +1 -1
  237. package/dist/index.js +18 -17
  238. package/dist/index.js.map +1 -1
  239. package/dist/{navigation-MAZHULIR.js → navigation-ZCEGLIHD.js} +5 -5
  240. package/dist/{navigation-MAZHULIR.js.map → navigation-ZCEGLIHD.js.map} +1 -1
  241. package/dist/{navigation-BXQW7Z4X.js → navigation-ZIULIDFF.js} +5 -5
  242. package/dist/{navigation-BXQW7Z4X.js.map → navigation-ZIULIDFF.js.map} +1 -1
  243. package/dist/nextjs/index.d.ts +1 -2
  244. package/dist/nextjs/index.d.ts.map +1 -1
  245. package/dist/nextjs/link.d.ts +0 -4
  246. package/dist/nextjs/link.d.ts.map +1 -1
  247. package/dist/nextjs/router.d.ts +0 -6
  248. package/dist/nextjs/router.d.ts.map +1 -1
  249. package/dist/nextjs.js +2 -7
  250. package/dist/nextjs.js.map +1 -1
  251. package/dist/{not-found-VAZJJIEX.js → not-found-GRNEMF22.js} +20 -19
  252. package/dist/not-found-GRNEMF22.js.map +1 -0
  253. package/dist/providers/{i18n.d.ts → I18nProvider.d.ts} +1 -1
  254. package/dist/providers/I18nProvider.d.ts.map +1 -0
  255. package/dist/providers/NavigationProvider.d.ts +1 -4
  256. package/dist/providers/NavigationProvider.d.ts.map +1 -1
  257. package/dist/providers/TwilightProvider.d.ts +1 -1
  258. package/dist/providers/TwilightProvider.d.ts.map +1 -1
  259. package/dist/providers/index.js +18 -17
  260. package/dist/providers/navigation-setups.d.ts +5 -0
  261. package/dist/providers/navigation-setups.d.ts.map +1 -0
  262. package/dist/providers/twilight-context.d.ts +1 -1
  263. package/dist/providers/twilight-context.d.ts.map +1 -1
  264. package/dist/providers/twilight-init.d.ts +1 -1
  265. package/dist/providers/twilight-init.d.ts.map +1 -1
  266. package/dist/routes/account/orders/OrderSinglePage.d.ts.map +1 -1
  267. package/dist/routes/account/orders.js +4 -33
  268. package/dist/routes/account.js +9 -38
  269. package/dist/routes/account.js.map +1 -1
  270. package/dist/routes/blog/BlogAuthorPage.d.ts.map +1 -1
  271. package/dist/routes/blog/BlogCategoryPage.d.ts.map +1 -1
  272. package/dist/routes/blog/BlogPage.d.ts +1 -1
  273. package/dist/routes/blog/BlogPage.d.ts.map +1 -1
  274. package/dist/routes/blog/BlogSinglePage.d.ts.map +1 -1
  275. package/dist/routes/blog/BlogTagPage.d.ts.map +1 -1
  276. package/dist/routes/blog.js +8 -37
  277. package/dist/routes/blog.js.map +1 -1
  278. package/dist/routes/brands.js +4 -33
  279. package/dist/routes/brands.js.map +1 -1
  280. package/dist/routes/cart.js +25 -24
  281. package/dist/routes/cart.js.map +1 -1
  282. package/dist/routes/home/HomePage.d.ts.map +1 -1
  283. package/dist/routes/home.js +22 -21
  284. package/dist/routes/index.d.ts +2 -2
  285. package/dist/routes/index.d.ts.map +1 -1
  286. package/dist/routes/index.js +4 -34
  287. package/dist/routes/loyalty.js +4 -33
  288. package/dist/routes/loyalty.js.map +1 -1
  289. package/dist/routes/page.js +4 -33
  290. package/dist/routes/page.js.map +1 -1
  291. package/dist/routes/product-listing/ProductListPage.d.ts.map +1 -1
  292. package/dist/routes/product-listing.js +26 -28
  293. package/dist/routes/product-listing.js.map +1 -1
  294. package/dist/routes/product.js +21 -20
  295. package/dist/routes/product.js.map +1 -1
  296. package/dist/routes/seo-redirects.js +3 -34
  297. package/dist/routes/testimonials.js +1 -1
  298. package/dist/routes/thank-you/ThankYouPage.d.ts +1 -1
  299. package/dist/routes/thank-you/ThankYouPage.d.ts.map +1 -1
  300. package/dist/routes/thank-you.js +4 -33
  301. package/dist/routes/thank-you.js.map +1 -1
  302. package/dist/skeleton.js +22 -21
  303. package/dist/tanstack/router.d.ts +0 -3
  304. package/dist/tanstack/router.d.ts.map +1 -1
  305. package/dist/tanstack.js +9 -9
  306. package/dist/tanstack.js.map +1 -1
  307. package/dist/types/hooks.d.ts +1 -0
  308. package/dist/types/hooks.d.ts.map +1 -1
  309. package/dist/types/hooks.js +1 -1
  310. package/dist/types/index.js +1 -1
  311. package/dist/{providers/salla-sdk.types.d.ts → types/salla-sdk.d.ts} +3 -1
  312. package/dist/types/salla-sdk.d.ts.map +1 -0
  313. package/dist/{providers/twilight.types.d.ts → types/twilight.d.ts} +4 -4
  314. package/dist/types/twilight.d.ts.map +1 -0
  315. package/dist/utils/breadcrumb.d.ts +0 -1
  316. package/dist/utils/breadcrumb.d.ts.map +1 -1
  317. package/dist/utils/engine-version.d.ts +10 -0
  318. package/dist/utils/engine-version.d.ts.map +1 -0
  319. package/dist/utils/index.js +19 -1
  320. package/dist/utils/index.js.map +1 -1
  321. package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
  322. package/dist/vite/index.js +172 -2
  323. package/dist/vite/index.js.map +1 -1
  324. package/dist/vite/plugins/twilight-schema.d.ts +18 -0
  325. package/dist/vite/plugins/twilight-schema.d.ts.map +1 -0
  326. package/dist/vite/plugins/twilight-schema.plugin.d.ts +20 -0
  327. package/dist/vite/plugins/twilight-schema.plugin.d.ts.map +1 -0
  328. package/dist/vite/types.d.ts +7 -0
  329. package/dist/vite/types.d.ts.map +1 -1
  330. package/package.json +8 -1
  331. package/dist/AddToCartForm-KIIP7WPE.js.map +0 -1
  332. package/dist/BlogAuthorPage-MFG3IQPU.js.map +0 -1
  333. package/dist/BlogCategoryPage-UVGE3GHP.js.map +0 -1
  334. package/dist/BlogPage-UHS6PGXG.js.map +0 -1
  335. package/dist/BlogSinglePage-EKHG3EEB.js.map +0 -1
  336. package/dist/BlogTagPage-YS7XJXCP.js.map +0 -1
  337. package/dist/BrandsPage-IR6BCOOA.js.map +0 -1
  338. package/dist/Breadcrumb-ZC2CFR3R.js.map +0 -1
  339. package/dist/CartItem-3F7WSPBH.js.map +0 -1
  340. package/dist/CartSummary-CWNETS3X.js.map +0 -1
  341. package/dist/Copyright-NDRRFPDN.js +0 -9
  342. package/dist/CustomerLayout-D57CJOKS.js.map +0 -1
  343. package/dist/ErrorPage-TK4U3ENF.js +0 -6
  344. package/dist/Footer-D7ZEGC6L.js +0 -39
  345. package/dist/Header-HF73ZIFG.js +0 -15
  346. package/dist/ImageModal-WLJM3WIE.js +0 -41
  347. package/dist/ImageModal-WLJM3WIE.js.map +0 -1
  348. package/dist/LoyaltyPage-P7IAFKNS.js.map +0 -1
  349. package/dist/MainMenu-B7AP2G53.js.map +0 -1
  350. package/dist/MasterLayout-2A2JGJOW.js +0 -39
  351. package/dist/MobileMenu-NWBLBWXG.js.map +0 -1
  352. package/dist/NotificationsPage-RYSVKPHN.js.map +0 -1
  353. package/dist/OrderSinglePage-Y4CWIQZG.js.map +0 -1
  354. package/dist/OrdersPage-ERZOMNEJ.js.map +0 -1
  355. package/dist/PreOrderNotification-ZVTGNV7K.js.map +0 -1
  356. package/dist/PriceQuoteButton-RAAPL4N4.js.map +0 -1
  357. package/dist/ProductDetails-GJXX7FBT.js.map +0 -1
  358. package/dist/ProfilePage-7XAPVC5W.js.map +0 -1
  359. package/dist/SeoCartWidget-ZSMB4PZR.js.map +0 -1
  360. package/dist/SettingsPage-K4KPFS23.js.map +0 -1
  361. package/dist/StoreClosedNotification-FM7OGUVZ.js +0 -40
  362. package/dist/TestimonialsPage-K5XGI4UL.js.map +0 -1
  363. package/dist/ThankYouPage-2LFEJXD5.js.map +0 -1
  364. package/dist/WalletPage-5T432FV5.js.map +0 -1
  365. package/dist/WidgetHead-FXEPCB23.js +0 -7
  366. package/dist/WishlistPage-3KRCEEJ2.js.map +0 -1
  367. package/dist/chunk-25SSLQAJ.js.map +0 -1
  368. package/dist/chunk-3DCZJDDK.js +0 -10
  369. package/dist/chunk-3UHSMGPY.js.map +0 -1
  370. package/dist/chunk-4YQJ27IO.js.map +0 -1
  371. package/dist/chunk-77PLWFVT.js.map +0 -1
  372. package/dist/chunk-7KY4RVH4.js.map +0 -1
  373. package/dist/chunk-7ZAP64PR.js.map +0 -1
  374. package/dist/chunk-BGF4LMSE.js +0 -14
  375. package/dist/chunk-BWFBVXT3.js.map +0 -1
  376. package/dist/chunk-ERQIOVSF.js.map +0 -1
  377. package/dist/chunk-F5B7KCTV.js.map +0 -1
  378. package/dist/chunk-F7MTREKM.js.map +0 -1
  379. package/dist/chunk-FBFPH5BB.js.map +0 -1
  380. package/dist/chunk-FUUWI2B6.js.map +0 -1
  381. package/dist/chunk-FWZZL6LO.js.map +0 -1
  382. package/dist/chunk-H6J7FTB6.js.map +0 -1
  383. package/dist/chunk-J37AYLWL.js.map +0 -1
  384. package/dist/chunk-KIOJB7HI.js.map +0 -1
  385. package/dist/chunk-KN7CD7ZL.js.map +0 -1
  386. package/dist/chunk-KRX225QA.js.map +0 -1
  387. package/dist/chunk-M6ICEIWY.js.map +0 -1
  388. package/dist/chunk-MXQCE3KA.js.map +0 -1
  389. package/dist/chunk-OZEQVDBM.js.map +0 -1
  390. package/dist/chunk-PDLXJYO3.js.map +0 -1
  391. package/dist/chunk-SVZOWI7E.js.map +0 -1
  392. package/dist/chunk-TFZ2RT6P.js.map +0 -1
  393. package/dist/chunk-TLB7XC4D.js.map +0 -1
  394. package/dist/chunk-TQLEQSXE.js.map +0 -1
  395. package/dist/chunk-UIX3W2PN.js.map +0 -1
  396. package/dist/chunk-VVRYP6IL.js.map +0 -1
  397. package/dist/chunk-XHGF75TM.js.map +0 -1
  398. package/dist/chunk-YOAEGGXM.js.map +0 -1
  399. package/dist/components/common/types.d.ts +0 -7
  400. package/dist/components/common/types.d.ts.map +0 -1
  401. package/dist/lib/services/index.d.ts +0 -1
  402. package/dist/lib/services/index.d.ts.map +0 -1
  403. package/dist/not-found-VAZJJIEX.js.map +0 -1
  404. package/dist/providers/i18n.d.ts.map +0 -1
  405. package/dist/providers/salla-sdk.types.d.ts.map +0 -1
  406. package/dist/providers/twilight.types.d.ts.map +0 -1
  407. package/dist/router/context.d.ts +0 -3
  408. package/dist/router/context.d.ts.map +0 -1
  409. package/dist/router/index.d.ts +0 -4
  410. package/dist/router/index.d.ts.map +0 -1
  411. package/dist/twilight/index.d.ts +0 -3
  412. package/dist/twilight/index.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/category.ts"],"names":[],"mappings":";;;;AAKO,IAAM,QAAA,GAAW;AAAA,EACtB,IAAA,EAAM,OAAO,EAAA,KAAkC;AAC7C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,WAAA,EAAc,EAAE,CAAA,CAAE,CAAA,CAAE,IAAA,EAAyB;AAC5E,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,aAAa,CAAC,EAAA,KAAkC,QAAQ,QAAA,CAAS,IAAA,CAAK,EAAE,CAAC,CAAA;AAAA,EAEzE,MAAM,YAAiC;AACrC,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,YAAY,EAAE,IAAA,EAA2B;AACxE,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,CAAC,EAAA,KACP,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,YAAA,EAAc,QAAA,EAAU,EAAE,CAAA;AAAA,MACrC,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA,CAAK,EAAE;AAAA,KAChC,CAAA;AAAA,IAEH,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA;AAAA,MAEX,QAAA,EAAU,CAAC,YAAA,EAAc,MAAA,EAAQ,EAAE,KAAA,EAAO,gBAAA,IAAoB,CAAA;AAAA,MAC9D,OAAA,EAAS,MAAM,QAAA,CAAS,IAAA;AAAK,KAC9B;AAAA;AAEP","file":"chunk-IWMGDYNN.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getActiveScopeId } from './client';\nimport type { Category } from '../types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport const category = {\n find: async (id: string): Promise<Category> => {\n const { data } = await api.get(`categories/${id}`).json<{ data: Category }>();\n return data;\n },\n\n findOrThrow: (id: string): Promise<Category> => orThrow(category.find(id)),\n\n list: async (): Promise<Category[]> => {\n const { data } = await api.get('categories').json<{ data: Category[] }>();\n return data ?? [];\n },\n\n queries: {\n detail: (id: string) =>\n queryOptions({\n queryKey: ['categories', 'detail', id],\n queryFn: () => category.find(id),\n }),\n\n list: () =>\n queryOptions({\n // Scope (branch) varies the API response — key must include it.\n queryKey: ['categories', 'list', { scope: getActiveScopeId() }],\n queryFn: () => category.list(),\n }),\n },\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { useTranslation } from './chunk-VVRYP6IL.js';
1
+ import { useTranslation } from './chunk-TYNZ5B2B.js';
2
2
  import { Link } from './chunk-AXW67SY7.js';
3
3
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
4
4
 
@@ -16,5 +16,5 @@ function Copyright({ storeName = "" }) {
16
16
  }
17
17
 
18
18
  export { Copyright };
19
- //# sourceMappingURL=chunk-TFZ2RT6P.js.map
20
- //# sourceMappingURL=chunk-TFZ2RT6P.js.map
19
+ //# sourceMappingURL=chunk-JKIRRMBU.js.map
20
+ //# sourceMappingURL=chunk-JKIRRMBU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/layout/Copyright.tsx"],"names":[],"mappings":";;;;AAUO,SAAS,SAAA,CAAU,EAAE,SAAA,GAAY,EAAA,EAAG,EAAmB;AAC5D,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,IAAA,GAAA,iBAAO,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAEpC,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACG,QAAA,EAAA;AAAA,IAAA,CAAA,CAAE,2BAA2B,WAAW,CAAA;AAAA,IAAE,KAAA;AAAA,IAAI,IAAA;AAAA,IAAM,GAAA;AAAA,wBACpD,IAAA,EAAA,EAAK,EAAA,EAAG,GAAA,EAAI,SAAA,EAAU,sBACpB,QAAA,EAAA,SAAA,EACH,CAAA;AAAA,IAAQ;AAAA,GAAA,EACV,CAAA;AAEJ","file":"chunk-JKIRRMBU.js","sourcesContent":["import { useTranslation } from '../../providers/I18nProvider';\nimport { Link } from '../common';\n\nexport interface CopyrightProps {\n storeName?: string;\n}\n\n/**\n * Simple copyright component - shows \"Copyright | Year StoreName | Powered by Salla\"\n */\nexport function Copyright({ storeName = '' }: CopyrightProps) {\n const { t } = useTranslation();\n const year = new Date().getFullYear();\n\n return (\n <>\n {t('blocks.footer.copyright', 'Copyright')} | {year}{' '}\n <Link to=\"/\" className=\"hover:text-primary\">\n {storeName}\n </Link>{' '}\n </>\n );\n}\n"]}
@@ -21,5 +21,5 @@ var translations = {
21
21
  };
22
22
 
23
23
  export { translations };
24
- //# sourceMappingURL=chunk-M6ICEIWY.js.map
25
- //# sourceMappingURL=chunk-M6ICEIWY.js.map
24
+ //# sourceMappingURL=chunk-KJRALAYM.js.map
25
+ //# sourceMappingURL=chunk-KJRALAYM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/translations.ts"],"names":[],"mappings":";;;AAIA,IAAM,yBAAA,GAA4B,sBAAA;AAC3B,IAAM,YAAA,GAAe;AAAA,EAC1B,KAAK,YAAiD;AACpD,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAChB,GAAA,CAAI,yBAAA,EAA2B,EAAE,OAAA,EAAS,GAAA,EAAM,CAAA,CAChD,IAAA,EAA0B;AAC7B,MAAA,OAAO,IAAA,IAAQ,IAAA;AAAA,IACjB,CAAA,CAAA,MAAQ;AACN,MAAA,OAAA,CAAQ,KAAK,gDAAgD,CAAA;AAC7D,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,cAAc,CAAA;AAAA,MACzB,OAAA,EAAS,MAAM,YAAA,CAAa,GAAA;AAAI,KACjC;AAAA;AAEP","file":"chunk-KJRALAYM.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { cdn } from './client';\nimport type { TranslationMessages } from '../providers/I18nProvider';\n\nconst TRANSLATIONS_CDN_FALLBACK = 'js/translations.json';\nexport const translations = {\n get: async (): Promise<TranslationMessages | null> => {\n try {\n const data = await cdn\n .get(TRANSLATIONS_CDN_FALLBACK, { timeout: 5000 })\n .json<TranslationMessages>();\n return data ?? null;\n } catch {\n console.warn('[translations.get] Failed to load translations');\n return null;\n }\n },\n\n queries: {\n byLocale: () =>\n queryOptions({\n queryKey: ['translations'],\n queryFn: () => translations.get(),\n }),\n },\n};\n"]}
@@ -1,6 +1,6 @@
1
- import { order } from './chunk-7KY4RVH4.js';
1
+ import { order } from './chunk-GQG4KE5Z.js';
2
2
  import { buildHreflangAlternates } from './chunk-TZ3E5BN4.js';
3
- import { orUnauthorized } from './chunk-H6J7FTB6.js';
3
+ import { orUnauthorized } from './chunk-2ZRLSZ4V.js';
4
4
  import { RouteId } from './chunk-MTONGOJD.js';
5
5
  import { getTwilightContext } from './chunk-KIPZQN3Y.js';
6
6
  import { lazy } from 'react';
@@ -47,9 +47,9 @@ async function orderSingleLoader({
47
47
  }
48
48
 
49
49
  // src/routes/account/orders/index.tsx
50
- var LazyOrdersPage = lazy(() => import('./OrdersPage-ERZOMNEJ.js').then((m) => ({ default: m.OrdersPage })));
50
+ var LazyOrdersPage = lazy(() => import('./OrdersPage-ARIDUNIW.js').then((m) => ({ default: m.OrdersPage })));
51
51
  var LazyOrderSinglePage = lazy(
52
- () => import('./OrderSinglePage-Y4CWIQZG.js').then((m) => ({ default: m.OrderSinglePage }))
52
+ () => import('./OrderSinglePage-NAZY23SD.js').then((m) => ({ default: m.OrderSinglePage }))
53
53
  );
54
54
  var OrdersPage = LazyOrdersPage;
55
55
  var OrderSinglePage = LazyOrderSinglePage;
@@ -101,5 +101,5 @@ var OrderSingle = {
101
101
  };
102
102
 
103
103
  export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader };
104
- //# sourceMappingURL=chunk-KN7CD7ZL.js.map
105
- //# sourceMappingURL=chunk-KN7CD7ZL.js.map
104
+ //# sourceMappingURL=chunk-KZDE3XKU.js.map
105
+ //# sourceMappingURL=chunk-KZDE3XKU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-KZDE3XKU.js","sourcesContent":["import { order } from '../../../api/order';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersQuery } from './types';\nimport type { IdParams } from '../../types';\n\nexport async function ordersLoader(\n ctx: { query?: OrdersQuery },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.query;\n const isPending = query?.status === 'pending';\n const response = await orUnauthorized(\n order.list({\n status: query?.status,\n feedback_status: query?.feedback_status,\n })\n );\n const i18n = getTwilightContext().i18n;\n const pageData: OrdersPageProps = {\n page: {\n title: isPending\n ? i18n.t('common.titles.pending_orders') || 'Pending Orders'\n : i18n.t('common.titles.orders') || 'Orders',\n slug: 'orders',\n },\n orders: response.data,\n cursor: response.cursor,\n query,\n };\n\n if (extend) {\n const extra = await extend(pageData, { params: {} });\n return { ...pageData, ...extra } as OrdersPageProps;\n }\n return pageData;\n}\n\nexport async function orderSingleLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<OrderSinglePageProps> {\n const data = await order.findOrThrow(params.id);\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.CUSTOMER_ORDERS_SINGLE,\n id: String(params.id),\n title: (i18n.t('pages.orders.order_details') || 'Order Details').replace(':id', params.id),\n },\n order: data.order,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { ordersLoader, orderSingleLoader } from './loader';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersSearchParams } from './types';\nimport type { IdParams } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\n// Lazy-load components for code-splitting\nconst LazyOrdersPage = lazy(() => import('./OrdersPage').then((m) => ({ default: m.OrdersPage })));\nconst LazyOrderSinglePage = lazy(() =>\n import('./OrderSinglePage').then((m) => ({ default: m.OrderSinglePage }))\n);\n\nexport const OrdersPage = LazyOrdersPage;\nexport const OrderSinglePage = LazyOrderSinglePage;\nexport { ordersLoader, orderSingleLoader } from './loader';\nexport type {\n OrdersPageProps,\n OrderSinglePageProps,\n OrdersSearchParams,\n OrdersQuery,\n} from './types';\n\nasync function ordersLoaderWithExtend(\n ctx: { search?: OrdersSearchParams; locale?: string },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.search;\n const data = await ordersLoader({ query }, extend);\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as OrdersPageProps;\n }\n return data;\n}\n\nfunction ordersHead(ctx: TwilightContext, data: OrdersPageProps): HeadDescriptor {\n const isPending = ctx.location.search?.status === 'pending';\n const base: HeadDescriptor = {\n title: ctx.i18n.t(isPending ? 'common.titles.pending_orders' : 'common.titles.orders'),\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function orderSingleLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: OrderSinglePageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrderSinglePageProps> {\n const data = await orderSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as OrderSinglePageProps;\n }\n return data;\n}\n\nfunction orderSingleHead(ctx: TwilightContext, data: OrderSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Orders = {\n id: RouteId.CUSTOMER_ORDERS_INDEX,\n loader: ordersLoaderWithExtend,\n head: ordersHead,\n Component: LazyOrdersPage,\n} as const;\nexport const OrderSingle = {\n id: RouteId.CUSTOMER_ORDERS_SINGLE,\n loader: orderSingleLoaderWithExtend,\n head: orderSingleHead,\n Component: LazyOrderSinglePage,\n} as const;\n"]}
@@ -1,4 +1,4 @@
1
- import { useTranslation } from './chunk-VVRYP6IL.js';
1
+ import { useTranslation } from './chunk-TYNZ5B2B.js';
2
2
  import { useAsyncFn } from './chunk-6BZ5TKEV.js';
3
3
  import { useState, useEffect, useCallback } from 'react';
4
4
 
@@ -52,5 +52,5 @@ function useBlogLike(blogId, initialCount = 0) {
52
52
  }
53
53
 
54
54
  export { useBlogLike };
55
- //# sourceMappingURL=chunk-UIX3W2PN.js.map
56
- //# sourceMappingURL=chunk-UIX3W2PN.js.map
55
+ //# sourceMappingURL=chunk-OAMIDZKW.js.map
56
+ //# sourceMappingURL=chunk-OAMIDZKW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/hooks/useBlogLike.ts"],"names":[],"mappings":"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","file":"chunk-OAMIDZKW.js","sourcesContent":["import { useState, useCallback, useEffect } from 'react';\nimport { useAsyncFn } from './useAsyncFn';\nimport { useTranslation } from '../providers/I18nProvider';\nimport type { UseToggle } from './types';\n\n/**\n * UseBlogLikeResult - Return type for useBlogLike hook\n */\nexport type UseBlogLikeResult = UseToggle;\n\n/**\n * useBlogLike - Hook for managing blog like functionality\n *\n * Handles blog likes with local storage persistence to remember liked blogs\n * across sessions. Integrates with the Salla SDK for API operations and\n * maintains like counts.\n *\n * @param blogId - The ID of the blog to manage likes for\n * @param initialCount - Initial like count (optional, defaults to 0)\n *\n * @returns Blog like state and management functions\n *\n * @example\n * ```tsx\n * function BlogLikeButton({ blogId, initialCount }) {\n * const { active, count, toggle, loading } = useBlogLike(blogId, initialCount);\n *\n * return (\n * <button\n * onClick={toggle}\n * disabled={loading}\n * className={active ? 'liked' : ''}\n * >\n * {loading ? (\n * <span className=\"loader loader--small\"></span>\n * ) : (\n * <i className=\"sicon-thumbs-up\"></i>\n * )}\n * {count}\n * </button>\n * );\n * }\n * ```\n */\n\nconst LIKED_BLOGS_KEY = 'liked_blogs';\n\nexport function useBlogLike(blogId: number, initialCount: number = 0): UseBlogLikeResult {\n const [likedBlogs, setLikedBlogs] = useState<number[]>([]);\n\n useEffect(() => {\n try {\n const stored = localStorage.getItem(LIKED_BLOGS_KEY);\n if (stored) setLikedBlogs(JSON.parse(stored));\n } catch (_error) {\n /* ignore storage errors */\n }\n }, []);\n\n useEffect(() => {\n try {\n localStorage.setItem(LIKED_BLOGS_KEY, JSON.stringify(likedBlogs));\n } catch (_error) {\n /* ignore storage errors */\n }\n }, [likedBlogs]);\n const [count, setCount] = useState(initialCount);\n const { t } = useTranslation();\n\n const active = likedBlogs.includes(blogId);\n\n const [addState, addFn] = useAsyncFn(async () => {\n const salla = window.salla;\n if (salla?.config?.isGuest?.()) {\n salla.notify.error(t('common.messages.must_login', 'Please login first'));\n return;\n }\n await salla?.api.request(`blogs/${blogId}/like`, {}, 'put');\n setLikedBlogs((prev) => (prev.includes(blogId) ? prev : [...prev, blogId]));\n setCount((prev) => prev + 1);\n }, [blogId, setLikedBlogs]);\n\n const [removeState, removeFn] = useAsyncFn(async () => {\n const salla = window.salla;\n await salla?.api.request(`blogs/${blogId}/unlike`, {}, 'delete');\n setLikedBlogs((prev) => prev.filter((id) => id !== blogId));\n setCount((prev) => Math.max(0, prev - 1));\n }, [blogId, setLikedBlogs]);\n\n const add = async (): Promise<boolean> => !(((await addFn()) as unknown) instanceof Error);\n const remove = async (): Promise<boolean> => !(((await removeFn()) as unknown) instanceof Error);\n\n const toggle = useCallback(() => (active ? remove() : add()), [active, addFn, removeFn]);\n\n return {\n active,\n count,\n add,\n remove,\n toggle,\n loading: addState.loading || removeState.loading,\n error: (addState.error ?? removeState.error)?.message ?? null,\n };\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { useTwilight } from './chunk-BWFBVXT3.js';
1
+ import { useTwilight } from './chunk-DF6FBKDN.js';
2
2
  import { useRef, useState, useEffect } from 'react';
3
3
  import { toast, Toaster as Toaster$1 } from 'sonner';
4
4
  import { jsx } from 'react/jsx-runtime';
@@ -126,48 +126,7 @@ function Toaster({
126
126
  }
127
127
  );
128
128
  }
129
- var useToast = Object.assign(
130
- (title, options) => toast(title, options),
131
- {
132
- success: (title, options) => toast.success(title, options),
133
- error: (title, options) => toast.error(title, options),
134
- warning: (title, options) => toast.warning(title, options),
135
- info: (title, options) => toast.info(title, options),
136
- loading: (title, options) => toast.loading(title, options),
137
- update: (id, options) => {
138
- const { title, type, ...rest } = options;
139
- if (type === "success") {
140
- toast.success(id, { ...rest, description: title });
141
- } else if (type === "error") {
142
- toast.error(id, { ...rest, description: title });
143
- } else if (type === "warning") {
144
- toast.warning(id, { ...rest, description: title });
145
- } else if (type === "info") {
146
- toast.info(id, { ...rest, description: title });
147
- } else if (type === "loading") {
148
- toast.loading(id, { ...rest, description: title });
149
- } else {
150
- toast(id, { ...rest, description: title });
151
- }
152
- },
153
- dismiss: (id) => {
154
- if (id !== void 0) {
155
- toast.dismiss(id);
156
- } else {
157
- toast.dismiss();
158
- }
159
- },
160
- promise: (promise, options) => {
161
- toast.promise(promise, {
162
- loading: options.loading,
163
- success: options.success,
164
- error: options.error
165
- });
166
- return promise;
167
- }
168
- }
169
- );
170
129
 
171
- export { Toaster, useToast };
172
- //# sourceMappingURL=chunk-MXQCE3KA.js.map
173
- //# sourceMappingURL=chunk-MXQCE3KA.js.map
130
+ export { Toaster };
131
+ //# sourceMappingURL=chunk-OBSAH7K6.js.map
132
+ //# sourceMappingURL=chunk-OBSAH7K6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/toast/Toaster.tsx"],"names":["SonnerToaster"],"mappings":"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","file":"chunk-OBSAH7K6.js","sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { Toaster as SonnerToaster, toast } from 'sonner';\nimport { useTwilight } from '../../providers/twilight-context';\nimport type { ToastPosition } from './types';\n\nconst toastClassNames = {\n toast: 'group bg-white border-2 rounded-xl shadow-2xl p-4 font-primary',\n title: 'text-base font-bold',\n description: 'text-sm mt-1 text-gray-600',\n actionButton: 'bg-primary text-white px-3 py-1 rounded',\n cancelButton: 'bg-gray-100 px-3 py-1 rounded',\n success: 'border-green-500 [&_svg]:text-green-500 [&_aside]:text-green-700',\n error: 'border-red-500 [&_svg]:text-red-500 [&_aside]:text-red-700',\n warning: 'border-yellow-500 [&_svg]:text-yellow-500 [&_aside]:text-yellow-700',\n info: 'border-blue-500 [&_svg]:text-blue-500 [&_aside]:text-blue-700',\n loading: 'border-gray-400',\n};\n\ntype RawMessage = string | { title?: string; text?: string; icon?: string };\ntype ToastVariant = 'success' | 'error' | 'warning' | 'info';\n\nconst MOBILE_BREAKPOINT = 768;\nconst NATIVE_ALERT_EVENT = 'ui::alert';\n\nfunction dispatchNativeAlert(type: ToastVariant, message: string, title?: string) {\n const salla = window.salla;\n if (!salla?.mobile?.isEnabled?.() || !salla.event?.dispatch) return false;\n\n salla.event.dispatch(NATIVE_ALERT_EVENT, {\n type,\n message,\n ...(title ? { title } : {}),\n });\n return true;\n}\n\nexport function Toaster({\n mobilePosition = 'bottom-center',\n addToCartToast = true,\n}: {\n mobilePosition?: ToastPosition;\n /** Show the default add-to-cart toast. Themes whose cart badge is the feedback can turn it off. */\n addToCartToast?: boolean;\n}) {\n const { theme } = useTwilight();\n const themeRef = useRef(theme);\n themeRef.current = theme;\n const flashShownRef = useRef(false);\n\n const isRtl = theme.is_rtl;\n const desktopPosition: ToastPosition = isRtl ? 'top-left' : 'top-right';\n\n const [position, setPosition] = useState<ToastPosition>(() => {\n if (typeof window === 'undefined') return desktopPosition;\n return window.innerWidth < MOBILE_BREAKPOINT ? mobilePosition : desktopPosition;\n });\n\n useEffect(() => {\n const handleResize = () => {\n setPosition(window.innerWidth < MOBILE_BREAKPOINT ? mobilePosition : desktopPosition);\n };\n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, [desktopPosition, mobilePosition]);\n\n useEffect(() => {\n const salla = window.salla;\n if (!salla?.notify?.setNotifier) return;\n\n const handleNotify = (message: RawMessage, type: string, data?: unknown) => {\n const eventData = data as { data?: { googleTags?: { event?: string } } } | undefined;\n const shouldSuppressAddToCartToast =\n (!addToCartToast || themeRef.current.settings?.enable_add_product_toast) &&\n eventData?.data?.googleTags?.event === 'addToCart';\n let title: string;\n let toastType: ToastVariant;\n\n if (typeof message === 'object' && message !== null) {\n title = message.title || message.text || '';\n toastType = (message.icon || type || 'info') as ToastVariant;\n } else {\n title = message;\n toastType = (type || 'info') as ToastVariant;\n }\n\n // Suppress the default addToCart toast when the theme opted out (addToCartToast=false)\n // or renders its own rich toast (enable_add_product_toast) so they don't double up.\n if (shouldSuppressAddToCartToast) {\n return;\n }\n\n if (dispatchNativeAlert(toastType, title)) {\n return;\n }\n\n if (toastType === 'success') {\n toast.success(title, { duration: 3000 });\n } else if (toastType === 'error') {\n toast.error(title, { duration: 3000 });\n } else if (toastType === 'warning') {\n toast.warning(title, { duration: 3000 });\n } else {\n toast.info(title, { duration: 3000 });\n }\n };\n\n salla.notify.setNotifier(handleNotify);\n return () => {\n salla.notify?.setNotifier?.(() => {});\n };\n }, [addToCartToast]);\n\n useEffect(() => {\n if (flashShownRef.current || typeof window === 'undefined') return;\n\n const params = new URLSearchParams(window.location.search);\n const successMsg = params.get('success');\n const dangerMsg = params.get('danger');\n\n if (!successMsg && !dangerMsg) return;\n\n flashShownRef.current = true;\n\n const message = successMsg || dangerMsg || '';\n const toastType = dangerMsg ? 'error' : 'success';\n\n const url = new URL(window.location.href);\n url.searchParams.delete('success');\n url.searchParams.delete('danger');\n window.history.replaceState({}, '', url.toString());\n\n const timer = setTimeout(() => {\n if (dispatchNativeAlert(toastType, message)) return;\n\n if (toastType === 'success') {\n toast.success(message, { duration: 3000 });\n } else {\n toast.error(message, { duration: 3000 });\n }\n }, 100);\n\n return () => clearTimeout(timer);\n }, []);\n\n return (\n <SonnerToaster\n position={position}\n // Keep sonner's default gaps (24px desktop / 16px mobile) but clear the\n // native status bar inset (--app-safe-area-top, set by useSafeAreaInset)\n // so top-positioned toasts aren't covered in the app webview.\n offset={{ top: 'calc(var(--app-safe-area-top, 0px) + 24px)' }}\n mobileOffset={{ top: 'calc(var(--app-safe-area-top, 0px) + 16px)' }}\n toastOptions={{\n classNames: toastClassNames,\n style: {\n fontFamily: 'var(--font-main, inherit)',\n },\n }}\n style={{\n fontFamily: 'var(--font-main, inherit)',\n }}\n />\n );\n}\n\nexport type { ToasterProps } from 'sonner';\n"]}
@@ -1,22 +1,23 @@
1
- import { Header } from './chunk-TLB7XC4D.js';
2
- import { Copyright } from './chunk-TFZ2RT6P.js';
3
- import { useLocation, useIsHome, navigationSetups, NavigationInterceptor } from './chunk-H6J7FTB6.js';
1
+ import { Header } from './chunk-TSAQIQCD.js';
2
+ import { Copyright } from './chunk-JKIRRMBU.js';
3
+ import { useDevSettingsOverrides } from './chunk-2JV6WZ6O.js';
4
4
  import { color } from './chunk-VVZNW5CB.js';
5
+ import { useLocation, useIsHome, NavigationInterceptor } from './chunk-2ZRLSZ4V.js';
5
6
  import { useUser } from './chunk-I5Z4NJBB.js';
6
7
  import { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, syncSdkLocale } from './chunk-QYL5OHAV.js';
7
8
  import { getTwilightContext, updateTwilightContext } from './chunk-KIPZQN3Y.js';
8
9
  import { useAsset } from './chunk-Z653O7MX.js';
9
10
  import { DocumentClassProvider, useDocumentClass } from './chunk-JWXJPJBO.js';
10
- import { useTranslation, I18nProvider } from './chunk-VVRYP6IL.js';
11
+ import { useTranslation, I18nProvider } from './chunk-TYNZ5B2B.js';
11
12
  import { FALLBACK_LOCALE, getLanguageInfo } from './chunk-T72DAX7R.js';
12
- import { WidgetHead } from './chunk-RYBA3JDM.js';
13
- import { HookSlot } from './chunk-25SSLQAJ.js';
14
- import { hookRegistry } from './chunk-J37AYLWL.js';
15
- import { Image } from './chunk-OZEQVDBM.js';
13
+ import { WidgetHead } from './chunk-RJPPO3ET.js';
14
+ import { HookSlot } from './chunk-Q7VWURUR.js';
15
+ import { hookRegistry } from './chunk-GU2KUQVD.js';
16
+ import { Image } from './chunk-3OAVM4PY.js';
16
17
  import { Link } from './chunk-AXW67SY7.js';
17
- import { LazyImageModal } from './chunk-3DCZJDDK.js';
18
- import { Toaster } from './chunk-MXQCE3KA.js';
19
- import { useTwilight, TwilightContext } from './chunk-BWFBVXT3.js';
18
+ import { LazyImageModal } from './chunk-CUG6VOLM.js';
19
+ import { Toaster } from './chunk-OBSAH7K6.js';
20
+ import { useTwilight, TwilightContext } from './chunk-DF6FBKDN.js';
20
21
  import React2, { lazy, Suspense, useCallback, useMemo, useRef, useEffect, useState } from 'react';
21
22
  import { SallaAppsIcons } from '@salla.sa/twilight-components-react/apps-icons';
22
23
  import { SallaContacts } from '@salla.sa/twilight-components-react/contacts';
@@ -102,6 +103,11 @@ function ThemeDocumentSync({
102
103
  }, [theme]);
103
104
  return null;
104
105
  }
106
+
107
+ // src/utils/engine-version.ts
108
+ var ENGINE_VERSION = "1.0.0" ;
109
+
110
+ // src/providers/twilight-init.ts
105
111
  function getSalla() {
106
112
  if (typeof window === "undefined") return void 0;
107
113
  return window.salla;
@@ -120,7 +126,7 @@ function useTwilightInit({
120
126
  const [storeData, setStoreData] = useState(
121
127
  () => settingsData?.store ?? {}
122
128
  );
123
- const [themeData] = useState(() => {
129
+ const [baseTheme] = useState(() => {
124
130
  const theme = settingsData?.theme;
125
131
  if (theme) {
126
132
  return {
@@ -130,6 +136,19 @@ function useTwilightInit({
130
136
  }
131
137
  return { is_rtl: initialLanguage.dir === "rtl" };
132
138
  });
139
+ const devOverrides = useDevSettingsOverrides();
140
+ const themeData = useMemo(() => {
141
+ if (import.meta.env.DEV && devOverrides.enabled) {
142
+ const overrides = devOverrides.settings;
143
+ if (overrides && Object.keys(overrides).length > 0) {
144
+ return {
145
+ ...baseTheme,
146
+ settings: { ...baseTheme.settings ?? {}, ...overrides }
147
+ };
148
+ }
149
+ }
150
+ return baseTheme;
151
+ }, [baseTheme, devOverrides]);
133
152
  const [currency] = useState(null);
134
153
  const [isMobileWebview] = useState(false);
135
154
  useEffect(() => {
@@ -141,6 +160,8 @@ function useTwilightInit({
141
160
  useEffect(() => {
142
161
  const sdk = getSalla();
143
162
  if (!sdk) return;
163
+ const sdkWithVersions = sdk;
164
+ sdkWithVersions.versions = { ...sdkWithVersions.versions, engine: ENGINE_VERSION };
144
165
  if (initialLocale) {
145
166
  syncSdkLocale(initialLocale);
146
167
  }
@@ -179,9 +200,15 @@ function useTwilightInit({
179
200
  isMobileWebview
180
201
  };
181
202
  }
203
+ var navigationSetups = {
204
+ tanstack: lazy(
205
+ () => import('./navigation-ZCEGLIHD.js').then((m) => ({ default: m.NavigationSetup }))
206
+ ),
207
+ nextjs: lazy(() => import('./navigation-ZIULIDFF.js').then((m) => ({ default: m.NavigationSetup })))
208
+ };
182
209
  var routeDocumentSyncs = {
183
210
  tanstack: lazy(
184
- () => import('./document-class-NEP4TMDL.js').then((m) => ({
211
+ () => import('./document-class-WLNCTQI2.js').then((m) => ({
185
212
  default: m.TanStackDocumentSync
186
213
  }))
187
214
  )
@@ -249,13 +276,13 @@ function useDate() {
249
276
 
250
277
  // src/hooks/useNumber.ts
251
278
  var ARABIC_NUMERALS = ["\u0660", "\u0661", "\u0662", "\u0663", "\u0664", "\u0665", "\u0666", "\u0667", "\u0668", "\u0669"];
279
+ var toArabic = (input) => {
280
+ const str = String(input);
281
+ return str.replace(/[0-9]/g, (d) => ARABIC_NUMERALS[parseInt(d)]);
282
+ };
252
283
  function useNumber() {
253
284
  const { store } = useTwilight();
254
285
  const useArabicNumerals = store?.settings?.arabic_numbers_enabled ?? false;
255
- const toArabic = (input) => {
256
- const str = String(input);
257
- return str.replace(/[0-9]/g, (d) => ARABIC_NUMERALS[parseInt(d)]);
258
- };
259
286
  const format = (number) => {
260
287
  return useArabicNumerals ? toArabic(number) : String(number);
261
288
  };
@@ -270,6 +297,33 @@ function useNumber() {
270
297
  }
271
298
  var AR_LOCALE = "ar";
272
299
  var SAR_CURRENCY = "SAR";
300
+ var intlCache = /* @__PURE__ */ new Map();
301
+ function getCachedIntl(loc, opts) {
302
+ const key = `${loc}|${JSON.stringify(opts)}`;
303
+ let fmt = intlCache.get(key);
304
+ if (!fmt) {
305
+ fmt = new Intl.NumberFormat(loc, opts);
306
+ intlCache.set(key, fmt);
307
+ }
308
+ return fmt;
309
+ }
310
+ var parse = (moneyString) => {
311
+ const cleaned = moneyString.replace(/[^\d.,٬٫]/g, "");
312
+ const normalized = cleaned.replace(/٬/g, "").replace(/٫/g, ".");
313
+ const parts = normalized.split(/[.,]/);
314
+ if (parts.length > 2) {
315
+ return parseFloat(`${parts.slice(0, -1).join("")}.${parts[parts.length - 1]}`);
316
+ }
317
+ return parseFloat(normalized.replace(/,/g, ""));
318
+ };
319
+ var isValid = (value) => {
320
+ if (typeof value === "number" && !isNaN(value) && isFinite(value)) return true;
321
+ if (typeof value === "string") {
322
+ const parsed = parseFloat(value);
323
+ return !isNaN(parsed) && isFinite(parsed);
324
+ }
325
+ return false;
326
+ };
273
327
  function useMoney() {
274
328
  const { store } = useTwilight();
275
329
  const { locale } = useTranslation();
@@ -289,7 +343,7 @@ function useMoney() {
289
343
  const showDash = type === "product" ? store?.settings?.product?.show_price_as_dash : false;
290
344
  return showDash ? "-" : "";
291
345
  }
292
- let formatted = new Intl.NumberFormat(loc, {
346
+ let formatted = getCachedIntl(loc, {
293
347
  minimumFractionDigits: 2,
294
348
  maximumFractionDigits: 2
295
349
  }).format(numericAmount);
@@ -304,7 +358,7 @@ function useMoney() {
304
358
  ] });
305
359
  }
306
360
  try {
307
- return new Intl.NumberFormat(loc, {
361
+ return getCachedIntl(loc, {
308
362
  style: "currency",
309
363
  currency,
310
364
  minimumFractionDigits: 2,
@@ -314,23 +368,6 @@ function useMoney() {
314
368
  return `${formatted} ${currency}`;
315
369
  }
316
370
  };
317
- const parse = (moneyString) => {
318
- const cleaned = moneyString.replace(/[^\d.,٬٫]/g, "");
319
- const normalized = cleaned.replace(/٬/g, "").replace(/٫/g, ".");
320
- const parts = normalized.split(/[.,]/);
321
- if (parts.length > 2) {
322
- return parseFloat(`${parts.slice(0, -1).join("")}.${parts[parts.length - 1]}`);
323
- }
324
- return parseFloat(normalized.replace(/,/g, ""));
325
- };
326
- const isValid = (value) => {
327
- if (typeof value === "number" && !isNaN(value) && isFinite(value)) return true;
328
- if (typeof value === "string") {
329
- const parsed = parseFloat(value);
330
- return !isNaN(parsed) && isFinite(parsed);
331
- }
332
- return false;
333
- };
334
371
  return { format, parse, isValid };
335
372
  }
336
373
  function eventId(prefix) {
@@ -703,15 +740,15 @@ var LazySiftSnippet = lazy(
703
740
  () => import('./SiftSnippet-5FCU6TR6.js').then((m) => ({ default: m.SiftSnippet }))
704
741
  );
705
742
  var LazyStoreClosedNotification = lazy(
706
- () => import('./StoreClosedNotification-FM7OGUVZ.js').then((m) => ({
743
+ () => import('./StoreClosedNotification-4WCOB6Y6.js').then((m) => ({
707
744
  default: m.StoreClosedNotification
708
745
  }))
709
746
  );
710
747
  var LazyPriceQuoteButton = lazy(
711
- () => import('./PriceQuoteButton-RAAPL4N4.js').then((m) => ({ default: m.PriceQuoteButton }))
748
+ () => import('./PriceQuoteButton-CGRNHY3E.js').then((m) => ({ default: m.PriceQuoteButton }))
712
749
  );
713
750
  var LazyPreOrderNotification = lazy(
714
- () => import('./PreOrderNotification-ZVTGNV7K.js').then((m) => ({
751
+ () => import('./PreOrderNotification-OP57EA6F.js').then((m) => ({
715
752
  default: m.PreOrderNotification
716
753
  }))
717
754
  );
@@ -1166,5 +1203,5 @@ function useStore() {
1166
1203
  }
1167
1204
 
1168
1205
  export { Footer, MasterLayout, TwilightProvider, registerDefaultHooks, registerDocumentSync, routeDocumentSyncs, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore };
1169
- //# sourceMappingURL=chunk-FUUWI2B6.js.map
1170
- //# sourceMappingURL=chunk-FUUWI2B6.js.map
1206
+ //# sourceMappingURL=chunk-P26QKBJC.js.map
1207
+ //# sourceMappingURL=chunk-P26QKBJC.js.map