@salla.sa/twilight-theme-engine 1.0.125 → 1.0.127
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-Q6Y7BTDC.js → AddToCartForm-MI3LYWTN.js} +3 -3
- package/dist/{AddToCartForm-Q6Y7BTDC.js.map → AddToCartForm-MI3LYWTN.js.map} +1 -1
- package/dist/{BlogAuthorPage-N34SKQIU.js → BlogAuthorPage-FZCRDJG4.js} +16 -16
- package/dist/{BlogAuthorPage-N34SKQIU.js.map → BlogAuthorPage-FZCRDJG4.js.map} +1 -1
- package/dist/{BlogCategoryPage-FIQZZVFS.js → BlogCategoryPage-3MNT7FKX.js} +16 -16
- package/dist/{BlogCategoryPage-FIQZZVFS.js.map → BlogCategoryPage-3MNT7FKX.js.map} +1 -1
- package/dist/{BlogPage-HKUIDCPI.js → BlogPage-Y6HQ54J5.js} +14 -14
- package/dist/{BlogPage-HKUIDCPI.js.map → BlogPage-Y6HQ54J5.js.map} +1 -1
- package/dist/{BlogSinglePage-YGMH5NZ2.js → BlogSinglePage-SSUQCQSM.js} +14 -14
- package/dist/{BlogSinglePage-YGMH5NZ2.js.map → BlogSinglePage-SSUQCQSM.js.map} +1 -1
- package/dist/{BlogTagPage-64BDH4C7.js → BlogTagPage-5SCDXWE5.js} +16 -16
- package/dist/{BlogTagPage-64BDH4C7.js.map → BlogTagPage-5SCDXWE5.js.map} +1 -1
- package/dist/{BrandsPage-TCYFRA6G.js → BrandsPage-Y5CV5RNB.js} +15 -15
- package/dist/{BrandsPage-TCYFRA6G.js.map → BrandsPage-Y5CV5RNB.js.map} +1 -1
- package/dist/{Breadcrumb-25EMZG3Z.js → Breadcrumb-53VLXZFZ.js} +14 -14
- package/dist/{Breadcrumb-25EMZG3Z.js.map → Breadcrumb-53VLXZFZ.js.map} +1 -1
- package/dist/{CartItem-QIGMCSE2.js → CartItem-K2AHMOS6.js} +14 -14
- package/dist/{CartItem-QIGMCSE2.js.map → CartItem-K2AHMOS6.js.map} +1 -1
- package/dist/{CartSummary-QWTWFV6R.js → CartSummary-DOSO6RAS.js} +14 -14
- package/dist/{CartSummary-QWTWFV6R.js.map → CartSummary-DOSO6RAS.js.map} +1 -1
- package/dist/{Copyright-XUD6PWUP.js → Copyright-WL6JD4RZ.js} +3 -3
- package/dist/{Copyright-XUD6PWUP.js.map → Copyright-WL6JD4RZ.js.map} +1 -1
- package/dist/{CustomerLayout-NIENY4TF.js → CustomerLayout-XEOHI3NS.js} +14 -14
- package/dist/{CustomerLayout-NIENY4TF.js.map → CustomerLayout-XEOHI3NS.js.map} +1 -1
- package/dist/{Footer-3CF5V7OE.js → Footer-45LYY3FP.js} +4 -4
- package/dist/{Footer-3CF5V7OE.js.map → Footer-45LYY3FP.js.map} +1 -1
- package/dist/{Header-O4Z6HYNA.js → Header-E5TPGXAI.js} +8 -8
- package/dist/{Header-O4Z6HYNA.js.map → Header-E5TPGXAI.js.map} +1 -1
- package/dist/{LoyaltyPage-DATO5W6R.js → LoyaltyPage-JLKMN3BB.js} +14 -14
- package/dist/{LoyaltyPage-DATO5W6R.js.map → LoyaltyPage-JLKMN3BB.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-YQAJ6PNQ.js → LoyaltyPointsPage-WDBRZ5G2.js} +6 -6
- package/dist/{LoyaltyPointsPage-YQAJ6PNQ.js.map → LoyaltyPointsPage-WDBRZ5G2.js.map} +1 -1
- package/dist/{MainMenu-NUJSMS3W.js → MainMenu-S3HCLO2Q.js} +5 -5
- package/dist/{MainMenu-NUJSMS3W.js.map → MainMenu-S3HCLO2Q.js.map} +1 -1
- package/dist/{MasterLayout-6SJCANZN.js → MasterLayout-ZK2UAUUE.js} +14 -14
- package/dist/{MasterLayout-6SJCANZN.js.map → MasterLayout-ZK2UAUUE.js.map} +1 -1
- package/dist/{MobileMenu-N7P6Z6TM.js → MobileMenu-Y2WCTG3E.js} +15 -15
- package/dist/{MobileMenu-N7P6Z6TM.js.map → MobileMenu-Y2WCTG3E.js.map} +1 -1
- package/dist/{NotificationsPage-N4DAQ7RS.js → NotificationsPage-YCY4362K.js} +14 -14
- package/dist/{NotificationsPage-N4DAQ7RS.js.map → NotificationsPage-YCY4362K.js.map} +1 -1
- package/dist/{OrderSinglePage-NMWLWFX4.js → OrderSinglePage-R25RSCHV.js} +15 -15
- package/dist/{OrderSinglePage-NMWLWFX4.js.map → OrderSinglePage-R25RSCHV.js.map} +1 -1
- package/dist/{OrdersPage-WGA6SAU7.js → OrdersPage-OQ52P44T.js} +14 -14
- package/dist/{OrdersPage-WGA6SAU7.js.map → OrdersPage-OQ52P44T.js.map} +1 -1
- package/dist/{PageSingle-MZQWB3OW.js → PageSingle-GEKAYAL3.js} +3 -3
- package/dist/{PageSingle-MZQWB3OW.js.map → PageSingle-GEKAYAL3.js.map} +1 -1
- package/dist/{ProductDetails-HYVU4GWC.js → ProductDetails-XIXP4N3Q.js} +4 -4
- package/dist/{ProductDetails-HYVU4GWC.js.map → ProductDetails-XIXP4N3Q.js.map} +1 -1
- package/dist/{ProfilePage-M5RBRGMH.js → ProfilePage-SDYRTC4U.js} +14 -14
- package/dist/{ProfilePage-M5RBRGMH.js.map → ProfilePage-SDYRTC4U.js.map} +1 -1
- package/dist/{ReviewsPage-PEQC4IDJ.js → ReviewsPage-MB3LT72X.js} +3 -3
- package/dist/{ReviewsPage-PEQC4IDJ.js.map → ReviewsPage-MB3LT72X.js.map} +1 -1
- package/dist/{SeoCartWidget-P2MT5BRA.js → SeoCartWidget-PPG6MXQP.js} +14 -14
- package/dist/{SeoCartWidget-P2MT5BRA.js.map → SeoCartWidget-PPG6MXQP.js.map} +1 -1
- package/dist/{SettingsPage-OMPK72Z7.js → SettingsPage-OZPPRWYE.js} +14 -14
- package/dist/{SettingsPage-OMPK72Z7.js.map → SettingsPage-OZPPRWYE.js.map} +1 -1
- package/dist/{StoreClosedNotification-NWEQHHAR.js → StoreClosedNotification-MF76UXK2.js} +15 -15
- package/dist/{StoreClosedNotification-NWEQHHAR.js.map → StoreClosedNotification-MF76UXK2.js.map} +1 -1
- package/dist/{TestimonialsPage-4AUF6ZWG.js → TestimonialsPage-WOKGIVHR.js} +3 -3
- package/dist/{TestimonialsPage-4AUF6ZWG.js.map → TestimonialsPage-WOKGIVHR.js.map} +1 -1
- package/dist/{ThankYouPage-R3EWHCT7.js → ThankYouPage-LTQLSISC.js} +14 -14
- package/dist/{ThankYouPage-R3EWHCT7.js.map → ThankYouPage-LTQLSISC.js.map} +1 -1
- package/dist/{WalletPage-KHQGRDQB.js → WalletPage-ATQ4JN2D.js} +15 -15
- package/dist/{WalletPage-KHQGRDQB.js.map → WalletPage-ATQ4JN2D.js.map} +1 -1
- package/dist/{WishlistPage-YJXOMBQ4.js → WishlistPage-XB7JH2ED.js} +16 -16
- package/dist/{WishlistPage-YJXOMBQ4.js.map → WishlistPage-XB7JH2ED.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-I6SWCTCV.js → chunk-3GXYPPZX.js} +4 -4
- package/dist/{chunk-I6SWCTCV.js.map → chunk-3GXYPPZX.js.map} +1 -1
- package/dist/{chunk-2YCR7EEN.js → chunk-4OERTLJP.js} +3 -3
- package/dist/{chunk-2YCR7EEN.js.map → chunk-4OERTLJP.js.map} +1 -1
- package/dist/{chunk-OXUPXXE5.js → chunk-5D44YQLO.js} +4 -4
- package/dist/{chunk-OXUPXXE5.js.map → chunk-5D44YQLO.js.map} +1 -1
- package/dist/{chunk-QFEJAVGD.js → chunk-5G6KOIVY.js} +10 -10
- package/dist/{chunk-QFEJAVGD.js.map → chunk-5G6KOIVY.js.map} +1 -1
- package/dist/{chunk-2CJGX6QU.js → chunk-63STL623.js} +3 -3
- package/dist/{chunk-2CJGX6QU.js.map → chunk-63STL623.js.map} +1 -1
- package/dist/{chunk-E6J4TSI4.js → chunk-65MGNUMD.js} +4 -4
- package/dist/{chunk-E6J4TSI4.js.map → chunk-65MGNUMD.js.map} +1 -1
- package/dist/{chunk-IZTIOJNJ.js → chunk-6IF6FMA7.js} +7 -7
- package/dist/{chunk-IZTIOJNJ.js.map → chunk-6IF6FMA7.js.map} +1 -1
- package/dist/{chunk-K4HJD556.js → chunk-7IZE6VU3.js} +3 -3
- package/dist/{chunk-K4HJD556.js.map → chunk-7IZE6VU3.js.map} +1 -1
- package/dist/{chunk-UZXRQZV2.js → chunk-7TIGGDM4.js} +3 -3
- package/dist/{chunk-UZXRQZV2.js.map → chunk-7TIGGDM4.js.map} +1 -1
- package/dist/{chunk-5D26ZL3R.js → chunk-7URF2BWQ.js} +5 -5
- package/dist/{chunk-5D26ZL3R.js.map → chunk-7URF2BWQ.js.map} +1 -1
- package/dist/{chunk-Z4BZW7QS.js → chunk-7VLVD3KJ.js} +3 -3
- package/dist/{chunk-Z4BZW7QS.js.map → chunk-7VLVD3KJ.js.map} +1 -1
- package/dist/{chunk-YRWGUJOR.js → chunk-CIXTBWFO.js} +9 -8
- package/dist/chunk-CIXTBWFO.js.map +1 -0
- package/dist/{chunk-PPTOCIKV.js → chunk-CZT6A2MT.js} +6 -6
- package/dist/{chunk-PPTOCIKV.js.map → chunk-CZT6A2MT.js.map} +1 -1
- package/dist/{chunk-RVKKQGHR.js → chunk-D3TFA7SR.js} +3 -3
- package/dist/{chunk-RVKKQGHR.js.map → chunk-D3TFA7SR.js.map} +1 -1
- package/dist/{chunk-N5PGVFSO.js → chunk-DT2NKG5P.js} +3 -3
- package/dist/{chunk-N5PGVFSO.js.map → chunk-DT2NKG5P.js.map} +1 -1
- package/dist/{chunk-LCJSZXXV.js → chunk-EDPKD55D.js} +7 -7
- package/dist/{chunk-LCJSZXXV.js.map → chunk-EDPKD55D.js.map} +1 -1
- package/dist/{chunk-MIKL53WC.js → chunk-EPNBAKBR.js} +3 -3
- package/dist/{chunk-MIKL53WC.js.map → chunk-EPNBAKBR.js.map} +1 -1
- package/dist/{chunk-N6X7ESEY.js → chunk-EYOCBD5I.js} +7 -7
- package/dist/{chunk-N6X7ESEY.js.map → chunk-EYOCBD5I.js.map} +1 -1
- package/dist/{chunk-DMOBC6K3.js → chunk-FQB6MTGD.js} +3 -3
- package/dist/{chunk-DMOBC6K3.js.map → chunk-FQB6MTGD.js.map} +1 -1
- package/dist/{chunk-VAX5TXTJ.js → chunk-FYV4PARO.js} +4 -4
- package/dist/{chunk-VAX5TXTJ.js.map → chunk-FYV4PARO.js.map} +1 -1
- package/dist/{chunk-V3E2UIZB.js → chunk-GD36BKKQ.js} +4 -4
- package/dist/{chunk-V3E2UIZB.js.map → chunk-GD36BKKQ.js.map} +1 -1
- package/dist/{chunk-SRMZHB5G.js → chunk-GVF73TKV.js} +4 -4
- package/dist/{chunk-SRMZHB5G.js.map → chunk-GVF73TKV.js.map} +1 -1
- package/dist/{chunk-SVB3WGEG.js → chunk-I3ZVH373.js} +3 -3
- package/dist/{chunk-SVB3WGEG.js.map → chunk-I3ZVH373.js.map} +1 -1
- package/dist/{chunk-ST6FMVXY.js → chunk-IPCRRC52.js} +3 -3
- package/dist/{chunk-ST6FMVXY.js.map → chunk-IPCRRC52.js.map} +1 -1
- package/dist/{chunk-EADPFZYQ.js → chunk-KJRT3CBH.js} +4 -4
- package/dist/{chunk-EADPFZYQ.js.map → chunk-KJRT3CBH.js.map} +1 -1
- package/dist/{chunk-B3KRYCIN.js → chunk-KND3TI4S.js} +4 -4
- package/dist/{chunk-B3KRYCIN.js.map → chunk-KND3TI4S.js.map} +1 -1
- package/dist/{chunk-NWYOIN5R.js → chunk-KZY3KW3P.js} +3 -3
- package/dist/{chunk-NWYOIN5R.js.map → chunk-KZY3KW3P.js.map} +1 -1
- package/dist/{chunk-IVW2XKC3.js → chunk-MZJV5G7V.js} +3 -3
- package/dist/{chunk-IVW2XKC3.js.map → chunk-MZJV5G7V.js.map} +1 -1
- package/dist/{chunk-HEGWAECO.js → chunk-OMCSTKOT.js} +3 -3
- package/dist/{chunk-HEGWAECO.js.map → chunk-OMCSTKOT.js.map} +1 -1
- package/dist/{chunk-YYNH6PGX.js → chunk-OXAL75FV.js} +3 -3
- package/dist/{chunk-YYNH6PGX.js.map → chunk-OXAL75FV.js.map} +1 -1
- package/dist/{chunk-OBSTSW3E.js → chunk-PBRCB2N3.js} +14 -14
- package/dist/{chunk-OBSTSW3E.js.map → chunk-PBRCB2N3.js.map} +1 -1
- package/dist/{chunk-653SIKQV.js → chunk-PFZLY3IT.js} +3 -3
- package/dist/{chunk-653SIKQV.js.map → chunk-PFZLY3IT.js.map} +1 -1
- package/dist/{chunk-JWBHXCLD.js → chunk-Q7MT5MVO.js} +3 -3
- package/dist/{chunk-JWBHXCLD.js.map → chunk-Q7MT5MVO.js.map} +1 -1
- package/dist/{chunk-DHBDQF2L.js → chunk-RU2BHYVZ.js} +4 -4
- package/dist/{chunk-DHBDQF2L.js.map → chunk-RU2BHYVZ.js.map} +1 -1
- package/dist/{chunk-PD7ZQY6T.js → chunk-UZB2RUW7.js} +4 -4
- package/dist/{chunk-PD7ZQY6T.js.map → chunk-UZB2RUW7.js.map} +1 -1
- package/dist/chunk-VLQLXIGR.js +14 -0
- package/dist/{chunk-FMDGEAFD.js.map → chunk-VLQLXIGR.js.map} +1 -1
- package/dist/{chunk-MHS2SUIJ.js → chunk-VX7JWTKV.js} +4 -4
- package/dist/{chunk-MHS2SUIJ.js.map → chunk-VX7JWTKV.js.map} +1 -1
- package/dist/{chunk-P4M57HMD.js → chunk-WI5TKPQ4.js} +3 -3
- package/dist/{chunk-P4M57HMD.js.map → chunk-WI5TKPQ4.js.map} +1 -1
- package/dist/{chunk-XDZHVKBK.js → chunk-X7L5YGO2.js} +3 -3
- package/dist/{chunk-XDZHVKBK.js.map → chunk-X7L5YGO2.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/HomePageRenderer.d.ts.map +1 -1
- package/dist/components/home/index.js +16 -16
- package/dist/components/layout/index.js +4 -4
- package/dist/components/product/index.js +13 -13
- 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-RKLOCL35.js → document-class-EEQ55ETI.js} +11 -11
- package/dist/{document-class-RKLOCL35.js.map → document-class-EEQ55ETI.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-DIKCKMZ6.js → navigation-IH6C5RKD.js} +5 -5
- package/dist/{navigation-DIKCKMZ6.js.map → navigation-IH6C5RKD.js.map} +1 -1
- package/dist/{navigation-HHJTUPN2.js → navigation-XUR73NNS.js} +4 -4
- package/dist/{navigation-HHJTUPN2.js.map → navigation-XUR73NNS.js.map} +1 -1
- package/dist/{not-found-4KKQNZCQ.js → not-found-2Y2JGOFF.js} +15 -15
- package/dist/{not-found-4KKQNZCQ.js.map → not-found-2Y2JGOFF.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 +20 -20
- package/dist/routes/home.js +17 -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 +18 -18
- package/dist/routes/product.js +16 -16
- 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 +17 -17
- package/dist/{store-lookup-EN7CBHC3.js → store-lookup-7IWK42KE.js} +8 -8
- package/dist/{store-lookup-EN7CBHC3.js.map → store-lookup-7IWK42KE.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/home/HomePageRenderer.tsx.txt +9 -4
- package/dist/chunk-FMDGEAFD.js +0 -14
- package/dist/chunk-YRWGUJOR.js.map +0 -1
package/dist/api/order.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { order } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { order } from '../chunk-3GXYPPZX.js';
|
|
2
|
+
import '../chunk-OMCSTKOT.js';
|
|
3
3
|
import '../chunk-OUW6WESU.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-7TIGGDM4.js';
|
|
5
5
|
import '../chunk-2TLIULJZ.js';
|
|
6
6
|
import '../chunk-GYXUYHKO.js';
|
|
7
7
|
import '../chunk-FHU2MXZA.js';
|
package/dist/api/page.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { page } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { page } from '../chunk-FYV4PARO.js';
|
|
2
|
+
import '../chunk-OMCSTKOT.js';
|
|
3
3
|
import '../chunk-OUW6WESU.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-7TIGGDM4.js';
|
|
5
5
|
import '../chunk-2TLIULJZ.js';
|
|
6
6
|
import '../chunk-GYXUYHKO.js';
|
|
7
7
|
import '../chunk-FHU2MXZA.js';
|
package/dist/api/product.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { getProductPreview, isProductPreviewQuery, parseNextPageToken, product, productDetailQueryKey, productPreviewQueryKey, rememberProductPreview, shouldDehydrateQuery } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { getProductPreview, isProductPreviewQuery, parseNextPageToken, product, productDetailQueryKey, productPreviewQueryKey, rememberProductPreview, shouldDehydrateQuery } from '../chunk-KND3TI4S.js';
|
|
2
|
+
import '../chunk-OMCSTKOT.js';
|
|
3
3
|
import '../chunk-OUW6WESU.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-7TIGGDM4.js';
|
|
5
5
|
import '../chunk-2TLIULJZ.js';
|
|
6
6
|
import '../chunk-GYXUYHKO.js';
|
|
7
7
|
import '../chunk-FHU2MXZA.js';
|
package/dist/api/profile.js
CHANGED
package/dist/api/store.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { store } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { store } from '../chunk-MZJV5G7V.js';
|
|
2
|
+
import '../chunk-7TIGGDM4.js';
|
|
3
3
|
import '../chunk-GYXUYHKO.js';
|
|
4
4
|
export { resolveStoreIdentifier } from '../chunk-FHU2MXZA.js';
|
|
5
5
|
import '../chunk-7VNVCHID.js';
|
package/dist/api/translations.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { commonTranslationsPath, storeTranslationsPath, translations } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { commonTranslationsPath, storeTranslationsPath, translations } from '../chunk-Q7MT5MVO.js';
|
|
2
|
+
import '../chunk-7TIGGDM4.js';
|
|
3
3
|
import '../chunk-GYXUYHKO.js';
|
|
4
4
|
import '../chunk-FHU2MXZA.js';
|
|
5
5
|
import '../chunk-7VNVCHID.js';
|
package/dist/api/user.js
CHANGED
package/dist/api/wallet.js
CHANGED
package/dist/api/wishlist.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
export { wishlist } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { wishlist } from '../chunk-65MGNUMD.js';
|
|
2
|
+
import '../chunk-KND3TI4S.js';
|
|
3
|
+
import '../chunk-OMCSTKOT.js';
|
|
4
4
|
import '../chunk-OUW6WESU.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-7TIGGDM4.js';
|
|
6
6
|
import '../chunk-2TLIULJZ.js';
|
|
7
7
|
import '../chunk-GYXUYHKO.js';
|
|
8
8
|
import '../chunk-FHU2MXZA.js';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { orThrow, orUnauthorized } from './chunk-
|
|
2
|
-
import { api } from './chunk-
|
|
1
|
+
import { orThrow, orUnauthorized } from './chunk-OMCSTKOT.js';
|
|
2
|
+
import { api } from './chunk-7TIGGDM4.js';
|
|
3
3
|
import { queryOptions } from '@tanstack/react-query';
|
|
4
4
|
|
|
5
5
|
var order = {
|
|
@@ -78,5 +78,5 @@ var order = {
|
|
|
78
78
|
};
|
|
79
79
|
|
|
80
80
|
export { order };
|
|
81
|
-
//# sourceMappingURL=chunk-
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
81
|
+
//# sourceMappingURL=chunk-3GXYPPZX.js.map
|
|
82
|
+
//# sourceMappingURL=chunk-3GXYPPZX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/api/order.ts"],"names":[],"mappings":";;;;AAoDO,IAAM,KAAA,GAAQ;AAAA,EACnB,IAAA,EAAM,OAAO,MAAA,KAA2D;AACtE,IAAA,MAAM;AAAA,MACJ,IAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA,eAAA,EAAiB,cAAA;AAAA,MACjB,UAAA,EAAY,SAAA;AAAA,MACZ;AAAA,KACF,GAAI,UAAU,EAAC;AAEf,IAAA,MAAM,YAAA,GAAe,IAAI,eAAA,EAAgB;AACzC,IAAA,IAAI,SAAS,MAAA,EAAW,YAAA,CAAa,IAAI,MAAA,EAAQ,MAAA,CAAO,IAAI,CAAC,CAAA;AAC7D,IAAA,IAAI,MAAA,EAAQ,YAAA,CAAa,GAAA,CAAI,QAAA,EAAU,MAAM,CAAA;AAC7C,IAAA,IAAI,MAAA,EAAQ,YAAA,CAAa,GAAA,CAAI,QAAA,EAAU,MAAM,CAAA;AAC7C,IAAA,IAAI,cAAA,EAAgB,YAAA,CAAa,GAAA,CAAI,iBAAA,EAAmB,cAAc,CAAA;AACtE,IAAA,IAAI,SAAA,EAAW,YAAA,CAAa,GAAA,CAAI,YAAA,EAAc,GAAG,CAAA;AAEjD,IAAA,MAAM,UAAmC,EAAC;AAC1C,IAAA,IAAI,MAAA,UAAgB,MAAA,GAAS,MAAA;AAE7B,IAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CACpB,GAAA,CAAI,CAAA,OAAA,EAAU,YAAA,CAAa,QAAA,EAAU,CAAA,CAAA,EAAI,OAAc,CAAA,CACvD,IAAA,EAA4D;AAE/D,IAAA,OAAO;AAAA,MACL,IAAA,EAAM,QAAA,CAAS,IAAA,IAAQ,EAAC;AAAA,MACxB,QAAQ,QAAA,CAAS;AAAA,KACnB;AAAA,EACF,CAAA;AAAA,EAEA,IAAA,EAAM,OAAO,EAAA,KAA6C;AACxD,IAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,EAAE,CAAA,CAAE,EAAE,IAAA,EAAsB;AAErE,IAAA,OAAO,EAAE,KAAA,EAAO,QAAA,CAAS,IAAA,EAAK;AAAA,EAChC,CAAA;AAAA,EAEA,iBAAA,EAAmB,OAAO,EAAA,KAAuC;AAC/D,IAAA,MAAM,WAAW,MAAM,GAAA,CACpB,GAAA,CAAI,CAAA,OAAA,EAAU,EAAE,CAAA,CAAA,EAAI;AAAA,MACnB,KAAA,EAAO;AAAA;AAAA,QAEL,aAAA,EAAe,CAAC,CAAC,EAAE,OAAA,OAAc,OAAA,CAAQ,OAAA,CAAQ,MAAA,CAAO,cAAc,CAAC;AAAA;AACzE,KACD,EACA,IAAA,EAA8B;AACjC,IAAA,OAAO,QAAA,CAAS,IAAA;AAAA,EAClB,CAAA;AAAA,EAEA,SAAA,EAAW,OAAO,OAAA,KAAkD;AAClE,IAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CACpB,GAAA,CAAI,UAAU,OAAO,CAAA,UAAA,CAAY,EACjC,IAAA,EAAoC;AACvC,IAAA,OAAO,QAAA,CAAS,QAAQ,EAAC;AAAA,EAC3B,CAAA;AAAA,EAEA,OAAA,EAAS,OAAO,OAAA,KAAgD;AAC9D,IAAA,MAAM,QAAA,GAAW,MAAM,GAAA,CAAI,GAAA,CAAI,UAAU,OAAO,CAAA,QAAA,CAAU,EAAE,IAAA,EAAkC;AAC9F,IAAA,OAAO,QAAA,CAAS,QAAQ,EAAC;AAAA,EAC3B,CAAA;AAAA,EAEA,WAAA,EAAa,CAAC,EAAA,KACZ,OAAA,CAAQ,eAAe,KAAA,CAAM,IAAA,CAAK,EAAE,CAAC,CAAC,CAAA;AAAA,EAExC,QAAA,EAAU,OAAO,OAAA,KAAmD;AAClE,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,IAAI,CAAA,mBAAA,EAAsB,OAAO,CAAA,CAAE,CAAA,CACnC,IAAA,EAAqC;AACxC,IAAA,OAAO,IAAA;AAAA,EACT,CAAA;AAAA,EAEA,iBAAiB,CAAC,OAAA,KAChB,QAAQ,KAAA,CAAM,QAAA,CAAS,OAAO,CAAC,CAAA;AAAA,EAEjC,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,CAAC,MAAA,KACL,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,MAAA,EAAQ,MAAM,CAAA;AAAA,MACnC,OAAA,EAAS,CAAC,EAAE,MAAA,EAAO,KAAM,KAAA,CAAM,IAAA,CAAK,EAAE,GAAG,MAAA,EAAQ,MAAA,EAAQ;AAAA,KAC1D,CAAA;AAAA,IACH,IAAA,EAAM,CAAC,EAAA,KACL,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,QAAA,EAAU,EAAE,CAAA;AAAA,MACjC,OAAA,EAAS,MAAM,KAAA,CAAM,IAAA,CAAK,EAAE;AAAA,KAC7B,CAAA;AAAA,IACH,SAAA,EAAW,CAAC,OAAA,KACV,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,WAAA,EAAa,OAAO,CAAA;AAAA,MACzC,OAAA,EAAS,MAAM,KAAA,CAAM,SAAA,CAAU,OAAO;AAAA,KACvC,CAAA;AAAA,IACH,OAAA,EAAS,CAAC,OAAA,KACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,SAAA,EAAW,OAAO,CAAA;AAAA,MACvC,OAAA,EAAS,MAAM,KAAA,CAAM,OAAA,CAAQ,OAAO;AAAA,KACrC,CAAA;AAAA,IACH,QAAA,EAAU,CAAC,OAAA,KACT,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,QAAA,EAAU,UAAA,EAAY,OAAO,CAAA;AAAA,MACxC,OAAA,EAAS,MAAM,KAAA,CAAM,QAAA,CAAS,OAAO;AAAA,KACtC;AAAA;AAEP","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/api/order.ts"],"names":[],"mappings":"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","file":"chunk-3GXYPPZX.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type {\n Order,\n OrderListItem,\n OrderShipmentItem,\n OrderRatingItem,\n} from '../routes/account/types';\nimport type { Pagination } from './types';\nimport { orThrow, orUnauthorized } from '../providers/NavigationProvider';\n\nexport interface OrderDetailResponse {\n order: Order;\n}\n\n/**\n * The order in the shape the Twilight web components read (`salla-order-details`,\n * `salla-order-totals-card`) and the Twig themes render: the API answers `orders/{id}` this\n * way when the request does not say it comes from a React theme (`s-theme-type`).\n */\nexport interface TwilightOrder {\n items: Array<{\n name: string;\n quantity: number;\n product?: { id: number; url?: string; type?: string; image?: { url?: string } };\n options?: unknown[];\n }>;\n [key: string]: unknown;\n}\n\nexport interface CheckoutThankYouData {\n thank_you_title?: string;\n messages?: string[];\n share_message?: string;\n short_share_message?: string;\n}\n\nexport interface OrdersListResponse {\n data: OrderListItem[];\n cursor?: Pagination;\n}\n\nexport interface OrdersListParams {\n page?: number;\n cursor?: string | null;\n status?: string;\n feedback_status?: string;\n /** When set, the list payload includes each order's `items[]` (`with_items=1`). */\n with_items?: boolean | number;\n signal?: AbortSignal;\n}\n\nexport const order = {\n list: async (params?: OrdersListParams): Promise<OrdersListResponse> => {\n const {\n page,\n cursor,\n status,\n feedback_status: feedbackStatus,\n with_items: withItems,\n signal,\n } = params ?? {};\n\n const searchParams = new URLSearchParams();\n if (page !== undefined) searchParams.set('page', String(page));\n if (cursor) searchParams.set('cursor', cursor);\n if (status) searchParams.set('status', status);\n if (feedbackStatus) searchParams.set('feedback_status', feedbackStatus);\n if (withItems) searchParams.set('with_items', '1');\n\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`orders?${searchParams.toString()}`, options as any)\n .json<{ data: OrderListItem[] | null; cursor?: Pagination }>();\n\n return {\n data: response.data ?? [],\n cursor: response.cursor,\n };\n },\n\n find: async (id: string): Promise<OrderDetailResponse> => {\n const response = await api.get(`orders/${id}`).json<{ data: Order }>();\n\n return { order: response.data };\n },\n\n findForComponents: async (id: string): Promise<TwilightOrder> => {\n const response = await api\n .get(`orders/${id}`, {\n hooks: {\n // Runs after the client's own hook, which marks every request as from a React theme.\n beforeRequest: [({ request }) => request.headers.delete('s-theme-type')],\n },\n })\n .json<{ data: TwilightOrder }>();\n return response.data;\n },\n\n shipments: async (orderId: string): Promise<OrderShipmentItem[]> => {\n const response = await api\n .get(`orders/${orderId}/shipments`)\n .json<{ data: OrderShipmentItem[] }>();\n return response.data ?? [];\n },\n\n ratings: async (orderId: string): Promise<OrderRatingItem[]> => {\n const response = await api.get(`orders/${orderId}/ratings`).json<{ data: OrderRatingItem[] }>();\n return response.data ?? [];\n },\n\n findOrThrow: (id: string): Promise<OrderDetailResponse> =>\n orThrow(orUnauthorized(order.find(id))),\n\n thankYou: async (orderId: string): Promise<CheckoutThankYouData> => {\n const { data } = await api\n .get(`checkout/thank-you/${orderId}`)\n .json<{ data: CheckoutThankYouData }>();\n return data;\n },\n\n thankYouOrThrow: (orderId: string): Promise<CheckoutThankYouData> =>\n orThrow(order.thankYou(orderId)),\n\n queries: {\n list: (params?: Omit<OrdersListParams, 'signal'>) =>\n queryOptions({\n queryKey: ['orders', 'list', params],\n queryFn: ({ signal }) => order.list({ ...params, signal }),\n }),\n find: (id: string) =>\n queryOptions({\n queryKey: ['orders', 'detail', id],\n queryFn: () => order.find(id),\n }),\n shipments: (orderId: string) =>\n queryOptions({\n queryKey: ['orders', 'shipments', orderId],\n queryFn: () => order.shipments(orderId),\n }),\n ratings: (orderId: string) =>\n queryOptions({\n queryKey: ['orders', 'ratings', orderId],\n queryFn: () => order.ratings(orderId),\n }),\n thankYou: (orderId: string) =>\n queryOptions({\n queryKey: ['orders', 'thankYou', orderId],\n queryFn: () => order.thankYou(orderId),\n }),\n },\n};\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { configureNavigation, UnauthorizedError, NavigationProvider, resolveRelativePath } from './chunk-
|
|
1
|
+
import { configureNavigation, UnauthorizedError, NavigationProvider, resolveRelativePath } from './chunk-OMCSTKOT.js';
|
|
2
2
|
import { LinkProvider } from './chunk-BYMOPN2S.js';
|
|
3
3
|
import { useIsNativeApp } from './chunk-2TLIULJZ.js';
|
|
4
4
|
import { onSallaEvent } from './chunk-GYXUYHKO.js';
|
|
@@ -188,5 +188,5 @@ function TanStackNavigationProvider({ children }) {
|
|
|
188
188
|
}
|
|
189
189
|
|
|
190
190
|
export { NavigationSetup, TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter, requestHostOf };
|
|
191
|
-
//# sourceMappingURL=chunk-
|
|
192
|
-
//# sourceMappingURL=chunk-
|
|
191
|
+
//# sourceMappingURL=chunk-4OERTLJP.js.map
|
|
192
|
+
//# sourceMappingURL=chunk-4OERTLJP.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/tanstack/link.tsx","../src/tanstack/native-app-events.tsx","../src/utils/request-host.ts","../src/tanstack/navigation.tsx"],"names":["TanStackLink","tanstackNotFound","tanstackRedirect","useParams","jsx"],"mappings":"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","file":"chunk-2YCR7EEN.js","sourcesContent":["import { forwardRef, createElement } from 'react';\nimport { Link as TanStackLink, useParams } from '@tanstack/react-router';\nimport { isLocale } from '../providers/locale-constants';\nimport type { BaseLinkProps } from '../components/common/Link.types';\n\n/**\n * Routes live under an optional `/{-$locale}` param, so a bare `to=\"/brands\"`\n * resolves with the locale omitted and the $locale loader bounces the user to\n * the fallback locale. Prefix the current locale onto internal paths that\n * don't already carry one.\n */\nexport function localizeDestination(destination: string, locale?: string) {\n if (!locale || !destination.startsWith('/') || destination.startsWith('//')) return destination;\n const firstSegment = destination.split('/')[1]?.split(/[?#]/)[0];\n if (isLocale(firstSegment)) return destination;\n return destination === '/' ? `/${locale}` : `/${locale}${destination}`;\n}\n\n/**\n * TanStack Router Link adapter.\n * Translates framework-agnostic props to TanStack Router Link props.\n */\nexport const TanStackLinkAdapter = forwardRef<HTMLAnchorElement, BaseLinkProps>(\n (\n {\n to,\n href,\n children,\n className,\n style,\n title,\n target,\n rel,\n onClick,\n preload,\n replace,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n ) => {\n const { locale } = useParams({ strict: false }) as { locale?: string };\n const destination = localizeDestination(to ?? href ?? '/', locale);\n\n return createElement(\n TanStackLink,\n {\n ref,\n to: destination,\n className,\n style,\n title,\n target,\n rel,\n onClick,\n preload: preload === 'intent' || preload === false ? preload : undefined,\n replace,\n 'aria-label': ariaLabel,\n ...(rest as Record<string, unknown>),\n },\n children\n );\n }\n);\n\nTanStackLinkAdapter.displayName = 'TanStackLinkAdapter';\n\n/**\n * Create a TanStack Router Link adapter component.\n */\nexport function createTanStackLinkAdapter() {\n return TanStackLinkAdapter;\n}\n","import { useEffect } from 'react';\nimport { useRouter } from '@tanstack/react-router';\nimport { resolveRelativePath } from '../providers/NavigationProvider';\nimport { useTwilight } from '../providers/twilight-context';\nimport { isLocale } from '../providers/locale-constants';\nimport { getTwilightContext } from '../twilight/context';\nimport { useIsNativeApp } from '../native-app';\nimport { onSallaEvent } from '../utils/sdk-helpers';\nimport { hasStoreUrlBase } from '../utils/store-base';\nimport { localizeDestination } from './link';\n\nconst UI_UPDATE_EVENT = 'mobile::ui.update';\nconst OPEN_ORDER_EVENT = 'mobile::open.order';\nconst NAVIGATE_TO_EVENT = 'mobile::navigate.to';\n\n/**\n * Events the native app sends into its webview. `NavigationSetup` mounts this once, so a\n * theme adds no listener of its own:\n *\n * - `mobile::ui.update` re-runs the route loaders and refetches what is on screen.\n * - `mobile::open.order` `{ id }` opens that order, with a fresh cart.\n * - `mobile::navigate.to` `{ url }` opens a notification deep link in-app. Only a link to\n * this store is followed (`deepLinkPath`), so `javascript:`, off-site and other stores'\n * URLs are dropped.\n *\n * Nothing is mounted outside the app (`useIsNativeApp()`), so a browser runs none of it.\n */\nexport function NativeAppEvents({ locale }: { locale?: string }) {\n return useIsNativeApp() ? <Listeners locale={locale} /> : null;\n}\n\nfunction Listeners({ locale }: { locale?: string }) {\n useNativeAppEvents(locale);\n return null;\n}\n\n/** The listeners themselves. `NativeAppEvents` mounts them inside the app only. */\nexport function useNativeAppEvents(locale?: string): void {\n const router = useRouter();\n const { store } = useTwilight();\n const storeUrl = store?.url;\n const username = store?.username;\n\n useEffect(() => {\n // `href`, not `to`: the router parses the query and the hash out of it.\n const open = (path: string) =>\n void router.navigate({ href: localizeDestination(path, locale) });\n\n const refresh = () => {\n void Promise.allSettled([\n router.invalidate(),\n getTwilightContext().queryClient?.refetchQueries({ type: 'active' }),\n ]);\n };\n const openOrder = (data?: unknown) => {\n const rawId = (data as { id?: unknown } | undefined)?.id;\n if (typeof rawId !== 'string' && typeof rawId !== 'number') return;\n\n const id = String(rawId).trim();\n if (!id) return;\n\n void getTwilightContext().queryClient?.invalidateQueries({ queryKey: ['cart'] });\n open(`/account/orders/${encodeURIComponent(id)}`);\n };\n const navigateTo = (data?: unknown) => {\n const url = (data as { url?: unknown } | undefined)?.url;\n if (typeof url !== 'string' || !url.trim() || !storeUrl) return;\n\n const path = deepLinkPath(url.trim(), storeUrl, username);\n if (path) void router.navigate({ href: inLocale(path, locale) });\n };\n\n const offs = [\n onSallaEvent(UI_UPDATE_EVENT, refresh),\n onSallaEvent(OPEN_ORDER_EVENT, openOrder),\n onSallaEvent(NAVIGATE_TO_EVENT, navigateTo),\n ];\n return () => offs.forEach((off) => off());\n }, [router, locale, storeUrl, username]);\n}\n\n/** A URL that names its host: `https://…` or `//…`. Anything else is a path of this app. */\nfunction isAbsoluteUrl(url: string): boolean {\n if (url.startsWith('//')) return true;\n try {\n // Without a base, only a URL with its own scheme parses.\n new URL(url);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * The application path of a deep link to this store, or null for any other link.\n *\n * It passes the test a tapped link does (`resolveRelativePath`: the store's origin, the\n * username taken off), and one more. On a shared host that origin is every store's, so\n * an absolute link has to carry this store's username: without it, another store's\n * `/ar/offers` would open this store's offers.\n */\nfunction deepLinkPath(url: string, storeUrl: string, username?: string): string | null {\n const path = resolveRelativePath(url, storeUrl, username);\n if (!path || !isAbsoluteUrl(url)) return path;\n\n // Both parse: `resolveRelativePath` returns null when either does not.\n const { pathname } = new URL(url, window.location.href);\n return hasStoreUrlBase(pathname, new URL(storeUrl).pathname, username) ? path : null;\n}\n\n/**\n * A deep link in the locale the visitor is browsing in. A notification is written in one\n * language and opened in whichever is on screen, so the link's own locale gives way.\n *\n * The prefix is written here, not by `localizeDestination`: that one leaves a path alone\n * when it already starts with a locale, and would take the slug of `/ar/en/p456` for one.\n */\nfunction inLocale(path: string, locale?: string): string {\n const first = path.split('/')[1]?.split(/[?#]/)[0];\n const own = isLocale(first) ? path.slice(first.length + 1) : path;\n const rest = own.startsWith('/') ? own : `/${own}`;\n\n if (!locale) return rest;\n return rest === '/' ? `/${locale}` : `/${locale}${rest}`;\n}\n","/**\n * What the request itself is enough to describe: its host.\n *\n * Small, and deliberately its own module rather than a helper inside the\n * middleware. This value decides two things — which store a live storefront is,\n * and whether the request is allowed to name a store at all — so it is worth\n * testing directly instead of only through the wiring that calls it.\n */\nimport { isLoopback } from './cookies';\n\n/** The part of a `Request` this needs, so a test does not have to build a whole one. */\nexport interface HostSource {\n url: string;\n headers: { get(name: string): string | null };\n}\n\n/**\n * The host this request arrived on, with its port when it has one.\n *\n * Taken from the request URL, which in a Worker is the address the platform\n * actually routed on, and from the `Host` header only when that fails.\n *\n * **`X-Forwarded-Host` is deliberately not consulted.** A client can set it, and\n * this value gates `allowsRequestStoreId` — so honouring it would be a way to\n * talk a merchant's own domain into behaving like the preview host, and from\n * there into serving a stranger's shop. The dispatcher strips that header today;\n * a theme must not be one edit to another repository's allowlist away from a\n * spoofable identity.\n */\nexport function requestHostOf(request: HostSource): string | null {\n try {\n const fromUrl = new URL(request.url).host;\n if (fromUrl) return fromUrl;\n } catch {\n /* an unparseable URL falls through to the header */\n }\n\n return request.headers.get('Host')?.trim() || null;\n}\n\n/** The origin a browser reached this host on: `http` for a dev server, `https` otherwise. */\nexport function requestOriginOf(host: string): string {\n return `${isLoopback(host.replace(/:\\d+$/, '')) ? 'http' : 'https'}://${host}`;\n}\n","import {\n useNavigate,\n useParams,\n redirect as tanstackRedirect,\n notFound as tanstackNotFound,\n} from '@tanstack/react-router';\nimport {\n NavigationProvider,\n configureNavigation,\n type NavigateOptions,\n} from '../providers/NavigationProvider';\nimport { LinkProvider } from '../providers/LinkProvider';\nimport { TanStackLinkAdapter, localizeDestination } from './link';\nimport { NativeAppEvents } from './native-app-events';\nimport { useCallback, type ReactNode } from 'react';\nimport { UnauthorizedError, type RedirectOptions } from '../providers/NavigationProvider';\nimport { getRequestStore, getTwilightContext } from '../twilight/context';\nimport { resolveStoreBase, resolveStoreBaseFollowsLocale } from '../utils/store-identity';\nimport { loginRedirectHref } from '../utils/store-base';\nimport { requestOriginOf } from '../utils/request-host';\n\nfunction currentOrigin(): string | null {\n if (typeof window !== 'undefined') return window.location.origin;\n const host = getRequestStore().requestHost;\n return host ? requestOriginOf(host) : null;\n}\n\nconfigureNavigation({\n notFound: (message?: string) => {\n throw tanstackNotFound({ data: message });\n },\n redirect: (path: string, opts?: RedirectOptions) => {\n throw tanstackRedirect({ to: path, replace: opts?.replace, statusCode: opts?.statusCode });\n },\n unauthorized: (message?: string) => {\n const origin = currentOrigin();\n const { pathname, searchStr } = getTwilightContext().location;\n const href =\n origin &&\n loginRedirectHref({\n pathname,\n searchStr,\n origin,\n base: resolveStoreBase(),\n baseFollowsLocale: resolveStoreBaseFollowsLocale(),\n });\n // A full load, because the SDK only reads `intended_to` when a page starts.\n if (href) throw tanstackRedirect({ href, reloadDocument: true, replace: true });\n throw new UnauthorizedError(message);\n },\n});\n\n/**\n * TanStack navigation setup - wraps children with NavigationProvider and LinkProvider.\n * Called by TwilightProvider when client.framework === 'tanstack'.\n */\nexport function NavigationSetup({ children }: { children: ReactNode }) {\n const navigate = useNavigate();\n const { locale } = useParams({ strict: false }) as { locale?: string };\n const navigateFn = useCallback(\n (to: string, opts?: NavigateOptions) =>\n navigate({ to: localizeDestination(to, locale), replace: opts?.replace }),\n [navigate, locale]\n );\n\n return (\n <NavigationProvider navigate={navigateFn}>\n <NativeAppEvents locale={locale} />\n <LinkProvider adapter={TanStackLinkAdapter}>{children}</LinkProvider>\n </NavigationProvider>\n );\n}\n\n/** @deprecated Use NavigationSetup instead */\nexport function TanStackNavigationProvider({ children }: { children: ReactNode }) {\n const navigate = useNavigate();\n return (\n <NavigationProvider\n navigate={(to: string, opts?: NavigateOptions) => navigate({ to, replace: opts?.replace })}\n >\n <LinkProvider adapter={TanStackLinkAdapter}>{children}</LinkProvider>\n </NavigationProvider>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/tanstack/link.tsx","../src/tanstack/native-app-events.tsx","../src/utils/request-host.ts","../src/tanstack/navigation.tsx"],"names":["TanStackLink","tanstackNotFound","tanstackRedirect","useParams","jsx"],"mappings":";;;;;;;;;;;;AAWO,SAAS,mBAAA,CAAoB,aAAqB,MAAA,EAAiB;AACxE,EAAA,IAAI,CAAC,MAAA,IAAU,CAAC,WAAA,CAAY,UAAA,CAAW,GAAG,CAAA,IAAK,WAAA,CAAY,UAAA,CAAW,IAAI,CAAA,EAAG,OAAO,WAAA;AACpF,EAAA,MAAM,YAAA,GAAe,WAAA,CAAY,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,EAAG,KAAA,CAAM,MAAM,CAAA,CAAE,CAAC,CAAA;AAC/D,EAAA,IAAI,QAAA,CAAS,YAAY,CAAA,EAAG,OAAO,WAAA;AACnC,EAAA,OAAO,WAAA,KAAgB,MAAM,CAAA,CAAA,EAAI,MAAM,KAAK,CAAA,CAAA,EAAI,MAAM,GAAG,WAAW,CAAA,CAAA;AACtE;AAMO,IAAM,mBAAA,GAAsB,UAAA;AAAA,EACjC,CACE;AAAA,IACE,EAAA;AAAA,IACA,IAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,MAAA;AAAA,IACA,GAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA,EAAc,SAAA;AAAA,IACd,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,UAAU,EAAE,MAAA,EAAQ,OAAO,CAAA;AAC9C,IAAA,MAAM,WAAA,GAAc,mBAAA,CAAoB,EAAA,IAAM,IAAA,IAAQ,KAAK,MAAM,CAAA;AAEjE,IAAA,OAAO,aAAA;AAAA,MACLA,IAAA;AAAA,MACA;AAAA,QACE,GAAA;AAAA,QACA,EAAA,EAAI,WAAA;AAAA,QACJ,SAAA;AAAA,QACA,KAAA;AAAA,QACA,KAAA;AAAA,QACA,MAAA;AAAA,QACA,GAAA;AAAA,QACA,OAAA;AAAA,QACA,OAAA,EAAS,OAAA,KAAY,QAAA,IAAY,OAAA,KAAY,QAAQ,OAAA,GAAU,MAAA;AAAA,QAC/D,OAAA;AAAA,QACA,YAAA,EAAc,SAAA;AAAA,QACd,GAAI;AAAA,OACN;AAAA,MACA;AAAA,KACF;AAAA,EACF;AACF;AAEA,mBAAA,CAAoB,WAAA,GAAc,qBAAA;AAK3B,SAAS,yBAAA,GAA4B;AAC1C,EAAA,OAAO,mBAAA;AACT;AC7DA,IAAM,eAAA,GAAkB,mBAAA;AACxB,IAAM,gBAAA,GAAmB,oBAAA;AACzB,IAAM,iBAAA,GAAoB,qBAAA;AAcnB,SAAS,eAAA,CAAgB,EAAE,MAAA,EAAO,EAAwB;AAC/D,EAAA,OAAO,cAAA,EAAe,mBAAI,GAAA,CAAC,SAAA,EAAA,EAAU,QAAgB,CAAA,GAAK,IAAA;AAC5D;AAEA,SAAS,SAAA,CAAU,EAAE,MAAA,EAAO,EAAwB;AAClD,EAAA,kBAAA,CAAmB,MAAM,CAAA;AACzB,EAAA,OAAO,IAAA;AACT;AAGO,SAAS,mBAAmB,MAAA,EAAuB;AACxD,EAAA,MAAM,SAAS,SAAA,EAAU;AACzB,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAC9B,EAAA,MAAM,WAAW,KAAA,EAAO,GAAA;AACxB,EAAA,MAAM,WAAW,KAAA,EAAO,QAAA;AAExB,EAAA,SAAA,CAAU,MAAM;AAEd,IAAA,MAAM,IAAA,GAAO,CAAC,IAAA,KACZ,KAAK,MAAA,CAAO,QAAA,CAAS,EAAE,IAAA,EAAM,mBAAA,CAAoB,IAAA,EAAM,MAAM,CAAA,EAAG,CAAA;AAElE,IAAA,MAAM,UAAU,MAAM;AACpB,MAAA,KAAK,QAAQ,UAAA,CAAW;AAAA,QACtB,OAAO,UAAA,EAAW;AAAA,QAClB,oBAAmB,CAAE,WAAA,EAAa,eAAe,EAAE,IAAA,EAAM,UAAU;AAAA,OACpE,CAAA;AAAA,IACH,CAAA;AACA,IAAA,MAAM,SAAA,GAAY,CAAC,IAAA,KAAmB;AACpC,MAAA,MAAM,QAAS,IAAA,EAAuC,EAAA;AACtD,MAAA,IAAI,OAAO,KAAA,KAAU,QAAA,IAAY,OAAO,UAAU,QAAA,EAAU;AAE5D,MAAA,MAAM,EAAA,GAAK,MAAA,CAAO,KAAK,CAAA,CAAE,IAAA,EAAK;AAC9B,MAAA,IAAI,CAAC,EAAA,EAAI;AAET,MAAA,KAAK,kBAAA,GAAqB,WAAA,EAAa,iBAAA,CAAkB,EAAE,QAAA,EAAU,CAAC,MAAM,CAAA,EAAG,CAAA;AAC/E,MAAA,IAAA,CAAK,CAAA,gBAAA,EAAmB,kBAAA,CAAmB,EAAE,CAAC,CAAA,CAAE,CAAA;AAAA,IAClD,CAAA;AACA,IAAA,MAAM,UAAA,GAAa,CAAC,IAAA,KAAmB;AACrC,MAAA,MAAM,MAAO,IAAA,EAAwC,GAAA;AACrD,MAAA,IAAI,OAAO,QAAQ,QAAA,IAAY,CAAC,IAAI,IAAA,EAAK,IAAK,CAAC,QAAA,EAAU;AAEzD,MAAA,MAAM,OAAO,YAAA,CAAa,GAAA,CAAI,IAAA,EAAK,EAAG,UAAU,QAAQ,CAAA;AACxD,MAAA,IAAI,IAAA,EAAM,KAAK,MAAA,CAAO,QAAA,CAAS,EAAE,MAAM,QAAA,CAAS,IAAA,EAAM,MAAM,CAAA,EAAG,CAAA;AAAA,IACjE,CAAA;AAEA,IAAA,MAAM,IAAA,GAAO;AAAA,MACX,YAAA,CAAa,iBAAiB,OAAO,CAAA;AAAA,MACrC,YAAA,CAAa,kBAAkB,SAAS,CAAA;AAAA,MACxC,YAAA,CAAa,mBAAmB,UAAU;AAAA,KAC5C;AACA,IAAA,OAAO,MAAM,IAAA,CAAK,OAAA,CAAQ,CAAC,GAAA,KAAQ,KAAK,CAAA;AAAA,EAC1C,GAAG,CAAC,MAAA,EAAQ,MAAA,EAAQ,QAAA,EAAU,QAAQ,CAAC,CAAA;AACzC;AAGA,SAAS,cAAc,GAAA,EAAsB;AAC3C,EAAA,IAAI,GAAA,CAAI,UAAA,CAAW,IAAI,CAAA,EAAG,OAAO,IAAA;AACjC,EAAA,IAAI;AAEF,IAAA,IAAI,IAAI,GAAG,CAAA;AACX,IAAA,OAAO,IAAA;AAAA,EACT,CAAA,CAAA,MAAQ;AACN,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAUA,SAAS,YAAA,CAAa,GAAA,EAAa,QAAA,EAAkB,QAAA,EAAkC;AACrF,EAAA,MAAM,IAAA,GAAO,mBAAA,CAAoB,GAAA,EAAK,QAAA,EAAU,QAAQ,CAAA;AACxD,EAAA,IAAI,CAAC,IAAA,IAAQ,CAAC,aAAA,CAAc,GAAG,GAAG,OAAO,IAAA;AAGzC,EAAA,MAAM,EAAE,UAAS,GAAI,IAAI,IAAI,GAAA,EAAK,MAAA,CAAO,SAAS,IAAI,CAAA;AACtD,EAAA,OAAO,eAAA,CAAgB,UAAU,IAAI,GAAA,CAAI,QAAQ,CAAA,CAAE,QAAA,EAAU,QAAQ,CAAA,GAAI,IAAA,GAAO,IAAA;AAClF;AASA,SAAS,QAAA,CAAS,MAAc,MAAA,EAAyB;AACvD,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,KAAA,CAAM,GAAG,CAAA,CAAE,CAAC,CAAA,EAAG,KAAA,CAAM,MAAM,CAAA,CAAE,CAAC,CAAA;AACjD,EAAA,MAAM,GAAA,GAAM,SAAS,KAAK,CAAA,GAAI,KAAK,KAAA,CAAM,KAAA,CAAM,MAAA,GAAS,CAAC,CAAA,GAAI,IAAA;AAC7D,EAAA,MAAM,OAAO,GAAA,CAAI,UAAA,CAAW,GAAG,CAAA,GAAI,GAAA,GAAM,IAAI,GAAG,CAAA,CAAA;AAEhD,EAAA,IAAI,CAAC,QAAQ,OAAO,IAAA;AACpB,EAAA,OAAO,IAAA,KAAS,MAAM,CAAA,CAAA,EAAI,MAAM,KAAK,CAAA,CAAA,EAAI,MAAM,GAAG,IAAI,CAAA,CAAA;AACxD;;;AC/FO,SAAS,cAAc,OAAA,EAAoC;AAChE,EAAA,IAAI;AACF,IAAA,MAAM,OAAA,GAAU,IAAI,GAAA,CAAI,OAAA,CAAQ,GAAG,CAAA,CAAE,IAAA;AACrC,IAAA,IAAI,SAAS,OAAO,OAAA;AAAA,EACtB,CAAA,CAAA,MAAQ;AAAA,EAER;AAEA,EAAA,OAAO,QAAQ,OAAA,CAAQ,GAAA,CAAI,MAAM,CAAA,EAAG,MAAK,IAAK,IAAA;AAChD;AAGO,SAAS,gBAAgB,IAAA,EAAsB;AACpD,EAAA,OAAO,CAAA,EAAG,UAAA,CAAW,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAS,EAAE,CAAC,CAAA,GAAI,MAAA,GAAS,OAAO,CAAA,GAAA,EAAM,IAAI,CAAA,CAAA;AAC9E;ACtBA,SAAS,aAAA,GAA+B;AACtC,EAAA,IAAI,OAAO,MAAA,KAAW,WAAA,EAAa,OAAO,OAAO,QAAA,CAAS,MAAA;AAC1D,EAAA,MAAM,IAAA,GAAO,iBAAgB,CAAE,WAAA;AAC/B,EAAA,OAAO,IAAA,GAAO,eAAA,CAAgB,IAAI,CAAA,GAAI,IAAA;AACxC;AAEA,mBAAA,CAAoB;AAAA,EAClB,QAAA,EAAU,CAAC,OAAA,KAAqB;AAC9B,IAAA,MAAMC,QAAA,CAAiB,EAAE,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,EAC1C,CAAA;AAAA,EACA,QAAA,EAAU,CAAC,IAAA,EAAc,IAAA,KAA2B;AAClD,IAAA,MAAMC,QAAA,CAAiB,EAAE,EAAA,EAAI,IAAA,EAAM,OAAA,EAAS,MAAM,OAAA,EAAS,UAAA,EAAY,IAAA,EAAM,UAAA,EAAY,CAAA;AAAA,EAC3F,CAAA;AAAA,EACA,YAAA,EAAc,CAAC,OAAA,KAAqB;AAClC,IAAA,MAAM,SAAS,aAAA,EAAc;AAC7B,IAAA,MAAM,EAAE,QAAA,EAAU,SAAA,EAAU,GAAI,oBAAmB,CAAE,QAAA;AACrD,IAAA,MAAM,IAAA,GACJ,UACA,iBAAA,CAAkB;AAAA,MAChB,QAAA;AAAA,MACA,SAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAM,gBAAA,EAAiB;AAAA,MACvB,mBAAmB,6BAAA;AAA8B,KAClD,CAAA;AAEH,IAAA,IAAI,IAAA,QAAYA,QAAA,CAAiB,EAAE,MAAM,cAAA,EAAgB,IAAA,EAAM,OAAA,EAAS,IAAA,EAAM,CAAA;AAC9E,IAAA,MAAM,IAAI,kBAAkB,OAAO,CAAA;AAAA,EACrC;AACF,CAAC,CAAA;AAMM,SAAS,eAAA,CAAgB,EAAE,QAAA,EAAS,EAA4B;AACrE,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,MAAM,EAAE,MAAA,EAAO,GAAIC,UAAU,EAAE,MAAA,EAAQ,OAAO,CAAA;AAC9C,EAAA,MAAM,UAAA,GAAa,WAAA;AAAA,IACjB,CAAC,EAAA,EAAY,IAAA,KACX,QAAA,CAAS,EAAE,EAAA,EAAI,mBAAA,CAAoB,EAAA,EAAI,MAAM,CAAA,EAAG,OAAA,EAAS,IAAA,EAAM,SAAS,CAAA;AAAA,IAC1E,CAAC,UAAU,MAAM;AAAA,GACnB;AAEA,EAAA,uBACE,IAAA,CAAC,kBAAA,EAAA,EAAmB,QAAA,EAAU,UAAA,EAC5B,QAAA,EAAA;AAAA,oBAAAC,GAAAA,CAAC,mBAAgB,MAAA,EAAgB,CAAA;AAAA,oBACjCA,GAAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAS,qBAAsB,QAAA,EAAS;AAAA,GAAA,EACxD,CAAA;AAEJ;AAGO,SAAS,0BAAA,CAA2B,EAAE,QAAA,EAAS,EAA4B;AAChF,EAAA,MAAM,WAAW,WAAA,EAAY;AAC7B,EAAA,uBACEA,GAAAA;AAAA,IAAC,kBAAA;AAAA,IAAA;AAAA,MACC,QAAA,EAAU,CAAC,EAAA,EAAY,IAAA,KAA2B,QAAA,CAAS,EAAE,EAAA,EAAI,OAAA,EAAS,IAAA,EAAM,OAAA,EAAS,CAAA;AAAA,MAEzF,QAAA,kBAAAA,GAAAA,CAAC,YAAA,EAAA,EAAa,OAAA,EAAS,qBAAsB,QAAA,EAAS;AAAA;AAAA,GACxD;AAEJ","file":"chunk-4OERTLJP.js","sourcesContent":["import { forwardRef, createElement } from 'react';\nimport { Link as TanStackLink, useParams } from '@tanstack/react-router';\nimport { isLocale } from '../providers/locale-constants';\nimport type { BaseLinkProps } from '../components/common/Link.types';\n\n/**\n * Routes live under an optional `/{-$locale}` param, so a bare `to=\"/brands\"`\n * resolves with the locale omitted and the $locale loader bounces the user to\n * the fallback locale. Prefix the current locale onto internal paths that\n * don't already carry one.\n */\nexport function localizeDestination(destination: string, locale?: string) {\n if (!locale || !destination.startsWith('/') || destination.startsWith('//')) return destination;\n const firstSegment = destination.split('/')[1]?.split(/[?#]/)[0];\n if (isLocale(firstSegment)) return destination;\n return destination === '/' ? `/${locale}` : `/${locale}${destination}`;\n}\n\n/**\n * TanStack Router Link adapter.\n * Translates framework-agnostic props to TanStack Router Link props.\n */\nexport const TanStackLinkAdapter = forwardRef<HTMLAnchorElement, BaseLinkProps>(\n (\n {\n to,\n href,\n children,\n className,\n style,\n title,\n target,\n rel,\n onClick,\n preload,\n replace,\n 'aria-label': ariaLabel,\n ...rest\n },\n ref\n ) => {\n const { locale } = useParams({ strict: false }) as { locale?: string };\n const destination = localizeDestination(to ?? href ?? '/', locale);\n\n return createElement(\n TanStackLink,\n {\n ref,\n to: destination,\n className,\n style,\n title,\n target,\n rel,\n onClick,\n preload: preload === 'intent' || preload === false ? preload : undefined,\n replace,\n 'aria-label': ariaLabel,\n ...(rest as Record<string, unknown>),\n },\n children\n );\n }\n);\n\nTanStackLinkAdapter.displayName = 'TanStackLinkAdapter';\n\n/**\n * Create a TanStack Router Link adapter component.\n */\nexport function createTanStackLinkAdapter() {\n return TanStackLinkAdapter;\n}\n","import { useEffect } from 'react';\nimport { useRouter } from '@tanstack/react-router';\nimport { resolveRelativePath } from '../providers/NavigationProvider';\nimport { useTwilight } from '../providers/twilight-context';\nimport { isLocale } from '../providers/locale-constants';\nimport { getTwilightContext } from '../twilight/context';\nimport { useIsNativeApp } from '../native-app';\nimport { onSallaEvent } from '../utils/sdk-helpers';\nimport { hasStoreUrlBase } from '../utils/store-base';\nimport { localizeDestination } from './link';\n\nconst UI_UPDATE_EVENT = 'mobile::ui.update';\nconst OPEN_ORDER_EVENT = 'mobile::open.order';\nconst NAVIGATE_TO_EVENT = 'mobile::navigate.to';\n\n/**\n * Events the native app sends into its webview. `NavigationSetup` mounts this once, so a\n * theme adds no listener of its own:\n *\n * - `mobile::ui.update` re-runs the route loaders and refetches what is on screen.\n * - `mobile::open.order` `{ id }` opens that order, with a fresh cart.\n * - `mobile::navigate.to` `{ url }` opens a notification deep link in-app. Only a link to\n * this store is followed (`deepLinkPath`), so `javascript:`, off-site and other stores'\n * URLs are dropped.\n *\n * Nothing is mounted outside the app (`useIsNativeApp()`), so a browser runs none of it.\n */\nexport function NativeAppEvents({ locale }: { locale?: string }) {\n return useIsNativeApp() ? <Listeners locale={locale} /> : null;\n}\n\nfunction Listeners({ locale }: { locale?: string }) {\n useNativeAppEvents(locale);\n return null;\n}\n\n/** The listeners themselves. `NativeAppEvents` mounts them inside the app only. */\nexport function useNativeAppEvents(locale?: string): void {\n const router = useRouter();\n const { store } = useTwilight();\n const storeUrl = store?.url;\n const username = store?.username;\n\n useEffect(() => {\n // `href`, not `to`: the router parses the query and the hash out of it.\n const open = (path: string) =>\n void router.navigate({ href: localizeDestination(path, locale) });\n\n const refresh = () => {\n void Promise.allSettled([\n router.invalidate(),\n getTwilightContext().queryClient?.refetchQueries({ type: 'active' }),\n ]);\n };\n const openOrder = (data?: unknown) => {\n const rawId = (data as { id?: unknown } | undefined)?.id;\n if (typeof rawId !== 'string' && typeof rawId !== 'number') return;\n\n const id = String(rawId).trim();\n if (!id) return;\n\n void getTwilightContext().queryClient?.invalidateQueries({ queryKey: ['cart'] });\n open(`/account/orders/${encodeURIComponent(id)}`);\n };\n const navigateTo = (data?: unknown) => {\n const url = (data as { url?: unknown } | undefined)?.url;\n if (typeof url !== 'string' || !url.trim() || !storeUrl) return;\n\n const path = deepLinkPath(url.trim(), storeUrl, username);\n if (path) void router.navigate({ href: inLocale(path, locale) });\n };\n\n const offs = [\n onSallaEvent(UI_UPDATE_EVENT, refresh),\n onSallaEvent(OPEN_ORDER_EVENT, openOrder),\n onSallaEvent(NAVIGATE_TO_EVENT, navigateTo),\n ];\n return () => offs.forEach((off) => off());\n }, [router, locale, storeUrl, username]);\n}\n\n/** A URL that names its host: `https://…` or `//…`. Anything else is a path of this app. */\nfunction isAbsoluteUrl(url: string): boolean {\n if (url.startsWith('//')) return true;\n try {\n // Without a base, only a URL with its own scheme parses.\n new URL(url);\n return true;\n } catch {\n return false;\n }\n}\n\n/**\n * The application path of a deep link to this store, or null for any other link.\n *\n * It passes the test a tapped link does (`resolveRelativePath`: the store's origin, the\n * username taken off), and one more. On a shared host that origin is every store's, so\n * an absolute link has to carry this store's username: without it, another store's\n * `/ar/offers` would open this store's offers.\n */\nfunction deepLinkPath(url: string, storeUrl: string, username?: string): string | null {\n const path = resolveRelativePath(url, storeUrl, username);\n if (!path || !isAbsoluteUrl(url)) return path;\n\n // Both parse: `resolveRelativePath` returns null when either does not.\n const { pathname } = new URL(url, window.location.href);\n return hasStoreUrlBase(pathname, new URL(storeUrl).pathname, username) ? path : null;\n}\n\n/**\n * A deep link in the locale the visitor is browsing in. A notification is written in one\n * language and opened in whichever is on screen, so the link's own locale gives way.\n *\n * The prefix is written here, not by `localizeDestination`: that one leaves a path alone\n * when it already starts with a locale, and would take the slug of `/ar/en/p456` for one.\n */\nfunction inLocale(path: string, locale?: string): string {\n const first = path.split('/')[1]?.split(/[?#]/)[0];\n const own = isLocale(first) ? path.slice(first.length + 1) : path;\n const rest = own.startsWith('/') ? own : `/${own}`;\n\n if (!locale) return rest;\n return rest === '/' ? `/${locale}` : `/${locale}${rest}`;\n}\n","/**\n * What the request itself is enough to describe: its host.\n *\n * Small, and deliberately its own module rather than a helper inside the\n * middleware. This value decides two things — which store a live storefront is,\n * and whether the request is allowed to name a store at all — so it is worth\n * testing directly instead of only through the wiring that calls it.\n */\nimport { isLoopback } from './cookies';\n\n/** The part of a `Request` this needs, so a test does not have to build a whole one. */\nexport interface HostSource {\n url: string;\n headers: { get(name: string): string | null };\n}\n\n/**\n * The host this request arrived on, with its port when it has one.\n *\n * Taken from the request URL, which in a Worker is the address the platform\n * actually routed on, and from the `Host` header only when that fails.\n *\n * **`X-Forwarded-Host` is deliberately not consulted.** A client can set it, and\n * this value gates `allowsRequestStoreId` — so honouring it would be a way to\n * talk a merchant's own domain into behaving like the preview host, and from\n * there into serving a stranger's shop. The dispatcher strips that header today;\n * a theme must not be one edit to another repository's allowlist away from a\n * spoofable identity.\n */\nexport function requestHostOf(request: HostSource): string | null {\n try {\n const fromUrl = new URL(request.url).host;\n if (fromUrl) return fromUrl;\n } catch {\n /* an unparseable URL falls through to the header */\n }\n\n return request.headers.get('Host')?.trim() || null;\n}\n\n/** The origin a browser reached this host on: `http` for a dev server, `https` otherwise. */\nexport function requestOriginOf(host: string): string {\n return `${isLoopback(host.replace(/:\\d+$/, '')) ? 'http' : 'https'}://${host}`;\n}\n","import {\n useNavigate,\n useParams,\n redirect as tanstackRedirect,\n notFound as tanstackNotFound,\n} from '@tanstack/react-router';\nimport {\n NavigationProvider,\n configureNavigation,\n type NavigateOptions,\n} from '../providers/NavigationProvider';\nimport { LinkProvider } from '../providers/LinkProvider';\nimport { TanStackLinkAdapter, localizeDestination } from './link';\nimport { NativeAppEvents } from './native-app-events';\nimport { useCallback, type ReactNode } from 'react';\nimport { UnauthorizedError, type RedirectOptions } from '../providers/NavigationProvider';\nimport { getRequestStore, getTwilightContext } from '../twilight/context';\nimport { resolveStoreBase, resolveStoreBaseFollowsLocale } from '../utils/store-identity';\nimport { loginRedirectHref } from '../utils/store-base';\nimport { requestOriginOf } from '../utils/request-host';\n\nfunction currentOrigin(): string | null {\n if (typeof window !== 'undefined') return window.location.origin;\n const host = getRequestStore().requestHost;\n return host ? requestOriginOf(host) : null;\n}\n\nconfigureNavigation({\n notFound: (message?: string) => {\n throw tanstackNotFound({ data: message });\n },\n redirect: (path: string, opts?: RedirectOptions) => {\n throw tanstackRedirect({ to: path, replace: opts?.replace, statusCode: opts?.statusCode });\n },\n unauthorized: (message?: string) => {\n const origin = currentOrigin();\n const { pathname, searchStr } = getTwilightContext().location;\n const href =\n origin &&\n loginRedirectHref({\n pathname,\n searchStr,\n origin,\n base: resolveStoreBase(),\n baseFollowsLocale: resolveStoreBaseFollowsLocale(),\n });\n // A full load, because the SDK only reads `intended_to` when a page starts.\n if (href) throw tanstackRedirect({ href, reloadDocument: true, replace: true });\n throw new UnauthorizedError(message);\n },\n});\n\n/**\n * TanStack navigation setup - wraps children with NavigationProvider and LinkProvider.\n * Called by TwilightProvider when client.framework === 'tanstack'.\n */\nexport function NavigationSetup({ children }: { children: ReactNode }) {\n const navigate = useNavigate();\n const { locale } = useParams({ strict: false }) as { locale?: string };\n const navigateFn = useCallback(\n (to: string, opts?: NavigateOptions) =>\n navigate({ to: localizeDestination(to, locale), replace: opts?.replace }),\n [navigate, locale]\n );\n\n return (\n <NavigationProvider navigate={navigateFn}>\n <NativeAppEvents locale={locale} />\n <LinkProvider adapter={TanStackLinkAdapter}>{children}</LinkProvider>\n </NavigationProvider>\n );\n}\n\n/** @deprecated Use NavigationSetup instead */\nexport function TanStackNavigationProvider({ children }: { children: ReactNode }) {\n const navigate = useNavigate();\n return (\n <NavigationProvider\n navigate={(to: string, opts?: NavigateOptions) => navigate({ to, replace: opts?.replace })}\n >\n <LinkProvider adapter={TanStackLinkAdapter}>{children}</LinkProvider>\n </NavigationProvider>\n );\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { useDate } from './chunk-
|
|
1
|
+
import { useDate } from './chunk-PBRCB2N3.js';
|
|
2
2
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
3
|
-
import { Image } from './chunk-
|
|
3
|
+
import { Image } from './chunk-63STL623.js';
|
|
4
4
|
import { Link } from './chunk-AXW67SY7.js';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -61,5 +61,5 @@ function BlogListLayout({
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
export { BlogArticleCard, BlogListLayout };
|
|
64
|
-
//# sourceMappingURL=chunk-
|
|
65
|
-
//# sourceMappingURL=chunk-
|
|
64
|
+
//# sourceMappingURL=chunk-5D44YQLO.js.map
|
|
65
|
+
//# sourceMappingURL=chunk-5D44YQLO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/blog/components.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/routes/blog/components.tsx"],"names":[],"mappings":"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","file":"chunk-5D44YQLO.js","sourcesContent":["import type { ReactNode } from 'react';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useDate } from '../../hooks';\nimport { Image, Link } from '../../components/common';\nimport type { BlogCategory, ArticleSummary } from './types';\n\nexport function BlogCategoriesSidebar({ categories }: { categories: BlogCategory[] }) {\n const { t } = useTranslation();\n\n if (!categories.length) return null;\n\n return (\n <nav aria-label=\"Sidebar\" className=\"hidden lg:block lg:sticky shrink-0 top-24 col-span-2\">\n <h2 className=\"font-bold mb-3\">{t('pages.blog_categories.categories')}</h2>\n <ul>\n {categories.map((category) => (\n <li key={category.id} className={category.is_current ? 'text-primary' : ''}>\n <Link className=\"py-3 block text-sm hover:text-primary\" to={category.url}>\n {category.name}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n}\n\nexport function BlogArticleCard({\n article,\n showAuthor = false,\n}: {\n article: ArticleSummary;\n showAuthor?: boolean;\n}) {\n const { format: formatDate } = useDate();\n\n return (\n <div className=\"list-block post-entry relative h-full transition-shadow duration-500 bg-white hover:shadow-default rounded-lg justify-around overflow-hidden flex flex-col\">\n <Link\n to={article.url}\n className=\"post-entry__image relative overflow-hidden hover:opacity-90 w-full h-56 bg-border-color flex items-center justify-center\"\n >\n {article.image && (\n <Image\n className=\"h-full w-full object-cover\"\n src={article.image}\n alt={article.name}\n aspectRatio=\"16/9\"\n />\n )}\n </Link>\n <div className=\"flex-1 px-5 pt-5 pb-7\">\n <div className=\"mb-2.5 text-gray-500 rounded-md inline-flex text-sm rtl:space-x-reverse space-x-5\">\n <div className=\"flex items-center\">\n <i className=\"sicon-calendar-date rtl:ml-1 ltr:mr-1\"></i>\n <span>{formatDate(article.created_at)}</span>\n </div>\n {showAuthor && article.author && (\n <Link to={article.author.url} className=\"flex items-center hover:text-dark\">\n <i className=\"sicon-user rtl:ml-1 ltr:mr-1\"></i>\n <span>{article.author.name}</span>\n </Link>\n )}\n </div>\n <h3 className=\"post-entry__title text-sm font-bold text-gray-800 leading-6 mb-2.5\">\n <Link to={article.url}>{article.name}</Link>\n </h3>\n <p className=\"text-sm text-gray-500 leading-6 mb-2.5\">{article.description}</p>\n </div>\n </div>\n );\n}\n\nexport function BlogListLayout({\n categories,\n children,\n}: {\n categories: BlogCategory[];\n children: ReactNode;\n}) {\n return (\n <div className=\"grid grid-cols-1 lg:grid-cols-8 gap-8\">\n <BlogCategoriesSidebar categories={categories} />\n <div className=\"main-content lg:col-span-6\">{children}</div>\n </div>\n );\n}\n"]}
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { ErrorPage } from './chunk-Z4Y55HWX.js';
|
|
2
2
|
import { tanstackHeadAdapter } from './chunk-EHTLXK5F.js';
|
|
3
|
-
import { dispatchRouteChanged, dispatchProductViewed } from './chunk-
|
|
4
|
-
import { store } from './chunk-
|
|
5
|
-
import { translations } from './chunk-
|
|
6
|
-
import { shouldDehydrateQuery } from './chunk-
|
|
3
|
+
import { dispatchRouteChanged, dispatchProductViewed } from './chunk-DT2NKG5P.js';
|
|
4
|
+
import { store } from './chunk-MZJV5G7V.js';
|
|
5
|
+
import { translations } from './chunk-Q7MT5MVO.js';
|
|
6
|
+
import { shouldDehydrateQuery } from './chunk-KND3TI4S.js';
|
|
7
7
|
import { VIEW_AS_OWNER_COOKIE_NAME, rootHead, subscribeSnippetPageTargets, ownerLinkMatches, ownerCookieMatches, showsMaintenancePage, needsDocumentLoad } from './chunk-KQEBYXYB.js';
|
|
8
|
-
import { apps } from './chunk-
|
|
8
|
+
import { apps } from './chunk-7VLVD3KJ.js';
|
|
9
9
|
import { setHeadAdapter } from './chunk-GD26FI4J.js';
|
|
10
|
-
import { RedirectError, NotFoundError, UnauthorizedError, isMissingResource, responseStatusOf } from './chunk-
|
|
10
|
+
import { RedirectError, NotFoundError, UnauthorizedError, isMissingResource, responseStatusOf } from './chunk-OMCSTKOT.js';
|
|
11
11
|
import { RouteId } from './chunk-OUW6WESU.js';
|
|
12
12
|
import { useDocumentClass } from './chunk-JWXJPJBO.js';
|
|
13
13
|
import { toReactProps, mergeElementAttrs } from './chunk-CW625T2E.js';
|
|
14
|
-
import { advertisement } from './chunk-
|
|
14
|
+
import { advertisement } from './chunk-X7L5YGO2.js';
|
|
15
15
|
import { syncSdkLocale, syncSdkThemeVersion } from './chunk-GYXUYHKO.js';
|
|
16
16
|
import { LANGUAGE_COOKIE_NAME, LANGUAGE_COOKIE_MAX_AGE, AUTH_TOKEN_COOKIE_NAME, SCOPE_COOKIE_NAME, SCOPE_COOKIE_MAX_AGE, extractScopeFromUrl, resolveRequestScope, sameScope, extractScopeFromCookies, resolveStoreBase, resolveStoreBaseFollowsLocale, syncScopeCookie, resolveStoreBaseRedirect, extractTokenFromCookies, prefixStoreBase, hasLanguageParam, withLanguageParam, virtualLocale, stripStoreBase, decideSharedHostLanguage } from './chunk-FHU2MXZA.js';
|
|
17
17
|
import { updateTwilightContext, createI18nInstance, getTwilightContext, SettingsError, messagesForLocale } from './chunk-7VNVCHID.js';
|
|
@@ -366,7 +366,7 @@ function resolveRouteId(tanstackId) {
|
|
|
366
366
|
return TANSTACK_ROUTE_ID_MAP[tanstackId] ?? tanstackId;
|
|
367
367
|
}
|
|
368
368
|
var LazyNotFoundPage = lazy(
|
|
369
|
-
() => import('./not-found-
|
|
369
|
+
() => import('./not-found-2Y2JGOFF.js').then((m) => ({ default: m.NotFoundPage }))
|
|
370
370
|
);
|
|
371
371
|
function StoreUnavailablePage() {
|
|
372
372
|
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
|
|
@@ -785,5 +785,5 @@ function tanstackDocumentAdapter(descriptor) {
|
|
|
785
785
|
}
|
|
786
786
|
|
|
787
787
|
export { RouteDocumentSync, TanStackDocumentSync, createRouter, createTwilightRootRoute, tanstackDocumentAdapter, useTanstackDocumentAttrs };
|
|
788
|
-
//# sourceMappingURL=chunk-
|
|
789
|
-
//# sourceMappingURL=chunk-
|
|
788
|
+
//# sourceMappingURL=chunk-5G6KOIVY.js.map
|
|
789
|
+
//# sourceMappingURL=chunk-5G6KOIVY.js.map
|