@salla.sa/twilight-theme-engine 1.0.120 → 1.0.122
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.
- package/dist/{AddToCartForm-3JMN4PL4.js → AddToCartForm-4Z6BBSU4.js} +3 -3
- package/dist/{AddToCartForm-3JMN4PL4.js.map → AddToCartForm-4Z6BBSU4.js.map} +1 -1
- package/dist/{BlogAuthorPage-HRPTZ6KW.js → BlogAuthorPage-GIQL4YX6.js} +17 -16
- package/dist/BlogAuthorPage-GIQL4YX6.js.map +1 -0
- package/dist/{BlogCategoryPage-2NNWTOTW.js → BlogCategoryPage-UELJFSB2.js} +17 -16
- package/dist/BlogCategoryPage-UELJFSB2.js.map +1 -0
- package/dist/{BlogPage-JMVHQBYK.js → BlogPage-G6LPLQRM.js} +15 -14
- package/dist/BlogPage-G6LPLQRM.js.map +1 -0
- package/dist/{BlogSinglePage-Y6V66JG6.js → BlogSinglePage-SVTO3C5D.js} +15 -14
- package/dist/BlogSinglePage-SVTO3C5D.js.map +1 -0
- package/dist/{BlogTagPage-B4NJLSQ7.js → BlogTagPage-CFXXPULN.js} +17 -16
- package/dist/BlogTagPage-CFXXPULN.js.map +1 -0
- package/dist/{BrandsPage-NBVF64JF.js → BrandsPage-IC26RKIG.js} +16 -15
- package/dist/BrandsPage-IC26RKIG.js.map +1 -0
- package/dist/{Breadcrumb-JYGYQJLB.js → Breadcrumb-OI2H6GVZ.js} +15 -14
- package/dist/Breadcrumb-OI2H6GVZ.js.map +1 -0
- package/dist/{CartItem-B3GIVKO6.js → CartItem-HTEPMUDS.js} +15 -14
- package/dist/CartItem-HTEPMUDS.js.map +1 -0
- package/dist/{CartSummary-KYDOZM5M.js → CartSummary-OKLYOGJ3.js} +15 -14
- package/dist/CartSummary-OKLYOGJ3.js.map +1 -0
- package/dist/{Copyright-EODCFCIG.js → Copyright-EJW3DGP7.js} +3 -3
- package/dist/{Copyright-EODCFCIG.js.map → Copyright-EJW3DGP7.js.map} +1 -1
- package/dist/{CustomerLayout-76NGJTMK.js → CustomerLayout-YADC5GF7.js} +15 -14
- package/dist/CustomerLayout-YADC5GF7.js.map +1 -0
- package/dist/{Footer-JKHEL74P.js → Footer-XJJIN5T3.js} +4 -4
- package/dist/{Footer-JKHEL74P.js.map → Footer-XJJIN5T3.js.map} +1 -1
- package/dist/{Header-WJAMZDMT.js → Header-WCRFWQIF.js} +8 -8
- package/dist/{Header-WJAMZDMT.js.map → Header-WCRFWQIF.js.map} +1 -1
- package/dist/LiveEditorBar-6SKEWJOX.js +338 -0
- package/dist/LiveEditorBar-6SKEWJOX.js.map +1 -0
- package/dist/{LoyaltyPage-JPZEXI2N.js → LoyaltyPage-CVNIZVMT.js} +15 -14
- package/dist/LoyaltyPage-CVNIZVMT.js.map +1 -0
- package/dist/{LoyaltyPointsPage-C4IZPAOG.js → LoyaltyPointsPage-UZT7LR5E.js} +6 -6
- package/dist/{LoyaltyPointsPage-C4IZPAOG.js.map → LoyaltyPointsPage-UZT7LR5E.js.map} +1 -1
- package/dist/{MainMenu-EIK6QDPF.js → MainMenu-T2OXHLEM.js} +5 -5
- package/dist/{MainMenu-EIK6QDPF.js.map → MainMenu-T2OXHLEM.js.map} +1 -1
- package/dist/{MasterLayout-IVOF3YTF.js → MasterLayout-MLEDURJK.js} +15 -14
- package/dist/{MasterLayout-IVOF3YTF.js.map → MasterLayout-MLEDURJK.js.map} +1 -1
- package/dist/{MobileMenu-5PNZNRXJ.js → MobileMenu-RYICFJPO.js} +16 -15
- package/dist/MobileMenu-RYICFJPO.js.map +1 -0
- package/dist/{NotificationsPage-LO74N5F7.js → NotificationsPage-J2YNZPAN.js} +15 -14
- package/dist/NotificationsPage-J2YNZPAN.js.map +1 -0
- package/dist/{OrderSinglePage-6PYW65SG.js → OrderSinglePage-IIC6JKFX.js} +16 -15
- package/dist/OrderSinglePage-IIC6JKFX.js.map +1 -0
- package/dist/{OrdersPage-KTZJCAXM.js → OrdersPage-FPUE5T6O.js} +15 -14
- package/dist/OrdersPage-FPUE5T6O.js.map +1 -0
- package/dist/{PageSingle-2IY5TNSQ.js → PageSingle-BOZFETZ5.js} +3 -3
- package/dist/{PageSingle-2IY5TNSQ.js.map → PageSingle-BOZFETZ5.js.map} +1 -1
- package/dist/{ProductDetails-EXHNDRRN.js → ProductDetails-ERSDEM5Z.js} +4 -4
- package/dist/{ProductDetails-EXHNDRRN.js.map → ProductDetails-ERSDEM5Z.js.map} +1 -1
- package/dist/{ProfilePage-4W6ZGYOE.js → ProfilePage-MP4PE2LF.js} +15 -14
- package/dist/ProfilePage-MP4PE2LF.js.map +1 -0
- package/dist/{RenderWhenVisible-KWAXEJOJ.js → RenderWhenVisible-BQ7KVPHK.js} +5 -3
- package/dist/RenderWhenVisible-BQ7KVPHK.js.map +1 -0
- package/dist/{ReviewsPage-P6UX4LHI.js → ReviewsPage-5L6DLPN2.js} +3 -3
- package/dist/{ReviewsPage-P6UX4LHI.js.map → ReviewsPage-5L6DLPN2.js.map} +1 -1
- package/dist/{SeoCartWidget-2WHHI6QF.js → SeoCartWidget-XU5LKBMF.js} +15 -14
- package/dist/SeoCartWidget-XU5LKBMF.js.map +1 -0
- package/dist/{SettingsPage-U2B5JI5K.js → SettingsPage-A2AI5CWI.js} +15 -14
- package/dist/SettingsPage-A2AI5CWI.js.map +1 -0
- package/dist/{StoreClosedNotification-MJQT66GR.js → StoreClosedNotification-C6EZSOQF.js} +16 -15
- package/dist/{StoreClosedNotification-MJQT66GR.js.map → StoreClosedNotification-C6EZSOQF.js.map} +1 -1
- package/dist/{TestimonialsPage-BGJND2VC.js → TestimonialsPage-ZO6OIZMX.js} +3 -3
- package/dist/{TestimonialsPage-BGJND2VC.js.map → TestimonialsPage-ZO6OIZMX.js.map} +1 -1
- package/dist/{ThankYouPage-B3KOZKMZ.js → ThankYouPage-RZFWZZXI.js} +15 -14
- package/dist/ThankYouPage-RZFWZZXI.js.map +1 -0
- package/dist/{WalletPage-KVG6MYQ4.js → WalletPage-BDMVFQ4G.js} +16 -15
- package/dist/WalletPage-BDMVFQ4G.js.map +1 -0
- package/dist/{WishlistPage-ZAXYF5WP.js → WishlistPage-3OFBHANB.js} +17 -16
- package/dist/WishlistPage-3OFBHANB.js.map +1 -0
- package/dist/api/advertisement.js +2 -2
- package/dist/api/apps.js +2 -2
- package/dist/api/blog.js +3 -3
- package/dist/api/brands.js +3 -3
- package/dist/api/cart.js +3 -3
- package/dist/api/category.js +3 -3
- package/dist/api/client.d.ts.map +1 -1
- package/dist/api/client.js +1 -1
- package/dist/api/home.js +2 -2
- package/dist/api/loyalty.js +3 -3
- package/dist/api/menu.js +2 -2
- package/dist/api/notification.js +2 -2
- package/dist/api/order.js +3 -3
- package/dist/api/page.js +3 -3
- package/dist/api/product.js +3 -3
- package/dist/api/profile.js +1 -1
- package/dist/api/store.js +2 -2
- package/dist/api/translations.js +2 -2
- package/dist/api/user.js +2 -2
- package/dist/api/wallet.js +2 -2
- package/dist/api/wishlist.js +4 -4
- package/dist/chunk-3IBJ5QUW.js +14 -0
- package/dist/{chunk-TM5MVVTX.js.map → chunk-3IBJ5QUW.js.map} +1 -1
- package/dist/{chunk-B6JTC5R6.js → chunk-3PS2WFNQ.js} +4 -4
- package/dist/{chunk-B6JTC5R6.js.map → chunk-3PS2WFNQ.js.map} +1 -1
- package/dist/{chunk-4GWHDLUF.js → chunk-3VOJOKQI.js} +6 -6
- package/dist/{chunk-4GWHDLUF.js.map → chunk-3VOJOKQI.js.map} +1 -1
- package/dist/{chunk-JHTTTXTI.js → chunk-4IBG3GR6.js} +4 -4
- package/dist/{chunk-JHTTTXTI.js.map → chunk-4IBG3GR6.js.map} +1 -1
- package/dist/{chunk-3WGZZD2Y.js → chunk-5K53BZIN.js} +4 -4
- package/dist/{chunk-3WGZZD2Y.js.map → chunk-5K53BZIN.js.map} +1 -1
- package/dist/{chunk-PFAPRJVF.js → chunk-6BQN4JKH.js} +13 -4
- package/dist/chunk-6BQN4JKH.js.map +1 -0
- package/dist/{chunk-PRA6E6SQ.js → chunk-6F6VACX5.js} +4 -4
- package/dist/{chunk-PRA6E6SQ.js.map → chunk-6F6VACX5.js.map} +1 -1
- package/dist/{chunk-VI2WHQDR.js → chunk-6JS7UZ3S.js} +3 -3
- package/dist/{chunk-VI2WHQDR.js.map → chunk-6JS7UZ3S.js.map} +1 -1
- package/dist/{chunk-ULPH6647.js → chunk-7IQCF6GU.js} +7 -7
- package/dist/{chunk-ULPH6647.js.map → chunk-7IQCF6GU.js.map} +1 -1
- package/dist/{chunk-VSK2WS4G.js → chunk-ABDYSBBY.js} +3 -3
- package/dist/{chunk-VSK2WS4G.js.map → chunk-ABDYSBBY.js.map} +1 -1
- package/dist/{chunk-EFT442TN.js → chunk-ALHMPT6S.js} +3 -3
- package/dist/{chunk-EFT442TN.js.map → chunk-ALHMPT6S.js.map} +1 -1
- package/dist/{chunk-TI6S5KW3.js → chunk-BHCKUER2.js} +4 -4
- package/dist/{chunk-TI6S5KW3.js.map → chunk-BHCKUER2.js.map} +1 -1
- package/dist/{chunk-4EATTQQA.js → chunk-DEIABJV4.js} +3 -3
- package/dist/{chunk-4EATTQQA.js.map → chunk-DEIABJV4.js.map} +1 -1
- package/dist/{chunk-5QYNHHPE.js → chunk-E5OVMQIA.js} +4 -4
- package/dist/{chunk-5QYNHHPE.js.map → chunk-E5OVMQIA.js.map} +1 -1
- package/dist/{chunk-EFCIK5NI.js → chunk-EA334DDV.js} +3 -3
- package/dist/{chunk-EFCIK5NI.js.map → chunk-EA334DDV.js.map} +1 -1
- package/dist/{chunk-XMFVSBEO.js → chunk-EL6IDB5U.js} +3 -3
- package/dist/{chunk-XMFVSBEO.js.map → chunk-EL6IDB5U.js.map} +1 -1
- package/dist/{chunk-MQALPNFL.js → chunk-ESYRKX7T.js} +4 -4
- package/dist/{chunk-MQALPNFL.js.map → chunk-ESYRKX7T.js.map} +1 -1
- package/dist/{chunk-VT6FE3CB.js → chunk-F2MDQCTH.js} +3 -3
- package/dist/{chunk-VT6FE3CB.js.map → chunk-F2MDQCTH.js.map} +1 -1
- package/dist/{chunk-UVQ3QASG.js → chunk-HAH22L6T.js} +7 -7
- package/dist/{chunk-UVQ3QASG.js.map → chunk-HAH22L6T.js.map} +1 -1
- package/dist/{chunk-IRQJBRKV.js → chunk-JOY7HCIH.js} +3 -3
- package/dist/{chunk-IRQJBRKV.js.map → chunk-JOY7HCIH.js.map} +1 -1
- package/dist/{chunk-Y5ZHBECO.js → chunk-KNUANWCR.js} +9 -6
- package/dist/chunk-KNUANWCR.js.map +1 -0
- package/dist/{chunk-RVPC4AYT.js → chunk-LCBETTJI.js} +3 -3
- package/dist/{chunk-RVPC4AYT.js.map → chunk-LCBETTJI.js.map} +1 -1
- package/dist/{chunk-VXSBJZ3E.js → chunk-LG5355UU.js} +4 -4
- package/dist/{chunk-VXSBJZ3E.js.map → chunk-LG5355UU.js.map} +1 -1
- package/dist/{chunk-25MXTMV4.js → chunk-LNSMPXGR.js} +4 -4
- package/dist/{chunk-25MXTMV4.js.map → chunk-LNSMPXGR.js.map} +1 -1
- package/dist/{chunk-UMTMIMH7.js → chunk-MWOP57ZR.js} +3 -3
- package/dist/{chunk-UMTMIMH7.js.map → chunk-MWOP57ZR.js.map} +1 -1
- package/dist/{chunk-UNLQTOEN.js → chunk-N6EWTAE4.js} +7 -7
- package/dist/{chunk-UNLQTOEN.js.map → chunk-N6EWTAE4.js.map} +1 -1
- package/dist/{chunk-Y6VKKGXJ.js → chunk-NEPBUZ5S.js} +5 -5
- package/dist/{chunk-Y6VKKGXJ.js.map → chunk-NEPBUZ5S.js.map} +1 -1
- package/dist/{chunk-D2RUSG36.js → chunk-P6X2QUYL.js} +4 -4
- package/dist/{chunk-D2RUSG36.js.map → chunk-P6X2QUYL.js.map} +1 -1
- package/dist/chunk-PDIFXQDX.js +63 -0
- package/dist/chunk-PDIFXQDX.js.map +1 -0
- package/dist/{chunk-NEHOBD4K.js → chunk-PO6PTKMN.js} +3 -3
- package/dist/{chunk-NEHOBD4K.js.map → chunk-PO6PTKMN.js.map} +1 -1
- package/dist/{chunk-ME4UKH7Y.js → chunk-PQNLRRWJ.js} +4 -4
- package/dist/{chunk-ME4UKH7Y.js.map → chunk-PQNLRRWJ.js.map} +1 -1
- package/dist/{chunk-E552K72T.js → chunk-QMKC7PA2.js} +3 -3
- package/dist/{chunk-E552K72T.js.map → chunk-QMKC7PA2.js.map} +1 -1
- package/dist/{chunk-5YXJC35L.js → chunk-QTRV6N64.js} +37 -20
- package/dist/chunk-QTRV6N64.js.map +1 -0
- package/dist/{chunk-NHEMVF3B.js → chunk-UNDCL5EE.js} +10 -10
- package/dist/{chunk-NHEMVF3B.js.map → chunk-UNDCL5EE.js.map} +1 -1
- package/dist/{chunk-W6NQM4FQ.js → chunk-UQ7NS6BZ.js} +3 -3
- package/dist/{chunk-W6NQM4FQ.js.map → chunk-UQ7NS6BZ.js.map} +1 -1
- package/dist/{chunk-5CKTQAFX.js → chunk-V23ILNAK.js} +3 -3
- package/dist/{chunk-5CKTQAFX.js.map → chunk-V23ILNAK.js.map} +1 -1
- package/dist/{chunk-FIDNPYLL.js → chunk-WZOWGICV.js} +3 -3
- package/dist/{chunk-FIDNPYLL.js.map → chunk-WZOWGICV.js.map} +1 -1
- package/dist/{chunk-NU2LPGNB.js → chunk-XK6TXHVO.js} +3 -3
- package/dist/{chunk-NU2LPGNB.js.map → chunk-XK6TXHVO.js.map} +1 -1
- package/dist/{chunk-T23HXVW5.js → chunk-Y57KRLGY.js} +3 -3
- package/dist/{chunk-T23HXVW5.js.map → chunk-Y57KRLGY.js.map} +1 -1
- package/dist/{chunk-GEGB34LB.js → chunk-YC4CEVQO.js} +4 -4
- package/dist/{chunk-GEGB34LB.js.map → chunk-YC4CEVQO.js.map} +1 -1
- package/dist/components/cart/index.js +1 -1
- package/dist/components/common/RenderWhenVisible.d.ts +3 -1
- package/dist/components/common/RenderWhenVisible.d.ts.map +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/common/lazy.d.ts +1 -1
- package/dist/components/common/lazy.d.ts.map +1 -1
- package/dist/components/drawer/index.js +13 -12
- package/dist/components/home/HomePageRenderer.d.ts.map +1 -1
- package/dist/components/home/index.js +17 -16
- package/dist/components/layout/index.js +4 -4
- package/dist/components/live-editor/LiveEditorBar.d.ts +11 -0
- package/dist/components/live-editor/LiveEditorBar.d.ts.map +1 -0
- package/dist/components/live-editor/frame.d.ts +34 -0
- package/dist/components/live-editor/frame.d.ts.map +1 -0
- package/dist/components/live-editor/index.d.ts +9 -0
- package/dist/components/live-editor/index.d.ts.map +1 -0
- package/dist/components/product/index.js +14 -13
- package/dist/components/store/index.js +14 -13
- package/dist/dev/editor/index.js +1 -1
- package/dist/dev/index.js +1 -1
- package/dist/{document-class-OSMTFGJJ.js → document-class-WRE36CKT.js} +11 -11
- package/dist/{document-class-OSMTFGJJ.js.map → document-class-WRE36CKT.js.map} +1 -1
- package/dist/hooks/index.js +13 -12
- package/dist/hooks/useGtm.js +13 -12
- package/dist/hooks/useMoney.js +13 -12
- package/dist/hooks/useStore.js +13 -12
- package/dist/hooks/useUser.js +3 -3
- package/dist/index.js +13 -12
- package/dist/index.js.map +1 -1
- package/dist/{navigation-2V7R2ANX.js → navigation-F5YC4AN5.js} +5 -5
- package/dist/{navigation-2V7R2ANX.js.map → navigation-F5YC4AN5.js.map} +1 -1
- package/dist/{navigation-LRBZCNKS.js → navigation-KPN6OPJN.js} +4 -4
- package/dist/{navigation-LRBZCNKS.js.map → navigation-KPN6OPJN.js.map} +1 -1
- package/dist/{not-found-ZX6EJRVW.js → not-found-YZOISV3W.js} +16 -15
- package/dist/not-found-YZOISV3W.js.map +1 -0
- package/dist/providers/TwilightProvider.d.ts.map +1 -1
- package/dist/providers/index.js +13 -12
- package/dist/routes/account/orders.js +4 -4
- package/dist/routes/account.js +13 -13
- package/dist/routes/blog.js +8 -8
- package/dist/routes/brands.js +4 -4
- package/dist/routes/cart.js +21 -20
- package/dist/routes/cart.js.map +1 -1
- package/dist/routes/home.js +18 -17
- package/dist/routes/index.js +3 -3
- package/dist/routes/loyalty.js +5 -5
- package/dist/routes/page.js +4 -4
- package/dist/routes/product-listing.js +19 -18
- package/dist/routes/product-listing.js.map +1 -1
- package/dist/routes/product.js +17 -16
- package/dist/routes/product.js.map +1 -1
- package/dist/routes/seo-redirects.js +3 -3
- package/dist/routes/testimonials.js +2 -2
- package/dist/routes/thank-you.js +4 -4
- package/dist/skeleton.js +18 -17
- package/dist/{store-lookup-YUA66JS6.js → store-lookup-GXBNYGCM.js} +8 -8
- package/dist/{store-lookup-YUA66JS6.js.map → store-lookup-GXBNYGCM.js.map} +1 -1
- package/dist/tanstack.js +11 -11
- package/dist/utils/index.js +2 -2
- package/package.json +1 -1
- package/tailwind/components/common/RenderWhenVisible.tsx.txt +4 -0
- package/tailwind/components/home/HomePageRenderer.tsx.txt +7 -0
- package/tailwind/components/live-editor/LiveEditorBar.tsx.txt +417 -0
- package/tailwind/components/live-editor/frame.ts.txt +97 -0
- package/tailwind/components/live-editor/index.tsx.txt +37 -0
- package/dist/BlogAuthorPage-HRPTZ6KW.js.map +0 -1
- package/dist/BlogCategoryPage-2NNWTOTW.js.map +0 -1
- package/dist/BlogPage-JMVHQBYK.js.map +0 -1
- package/dist/BlogSinglePage-Y6V66JG6.js.map +0 -1
- package/dist/BlogTagPage-B4NJLSQ7.js.map +0 -1
- package/dist/BrandsPage-NBVF64JF.js.map +0 -1
- package/dist/Breadcrumb-JYGYQJLB.js.map +0 -1
- package/dist/CartItem-B3GIVKO6.js.map +0 -1
- package/dist/CartSummary-KYDOZM5M.js.map +0 -1
- package/dist/CustomerLayout-76NGJTMK.js.map +0 -1
- package/dist/LoyaltyPage-JPZEXI2N.js.map +0 -1
- package/dist/MobileMenu-5PNZNRXJ.js.map +0 -1
- package/dist/NotificationsPage-LO74N5F7.js.map +0 -1
- package/dist/OrderSinglePage-6PYW65SG.js.map +0 -1
- package/dist/OrdersPage-KTZJCAXM.js.map +0 -1
- package/dist/ProfilePage-4W6ZGYOE.js.map +0 -1
- package/dist/RenderWhenVisible-KWAXEJOJ.js.map +0 -1
- package/dist/SeoCartWidget-2WHHI6QF.js.map +0 -1
- package/dist/SettingsPage-U2B5JI5K.js.map +0 -1
- package/dist/ThankYouPage-B3KOZKMZ.js.map +0 -1
- package/dist/WalletPage-KVG6MYQ4.js.map +0 -1
- package/dist/WishlistPage-ZAXYF5WP.js.map +0 -1
- package/dist/chunk-5YXJC35L.js.map +0 -1
- package/dist/chunk-PFAPRJVF.js.map +0 -1
- package/dist/chunk-TM5MVVTX.js +0 -14
- package/dist/chunk-Y5ZHBECO.js.map +0 -1
- package/dist/not-found-ZX6EJRVW.js.map +0 -1
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import './chunk-QTRV6N64.js';
|
|
2
|
+
import './chunk-PDIFXQDX.js';
|
|
3
|
+
import './chunk-7IQCF6GU.js';
|
|
4
|
+
import './chunk-WZOWGICV.js';
|
|
4
5
|
import './chunk-D6XHL6VQ.js';
|
|
5
6
|
import './chunk-JYV25VNZ.js';
|
|
6
|
-
import './chunk-
|
|
7
|
+
import './chunk-EL6IDB5U.js';
|
|
7
8
|
import './chunk-OXMUPNMH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
+
import './chunk-MWOP57ZR.js';
|
|
9
10
|
import './chunk-VVZNW5CB.js';
|
|
10
11
|
import './chunk-5FJFN3IW.js';
|
|
11
12
|
import './chunk-GD26FI4J.js';
|
|
12
13
|
import './chunk-OM2GRPDH.js';
|
|
13
|
-
import './chunk-
|
|
14
|
+
import './chunk-Y57KRLGY.js';
|
|
14
15
|
import './chunk-OUW6WESU.js';
|
|
15
16
|
import './chunk-BK5TBUGG.js';
|
|
16
17
|
import './chunk-HI5V5X3S.js';
|
|
17
|
-
import { useUser } from './chunk-
|
|
18
|
-
import './chunk-
|
|
18
|
+
import { useUser } from './chunk-F2MDQCTH.js';
|
|
19
|
+
import './chunk-LCBETTJI.js';
|
|
19
20
|
import './chunk-MVT5AF2A.js';
|
|
20
21
|
import './chunk-Z653O7MX.js';
|
|
21
22
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -26,15 +27,15 @@ import './chunk-7V36I5GT.js';
|
|
|
26
27
|
import './chunk-6WI7R2BD.js';
|
|
27
28
|
import './chunk-JGVEGQHJ.js';
|
|
28
29
|
import './chunk-OAMIDZKW.js';
|
|
29
|
-
import './chunk-
|
|
30
|
+
import './chunk-ALHMPT6S.js';
|
|
30
31
|
import './chunk-OQIIJRAS.js';
|
|
31
32
|
import './chunk-V2ZDTY6H.js';
|
|
32
|
-
import './chunk-
|
|
33
|
+
import './chunk-6JS7UZ3S.js';
|
|
33
34
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
34
35
|
import './chunk-GCPEMNSU.js';
|
|
35
|
-
import './chunk-
|
|
36
|
+
import './chunk-6BQN4JKH.js';
|
|
36
37
|
import './chunk-TYNZ5B2B.js';
|
|
37
|
-
import './chunk-
|
|
38
|
+
import './chunk-E5OVMQIA.js';
|
|
38
39
|
import './chunk-AXW67SY7.js';
|
|
39
40
|
import './chunk-BYMOPN2S.js';
|
|
40
41
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -75,5 +76,5 @@ function ProfilePage(_props) {
|
|
|
75
76
|
}
|
|
76
77
|
|
|
77
78
|
export { ProfilePage };
|
|
78
|
-
//# sourceMappingURL=ProfilePage-
|
|
79
|
-
//# sourceMappingURL=ProfilePage-
|
|
79
|
+
//# sourceMappingURL=ProfilePage-MP4PE2LF.js.map
|
|
80
|
+
//# sourceMappingURL=ProfilePage-MP4PE2LF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/account/profile/ProfilePage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMO,SAAS,YAAY,MAAA,EAA0B;AACpD,EAAA,MAAM,EAAE,IAAA,EAAM,IAAA,EAAK,GAAI,OAAA,EAAQ;AAE/B,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,wBAAA,EAAyB,CAAA;AAAA,oBAExC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,6BAAA,EAA8B,CAAA;AAAA,wBAE5C,gBAAA,EAAA,EAAiB,CAAA;AAAA,oBAElB,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,2BAAA,EAA4B,CAAA;AAAA,wBAE1C,WAAA,EAAA,EAAY,CAAA;AAAA,oBAEb,GAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QACE,GAAI,MAAM,WAAA,EAAa,qBAAA,GAAwB,EAAE,YAAA,EAAc,IAAA,KAAS,EAAC;AAAA,QAC1E,SAAA,EAAU;AAAA;AAAA,KACZ;AAAA,oBAEA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,sBAAA,EAAuB;AAAA,GAAA,EACxC,CAAA;AAEJ","file":"ProfilePage-MP4PE2LF.js","sourcesContent":["import { SallaUserProfile } from '@salla.sa/twilight-components-react/user-profile';\nimport { SallaVerify } from '@salla.sa/twilight-components-react/verify';\nimport { SallaUserSettings } from '@salla.sa/twilight-components-react/user-settings';\nimport { HookSlot, useUser } from '../../../hooks';\nimport type { ProfilePageProps } from './types';\n\nexport function ProfilePage(_props: ProfilePageProps) {\n const { data: user } = useUser();\n\n return (\n <>\n <HookSlot name=\"customer:profile.start\" />\n\n <HookSlot name=\"customer:profile.form.start\" />\n\n <SallaUserProfile />\n\n <HookSlot name=\"customer:profile.form.end\" />\n\n <SallaVerify />\n\n <SallaUserSettings\n {...(user?.preferences?.notifications_enabled ? { isNotifiable: true } : {})}\n className=\"mt-10 block\"\n />\n\n <HookSlot name=\"customer:profile.end\" />\n </>\n );\n}\n"]}
|
|
@@ -17,7 +17,8 @@ var RenderWhenVisible = memo(function RenderWhenVisible2({
|
|
|
17
17
|
id,
|
|
18
18
|
estimatedHeight = "400px",
|
|
19
19
|
renderOnMount = false,
|
|
20
|
-
blockIndex
|
|
20
|
+
blockIndex,
|
|
21
|
+
liveBlockId
|
|
21
22
|
}) {
|
|
22
23
|
const ref = useRef(null);
|
|
23
24
|
const [visible, setVisible] = useState(renderOnMount);
|
|
@@ -47,6 +48,7 @@ var RenderWhenVisible = memo(function RenderWhenVisible2({
|
|
|
47
48
|
className,
|
|
48
49
|
id,
|
|
49
50
|
"data-home-block": blockIndex,
|
|
51
|
+
"data-live-block": liveBlockId,
|
|
50
52
|
style: { minHeight: mounted ? void 0 : estimatedHeight },
|
|
51
53
|
children: visible ? /* @__PURE__ */ jsxs(Suspense, { fallback, children: [
|
|
52
54
|
children,
|
|
@@ -57,5 +59,5 @@ var RenderWhenVisible = memo(function RenderWhenVisible2({
|
|
|
57
59
|
});
|
|
58
60
|
|
|
59
61
|
export { RenderWhenVisible };
|
|
60
|
-
//# sourceMappingURL=RenderWhenVisible-
|
|
61
|
-
//# sourceMappingURL=RenderWhenVisible-
|
|
62
|
+
//# sourceMappingURL=RenderWhenVisible-BQ7KVPHK.js.map
|
|
63
|
+
//# sourceMappingURL=RenderWhenVisible-BQ7KVPHK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/common/RenderWhenVisible.tsx"],"names":["RenderWhenVisible"],"mappings":";;;;AAEA,SAAS,eAAA,CAAgB,EAAE,MAAA,EAAO,EAAuB;AACvD,EAAA,uBAAO,GAAA,CAAC,SAAI,KAAA,EAAO,EAAE,WAAW,MAAA,EAAO,EAAG,WAAU,mCAAA,EAAoC,CAAA;AAC1F;AAGA,SAAS,WAAA,CAAY,EAAE,OAAA,EAAQ,EAA4C;AACzE,EAAA,SAAA,CAAU,MAAM,OAAA,CAAQ,IAAI,CAAA,EAAG,CAAC,OAAO,CAAC,CAAA;AACxC,EAAA,OAAO,IAAA;AACT;AA8BO,IAAM,iBAAA,GAAoB,IAAA,CAAK,SAASA,kBAAAA,CAAkB;AAAA,EAC/D,QAAA;AAAA,EACA,UAAA,GAAa,MAAA;AAAA,EACb,WAAA;AAAA,EACA,SAAA;AAAA,EACA,EAAA;AAAA,EACA,eAAA,GAAkB,OAAA;AAAA,EAClB,aAAA,GAAgB,KAAA;AAAA,EAChB,UAAA;AAAA,EACA;AACF,CAAA,EAA2B;AACzB,EAAA,MAAM,GAAA,GAAM,OAAoB,IAAI,CAAA;AACpC,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,aAAa,CAAA;AACpD,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAAS,KAAK,CAAA;AAG5C,EAAA,IAAI,aAAA,IAAiB,CAAC,OAAA,EAAS,UAAA,CAAW,IAAI,CAAA;AAE9C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAA,EAAS;AACb,IAAA,MAAM,KAAK,GAAA,CAAI,OAAA;AACf,IAAA,IAAI,CAAC,EAAA,EAAI;AAET,IAAA,MAAM,WAAW,IAAI,oBAAA;AAAA,MACnB,CAAC,OAAA,KAAY;AAIX,QAAA,IAAI,QAAQ,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,cAAc,CAAA,EAAG;AACjD,UAAA,UAAA,CAAW,IAAI,CAAA;AACf,UAAA,QAAA,CAAS,UAAA,EAAW;AAAA,QACtB;AAAA,MACF,CAAA;AAAA,MACA,EAAE,UAAA;AAAW,KACf;AAEA,IAAA,QAAA,CAAS,QAAQ,EAAE,CAAA;AAEnB,IAAA,OAAO,MAAM,SAAS,UAAA,EAAW;AAAA,EACnC,CAAA,EAAG,CAAC,OAAA,EAAS,UAAU,CAAC,CAAA;AAExB,EAAA,MAAM,QAAA,GAAW,WAAA,oBAAe,GAAA,CAAC,eAAA,EAAA,EAAgB,QAAQ,eAAA,EAAiB,CAAA;AAE1E,EAAA,uBACE,GAAA;AAAA,IAAC,SAAA;AAAA,IAAA;AAAA,MACC,GAAA,EAAK,CAAC,OAAA,GAAU,GAAA,GAAM,MAAA;AAAA,MACtB,SAAA;AAAA,MACA,EAAA;AAAA,MACA,iBAAA,EAAiB,UAAA;AAAA,MACjB,iBAAA,EAAiB,WAAA;AAAA,MACjB,KAAA,EAAO,EAAE,SAAA,EAAW,OAAA,GAAU,SAAY,eAAA,EAAgB;AAAA,MAEzD,QAAA,EAAA,OAAA,mBACC,IAAA,CAAC,QAAA,EAAA,EAAS,QAAA,EACP,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAAC,WAAA,EAAA,EAAY,OAAA,EAAS,UAAA,EAAY;AAAA,OAAA,EACpC,CAAA,GAEA;AAAA;AAAA,GAEJ;AAEJ,CAAC","file":"RenderWhenVisible-BQ7KVPHK.js","sourcesContent":["import { memo, useState, useEffect, useRef, Suspense, type ReactNode } from 'react';\n\nfunction DefaultSkeleton({ height }: { height: string }) {\n return <div style={{ minHeight: height }} className=\"animate-pulse rounded bg-gray-100\" />;\n}\n\n/** Sibling of the children inside Suspense: its effect only runs once the boundary resolves. */\nfunction MarkMounted({ onMount }: { onMount: (mounted: boolean) => void }) {\n useEffect(() => onMount(true), [onMount]);\n return null;\n}\n\nexport interface RenderWhenVisibleProps {\n children: ReactNode;\n rootMargin?: string;\n placeholder?: ReactNode;\n className?: string;\n id?: string;\n estimatedHeight?: string;\n renderOnMount?: boolean;\n /** @internal Home block position, rendered as `data-home-block` for the dev editor's scroll-to. */\n blockIndex?: number;\n /** @internal The block's id in the store, rendered as `data-live-block` for the theme editor's action bar. */\n liveBlockId?: string;\n}\n\n/**\n * RenderWhenVisible — defers mounting children until the container enters the viewport.\n *\n * Children are NOT in the React tree at all until the Intersection Observer fires,\n * so no effects, API calls, or renders happen for off-screen sections.\n * Once rendered, children stay mounted permanently (no re-unmount on scroll away).\n *\n * The `estimatedHeight` prop prevents the zero-height collapse problem: without it\n * every unrendered section stacks at the top with 0px height, causing all observers\n * to fire at once on mount. It applies as a min-height until the children have\n * actually committed — through the Suspense window too, since a custom placeholder\n * may be shorter than the estimate. After that the section's height is owned by its\n * content, so shorter blocks don't leave reserved dead space below them.\n */\nexport const RenderWhenVisible = memo(function RenderWhenVisible({\n children,\n rootMargin = '50px',\n placeholder,\n className,\n id,\n estimatedHeight = '400px',\n renderOnMount = false,\n blockIndex,\n liveBlockId,\n}: RenderWhenVisibleProps) {\n const ref = useRef<HTMLElement>(null);\n const [visible, setVisible] = useState(renderOnMount);\n const [mounted, setMounted] = useState(false);\n // `renderOnMount` can turn on after mount (a block moved up into the first\n // screen): show it now, and keep it shown like any revealed block.\n if (renderOnMount && !visible) setVisible(true);\n\n useEffect(() => {\n if (visible) return;\n const el = ref.current;\n if (!el) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n // A busy main thread (e.g. mounting a page while the user is already\n // scrolling) batches entries; reading only the first drops a\n // [false, true] pair and the observer never fires again.\n if (entries.some((entry) => entry.isIntersecting)) {\n setVisible(true);\n observer.disconnect();\n }\n },\n { rootMargin }\n );\n\n observer.observe(el);\n\n return () => observer.disconnect();\n }, [visible, rootMargin]);\n\n const fallback = placeholder ?? <DefaultSkeleton height={estimatedHeight} />;\n\n return (\n <section\n ref={!visible ? ref : undefined}\n className={className}\n id={id}\n data-home-block={blockIndex}\n data-live-block={liveBlockId}\n style={{ minHeight: mounted ? undefined : estimatedHeight }}\n >\n {visible ? (\n <Suspense fallback={fallback}>\n {children}\n <MarkMounted onMount={setMounted} />\n </Suspense>\n ) : (\n fallback\n )}\n </section>\n );\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LazyBreadcrumb } from './chunk-
|
|
1
|
+
import { LazyBreadcrumb } from './chunk-E5OVMQIA.js';
|
|
2
2
|
import './chunk-AXW67SY7.js';
|
|
3
3
|
import './chunk-BYMOPN2S.js';
|
|
4
4
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -14,5 +14,5 @@ function ReviewsPage({ page }) {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
export { ReviewsPage };
|
|
17
|
-
//# sourceMappingURL=ReviewsPage-
|
|
18
|
-
//# sourceMappingURL=ReviewsPage-
|
|
17
|
+
//# sourceMappingURL=ReviewsPage-5L6DLPN2.js.map
|
|
18
|
+
//# sourceMappingURL=ReviewsPage-5L6DLPN2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/testimonials/ReviewsPage.tsx"],"names":[],"mappings":";;;;;;;;AAIO,SAAS,WAAA,CAAY,EAAE,IAAA,EAAK,EAAqB;AACtD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,kBAAW,IAAA,EAAY,CAAA;AAAA,wBACvB,gBAAA,EAAA,EAAiB;AAAA,GAAA,EACpB,CAAA;AAEJ","file":"ReviewsPage-
|
|
1
|
+
{"version":3,"sources":["../src/routes/testimonials/ReviewsPage.tsx"],"names":[],"mappings":";;;;;;;;AAIO,SAAS,WAAA,CAAY,EAAE,IAAA,EAAK,EAAqB;AACtD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EACb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,kBAAW,IAAA,EAAY,CAAA;AAAA,wBACvB,gBAAA,EAAA,EAAiB;AAAA,GAAA,EACpB,CAAA;AAEJ","file":"ReviewsPage-5L6DLPN2.js","sourcesContent":["import { SallaReviewsPage } from '@salla.sa/twilight-components-react/reviews-page';\nimport type { ReviewsPageProps } from './types';\nimport { Breadcrumb } from '../../components/common';\n\nexport function ReviewsPage({ page }: ReviewsPageProps) {\n return (\n <div className=\"container mb-20\">\n <Breadcrumb page={page} />\n <SallaReviewsPage />\n </div>\n );\n}\n"]}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import './chunk-QTRV6N64.js';
|
|
2
|
+
import './chunk-PDIFXQDX.js';
|
|
3
|
+
import './chunk-7IQCF6GU.js';
|
|
4
|
+
import './chunk-WZOWGICV.js';
|
|
4
5
|
import './chunk-D6XHL6VQ.js';
|
|
5
6
|
import './chunk-JYV25VNZ.js';
|
|
6
|
-
import './chunk-
|
|
7
|
+
import './chunk-EL6IDB5U.js';
|
|
7
8
|
import './chunk-OXMUPNMH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
+
import './chunk-MWOP57ZR.js';
|
|
9
10
|
import './chunk-VVZNW5CB.js';
|
|
10
11
|
import './chunk-5FJFN3IW.js';
|
|
11
12
|
import './chunk-GD26FI4J.js';
|
|
12
13
|
import './chunk-OM2GRPDH.js';
|
|
13
|
-
import './chunk-
|
|
14
|
+
import './chunk-Y57KRLGY.js';
|
|
14
15
|
import './chunk-OUW6WESU.js';
|
|
15
16
|
import './chunk-BK5TBUGG.js';
|
|
16
17
|
import './chunk-HI5V5X3S.js';
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-F2MDQCTH.js';
|
|
19
|
+
import './chunk-LCBETTJI.js';
|
|
19
20
|
import './chunk-MVT5AF2A.js';
|
|
20
21
|
import './chunk-Z653O7MX.js';
|
|
21
22
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -26,15 +27,15 @@ import './chunk-7V36I5GT.js';
|
|
|
26
27
|
import './chunk-6WI7R2BD.js';
|
|
27
28
|
import './chunk-JGVEGQHJ.js';
|
|
28
29
|
import './chunk-OAMIDZKW.js';
|
|
29
|
-
import './chunk-
|
|
30
|
+
import './chunk-ALHMPT6S.js';
|
|
30
31
|
import './chunk-OQIIJRAS.js';
|
|
31
32
|
import './chunk-V2ZDTY6H.js';
|
|
32
|
-
import './chunk-
|
|
33
|
+
import './chunk-6JS7UZ3S.js';
|
|
33
34
|
import './chunk-5XDPAKF5.js';
|
|
34
35
|
import './chunk-GCPEMNSU.js';
|
|
35
|
-
import './chunk-
|
|
36
|
+
import './chunk-6BQN4JKH.js';
|
|
36
37
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
37
|
-
import './chunk-
|
|
38
|
+
import './chunk-E5OVMQIA.js';
|
|
38
39
|
import './chunk-AXW67SY7.js';
|
|
39
40
|
import './chunk-BYMOPN2S.js';
|
|
40
41
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -118,5 +119,5 @@ function SeoCartWidget({ cart, step = 1 }) {
|
|
|
118
119
|
}
|
|
119
120
|
|
|
120
121
|
export { SeoCartWidget };
|
|
121
|
-
//# sourceMappingURL=SeoCartWidget-
|
|
122
|
-
//# sourceMappingURL=SeoCartWidget-
|
|
122
|
+
//# sourceMappingURL=SeoCartWidget-XU5LKBMF.js.map
|
|
123
|
+
//# sourceMappingURL=SeoCartWidget-XU5LKBMF.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/analytics/gtm.ts","../src/components/cart/SeoCartWidget.tsx"],"names":[],"mappings":"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","file":"SeoCartWidget-XU5LKBMF.js","sourcesContent":["import type { Cart, CartItem } from '../../types';\n\n// ─── Payload Types ───────────────────────────────────────────────────────────\n\nexport interface GtmCheckoutProduct {\n id: number;\n name: string;\n price: number;\n quantity: number;\n}\n\nexport interface GtmCheckoutEvent {\n event: 'checkout';\n ecommerce: {\n checkout: {\n actionField: { step: 1 | 2 | 3 };\n products: GtmCheckoutProduct[];\n cart_total: number;\n currency: string;\n };\n };\n}\n\n// ─── Helpers ─────────────────────────────────────────────────────────────────\n\nfunction getPriceAmount(value: CartItem['price']): number {\n if (typeof value === 'number') return value;\n return value.amount;\n}\n\nfunction getTotalAmount(value: Cart['total']): number {\n if (typeof value === 'number') return value;\n return parseFloat(value) || 0;\n}\n\n/**\n * Maps `Cart.items` to the GTM product array format.\n *\n * Only available items are included — mirrors PHP `$cartService->getAvailableItems()`.\n */\nexport function mapCartItemsToProducts(items: CartItem[]): GtmCheckoutProduct[] {\n return items\n .filter((item) => item.is_available)\n .map((item) => ({\n id: item.product_id,\n name: item.product_name,\n price: getPriceAmount(item.price),\n quantity: item.quantity,\n }));\n}\n\n// ─── Main Utility ─────────────────────────────────────────────────────────────\n\n/**\n * Pushes a GTM `checkout` event to `window.dataLayer`.\n *\n * Safe to call in SSR environments — guards against `typeof window`.\n * Initialises `window.dataLayer` if GTM hasn't done so yet.\n *\n * @param step Checkout funnel step (1 = cart, 2 = shipping, 3 = payment)\n * @param cart Current cart data from the Twilight loader\n * @param currencyCode ISO 4217 currency code, e.g. \"SAR\"\n */\nexport function pushCheckoutEvent(step: 1 | 2 | 3, cart: Cart, currencyCode: string): void {\n if (typeof window === 'undefined') return;\n\n window.dataLayer = window.dataLayer ?? [];\n\n const payload: GtmCheckoutEvent = {\n event: 'checkout',\n ecommerce: {\n checkout: {\n actionField: { step },\n products: mapCartItemsToProducts(cart.items),\n cart_total: getTotalAmount(cart.total),\n currency: currencyCode,\n },\n },\n };\n\n window.dataLayer.push(payload);\n}\n","import { useEffect } from 'react';\nimport { useTwilight } from '../../providers/TwilightProvider';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { Cart } from '../../types';\nimport { pushCheckoutEvent } from '../../lib/analytics/gtm';\nimport { onSallaEvent } from '../../utils/sdk-helpers';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface SeoCartWidgetProps {\n /**\n * Cart data from the TanStack Router loader — no extra fetch needed.\n */\n cart: Cart;\n /**\n * Current checkout funnel step.\n * Defaults to `1` (cart view) — CartPage always passes this default.\n * The widget internally listens to Salla SDK events to promote to 2 / 3.\n */\n step?: 1 | 2 | 3;\n}\n\n// ─── Page title translation keys (mirrors PHP SeoCartWidget::$pageTitle) ─────\n\n/**\n * Matches the PHP backend exactly:\n * ```php\n * protected $pageTitle = [\n * self::STEP_CART => 'common.titles.cart',\n * self::STEP_SHIPPING => 'common.titles.shipping',\n * self::STEP_PAYMENT => 'common.titles.checkout',\n * ];\n * ```\n */\nconst PAGE_TITLE_KEYS: Record<1 | 2 | 3, string> = {\n 1: 'common.titles.cart',\n 2: 'common.titles.shipping',\n 3: 'common.titles.checkout',\n};\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\n/**\n * SeoCartWidget — Null-rendering analytics side-effect component.\n *\n * Responsibilities:\n * 1. Fires a GTM `checkout` event (step 1) on cart page load.\n * 2. Listens to Salla SDK checkout overlay events to fire steps 2 & 3.\n * 3. Updates `document.title` to reflect the cart context.\n *\n * Architecture:\n * - Lives in `theme-engine` so all themes using the engine get GTM tracking.\n * - Mounted directly inside `CartPage`, which already has loader data.\n * - `window.dataLayer` must be initialised by the store's GTM embed snippet;\n * the widget initialises it as a safe-guard but does NOT inject GTM itself.\n * - Must be mounted inside `<TwilightProvider>` (reads `currency` from context).\n *\n * @example\n * // In CartPage:\n * <SeoCartWidget cart={cart} />\n */\nexport function SeoCartWidget({ cart, step = 1 }: SeoCartWidgetProps) {\n const { store, currency } = useTwilight();\n const { t } = useTranslation();\n const currencyCode = currency?.code ?? 'SAR';\n\n // ── Fire GTM checkout event for step 1 (or whichever step is passed) ────────\n useEffect(() => {\n pushCheckoutEvent(step, cart, currencyCode);\n // Re-fire if the cart id, contents, or currency changes\n }, [step, cart, currencyCode]);\n\n // ── Subscribe to Salla SDK checkout step events (steps 2 & 3) ──────────────\n // Fires GTM events when the user advances through the checkout overlay.\n useEffect(() => {\n const onShipping = () => pushCheckoutEvent(2, cart, currencyCode);\n const onPayment = () => pushCheckoutEvent(3, cart, currencyCode);\n\n const offShipping = onSallaEvent('checkout::step.shipping', onShipping);\n const offPayment = onSallaEvent('checkout::step.payment', onPayment);\n\n return () => {\n offShipping();\n offPayment();\n };\n }, [cart, currencyCode]);\n\n // ── Update document title — mirrors PHP SeoCartWidget::$pageTitle ───────────\n // Step 1 → 'common.titles.cart' (e.g. \"Cart\")\n // Step 2 → 'common.titles.shipping' (e.g. \"Shipping\")\n // Step 3 → 'common.titles.checkout' (e.g. \"Checkout\")\n useEffect(() => {\n const storeTitle = store.meta?.title || store.name;\n const stepTitle = t(PAGE_TITLE_KEYS[step], PAGE_TITLE_KEYS[step]);\n document.title = storeTitle ? `${stepTitle} - ${storeTitle}` : stepTitle;\n }, [step, store.meta?.title, store.name, t]);\n\n return null;\n}\n"]}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import './chunk-QTRV6N64.js';
|
|
2
|
+
import './chunk-PDIFXQDX.js';
|
|
3
|
+
import './chunk-7IQCF6GU.js';
|
|
4
|
+
import './chunk-WZOWGICV.js';
|
|
4
5
|
import './chunk-D6XHL6VQ.js';
|
|
5
6
|
import './chunk-JYV25VNZ.js';
|
|
6
|
-
import './chunk-
|
|
7
|
+
import './chunk-EL6IDB5U.js';
|
|
7
8
|
import './chunk-OXMUPNMH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
+
import './chunk-MWOP57ZR.js';
|
|
9
10
|
import './chunk-VVZNW5CB.js';
|
|
10
11
|
import './chunk-5FJFN3IW.js';
|
|
11
12
|
import './chunk-GD26FI4J.js';
|
|
12
13
|
import './chunk-OM2GRPDH.js';
|
|
13
|
-
import './chunk-
|
|
14
|
+
import './chunk-Y57KRLGY.js';
|
|
14
15
|
import './chunk-OUW6WESU.js';
|
|
15
16
|
import './chunk-BK5TBUGG.js';
|
|
16
17
|
import './chunk-HI5V5X3S.js';
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-F2MDQCTH.js';
|
|
19
|
+
import './chunk-LCBETTJI.js';
|
|
19
20
|
import './chunk-MVT5AF2A.js';
|
|
20
21
|
import './chunk-Z653O7MX.js';
|
|
21
22
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -26,15 +27,15 @@ import './chunk-7V36I5GT.js';
|
|
|
26
27
|
import './chunk-6WI7R2BD.js';
|
|
27
28
|
import './chunk-JGVEGQHJ.js';
|
|
28
29
|
import './chunk-OAMIDZKW.js';
|
|
29
|
-
import './chunk-
|
|
30
|
+
import './chunk-ALHMPT6S.js';
|
|
30
31
|
import './chunk-OQIIJRAS.js';
|
|
31
32
|
import './chunk-V2ZDTY6H.js';
|
|
32
|
-
import './chunk-
|
|
33
|
+
import './chunk-6JS7UZ3S.js';
|
|
33
34
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
34
35
|
import './chunk-GCPEMNSU.js';
|
|
35
|
-
import './chunk-
|
|
36
|
+
import './chunk-6BQN4JKH.js';
|
|
36
37
|
import './chunk-TYNZ5B2B.js';
|
|
37
|
-
import './chunk-
|
|
38
|
+
import './chunk-E5OVMQIA.js';
|
|
38
39
|
import './chunk-AXW67SY7.js';
|
|
39
40
|
import './chunk-BYMOPN2S.js';
|
|
40
41
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -62,5 +63,5 @@ function SettingsPage(_props) {
|
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
export { SettingsPage };
|
|
65
|
-
//# sourceMappingURL=SettingsPage-
|
|
66
|
-
//# sourceMappingURL=SettingsPage-
|
|
66
|
+
//# sourceMappingURL=SettingsPage-A2AI5CWI.js.map
|
|
67
|
+
//# sourceMappingURL=SettingsPage-A2AI5CWI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/account/settings/SettingsPage.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIO,SAAS,aAAa,MAAA,EAA2B;AACtD,EAAA,uBACE,IAAA,CAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,yBAAA,EAA0B,CAAA;AAAA,wBACxC,iBAAA,EAAA,EAAkB,CAAA;AAAA,oBACnB,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,uBAAA,EAAwB;AAAA,GAAA,EACzC,CAAA;AAEJ","file":"SettingsPage-A2AI5CWI.js","sourcesContent":["import { SallaUserSettings } from '@salla.sa/twilight-components-react/user-settings';\nimport { HookSlot } from '../../../hooks';\nimport type { SettingsPageProps } from './types';\n\nexport function SettingsPage(_props: SettingsPageProps) {\n return (\n <>\n <HookSlot name=\"customer:settings.start\" />\n <SallaUserSettings />\n <HookSlot name=\"customer:settings.end\" />\n </>\n );\n}\n"]}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
export { StoreClosedNotification } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
export { StoreClosedNotification } from './chunk-BHCKUER2.js';
|
|
2
|
+
import './chunk-QTRV6N64.js';
|
|
3
|
+
import './chunk-PDIFXQDX.js';
|
|
4
|
+
import './chunk-7IQCF6GU.js';
|
|
5
|
+
import './chunk-WZOWGICV.js';
|
|
5
6
|
import './chunk-D6XHL6VQ.js';
|
|
6
7
|
import './chunk-JYV25VNZ.js';
|
|
7
|
-
import './chunk-
|
|
8
|
+
import './chunk-EL6IDB5U.js';
|
|
8
9
|
import './chunk-OXMUPNMH.js';
|
|
9
|
-
import './chunk-
|
|
10
|
+
import './chunk-MWOP57ZR.js';
|
|
10
11
|
import './chunk-VVZNW5CB.js';
|
|
11
12
|
import './chunk-5FJFN3IW.js';
|
|
12
13
|
import './chunk-GD26FI4J.js';
|
|
13
14
|
import './chunk-OM2GRPDH.js';
|
|
14
|
-
import './chunk-
|
|
15
|
+
import './chunk-Y57KRLGY.js';
|
|
15
16
|
import './chunk-OUW6WESU.js';
|
|
16
17
|
import './chunk-BK5TBUGG.js';
|
|
17
18
|
import './chunk-HI5V5X3S.js';
|
|
18
|
-
import './chunk-
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-F2MDQCTH.js';
|
|
20
|
+
import './chunk-LCBETTJI.js';
|
|
20
21
|
import './chunk-MVT5AF2A.js';
|
|
21
22
|
import './chunk-Z653O7MX.js';
|
|
22
23
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -27,15 +28,15 @@ import './chunk-7V36I5GT.js';
|
|
|
27
28
|
import './chunk-6WI7R2BD.js';
|
|
28
29
|
import './chunk-JGVEGQHJ.js';
|
|
29
30
|
import './chunk-OAMIDZKW.js';
|
|
30
|
-
import './chunk-
|
|
31
|
+
import './chunk-ALHMPT6S.js';
|
|
31
32
|
import './chunk-OQIIJRAS.js';
|
|
32
33
|
import './chunk-V2ZDTY6H.js';
|
|
33
|
-
import './chunk-
|
|
34
|
+
import './chunk-6JS7UZ3S.js';
|
|
34
35
|
import './chunk-5XDPAKF5.js';
|
|
35
36
|
import './chunk-GCPEMNSU.js';
|
|
36
|
-
import './chunk-
|
|
37
|
+
import './chunk-6BQN4JKH.js';
|
|
37
38
|
import './chunk-TYNZ5B2B.js';
|
|
38
|
-
import './chunk-
|
|
39
|
+
import './chunk-E5OVMQIA.js';
|
|
39
40
|
import './chunk-AXW67SY7.js';
|
|
40
41
|
import './chunk-BYMOPN2S.js';
|
|
41
42
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -51,5 +52,5 @@ import './chunk-7VNVCHID.js';
|
|
|
51
52
|
import './chunk-T72DAX7R.js';
|
|
52
53
|
import './chunk-DF6FBKDN.js';
|
|
53
54
|
import './chunk-DGUM43GV.js';
|
|
54
|
-
//# sourceMappingURL=StoreClosedNotification-
|
|
55
|
-
//# sourceMappingURL=StoreClosedNotification-
|
|
55
|
+
//# sourceMappingURL=StoreClosedNotification-C6EZSOQF.js.map
|
|
56
|
+
//# sourceMappingURL=StoreClosedNotification-C6EZSOQF.js.map
|
package/dist/{StoreClosedNotification-MJQT66GR.js.map → StoreClosedNotification-C6EZSOQF.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"StoreClosedNotification-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"StoreClosedNotification-C6EZSOQF.js"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useComments } from './chunk-BK5TBUGG.js';
|
|
2
2
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
3
|
-
import { LazyBreadcrumb } from './chunk-
|
|
3
|
+
import { LazyBreadcrumb } from './chunk-E5OVMQIA.js';
|
|
4
4
|
import './chunk-AXW67SY7.js';
|
|
5
5
|
import './chunk-BYMOPN2S.js';
|
|
6
6
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -77,5 +77,5 @@ function TestimonialsPage({ page }) {
|
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
export { TestimonialsPage };
|
|
80
|
-
//# sourceMappingURL=TestimonialsPage-
|
|
81
|
-
//# sourceMappingURL=TestimonialsPage-
|
|
80
|
+
//# sourceMappingURL=TestimonialsPage-ZO6OIZMX.js.map
|
|
81
|
+
//# sourceMappingURL=TestimonialsPage-ZO6OIZMX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/testimonials/TestimonialsPage.tsx"],"names":[],"mappings":"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","file":"TestimonialsPage-
|
|
1
|
+
{"version":3,"sources":["../src/routes/testimonials/TestimonialsPage.tsx"],"names":[],"mappings":"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","file":"TestimonialsPage-ZO6OIZMX.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { SallaComments } from '@salla.sa/twilight-components-react/comments';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useComments } from '../../hooks/useComments';\nimport type { TestimonialsPageProps } from './types';\nimport { Breadcrumb } from '../../components/common';\n\nconst buildSortOptions = (t: (key: string, fb: string) => string) => [\n { id: 'latest', label: t('pages.testimonials.sort_by_date_desc', 'Latest') },\n { id: 'oldest', label: t('pages.testimonials.sort_by_date_asc', 'Oldest') },\n {\n id: 'top_rating',\n label: t('pages.testimonials.sort_by_rating_desc', 'Top rated'),\n },\n {\n id: 'bottom_rating',\n label: t('pages.testimonials.sort_by_rating_asc', 'Low rated'),\n },\n];\n\nexport function TestimonialsPage({ page }: TestimonialsPageProps) {\n const { t } = useTranslation();\n const { commentsKey } = useComments();\n\n // Sync sort state with URL\n const [selectedSort, setSelectedSort] = useState(() => {\n const params = new URLSearchParams(window.location.search);\n return params.get('sort') || 'latest';\n });\n\n // Update URL when sort changes\n useEffect(() => {\n const url = new URL(window.location.href);\n url.searchParams.set('sort', selectedSort);\n window.history.replaceState(null, '', url.toString());\n }, [selectedSort]);\n\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n\n <div className=\"flex justify-center\">\n <div className=\"w-full lg:w-10/12 bg-white rounded p-6 lg:p-8 mt-4 lg:mt-12\">\n <div className=\"mb-4 sm:mb-6 flex justify-between items-center\">\n <h1 className=\"font-bold text-2xl\">{page.title}</h1>\n <div className=\"flex items-center\">\n <label\n className=\"hidden sm:block rtl:ml-3 ltr:mr-3 whitespace-nowrap\"\n htmlFor=\"testimonials-filter\"\n >\n {t('pages.categories.sorting', 'Sort by')}\n </label>\n <select\n id=\"testimonials-filter\"\n className=\"form-input pt-0 pb-1 rtl:pl-10 ltr:pr-10 bg-white text-gray-900\"\n value={selectedSort}\n onChange={(e) => setSelectedSort(e.target.value)}\n >\n {buildSortOptions(t).map((opt) => (\n <option key={opt.id} value={opt.id}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n </div>\n\n {/* Key prop forces reload when sort changes or new comment added */}\n <SallaComments\n key={`${selectedSort}-${commentsKey}`}\n testimonials\n // drifted wrapper types require itemId; testimonials mode has none\n itemId={undefined as never}\n sort={selectedSort as any}\n />\n </div>\n </div>\n </div>\n );\n}\n"]}
|
|
@@ -1,21 +1,22 @@
|
|
|
1
|
-
import { usePageConfig } from './chunk-
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
import { usePageConfig } from './chunk-QTRV6N64.js';
|
|
2
|
+
import './chunk-PDIFXQDX.js';
|
|
3
|
+
import './chunk-7IQCF6GU.js';
|
|
4
|
+
import './chunk-WZOWGICV.js';
|
|
4
5
|
import './chunk-D6XHL6VQ.js';
|
|
5
6
|
import './chunk-JYV25VNZ.js';
|
|
6
|
-
import './chunk-
|
|
7
|
+
import './chunk-EL6IDB5U.js';
|
|
7
8
|
import './chunk-OXMUPNMH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
+
import './chunk-MWOP57ZR.js';
|
|
9
10
|
import './chunk-VVZNW5CB.js';
|
|
10
11
|
import './chunk-5FJFN3IW.js';
|
|
11
12
|
import './chunk-GD26FI4J.js';
|
|
12
13
|
import './chunk-OM2GRPDH.js';
|
|
13
|
-
import './chunk-
|
|
14
|
+
import './chunk-Y57KRLGY.js';
|
|
14
15
|
import './chunk-OUW6WESU.js';
|
|
15
16
|
import './chunk-BK5TBUGG.js';
|
|
16
17
|
import './chunk-HI5V5X3S.js';
|
|
17
|
-
import './chunk-
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-F2MDQCTH.js';
|
|
19
|
+
import './chunk-LCBETTJI.js';
|
|
19
20
|
import './chunk-MVT5AF2A.js';
|
|
20
21
|
import './chunk-Z653O7MX.js';
|
|
21
22
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -26,15 +27,15 @@ import './chunk-7V36I5GT.js';
|
|
|
26
27
|
import './chunk-6WI7R2BD.js';
|
|
27
28
|
import './chunk-JGVEGQHJ.js';
|
|
28
29
|
import './chunk-OAMIDZKW.js';
|
|
29
|
-
import './chunk-
|
|
30
|
+
import './chunk-ALHMPT6S.js';
|
|
30
31
|
import './chunk-OQIIJRAS.js';
|
|
31
32
|
import './chunk-V2ZDTY6H.js';
|
|
32
|
-
import './chunk-
|
|
33
|
+
import './chunk-6JS7UZ3S.js';
|
|
33
34
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
34
35
|
import './chunk-GCPEMNSU.js';
|
|
35
|
-
import './chunk-
|
|
36
|
+
import './chunk-6BQN4JKH.js';
|
|
36
37
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
37
|
-
import './chunk-
|
|
38
|
+
import './chunk-E5OVMQIA.js';
|
|
38
39
|
import { Link } from './chunk-AXW67SY7.js';
|
|
39
40
|
import './chunk-BYMOPN2S.js';
|
|
40
41
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -258,5 +259,5 @@ function ThankYouPage({
|
|
|
258
259
|
}
|
|
259
260
|
|
|
260
261
|
export { ThankYouPage };
|
|
261
|
-
//# sourceMappingURL=ThankYouPage-
|
|
262
|
-
//# sourceMappingURL=ThankYouPage-
|
|
262
|
+
//# sourceMappingURL=ThankYouPage-RZFWZZXI.js.map
|
|
263
|
+
//# sourceMappingURL=ThankYouPage-RZFWZZXI.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/thank-you/ThankYouPage.tsx"],"names":[],"mappings":"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","file":"ThankYouPage-RZFWZZXI.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useCopyToClipboard } from '@uidotdev/usehooks';\nimport { SallaButton } from '@salla.sa/twilight-components-react/button';\nimport { SallaNextOrderCoupon } from '@salla.sa/twilight-components-react/next-order-coupon';\nimport { SallaOrderBranch } from '@salla.sa/twilight-components-react/order-branch';\nimport { Link } from '../../components/common';\nimport { HookSlot, usePageConfig } from '../../hooks';\nimport type { ThankYouPageProps } from './types';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport confettiImage from './confetti.svg';\nimport { onSallaEvent } from '../../utils/sdk-helpers';\n\nconst EMPTY_MESSAGES: NonNullable<ThankYouPageProps['messages']> = [];\n\nexport function ThankYouPage({\n page,\n order,\n thank_you_title,\n messages = EMPTY_MESSAGES,\n}: ThankYouPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n // `<salla-order-branch>` reads the order id from `salla.config.page.id` (see OrderSinglePage).\n usePageConfig(page);\n const title =\n thank_you_title ?? t('pages.thank_you.hero_title', 'Thank you for shopping with us! 😊');\n const [invoiceSent, setInvoiceSent] = useState(order?.email_sent ?? false);\n const [invoiceMessage, setInvoiceMessage] = useState<string | null>(null);\n const [, copyToClipboard] = useCopyToClipboard();\n\n // Listen for invoice sent event (matches thankyou.js)\n useEffect(() => {\n const handleInvoiceSent = (res: { data?: { message?: string } }) => {\n setInvoiceMessage(\n res.data?.message || t('pages.thank_you.invoice_sent_success', 'Invoice sent successfully')\n );\n setInvoiceSent(true);\n };\n const listener = handleInvoiceSent as (...args: unknown[]) => void;\n\n return onSallaEvent('order::invoice.sent', listener);\n }, [t]);\n\n return (\n <>\n <HookSlot name=\"thank-you:start\" />\n\n <div className=\"h-52 -mb-52 w-full bg-primary rtl:right-0 ltr:left-0 relative -z-1\">\n <svg\n className=\"text-primary absolute top-full\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 1440 320\"\n >\n <path\n className=\"fill-current\"\n fillOpacity=\"1\"\n d=\"M0,96L120,112C240,128,480,160,720,165.3C960,171,1200,149,1320,138.7L1440,128L1440,0L1320,0C1200,0,960,0,720,0C480,0,240,0,120,0L0,0Z\"\n ></path>\n </svg>\n </div>\n\n <div className=\"container mb-20\">\n <nav className=\"w-full py-5\">\n <ol className=\"list-reset flex items-center text-sm text-primary-reverse\">\n <li>\n <Link to=\"/\" className=\"fix-align text-primary-reverse\">\n {t('common.titles.home', 'Home')}\n </Link>\n </li>\n <li>\n <i className=\"sicon-keyboard_arrow_left mx-2\"></i>\n </li>\n <li>\n <span className=\"fix-align\">{title}</span>\n </li>\n </ol>\n </nav>\n\n <div className=\"bg-white p-4 md:p-8 rounded-md mb-6 md:mb-8\">\n <div className=\"flex flex-col items-center pt-16 pb-10\">\n <img src={confettiImage} alt={title} className=\"size-[140px] mb-8\" />\n <h1 className=\"font-bold text-lg mb-2.5\">{title}</h1>\n <p className=\"text-gray-500 max-w-xs text-center text-sm leading-6 mb-2.5\">\n {t(\n 'pages.thank_you.description',\n 'Your order has been received and will be reviewed and confirmed shortly.'\n )}\n </p>\n {order && (\n <>\n <p className=\"text-gray-500 max-w-xs text-center text-sm leading-6 mb-6\">\n {t('pages.thank_you.order_id_label', 'Order ID')}{' '}\n <SallaButton\n className=\"relative\"\n onClick={() => copyToClipboard(String(order.reference_id))}\n color=\"dark\"\n shape=\"link\"\n >\n <span>#{order.reference_id}</span>\n <i className=\"copy-icon sicon-swap-stroke pointer-events-none rtl:mr-1 ltr:ml-1\"></i>\n </SallaButton>\n </p>\n <Link\n to={`/account/orders/${order.id}`}\n className=\"bg-primary text-white text-sm font-bold h-10 px-4 rounded-md flex items-center justify-center gap-1.5\"\n >\n <i className=\"sicon-newspaper rtl:ml-1 ltr:mr-1\"></i>\n {t('pages.thank_you.view_order_details', 'View Order Details')}\n </Link>\n </>\n )}\n </div>\n\n {(order as { instructions?: string } | undefined)?.instructions && (\n <article\n className=\"article article--main article--small text-center\"\n dangerouslySetInnerHTML={{\n __html: (order as { instructions?: string }).instructions ?? '',\n }}\n />\n )}\n\n {messages.map((message) => (\n <div\n key={message}\n className=\"flex flex-col items-center pt-1 pb-10 justify-start rtl:space-x-reverse space-x-2\"\n >\n <span className=\"font-bold\">{message}</span>\n </div>\n ))}\n\n <HookSlot name=\"thank-you:items.start\" />\n <HookSlot name=\"thank-you:items.end\" />\n </div>\n\n {/* Next-order coupon and pickup branch — each renders nothing when it doesn't apply */}\n <SallaNextOrderCoupon />\n <SallaOrderBranch />\n\n <div className=\"lg:flex rtl:space-x-reverse lg:space-x-8\">\n {invoiceSent ? (\n <div className=\"duration-500 hover:shadow-default flex-1 bg-white p-8 rounded-md mb-6 md:mb-10 flex flex-col items-center justify-center\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">\n {t('pages.thank_you.email_sent_to', 'Email sent to')}\n </p>\n <b className=\"text-sm\">{order?.customer?.email}</b>\n {invoiceMessage && <p className=\"text-sm text-green-600 mt-2\">{invoiceMessage}</p>}\n </div>\n ) : (\n <div\n id=\"invoice-form\"\n className={invoiceMessage ? 'thankyou-block sent' : 'thankyou-block'}\n >\n {invoiceMessage ? (\n <div className=\"text-center\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5 mx-auto\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm\" dangerouslySetInnerHTML={{ __html: invoiceMessage }} />\n </div>\n ) : (\n <>\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-newspaper-alt text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">\n {t('pages.thank_you.resend_invoice', 'Resend invoice email')}\n </p>\n <form\n onSubmit={(e) => {\n e.preventDefault();\n window.salla?.form.onSubmit('order.sendInvoice', e);\n }}\n >\n <div className=\"flex max-w-3xl w-full\">\n <input\n type=\"email\"\n className=\"form-input rtl:rounded-l-none ltr:rounded-r-none rtl:border-l-0 ltr:border-r-0 !w-[160px] sm:!w-[220px]\"\n placeholder=\"your@email.com\"\n required\n name=\"email\"\n />\n <SallaButton\n type=\"submit\"\n loaderPosition=\"center\"\n className=\"rtl:rounded-r-none ltr:rounded-l-none lg:w-24 h-10\"\n >\n <span className=\"btn__text\">{t('pages.thank_you.send', 'Send')}</span>\n </SallaButton>\n </div>\n </form>\n </>\n )}\n </div>\n )}\n\n <div className=\"thankyou-block\">\n <div className=\"bg-gray-100 rounded-icon w-12 h-12 mb-2.5\">\n <i className=\"sicon-mail-letter text-xl\"></i>\n </div>\n <p className=\"text-sm mb-2.5\">{t('pages.thank_you.support', 'Support')}</p>\n\n <div className=\"flex rtl:space-x-reverse space-x-6\">\n {store.contacts.mobile && (\n <div className=\"text-sm unicode flex items-center\">\n <i className=\"sicon-phone\"></i>\n <a\n href={`tel:${store.contacts.mobile}`}\n className=\"hover:text-primary transition\"\n >\n <b className=\"unicode mx-1.5\">{store.contacts.mobile}</b>\n </a>\n </div>\n )}\n\n {store.contacts.whatsapp && (\n <div className=\"text-sm unicode flex items-center\">\n <i className=\"sicon-whatsapp\"></i>\n <a\n href={`https://wa.me/${store.contacts.whatsapp.replace(/[\\s+-]/g, '')}`}\n className=\"hover:text-primary transition\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <b className=\"unicode mx-1.5\">{store.contacts.whatsapp}</b>\n </a>\n </div>\n )}\n </div>\n </div>\n </div>\n\n <HookSlot name=\"thank-you:end\" />\n </div>\n </>\n );\n}\n"]}
|
|
@@ -1,22 +1,23 @@
|
|
|
1
|
-
import { wallet } from './chunk-
|
|
2
|
-
import { useMoney } from './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
1
|
+
import { wallet } from './chunk-PO6PTKMN.js';
|
|
2
|
+
import { useMoney } from './chunk-QTRV6N64.js';
|
|
3
|
+
import './chunk-PDIFXQDX.js';
|
|
4
|
+
import './chunk-7IQCF6GU.js';
|
|
5
|
+
import './chunk-WZOWGICV.js';
|
|
5
6
|
import './chunk-D6XHL6VQ.js';
|
|
6
7
|
import './chunk-JYV25VNZ.js';
|
|
7
|
-
import './chunk-
|
|
8
|
+
import './chunk-EL6IDB5U.js';
|
|
8
9
|
import './chunk-OXMUPNMH.js';
|
|
9
|
-
import './chunk-
|
|
10
|
+
import './chunk-MWOP57ZR.js';
|
|
10
11
|
import './chunk-VVZNW5CB.js';
|
|
11
12
|
import './chunk-5FJFN3IW.js';
|
|
12
13
|
import './chunk-GD26FI4J.js';
|
|
13
14
|
import './chunk-OM2GRPDH.js';
|
|
14
|
-
import './chunk-
|
|
15
|
+
import './chunk-Y57KRLGY.js';
|
|
15
16
|
import './chunk-OUW6WESU.js';
|
|
16
17
|
import './chunk-BK5TBUGG.js';
|
|
17
18
|
import './chunk-HI5V5X3S.js';
|
|
18
|
-
import './chunk-
|
|
19
|
-
import './chunk-
|
|
19
|
+
import './chunk-F2MDQCTH.js';
|
|
20
|
+
import './chunk-LCBETTJI.js';
|
|
20
21
|
import './chunk-MVT5AF2A.js';
|
|
21
22
|
import './chunk-Z653O7MX.js';
|
|
22
23
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -27,15 +28,15 @@ import './chunk-7V36I5GT.js';
|
|
|
27
28
|
import './chunk-6WI7R2BD.js';
|
|
28
29
|
import './chunk-JGVEGQHJ.js';
|
|
29
30
|
import './chunk-OAMIDZKW.js';
|
|
30
|
-
import './chunk-
|
|
31
|
+
import './chunk-ALHMPT6S.js';
|
|
31
32
|
import './chunk-OQIIJRAS.js';
|
|
32
33
|
import './chunk-V2ZDTY6H.js';
|
|
33
|
-
import './chunk-
|
|
34
|
+
import './chunk-6JS7UZ3S.js';
|
|
34
35
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
35
36
|
import './chunk-GCPEMNSU.js';
|
|
36
|
-
import './chunk-
|
|
37
|
+
import './chunk-6BQN4JKH.js';
|
|
37
38
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
38
|
-
import { LazyNoContent } from './chunk-
|
|
39
|
+
import { LazyNoContent } from './chunk-E5OVMQIA.js';
|
|
39
40
|
import './chunk-AXW67SY7.js';
|
|
40
41
|
import './chunk-BYMOPN2S.js';
|
|
41
42
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -200,5 +201,5 @@ function WalletPage({ query, transactions, balance, pagination }) {
|
|
|
200
201
|
}
|
|
201
202
|
|
|
202
203
|
export { WalletPage };
|
|
203
|
-
//# sourceMappingURL=WalletPage-
|
|
204
|
-
//# sourceMappingURL=WalletPage-
|
|
204
|
+
//# sourceMappingURL=WalletPage-BDMVFQ4G.js.map
|
|
205
|
+
//# sourceMappingURL=WalletPage-BDMVFQ4G.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/routes/account/wallet/WalletPage.tsx"],"names":["TransactionRow"],"mappings":"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","file":"WalletPage-BDMVFQ4G.js","sourcesContent":["import { memo, useCallback, useRef } from 'react';\nimport { ItemsList } from '@salla.sa/twilight-components-react';\nimport { wallet } from '../../../api/wallet';\nimport type { TransactionItem } from '../../../api/wallet';\nimport { HookSlot, useMoney } from '../../../hooks';\nimport { useTranslation } from '../../../providers/I18nProvider';\nimport type { WalletPageProps } from './types';\nimport { NoContent } from '../../../components/common';\n\nconst TransactionRow = memo(function TransactionRow({\n transaction,\n}: {\n transaction: TransactionItem;\n}) {\n const { t, locale } = useTranslation();\n const { format: formatMoney } = useMoney();\n\n const formatTimestamp = (ts: number) => {\n if (!ts) return '';\n return new Date(ts * 1000).toLocaleDateString(locale, {\n weekday: 'long',\n year: 'numeric',\n month: 'long',\n day: 'numeric',\n hour: 'numeric',\n });\n };\n\n const actionTypeClass =\n transaction.action_type === 'cashback'\n ? 's-wallet-table-transaction-status-cashback'\n : transaction.action_type === 'refund'\n ? 's-wallet-table-transaction-status-refund'\n : transaction.action_type === 'purchase_by_wallet'\n ? 's-wallet-table-transaction-status-purchase'\n : '';\n\n return (\n <tr className=\"s-wallet-table-tbody-tr s-wallet-table-tbody-tr-shadow animated\">\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.transaction_number')}:</span>\n {transaction.id && <span className=\"hidden md:inline-block\">#{transaction.id}</span>}\n <div className=\"flex items-center md:hidden\">\n {transaction.id && <span>#{transaction.id}</span>}\n </div>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.amount')}:</span>\n <div>{formatMoney(transaction.amount, { type: 'general' })}</div>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.date')}:</span>\n {transaction.created_at ? formatTimestamp(transaction.created_at) : ''}\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.order_no')}:</span>\n <span className=\"rtl:mr-auto ltr:ml-auto md:mx-0\">\n {transaction.order_id && <span>#{transaction.order_id}</span>}\n </span>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.expiry_date')}:</span>\n <span>{transaction.expired_at ? formatTimestamp(transaction.expired_at) : ''}</span>\n </div>\n </td>\n\n <td className=\"s-wallet-table-tbody-tr-td\">\n <div className=\"s-wallet-table-tbody-tr-td-content\">\n <div>\n <span className=\"s-wallet-mobile-title\">{t('pages.wallet.transaction_type')}:</span>\n </div>\n <div className={`s-wallet-table-transaction-status-default ${actionTypeClass}`}>\n {!!transaction.description && (\n <>\n <i\n id={transaction.id.toString()}\n className=\"sicon-information text-lg rtl:ml-4 ltr:mr-4 s-wallet-table-transaction-status-icon-success\"\n />\n <salla-tooltip\n text={transaction.description}\n targetId={transaction.id.toString()}\n />\n </>\n )}\n <span>{transaction.title}</span>\n </div>\n </div>\n </td>\n </tr>\n );\n});\n\nexport function WalletPage({ query, transactions, balance, pagination }: WalletPageProps) {\n const { t } = useTranslation();\n\n const { format: formatMoney } = useMoney();\n\n const nextPageRef = useRef(query.page + 1);\n\n const loader = useCallback(async () => {\n const pageToLoad = nextPageRef.current;\n const result = await wallet.list({ page: pageToLoad });\n\n nextPageRef.current = pageToLoad + 1;\n\n return {\n items: result.items,\n next: result.next,\n };\n }, []);\n\n if (transactions.length === 0) {\n return (\n <>\n <HookSlot name=\"customer:wallet.transactions.start\" />\n <NoContent icon=\"sicon-full-wallet\" message={`${t('pages.wallet.no_transactions')}`} />\n <HookSlot name=\"customer:wallet.transactions.end\" />\n </>\n );\n }\n\n return (\n <>\n <HookSlot name=\"customer:wallet.transactions.start\" />\n <table className=\"s-wallet-table\">\n <tbody className=\"s-wallet-table-tbody\">\n <tr className=\"s-table__tr\">\n <td>\n <div className=\"s-wallet-table-balance-container\">\n <i className=\"s-wallet-table-balance-icon sicon-wallet\" />\n <div>\n <div>{formatMoney(balance, { type: 'general' })}</div>\n <div className=\"font-normal text-gray-400\">{t('pages.wallet.balance')}</div>\n </div>\n </div>\n </td>\n </tr>\n </tbody>\n </table>\n\n <h2 className=\"mt-8\">{t('pages.wallet.title')}</h2>\n <table className=\"s-wallet-table\">\n <thead className=\"s-wallet-table-head\">\n <tr className=\"s-wallet-table-head-tr\">\n <th scope=\"col\">{t('pages.wallet.transaction_number')}</th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.amount')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.date')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.order_no')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.expiry_date')}\n </th>\n <th scope=\"col\" className=\"s-wallet-table-head-tr-th\">\n {t('pages.wallet.transaction_type')}\n </th>\n </tr>\n </thead>\n <tbody className=\"s-wallet-table-tbody\">\n <ItemsList<TransactionItem>\n items={transactions}\n loader={loader}\n mode={pagination.next ? 'infinite' : 'static'}\n itemsAs=\"Fragment\"\n t={(key, fallback) => t(key, fallback || key)}\n >\n {(items) =>\n items.map((transaction) => (\n <TransactionRow key={transaction.id} transaction={transaction} />\n ))\n }\n </ItemsList>\n </tbody>\n </table>\n <HookSlot name=\"customer:wallet.transactions.end\" />\n </>\n );\n}\n"]}
|