@salla.sa/twilight-theme-engine 1.0.139 → 1.0.140
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-QGJ2XVCZ.js → AddToCartForm-EPTN5O3X.js} +3 -3
- package/dist/{AddToCartForm-QGJ2XVCZ.js.map → AddToCartForm-EPTN5O3X.js.map} +1 -1
- package/dist/{BlogAuthorPage-5QGP4RDK.js → BlogAuthorPage-PGFINJSP.js} +16 -16
- package/dist/{BlogAuthorPage-5QGP4RDK.js.map → BlogAuthorPage-PGFINJSP.js.map} +1 -1
- package/dist/{BlogCategoryPage-FH7ASETM.js → BlogCategoryPage-ZVRRHTKJ.js} +16 -16
- package/dist/{BlogCategoryPage-FH7ASETM.js.map → BlogCategoryPage-ZVRRHTKJ.js.map} +1 -1
- package/dist/{BlogPage-HNNR2Q4U.js → BlogPage-5SRGR7NK.js} +14 -14
- package/dist/{BlogPage-HNNR2Q4U.js.map → BlogPage-5SRGR7NK.js.map} +1 -1
- package/dist/{BlogSinglePage-OYXJCOJ2.js → BlogSinglePage-6A5J2BKK.js} +14 -14
- package/dist/{BlogSinglePage-OYXJCOJ2.js.map → BlogSinglePage-6A5J2BKK.js.map} +1 -1
- package/dist/{BlogTagPage-XEHXO4PE.js → BlogTagPage-DAA3ZO76.js} +16 -16
- package/dist/{BlogTagPage-XEHXO4PE.js.map → BlogTagPage-DAA3ZO76.js.map} +1 -1
- package/dist/{BrandsPage-QSTJTEAA.js → BrandsPage-JABKRWP2.js} +15 -15
- package/dist/{BrandsPage-QSTJTEAA.js.map → BrandsPage-JABKRWP2.js.map} +1 -1
- package/dist/{Breadcrumb-7QGTM5S5.js → Breadcrumb-SCJZW4RO.js} +14 -14
- package/dist/{Breadcrumb-7QGTM5S5.js.map → Breadcrumb-SCJZW4RO.js.map} +1 -1
- package/dist/{CartItem-7FNRMTQS.js → CartItem-3KFTPQVF.js} +14 -14
- package/dist/{CartItem-7FNRMTQS.js.map → CartItem-3KFTPQVF.js.map} +1 -1
- package/dist/{CartSummary-A32524GZ.js → CartSummary-I64SD4QX.js} +14 -14
- package/dist/{CartSummary-A32524GZ.js.map → CartSummary-I64SD4QX.js.map} +1 -1
- package/dist/{Copyright-PVSTODJF.js → Copyright-3TREUCAK.js} +3 -3
- package/dist/{Copyright-PVSTODJF.js.map → Copyright-3TREUCAK.js.map} +1 -1
- package/dist/{CustomerLayout-NOHKTFXG.js → CustomerLayout-BH74QWRI.js} +14 -14
- package/dist/{CustomerLayout-NOHKTFXG.js.map → CustomerLayout-BH74QWRI.js.map} +1 -1
- package/dist/{Footer-RDRSICZP.js → Footer-DSSOB3ZW.js} +4 -4
- package/dist/{Footer-RDRSICZP.js.map → Footer-DSSOB3ZW.js.map} +1 -1
- package/dist/{Header-YCS4HJCH.js → Header-UWUS34D6.js} +8 -8
- package/dist/{Header-YCS4HJCH.js.map → Header-UWUS34D6.js.map} +1 -1
- package/dist/{LatestProducts-JEOWAHON.js → LatestProducts-VLSTOKEB.js} +16 -16
- package/dist/{LatestProducts-JEOWAHON.js.map → LatestProducts-VLSTOKEB.js.map} +1 -1
- package/dist/{LoyaltyPage-TE5E3OJC.js → LoyaltyPage-3FAD5MJ6.js} +14 -14
- package/dist/{LoyaltyPage-TE5E3OJC.js.map → LoyaltyPage-3FAD5MJ6.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-GI3EQOLY.js → LoyaltyPointsPage-A4CTI55P.js} +6 -6
- package/dist/{LoyaltyPointsPage-GI3EQOLY.js.map → LoyaltyPointsPage-A4CTI55P.js.map} +1 -1
- package/dist/{MainMenu-46II2DJE.js → MainMenu-C7TWXVL5.js} +6 -6
- package/dist/MainMenu-C7TWXVL5.js.map +1 -0
- package/dist/{MasterLayout-ZYWD2XZO.js → MasterLayout-MZY44RTA.js} +14 -14
- package/dist/{MasterLayout-ZYWD2XZO.js.map → MasterLayout-MZY44RTA.js.map} +1 -1
- package/dist/{MobileMenu-O7354R4E.js → MobileMenu-KNDN34HO.js} +15 -15
- package/dist/{MobileMenu-O7354R4E.js.map → MobileMenu-KNDN34HO.js.map} +1 -1
- package/dist/{NotificationsPage-OZKKZ2CC.js → NotificationsPage-LKUTYWPR.js} +14 -14
- package/dist/{NotificationsPage-OZKKZ2CC.js.map → NotificationsPage-LKUTYWPR.js.map} +1 -1
- package/dist/{OrderSinglePage-IVOIE2YE.js → OrderSinglePage-VDALCKJL.js} +15 -15
- package/dist/{OrderSinglePage-IVOIE2YE.js.map → OrderSinglePage-VDALCKJL.js.map} +1 -1
- package/dist/{OrdersPage-PMLHIHDV.js → OrdersPage-TOSCY6ML.js} +14 -14
- package/dist/{OrdersPage-PMLHIHDV.js.map → OrdersPage-TOSCY6ML.js.map} +1 -1
- package/dist/{PageSingle-C3NBFFHR.js → PageSingle-56SRDA4Q.js} +3 -3
- package/dist/{PageSingle-C3NBFFHR.js.map → PageSingle-56SRDA4Q.js.map} +1 -1
- package/dist/{ProductDetails-R7SFKXNC.js → ProductDetails-YYU7TJSU.js} +4 -4
- package/dist/{ProductDetails-R7SFKXNC.js.map → ProductDetails-YYU7TJSU.js.map} +1 -1
- package/dist/{ProfilePage-5FU4N6O7.js → ProfilePage-CTGBAD2A.js} +14 -14
- package/dist/{ProfilePage-5FU4N6O7.js.map → ProfilePage-CTGBAD2A.js.map} +1 -1
- package/dist/{ReviewsPage-M7QHDNCJ.js → ReviewsPage-RJ5VQVB2.js} +3 -3
- package/dist/{ReviewsPage-M7QHDNCJ.js.map → ReviewsPage-RJ5VQVB2.js.map} +1 -1
- package/dist/{SeoCartWidget-T6PF34G4.js → SeoCartWidget-VL5TD2FU.js} +14 -14
- package/dist/{SeoCartWidget-T6PF34G4.js.map → SeoCartWidget-VL5TD2FU.js.map} +1 -1
- package/dist/{SettingsPage-HBREYY5Q.js → SettingsPage-ZHDB3YZS.js} +14 -14
- package/dist/{SettingsPage-HBREYY5Q.js.map → SettingsPage-ZHDB3YZS.js.map} +1 -1
- package/dist/{StoreClosedNotification-QTKW4PQ2.js → StoreClosedNotification-VP2ACWD6.js} +15 -15
- package/dist/{StoreClosedNotification-QTKW4PQ2.js.map → StoreClosedNotification-VP2ACWD6.js.map} +1 -1
- package/dist/{TestimonialsPage-ESB4CQRS.js → TestimonialsPage-V2RWUVZD.js} +3 -3
- package/dist/{TestimonialsPage-ESB4CQRS.js.map → TestimonialsPage-V2RWUVZD.js.map} +1 -1
- package/dist/{ThankYouPage-BLYIJQNV.js → ThankYouPage-NJKASZ2R.js} +14 -14
- package/dist/{ThankYouPage-BLYIJQNV.js.map → ThankYouPage-NJKASZ2R.js.map} +1 -1
- package/dist/{WalletPage-7YOOVSXO.js → WalletPage-N4FDKDK3.js} +15 -15
- package/dist/{WalletPage-7YOOVSXO.js.map → WalletPage-N4FDKDK3.js.map} +1 -1
- package/dist/{WishlistPage-MXVTTJD6.js → WishlistPage-JCOG3KOV.js} +16 -16
- package/dist/{WishlistPage-MXVTTJD6.js.map → WishlistPage-JCOG3KOV.js.map} +1 -1
- 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.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-ZU7TSTT7.js → chunk-2AS6KREO.js} +3 -3
- package/dist/{chunk-ZU7TSTT7.js.map → chunk-2AS6KREO.js.map} +1 -1
- package/dist/{chunk-YF3U4WYG.js → chunk-33R2PXOK.js} +4 -4
- package/dist/{chunk-YF3U4WYG.js.map → chunk-33R2PXOK.js.map} +1 -1
- package/dist/{chunk-WWGGQY6N.js → chunk-3CKMMFUF.js} +4 -4
- package/dist/{chunk-WWGGQY6N.js.map → chunk-3CKMMFUF.js.map} +1 -1
- package/dist/{chunk-HGNR4XBD.js → chunk-444GCMTZ.js} +7 -7
- package/dist/{chunk-HGNR4XBD.js.map → chunk-444GCMTZ.js.map} +1 -1
- package/dist/{chunk-JI6ZNE7R.js → chunk-5NTD7WXX.js} +3 -3
- package/dist/{chunk-JI6ZNE7R.js.map → chunk-5NTD7WXX.js.map} +1 -1
- package/dist/{chunk-HUJARQI7.js → chunk-7DRXAR76.js} +3 -3
- package/dist/{chunk-HUJARQI7.js.map → chunk-7DRXAR76.js.map} +1 -1
- package/dist/{chunk-ISDSQORB.js → chunk-7PFJOTZS.js} +4 -4
- package/dist/{chunk-ISDSQORB.js.map → chunk-7PFJOTZS.js.map} +1 -1
- package/dist/{chunk-5KKQUH72.js → chunk-ABVHWJPY.js} +10 -3
- package/dist/chunk-ABVHWJPY.js.map +1 -0
- package/dist/{chunk-FG2B552D.js → chunk-AEM5UEH6.js} +3 -3
- package/dist/{chunk-FG2B552D.js.map → chunk-AEM5UEH6.js.map} +1 -1
- package/dist/{chunk-J4GUGMPX.js → chunk-ATL7CYF2.js} +3 -3
- package/dist/{chunk-J4GUGMPX.js.map → chunk-ATL7CYF2.js.map} +1 -1
- package/dist/{chunk-ONPV2TED.js → chunk-AZT4TALZ.js} +5 -5
- package/dist/{chunk-ONPV2TED.js.map → chunk-AZT4TALZ.js.map} +1 -1
- package/dist/{chunk-XETMTAZC.js → chunk-BPM6LSOV.js} +4 -4
- package/dist/{chunk-XETMTAZC.js.map → chunk-BPM6LSOV.js.map} +1 -1
- package/dist/{chunk-E7TU4RW4.js → chunk-CU2DV3Z4.js} +3 -3
- package/dist/{chunk-E7TU4RW4.js.map → chunk-CU2DV3Z4.js.map} +1 -1
- package/dist/{chunk-EPMM5ZWB.js → chunk-F3SXHQU4.js} +5 -5
- package/dist/{chunk-EPMM5ZWB.js.map → chunk-F3SXHQU4.js.map} +1 -1
- package/dist/{chunk-ECMDQQO2.js → chunk-GIYRCRS6.js} +3 -3
- package/dist/{chunk-ECMDQQO2.js.map → chunk-GIYRCRS6.js.map} +1 -1
- package/dist/{chunk-5J3HVOTR.js → chunk-IK7CQSEA.js} +3 -3
- package/dist/{chunk-5J3HVOTR.js.map → chunk-IK7CQSEA.js.map} +1 -1
- package/dist/{chunk-P4UZRDTR.js → chunk-J4EFCWMM.js} +14 -14
- package/dist/{chunk-P4UZRDTR.js.map → chunk-J4EFCWMM.js.map} +1 -1
- package/dist/{chunk-VZ342V4W.js → chunk-LB4U7GI3.js} +4 -4
- package/dist/{chunk-VZ342V4W.js.map → chunk-LB4U7GI3.js.map} +1 -1
- package/dist/{chunk-7CGTHJ6S.js → chunk-LCRHHSBP.js} +5 -5
- package/dist/{chunk-7CGTHJ6S.js.map → chunk-LCRHHSBP.js.map} +1 -1
- package/dist/{chunk-GCZ46XF6.js → chunk-LGXEXLX3.js} +12 -12
- package/dist/chunk-LGXEXLX3.js.map +1 -0
- package/dist/{chunk-XRX6VFSO.js → chunk-MBU4LSRZ.js} +4 -4
- package/dist/{chunk-XRX6VFSO.js.map → chunk-MBU4LSRZ.js.map} +1 -1
- package/dist/{chunk-JRWBBN3M.js → chunk-MJ3DLAC3.js} +4 -4
- package/dist/{chunk-JRWBBN3M.js.map → chunk-MJ3DLAC3.js.map} +1 -1
- package/dist/{chunk-N63CWDNI.js → chunk-MOAMYULW.js} +4 -4
- package/dist/{chunk-N63CWDNI.js.map → chunk-MOAMYULW.js.map} +1 -1
- package/dist/{chunk-NVPOH3CU.js → chunk-N36TVQP2.js} +4 -4
- package/dist/{chunk-NVPOH3CU.js.map → chunk-N36TVQP2.js.map} +1 -1
- package/dist/{chunk-ECFDJBTE.js → chunk-NRPYHHRQ.js} +7 -7
- package/dist/{chunk-ECFDJBTE.js.map → chunk-NRPYHHRQ.js.map} +1 -1
- package/dist/{chunk-TZCTCRGB.js → chunk-NUTURBAK.js} +3 -3
- package/dist/{chunk-TZCTCRGB.js.map → chunk-NUTURBAK.js.map} +1 -1
- package/dist/{chunk-XNBCPEH6.js → chunk-O2RXB3P3.js} +7 -7
- package/dist/{chunk-XNBCPEH6.js.map → chunk-O2RXB3P3.js.map} +1 -1
- package/dist/{chunk-FN4I3UDJ.js → chunk-OEM2SFJE.js} +3 -3
- package/dist/{chunk-FN4I3UDJ.js.map → chunk-OEM2SFJE.js.map} +1 -1
- package/dist/{chunk-2IGIQA2S.js → chunk-OJMG3NAF.js} +3 -3
- package/dist/{chunk-2IGIQA2S.js.map → chunk-OJMG3NAF.js.map} +1 -1
- package/dist/{chunk-Y6X3TVOI.js → chunk-QQWJNRSI.js} +3 -3
- package/dist/{chunk-Y6X3TVOI.js.map → chunk-QQWJNRSI.js.map} +1 -1
- package/dist/{chunk-RSHQ43OI.js → chunk-RUUQ5OVU.js} +3 -3
- package/dist/{chunk-RSHQ43OI.js.map → chunk-RUUQ5OVU.js.map} +1 -1
- package/dist/{chunk-C5UK27T6.js → chunk-SCBSKIBA.js} +4 -4
- package/dist/{chunk-C5UK27T6.js.map → chunk-SCBSKIBA.js.map} +1 -1
- package/dist/{chunk-PLPIAVLJ.js → chunk-SOLUKKTW.js} +3 -3
- package/dist/{chunk-PLPIAVLJ.js.map → chunk-SOLUKKTW.js.map} +1 -1
- package/dist/{chunk-BBMRL2QU.js → chunk-TDIENKPW.js} +3 -3
- package/dist/{chunk-BBMRL2QU.js.map → chunk-TDIENKPW.js.map} +1 -1
- package/dist/{chunk-J5OJ7JM2.js → chunk-UXJAZ5JP.js} +3 -3
- package/dist/{chunk-J5OJ7JM2.js.map → chunk-UXJAZ5JP.js.map} +1 -1
- package/dist/{chunk-LQ2PXFR4.js → chunk-VNZ6VI2O.js} +3 -3
- package/dist/{chunk-LQ2PXFR4.js.map → chunk-VNZ6VI2O.js.map} +1 -1
- package/dist/{chunk-ELQFU3RH.js → chunk-VXMWMGBQ.js} +4 -4
- package/dist/{chunk-ELQFU3RH.js.map → chunk-VXMWMGBQ.js.map} +1 -1
- package/dist/{chunk-AORRIQPD.js → chunk-XMSZSSTZ.js} +4 -4
- package/dist/{chunk-AORRIQPD.js.map → chunk-XMSZSSTZ.js.map} +1 -1
- package/dist/{chunk-ICQIH7F6.js → chunk-YRIMECFU.js} +3 -3
- package/dist/{chunk-ICQIH7F6.js.map → chunk-YRIMECFU.js.map} +1 -1
- package/dist/{chunk-62FNNS7U.js → chunk-ZNA3SWRP.js} +7 -7
- package/dist/{chunk-62FNNS7U.js.map → chunk-ZNA3SWRP.js.map} +1 -1
- package/dist/components/cart/index.js +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/drawer/index.js +12 -12
- package/dist/components/home/index.js +17 -17
- package/dist/components/layout/index.js +4 -4
- package/dist/components/navigation/MainMenu.d.ts.map +1 -1
- package/dist/components/product/index.js +14 -14
- package/dist/components/store/index.js +13 -13
- package/dist/dev/editor/index.js +1 -1
- package/dist/dev/index.js +1 -1
- package/dist/{document-class-LR4X2CH5.js → document-class-B4WBGWSA.js} +11 -11
- package/dist/{document-class-LR4X2CH5.js.map → document-class-B4WBGWSA.js.map} +1 -1
- package/dist/hooks/index.js +12 -12
- package/dist/hooks/useGtm.js +12 -12
- package/dist/hooks/useMoney.js +12 -12
- package/dist/hooks/useStore.js +12 -12
- package/dist/hooks/useUser.js +3 -3
- package/dist/index.js +12 -12
- package/dist/{navigation-OQ2ZT3ID.js → navigation-MBQKDV5V.js} +5 -5
- package/dist/{navigation-OQ2ZT3ID.js.map → navigation-MBQKDV5V.js.map} +1 -1
- package/dist/{navigation-5PCMFALH.js → navigation-VPRCR725.js} +4 -4
- package/dist/{navigation-5PCMFALH.js.map → navigation-VPRCR725.js.map} +1 -1
- package/dist/{not-found-YHQVBI7H.js → not-found-OIZGDR7G.js} +15 -15
- package/dist/{not-found-YHQVBI7H.js.map → not-found-OIZGDR7G.js.map} +1 -1
- package/dist/providers/index.js +12 -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 -21
- package/dist/routes/home.js +18 -18
- 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 -19
- package/dist/routes/product.js +17 -17
- package/dist/routes/root/beforeLoad.d.ts.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 -18
- package/dist/{store-lookup-NJCTSPFL.js → store-lookup-HMU7QMSC.js} +8 -8
- package/dist/{store-lookup-NJCTSPFL.js.map → store-lookup-HMU7QMSC.js.map} +1 -1
- package/dist/tanstack/link.d.ts.map +1 -1
- package/dist/tanstack.js +11 -11
- package/dist/utils/index.js +2 -2
- package/package.json +1 -1
- package/tailwind/components/navigation/MainMenu.tsx.txt +2 -1
- package/tailwind/routes/root/beforeLoad.ts.txt +4 -2
- package/dist/MainMenu-46II2DJE.js.map +0 -1
- package/dist/chunk-5KKQUH72.js.map +0 -1
- package/dist/chunk-GCZ46XF6.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { registry } from './chunk-Y32RHCOH.js';
|
|
2
2
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
3
|
-
import { Image } from './chunk-
|
|
3
|
+
import { Image } from './chunk-TDIENKPW.js';
|
|
4
4
|
import { LazyImageModal } from './chunk-KYMWEUN2.js';
|
|
5
5
|
import { isNativeApp } from './chunk-3E3ABCPC.js';
|
|
6
6
|
import { useTwilight } from './chunk-DF6FBKDN.js';
|
|
@@ -11,10 +11,10 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
11
11
|
|
|
12
12
|
// src/components/product/lazy.ts
|
|
13
13
|
var LazyProductDetails = lazyComponent(
|
|
14
|
-
() => import('./ProductDetails-
|
|
14
|
+
() => import('./ProductDetails-YYU7TJSU.js').then((m) => ({ default: m.ProductDetails }))
|
|
15
15
|
);
|
|
16
16
|
var LazyAddToCartForm = lazyComponent(
|
|
17
|
-
() => import('./AddToCartForm-
|
|
17
|
+
() => import('./AddToCartForm-EPTN5O3X.js').then((m) => ({ default: m.AddToCartForm }))
|
|
18
18
|
);
|
|
19
19
|
var PRODUCT_GALLERY_KEY = "product:gallery";
|
|
20
20
|
function legacyGalleryMedia(images) {
|
|
@@ -202,5 +202,5 @@ function ThumbSlide({ image, index }) {
|
|
|
202
202
|
}
|
|
203
203
|
|
|
204
204
|
export { LazyAddToCartForm, LazyProductDetails, ProductGallery };
|
|
205
|
-
//# sourceMappingURL=chunk-
|
|
206
|
-
//# sourceMappingURL=chunk-
|
|
205
|
+
//# sourceMappingURL=chunk-F3SXHQU4.js.map
|
|
206
|
+
//# sourceMappingURL=chunk-F3SXHQU4.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/product/lazy.ts","../src/components/product/ProductGallery.tsx"],"names":[],"mappings":"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","file":"chunk-EPMM5ZWB.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":";;;;;;;;;;;;AAEO,IAAM,kBAAA,GAAqB,aAAA;AAAA,EAAc,MAC9C,OAAO,8BAAkB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,cAAA,EAAe,CAAE;AACxE;AAEO,IAAM,iBAAA,GAAoB,aAAA;AAAA,EAAc,MAC7C,OAAO,6BAAiB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,aAAA,EAAc,CAAE;AACtE;ACEA,IAAM,mBAAA,GAAsB,iBAAA;AAc5B,SAAS,mBAAmB,MAAA,EAAwC;AAClE,EAAA,OAAO,MAAA,CAAO,OAAA,CAAsB,CAAC,KAAA,KAAU;AAC7C,IAAA,IAAI,KAAA,CAAM,iBAAA,EAAmB,OAAO,CAAC,EAAE,KAAK,KAAA,CAAM,iBAAA,EAAmB,IAAA,EAAM,UAAA,EAAY,CAAA;AACvF,IAAA,IAAI,KAAA,CAAM,SAAA,EAAW,OAAO,CAAC,EAAE,KAAK,KAAA,CAAM,SAAA,EAAW,IAAA,EAAM,OAAA,EAAS,CAAA;AACpE,IAAA,OAAO,KAAA,CAAM,GAAA,GAAM,CAAC,EAAE,GAAA,EAAK,KAAA,CAAM,GAAA,EAAK,IAAA,EAAM,OAAA,EAAS,CAAA,GAAI,EAAC;AAAA,EAC5D,CAAC,CAAA;AACH;AAEA,SAAS,qBAAA,CAAsB,EAAE,OAAA,EAAQ,EAAwB;AAC/D,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAC9B,EAAA,MAAM,QAAA,GAAW,CAAA,eAAA,EAAkB,OAAA,CAAQ,EAAE,CAAA,CAAA;AAC7C,EAAA,MAAM,SAAA,GAAY,KAAA,CAAM,QAAA,CAAS,sBAAA,IAA0B,OAAA;AAG3D,EAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,SAA8B,IAAI,CAAA;AAEhE,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,GAAA,GAAM,sBAAsB,MAAM;AACtC,MAAA,MAAM,EAAA,GAAK,QAAA,CAAS,cAAA,CAAe,QAAQ,CAAA;AAC3C,MAAA,IAAI,CAAC,IAAI,aAAA,EAAe;AACxB,MAAA,MAAM,EAAE,aAAA,EAAe,WAAA,EAAY,GAAI,EAAA;AACvC,MAAA,aAAA,CAAc,YAAY,EAAE,CAAA;AAC5B,MAAA,aAAA,CAAc,YAAA,CAAa,IAAI,WAAW,CAAA;AAAA,IAC5C,CAAC,CAAA;AACD,IAAA,OAAO,MAAM,qBAAqB,GAAG,CAAA;AAAA,EACvC,CAAA,EAAG,CAAC,QAAQ,CAAC,CAAA;AAIb,EAAA,MAAM,SACJ,OAAA,CAAQ,MAAA,IAAU,OAAA,CAAQ,MAAA,CAAO,SAAS,CAAA,GACtC,OAAA,CAAQ,MAAA,GACR,OAAA,CAAQ,OAAO,GAAA,GACb,CAAC,OAAA,CAAQ,KAAK,IACd,EAAC;AAET,EAAA,MAAM,aAAA,GAAgB,OAAO,MAAA,GAAS,CAAA;AACtC,EAAA,MAAM,iBAAA,GAAoB,CAAC,QAAA,KAA2B;AACpD,IAAA,IAAI,CAAC,WAAA,EAAY,EAAG,OAAO,KAAA;AAC3B,IAAA,IAAI,OAAO,KAAA,EAAO,MAAA,EAAQ,cAAc,MAAA,EAAQ,QAAQ,GAAG,OAAO,IAAA;AAClE,IAAA,MAAA,CAAO,KAAA,EAAO,MAAM,QAAA,CAAS,sBAAA,EAAwB,EAAE,MAAA,EAAQ,kBAAA,CAAmB,MAAM,CAAA,EAAG,CAAA;AAC3F,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,oGAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA;AAAA,MAAC,WAAA;AAAA,MAAA;AAAA,QACC,EAAA,EAAI,QAAA;AAAA,QACJ,SAAA,EAAU,wCAAA;AAAA,QACV,IAAA,EAAK,QAAA;AAAA,QACL,IAAA,EAAM,KAAA;AAAA,QACN,UAAA,EAAU,IAAA;AAAA,QACV,wBAAA,EAAwB,IAAA;AAAA,QACxB,kBAAA,EAAoB,KAAA;AAAA,QACpB,YAAA,EAAc,EAAE,aAAA,EAAe,IAAA,EAAM,YAAY,IAAA,EAAK;AAAA,QAErD,QAAA,EAAA;AAAA,UAAA,OAAA,CAAQ,mCACP,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,iBAAA,EAAmB,kBAAQ,eAAA,EAAgB,CAAA;AAAA,UAG3D,OAAA,CAAQ,QAAA,oBACP,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,iJAAA,EACb,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,6CAAA,EAA+C,QAAA,EAAA,OAAA,CAAQ,QAAA,EAAS,CAAA;AAAA,gCAC/E,MAAA,EAAA,EAAK,SAAA,EAAU,yBACb,QAAA,EAAA,CAAA,CAAE,yBAAA,EAA2B,UAAU,CAAA,EAC1C;AAAA,WAAA,EACF,CAAA;AAAA,0BAGF,GAAA,CAAC,SAAI,IAAA,EAAK,OAAA,EACP,iBAAO,GAAA,CAAI,CAAC,OAAO,KAAA,qBAClB,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cAEC,KAAA;AAAA,cACA,OAAA;AAAA,cACA,KAAA;AAAA,cACA,SAAA;AAAA,cACA,SAAA,EAAW,UAAA;AAAA,cACX,YAAA,EAAc;AAAA,aAAA;AAAA,YANT,MAAM,EAAA,IAAM,KAAA,CAAM,iBAAA,IAAqB,KAAA,CAAM,aAAa,KAAA,CAAM;AAAA,WAQxE,CAAA,EACH,CAAA;AAAA,UAEC,aAAA,wBACE,KAAA,EAAA,EAAI,IAAA,EAAK,UACP,QAAA,EAAA,MAAA,CAAO,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,qBAClB,GAAA;AAAA,YAAC,UAAA;AAAA,YAAA;AAAA,cAEC,KAAA;AAAA,cACA;AAAA,aAAA;AAAA,YAFK,MAAM,EAAA,IAAM,KAAA,CAAM,iBAAA,IAAqB,KAAA,CAAM,aAAa,KAAA,CAAM;AAAA,WAIxE,CAAA,EACH;AAAA;AAAA;AAAA,KAEJ;AAAA,oBAEA,GAAA,CAAC,QAAA,EAAA,EAAS,QAAA,EAAU,IAAA,EAClB,QAAA,kBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,MAAA,EAAQ,CAAC,CAAC,OAAA;AAAA,QACV,OAAA,EAAS,MAAM,UAAA,CAAW,IAAI,CAAA;AAAA,QAC9B,GAAA,EAAK,SAAS,GAAA,IAAO,EAAA;AAAA,QACrB,KAAK,OAAA,EAAS;AAAA;AAAA,KAChB,EACF;AAAA,GAAA,EACF,CAAA;AAEJ;AAEO,SAAS,eAAe,KAAA,EAA4B;AACzD,EAAA,MAAM,SAAA,GAAY,QAAQ,MAAM;AAC9B,IAAA,MAAM,QAAA,GAAW,QAAA,CAAS,OAAA,CAA6B,mBAAmB,CAAA;AAG1E,IAAA,OAAO,QAAA,KAAa,iBAAiB,IAAA,GAAO,QAAA;AAAA,EAC9C,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBAAO,GAAA,CAAC,SAAA,EAAA,EAAW,GAAG,KAAA,EAAO,CAAA;AAAA,EAC/B;AAEA,EAAA,uBAAO,GAAA,CAAC,qBAAA,EAAA,EAAuB,GAAG,KAAA,EAAO,CAAA;AAC3C;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,KAAA;AAAA,EACA,OAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAOG;AACD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,OAAA,GAAU,OAAA,CAAQ,KAAA,CAAM,SAAS,CAAA;AAEvC,EAAA,IAAI,MAAM,iBAAA,EAAmB;AAC3B,IAAA;AAAA;AAAA,sBAEE,GAAA;AAAA,QAAC,cAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO,EAAE,SAAA,EAAW,OAAA,EAAQ;AAAA,UAC5B,SAAA,EAAU,wCAAA;AAAA,UACV,OAAA,EAAQ,MAAA;AAAA,UACR,iBAAA,EAAe,IAAA;AAAA,UACf,cAAA,EAAa,OAAA;AAAA,UACb,aAAA,EAAW,IAAA;AAAA,UACX,MAAA,EAAQ,MAAM,GAAA,IAAO,MAAA;AAAA,UACrB,KAAK,KAAA,CAAM,iBAAA;AAAA,UACX,kBAAA,EAAiB,GAAA;AAAA,UACjB,KAAK,KAAA,CAAM,GAAA;AAAA,UACX,OAAA,EAAS,MAAM,YAAA,CAAa,KAAK;AAAA;AAAA;AAClC;AAAA,EAEL;AAEA,EAAA,uBACE,GAAA;AAAA,IAAC,GAAA;AAAA,IAAA;AAAA,MACC,iBAAA,EAAiB,CAAA,QAAA,EAAW,OAAA,CAAQ,EAAE,CAAA,CAAA;AAAA,MACtC,eAAa,KAAA,CAAM,EAAA;AAAA,MACnB,iBAAA,EAAiB,KAAA;AAAA,MAChB,GAAI,MAAM,SAAA,GAAY,EAAE,kBAAkB,KAAA,CAAM,SAAA,KAAc,EAAC;AAAA,MAChE,gBAAc,KAAA,CAAM,GAAA;AAAA,MACpB,eAAA,EAAc,OAAA;AAAA,MACd,WAAA,EAAW,KAAA,CAAM,SAAA,GAAY,SAAA,GAAY,OAAA;AAAA,MACzC,IAAA,EAAM,KAAA,CAAM,SAAA,IAAa,KAAA,CAAM,GAAA;AAAA,MAG9B,GAAI,UAAU,EAAE,MAAA,EAAQ,UAAU,GAAA,EAAK,qBAAA,KAA0B,EAAC;AAAA,MACnE,OAAA,EAAS,CAAC,KAAA,KAAU;AAClB,QAAA,IAAI,YAAA,CAAa,KAAK,CAAA,EAAG;AACvB,UAAA,KAAA,CAAM,cAAA,EAAe;AACrB,UAAA;AAAA,QACF;AACA,QAAA,IAAI,OAAA,IAAW,CAAC,KAAA,CAAM,GAAA,EAAK;AAC3B,QAAA,KAAA,CAAM,cAAA,EAAe;AACrB,QAAA,SAAA,CAAU,EAAE,KAAK,KAAA,CAAM,GAAA,EAAK,KAAK,KAAA,CAAM,GAAA,IAAO,OAAA,CAAQ,IAAA,EAAM,CAAA;AAAA,MAC9D,CAAA;AAAA,MACA,cAAY,OAAA,CAAQ,IAAA;AAAA,MACpB,SAAA,EAAW,CAAA,+CAAA,EAAkD,KAAA,CAAM,SAAA,GAAY,gBAAgB,EAAE,CAAA,CAAA;AAAA,MAEjG,8BAAC,KAAA,EAAA,EAAI,SAAA,EAAW,UAAU,MAAA,GAAS,EAAA,GAAK,yCAAyC,CAAA,CAAA,EAC/E,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,EAAA,EAAI,MAAA,CAAO,KAAA,CAAM,EAAE,CAAA;AAAA,UACnB,KAAK,KAAA,CAAM,GAAA;AAAA,UACX,GAAA,EAAK,KAAA,CAAM,GAAA,IAAO,OAAA,CAAQ,IAAA;AAAA,UAC1B,SAAA,EAAW,wBAAwB,SAAS,CAAA,CAAA;AAAA,UAC5C,WAAA,EAAY,KAAA;AAAA,UACZ,UAAU,KAAA,KAAU,CAAA;AAAA,UACpB,SAAA,EAAS,IAAA;AAAA,UACT,MAAA,EAAQ,MAAM,SAAA,CAAU,IAAI;AAAA;AAAA,OAC9B,EACF;AAAA;AAAA,GACF;AAEJ;AAEA,SAAS,UAAA,CAAW,EAAE,KAAA,EAAO,KAAA,EAAM,EAA2C;AAC5E,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,CAAA,kBAAA,EAAqB,KAAA,CAAM,SAAA,GAAY,aAAA,GAAgB,EAAE,CAAA,CAAA,EAAI,KAAA,CAAM,iBAAA,GAAoB,aAAA,GAAgB,EAAE,CAAA,CAAA;AAAA,MACpH,gBAAc,KAAA,CAAM,GAAA;AAAA,MAEpB,QAAA,kBAAA,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAK,KAAA,CAAM,GAAA;AAAA,UACX,GAAA,EAAK,MAAM,GAAA,IAAO,EAAA;AAAA,UAClB,SAAA,EAAU,mEAAA;AAAA,UACV,OAAO,KAAA,CAAM,GAAA;AAAA,UACb,UAAU,KAAA,GAAQ,CAAA;AAAA,UAClB,SAAA,EAAS;AAAA;AAAA;AACX;AAAA,GACF;AAEJ","file":"chunk-F3SXHQU4.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,4 +1,4 @@
|
|
|
1
|
-
import { api } from './chunk-
|
|
1
|
+
import { api } from './chunk-UXJAZ5JP.js';
|
|
2
2
|
import { queryOptions } from '@tanstack/react-query';
|
|
3
3
|
|
|
4
4
|
var notification = {
|
|
@@ -24,5 +24,5 @@ var notification = {
|
|
|
24
24
|
};
|
|
25
25
|
|
|
26
26
|
export { notification };
|
|
27
|
-
//# sourceMappingURL=chunk-
|
|
28
|
-
//# sourceMappingURL=chunk-
|
|
27
|
+
//# sourceMappingURL=chunk-GIYRCRS6.js.map
|
|
28
|
+
//# sourceMappingURL=chunk-GIYRCRS6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/notification.ts"],"names":[],"mappings":";;;AAcO,IAAM,YAAA,GAAe;AAAA,EAC1B,MAAM,YAAgD;AACpD,IAAA,MAAM,WAAW,MAAM,GAAA,CACpB,GAAA,CAAI,eAAe,EACnB,IAAA,EAAmF;AACtF,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,QAAA,CAAS,IAAA,IAAQ,EAAC;AAAA,MACxB,QAAQ,QAAA,CAAS;AAAA,KACnB;AAAA,EACF,CAAA;AAAA,EAEA,UAAA,EAAY,OAAO,EAAA,KAA8B;AAC/C,IAAA,MAAM,IAAI,GAAA,CAAI,CAAA,cAAA,EAAiB,EAAE,CAAA,KAAA,CAAO,EAAE,IAAA,EAAK;AAAA,EACjD,CAAA;AAAA,EAEA,eAAe,YAA2B;AACxC,IAAA,MAAM,GAAA,CAAI,GAAA,CAAI,wBAAwB,CAAA,CAAE,IAAA,EAAK;AAAA,EAC/C,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,eAAA,EAAiB,MAAM,CAAA;AAAA,MAClC,OAAA,EAAS,MAAM,YAAA,CAAa,IAAA;AAAK,KAClC;AAAA;AAEP","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/api/notification.ts"],"names":[],"mappings":";;;AAcO,IAAM,YAAA,GAAe;AAAA,EAC1B,MAAM,YAAgD;AACpD,IAAA,MAAM,WAAW,MAAM,GAAA,CACpB,GAAA,CAAI,eAAe,EACnB,IAAA,EAAmF;AACtF,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,QAAA,CAAS,IAAA,IAAQ,EAAC;AAAA,MACxB,QAAQ,QAAA,CAAS;AAAA,KACnB;AAAA,EACF,CAAA;AAAA,EAEA,UAAA,EAAY,OAAO,EAAA,KAA8B;AAC/C,IAAA,MAAM,IAAI,GAAA,CAAI,CAAA,cAAA,EAAiB,EAAE,CAAA,KAAA,CAAO,EAAE,IAAA,EAAK;AAAA,EACjD,CAAA;AAAA,EAEA,eAAe,YAA2B;AACxC,IAAA,MAAM,GAAA,CAAI,GAAA,CAAI,wBAAwB,CAAA,CAAE,IAAA,EAAK;AAAA,EAC/C,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MACJ,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,eAAA,EAAiB,MAAM,CAAA;AAAA,MAClC,OAAA,EAAS,MAAM,YAAA,CAAa,IAAA;AAAK,KAClC;AAAA;AAEP","file":"chunk-GIYRCRS6.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { Notification } from '../routes/account/notifications/types';\n\nexport interface NotificationsListResponse {\n data: Notification[];\n cursor: {\n current: number;\n previous: number | null;\n next: number | null;\n count: number;\n };\n}\n\nexport const notification = {\n list: async (): Promise<NotificationsListResponse> => {\n const response = await api\n .get('notifications')\n .json<{ data: Notification[] | null; cursor: NotificationsListResponse['cursor'] }>();\n return {\n data: response.data ?? [],\n cursor: response.cursor,\n };\n },\n\n markAsRead: async (id: number): Promise<void> => {\n await api.put(`notifications/${id}/read`).json();\n },\n\n markAllAsRead: async (): Promise<void> => {\n await api.put('notifications/read-all').json();\n },\n\n queries: {\n list: () =>\n queryOptions({\n queryKey: ['notifications', 'list'],\n queryFn: () => notification.list(),\n }),\n },\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { user } from './chunk-
|
|
1
|
+
import { user } from './chunk-QQWJNRSI.js';
|
|
2
2
|
import { getTwilightContext } from './chunk-6K34BCUP.js';
|
|
3
3
|
import { useQuery } from '@tanstack/react-query';
|
|
4
4
|
|
|
@@ -13,5 +13,5 @@ function useUser() {
|
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export { useUser };
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
17
|
-
//# sourceMappingURL=chunk-
|
|
16
|
+
//# sourceMappingURL=chunk-IK7CQSEA.js.map
|
|
17
|
+
//# sourceMappingURL=chunk-IK7CQSEA.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/hooks/useUser.ts"],"names":[],"mappings":";;;;AAUO,SAAS,OAAA,GAAyB;AACvC,EAAA,MAAM,KAAA,GAAQ,oBAAmB,CAAE,SAAA;AAEnC,EAAA,MAAM,QAAQ,QAAA,CAAS;AAAA,IACrB,GAAG,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAQ;AAAA,IACxB,OAAA,EAAS,CAAC,CAAC,KAAA;AAAA,IACX,eAAA,EAAiB;AAAA,GAClB,CAAA;AAED,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAC,CAAC,KAAA,EAAM;AACzC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useUser.ts"],"names":[],"mappings":";;;;AAUO,SAAS,OAAA,GAAyB;AACvC,EAAA,MAAM,KAAA,GAAQ,oBAAmB,CAAE,SAAA;AAEnC,EAAA,MAAM,QAAQ,QAAA,CAAS;AAAA,IACrB,GAAG,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAQ;AAAA,IACxB,OAAA,EAAS,CAAC,CAAC,KAAA;AAAA,IACX,eAAA,EAAiB;AAAA,GAClB,CAAA;AAED,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAC,CAAC,KAAA,EAAM;AACzC","file":"chunk-IK7CQSEA.js","sourcesContent":["import { useQuery, type UseQueryResult } from '@tanstack/react-query';\nimport { getTwilightContext } from '../twilight/context';\nimport { user } from '../api/user';\nimport type { User } from '../types';\n\nexport type UseUserReturn = UseQueryResult<User | null> & {\n /** True when an auth token exists (regardless of query state). */\n isLoggedIn: boolean;\n};\n\nexport function useUser(): UseUserReturn {\n const token = getTwilightContext().authToken;\n\n const query = useQuery({\n ...user.queries.current(),\n enabled: !!token,\n placeholderData: null,\n });\n\n return { ...query, isLoggedIn: !!token };\n}\n"]}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { editorFrame, previewTheme, postToEditor, FRAME_LOADED_ACTION } from './chunk-H2QBHOF2.js';
|
|
2
|
-
import { Header } from './chunk-
|
|
3
|
-
import { Footer } from './chunk-
|
|
2
|
+
import { Header } from './chunk-NRPYHHRQ.js';
|
|
3
|
+
import { Footer } from './chunk-VNZ6VI2O.js';
|
|
4
4
|
import { resolveTwilightSdkUrl, TICKETING_SCRIPT_URL, setSnippetPageTargets } from './chunk-N6ZE6HUX.js';
|
|
5
|
-
import { useDevSettingsOverrides, useDevReportSettingsFetchedAt } from './chunk-
|
|
6
|
-
import { apps } from './chunk-
|
|
5
|
+
import { useDevSettingsOverrides, useDevReportSettingsFetchedAt } from './chunk-AEM5UEH6.js';
|
|
6
|
+
import { apps } from './chunk-ATL7CYF2.js';
|
|
7
7
|
import { color } from './chunk-VVZNW5CB.js';
|
|
8
8
|
import { applyThemeHookSlots, installAppScope } from './chunk-WQPG22DY.js';
|
|
9
9
|
import { withOwnerMaintenanceButton, withoutMaintenanceOnPreviewHost } from './chunk-Q7E4TNN7.js';
|
|
10
|
-
import { useLocation, useIsHome, NavigationInterceptor } from './chunk-
|
|
11
|
-
import { useUser } from './chunk-
|
|
10
|
+
import { useLocation, useIsHome, NavigationInterceptor } from './chunk-SOLUKKTW.js';
|
|
11
|
+
import { useUser } from './chunk-IK7CQSEA.js';
|
|
12
12
|
import { DocumentClassProvider, useDocumentClass } from './chunk-JWXJPJBO.js';
|
|
13
13
|
import { WidgetHead } from './chunk-V2ZDTY6H.js';
|
|
14
14
|
import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
15
15
|
import { hookRegistry } from './chunk-GCPEMNSU.js';
|
|
16
|
-
import { getActiveCurrency, ENGINE_VERSION } from './chunk-
|
|
16
|
+
import { getActiveCurrency, ENGINE_VERSION } from './chunk-UXJAZ5JP.js';
|
|
17
17
|
import { useTranslation, I18nProvider } from './chunk-TYNZ5B2B.js';
|
|
18
18
|
import { Toaster } from './chunk-MWYKP7CI.js';
|
|
19
19
|
import { isNativeApp } from './chunk-3E3ABCPC.js';
|
|
@@ -344,16 +344,16 @@ function useNativeSpaWebview() {
|
|
|
344
344
|
}
|
|
345
345
|
var navigationSetups = {
|
|
346
346
|
tanstack: lazyComponent(
|
|
347
|
-
() => import('./navigation-
|
|
347
|
+
() => import('./navigation-MBQKDV5V.js').then((m) => ({ default: m.NavigationSetup }))
|
|
348
348
|
),
|
|
349
349
|
// Not preloaded with the rest: a TanStack worker would load Next.js code it never runs.
|
|
350
|
-
nextjs: lazy(() => import('./navigation-
|
|
350
|
+
nextjs: lazy(() => import('./navigation-VPRCR725.js').then((m) => ({ default: m.NavigationSetup })))
|
|
351
351
|
};
|
|
352
352
|
|
|
353
353
|
// src/providers/DocumentSyncRegistry.ts
|
|
354
354
|
var routeDocumentSyncs = {
|
|
355
355
|
tanstack: lazyComponent(
|
|
356
|
-
() => import('./document-class-
|
|
356
|
+
() => import('./document-class-B4WBGWSA.js').then((m) => ({
|
|
357
357
|
default: m.TanStackDocumentSync
|
|
358
358
|
}))
|
|
359
359
|
)
|
|
@@ -875,7 +875,7 @@ var LazySiftSnippet = lazyComponent(
|
|
|
875
875
|
() => import('./SiftSnippet-5FCU6TR6.js').then((m) => ({ default: m.SiftSnippet }))
|
|
876
876
|
);
|
|
877
877
|
var LazyStoreClosedNotification = lazyComponent(
|
|
878
|
-
() => import('./StoreClosedNotification-
|
|
878
|
+
() => import('./StoreClosedNotification-VP2ACWD6.js').then((m) => ({
|
|
879
879
|
default: m.StoreClosedNotification
|
|
880
880
|
}))
|
|
881
881
|
);
|
|
@@ -1122,7 +1122,7 @@ function SallaSdkScripts({ settings }) {
|
|
|
1122
1122
|
|
|
1123
1123
|
// src/components/store/lazy.ts
|
|
1124
1124
|
var LazyStoreClosedNotification2 = lazyComponent(
|
|
1125
|
-
() => import('./StoreClosedNotification-
|
|
1125
|
+
() => import('./StoreClosedNotification-VP2ACWD6.js').then((m) => ({
|
|
1126
1126
|
default: m.StoreClosedNotification
|
|
1127
1127
|
}))
|
|
1128
1128
|
);
|
|
@@ -1474,5 +1474,5 @@ function useStore() {
|
|
|
1474
1474
|
}
|
|
1475
1475
|
|
|
1476
1476
|
export { LazyMaintenancePage, LazyStoreClosedNotification2 as LazyStoreClosedNotification, MasterLayout, TwilightProvider, fastCheckoutScript, registerDefaultHooks, registerDocumentSync, routeDocumentSyncs, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore };
|
|
1477
|
-
//# sourceMappingURL=chunk-
|
|
1478
|
-
//# sourceMappingURL=chunk-
|
|
1477
|
+
//# sourceMappingURL=chunk-J4EFCWMM.js.map
|
|
1478
|
+
//# sourceMappingURL=chunk-J4EFCWMM.js.map
|