@salla.sa/twilight-theme-engine 1.0.150 → 1.0.151

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 (251) hide show
  1. package/dist/{AddToCartForm-P5Q4P763.js → AddToCartForm-O6TPONV2.js} +3 -3
  2. package/dist/{AddToCartForm-P5Q4P763.js.map → AddToCartForm-O6TPONV2.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-Z3R6AETN.js → BlogAuthorPage-H6LRQ5YW.js} +27 -27
  4. package/dist/{BlogAuthorPage-Z3R6AETN.js.map → BlogAuthorPage-H6LRQ5YW.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-7VROFBGI.js → BlogCategoryPage-NORT43JE.js} +27 -27
  6. package/dist/{BlogCategoryPage-7VROFBGI.js.map → BlogCategoryPage-NORT43JE.js.map} +1 -1
  7. package/dist/{BlogPage-Q2NN4WTB.js → BlogPage-ZGTRTQT6.js} +25 -25
  8. package/dist/{BlogPage-Q2NN4WTB.js.map → BlogPage-ZGTRTQT6.js.map} +1 -1
  9. package/dist/{BlogSinglePage-ZPCSNBIX.js → BlogSinglePage-G7TUMA4L.js} +25 -25
  10. package/dist/{BlogSinglePage-ZPCSNBIX.js.map → BlogSinglePage-G7TUMA4L.js.map} +1 -1
  11. package/dist/{BlogTagPage-IGG2VEMR.js → BlogTagPage-3LFUVXP3.js} +27 -27
  12. package/dist/{BlogTagPage-IGG2VEMR.js.map → BlogTagPage-3LFUVXP3.js.map} +1 -1
  13. package/dist/{BrandsPage-ZAJT6RGM.js → BrandsPage-NA5BVFVS.js} +26 -26
  14. package/dist/{BrandsPage-ZAJT6RGM.js.map → BrandsPage-NA5BVFVS.js.map} +1 -1
  15. package/dist/{Breadcrumb-KE4EWH7L.js → Breadcrumb-MNSFVYUT.js} +25 -25
  16. package/dist/{Breadcrumb-KE4EWH7L.js.map → Breadcrumb-MNSFVYUT.js.map} +1 -1
  17. package/dist/{CartItem-RMCXCGHT.js → CartItem-N6OPII7B.js} +25 -25
  18. package/dist/{CartItem-RMCXCGHT.js.map → CartItem-N6OPII7B.js.map} +1 -1
  19. package/dist/{CartSummary-NLEAHKWF.js → CartSummary-LGYAIG7C.js} +25 -25
  20. package/dist/{CartSummary-NLEAHKWF.js.map → CartSummary-LGYAIG7C.js.map} +1 -1
  21. package/dist/{Copyright-EIBPTE3B.js → Copyright-YXWJNV5Q.js} +3 -3
  22. package/dist/{Copyright-EIBPTE3B.js.map → Copyright-YXWJNV5Q.js.map} +1 -1
  23. package/dist/{CustomerLayout-POGWFN6R.js → CustomerLayout-YU7TKV2Q.js} +25 -25
  24. package/dist/{CustomerLayout-POGWFN6R.js.map → CustomerLayout-YU7TKV2Q.js.map} +1 -1
  25. package/dist/{Footer-LGIUINGS.js → Footer-4QV4H67O.js} +4 -4
  26. package/dist/{Footer-LGIUINGS.js.map → Footer-4QV4H67O.js.map} +1 -1
  27. package/dist/{Header-4TGYO6E4.js → Header-DEUDDAWD.js} +11 -11
  28. package/dist/{Header-4TGYO6E4.js.map → Header-DEUDDAWD.js.map} +1 -1
  29. package/dist/{LatestProducts-YYKQNL5N.js → LatestProducts-KA54KWOQ.js} +27 -27
  30. package/dist/{LatestProducts-YYKQNL5N.js.map → LatestProducts-KA54KWOQ.js.map} +1 -1
  31. package/dist/{LoyaltyPage-MROFMZXV.js → LoyaltyPage-7FJROQFU.js} +25 -25
  32. package/dist/{LoyaltyPage-MROFMZXV.js.map → LoyaltyPage-7FJROQFU.js.map} +1 -1
  33. package/dist/{LoyaltyPointsPage-DVHJOAKP.js → LoyaltyPointsPage-JXT65P5U.js} +8 -8
  34. package/dist/{LoyaltyPointsPage-DVHJOAKP.js.map → LoyaltyPointsPage-JXT65P5U.js.map} +1 -1
  35. package/dist/{MainMenu-GQO5KOTU.js → MainMenu-UOAPVNJH.js} +7 -7
  36. package/dist/{MainMenu-GQO5KOTU.js.map → MainMenu-UOAPVNJH.js.map} +1 -1
  37. package/dist/{MasterLayout-ZJBJ7EHM.js → MasterLayout-Z45QJW3M.js} +25 -25
  38. package/dist/{MasterLayout-ZJBJ7EHM.js.map → MasterLayout-Z45QJW3M.js.map} +1 -1
  39. package/dist/{MobileMenu-TZSFYHPW.js → MobileMenu-A4QIBBYN.js} +26 -26
  40. package/dist/{MobileMenu-TZSFYHPW.js.map → MobileMenu-A4QIBBYN.js.map} +1 -1
  41. package/dist/{NotificationsPage-BX6OSIDY.js → NotificationsPage-XU5IBNPR.js} +25 -25
  42. package/dist/{NotificationsPage-BX6OSIDY.js.map → NotificationsPage-XU5IBNPR.js.map} +1 -1
  43. package/dist/{OrderSinglePage-3RQ5TJDB.js → OrderSinglePage-5ANTMCBP.js} +26 -26
  44. package/dist/{OrderSinglePage-3RQ5TJDB.js.map → OrderSinglePage-5ANTMCBP.js.map} +1 -1
  45. package/dist/{OrdersPage-S4ECYNGI.js → OrdersPage-LZLPSDZR.js} +25 -25
  46. package/dist/{OrdersPage-S4ECYNGI.js.map → OrdersPage-LZLPSDZR.js.map} +1 -1
  47. package/dist/{PageSingle-BZGDC4VE.js → PageSingle-PMLCSRMC.js} +6 -6
  48. package/dist/{PageSingle-BZGDC4VE.js.map → PageSingle-PMLCSRMC.js.map} +1 -1
  49. package/dist/{ProductDetails-ZPRWPSVK.js → ProductDetails-ECPCGZLO.js} +7 -7
  50. package/dist/{ProductDetails-ZPRWPSVK.js.map → ProductDetails-ECPCGZLO.js.map} +1 -1
  51. package/dist/{ProfilePage-SKAS6LFQ.js → ProfilePage-XVWB4ZOO.js} +25 -25
  52. package/dist/{ProfilePage-SKAS6LFQ.js.map → ProfilePage-XVWB4ZOO.js.map} +1 -1
  53. package/dist/{ReviewsPage-NAZWXVXT.js → ReviewsPage-6EOSOIU4.js} +3 -3
  54. package/dist/{ReviewsPage-NAZWXVXT.js.map → ReviewsPage-6EOSOIU4.js.map} +1 -1
  55. package/dist/{SeoCartWidget-6NB6LT2Z.js → SeoCartWidget-TYNXS4UD.js} +25 -25
  56. package/dist/{SeoCartWidget-6NB6LT2Z.js.map → SeoCartWidget-TYNXS4UD.js.map} +1 -1
  57. package/dist/{SettingsPage-GZ2NJIUR.js → SettingsPage-BHW3CJC6.js} +25 -25
  58. package/dist/{SettingsPage-GZ2NJIUR.js.map → SettingsPage-BHW3CJC6.js.map} +1 -1
  59. package/dist/{StoreClosedNotification-V72F7HE5.js → StoreClosedNotification-7YHL4XTT.js} +26 -26
  60. package/dist/{StoreClosedNotification-V72F7HE5.js.map → StoreClosedNotification-7YHL4XTT.js.map} +1 -1
  61. package/dist/{TestimonialsPage-L6VBZFLT.js → TestimonialsPage-ZY2U4QDN.js} +6 -6
  62. package/dist/{TestimonialsPage-L6VBZFLT.js.map → TestimonialsPage-ZY2U4QDN.js.map} +1 -1
  63. package/dist/{ThankYouPage-O5U3V6J4.js → ThankYouPage-MINROTEH.js} +25 -25
  64. package/dist/{ThankYouPage-O5U3V6J4.js.map → ThankYouPage-MINROTEH.js.map} +1 -1
  65. package/dist/{WalletPage-NJBBZIMM.js → WalletPage-4VFAGWIE.js} +26 -26
  66. package/dist/{WalletPage-NJBBZIMM.js.map → WalletPage-4VFAGWIE.js.map} +1 -1
  67. package/dist/{WebMcpTools-VAZH3S5G.js → WebMcpTools-F42SFWVP.js} +9 -9
  68. package/dist/{WebMcpTools-VAZH3S5G.js.map → WebMcpTools-F42SFWVP.js.map} +1 -1
  69. package/dist/{WishlistPage-UKOGNFKB.js → WishlistPage-VMM4YDMX.js} +27 -27
  70. package/dist/{WishlistPage-UKOGNFKB.js.map → WishlistPage-VMM4YDMX.js.map} +1 -1
  71. package/dist/api/advertisement.js +4 -4
  72. package/dist/api/apps.js +4 -4
  73. package/dist/api/blog.js +6 -6
  74. package/dist/api/brands.js +6 -6
  75. package/dist/api/cart.js +6 -6
  76. package/dist/api/category.js +6 -6
  77. package/dist/api/client.js +3 -3
  78. package/dist/api/home.js +4 -4
  79. package/dist/api/loyalty.js +6 -6
  80. package/dist/api/menu.js +4 -4
  81. package/dist/api/notification.js +4 -4
  82. package/dist/api/order.js +6 -6
  83. package/dist/api/page.js +6 -6
  84. package/dist/api/product.js +6 -6
  85. package/dist/api/profile.js +3 -3
  86. package/dist/api/store.js +5 -5
  87. package/dist/api/translations.js +4 -4
  88. package/dist/api/user.js +4 -4
  89. package/dist/api/wallet.js +4 -4
  90. package/dist/api/wishlist.js +7 -7
  91. package/dist/{chunk-VJA4DVVT.js → chunk-3JJQCRXD.js} +4 -4
  92. package/dist/{chunk-VJA4DVVT.js.map → chunk-3JJQCRXD.js.map} +1 -1
  93. package/dist/{chunk-LWAJNEIM.js → chunk-3ULBL56H.js} +4 -4
  94. package/dist/{chunk-LWAJNEIM.js.map → chunk-3ULBL56H.js.map} +1 -1
  95. package/dist/{chunk-2HCODIC6.js → chunk-5CXBBDJB.js} +4 -4
  96. package/dist/{chunk-2HCODIC6.js.map → chunk-5CXBBDJB.js.map} +1 -1
  97. package/dist/{chunk-5RBXCPG6.js → chunk-6R2AUQMP.js} +3 -3
  98. package/dist/{chunk-5RBXCPG6.js.map → chunk-6R2AUQMP.js.map} +1 -1
  99. package/dist/{chunk-FCCGJ4DI.js → chunk-77SZTUQE.js} +7 -7
  100. package/dist/{chunk-FCCGJ4DI.js.map → chunk-77SZTUQE.js.map} +1 -1
  101. package/dist/{chunk-7XAGU6CT.js → chunk-7IVHY4OR.js} +3 -3
  102. package/dist/{chunk-7XAGU6CT.js.map → chunk-7IVHY4OR.js.map} +1 -1
  103. package/dist/{chunk-O63WBEAC.js → chunk-A7E6XFZC.js} +22 -22
  104. package/dist/{chunk-O63WBEAC.js.map → chunk-A7E6XFZC.js.map} +1 -1
  105. package/dist/{chunk-6YEE3VHL.js → chunk-BRIRWS2Q.js} +3 -3
  106. package/dist/{chunk-6YEE3VHL.js.map → chunk-BRIRWS2Q.js.map} +1 -1
  107. package/dist/{chunk-IEKP3HYS.js → chunk-CATEET2N.js} +4 -4
  108. package/dist/{chunk-IEKP3HYS.js.map → chunk-CATEET2N.js.map} +1 -1
  109. package/dist/{chunk-ZUVBDALM.js → chunk-CEIXIUJ7.js} +4 -4
  110. package/dist/{chunk-ZUVBDALM.js.map → chunk-CEIXIUJ7.js.map} +1 -1
  111. package/dist/{chunk-5T4MJAUN.js → chunk-CH6BNMS6.js} +3 -3
  112. package/dist/{chunk-5T4MJAUN.js.map → chunk-CH6BNMS6.js.map} +1 -1
  113. package/dist/{chunk-TEAYGNHT.js → chunk-CIJVNUNZ.js} +3 -3
  114. package/dist/{chunk-TEAYGNHT.js.map → chunk-CIJVNUNZ.js.map} +1 -1
  115. package/dist/{chunk-PVOJJ2BV.js → chunk-DGPSZUI3.js} +5 -5
  116. package/dist/{chunk-PVOJJ2BV.js.map → chunk-DGPSZUI3.js.map} +1 -1
  117. package/dist/{chunk-5LI536P6.js → chunk-DKIU6ZOP.js} +5 -5
  118. package/dist/{chunk-5LI536P6.js.map → chunk-DKIU6ZOP.js.map} +1 -1
  119. package/dist/{chunk-GLSRVHYJ.js → chunk-DKPM4T4C.js} +4 -4
  120. package/dist/{chunk-GLSRVHYJ.js.map → chunk-DKPM4T4C.js.map} +1 -1
  121. package/dist/{chunk-EMAAVDEK.js → chunk-DXQUURZX.js} +7 -7
  122. package/dist/{chunk-EMAAVDEK.js.map → chunk-DXQUURZX.js.map} +1 -1
  123. package/dist/{chunk-4E6FD5W7.js → chunk-EEL6OYAQ.js} +7 -3
  124. package/dist/chunk-EEL6OYAQ.js.map +1 -0
  125. package/dist/{chunk-5NUCGUTE.js → chunk-F6MYOPZB.js} +4 -4
  126. package/dist/{chunk-5NUCGUTE.js.map → chunk-F6MYOPZB.js.map} +1 -1
  127. package/dist/{chunk-B57KIBQL.js → chunk-GGQA6QBB.js} +3 -3
  128. package/dist/{chunk-B57KIBQL.js.map → chunk-GGQA6QBB.js.map} +1 -1
  129. package/dist/{chunk-WAKCWE6P.js → chunk-GMXNVBCD.js} +5 -5
  130. package/dist/{chunk-WAKCWE6P.js.map → chunk-GMXNVBCD.js.map} +1 -1
  131. package/dist/{chunk-AOQZHLZZ.js → chunk-GYJJX4EI.js} +5 -5
  132. package/dist/{chunk-AOQZHLZZ.js.map → chunk-GYJJX4EI.js.map} +1 -1
  133. package/dist/{chunk-RY6VPXG6.js → chunk-GZUBV5S3.js} +3 -3
  134. package/dist/{chunk-RY6VPXG6.js.map → chunk-GZUBV5S3.js.map} +1 -1
  135. package/dist/{chunk-O3XMYDNC.js → chunk-H7A7LOQJ.js} +5 -5
  136. package/dist/{chunk-O3XMYDNC.js.map → chunk-H7A7LOQJ.js.map} +1 -1
  137. package/dist/{chunk-ULF4LPVA.js → chunk-IURXJAIK.js} +3 -3
  138. package/dist/{chunk-ULF4LPVA.js.map → chunk-IURXJAIK.js.map} +1 -1
  139. package/dist/{chunk-Q7Z76F7N.js → chunk-K577255O.js} +8 -8
  140. package/dist/{chunk-Q7Z76F7N.js.map → chunk-K577255O.js.map} +1 -1
  141. package/dist/{chunk-QKKEBQ57.js → chunk-KBWIXAHN.js} +6 -6
  142. package/dist/{chunk-QKKEBQ57.js.map → chunk-KBWIXAHN.js.map} +1 -1
  143. package/dist/{chunk-BYGVKW3M.js → chunk-LDXVGQA2.js} +4 -4
  144. package/dist/{chunk-BYGVKW3M.js.map → chunk-LDXVGQA2.js.map} +1 -1
  145. package/dist/{chunk-5EAISVPV.js → chunk-LFMCUQQ3.js} +3 -3
  146. package/dist/{chunk-5EAISVPV.js.map → chunk-LFMCUQQ3.js.map} +1 -1
  147. package/dist/{chunk-UUHLRFXB.js → chunk-LRQ75MWP.js} +8 -8
  148. package/dist/{chunk-UUHLRFXB.js.map → chunk-LRQ75MWP.js.map} +1 -1
  149. package/dist/{chunk-P2PPBXHD.js → chunk-M2MJKUQF.js} +3 -3
  150. package/dist/{chunk-P2PPBXHD.js.map → chunk-M2MJKUQF.js.map} +1 -1
  151. package/dist/{chunk-PHPOMWQ4.js → chunk-MQU6G2ZE.js} +4 -4
  152. package/dist/{chunk-PHPOMWQ4.js.map → chunk-MQU6G2ZE.js.map} +1 -1
  153. package/dist/{chunk-2CILV5ME.js → chunk-MVSOSNNB.js} +5 -5
  154. package/dist/{chunk-2CILV5ME.js.map → chunk-MVSOSNNB.js.map} +1 -1
  155. package/dist/{chunk-JSAWLWUN.js → chunk-N2Y5VSHM.js} +4 -4
  156. package/dist/{chunk-JSAWLWUN.js.map → chunk-N2Y5VSHM.js.map} +1 -1
  157. package/dist/{chunk-6QIF6WJH.js → chunk-O7PJBTH3.js} +3 -3
  158. package/dist/{chunk-6QIF6WJH.js.map → chunk-O7PJBTH3.js.map} +1 -1
  159. package/dist/{chunk-6H6BVZBV.js → chunk-OGEG4QHV.js} +3 -3
  160. package/dist/{chunk-6H6BVZBV.js.map → chunk-OGEG4QHV.js.map} +1 -1
  161. package/dist/{chunk-5M2AK5KE.js → chunk-OJ4PJK27.js} +4 -4
  162. package/dist/{chunk-5M2AK5KE.js.map → chunk-OJ4PJK27.js.map} +1 -1
  163. package/dist/{chunk-W7CYFPGY.js → chunk-PHWFTUTE.js} +6 -6
  164. package/dist/{chunk-W7CYFPGY.js.map → chunk-PHWFTUTE.js.map} +1 -1
  165. package/dist/{chunk-JK45RUVV.js → chunk-PPUV27YN.js} +3 -3
  166. package/dist/{chunk-JK45RUVV.js.map → chunk-PPUV27YN.js.map} +1 -1
  167. package/dist/{chunk-OOZQVX7C.js → chunk-Q76O67KK.js} +6 -6
  168. package/dist/{chunk-OOZQVX7C.js.map → chunk-Q76O67KK.js.map} +1 -1
  169. package/dist/{chunk-34L65JGK.js → chunk-QNGA2NAC.js} +4 -4
  170. package/dist/{chunk-34L65JGK.js.map → chunk-QNGA2NAC.js.map} +1 -1
  171. package/dist/{chunk-TXYLHBUH.js → chunk-R4QBCQ4K.js} +3 -3
  172. package/dist/{chunk-TXYLHBUH.js.map → chunk-R4QBCQ4K.js.map} +1 -1
  173. package/dist/{chunk-PYXAPLNB.js → chunk-R6Z6JQIB.js} +3 -3
  174. package/dist/{chunk-PYXAPLNB.js.map → chunk-R6Z6JQIB.js.map} +1 -1
  175. package/dist/{chunk-R7QCNL62.js → chunk-REBJQRQF.js} +3 -3
  176. package/dist/{chunk-R7QCNL62.js.map → chunk-REBJQRQF.js.map} +1 -1
  177. package/dist/{chunk-2ZC5YGMI.js → chunk-RRDKYXHU.js} +3 -3
  178. package/dist/{chunk-2ZC5YGMI.js.map → chunk-RRDKYXHU.js.map} +1 -1
  179. package/dist/{chunk-KJ7NG3ZH.js → chunk-SBZWX6II.js} +3 -3
  180. package/dist/{chunk-KJ7NG3ZH.js.map → chunk-SBZWX6II.js.map} +1 -1
  181. package/dist/{chunk-LBZNLTBM.js → chunk-SF2POPJW.js} +3 -3
  182. package/dist/{chunk-LBZNLTBM.js.map → chunk-SF2POPJW.js.map} +1 -1
  183. package/dist/{chunk-I2LK4IC2.js → chunk-T7H5KE5Y.js} +4 -4
  184. package/dist/{chunk-I2LK4IC2.js.map → chunk-T7H5KE5Y.js.map} +1 -1
  185. package/dist/{chunk-PZP3372I.js → chunk-ULGRYCUV.js} +4 -4
  186. package/dist/{chunk-PZP3372I.js.map → chunk-ULGRYCUV.js.map} +1 -1
  187. package/dist/{chunk-DPQIVZ4T.js → chunk-VDPMCOHX.js} +3 -3
  188. package/dist/{chunk-DPQIVZ4T.js.map → chunk-VDPMCOHX.js.map} +1 -1
  189. package/dist/{chunk-CAULDK3N.js → chunk-WJCDY35D.js} +6 -6
  190. package/dist/{chunk-CAULDK3N.js.map → chunk-WJCDY35D.js.map} +1 -1
  191. package/dist/{chunk-FL3OK7AQ.js → chunk-WZAJS44F.js} +16 -16
  192. package/dist/{chunk-FL3OK7AQ.js.map → chunk-WZAJS44F.js.map} +1 -1
  193. package/dist/{chunk-RB7RHMKJ.js → chunk-YQ365K65.js} +5 -5
  194. package/dist/{chunk-RB7RHMKJ.js.map → chunk-YQ365K65.js.map} +1 -1
  195. package/dist/{chunk-PPFD456V.js → chunk-Z4BOATCC.js} +3 -3
  196. package/dist/{chunk-PPFD456V.js.map → chunk-Z4BOATCC.js.map} +1 -1
  197. package/dist/components/cart/index.js +1 -1
  198. package/dist/components/common/index.js +1 -1
  199. package/dist/components/drawer/index.js +23 -23
  200. package/dist/components/home/index.js +28 -28
  201. package/dist/components/layout/index.js +6 -6
  202. package/dist/components/product/index.js +25 -25
  203. package/dist/components/store/index.js +24 -24
  204. package/dist/components/toast/index.js +4 -4
  205. package/dist/dev/editor/index.js +2 -2
  206. package/dist/dev/index.js +2 -2
  207. package/dist/document-class-QZXX5ZEE.js +33 -0
  208. package/dist/{document-class-N7WF3WXG.js.map → document-class-QZXX5ZEE.js.map} +1 -1
  209. package/dist/hooks/index.js +23 -23
  210. package/dist/hooks/useComments.js +3 -3
  211. package/dist/hooks/useGtm.js +23 -23
  212. package/dist/hooks/useMoney.js +23 -23
  213. package/dist/hooks/useProduct.js +3 -3
  214. package/dist/hooks/useStore.js +23 -23
  215. package/dist/hooks/useUser.js +5 -5
  216. package/dist/hooks/useWishlist.js +3 -3
  217. package/dist/index.js +23 -23
  218. package/dist/native-app/index.js +3 -3
  219. package/dist/{navigation-5DPDZQUU.js → navigation-DF4JEVKE.js} +8 -8
  220. package/dist/{navigation-5DPDZQUU.js.map → navigation-DF4JEVKE.js.map} +1 -1
  221. package/dist/{navigation-FRKMKNLK.js → navigation-FKU75TCE.js} +7 -7
  222. package/dist/{navigation-FRKMKNLK.js.map → navigation-FKU75TCE.js.map} +1 -1
  223. package/dist/{not-found-4U2TRCLF.js → not-found-E72Z34CJ.js} +26 -26
  224. package/dist/{not-found-4U2TRCLF.js.map → not-found-E72Z34CJ.js.map} +1 -1
  225. package/dist/providers/index.js +23 -23
  226. package/dist/routes/account/orders.js +8 -8
  227. package/dist/routes/account.js +17 -17
  228. package/dist/routes/blog.js +12 -12
  229. package/dist/routes/brands.js +8 -8
  230. package/dist/routes/cart.js +32 -32
  231. package/dist/routes/home.js +29 -29
  232. package/dist/routes/index.js +6 -6
  233. package/dist/routes/loyalty.js +9 -9
  234. package/dist/routes/page.js +8 -8
  235. package/dist/routes/product-listing.js +33 -33
  236. package/dist/routes/product.js +28 -28
  237. package/dist/routes/seo-redirects.js +6 -6
  238. package/dist/routes/testimonials.js +4 -4
  239. package/dist/routes/thank-you.js +8 -8
  240. package/dist/skeleton.js +29 -29
  241. package/dist/{store-lookup-S6JUSKNH.js → store-lookup-LPXG5JSB.js} +11 -11
  242. package/dist/{store-lookup-S6JUSKNH.js.map → store-lookup-LPXG5JSB.js.map} +1 -1
  243. package/dist/tanstack.js +20 -20
  244. package/dist/utils/baseHead.js +2 -2
  245. package/dist/utils/cookies.d.ts +6 -0
  246. package/dist/utils/cookies.d.ts.map +1 -1
  247. package/dist/utils/index.js +6 -6
  248. package/dist/vite/index.js +3 -3
  249. package/package.json +1 -1
  250. package/dist/chunk-4E6FD5W7.js.map +0 -1
  251. package/dist/document-class-N7WF3WXG.js +0 -33
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/product/lazy.ts","../src/components/product/ProductGallery.tsx"],"names":[],"mappings":"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","file":"chunk-CAULDK3N.js","sourcesContent":["import { lazyComponent } from '../../utils/lazy-component';\n\nexport const LazyProductDetails = lazyComponent(() =>\n import('./ProductDetails').then((m) => ({ default: m.ProductDetails }))\n);\n\nexport const LazyAddToCartForm = lazyComponent(() =>\n import('./AddToCartForm').then((m) => ({ default: m.AddToCartForm }))\n);\n","import { SallaSlider } from '@salla.sa/twilight-components-react/slider';\nimport { Suspense, useEffect, useMemo, useState } from 'react';\nimport { registry } from '../ComponentRegistry';\nimport { useTwilight } from '../../providers/TwilightProvider';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { Product, ProductImage } from '../../types';\nimport { Image } from '../common/Image';\nimport { ImageModal } from '../modal';\nimport { isNativeApp } from '../../native-app';\n\nconst PRODUCT_GALLERY_KEY = 'product:gallery';\n\nexport interface ProductGalleryProps {\n product: Product;\n}\n\ntype ImagePreview = { src: string; alt: string };\ntype GalleryMedia = { url: string; type: 'image' | 'video' | '3d-image' };\n\n/**\n * The engine's own `mobile::gallery.open` payload from before `salla.mobile.openGallery`: a video's\n * link and a 3D model's file go in `url`, with no ids. Sent when the SDK has no `openGallery`\n * (Twilight before 2.14.569) or declines inside the app, so those stores keep the gallery they had.\n */\nfunction legacyGalleryMedia(images: ProductImage[]): GalleryMedia[] {\n return images.flatMap<GalleryMedia>((image) => {\n if (image.three_d_image_url) return [{ url: image.three_d_image_url, type: '3d-image' }];\n if (image.video_url) return [{ url: image.video_url, type: 'video' }];\n return image.url ? [{ url: image.url, type: 'image' }] : [];\n });\n}\n\nfunction ProductGalleryContent({ product }: ProductGalleryProps) {\n const { t } = useTranslation();\n const { theme } = useTwilight();\n const sliderId = `details-slider-${product.id}`;\n const objectFit = theme.settings.slider_background_size ?? 'cover';\n\n // Clicking an image opens an in-app lightbox instead of navigating to the CDN URL.\n const [preview, setPreview] = useState<ImagePreview | null>(null);\n\n useEffect(() => {\n const raf = requestAnimationFrame(() => {\n const el = document.getElementById(sliderId);\n if (!el?.parentElement) return;\n const { parentElement, nextSibling } = el;\n parentElement.removeChild(el);\n parentElement.insertBefore(el, nextSibling);\n });\n return () => cancelAnimationFrame(raf);\n }, [sliderId]);\n\n // The product-details API only returns `image` (singular).\n // Fall back so the main image always renders even without the full gallery array.\n const images: ProductImage[] =\n product.images && product.images.length > 0\n ? product.images\n : product.image?.url\n ? [product.image]\n : [];\n\n const hasManyImages = images.length > 1;\n const openNativeGallery = (selected: ProductImage) => {\n if (!isNativeApp()) return false;\n if (window.salla?.mobile?.openGallery?.(images, selected)) return true;\n window.salla?.event.dispatch('mobile::gallery.open', { images: legacyGalleryMedia(images) });\n return true;\n };\n\n return (\n <div className=\"sidebar md:sticky top-24 w-full md:!w-2/4 rtl:ml-8 ltr:mr-8 pb-8 md:pb-16 overflow-hidden shrink-0\">\n <SallaSlider\n id={sliderId}\n className=\"details-slider rounded-md image-slider\"\n type=\"thumbs\"\n loop={false}\n autoHeight\n listenToThumbnailsOption\n showThumbsControls={false}\n sliderConfig={{ watchOverflow: true, autoHeight: true }}\n >\n {product.promotion_title && (\n <div className=\"promotion-title\">{product.promotion_title}</div>\n )}\n\n {product.calories && (\n <div className=\"absolute z-[2] top-4 rtl:left-4 ltr:right-4 bg-white shadow-sm flex flex-col justify-center items-center rounded-full w-20 h-20 md:w-24 md:h-24\">\n <span className=\"text-red-500 text-xl leading-none font-bold\">{product.calories}</span>\n <span className=\"text-xs text-gray-500\">\n {t('pages.products.calories', 'Calories')}\n </span>\n </div>\n )}\n\n <div slot=\"items\">\n {images.map((image, index) => (\n <ImageSlide\n key={image.id ?? image.three_d_image_url ?? image.video_url ?? image.url}\n image={image}\n product={product}\n index={index}\n objectFit={objectFit}\n onPreview={setPreview}\n onNativeOpen={openNativeGallery}\n />\n ))}\n </div>\n\n {hasManyImages && (\n <div slot=\"thumbs\">\n {images.map((image, index) => (\n <ThumbSlide\n key={image.id ?? image.three_d_image_url ?? image.video_url ?? image.url}\n image={image}\n index={index}\n />\n ))}\n </div>\n )}\n </SallaSlider>\n\n <Suspense fallback={null}>\n <ImageModal\n isOpen={!!preview}\n onClose={() => setPreview(null)}\n src={preview?.src ?? ''}\n alt={preview?.alt}\n />\n </Suspense>\n </div>\n );\n}\n\nexport function ProductGallery(props: ProductGalleryProps) {\n const Component = useMemo(() => {\n const resolved = registry.resolve<ProductGalleryProps>(PRODUCT_GALLERY_KEY);\n // A theme that seeds the key with this component (register + override) would\n // otherwise recurse into itself when it has not actually overridden anything.\n return resolved === ProductGallery ? null : resolved;\n }, []);\n\n if (Component) {\n return <Component {...props} />;\n }\n\n return <ProductGalleryContent {...props} />;\n}\n\nfunction ImageSlide({\n image,\n product,\n index,\n objectFit,\n onPreview,\n onNativeOpen,\n}: {\n image: ProductImage;\n product: Product;\n index: number;\n objectFit: 'cover' | 'contain';\n onPreview: (preview: ImagePreview) => void;\n onNativeOpen: (image: ProductImage) => boolean;\n}) {\n const [loaded, setLoaded] = useState(false);\n const isVideo = Boolean(image.video_url);\n\n if (image.three_d_image_url) {\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: model-viewer is an interactive web component.\n <model-viewer\n style={{ minHeight: '500px' }}\n className=\"swiper-slide model-entry w-full h-full\"\n loading=\"lazy\"\n camera-controls\n touch-action=\"pan-y\"\n auto-rotate\n poster={image.url || undefined}\n src={image.three_d_image_url}\n shadow-intensity=\"1\"\n alt={image.alt}\n onClick={() => onNativeOpen(image)}\n ></model-viewer>\n );\n }\n\n return (\n <a\n data-fslightbox={`product_${product.id}`}\n data-img-id={image.id}\n data-slid-index={index}\n {...(image.video_url ? { 'data-video-src': image.video_url } : {})}\n data-caption={image.alt}\n data-infinite=\"false\"\n data-type={image.video_url ? 'youtube' : 'image'}\n href={image.video_url || image.url}\n // FsLightbox isn't loaded in this React theme, so the bare href would leave the SPA.\n // Open images in an in-app lightbox; let videos open in a new tab.\n {...(isVideo ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n onClick={(event) => {\n if (onNativeOpen(image)) {\n event.preventDefault();\n return;\n }\n if (isVideo || !image.url) return;\n event.preventDefault();\n onPreview({ src: image.url, alt: image.alt || product.name });\n }}\n aria-label={product.name}\n className={`swiper-slide magnify-wrapper homeslider__slide ${image.video_url ? 'video-entry' : ''}`}\n >\n <div className={`w-full ${loaded ? '' : 'aspect-square bg-gray-100 animate-pulse'}`}>\n <Image\n id={String(image.id)}\n src={image.url}\n alt={image.alt || product.name}\n className={`h-full w-full object-${objectFit}`}\n aspectRatio=\"1/1\"\n priority={index === 0}\n noWrapper\n onLoad={() => setLoaded(true)}\n />\n </div>\n </a>\n );\n}\n\nfunction ThumbSlide({ image, index }: { image: ProductImage; index: number }) {\n return (\n <div\n className={`slide--one-fourth ${image.video_url ? 'video-entry' : ''} ${image.three_d_image_url ? 'model-entry' : ''}`}\n data-caption={image.alt}\n >\n <Image\n src={image.url}\n alt={image.alt || ''}\n className=\"object-cover w-full h-full bg-gray-100 rounded-md overflow-hidden\"\n title={image.alt}\n priority={index < 5}\n noWrapper\n />\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/components/product/lazy.ts","../src/components/product/ProductGallery.tsx"],"names":[],"mappings":"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","file":"chunk-WJCDY35D.js","sourcesContent":["import { lazyComponent } from '../../utils/lazy-component';\n\nexport const LazyProductDetails = lazyComponent(() =>\n import('./ProductDetails').then((m) => ({ default: m.ProductDetails }))\n);\n\nexport const LazyAddToCartForm = lazyComponent(() =>\n import('./AddToCartForm').then((m) => ({ default: m.AddToCartForm }))\n);\n","import { SallaSlider } from '@salla.sa/twilight-components-react/slider';\nimport { Suspense, useEffect, useMemo, useState } from 'react';\nimport { registry } from '../ComponentRegistry';\nimport { useTwilight } from '../../providers/TwilightProvider';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { Product, ProductImage } from '../../types';\nimport { Image } from '../common/Image';\nimport { ImageModal } from '../modal';\nimport { isNativeApp } from '../../native-app';\n\nconst PRODUCT_GALLERY_KEY = 'product:gallery';\n\nexport interface ProductGalleryProps {\n product: Product;\n}\n\ntype ImagePreview = { src: string; alt: string };\ntype GalleryMedia = { url: string; type: 'image' | 'video' | '3d-image' };\n\n/**\n * The engine's own `mobile::gallery.open` payload from before `salla.mobile.openGallery`: a video's\n * link and a 3D model's file go in `url`, with no ids. Sent when the SDK has no `openGallery`\n * (Twilight before 2.14.569) or declines inside the app, so those stores keep the gallery they had.\n */\nfunction legacyGalleryMedia(images: ProductImage[]): GalleryMedia[] {\n return images.flatMap<GalleryMedia>((image) => {\n if (image.three_d_image_url) return [{ url: image.three_d_image_url, type: '3d-image' }];\n if (image.video_url) return [{ url: image.video_url, type: 'video' }];\n return image.url ? [{ url: image.url, type: 'image' }] : [];\n });\n}\n\nfunction ProductGalleryContent({ product }: ProductGalleryProps) {\n const { t } = useTranslation();\n const { theme } = useTwilight();\n const sliderId = `details-slider-${product.id}`;\n const objectFit = theme.settings.slider_background_size ?? 'cover';\n\n // Clicking an image opens an in-app lightbox instead of navigating to the CDN URL.\n const [preview, setPreview] = useState<ImagePreview | null>(null);\n\n useEffect(() => {\n const raf = requestAnimationFrame(() => {\n const el = document.getElementById(sliderId);\n if (!el?.parentElement) return;\n const { parentElement, nextSibling } = el;\n parentElement.removeChild(el);\n parentElement.insertBefore(el, nextSibling);\n });\n return () => cancelAnimationFrame(raf);\n }, [sliderId]);\n\n // The product-details API only returns `image` (singular).\n // Fall back so the main image always renders even without the full gallery array.\n const images: ProductImage[] =\n product.images && product.images.length > 0\n ? product.images\n : product.image?.url\n ? [product.image]\n : [];\n\n const hasManyImages = images.length > 1;\n const openNativeGallery = (selected: ProductImage) => {\n if (!isNativeApp()) return false;\n if (window.salla?.mobile?.openGallery?.(images, selected)) return true;\n window.salla?.event.dispatch('mobile::gallery.open', { images: legacyGalleryMedia(images) });\n return true;\n };\n\n return (\n <div className=\"sidebar md:sticky top-24 w-full md:!w-2/4 rtl:ml-8 ltr:mr-8 pb-8 md:pb-16 overflow-hidden shrink-0\">\n <SallaSlider\n id={sliderId}\n className=\"details-slider rounded-md image-slider\"\n type=\"thumbs\"\n loop={false}\n autoHeight\n listenToThumbnailsOption\n showThumbsControls={false}\n sliderConfig={{ watchOverflow: true, autoHeight: true }}\n >\n {product.promotion_title && (\n <div className=\"promotion-title\">{product.promotion_title}</div>\n )}\n\n {product.calories && (\n <div className=\"absolute z-[2] top-4 rtl:left-4 ltr:right-4 bg-white shadow-sm flex flex-col justify-center items-center rounded-full w-20 h-20 md:w-24 md:h-24\">\n <span className=\"text-red-500 text-xl leading-none font-bold\">{product.calories}</span>\n <span className=\"text-xs text-gray-500\">\n {t('pages.products.calories', 'Calories')}\n </span>\n </div>\n )}\n\n <div slot=\"items\">\n {images.map((image, index) => (\n <ImageSlide\n key={image.id ?? image.three_d_image_url ?? image.video_url ?? image.url}\n image={image}\n product={product}\n index={index}\n objectFit={objectFit}\n onPreview={setPreview}\n onNativeOpen={openNativeGallery}\n />\n ))}\n </div>\n\n {hasManyImages && (\n <div slot=\"thumbs\">\n {images.map((image, index) => (\n <ThumbSlide\n key={image.id ?? image.three_d_image_url ?? image.video_url ?? image.url}\n image={image}\n index={index}\n />\n ))}\n </div>\n )}\n </SallaSlider>\n\n <Suspense fallback={null}>\n <ImageModal\n isOpen={!!preview}\n onClose={() => setPreview(null)}\n src={preview?.src ?? ''}\n alt={preview?.alt}\n />\n </Suspense>\n </div>\n );\n}\n\nexport function ProductGallery(props: ProductGalleryProps) {\n const Component = useMemo(() => {\n const resolved = registry.resolve<ProductGalleryProps>(PRODUCT_GALLERY_KEY);\n // A theme that seeds the key with this component (register + override) would\n // otherwise recurse into itself when it has not actually overridden anything.\n return resolved === ProductGallery ? null : resolved;\n }, []);\n\n if (Component) {\n return <Component {...props} />;\n }\n\n return <ProductGalleryContent {...props} />;\n}\n\nfunction ImageSlide({\n image,\n product,\n index,\n objectFit,\n onPreview,\n onNativeOpen,\n}: {\n image: ProductImage;\n product: Product;\n index: number;\n objectFit: 'cover' | 'contain';\n onPreview: (preview: ImagePreview) => void;\n onNativeOpen: (image: ProductImage) => boolean;\n}) {\n const [loaded, setLoaded] = useState(false);\n const isVideo = Boolean(image.video_url);\n\n if (image.three_d_image_url) {\n return (\n // biome-ignore lint/a11y/noStaticElementInteractions: model-viewer is an interactive web component.\n <model-viewer\n style={{ minHeight: '500px' }}\n className=\"swiper-slide model-entry w-full h-full\"\n loading=\"lazy\"\n camera-controls\n touch-action=\"pan-y\"\n auto-rotate\n poster={image.url || undefined}\n src={image.three_d_image_url}\n shadow-intensity=\"1\"\n alt={image.alt}\n onClick={() => onNativeOpen(image)}\n ></model-viewer>\n );\n }\n\n return (\n <a\n data-fslightbox={`product_${product.id}`}\n data-img-id={image.id}\n data-slid-index={index}\n {...(image.video_url ? { 'data-video-src': image.video_url } : {})}\n data-caption={image.alt}\n data-infinite=\"false\"\n data-type={image.video_url ? 'youtube' : 'image'}\n href={image.video_url || image.url}\n // FsLightbox isn't loaded in this React theme, so the bare href would leave the SPA.\n // Open images in an in-app lightbox; let videos open in a new tab.\n {...(isVideo ? { target: '_blank', rel: 'noopener noreferrer' } : {})}\n onClick={(event) => {\n if (onNativeOpen(image)) {\n event.preventDefault();\n return;\n }\n if (isVideo || !image.url) return;\n event.preventDefault();\n onPreview({ src: image.url, alt: image.alt || product.name });\n }}\n aria-label={product.name}\n className={`swiper-slide magnify-wrapper homeslider__slide ${image.video_url ? 'video-entry' : ''}`}\n >\n <div className={`w-full ${loaded ? '' : 'aspect-square bg-gray-100 animate-pulse'}`}>\n <Image\n id={String(image.id)}\n src={image.url}\n alt={image.alt || product.name}\n className={`h-full w-full object-${objectFit}`}\n aspectRatio=\"1/1\"\n priority={index === 0}\n noWrapper\n onLoad={() => setLoaded(true)}\n />\n </div>\n </a>\n );\n}\n\nfunction ThumbSlide({ image, index }: { image: ProductImage; index: number }) {\n return (\n <div\n className={`slide--one-fourth ${image.video_url ? 'video-entry' : ''} ${image.three_d_image_url ? 'model-entry' : ''}`}\n data-caption={image.alt}\n >\n <Image\n src={image.url}\n alt={image.alt || ''}\n className=\"object-cover w-full h-full bg-gray-100 rounded-md overflow-hidden\"\n title={image.alt}\n priority={index < 5}\n noWrapper\n />\n </div>\n );\n}\n"]}
@@ -1,21 +1,21 @@
1
1
  import { ErrorPage } from './chunk-Z4Y55HWX.js';
2
- import { tanstackHeadAdapter } from './chunk-TEAYGNHT.js';
3
- import { store, readPageSearch, readCookieHeader, persistLanguageCookie } from './chunk-OOZQVX7C.js';
4
- import { translations } from './chunk-KJ7NG3ZH.js';
5
- import { parseFiltersFromSearch } from './chunk-5LI536P6.js';
6
- import { dispatchRouteChanged, dispatchPageViewed, setAnalyticsPage, dispatchProductViewed, dispatchProductsFetched, dispatchCartViewed } from './chunk-PZP3372I.js';
7
- import { shouldDehydrateQuery } from './chunk-ZUVBDALM.js';
8
- import { rootHead, subscribeSnippetPageTargets, needsDocumentLoad } from './chunk-WAKCWE6P.js';
9
- import { apps } from './chunk-5RBXCPG6.js';
2
+ import { tanstackHeadAdapter } from './chunk-CIJVNUNZ.js';
3
+ import { store, readPageSearch, readCookieHeader, persistLanguageCookie } from './chunk-Q76O67KK.js';
4
+ import { translations } from './chunk-SBZWX6II.js';
5
+ import { parseFiltersFromSearch } from './chunk-DKIU6ZOP.js';
6
+ import { dispatchRouteChanged, dispatchPageViewed, setAnalyticsPage, dispatchProductViewed, dispatchProductsFetched, dispatchCartViewed } from './chunk-ULGRYCUV.js';
7
+ import { shouldDehydrateQuery } from './chunk-CEIXIUJ7.js';
8
+ import { rootHead, subscribeSnippetPageTargets, needsDocumentLoad } from './chunk-GMXNVBCD.js';
9
+ import { apps } from './chunk-6R2AUQMP.js';
10
10
  import { setHeadAdapter } from './chunk-GD26FI4J.js';
11
- import { VIEW_AS_OWNER_COOKIE_NAME, ownerLinkMatches, ownerCookieMatches, showsMaintenancePage } from './chunk-6YEE3VHL.js';
12
- import { RedirectError, NotFoundError, UnauthorizedError, isMissingResource, responseStatusOf } from './chunk-O3XMYDNC.js';
11
+ import { VIEW_AS_OWNER_COOKIE_NAME, ownerLinkMatches, ownerCookieMatches, showsMaintenancePage } from './chunk-BRIRWS2Q.js';
12
+ import { RedirectError, NotFoundError, UnauthorizedError, isMissingResource, responseStatusOf } from './chunk-H7A7LOQJ.js';
13
13
  import { RouteId } from './chunk-OUW6WESU.js';
14
14
  import { useDocumentClass } from './chunk-JWXJPJBO.js';
15
15
  import { toReactProps, mergeElementAttrs } from './chunk-CW625T2E.js';
16
- import { advertisement } from './chunk-PPFD456V.js';
17
- import { syncSdkLocale, syncSdkThemeVersion } from './chunk-7XAGU6CT.js';
18
- import { AUTH_TOKEN_COOKIE_NAME, SCOPE_COOKIE_NAME, SCOPE_COOKIE_MAX_AGE, extractScopeFromCookies, extractScopeFromUrl, resolveRequestScope, sameScope, resolveStoreBase, resolveStoreBaseFollowsLocale, syncScopeCookie, extractTokenFromCookies, prefixStoreBase, hasLanguageParam, withLanguageParam, virtualLocale, stripStoreBase, resolveStoreBaseRedirect, resolveStoppedDomainRedirect, resolveOwnDomainRedirect, decideSharedHostLanguage, currentHost } from './chunk-4E6FD5W7.js';
16
+ import { advertisement } from './chunk-Z4BOATCC.js';
17
+ import { syncSdkLocale, syncSdkThemeVersion } from './chunk-7IVHY4OR.js';
18
+ import { AUTH_TOKEN_COOKIE_NAME, SCOPE_COOKIE_NAME, SCOPE_COOKIE_MAX_AGE, extractScopeFromCookies, extractScopeFromUrl, resolveRequestScope, sameScope, resolveStoreBase, resolveStoreBaseFollowsLocale, syncScopeCookie, extractTokenFromCookies, prefixStoreBase, hasLanguageParam, withLanguageParam, virtualLocale, stripStoreBase, resolveStoreBaseRedirect, resolveStoppedDomainRedirect, resolveOwnDomainRedirect, decideSharedHostLanguage, currentHost } from './chunk-EEL6OYAQ.js';
19
19
  import { updateTwilightContext, createI18nInstance, getTwilightContext, SettingsError, messagesForLocale } from './chunk-6K34BCUP.js';
20
20
  import { isLocale, FALLBACK_LOCALE, getLanguageInfo } from './chunk-T72DAX7R.js';
21
21
  import { lazyComponent, preloadServerComponents } from './chunk-VYGA5AT5.js';
@@ -379,7 +379,7 @@ function resolveRouteId(tanstackId) {
379
379
  return TANSTACK_ROUTE_ID_MAP[tanstackId] ?? tanstackId;
380
380
  }
381
381
  var LazyNotFoundPage = lazyComponent(
382
- () => import('./not-found-4U2TRCLF.js').then((m) => ({ default: m.NotFoundPage }))
382
+ () => import('./not-found-E72Z34CJ.js').then((m) => ({ default: m.NotFoundPage }))
383
383
  );
384
384
  function StoreUnavailablePage() {
385
385
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
@@ -871,5 +871,5 @@ function tanstackDocumentAdapter(descriptor) {
871
871
  }
872
872
 
873
873
  export { RouteDocumentSync, TanStackDocumentSync, createRouter, createTwilightRootRoute, tanstackDocumentAdapter, useTanstackDocumentAttrs };
874
- //# sourceMappingURL=chunk-FL3OK7AQ.js.map
875
- //# sourceMappingURL=chunk-FL3OK7AQ.js.map
874
+ //# sourceMappingURL=chunk-WZAJS44F.js.map
875
+ //# sourceMappingURL=chunk-WZAJS44F.js.map