@salla.sa/twilight-theme-engine 1.0.61 → 1.0.63
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-RAQX7VHU.js → AddToCartForm-365O6IQY.js} +26 -6
- package/dist/AddToCartForm-365O6IQY.js.map +1 -0
- package/dist/{BlogAuthorPage-HV6JUJNL.js → BlogAuthorPage-QIII3YRK.js} +12 -11
- package/dist/BlogAuthorPage-QIII3YRK.js.map +1 -0
- package/dist/{BlogCategoryPage-ATPIVUAL.js → BlogCategoryPage-HNGWYTN6.js} +12 -11
- package/dist/BlogCategoryPage-HNGWYTN6.js.map +1 -0
- package/dist/{BlogPage-6IIOSB45.js → BlogPage-7NGO5VLL.js} +10 -9
- package/dist/BlogPage-7NGO5VLL.js.map +1 -0
- package/dist/{BlogSinglePage-DV3XYB26.js → BlogSinglePage-Y42LPA2L.js} +10 -9
- package/dist/BlogSinglePage-Y42LPA2L.js.map +1 -0
- package/dist/{BlogTagPage-RVJIXERD.js → BlogTagPage-ZCFYLXH6.js} +12 -11
- package/dist/BlogTagPage-ZCFYLXH6.js.map +1 -0
- package/dist/{BrandsPage-RQXP67LV.js → BrandsPage-PPJVASUW.js} +11 -10
- package/dist/BrandsPage-PPJVASUW.js.map +1 -0
- package/dist/{Breadcrumb-NXXVZJJD.js → Breadcrumb-4DUAJK3V.js} +10 -9
- package/dist/Breadcrumb-4DUAJK3V.js.map +1 -0
- package/dist/{CartItem-XRWTSJB5.js → CartItem-T4N3HMXU.js} +83 -59
- package/dist/CartItem-T4N3HMXU.js.map +1 -0
- package/dist/{CartSummary-F6BY5APF.js → CartSummary-Z25JDFWN.js} +10 -9
- package/dist/CartSummary-Z25JDFWN.js.map +1 -0
- package/dist/{Copyright-TEDF6HMC.js → Copyright-WNJIDKSR.js} +3 -3
- package/dist/{Copyright-TEDF6HMC.js.map → Copyright-WNJIDKSR.js.map} +1 -1
- package/dist/{CustomerLayout-T5BSTU6T.js → CustomerLayout-A6DVYYC3.js} +10 -9
- package/dist/CustomerLayout-A6DVYYC3.js.map +1 -0
- package/dist/{Footer-IRX2WAEF.js → Footer-3YBOSAO5.js} +10 -9
- package/dist/{Footer-IRX2WAEF.js.map → Footer-3YBOSAO5.js.map} +1 -1
- package/dist/{Header-HQKDTZSI.js → Header-6M7TVMSW.js} +6 -6
- package/dist/{Header-HQKDTZSI.js.map → Header-6M7TVMSW.js.map} +1 -1
- package/dist/LoyaltyPage-XQJ6RDT6.js +61 -0
- package/dist/LoyaltyPage-XQJ6RDT6.js.map +1 -0
- package/dist/LoyaltyPointsPage-K75LJNNP.js +16 -0
- package/dist/LoyaltyPointsPage-K75LJNNP.js.map +1 -0
- package/dist/{MainMenu-4ZPVIJCN.js → MainMenu-V7GPKDTU.js} +3 -3
- package/dist/{MainMenu-4ZPVIJCN.js.map → MainMenu-V7GPKDTU.js.map} +1 -1
- package/dist/{MasterLayout-G3MVZLYZ.js → MasterLayout-MBQ4JM3D.js} +10 -9
- package/dist/{MasterLayout-G3MVZLYZ.js.map → MasterLayout-MBQ4JM3D.js.map} +1 -1
- package/dist/{MobileMenu-A5DBTPS7.js → MobileMenu-UFX4ZHW7.js} +10 -9
- package/dist/MobileMenu-UFX4ZHW7.js.map +1 -0
- package/dist/{NotificationsPage-T2O67MLD.js → NotificationsPage-M3YK2HRM.js} +10 -9
- package/dist/NotificationsPage-M3YK2HRM.js.map +1 -0
- package/dist/{OrderSinglePage-4W4JZX7I.js → OrderSinglePage-7LIUMNRB.js} +11 -10
- package/dist/OrderSinglePage-7LIUMNRB.js.map +1 -0
- package/dist/{OrdersPage-DYKFBMRC.js → OrdersPage-WI4OSGBF.js} +11 -10
- package/dist/OrdersPage-WI4OSGBF.js.map +1 -0
- package/dist/{PageSingle-6U6GPMXJ.js → PageSingle-HRMSVNHN.js} +4 -4
- package/dist/{PageSingle-6U6GPMXJ.js.map → PageSingle-HRMSVNHN.js.map} +1 -1
- package/dist/{ProductDetails-OWSIL357.js → ProductDetails-GAC3NYQM.js} +10 -3
- package/dist/ProductDetails-GAC3NYQM.js.map +1 -0
- package/dist/{ProfilePage-LLCIJHAI.js → ProfilePage-33I2XTJ6.js} +10 -9
- package/dist/ProfilePage-33I2XTJ6.js.map +1 -0
- package/dist/{SeoCartWidget-ZL3FTBWK.js → SeoCartWidget-AEG2YLEF.js} +13 -12
- package/dist/SeoCartWidget-AEG2YLEF.js.map +1 -0
- package/dist/{SettingsPage-2XU5IF4A.js → SettingsPage-N3M677LP.js} +10 -9
- package/dist/SettingsPage-N3M677LP.js.map +1 -0
- package/dist/{StoreClosedNotification-CNJI2Q26.js → StoreClosedNotification-5MTDRRC3.js} +11 -10
- package/dist/{StoreClosedNotification-CNJI2Q26.js.map → StoreClosedNotification-5MTDRRC3.js.map} +1 -1
- package/dist/{TestimonialsPage-QYPLMNWL.js → TestimonialsPage-Z64P6MZX.js} +4 -4
- package/dist/{TestimonialsPage-QYPLMNWL.js.map → TestimonialsPage-Z64P6MZX.js.map} +1 -1
- package/dist/{ThankYouPage-WG3CM5JP.js → ThankYouPage-ZXQZMWCX.js} +14 -12
- package/dist/ThankYouPage-ZXQZMWCX.js.map +1 -0
- package/dist/{WalletPage-J7CH22JM.js → WalletPage-557AU5GH.js} +10 -9
- package/dist/WalletPage-557AU5GH.js.map +1 -0
- package/dist/{WishlistPage-ZXWYB56R.js → WishlistPage-HTDQW2N2.js} +150 -26
- package/dist/WishlistPage-HTDQW2N2.js.map +1 -0
- package/dist/api/brands.js +3 -3
- package/dist/api/cart.d.ts +7 -6
- package/dist/api/cart.d.ts.map +1 -1
- package/dist/api/cart.js +3 -3
- package/dist/api/category.js +3 -3
- package/dist/api/loyalty.js +3 -3
- package/dist/api/order.js +3 -3
- package/dist/api/page.js +3 -3
- package/dist/api/product.js +3 -3
- package/dist/api/store.d.ts +12 -0
- package/dist/api/store.d.ts.map +1 -1
- package/dist/api/store.js +1 -1
- package/dist/api/wishlist.js +4 -4
- package/dist/{chunk-3YVAYIM4.js → chunk-4KTY2FT6.js} +6 -6
- package/dist/{chunk-3YVAYIM4.js.map → chunk-4KTY2FT6.js.map} +1 -1
- package/dist/chunk-7V36I5GT.js +26 -0
- package/dist/chunk-7V36I5GT.js.map +1 -0
- package/dist/{chunk-OET4G4XC.js → chunk-BE3JDKE2.js} +19 -3
- package/dist/chunk-BE3JDKE2.js.map +1 -0
- package/dist/{chunk-2U3PUO3V.js → chunk-EIJXSBL6.js} +34 -17
- package/dist/chunk-EIJXSBL6.js.map +1 -0
- package/dist/{chunk-7OIP65ER.js → chunk-EQ32CL4D.js} +7 -4
- package/dist/chunk-EQ32CL4D.js.map +1 -0
- package/dist/{chunk-IZFZLJHD.js → chunk-EXKTSWBC.js} +5 -5
- package/dist/{chunk-IZFZLJHD.js.map → chunk-EXKTSWBC.js.map} +1 -1
- package/dist/{chunk-PK7EU5TM.js → chunk-GD26FI4J.js} +2 -2
- package/dist/chunk-GD26FI4J.js.map +1 -0
- package/dist/{chunk-YMVLYYLU.js → chunk-GOPUP26T.js} +4 -4
- package/dist/chunk-GOPUP26T.js.map +1 -0
- package/dist/{chunk-N4THXNXA.js → chunk-HSVGQ2DV.js} +12 -10
- package/dist/chunk-HSVGQ2DV.js.map +1 -0
- package/dist/{chunk-WH225GEC.js → chunk-I62RENKM.js} +3 -3
- package/dist/{chunk-WH225GEC.js.map → chunk-I62RENKM.js.map} +1 -1
- package/dist/{chunk-TDZSHACC.js → chunk-IC7YN4OQ.js} +3 -3
- package/dist/{chunk-TDZSHACC.js.map → chunk-IC7YN4OQ.js.map} +1 -1
- package/dist/{chunk-4DHLIY6V.js → chunk-IIYK56TI.js} +4 -3
- package/dist/chunk-IIYK56TI.js.map +1 -0
- package/dist/chunk-JKT44Y2M.js +14 -0
- package/dist/{chunk-ZPRZQTYM.js.map → chunk-JKT44Y2M.js.map} +1 -1
- package/dist/{chunk-W2B5P54C.js → chunk-KHRIGLYL.js} +3 -3
- package/dist/{chunk-W2B5P54C.js.map → chunk-KHRIGLYL.js.map} +1 -1
- package/dist/{chunk-NHKP5XIG.js → chunk-KILNHLWE.js} +4 -4
- package/dist/{chunk-NHKP5XIG.js.map → chunk-KILNHLWE.js.map} +1 -1
- package/dist/{chunk-ZQGMVUPE.js → chunk-KWHCKGLL.js} +3 -3
- package/dist/{chunk-ZQGMVUPE.js.map → chunk-KWHCKGLL.js.map} +1 -1
- package/dist/{chunk-LCJW7JKZ.js → chunk-LUTMPFRW.js} +4 -4
- package/dist/{chunk-LCJW7JKZ.js.map → chunk-LUTMPFRW.js.map} +1 -1
- package/dist/{chunk-YH4O3H4R.js → chunk-NPEI4SAZ.js} +3 -3
- package/dist/{chunk-YH4O3H4R.js.map → chunk-NPEI4SAZ.js.map} +1 -1
- package/dist/{chunk-JVGZDLFP.js → chunk-PE3LLBNR.js} +3 -3
- package/dist/{chunk-JVGZDLFP.js.map → chunk-PE3LLBNR.js.map} +1 -1
- package/dist/{chunk-3U26OMNO.js → chunk-PWBMSGMU.js} +24 -17
- package/dist/chunk-PWBMSGMU.js.map +1 -0
- package/dist/{chunk-VSJLPWFI.js → chunk-Q5UYV2EN.js} +3 -3
- package/dist/{chunk-VSJLPWFI.js.map → chunk-Q5UYV2EN.js.map} +1 -1
- package/dist/{chunk-GUGZ4CEG.js → chunk-S3CC2YGF.js} +3 -3
- package/dist/{chunk-GUGZ4CEG.js.map → chunk-S3CC2YGF.js.map} +1 -1
- package/dist/{chunk-NFTOMTTI.js → chunk-UFPZXWGM.js} +4 -4
- package/dist/{chunk-NFTOMTTI.js.map → chunk-UFPZXWGM.js.map} +1 -1
- package/dist/{chunk-TLAEW7TB.js → chunk-UH5ZXDEO.js} +3 -3
- package/dist/{chunk-TLAEW7TB.js.map → chunk-UH5ZXDEO.js.map} +1 -1
- package/dist/{chunk-3ITQB3PY.js → chunk-VLBQPVHM.js} +3 -3
- package/dist/{chunk-3ITQB3PY.js.map → chunk-VLBQPVHM.js.map} +1 -1
- package/dist/{chunk-TLO2M5TJ.js → chunk-W66OHTSM.js} +3 -3
- package/dist/{chunk-TLO2M5TJ.js.map → chunk-W66OHTSM.js.map} +1 -1
- package/dist/{chunk-6IDCWH5K.js → chunk-XFCJM6RN.js} +7 -7
- package/dist/{chunk-6IDCWH5K.js.map → chunk-XFCJM6RN.js.map} +1 -1
- package/dist/chunk-Y7HKVYDG.js +21 -0
- package/dist/chunk-Y7HKVYDG.js.map +1 -0
- package/dist/{chunk-VJHDE6UT.js → chunk-YEY3SO23.js} +3 -3
- package/dist/{chunk-VJHDE6UT.js.map → chunk-YEY3SO23.js.map} +1 -1
- package/dist/{chunk-FUIPNVQY.js → chunk-YLPI4HDD.js} +9 -6
- package/dist/chunk-YLPI4HDD.js.map +1 -0
- package/dist/{chunk-TFB3QXYH.js → chunk-ZGHRSRDO.js} +3 -2
- package/dist/chunk-ZGHRSRDO.js.map +1 -0
- package/dist/components/cart/CartItem.d.ts.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 +8 -7
- package/dist/components/home/index.js +11 -10
- package/dist/components/layout/index.js +1 -18
- package/dist/components/layout/index.js.map +1 -1
- package/dist/components/product/AddToCartForm.d.ts.map +1 -1
- package/dist/components/product/ProductCard.d.ts.map +1 -1
- package/dist/components/product/ProductDetails.d.ts.map +1 -1
- package/dist/components/product/index.js +9 -8
- package/dist/components/store/index.js +10 -9
- package/dist/components/store/index.js.map +1 -1
- package/dist/{document-class-7KPUN2DK.js → document-class-SKCL6IJF.js} +9 -9
- package/dist/{document-class-7KPUN2DK.js.map → document-class-SKCL6IJF.js.map} +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +8 -7
- package/dist/hooks/useComments.js +1 -1
- package/dist/hooks/useGtm.js +8 -7
- package/dist/hooks/useHostAttributes.d.ts +4 -0
- package/dist/hooks/useHostAttributes.d.ts.map +1 -0
- package/dist/hooks/useHostAttributes.js +4 -0
- package/dist/hooks/useHostAttributes.js.map +1 -0
- package/dist/hooks/useMoney.js +8 -7
- package/dist/hooks/useProduct.d.ts.map +1 -1
- package/dist/hooks/useProduct.js +1 -1
- package/dist/hooks/useStore.js +8 -7
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/dist/{navigation-QMBOIYJI.js → navigation-ESPAHRXM.js} +5 -5
- package/dist/{navigation-QMBOIYJI.js.map → navigation-ESPAHRXM.js.map} +1 -1
- package/dist/{navigation-XZJCQXY3.js → navigation-YKRXGGSL.js} +4 -4
- package/dist/{navigation-XZJCQXY3.js.map → navigation-YKRXGGSL.js.map} +1 -1
- package/dist/{not-found-UE5XOV5C.js → not-found-KBOXJ3AG.js} +11 -10
- package/dist/not-found-KBOXJ3AG.js.map +1 -0
- package/dist/providers/TwilightProvider.d.ts.map +1 -1
- package/dist/providers/index.js +8 -7
- package/dist/providers/twilight-init.d.ts.map +1 -1
- package/dist/router/route-ids.d.ts +1 -0
- package/dist/router/route-ids.d.ts.map +1 -1
- package/dist/routes/account/orders.js +4 -4
- package/dist/routes/account/wishlist/WishlistPage.d.ts +1 -1
- package/dist/routes/account/wishlist/WishlistPage.d.ts.map +1 -1
- package/dist/routes/account/wishlist/WishlistShare.d.ts +1 -0
- package/dist/routes/account/wishlist/WishlistShare.d.ts.map +1 -1
- package/dist/routes/account.js +11 -11
- package/dist/routes/blog.js +8 -8
- package/dist/routes/brands.js +4 -4
- package/dist/routes/cart/CartPage.d.ts.map +1 -1
- package/dist/routes/cart.js +17 -16
- package/dist/routes/cart.js.map +1 -1
- package/dist/routes/home.js +12 -11
- package/dist/routes/index.d.ts +1 -1
- package/dist/routes/index.d.ts.map +1 -1
- package/dist/routes/index.js +3 -3
- package/dist/routes/loyalty/LoyaltyPage.d.ts +1 -1
- package/dist/routes/loyalty/LoyaltyPage.d.ts.map +1 -1
- package/dist/routes/loyalty/LoyaltyPointsPage.d.ts +3 -0
- package/dist/routes/loyalty/LoyaltyPointsPage.d.ts.map +1 -0
- package/dist/routes/loyalty/index.d.ts +15 -3
- package/dist/routes/loyalty/index.d.ts.map +1 -1
- package/dist/routes/loyalty/loader.d.ts +2 -1
- package/dist/routes/loyalty/loader.d.ts.map +1 -1
- package/dist/routes/loyalty/types.d.ts +3 -0
- package/dist/routes/loyalty/types.d.ts.map +1 -1
- package/dist/routes/loyalty.js +62 -11
- package/dist/routes/loyalty.js.map +1 -1
- package/dist/routes/page.js +4 -4
- package/dist/routes/product/index.d.ts.map +1 -1
- package/dist/routes/product-listing/index.d.ts.map +1 -1
- package/dist/routes/product-listing.js +23 -19
- package/dist/routes/product-listing.js.map +1 -1
- package/dist/routes/product.js +16 -13
- package/dist/routes/product.js.map +1 -1
- package/dist/routes/seo-redirects.js +3 -3
- package/dist/routes/testimonials.js +2 -2
- package/dist/routes/thank-you/ThankYouPage.d.ts.map +1 -1
- package/dist/routes/thank-you.js +4 -4
- package/dist/skeleton.js +12 -11
- package/dist/tanstack/document-class.d.ts.map +1 -1
- package/dist/tanstack/head.d.ts +1 -4
- package/dist/tanstack/head.d.ts.map +1 -1
- package/dist/tanstack/router.d.ts.map +1 -1
- package/dist/tanstack/templates/locale-wrapper.d.ts.map +1 -1
- package/dist/tanstack.js +10 -10
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/salla-sdk.d.ts +1 -1
- package/dist/types/salla-sdk.d.ts.map +1 -1
- package/dist/utils/head.d.ts +3 -0
- package/dist/utils/head.d.ts.map +1 -1
- package/dist/utils/head.js +1 -1
- package/dist/utils/index.js +1 -1
- package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -1
- package/dist/vite/index.js +92 -11
- package/dist/vite/index.js.map +1 -1
- package/dist/vite/plugins/best-practices/hooks-registry.d.ts.map +1 -1
- package/dist/vite/plugins/component-deps.d.ts +5 -0
- package/dist/vite/plugins/component-deps.d.ts.map +1 -0
- package/dist/vite/plugins/package-aliases.plugin.d.ts.map +1 -1
- package/package.json +5 -1
- package/dist/AddToCartForm-RAQX7VHU.js.map +0 -1
- package/dist/BlogAuthorPage-HV6JUJNL.js.map +0 -1
- package/dist/BlogCategoryPage-ATPIVUAL.js.map +0 -1
- package/dist/BlogPage-6IIOSB45.js.map +0 -1
- package/dist/BlogSinglePage-DV3XYB26.js.map +0 -1
- package/dist/BlogTagPage-RVJIXERD.js.map +0 -1
- package/dist/BrandsPage-RQXP67LV.js.map +0 -1
- package/dist/Breadcrumb-NXXVZJJD.js.map +0 -1
- package/dist/CartItem-XRWTSJB5.js.map +0 -1
- package/dist/CartSummary-F6BY5APF.js.map +0 -1
- package/dist/CustomerLayout-T5BSTU6T.js.map +0 -1
- package/dist/LoyaltyPage-AIUDZLT7.js +0 -194
- package/dist/LoyaltyPage-AIUDZLT7.js.map +0 -1
- package/dist/MobileMenu-A5DBTPS7.js.map +0 -1
- package/dist/NotificationsPage-T2O67MLD.js.map +0 -1
- package/dist/OrderSinglePage-4W4JZX7I.js.map +0 -1
- package/dist/OrdersPage-DYKFBMRC.js.map +0 -1
- package/dist/ProductDetails-OWSIL357.js.map +0 -1
- package/dist/ProfilePage-LLCIJHAI.js.map +0 -1
- package/dist/SeoCartWidget-ZL3FTBWK.js.map +0 -1
- package/dist/SettingsPage-2XU5IF4A.js.map +0 -1
- package/dist/ThankYouPage-WG3CM5JP.js.map +0 -1
- package/dist/WalletPage-J7CH22JM.js.map +0 -1
- package/dist/WishlistPage-ZXWYB56R.js.map +0 -1
- package/dist/chunk-2U3PUO3V.js.map +0 -1
- package/dist/chunk-3U26OMNO.js.map +0 -1
- package/dist/chunk-4DHLIY6V.js.map +0 -1
- package/dist/chunk-7OIP65ER.js.map +0 -1
- package/dist/chunk-FUIPNVQY.js.map +0 -1
- package/dist/chunk-N4THXNXA.js.map +0 -1
- package/dist/chunk-OET4G4XC.js.map +0 -1
- package/dist/chunk-PK7EU5TM.js.map +0 -1
- package/dist/chunk-TFB3QXYH.js.map +0 -1
- package/dist/chunk-YMVLYYLU.js.map +0 -1
- package/dist/chunk-ZPRZQTYM.js +0 -14
- package/dist/not-found-UE5XOV5C.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/navigation/lazy.ts","../src/components/layout/Header.tsx"],"names":[],"mappings":"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","file":"chunk-3YVAYIM4.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded navigation components\n * Use these for code-splitting navigation sections\n */\nexport const LazyMainMenu = lazy(() => import('./MainMenu').then((m) => ({ default: m.MainMenu })));\n\nexport const LazyMobileMenu = lazy(() =>\n import('./MobileMenu').then((m) => ({ default: m.MobileMenu }))\n);\n","import { useState } from 'react';\nimport { useIsHome } from '../../providers/NavigationProvider';\nimport { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';\nimport { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaLocalizationModal } from '@salla.sa/twilight-components-react/localization-modal';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaSearch } from '@salla.sa/twilight-components-react/search';\nimport { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { MainMenu, MobileMenu } from '../navigation';\nimport { Image } from '../common';\nimport type { Cart } from '../../types';\n\ninterface HeaderProps {\n cart?: Cart;\n}\n\nexport function Header(_props: HeaderProps) {\n const { currency, theme, store } = useTwilight();\n const { locale, languageName } = useTranslation();\n const settings = theme?.settings || {};\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n\n // Check if we're on homepage\n const isHomepage = useIsHome();\n\n const StoreTitle = isHomepage ? 'h1' : 'span';\n\n return (\n <header className=\"store-header\" suppressHydrationWarning>\n <HookSlot name=\"header:start\" />\n <div className=\"advertisement-slot\">\n <SallaAdvertisement />\n </div>\n {/* Top Nav */}\n <div className={`top-navbar${settings.topnav_is_dark ? ' top-navbar--dark' : ''}`}>\n <div className=\"container flex justify-between\">\n <div className=\"flex-1 flex items-center gap-2\">\n {/* Footer Menu */}\n {settings.important_links && <SallaMenu source=\"footer\" topnav />}\n\n {/* Language & Currency */}\n <div className=\"header-buttons\">\n {(store?.settings?.is_multilingual || store?.settings?.currencies_enabled) && (\n <>\n <button\n type=\"button\"\n onClick={() => window.salla?.event.dispatch('localization::open')}\n className=\"btn--rounded-gray basis-0\"\n >\n <span>{languageName}</span>\n <span className=\"mx-1.5\">|</span>\n <span className={`flag iti__flag iti__${store?.country.toLowerCase()}`}></span>\n\n <span>\n {store?.settings?.use_sar_symbol && currency?.code === 'SAR' ? (\n <i className=\"sicon-sar\"></i>\n ) : (\n <>{currency?.symbol}</>\n )}\n </span>\n </button>\n {/* TODO:: support switch the lang without hit the web API, by set it in the sdk and local storage */}\n {/* TODO:: Support switch the curency without hit the web API, by set it in the sdk and local storage */}\n <SallaLocalizationModal\n language={locale}\n currency={currency?.code || 'SAR'}\n suppressHydrationWarning\n />\n </>\n )}\n </div>\n\n {/* Scopes / Branches */}\n {store?.scope && (\n <button\n type=\"button\"\n className=\"btn--rounded-gray\"\n onClick={() =>\n window.salla?.event.dispatch('scopes::open', {\n mode: 'default',\n })\n }\n >\n <i className=\"sicon-location rtl:ml-1 ltr:mr-1\"></i>\n {store.scope.name}\n </button>\n )}\n\n {/* Search bar */}\n <div className=\"header-search flex-1\">\n {/* todo:: use a search icon insted with open the search popup */}\n <SallaSearch inline oval height={36} />\n </div>\n </div>\n\n <SallaContacts contacts={store?.contacts} contactsTitle=\"N/A\" isHeader />\n </div>\n </div>\n\n {/* Main Nav */}\n <div\n id=\"mainnav\"\n className={`main-nav-container shadow-default bg-white flex items-center relative z-50${settings.header_is_sticky ? ' sticky top-0' : ''}`}\n >\n <div className=\"inner bg-inherit w-full\">\n <div className=\"container\">\n <div className=\"flex items-stretch justify-between relative\">\n <div className=\"flex items-center\">\n <a\n className=\"lg:hidden mburger mburger--collapse leading-none rtl:ml-4 ltr:mr-4\"\n href=\"#mobile-menu\"\n aria-label=\"Open-menu\"\n onClick={(e) => {\n e.preventDefault();\n setIsMobileMenuOpen(true);\n }}\n >\n <i className=\"sicon-menu text-primary text-2xl\"></i>\n </a>\n <a className=\"navbar-brand\" href={store?.url || '/'}>\n <div className=\"logo-wrapper\">\n <Image\n src={store?.logo}\n alt={`${store?.name || 'Store'} logo`}\n priority\n width={120}\n height={48}\n />\n </div>\n <StoreTitle className=\"sr-only\">{store?.name || 'Store'}</StoreTitle>\n </a>\n <MainMenu />\n </div>\n <div className=\"flex items-center justify-end my-2.5\">\n <SallaUserMenu avatarOnly showHeader className=\"header-btn\" />\n <SallaCartSummary className=\"ml-4 rtl:ml-[unset] rtl:mr-4\">\n <i slot=\"icon\" className=\"header-btn__icon icon sicon-shopping-bag\"></i>\n </SallaCartSummary>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Mobile Menu */}\n <MobileMenu isOpen={isMobileMenuOpen} onClose={() => setIsMobileMenuOpen(false)} />\n <HookSlot name=\"header:end\" />\n </header>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/navigation/lazy.ts","../src/components/layout/Header.tsx"],"names":[],"mappings":"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","file":"chunk-4KTY2FT6.js","sourcesContent":["import { lazy } from 'react';\n\n/**\n * Lazy-loaded navigation components\n * Use these for code-splitting navigation sections\n */\nexport const LazyMainMenu = lazy(() => import('./MainMenu').then((m) => ({ default: m.MainMenu })));\n\nexport const LazyMobileMenu = lazy(() =>\n import('./MobileMenu').then((m) => ({ default: m.MobileMenu }))\n);\n","import { useState } from 'react';\nimport { useIsHome } from '../../providers/NavigationProvider';\nimport { SallaAdvertisement } from '@salla.sa/twilight-components-react/advertisement';\nimport { SallaCartSummary } from '@salla.sa/twilight-components-react/cart-summary';\nimport { SallaContacts } from '@salla.sa/twilight-components-react/contacts';\nimport { SallaLocalizationModal } from '@salla.sa/twilight-components-react/localization-modal';\nimport { SallaMenu } from '@salla.sa/twilight-components-react/menu';\nimport { SallaSearch } from '@salla.sa/twilight-components-react/search';\nimport { SallaUserMenu } from '@salla.sa/twilight-components-react/user-menu';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { HookSlot } from '../../hooks/HookSlot';\nimport { MainMenu, MobileMenu } from '../navigation';\nimport { Image } from '../common';\nimport type { Cart } from '../../types';\n\ninterface HeaderProps {\n cart?: Cart;\n}\n\nexport function Header(_props: HeaderProps) {\n const { currency, theme, store } = useTwilight();\n const { locale, languageName } = useTranslation();\n const settings = theme?.settings || {};\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n\n // Check if we're on homepage\n const isHomepage = useIsHome();\n\n const StoreTitle = isHomepage ? 'h1' : 'span';\n\n return (\n <header className=\"store-header\" suppressHydrationWarning>\n <HookSlot name=\"header:start\" />\n <div className=\"advertisement-slot\">\n <SallaAdvertisement />\n </div>\n {/* Top Nav */}\n <div className={`top-navbar${settings.topnav_is_dark ? ' top-navbar--dark' : ''}`}>\n <div className=\"container flex justify-between\">\n <div className=\"flex-1 flex items-center gap-2\">\n {/* Footer Menu */}\n {settings.important_links && <SallaMenu source=\"footer\" topnav />}\n\n {/* Language & Currency */}\n <div className=\"header-buttons\">\n {(store?.settings?.is_multilingual || store?.settings?.currencies_enabled) && (\n <>\n <button\n type=\"button\"\n onClick={() => window.salla?.event.dispatch('localization::open')}\n className=\"btn--rounded-gray basis-0\"\n >\n <span>{languageName}</span>\n <span className=\"mx-1.5\">|</span>\n <span className={`flag iti__flag iti__${store?.country.toLowerCase()}`}></span>\n\n <span>\n {store?.settings?.use_sar_symbol && currency?.code === 'SAR' ? (\n <i className=\"sicon-sar\"></i>\n ) : (\n <>{currency?.symbol}</>\n )}\n </span>\n </button>\n {/* TODO:: support switch the lang without hit the web API, by set it in the sdk and local storage */}\n {/* TODO:: Support switch the curency without hit the web API, by set it in the sdk and local storage */}\n <SallaLocalizationModal\n language={locale}\n currency={currency?.code || 'SAR'}\n suppressHydrationWarning\n />\n </>\n )}\n </div>\n\n {/* Scopes / Branches */}\n {store?.scope && (\n <button\n type=\"button\"\n className=\"btn--rounded-gray\"\n onClick={() =>\n window.salla?.event.dispatch('scopes::open', {\n mode: 'default',\n })\n }\n >\n <i className=\"sicon-location rtl:ml-1 ltr:mr-1\"></i>\n {store.scope.name}\n </button>\n )}\n\n {/* Search bar */}\n <div className=\"header-search flex-1\">\n {/* todo:: use a search icon insted with open the search popup */}\n <SallaSearch inline oval height={36} />\n </div>\n </div>\n\n <SallaContacts contacts={store?.contacts} contactsTitle=\"N/A\" isHeader />\n </div>\n </div>\n\n {/* Main Nav */}\n <div\n id=\"mainnav\"\n className={`main-nav-container shadow-default bg-white flex items-center relative z-50${settings.header_is_sticky ? ' sticky top-0' : ''}`}\n >\n <div className=\"inner bg-inherit w-full\">\n <div className=\"container\">\n <div className=\"flex items-stretch justify-between relative\">\n <div className=\"flex items-center\">\n <a\n className=\"lg:hidden mburger mburger--collapse leading-none rtl:ml-4 ltr:mr-4\"\n href=\"#mobile-menu\"\n aria-label=\"Open-menu\"\n onClick={(e) => {\n e.preventDefault();\n setIsMobileMenuOpen(true);\n }}\n >\n <i className=\"sicon-menu text-primary text-2xl\"></i>\n </a>\n <a className=\"navbar-brand\" href={store?.url || '/'}>\n <div className=\"logo-wrapper\">\n <Image\n src={store?.logo}\n alt={`${store?.name || 'Store'} logo`}\n priority\n width={120}\n height={48}\n />\n </div>\n <StoreTitle className=\"sr-only\">{store?.name || 'Store'}</StoreTitle>\n </a>\n <MainMenu />\n </div>\n <div className=\"flex items-center justify-end my-2.5\">\n <SallaUserMenu avatarOnly showHeader className=\"header-btn\" />\n <SallaCartSummary className=\"ml-4 rtl:ml-[unset] rtl:mr-4\">\n <i slot=\"icon\" className=\"header-btn__icon icon sicon-shopping-bag\"></i>\n </SallaCartSummary>\n </div>\n </div>\n </div>\n </div>\n </div>\n\n {/* Mobile Menu */}\n <MobileMenu isOpen={isMobileMenuOpen} onClose={() => setIsMobileMenuOpen(false)} />\n <HookSlot name=\"header:end\" />\n </header>\n );\n}\n"]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
// src/hooks/useHostAttributes.ts
|
|
4
|
+
var toAttribute = (value) => {
|
|
5
|
+
if (value === null || value === void 0 || value === false) return null;
|
|
6
|
+
return value === true ? "" : String(value);
|
|
7
|
+
};
|
|
8
|
+
function useHostAttributes(attributes) {
|
|
9
|
+
const serialized = JSON.stringify(
|
|
10
|
+
Object.entries(attributes).map(([name, value]) => [name, toAttribute(value)])
|
|
11
|
+
);
|
|
12
|
+
return useCallback(
|
|
13
|
+
(element) => {
|
|
14
|
+
if (!element) return;
|
|
15
|
+
for (const [name, value] of JSON.parse(serialized)) {
|
|
16
|
+
if (value === null) element.removeAttribute(name);
|
|
17
|
+
else element.setAttribute(name, value);
|
|
18
|
+
}
|
|
19
|
+
},
|
|
20
|
+
[serialized]
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
export { useHostAttributes };
|
|
25
|
+
//# sourceMappingURL=chunk-7V36I5GT.js.map
|
|
26
|
+
//# sourceMappingURL=chunk-7V36I5GT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useHostAttributes.ts"],"names":[],"mappings":";;;AAIA,IAAM,WAAA,GAAc,CAAC,KAAA,KAA6C;AAChE,EAAA,IAAI,UAAU,IAAA,IAAQ,KAAA,KAAU,MAAA,IAAa,KAAA,KAAU,OAAO,OAAO,IAAA;AACrE,EAAA,OAAO,KAAA,KAAU,IAAA,GAAO,EAAA,GAAK,MAAA,CAAO,KAAK,CAAA;AAC3C,CAAA;AAGO,SAAS,kBACd,UAAA,EAC6B;AAC7B,EAAA,MAAM,aAAa,IAAA,CAAK,SAAA;AAAA,IACtB,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,CAAE,IAAI,CAAC,CAAC,IAAA,EAAM,KAAK,MAAM,CAAC,IAAA,EAAM,WAAA,CAAY,KAAK,CAAC,CAAC;AAAA,GAC9E;AAEA,EAAA,OAAO,WAAA;AAAA,IACL,CAAC,OAAA,KAAsB;AACrB,MAAA,IAAI,CAAC,OAAA,EAAS;AACd,MAAA,KAAA,MAAW,CAAC,IAAA,EAAM,KAAK,KAAK,IAAA,CAAK,KAAA,CAAM,UAAU,CAAA,EAAgC;AAC/E,QAAA,IAAI,KAAA,KAAU,IAAA,EAAM,OAAA,CAAQ,eAAA,CAAgB,IAAI,CAAA;AAAA,aAC3C,OAAA,CAAQ,YAAA,CAAa,IAAA,EAAM,KAAK,CAAA;AAAA,MACvC;AAAA,IACF,CAAA;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AACF","file":"chunk-7V36I5GT.js","sourcesContent":["import { useCallback } from 'react';\n\nexport type HostAttributeValue = string | number | boolean | null | undefined;\n\nconst toAttribute = (value: HostAttributeValue): string | null => {\n if (value === null || value === undefined || value === false) return null;\n return value === true ? '' : String(value);\n};\n\n/** Ref callback that sets `attributes` as real DOM attributes (`true` = empty, `false`/nullish = removed). */\nexport function useHostAttributes<T extends Element = HTMLElement>(\n attributes: Record<string, HostAttributeValue>\n): (element: T | null) => void {\n const serialized = JSON.stringify(\n Object.entries(attributes).map(([name, value]) => [name, toAttribute(value)])\n );\n\n return useCallback(\n (element: T | null) => {\n if (!element) return;\n for (const [name, value] of JSON.parse(serialized) as [string, string | null][]) {\n if (value === null) element.removeAttribute(name);\n else element.setAttribute(name, value);\n }\n },\n [serialized]\n );\n}\n"]}
|
|
@@ -105,6 +105,21 @@ function tanstackHeadAdapter(descriptor) {
|
|
|
105
105
|
for (const s of descriptor.scripts ?? []) scripts.push(s);
|
|
106
106
|
return { meta, links, styles, scripts };
|
|
107
107
|
}
|
|
108
|
+
function appendStoreTitle(descriptor, settings) {
|
|
109
|
+
const store = settings?.store;
|
|
110
|
+
const storeTitle = store?.meta?.title || store?.name;
|
|
111
|
+
const pageTitle = descriptor.title;
|
|
112
|
+
if (!pageTitle || !storeTitle || descriptor.appendStoreTitle === false) return descriptor;
|
|
113
|
+
if (pageTitle === storeTitle) return descriptor;
|
|
114
|
+
const title = `${pageTitle} - ${storeTitle}`;
|
|
115
|
+
const shareTitle = (current) => !current || current === pageTitle ? title : current;
|
|
116
|
+
return {
|
|
117
|
+
...descriptor,
|
|
118
|
+
title,
|
|
119
|
+
openGraph: { ...descriptor.openGraph, title: shareTitle(descriptor.openGraph?.title) },
|
|
120
|
+
twitter: { ...descriptor.twitter, title: shareTitle(descriptor.twitter?.title) }
|
|
121
|
+
};
|
|
122
|
+
}
|
|
108
123
|
function withHead(route, extend) {
|
|
109
124
|
return (ctx) => {
|
|
110
125
|
const loaderData = ctx.loaderData;
|
|
@@ -113,7 +128,8 @@ function withHead(route, extend) {
|
|
|
113
128
|
try {
|
|
114
129
|
const context = getTwilightContext();
|
|
115
130
|
const result = route.head(context, loaderData);
|
|
116
|
-
const
|
|
131
|
+
const extended = extend ? extend(result, context, loaderData) : result;
|
|
132
|
+
const finalResult = appendStoreTitle(extended, context.settings);
|
|
117
133
|
return tanstackHeadAdapter(finalResult);
|
|
118
134
|
} catch (error) {
|
|
119
135
|
if (error instanceof SettingsError) return {};
|
|
@@ -123,5 +139,5 @@ function withHead(route, extend) {
|
|
|
123
139
|
}
|
|
124
140
|
|
|
125
141
|
export { ensureTwilightContextFromMatches, tanstackHeadAdapter, withHead };
|
|
126
|
-
//# sourceMappingURL=chunk-
|
|
127
|
-
//# sourceMappingURL=chunk-
|
|
142
|
+
//# sourceMappingURL=chunk-BE3JDKE2.js.map
|
|
143
|
+
//# sourceMappingURL=chunk-BE3JDKE2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/twilight/ensure-context.ts","../src/tanstack/head.ts"],"names":[],"mappings":";;;AAiBA,SAAS,aAAa,MAAA,EAAuE;AAC3F,EAAA,MAAM,WAAW,MAAA,EAAQ,QAAA;AACzB,EAAA,OAAO,WAAY,QAAA,GAA4B,MAAA;AACjD;AAEA,SAAS,UAAA,CAAW,QAA6C,GAAA,EAAiC;AAChG,EAAA,MAAM,KAAA,GAAQ,SAAS,GAAG,CAAA;AAC1B,EAAA,OAAO,OAAO,KAAA,KAAU,QAAA,IAAY,KAAA,GAAQ,KAAA,GAAQ,MAAA;AACtD;AAEA,SAAS,aAAa,MAAA,EAAuE;AAC3F,EAAA,MAAM,WAAW,MAAA,EAAQ,YAAA;AACzB,EAAA,OAAO,KAAA,CAAM,OAAA,CAAQ,QAAQ,CAAA,GAAK,QAAA,GAA4B,MAAA;AAChE;AAEA,SAAS,gBAAgB,MAAA,EAAsE;AAC7F,EAAA,MAAM,WAAW,MAAA,EAAQ,YAAA;AACzB,EAAA,OAAO,YAAY,OAAO,QAAA,KAAa,QAAA,IAAY,MAAA,IAAU,WAAW,QAAA,GAAW,MAAA;AACrF;AAmBO,SAAS,iCACd,OAAA,EACS;AACT,EAAA,IAAI,mBAAA,IAAuB,OAAO,IAAA;AAElC,EAAA,MAAM,SAAA,GAAY,UAAU,CAAC,CAAA;AAC7B,EAAA,IAAI,CAAC,WAAW,OAAO,KAAA;AAEvB,EAAA,MAAM,gBAAgB,SAAA,CAAU,mBAAA;AAChC,EAAA,MAAM,WAAW,SAAA,CAAU,OAAA;AAE3B,EAAA,MAAM,QAAA,GAAW,YAAA,CAAa,aAAa,CAAA,IAAK,aAAa,QAAQ,CAAA;AACrE,EAAA,MAAM,SAAS,UAAA,CAAW,aAAA,EAAe,QAAQ,CAAA,IAAK,UAAA,CAAW,UAAU,QAAQ,CAAA;AACnF,EAAA,IAAI,CAAC,QAAA,IAAY,CAAC,MAAA,EAAQ,OAAO,KAAA;AAEjC,EAAA,MAAM,SAAA,GACJ,WAAW,aAAA,EAAe,WAAW,KAAK,UAAA,CAAW,QAAA,EAAU,WAAW,CAAA,IAAK,IAAA;AACjF,EAAA,MAAM,YAAA,GAAe,YAAA,CAAa,aAAa,CAAA,IAAK,aAAa,QAAQ,CAAA;AACzE,EAAA,MAAM,YAAA,GAAe,eAAA,CAAgB,aAAa,CAAA,IAAK,gBAAgB,QAAQ,CAAA;AAE/E,EAAA,qBAAA,CAAsB,EAAE,QAAA,EAAU,MAAA,EAAQ,SAAA,EAAW,YAAA,EAAc,cAAc,CAAA;AACjF,EAAA,OAAO,IAAA;AACT;;;ACnEA,SAAS,kBAAkB,MAAA,EAAyC;AAClE,EAAA,IAAI,CAAC,MAAA,EAAQ,OAAO,EAAC;AACrB,EAAA,MAAM,MAAM,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,GAAI,MAAA,GAAS,CAAC,MAAM,CAAA;AACpD,EAAA,OAAO,GAAA,CAAI,GAAA,CAAI,CAAC,GAAA,KAAS,OAAO,GAAA,KAAQ,QAAA,GAAW,EAAE,GAAA,EAAK,GAAA,EAAI,GAAI,GAAI,CAAA;AACxE;AAEO,SAAS,oBAAoB,UAAA,EAA4B;AAC9D,EAAA,MAAM,OAAuC,EAAC;AAC9C,EAAA,MAAM,QAAwC,EAAC;AAC/C,EAAA,MAAM,UAA0C,EAAC;AACjD,EAAA,MAAM,SAAoC,EAAC;AAE3C,EAAA,IAAI,UAAA,CAAW,OAAO,IAAA,CAAK,IAAA,CAAK,EAAE,KAAA,EAAO,UAAA,CAAW,OAAO,CAAA;AAC3D,EAAA,IAAI,UAAA,CAAW,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,aAAA,EAAe,OAAA,EAAS,UAAA,CAAW,WAAA,EAAa,CAAA;AAE9F,EAAA,IAAI,WAAW,QAAA,EAAU;AACvB,IAAA,MAAM,EAAA,GAAK,KAAA,CAAM,OAAA,CAAQ,UAAA,CAAW,QAAQ,CAAA,GACxC,UAAA,CAAW,QAAA,CAAS,IAAA,CAAK,IAAI,CAAA,GAC7B,UAAA,CAAW,QAAA;AACf,IAAA,IAAA,CAAK,KAAK,EAAE,IAAA,EAAM,UAAA,EAAY,OAAA,EAAS,IAAI,CAAA;AAAA,EAC7C;AAEA,EAAA,IAAI,UAAA,CAAW,MAAA,EAAQ,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,QAAA,EAAU,OAAA,EAAS,UAAA,CAAW,MAAA,EAAQ,CAAA;AAG/E,EAAA,MAAM,KAAK,UAAA,CAAW,SAAA;AACtB,EAAA,IAAI,EAAA,EAAI;AACN,IAAA,IAAI,EAAA,CAAG,QAAA,EAAU,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,cAAA,EAAgB,OAAA,EAAS,EAAA,CAAG,QAAA,EAAU,CAAA;AAC7E,IAAA,IAAI,EAAA,CAAG,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,SAAA,EAAW,OAAA,EAAS,EAAA,CAAG,IAAA,EAAM,CAAA;AAChE,IAAA,IAAI,EAAA,CAAG,KAAA,EAAO,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,UAAA,EAAY,OAAA,EAAS,EAAA,CAAG,KAAA,EAAO,CAAA;AACnE,IAAA,IAAI,EAAA,CAAG,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,gBAAA,EAAkB,OAAA,EAAS,EAAA,CAAG,WAAA,EAAa,CAAA;AACrF,IAAA,IAAI,EAAA,CAAG,GAAA,EAAK,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,QAAA,EAAU,OAAA,EAAS,EAAA,CAAG,GAAA,EAAK,CAAA;AAC7D,IAAA,IAAI,EAAA,CAAG,MAAA,EAAQ,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,WAAA,EAAa,OAAA,EAAS,EAAA,CAAG,MAAA,EAAQ,CAAA;AACtE,IAAA,KAAA,MAAW,GAAA,IAAO,EAAA,CAAG,eAAA,IAAmB,EAAC,EAAG;AAC1C,MAAA,IAAA,CAAK,KAAK,EAAE,QAAA,EAAU,qBAAA,EAAuB,OAAA,EAAS,KAAK,CAAA;AAAA,IAC7D;AACA,IAAA,KAAA,MAAW,GAAA,IAAO,iBAAA,CAAkB,EAAA,CAAG,MAAM,CAAA,EAAG;AAC9C,MAAA,IAAA,CAAK,KAAK,EAAE,QAAA,EAAU,YAAY,OAAA,EAAS,GAAA,CAAI,KAAK,CAAA;AACpD,MAAA,IAAI,GAAA,CAAI,KAAA,IAAS,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,EAAE,QAAA,EAAU,gBAAA,EAAkB,OAAA,EAAS,MAAA,CAAO,GAAA,CAAI,KAAK,GAAG,CAAA;AAC3F,MAAA,IAAI,IAAI,MAAA,IAAU,IAAA;AAChB,QAAA,IAAA,CAAK,IAAA,CAAK,EAAE,QAAA,EAAU,iBAAA,EAAmB,SAAS,MAAA,CAAO,GAAA,CAAI,MAAM,CAAA,EAAG,CAAA;AACxE,MAAA,IAAI,GAAA,CAAI,GAAA,EAAK,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,cAAA,EAAgB,OAAA,EAAS,GAAA,CAAI,GAAA,EAAK,CAAA;AAAA,IACvE;AACA,IAAA,IAAI,EAAA,CAAG,aAAA;AACL,MAAA,IAAA,CAAK,KAAK,EAAE,QAAA,EAAU,0BAA0B,OAAA,EAAS,EAAA,CAAG,eAAe,CAAA;AAC7E,IAAA,IAAI,EAAA,CAAG,YAAA,EAAc,IAAA,CAAK,IAAA,CAAK,EAAE,UAAU,uBAAA,EAAyB,OAAA,EAAS,EAAA,CAAG,YAAA,EAAc,CAAA;AAAA,EAChG;AAGA,EAAA,MAAM,KAAK,UAAA,CAAW,OAAA;AACtB,EAAA,IAAI,EAAA,EAAI;AACN,IAAA,IAAI,EAAA,CAAG,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAA,CAAG,IAAA,EAAM,CAAA;AACjE,IAAA,IAAI,EAAA,CAAG,KAAA,EAAO,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,eAAA,EAAiB,OAAA,EAAS,EAAA,CAAG,KAAA,EAAO,CAAA;AACpE,IAAA,IAAI,EAAA,CAAG,WAAA,EAAa,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,qBAAA,EAAuB,OAAA,EAAS,EAAA,CAAG,WAAA,EAAa,CAAA;AACtF,IAAA,IAAI,EAAA,CAAG,IAAA,EAAM,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,cAAA,EAAgB,OAAA,EAAS,EAAA,CAAG,IAAA,EAAM,CAAA;AACjE,IAAA,IAAI,EAAA,CAAG,OAAA,EAAS,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,iBAAA,EAAmB,OAAA,EAAS,EAAA,CAAG,OAAA,EAAS,CAAA;AAC1E,IAAA,IAAI,EAAA,CAAG,GAAA,EAAK,IAAA,CAAK,IAAA,CAAK,EAAE,MAAM,aAAA,EAAe,OAAA,EAAS,EAAA,CAAG,GAAA,EAAK,CAAA;AAC9D,IAAA,MAAM,QAAA,GAAW,EAAA,CAAG,MAAA,GAAU,KAAA,CAAM,QAAQ,EAAA,CAAG,MAAM,CAAA,GAAI,EAAA,CAAG,MAAA,GAAS,CAAC,EAAA,CAAG,MAAM,IAAK,EAAC;AACrF,IAAA,KAAA,MAAW,OAAO,QAAA,EAAU;AAC1B,MAAA,IAAA,CAAK,KAAK,EAAE,IAAA,EAAM,eAAA,EAAiB,OAAA,EAAS,KAAK,CAAA;AAAA,IACnD;AAAA,EACF;AAGA,EAAA,IAAI,UAAA,CAAW,SAAA,EAAW,KAAA,CAAM,IAAA,CAAK,EAAE,KAAK,WAAA,EAAa,IAAA,EAAM,UAAA,CAAW,SAAA,EAAW,CAAA;AAGrF,EAAA,KAAA,MAAW,GAAA,IAAO,UAAA,CAAW,kBAAA,IAAsB,EAAC,EAAG;AACrD,IAAA,KAAA,CAAM,IAAA,CAAK,EAAE,GAAA,EAAK,WAAA,EAAa,QAAA,EAAU,IAAI,QAAA,EAAU,IAAA,EAAM,GAAA,CAAI,IAAA,EAAM,CAAA;AAAA,EACzE;AAGA,EAAA,IAAI,WAAW,MAAA,EAAQ;AACrB,IAAA,OAAA,CAAQ,IAAA,CAAK,EAAE,IAAA,EAAM,qBAAA,EAAuB,QAAA,EAAU,KAAK,SAAA,CAAU,UAAA,CAAW,MAAM,CAAA,EAAG,CAAA;AAAA,EAC3F;AAGA,EAAA,KAAA,MAAW,CAAA,IAAK,UAAA,CAAW,IAAA,IAAQ,EAAC,EAAG;AACrC,IAAA,MAAM,EAAE,SAAA,EAAW,GAAG,IAAA,EAAK,GAAI,CAAA;AAC/B,IAAA,IAAA,CAAK,KAAK,SAAA,GAAY,EAAE,WAAW,GAAG,IAAA,KAAS,IAAI,CAAA;AAAA,EACrD;AACA,EAAA,KAAA,MAAW,KAAK,UAAA,CAAW,KAAA,IAAS,EAAC,EAAG,KAAA,CAAM,KAAK,CAAC,CAAA;AACpD,EAAA,KAAA,MAAW,KAAK,UAAA,CAAW,MAAA,IAAU,EAAC,EAAG,MAAA,CAAO,KAAK,CAAuC,CAAA;AAG5F,EAAA,KAAA,MAAW,EAAA,IAAM,UAAA,CAAW,SAAA,IAAa,EAAC,EAAG;AAC3C,IAAA,OAAA,CAAQ,IAAA,CAAK,EAAE,IAAA,EAAM,WAAA,EAAa,UAAU,IAAA,CAAK,SAAA,CAAU,EAAE,CAAA,EAAG,CAAA;AAAA,EAClE;AACA,EAAA,KAAA,MAAW,KAAK,UAAA,CAAW,OAAA,IAAW,EAAC,EAAG,OAAA,CAAQ,KAAK,CAAC,CAAA;AAExD,EAAA,OAAO,EAAE,IAAA,EAAM,KAAA,EAAO,MAAA,EAAQ,OAAA,EAAQ;AACxC;AAOA,SAAS,gBAAA,CACP,YACA,QAAA,EACgB;AAChB,EAAA,MAAM,QAAQ,QAAA,EAAU,KAAA;AACxB,EAAA,MAAM,UAAA,GAAa,KAAA,EAAO,IAAA,EAAM,KAAA,IAAS,KAAA,EAAO,IAAA;AAChD,EAAA,MAAM,YAAY,UAAA,CAAW,KAAA;AAC7B,EAAA,IAAI,CAAC,SAAA,IAAa,CAAC,cAAc,UAAA,CAAW,gBAAA,KAAqB,OAAO,OAAO,UAAA;AAC/E,EAAA,IAAI,SAAA,KAAc,YAAY,OAAO,UAAA;AAErC,EAAA,MAAM,KAAA,GAAQ,CAAA,EAAG,SAAS,CAAA,GAAA,EAAM,UAAU,CAAA,CAAA;AAE1C,EAAA,MAAM,aAAa,CAAC,OAAA,KAAsB,CAAC,OAAA,IAAW,OAAA,KAAY,YAAY,KAAA,GAAQ,OAAA;AACtF,EAAA,OAAO;AAAA,IACL,GAAG,UAAA;AAAA,IACH,KAAA;AAAA,IACA,SAAA,EAAW,EAAE,GAAG,UAAA,CAAW,SAAA,EAAW,OAAO,UAAA,CAAW,UAAA,CAAW,SAAA,EAAW,KAAK,CAAA,EAAE;AAAA,IACrF,OAAA,EAAS,EAAE,GAAG,UAAA,CAAW,OAAA,EAAS,OAAO,UAAA,CAAW,UAAA,CAAW,OAAA,EAAS,KAAK,CAAA;AAAE,GACjF;AACF;AAsBO,SAAS,QAAA,CACd,OACA,MAAA,EAC4D;AAC5D,EAAA,OAAO,CAAC,GAAA,KAAqB;AAC3B,IAAA,MAAM,aAAa,GAAA,CAAI,UAAA;AAEvB,IAAA,IAAI,CAAC,UAAA,EAAY,OAAO,EAAC;AAKzB,IAAA,gCAAA,CAAiC,IAAI,OAAO,CAAA;AAE5C,IAAA,IAAI;AACF,MAAA,MAAM,UAAU,kBAAA,EAAmB;AACnC,MAAA,MAAM,MAAA,GAAS,KAAA,CAAM,IAAA,CAAK,OAAA,EAAS,UAAe,CAAA;AAClD,MAAA,MAAM,WAAW,MAAA,GAAS,MAAA,CAAO,MAAA,EAAQ,OAAA,EAAS,UAAe,CAAA,GAAI,MAAA;AACrE,MAAA,MAAM,WAAA,GAAc,gBAAA,CAAiB,QAAA,EAAU,OAAA,CAAQ,QAAQ,CAAA;AAE/D,MAAA,OAAO,oBAAoB,WAAW,CAAA;AAAA,IACxC,SAAS,KAAA,EAAO;AAKd,MAAA,IAAI,KAAA,YAAiB,aAAA,EAAe,OAAO,EAAC;AAC5C,MAAA,MAAM,KAAA;AAAA,IACR;AAAA,EACF,CAAA;AACF","file":"chunk-BE3JDKE2.js","sourcesContent":["import type { StoreContext } from '../api/store';\nimport type { AppSnippet, AppSettings } from '../api/apps';\nimport { hasTwilightSettings, updateTwilightContext } from './context';\n\n/**\n * The slice of a router match we can recover store settings from.\n *\n * TanStack resolves `match.context` (which spreads `__beforeLoadContext` over the\n * parent context) immediately before it invokes `route.options.head()`, so both\n * fields are populated by the time any head function runs — including during\n * client hydration, when the twilight module store may still be empty.\n */\nexport interface TwilightContextMatch {\n context?: Record<string, unknown>;\n __beforeLoadContext?: Record<string, unknown>;\n}\n\nfunction readSettings(source: Record<string, unknown> | undefined): StoreContext | undefined {\n const settings = source?.settings;\n return settings ? (settings as StoreContext) : undefined;\n}\n\nfunction readString(source: Record<string, unknown> | undefined, key: string): string | undefined {\n const value = source?.[key];\n return typeof value === 'string' && value ? value : undefined;\n}\n\nfunction readSnippets(source: Record<string, unknown> | undefined): AppSnippet[] | undefined {\n const snippets = source?.appsSnippets;\n return Array.isArray(snippets) ? (snippets as AppSnippet[]) : undefined;\n}\n\nfunction readAppSettings(source: Record<string, unknown> | undefined): AppSettings | undefined {\n const settings = source?.appsSettings as AppSettings | undefined;\n return settings && typeof settings === 'object' && 'apps' in settings ? settings : undefined;\n}\n\n/**\n * Seeds the twilight module store from the router matches when it is empty.\n *\n * Head functions read store settings through `getTwilightContext()`, whose\n * `settings` getter **throws** a `SettingsError` when the store has not been\n * populated. TanStack re-runs every matched route's head function during client\n * hydration, and a throw there aborts hydration outright: React then discards\n * the server-rendered tree and re-renders from scratch, which blanks the page.\n *\n * `hydrateTwilightContext` normally populates the store first, but it is a\n * single best-effort pass — if it bails (missing root match, missing settings,\n * or a duplicated module instance holding a different store) every head\n * function downstream throws. Seeding from the match TanStack already resolved\n * removes that dependency at the point of use.\n *\n * @returns whether the store has settings after the attempt.\n */\nexport function ensureTwilightContextFromMatches(\n matches: readonly TwilightContextMatch[] | undefined\n): boolean {\n if (hasTwilightSettings()) return true;\n\n const rootMatch = matches?.[0];\n if (!rootMatch) return false;\n\n const beforeLoadCtx = rootMatch.__beforeLoadContext;\n const matchCtx = rootMatch.context;\n\n const settings = readSettings(beforeLoadCtx) ?? readSettings(matchCtx);\n const locale = readString(beforeLoadCtx, 'locale') ?? readString(matchCtx, 'locale');\n if (!settings || !locale) return false;\n\n const authToken =\n readString(beforeLoadCtx, 'authToken') ?? readString(matchCtx, 'authToken') ?? null;\n const appsSnippets = readSnippets(beforeLoadCtx) ?? readSnippets(matchCtx);\n const appsSettings = readAppSettings(beforeLoadCtx) ?? readAppSettings(matchCtx);\n\n updateTwilightContext({ settings, locale, authToken, appsSnippets, appsSettings });\n return true;\n}\n","import type { HeadDescriptor, OpenGraphImage } from '../utils/head';\nimport type { TwilightContext } from '../twilight/context';\nimport { getTwilightContext } from '../twilight/context';\nimport type { TwilightContextMatch } from '../twilight/ensure-context';\nimport { ensureTwilightContextFromMatches } from '../twilight/ensure-context';\nimport { SettingsError } from '../utils/errors';\n\ntype OgImagesInput = string | OpenGraphImage | Array<string | OpenGraphImage> | undefined;\n\nfunction normalizeOgImages(images: OgImagesInput): OpenGraphImage[] {\n if (!images) return [];\n const arr = Array.isArray(images) ? images : [images];\n return arr.map((img) => (typeof img === 'string' ? { url: img } : img));\n}\n\nexport function tanstackHeadAdapter(descriptor: HeadDescriptor) {\n const meta: Array<Record<string, unknown>> = [];\n const links: Array<Record<string, unknown>> = [];\n const scripts: Array<Record<string, unknown>> = [];\n const styles: Record<string, unknown>[] = [];\n\n if (descriptor.title) meta.push({ title: descriptor.title });\n if (descriptor.description) meta.push({ name: 'description', content: descriptor.description });\n\n if (descriptor.keywords) {\n const kw = Array.isArray(descriptor.keywords)\n ? descriptor.keywords.join(', ')\n : descriptor.keywords;\n meta.push({ name: 'keywords', content: kw });\n }\n\n if (descriptor.robots) meta.push({ name: 'robots', content: descriptor.robots });\n\n // Open Graph\n const og = descriptor.openGraph;\n if (og) {\n if (og.siteName) meta.push({ property: 'og:site_name', content: og.siteName });\n if (og.type) meta.push({ property: 'og:type', content: og.type });\n if (og.title) meta.push({ property: 'og:title', content: og.title });\n if (og.description) meta.push({ property: 'og:description', content: og.description });\n if (og.url) meta.push({ property: 'og:url', content: og.url });\n if (og.locale) meta.push({ property: 'og:locale', content: og.locale });\n for (const alt of og.alternateLocale ?? []) {\n meta.push({ property: 'og:locale:alternate', content: alt });\n }\n for (const img of normalizeOgImages(og.images)) {\n meta.push({ property: 'og:image', content: img.url });\n if (img.width != null) meta.push({ property: 'og:image:width', content: String(img.width) });\n if (img.height != null)\n meta.push({ property: 'og:image:height', content: String(img.height) });\n if (img.alt) meta.push({ property: 'og:image:alt', content: img.alt });\n }\n if (og.publishedTime)\n meta.push({ property: 'article:published_time', content: og.publishedTime });\n if (og.modifiedTime) meta.push({ property: 'article:modified_time', content: og.modifiedTime });\n }\n\n // Twitter Card\n const tw = descriptor.twitter;\n if (tw) {\n if (tw.card) meta.push({ name: 'twitter:card', content: tw.card });\n if (tw.title) meta.push({ name: 'twitter:title', content: tw.title });\n if (tw.description) meta.push({ name: 'twitter:description', content: tw.description });\n if (tw.site) meta.push({ name: 'twitter:site', content: tw.site });\n if (tw.creator) meta.push({ name: 'twitter:creator', content: tw.creator });\n if (tw.url) meta.push({ name: 'twitter:url', content: tw.url });\n const twImages = tw.images ? (Array.isArray(tw.images) ? tw.images : [tw.images]) : [];\n for (const img of twImages) {\n meta.push({ name: 'twitter:image', content: img });\n }\n }\n\n // Canonical\n if (descriptor.canonical) links.push({ rel: 'canonical', href: descriptor.canonical });\n\n // hreflang alternates (React requires camelCase: hrefLang)\n for (const alt of descriptor.alternateLanguages ?? []) {\n links.push({ rel: 'alternate', hrefLang: alt.hreflang, href: alt.href });\n }\n\n // JSON-LD\n if (descriptor.jsonLd) {\n scripts.push({ type: 'application/ld+json', children: JSON.stringify(descriptor.jsonLd) });\n }\n\n // Escape hatches\n for (const m of descriptor.meta ?? []) {\n const { httpEquiv, ...rest } = m as typeof m & { httpEquiv?: string };\n meta.push(httpEquiv ? { httpEquiv, ...rest } : rest);\n }\n for (const l of descriptor.links ?? []) links.push(l);\n for (const s of descriptor.styles ?? []) styles.push(s as unknown as Record<string, unknown>);\n\n // Import maps must be emitted before module scripts that rely on bare specifiers.\n for (const im of descriptor.importMap ?? []) {\n scripts.push({ type: 'importmap', children: JSON.stringify(im) });\n }\n for (const s of descriptor.scripts ?? []) scripts.push(s);\n\n return { meta, links, styles, scripts };\n}\n\n// ============================================================================\n// withHead - Simplified head callback wrapper for TanStack Router\n// ============================================================================\n\n/** Twig's page title format: \"<page title> - <store meta title or store name>\". */\nfunction appendStoreTitle(\n descriptor: HeadDescriptor,\n settings: TwilightContext['settings']\n): HeadDescriptor {\n const store = settings?.store;\n const storeTitle = store?.meta?.title || store?.name;\n const pageTitle = descriptor.title;\n if (!pageTitle || !storeTitle || descriptor.appendStoreTitle === false) return descriptor;\n if (pageTitle === storeTitle) return descriptor;\n\n const title = `${pageTitle} - ${storeTitle}`;\n // Share titles follow the page title too, unless the route set its own.\n const shareTitle = (current?: string) => (!current || current === pageTitle ? title : current);\n return {\n ...descriptor,\n title,\n openGraph: { ...descriptor.openGraph, title: shareTitle(descriptor.openGraph?.title) },\n twitter: { ...descriptor.twitter, title: shareTitle(descriptor.twitter?.title) },\n };\n}\n\n/**\n * Minimal shape we need from TanStack Router's AssetFnContextOptions.\n * `loaderData` feeds the route's own head function; `matches` is the recovery\n * source for store settings when the twilight module store is not populated yet\n * (see `ensureTwilightContextFromMatches`).\n */\ntype HeadContext = {\n loaderData?: unknown;\n matches?: readonly TwilightContextMatch[];\n};\n\n/**\n * Wraps a route module's head function for TanStack Router.\n *\n * @example\n * ```typescript\n * head: withHead(Offers)\n * head: withHead(Product, (result) => ({ ...result, robots: 'noindex, follow' }))\n * ```\n */\nexport function withHead<T>(\n route: { head: (ctx: TwilightContext, data: T) => HeadDescriptor },\n extend?: (result: HeadDescriptor, _ctx: TwilightContext, data: T) => HeadDescriptor\n): (_ctx: Record<string, unknown>) => Record<string, unknown> {\n return (ctx: HeadContext) => {\n const loaderData = ctx.loaderData;\n\n if (!loaderData) return {};\n\n // TanStack re-runs every matched route's head() during client hydration,\n // where the twilight module store can still be empty. Recover it from the\n // match context TanStack has already resolved before giving up.\n ensureTwilightContextFromMatches(ctx.matches);\n\n try {\n const context = getTwilightContext();\n const result = route.head(context, loaderData as T);\n const extended = extend ? extend(result, context, loaderData as T) : result;\n const finalResult = appendStoreTitle(extended, context.settings);\n\n return tanstackHeadAdapter(finalResult);\n } catch (error) {\n // A head function must never throw: TanStack surfaces the throw as a\n // hydration error, React then discards the server-rendered tree and the\n // storefront renders blank. Dropping this route's head tags degrades\n // gracefully — the server-rendered ones stay in the document.\n if (error instanceof SettingsError) return {};\n throw error;\n }\n };\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Header } from './chunk-
|
|
1
|
+
import { Header } from './chunk-4KTY2FT6.js';
|
|
2
2
|
import { Copyright } from './chunk-JKIRRMBU.js';
|
|
3
3
|
import { useDevSettingsOverrides } from './chunk-2JV6WZ6O.js';
|
|
4
4
|
import { apps } from './chunk-UIOLSYKV.js';
|
|
5
5
|
import { color } from './chunk-VVZNW5CB.js';
|
|
6
6
|
import { applyThemeHookSlots, installAppScope } from './chunk-2XGQSJKH.js';
|
|
7
|
-
import { useLocation, useIsHome, NavigationInterceptor } from './chunk-
|
|
7
|
+
import { useLocation, useIsHome, NavigationInterceptor } from './chunk-I62RENKM.js';
|
|
8
8
|
import { useUser } from './chunk-UZKTK6YV.js';
|
|
9
9
|
import { syncSdkLocale } from './chunk-WY4IYO3G.js';
|
|
10
10
|
import { AUTH_TOKEN_COOKIE_NAME, rememberDevStoreId, clearAuthTokenCookie, syncScopeCookie } from './chunk-SR4OTLTJ.js';
|
|
@@ -16,7 +16,7 @@ import { FALLBACK_LOCALE, getLanguageInfo } from './chunk-T72DAX7R.js';
|
|
|
16
16
|
import { WidgetHead } from './chunk-RJPPO3ET.js';
|
|
17
17
|
import { HookSlot } from './chunk-Q7VWURUR.js';
|
|
18
18
|
import { hookRegistry } from './chunk-GU2KUQVD.js';
|
|
19
|
-
import { Image } from './chunk-
|
|
19
|
+
import { Image } from './chunk-UH5ZXDEO.js';
|
|
20
20
|
import { Link } from './chunk-AXW67SY7.js';
|
|
21
21
|
import { LazyImageModal } from './chunk-CUG6VOLM.js';
|
|
22
22
|
import { Toaster } from './chunk-OBSAH7K6.js';
|
|
@@ -109,13 +109,29 @@ function ThemeDocumentSync({
|
|
|
109
109
|
}
|
|
110
110
|
|
|
111
111
|
// src/utils/engine-version.ts
|
|
112
|
-
var ENGINE_VERSION = "1.0.
|
|
112
|
+
var ENGINE_VERSION = "1.0.63" ;
|
|
113
113
|
|
|
114
114
|
// src/providers/twilight-init.ts
|
|
115
115
|
function getSalla() {
|
|
116
116
|
if (typeof window === "undefined") return void 0;
|
|
117
117
|
return window.salla;
|
|
118
118
|
}
|
|
119
|
+
var SDK_GUEST_CURRENCY = "SAR";
|
|
120
|
+
function withSettingsUser(sdk, settings) {
|
|
121
|
+
if (!settings) return settings;
|
|
122
|
+
const { user: guest, ...rest } = settings;
|
|
123
|
+
if (!guest || sdk.storage?.get?.("user")) return rest;
|
|
124
|
+
const {
|
|
125
|
+
currency_code: _currency,
|
|
126
|
+
country_code: _country,
|
|
127
|
+
default_geo_location: _geo,
|
|
128
|
+
...visitor
|
|
129
|
+
} = guest;
|
|
130
|
+
return {
|
|
131
|
+
...rest,
|
|
132
|
+
user: { ...visitor, currency_code: sdk.cookie?.get?.("s-curr") ?? SDK_GUEST_CURRENCY }
|
|
133
|
+
};
|
|
134
|
+
}
|
|
119
135
|
function useTwilightInit({
|
|
120
136
|
debug: _debug,
|
|
121
137
|
initialData,
|
|
@@ -172,13 +188,14 @@ function useTwilightInit({
|
|
|
172
188
|
if (typeof sdk.init !== "function") return;
|
|
173
189
|
const ctx = getTwilightContext();
|
|
174
190
|
const pageCtx = ctx.page;
|
|
191
|
+
const baseData = withSettingsUser(sdk, settingsData);
|
|
175
192
|
const initData = pageCtx ? {
|
|
176
|
-
...
|
|
193
|
+
...baseData,
|
|
177
194
|
page: {
|
|
178
195
|
...pageCtx,
|
|
179
196
|
url: pageCtx.url ?? ctx.location.pathname + ctx.location.searchStr
|
|
180
197
|
}
|
|
181
|
-
} :
|
|
198
|
+
} : baseData;
|
|
182
199
|
sdk.init(initData);
|
|
183
200
|
const initSdk = async () => {
|
|
184
201
|
try {
|
|
@@ -207,13 +224,13 @@ function useTwilightInit({
|
|
|
207
224
|
}
|
|
208
225
|
var navigationSetups = {
|
|
209
226
|
tanstack: lazy(
|
|
210
|
-
() => import('./navigation-
|
|
227
|
+
() => import('./navigation-ESPAHRXM.js').then((m) => ({ default: m.NavigationSetup }))
|
|
211
228
|
),
|
|
212
|
-
nextjs: lazy(() => import('./navigation-
|
|
229
|
+
nextjs: lazy(() => import('./navigation-YKRXGGSL.js').then((m) => ({ default: m.NavigationSetup })))
|
|
213
230
|
};
|
|
214
231
|
var routeDocumentSyncs = {
|
|
215
232
|
tanstack: lazy(
|
|
216
|
-
() => import('./document-class-
|
|
233
|
+
() => import('./document-class-SKCL6IJF.js').then((m) => ({
|
|
217
234
|
default: m.TanStackDocumentSync
|
|
218
235
|
}))
|
|
219
236
|
)
|
|
@@ -757,7 +774,7 @@ var LazySiftSnippet = lazy(
|
|
|
757
774
|
() => import('./SiftSnippet-5FCU6TR6.js').then((m) => ({ default: m.SiftSnippet }))
|
|
758
775
|
);
|
|
759
776
|
var LazyStoreClosedNotification = lazy(
|
|
760
|
-
() => import('./StoreClosedNotification-
|
|
777
|
+
() => import('./StoreClosedNotification-5MTDRRC3.js').then((m) => ({
|
|
761
778
|
default: m.StoreClosedNotification
|
|
762
779
|
}))
|
|
763
780
|
);
|
|
@@ -1126,7 +1143,7 @@ function TwilightProvider({
|
|
|
1126
1143
|
useEffect(() => {
|
|
1127
1144
|
if (typeof window === "undefined") return;
|
|
1128
1145
|
const sdk = getSalla2();
|
|
1129
|
-
if (!sdk?.
|
|
1146
|
+
if (!sdk?.event) return;
|
|
1130
1147
|
const writeAuthCookie = (token) => {
|
|
1131
1148
|
document.cookie = `${AUTH_TOKEN_COOKIE_NAME}=${token}; path=/; max-age=${60 * 60 * 24 * 30}; SameSite=Lax; Secure`;
|
|
1132
1149
|
};
|
|
@@ -1172,14 +1189,14 @@ function TwilightProvider({
|
|
|
1172
1189
|
} catch {
|
|
1173
1190
|
}
|
|
1174
1191
|
};
|
|
1175
|
-
sdk.
|
|
1176
|
-
sdk.
|
|
1192
|
+
sdk.event.on("auth::logged.in", handleLogin);
|
|
1193
|
+
sdk.event.on("auth::logged.out", handleLogout);
|
|
1177
1194
|
sdk.event.on("auth::token.invalid", handleTokenInvalid);
|
|
1178
1195
|
sdk.event.on("auth::token.fetched", handleTokenFetched);
|
|
1179
1196
|
sdk.event.on("api::token.injected", handleTokenFetched);
|
|
1180
1197
|
return () => {
|
|
1181
|
-
sdk.event.off("auth::
|
|
1182
|
-
sdk.event.off("auth::
|
|
1198
|
+
sdk.event.off("auth::logged.in", handleLogin);
|
|
1199
|
+
sdk.event.off("auth::logged.out", handleLogout);
|
|
1183
1200
|
sdk.event.off("auth::token.invalid", handleTokenInvalid);
|
|
1184
1201
|
sdk.event.off("auth::token.fetched", handleTokenFetched);
|
|
1185
1202
|
sdk.event.off("api::token.injected", handleTokenFetched);
|
|
@@ -1340,5 +1357,5 @@ function useStore() {
|
|
|
1340
1357
|
}
|
|
1341
1358
|
|
|
1342
1359
|
export { Footer, MasterLayout, TwilightProvider, fastCheckoutScript, registerDefaultHooks, registerDocumentSync, routeDocumentSyncs, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore };
|
|
1343
|
-
//# sourceMappingURL=chunk-
|
|
1344
|
-
//# sourceMappingURL=chunk-
|
|
1360
|
+
//# sourceMappingURL=chunk-EIJXSBL6.js.map
|
|
1361
|
+
//# sourceMappingURL=chunk-EIJXSBL6.js.map
|