@salla.sa/twilight-theme-engine 1.0.136 → 1.0.138
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-RG4ANO47.js → AddToCartForm-P3IXCYO7.js} +4 -3
- package/dist/AddToCartForm-P3IXCYO7.js.map +1 -0
- package/dist/{BlogAuthorPage-JEYNAFRH.js → BlogAuthorPage-UJYMW4ZL.js} +18 -17
- package/dist/BlogAuthorPage-UJYMW4ZL.js.map +1 -0
- package/dist/{BlogCategoryPage-IIAXWMHD.js → BlogCategoryPage-3XO42UFX.js} +18 -17
- package/dist/BlogCategoryPage-3XO42UFX.js.map +1 -0
- package/dist/{BlogPage-NKYICNRT.js → BlogPage-5SQNDQ7L.js} +16 -15
- package/dist/BlogPage-5SQNDQ7L.js.map +1 -0
- package/dist/{BlogSinglePage-FBO4NQL5.js → BlogSinglePage-XSRKZYUI.js} +16 -15
- package/dist/BlogSinglePage-XSRKZYUI.js.map +1 -0
- package/dist/{BlogTagPage-WZIUPBEM.js → BlogTagPage-CFXWHUJR.js} +18 -17
- package/dist/BlogTagPage-CFXWHUJR.js.map +1 -0
- package/dist/{BrandsPage-EN6MZV6T.js → BrandsPage-APYVP4M2.js} +17 -16
- package/dist/BrandsPage-APYVP4M2.js.map +1 -0
- package/dist/{Breadcrumb-COB4TMMI.js → Breadcrumb-M4DBOMXW.js} +16 -15
- package/dist/Breadcrumb-M4DBOMXW.js.map +1 -0
- package/dist/{CartItem-SYQZHA2F.js → CartItem-BXZDBDLA.js} +16 -15
- package/dist/CartItem-BXZDBDLA.js.map +1 -0
- package/dist/{CartSummary-YQN7N6JW.js → CartSummary-NT7N6ERQ.js} +16 -15
- package/dist/CartSummary-NT7N6ERQ.js.map +1 -0
- package/dist/{Copyright-II2URAIP.js → Copyright-IJDVQWOS.js} +4 -3
- package/dist/Copyright-IJDVQWOS.js.map +1 -0
- package/dist/{CustomerLayout-75NK34WK.js → CustomerLayout-UNEDHUO2.js} +16 -15
- package/dist/CustomerLayout-UNEDHUO2.js.map +1 -0
- package/dist/{Footer-6MYG4POU.js → Footer-QX5BCDUK.js} +6 -5
- package/dist/{Footer-6MYG4POU.js.map → Footer-QX5BCDUK.js.map} +1 -1
- package/dist/{Header-KXX42XKB.js → Header-EAOIXJNS.js} +9 -8
- package/dist/{Header-KXX42XKB.js.map → Header-EAOIXJNS.js.map} +1 -1
- package/dist/{LoyaltyPage-R4KWVGLW.js → LoyaltyPage-3VOLW5OQ.js} +16 -15
- package/dist/LoyaltyPage-3VOLW5OQ.js.map +1 -0
- package/dist/{LoyaltyPointsPage-L7HG54RQ.js → LoyaltyPointsPage-IMHJHCZV.js} +7 -6
- package/dist/LoyaltyPointsPage-IMHJHCZV.js.map +1 -0
- package/dist/{MainMenu-KI4BAA7W.js → MainMenu-ML6OQT53.js} +6 -5
- package/dist/MainMenu-ML6OQT53.js.map +1 -0
- package/dist/{MasterLayout-WQ3VWDAA.js → MasterLayout-UCQA73I3.js} +16 -15
- package/dist/{MasterLayout-WQ3VWDAA.js.map → MasterLayout-UCQA73I3.js.map} +1 -1
- package/dist/{MobileMenu-LJXKYKRI.js → MobileMenu-5JHOT4DP.js} +17 -16
- package/dist/MobileMenu-5JHOT4DP.js.map +1 -0
- package/dist/{NotificationsPage-4TUPN24E.js → NotificationsPage-C373Z2KC.js} +16 -15
- package/dist/NotificationsPage-C373Z2KC.js.map +1 -0
- package/dist/{OrderSinglePage-N3YGXCKL.js → OrderSinglePage-YYTU72JY.js} +17 -16
- package/dist/OrderSinglePage-YYTU72JY.js.map +1 -0
- package/dist/{OrdersPage-V3WNW2WZ.js → OrdersPage-2F43AA76.js} +16 -15
- package/dist/OrdersPage-2F43AA76.js.map +1 -0
- package/dist/{PageSingle-H5YA47EG.js → PageSingle-2FIESLYJ.js} +4 -3
- package/dist/PageSingle-2FIESLYJ.js.map +1 -0
- package/dist/{ProductDetails-EHRMQR7F.js → ProductDetails-TNULRGXM.js} +5 -4
- package/dist/ProductDetails-TNULRGXM.js.map +1 -0
- package/dist/{ProfilePage-3GRY4RSA.js → ProfilePage-4VSU6H3S.js} +16 -15
- package/dist/ProfilePage-4VSU6H3S.js.map +1 -0
- package/dist/{ReviewsPage-SPHK5MCS.js → ReviewsPage-65CYIATI.js} +4 -3
- package/dist/ReviewsPage-65CYIATI.js.map +1 -0
- package/dist/{SeoCartWidget-P2QQ62AF.js → SeoCartWidget-UHJJLLCU.js} +16 -15
- package/dist/SeoCartWidget-UHJJLLCU.js.map +1 -0
- package/dist/{SettingsPage-YFN32XOV.js → SettingsPage-2JHRIGFS.js} +16 -15
- package/dist/SettingsPage-2JHRIGFS.js.map +1 -0
- package/dist/{StoreClosedNotification-3RU33TF6.js → StoreClosedNotification-ADSYNO7O.js} +17 -16
- package/dist/{StoreClosedNotification-3RU33TF6.js.map → StoreClosedNotification-ADSYNO7O.js.map} +1 -1
- package/dist/{TestimonialsPage-4W6SXN24.js → TestimonialsPage-PYFKXCQP.js} +4 -3
- package/dist/TestimonialsPage-PYFKXCQP.js.map +1 -0
- package/dist/{ThankYouPage-56AIK3QG.js → ThankYouPage-VHUAKQF7.js} +16 -15
- package/dist/ThankYouPage-VHUAKQF7.js.map +1 -0
- package/dist/{WalletPage-FLB4OCK4.js → WalletPage-NG2DJAUE.js} +17 -16
- package/dist/WalletPage-NG2DJAUE.js.map +1 -0
- package/dist/{WishlistPage-H6KGJYRT.js → WishlistPage-GFOKEWL3.js} +18 -17
- package/dist/WishlistPage-GFOKEWL3.js.map +1 -0
- package/dist/api/advertisement.js +2 -2
- package/dist/api/apps.js +2 -2
- package/dist/api/blog.js +3 -3
- package/dist/api/brands.js +3 -3
- package/dist/api/cart.js +3 -3
- package/dist/api/category.js +3 -3
- package/dist/api/client.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.d.ts.map +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-LPVWRPMV.js → chunk-35D6CKKX.js} +4 -4
- package/dist/{chunk-LPVWRPMV.js.map → chunk-35D6CKKX.js.map} +1 -1
- package/dist/{chunk-V4E6JFS4.js → chunk-3QR6T7KW.js} +12 -10
- package/dist/chunk-3QR6T7KW.js.map +1 -0
- package/dist/{chunk-F324WS4B.js → chunk-5FEFYFTS.js} +3 -3
- package/dist/{chunk-F324WS4B.js.map → chunk-5FEFYFTS.js.map} +1 -1
- package/dist/{chunk-RYAOXNRA.js → chunk-5MNGLNIJ.js} +3 -3
- package/dist/{chunk-RYAOXNRA.js.map → chunk-5MNGLNIJ.js.map} +1 -1
- package/dist/{chunk-PLFD6UWD.js → chunk-6EOAIIHL.js} +3 -3
- package/dist/{chunk-PLFD6UWD.js.map → chunk-6EOAIIHL.js.map} +1 -1
- package/dist/{chunk-BFPTMZ4G.js → chunk-6KZUGNCS.js} +3 -3
- package/dist/{chunk-BFPTMZ4G.js.map → chunk-6KZUGNCS.js.map} +1 -1
- package/dist/{chunk-EDK4U4WQ.js → chunk-A7KXUBPT.js} +49 -6
- package/dist/chunk-A7KXUBPT.js.map +1 -0
- package/dist/{chunk-DIA2LU6I.js → chunk-CJZ3MJ3Y.js} +11 -9
- package/dist/chunk-CJZ3MJ3Y.js.map +1 -0
- package/dist/{chunk-OIL6F7S2.js → chunk-DMS6PZXN.js} +4 -4
- package/dist/{chunk-OIL6F7S2.js.map → chunk-DMS6PZXN.js.map} +1 -1
- package/dist/{chunk-TUIB74QX.js → chunk-EGJ2SV6O.js} +43 -59
- package/dist/chunk-EGJ2SV6O.js.map +1 -0
- package/dist/{chunk-D262IAAT.js → chunk-EJ66I5SH.js} +4 -4
- package/dist/{chunk-D262IAAT.js.map → chunk-EJ66I5SH.js.map} +1 -1
- package/dist/chunk-EOQPV6KS.js +25 -0
- package/dist/chunk-EOQPV6KS.js.map +1 -0
- package/dist/{chunk-WXE5OK4N.js → chunk-FVHAKOEH.js} +3 -3
- package/dist/{chunk-WXE5OK4N.js.map → chunk-FVHAKOEH.js.map} +1 -1
- package/dist/{chunk-NZ6REC6S.js → chunk-GJFK3SU5.js} +4 -4
- package/dist/{chunk-NZ6REC6S.js.map → chunk-GJFK3SU5.js.map} +1 -1
- package/dist/{chunk-C76QBKQT.js → chunk-HEWFF3KI.js} +3 -3
- package/dist/{chunk-C76QBKQT.js.map → chunk-HEWFF3KI.js.map} +1 -1
- package/dist/{chunk-6TT5VHUM.js → chunk-HG75MP47.js} +3 -3
- package/dist/{chunk-6TT5VHUM.js.map → chunk-HG75MP47.js.map} +1 -1
- package/dist/{chunk-W37R3JJ7.js → chunk-ITZ543CK.js} +3 -3
- package/dist/{chunk-W37R3JJ7.js.map → chunk-ITZ543CK.js.map} +1 -1
- package/dist/{chunk-UA4F3ZR3.js → chunk-JFKHKDSK.js} +4 -4
- package/dist/{chunk-UA4F3ZR3.js.map → chunk-JFKHKDSK.js.map} +1 -1
- package/dist/{chunk-NBVI4H4K.js → chunk-JXLZTGQN.js} +3 -3
- package/dist/{chunk-NBVI4H4K.js.map → chunk-JXLZTGQN.js.map} +1 -1
- package/dist/chunk-KLVEKLFL.js +16 -0
- package/dist/chunk-KLVEKLFL.js.map +1 -0
- package/dist/chunk-KYMWEUN2.js +10 -0
- package/dist/chunk-KYMWEUN2.js.map +1 -0
- package/dist/{chunk-KSPVQQ7J.js → chunk-LMMDVLAB.js} +5 -5
- package/dist/{chunk-KSPVQQ7J.js.map → chunk-LMMDVLAB.js.map} +1 -1
- package/dist/{chunk-XNNKW6FA.js → chunk-MWAXFBGG.js} +3 -3
- package/dist/{chunk-XNNKW6FA.js.map → chunk-MWAXFBGG.js.map} +1 -1
- package/dist/{chunk-DESMKK54.js → chunk-OSYUGCRG.js} +4 -4
- package/dist/{chunk-DESMKK54.js.map → chunk-OSYUGCRG.js.map} +1 -1
- package/dist/{chunk-6O5EFNDM.js → chunk-OXBMZSKL.js} +4 -4
- package/dist/{chunk-6O5EFNDM.js.map → chunk-OXBMZSKL.js.map} +1 -1
- package/dist/{chunk-VE34Y3Z3.js → chunk-P43VADN7.js} +3 -3
- package/dist/{chunk-VE34Y3Z3.js.map → chunk-P43VADN7.js.map} +1 -1
- package/dist/{chunk-PB2K5LRO.js → chunk-PBFLXHKM.js} +3 -3
- package/dist/{chunk-PB2K5LRO.js.map → chunk-PBFLXHKM.js.map} +1 -1
- package/dist/{chunk-J37FMLCI.js → chunk-R4BPODDJ.js} +3 -3
- package/dist/{chunk-J37FMLCI.js.map → chunk-R4BPODDJ.js.map} +1 -1
- package/dist/{chunk-THDD2H3C.js → chunk-R73HXW5D.js} +4 -4
- package/dist/{chunk-THDD2H3C.js.map → chunk-R73HXW5D.js.map} +1 -1
- package/dist/{chunk-YV5VCWQF.js → chunk-S5ZKI3TY.js} +4 -4
- package/dist/{chunk-YV5VCWQF.js.map → chunk-S5ZKI3TY.js.map} +1 -1
- package/dist/{chunk-ZAVUF234.js → chunk-S7FNMT24.js} +3 -3
- package/dist/{chunk-ZAVUF234.js.map → chunk-S7FNMT24.js.map} +1 -1
- package/dist/{chunk-MMXLOECO.js → chunk-SAYYMA6E.js} +9 -8
- package/dist/chunk-SAYYMA6E.js.map +1 -0
- package/dist/{chunk-DE7OXJXT.js → chunk-TK6A4UON.js} +4 -4
- package/dist/{chunk-DE7OXJXT.js.map → chunk-TK6A4UON.js.map} +1 -1
- package/dist/{chunk-RVPFDYQ2.js → chunk-TVAXTMMQ.js} +3 -3
- package/dist/{chunk-RVPFDYQ2.js.map → chunk-TVAXTMMQ.js.map} +1 -1
- package/dist/{chunk-BXQZXOFK.js → chunk-TWLJ2RII.js} +11 -9
- package/dist/chunk-TWLJ2RII.js.map +1 -0
- package/dist/{chunk-B6CGVRJ7.js → chunk-U6EB7GM3.js} +4 -4
- package/dist/{chunk-B6CGVRJ7.js.map → chunk-U6EB7GM3.js.map} +1 -1
- package/dist/{chunk-F73QPQX7.js → chunk-UXS3QCHM.js} +34 -28
- package/dist/chunk-UXS3QCHM.js.map +1 -0
- package/dist/{chunk-JLJKIXDT.js → chunk-VFQNVPFH.js} +13 -9
- package/dist/chunk-VFQNVPFH.js.map +1 -0
- package/dist/chunk-VYGA5AT5.js +27 -0
- package/dist/chunk-VYGA5AT5.js.map +1 -0
- package/dist/{chunk-3RHCWLJT.js → chunk-WC2ZDV4J.js} +3 -3
- package/dist/{chunk-3RHCWLJT.js.map → chunk-WC2ZDV4J.js.map} +1 -1
- package/dist/{chunk-ITNE6DTO.js → chunk-YPRSS27D.js} +4 -4
- package/dist/{chunk-ITNE6DTO.js.map → chunk-YPRSS27D.js.map} +1 -1
- package/dist/components/cart/index.js +2 -1
- package/dist/components/cart/lazy.d.ts +3 -3
- package/dist/components/cart/lazy.d.ts.map +1 -1
- package/dist/components/common/index.js +2 -1
- package/dist/components/common/lazy.d.ts +5 -5
- package/dist/components/common/lazy.d.ts.map +1 -1
- package/dist/components/drawer/index.js +14 -13
- package/dist/components/home/index.js +18 -17
- package/dist/components/home/lazy.d.ts +1 -1
- package/dist/components/home/lazy.d.ts.map +1 -1
- package/dist/components/layout/MasterLayout.d.ts.map +1 -1
- package/dist/components/layout/index.js +5 -4
- package/dist/components/layout/lazy.d.ts +6 -6
- package/dist/components/layout/lazy.d.ts.map +1 -1
- package/dist/components/live-editor/index.d.ts.map +1 -1
- package/dist/components/modal/index.js +2 -1
- package/dist/components/modal/lazy.d.ts +1 -1
- package/dist/components/modal/lazy.d.ts.map +1 -1
- package/dist/components/navigation/lazy.d.ts +2 -2
- package/dist/components/navigation/lazy.d.ts.map +1 -1
- package/dist/components/product/index.js +15 -14
- package/dist/components/product/lazy.d.ts +2 -2
- package/dist/components/product/lazy.d.ts.map +1 -1
- package/dist/components/store/index.js +15 -14
- package/dist/components/store/lazy.d.ts +2 -2
- package/dist/components/store/lazy.d.ts.map +1 -1
- package/dist/components/tracking/index.js +4 -3
- package/dist/components/tracking/index.js.map +1 -1
- package/dist/components/tracking/lazy.d.ts +2 -2
- package/dist/components/tracking/lazy.d.ts.map +1 -1
- package/dist/dev/editor/index.js +1 -1
- package/dist/dev/index.js +1 -1
- package/dist/{document-class-4JUQ44JX.js → document-class-IGGYSGCU.js} +12 -11
- package/dist/{document-class-4JUQ44JX.js.map → document-class-IGGYSGCU.js.map} +1 -1
- package/dist/hooks/index.js +14 -13
- package/dist/hooks/registerDefaultHooks.d.ts.map +1 -1
- package/dist/hooks/useGtm.js +14 -13
- package/dist/hooks/useMoney.js +14 -13
- package/dist/hooks/useStore.js +14 -13
- package/dist/hooks/useUser.js +3 -3
- package/dist/index.js +14 -13
- package/dist/index.js.map +1 -1
- package/dist/{navigation-6KY4HODP.js → navigation-FUHRDRAN.js} +4 -4
- package/dist/{navigation-6KY4HODP.js.map → navigation-FUHRDRAN.js.map} +1 -1
- package/dist/{navigation-QYWF2VGQ.js → navigation-MJYWGH7A.js} +5 -5
- package/dist/{navigation-QYWF2VGQ.js.map → navigation-MJYWGH7A.js.map} +1 -1
- package/dist/{not-found-3M6US423.js → not-found-VVI6BXAZ.js} +17 -16
- package/dist/not-found-VVI6BXAZ.js.map +1 -0
- package/dist/providers/DocumentSyncRegistry.d.ts +3 -3
- package/dist/providers/DocumentSyncRegistry.d.ts.map +1 -1
- package/dist/providers/index.js +14 -13
- package/dist/providers/navigation-setups.d.ts +3 -3
- package/dist/providers/navigation-setups.d.ts.map +1 -1
- package/dist/routes/account/notifications/index.d.ts +2 -2
- package/dist/routes/account/notifications/index.d.ts.map +1 -1
- package/dist/routes/account/orders/index.d.ts +4 -4
- package/dist/routes/account/orders/index.d.ts.map +1 -1
- package/dist/routes/account/orders.js +5 -4
- package/dist/routes/account/profile/index.d.ts +2 -2
- package/dist/routes/account/profile/index.d.ts.map +1 -1
- package/dist/routes/account/settings/index.d.ts +2 -2
- package/dist/routes/account/settings/index.d.ts.map +1 -1
- package/dist/routes/account/wallet/index.d.ts +2 -2
- package/dist/routes/account/wallet/index.d.ts.map +1 -1
- package/dist/routes/account/wishlist/index.d.ts +2 -2
- package/dist/routes/account/wishlist/index.d.ts.map +1 -1
- package/dist/routes/account.js +20 -18
- package/dist/routes/account.js.map +1 -1
- package/dist/routes/blog/index.d.ts +10 -10
- package/dist/routes/blog/index.d.ts.map +1 -1
- package/dist/routes/blog.js +15 -13
- package/dist/routes/blog.js.map +1 -1
- package/dist/routes/brands/index.d.ts +2 -2
- package/dist/routes/brands/index.d.ts.map +1 -1
- package/dist/routes/brands.js +7 -5
- package/dist/routes/brands.js.map +1 -1
- package/dist/routes/cart.js +22 -21
- package/dist/routes/cart.js.map +1 -1
- package/dist/routes/home.js +19 -18
- package/dist/routes/index.js +3 -3
- package/dist/routes/lazy.d.ts +22 -22
- package/dist/routes/lazy.d.ts.map +1 -1
- package/dist/routes/loyalty/index.d.ts +4 -4
- package/dist/routes/loyalty/index.d.ts.map +1 -1
- package/dist/routes/loyalty.js +8 -8
- package/dist/routes/loyalty.js.map +1 -1
- package/dist/routes/page/index.d.ts +2 -2
- package/dist/routes/page/index.d.ts.map +1 -1
- package/dist/routes/page.js +7 -5
- package/dist/routes/page.js.map +1 -1
- package/dist/routes/product-listing.js +20 -19
- package/dist/routes/product-listing.js.map +1 -1
- package/dist/routes/product.js +18 -17
- package/dist/routes/product.js.map +1 -1
- package/dist/routes/root/beforeLoad.d.ts +32 -13
- package/dist/routes/root/beforeLoad.d.ts.map +1 -1
- package/dist/routes/seo-redirects.js +3 -3
- package/dist/routes/testimonials/index.d.ts +4 -4
- package/dist/routes/testimonials/index.d.ts.map +1 -1
- package/dist/routes/testimonials.js +5 -5
- package/dist/routes/testimonials.js.map +1 -1
- package/dist/routes/thank-you/index.d.ts +2 -2
- package/dist/routes/thank-you/index.d.ts.map +1 -1
- package/dist/routes/thank-you.js +6 -6
- package/dist/routes/thank-you.js.map +1 -1
- package/dist/skeleton.js +19 -18
- package/dist/{store-lookup-UDGPAAWQ.js → store-lookup-2P7PQVXE.js} +8 -8
- package/dist/{store-lookup-UDGPAAWQ.js.map → store-lookup-2P7PQVXE.js.map} +1 -1
- package/dist/tanstack/router.d.ts.map +1 -1
- package/dist/tanstack.js +12 -11
- package/dist/tanstack.js.map +1 -1
- package/dist/utils/index.js +2 -2
- package/dist/utils/lazy-component.d.ts +26 -0
- package/dist/utils/lazy-component.d.ts.map +1 -0
- package/package.json +1 -1
- package/tailwind/components/cart/lazy.ts.txt +6 -4
- package/tailwind/components/common/lazy.ts.txt +6 -6
- package/tailwind/components/home/lazy.ts.txt +2 -2
- package/tailwind/components/layout/MasterLayout.tsx.txt +5 -4
- package/tailwind/components/layout/lazy.ts.txt +11 -7
- package/tailwind/components/live-editor/index.tsx.txt +3 -2
- package/tailwind/components/modal/lazy.ts.txt +2 -2
- package/tailwind/components/navigation/lazy.ts.txt +5 -3
- package/tailwind/components/product/lazy.ts.txt +3 -3
- package/tailwind/components/store/lazy.ts.txt +3 -3
- package/tailwind/components/tracking/lazy.ts.txt +3 -3
- package/tailwind/routes/account/notifications/index.tsx.txt +3 -2
- package/tailwind/routes/account/orders/index.tsx.txt +6 -3
- package/tailwind/routes/account/profile/index.tsx.txt +3 -2
- package/tailwind/routes/account/settings/index.tsx.txt +3 -2
- package/tailwind/routes/account/wallet/index.tsx.txt +5 -2
- package/tailwind/routes/account/wishlist/index.tsx.txt +3 -2
- package/tailwind/routes/blog/index.tsx.txt +9 -6
- package/tailwind/routes/brands/index.tsx.txt +5 -2
- package/tailwind/routes/lazy.ts.txt +23 -23
- package/tailwind/routes/loyalty/index.tsx.txt +4 -3
- package/tailwind/routes/page/index.tsx.txt +5 -2
- package/tailwind/routes/root/beforeLoad.ts.txt +80 -19
- package/tailwind/routes/testimonials/index.tsx.txt +4 -3
- package/tailwind/routes/thank-you/index.tsx.txt +3 -2
- package/dist/AddToCartForm-RG4ANO47.js.map +0 -1
- package/dist/BlogAuthorPage-JEYNAFRH.js.map +0 -1
- package/dist/BlogCategoryPage-IIAXWMHD.js.map +0 -1
- package/dist/BlogPage-NKYICNRT.js.map +0 -1
- package/dist/BlogSinglePage-FBO4NQL5.js.map +0 -1
- package/dist/BlogTagPage-WZIUPBEM.js.map +0 -1
- package/dist/BrandsPage-EN6MZV6T.js.map +0 -1
- package/dist/Breadcrumb-COB4TMMI.js.map +0 -1
- package/dist/CartItem-SYQZHA2F.js.map +0 -1
- package/dist/CartSummary-YQN7N6JW.js.map +0 -1
- package/dist/Copyright-II2URAIP.js.map +0 -1
- package/dist/CustomerLayout-75NK34WK.js.map +0 -1
- package/dist/LoyaltyPage-R4KWVGLW.js.map +0 -1
- package/dist/LoyaltyPointsPage-L7HG54RQ.js.map +0 -1
- package/dist/MainMenu-KI4BAA7W.js.map +0 -1
- package/dist/MobileMenu-LJXKYKRI.js.map +0 -1
- package/dist/NotificationsPage-4TUPN24E.js.map +0 -1
- package/dist/OrderSinglePage-N3YGXCKL.js.map +0 -1
- package/dist/OrdersPage-V3WNW2WZ.js.map +0 -1
- package/dist/PageSingle-H5YA47EG.js.map +0 -1
- package/dist/ProductDetails-EHRMQR7F.js.map +0 -1
- package/dist/ProfilePage-3GRY4RSA.js.map +0 -1
- package/dist/ReviewsPage-SPHK5MCS.js.map +0 -1
- package/dist/SeoCartWidget-P2QQ62AF.js.map +0 -1
- package/dist/SettingsPage-YFN32XOV.js.map +0 -1
- package/dist/TestimonialsPage-4W6SXN24.js.map +0 -1
- package/dist/ThankYouPage-56AIK3QG.js.map +0 -1
- package/dist/WalletPage-FLB4OCK4.js.map +0 -1
- package/dist/WishlistPage-H6KGJYRT.js.map +0 -1
- package/dist/chunk-7V5HOZW4.js +0 -10
- package/dist/chunk-7V5HOZW4.js.map +0 -1
- package/dist/chunk-BXQZXOFK.js.map +0 -1
- package/dist/chunk-DIA2LU6I.js.map +0 -1
- package/dist/chunk-EDK4U4WQ.js.map +0 -1
- package/dist/chunk-F73QPQX7.js.map +0 -1
- package/dist/chunk-IZ4MRCNY.js +0 -14
- package/dist/chunk-IZ4MRCNY.js.map +0 -1
- package/dist/chunk-JLJKIXDT.js.map +0 -1
- package/dist/chunk-MMXLOECO.js.map +0 -1
- package/dist/chunk-SDJVSRTL.js +0 -21
- package/dist/chunk-SDJVSRTL.js.map +0 -1
- package/dist/chunk-TUIB74QX.js.map +0 -1
- package/dist/chunk-V4E6JFS4.js.map +0 -1
- package/dist/not-found-3M6US423.js.map +0 -1
package/dist/routes/blog.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { blog } from '../chunk-
|
|
1
|
+
import { blog } from '../chunk-OSYUGCRG.js';
|
|
2
2
|
import { buildHreflangAlternates } from '../chunk-RYGEIQWO.js';
|
|
3
|
-
import { notFound, orThrow } from '../chunk-
|
|
3
|
+
import { notFound, orThrow } from '../chunk-ITZ543CK.js';
|
|
4
4
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-5MNGLNIJ.js';
|
|
6
6
|
import '../chunk-Z5M4YYWT.js';
|
|
7
7
|
import '../chunk-3E3ABCPC.js';
|
|
8
8
|
import '../chunk-NHA4SBKG.js';
|
|
@@ -10,8 +10,8 @@ import '../chunk-FXVII733.js';
|
|
|
10
10
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
11
11
|
import '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DF6FBKDN.js';
|
|
13
|
+
import { lazyComponent } from '../chunk-VYGA5AT5.js';
|
|
13
14
|
import '../chunk-DGUM43GV.js';
|
|
14
|
-
import { lazy } from 'react';
|
|
15
15
|
|
|
16
16
|
// src/routes/blog/loader.ts
|
|
17
17
|
async function blogLoader() {
|
|
@@ -146,18 +146,20 @@ async function blogTagLoader({
|
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
// src/routes/blog/index.tsx
|
|
149
|
-
var LazyBlogPage =
|
|
150
|
-
|
|
151
|
-
() => import('../BlogSinglePage-FBO4NQL5.js').then((m) => ({ default: m.BlogSinglePage }))
|
|
149
|
+
var LazyBlogPage = lazyComponent(
|
|
150
|
+
() => import('../BlogPage-5SQNDQ7L.js').then((m) => ({ default: m.BlogPage }))
|
|
152
151
|
);
|
|
153
|
-
var
|
|
154
|
-
() => import('../
|
|
152
|
+
var LazyBlogSinglePage = lazyComponent(
|
|
153
|
+
() => import('../BlogSinglePage-XSRKZYUI.js').then((m) => ({ default: m.BlogSinglePage }))
|
|
155
154
|
);
|
|
156
|
-
var
|
|
157
|
-
() => import('../
|
|
155
|
+
var LazyBlogAuthorPage = lazyComponent(
|
|
156
|
+
() => import('../BlogAuthorPage-UJYMW4ZL.js').then((m) => ({ default: m.BlogAuthorPage }))
|
|
158
157
|
);
|
|
159
|
-
var
|
|
160
|
-
() => import('../
|
|
158
|
+
var LazyBlogCategoryPage = lazyComponent(
|
|
159
|
+
() => import('../BlogCategoryPage-3XO42UFX.js').then((m) => ({ default: m.BlogCategoryPage }))
|
|
160
|
+
);
|
|
161
|
+
var LazyBlogTagPage = lazyComponent(
|
|
162
|
+
() => import('../BlogTagPage-CFXWHUJR.js').then((m) => ({ default: m.BlogTagPage }))
|
|
161
163
|
);
|
|
162
164
|
var BlogPage = LazyBlogPage;
|
|
163
165
|
var BlogSinglePage = LazyBlogSinglePage;
|
package/dist/routes/blog.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/blog/loader.ts","../../src/routes/blog/index.tsx"],"names":[],"mappings":"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","file":"blog.js","sourcesContent":["import { blog } from '../../api/blog';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { notFound, orThrow } from '../../providers/NavigationProvider';\nimport type { Breadcrumb } from '../../types';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\n\nexport async function blogLoader(): Promise<BlogPageProps> {\n const i18n = getTwilightContext().i18n;\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n ];\n\n const page = {\n slug: RouteId.BLOG_INDEX,\n title: i18n.t('blocks.footer.blog') || 'Blog',\n breadcrumbs,\n };\n\n try {\n const overview = await blog.get();\n return {\n page,\n articles: overview.articles,\n categories: overview.categories,\n slides: overview.slides,\n popular: overview.popular,\n };\n } catch (_error) {\n return {\n page,\n articles: [],\n categories: [],\n slides: [],\n popular: [],\n };\n }\n}\n\nexport async function blogSingleLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogSinglePageProps> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n // The API answers a non-numeric id with 417, which `orThrow` would pass through as an error.\n if (!/^\\d+$/.test(id)) throw notFound();\n const article = await blog.articles.findOrThrow(id);\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: article.name, url: article.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_SINGLE,\n id: article.id,\n title: article.name,\n breadcrumbs,\n },\n article,\n related: article.related,\n };\n}\n\nexport async function blogAuthorLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<BlogAuthorLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ author: id })),\n blog.get(),\n ]);\n const author = response.author;\n // The API answers an unknown id without the author object: 404 instead of a TypeError (500).\n if (!author) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: author.name, url: author.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_INDEX_AUTHOR,\n id,\n title: author.name,\n breadcrumbs,\n },\n author,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogCategoryLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogCategoryLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ category: id })),\n blog.get(),\n ]);\n const category = response.category;\n if (!category) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: category.name, url: category.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_CATEGORY, id: category.id, title: category.name, breadcrumbs },\n blogCategory: category,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogTagLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogTagLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ tag: id })),\n blog.get(),\n ]);\n const tag = response.tag;\n if (!tag) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: tag.name, url: tag.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_TAG, id: tag.id, title: tag.name, breadcrumbs },\n blogTag: tag,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport { lazy } from 'react';\nimport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategory as BlogCategoryType,\n CategoryMeta,\n BlogTag as BlogTagType,\n BlogAuthor as BlogAuthorType,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nconst LazyBlogPage = lazy(() => import('./BlogPage').then((m) => ({ default: m.BlogPage })));\nconst LazyBlogSinglePage = lazy(() =>\n import('./BlogSinglePage').then((m) => ({ default: m.BlogSinglePage }))\n);\nconst LazyBlogAuthorPage = lazy(() =>\n import('./BlogAuthorPage').then((m) => ({ default: m.BlogAuthorPage }))\n);\nconst LazyBlogCategoryPage = lazy(() =>\n import('./BlogCategoryPage').then((m) => ({ default: m.BlogCategoryPage }))\n);\nconst LazyBlogTagPage = lazy(() =>\n import('./BlogTagPage').then((m) => ({ default: m.BlogTagPage }))\n);\n\nexport const BlogPage = LazyBlogPage;\nexport const BlogSinglePage = LazyBlogSinglePage;\nexport const BlogAuthorPage = LazyBlogAuthorPage;\nexport const BlogCategoryPage = LazyBlogCategoryPage;\nexport const BlogTagPage = LazyBlogTagPage;\nexport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nexport type {\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n BlogPageProps,\n BlogSinglePageProps,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategoryType,\n CategoryMeta,\n BlogTagType,\n BlogAuthorType,\n};\n\nasync function blogLoaderWithExtend(\n _ctx?: { locale?: string },\n extend?: (\n data: BlogPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogPageProps> {\n const data = await blogLoader();\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as BlogPageProps;\n }\n return data;\n}\n\nfunction blogHead(ctx: TwilightContext, data: BlogPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogSingleLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogSinglePageProps,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogSinglePageProps> {\n const data = await blogSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogSinglePageProps;\n }\n return data;\n}\n\nfunction blogSingleHead(ctx: TwilightContext, data: BlogSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.article.meta?.title ?? data.article.name,\n description: data.article.meta?.description ?? data.article.description,\n canonical: data.article.meta?.canonical ?? data.article.url,\n openGraph: {\n title: data.article.meta?.title ?? data.article.name,\n images: data.article.meta?.og_image ?? data.article.image,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogAuthorLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: BlogAuthorLoaderData,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogAuthorLoaderData> {\n const data = await blogAuthorLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogAuthorLoaderData;\n }\n return data;\n}\n\nfunction blogAuthorHead(ctx: TwilightContext, data: BlogAuthorLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.author.name,\n description: `Articles by ${data.author.name}`,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogCategoryLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogCategoryLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogCategoryLoaderData> {\n const data = await blogCategoryLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogCategoryLoaderData;\n }\n return data;\n}\n\nfunction blogCategoryHead(ctx: TwilightContext, data: BlogCategoryLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogCategory.meta?.title ?? data.blogCategory.name,\n description: data.blogCategory.meta?.description ?? `Articles in ${data.blogCategory.name}`,\n canonical: data.blogCategory.meta?.canonical ?? data.blogCategory.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogTagLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogTagLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogTagLoaderData> {\n const data = await blogTagLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogTagLoaderData;\n }\n return data;\n}\n\nfunction blogTagHead(ctx: TwilightContext, data: BlogTagLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogTag.name,\n description: `Articles tagged with ${data.blogTag.name}`,\n canonical: data.blogTag.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Blog = {\n id: RouteId.BLOG_INDEX,\n loader: blogLoaderWithExtend,\n head: blogHead,\n Component: LazyBlogPage,\n} as const;\nexport const BlogSingle = {\n id: RouteId.BLOG_SINGLE,\n loader: blogSingleLoaderWithExtend,\n head: blogSingleHead,\n Component: LazyBlogSinglePage,\n} as const;\nexport const BlogAuthorRoute = {\n id: RouteId.BLOG_INDEX_AUTHOR,\n loader: blogAuthorLoaderWithExtend,\n head: blogAuthorHead,\n Component: LazyBlogAuthorPage,\n} as const;\nexport const BlogCategoryRoute = {\n id: RouteId.BLOG_INDEX_CATEGORY,\n loader: blogCategoryLoaderWithExtend,\n head: blogCategoryHead,\n Component: LazyBlogCategoryPage,\n} as const;\nexport const BlogTagRoute = {\n id: RouteId.BLOG_INDEX_TAG,\n loader: blogTagLoaderWithExtend,\n head: blogTagHead,\n Component: LazyBlogTagPage,\n} as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/routes/blog/loader.ts","../../src/routes/blog/index.tsx"],"names":[],"mappings":"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","file":"blog.js","sourcesContent":["import { blog } from '../../api/blog';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { notFound, orThrow } from '../../providers/NavigationProvider';\nimport type { Breadcrumb } from '../../types';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\n\nexport async function blogLoader(): Promise<BlogPageProps> {\n const i18n = getTwilightContext().i18n;\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n ];\n\n const page = {\n slug: RouteId.BLOG_INDEX,\n title: i18n.t('blocks.footer.blog') || 'Blog',\n breadcrumbs,\n };\n\n try {\n const overview = await blog.get();\n return {\n page,\n articles: overview.articles,\n categories: overview.categories,\n slides: overview.slides,\n popular: overview.popular,\n };\n } catch (_error) {\n return {\n page,\n articles: [],\n categories: [],\n slides: [],\n popular: [],\n };\n }\n}\n\nexport async function blogSingleLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogSinglePageProps> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n // The API answers a non-numeric id with 417, which `orThrow` would pass through as an error.\n if (!/^\\d+$/.test(id)) throw notFound();\n const article = await blog.articles.findOrThrow(id);\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: article.name, url: article.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_SINGLE,\n id: article.id,\n title: article.name,\n breadcrumbs,\n },\n article,\n related: article.related,\n };\n}\n\nexport async function blogAuthorLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<BlogAuthorLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ author: id })),\n blog.get(),\n ]);\n const author = response.author;\n // The API answers an unknown id without the author object: 404 instead of a TypeError (500).\n if (!author) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: author.name, url: author.url },\n ];\n\n return {\n page: {\n slug: RouteId.BLOG_INDEX_AUTHOR,\n id,\n title: author.name,\n breadcrumbs,\n },\n author,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogCategoryLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogCategoryLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ category: id })),\n blog.get(),\n ]);\n const category = response.category;\n if (!category) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: category.name, url: category.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_CATEGORY, id: category.id, title: category.name, breadcrumbs },\n blogCategory: category,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n\nexport async function blogTagLoader({\n params,\n}: {\n params: SlugIdParams;\n}): Promise<BlogTagLoaderData> {\n const { id } = params;\n const i18n = getTwilightContext().i18n;\n\n const [response, overview] = await Promise.all([\n orThrow(blog.articles.list({ tag: id })),\n blog.get(),\n ]);\n const tag = response.tag;\n if (!tag) throw notFound();\n\n const breadcrumbs: Breadcrumb[] = [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: i18n.t('blocks.footer.blog'), url: '/blog' },\n { name: tag.name, url: tag.url },\n ];\n\n return {\n page: { slug: RouteId.BLOG_INDEX_TAG, id: tag.id, title: tag.name, breadcrumbs },\n blogTag: tag,\n categories: overview.categories,\n articles: response.data,\n cursor: response.cursor,\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nimport type {\n BlogPageProps,\n BlogSinglePageProps,\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategory as BlogCategoryType,\n CategoryMeta,\n BlogTag as BlogTagType,\n BlogAuthor as BlogAuthorType,\n} from './types';\nimport type { IdParams, SlugIdParams } from '../types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nconst LazyBlogPage = lazyComponent(() =>\n import('./BlogPage').then((m) => ({ default: m.BlogPage }))\n);\nconst LazyBlogSinglePage = lazyComponent(() =>\n import('./BlogSinglePage').then((m) => ({ default: m.BlogSinglePage }))\n);\nconst LazyBlogAuthorPage = lazyComponent(() =>\n import('./BlogAuthorPage').then((m) => ({ default: m.BlogAuthorPage }))\n);\nconst LazyBlogCategoryPage = lazyComponent(() =>\n import('./BlogCategoryPage').then((m) => ({ default: m.BlogCategoryPage }))\n);\nconst LazyBlogTagPage = lazyComponent(() =>\n import('./BlogTagPage').then((m) => ({ default: m.BlogTagPage }))\n);\n\nexport const BlogPage = LazyBlogPage;\nexport const BlogSinglePage = LazyBlogSinglePage;\nexport const BlogAuthorPage = LazyBlogAuthorPage;\nexport const BlogCategoryPage = LazyBlogCategoryPage;\nexport const BlogTagPage = LazyBlogTagPage;\nexport {\n blogLoader,\n blogSingleLoader,\n blogAuthorLoader,\n blogCategoryLoader,\n blogTagLoader,\n} from './loader';\nimport { lazyComponent } from '../../utils/lazy-component';\nexport type {\n BlogAuthorLoaderData,\n BlogCategoryLoaderData,\n BlogTagLoaderData,\n BlogPageProps,\n BlogSinglePageProps,\n ArticleSummary,\n ArticleDetail,\n ArticleStats,\n ArticleMeta,\n BlogCategoryType,\n CategoryMeta,\n BlogTagType,\n BlogAuthorType,\n};\n\nasync function blogLoaderWithExtend(\n _ctx?: { locale?: string },\n extend?: (\n data: BlogPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogPageProps> {\n const data = await blogLoader();\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as BlogPageProps;\n }\n return data;\n}\n\nfunction blogHead(ctx: TwilightContext, data: BlogPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogSingleLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogSinglePageProps,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogSinglePageProps> {\n const data = await blogSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogSinglePageProps;\n }\n return data;\n}\n\nfunction blogSingleHead(ctx: TwilightContext, data: BlogSinglePageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.article.meta?.title ?? data.article.name,\n description: data.article.meta?.description ?? data.article.description,\n canonical: data.article.meta?.canonical ?? data.article.url,\n openGraph: {\n title: data.article.meta?.title ?? data.article.name,\n images: data.article.meta?.og_image ?? data.article.image,\n },\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogAuthorLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: BlogAuthorLoaderData,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogAuthorLoaderData> {\n const data = await blogAuthorLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogAuthorLoaderData;\n }\n return data;\n}\n\nfunction blogAuthorHead(ctx: TwilightContext, data: BlogAuthorLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.author.name,\n description: `Articles by ${data.author.name}`,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogCategoryLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogCategoryLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogCategoryLoaderData> {\n const data = await blogCategoryLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogCategoryLoaderData;\n }\n return data;\n}\n\nfunction blogCategoryHead(ctx: TwilightContext, data: BlogCategoryLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogCategory.meta?.title ?? data.blogCategory.name,\n description: data.blogCategory.meta?.description ?? `Articles in ${data.blogCategory.name}`,\n canonical: data.blogCategory.meta?.canonical ?? data.blogCategory.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function blogTagLoaderWithExtend(\n ctx: { params: SlugIdParams; locale?: string },\n extend?: (\n data: BlogTagLoaderData,\n ctx: { params: SlugIdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BlogTagLoaderData> {\n const data = await blogTagLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as BlogTagLoaderData;\n }\n return data;\n}\n\nfunction blogTagHead(ctx: TwilightContext, data: BlogTagLoaderData): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.blogTag.name,\n description: `Articles tagged with ${data.blogTag.name}`,\n canonical: data.blogTag.url,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Blog = {\n id: RouteId.BLOG_INDEX,\n loader: blogLoaderWithExtend,\n head: blogHead,\n Component: LazyBlogPage,\n} as const;\nexport const BlogSingle = {\n id: RouteId.BLOG_SINGLE,\n loader: blogSingleLoaderWithExtend,\n head: blogSingleHead,\n Component: LazyBlogSinglePage,\n} as const;\nexport const BlogAuthorRoute = {\n id: RouteId.BLOG_INDEX_AUTHOR,\n loader: blogAuthorLoaderWithExtend,\n head: blogAuthorHead,\n Component: LazyBlogAuthorPage,\n} as const;\nexport const BlogCategoryRoute = {\n id: RouteId.BLOG_INDEX_CATEGORY,\n loader: blogCategoryLoaderWithExtend,\n head: blogCategoryHead,\n Component: LazyBlogCategoryPage,\n} as const;\nexport const BlogTagRoute = {\n id: RouteId.BLOG_INDEX_TAG,\n loader: blogTagLoaderWithExtend,\n head: blogTagHead,\n Component: LazyBlogTagPage,\n} as const;\n"]}
|
|
@@ -2,7 +2,7 @@ import type { HeadDescriptor } from '../../utils/head';
|
|
|
2
2
|
import { brandsLoader } from './loader';
|
|
3
3
|
import type { BrandsPageProps } from './types';
|
|
4
4
|
import type { TwilightContext } from '../../twilight/context';
|
|
5
|
-
export declare const BrandsPage: import("
|
|
5
|
+
export declare const BrandsPage: import("../../utils/lazy-component").LazyComponent<import("react").MemoExoticComponent<({ page, brands, pagination }: BrandsPageProps) => import("react").JSX.Element>>;
|
|
6
6
|
export { brandsLoader };
|
|
7
7
|
export type { BrandsPageProps, Brand, BrandsGroup } from './types';
|
|
8
8
|
declare function brandsLoaderWithExtend(_ctx?: {
|
|
@@ -15,6 +15,6 @@ export declare const Brands: {
|
|
|
15
15
|
readonly id: "brands.index";
|
|
16
16
|
readonly loader: typeof brandsLoaderWithExtend;
|
|
17
17
|
readonly head: typeof brandsHead;
|
|
18
|
-
readonly Component: import("
|
|
18
|
+
readonly Component: import("../../utils/lazy-component").LazyComponent<import("react").MemoExoticComponent<({ page, brands, pagination }: BrandsPageProps) => import("react").JSX.Element>>;
|
|
19
19
|
};
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/brands/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/brands/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS9D,eAAO,MAAM,UAAU,yKAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,CAAC;AACxB,YAAY,EAAE,eAAe,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEnE,iBAAe,sBAAsB,CACnC,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1B,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,KACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9D,OAAO,CAAC,eAAe,CAAC,CAQ1B;AAED,iBAAS,UAAU,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,GAAG,cAAc,CAQ/E;AAED,eAAO,MAAM,MAAM;;;;;CAKT,CAAC"}
|
package/dist/routes/brands.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { brand } from '../chunk-
|
|
1
|
+
import { brand } from '../chunk-OXBMZSKL.js';
|
|
2
2
|
import { buildHreflangAlternates } from '../chunk-RYGEIQWO.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-ITZ543CK.js';
|
|
4
4
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-5MNGLNIJ.js';
|
|
6
6
|
import '../chunk-Z5M4YYWT.js';
|
|
7
7
|
import '../chunk-3E3ABCPC.js';
|
|
8
8
|
import '../chunk-NHA4SBKG.js';
|
|
@@ -10,8 +10,8 @@ import '../chunk-FXVII733.js';
|
|
|
10
10
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
11
11
|
import '../chunk-T72DAX7R.js';
|
|
12
12
|
import '../chunk-DF6FBKDN.js';
|
|
13
|
+
import { lazyComponent } from '../chunk-VYGA5AT5.js';
|
|
13
14
|
import '../chunk-DGUM43GV.js';
|
|
14
|
-
import { lazy } from 'react';
|
|
15
15
|
|
|
16
16
|
// src/routes/brands/loader.ts
|
|
17
17
|
async function brandsLoader() {
|
|
@@ -25,7 +25,9 @@ async function brandsLoader() {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
// src/routes/brands/index.tsx
|
|
28
|
-
var LazyBrandsPage =
|
|
28
|
+
var LazyBrandsPage = lazyComponent(
|
|
29
|
+
() => import('../BrandsPage-APYVP4M2.js').then((m) => ({ default: m.BrandsPage }))
|
|
30
|
+
);
|
|
29
31
|
var BrandsPage = LazyBrandsPage;
|
|
30
32
|
async function brandsLoaderWithExtend(_ctx, extend) {
|
|
31
33
|
const data = await brandsLoader();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/brands/loader.ts","../../src/routes/brands/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,eAAsB,YAAA,GAAyC;AAC7D,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAK,GAAI,MAAM,MAAM,IAAA,EAAK;AACzC,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,EAAE,IAAA,EAAM,OAAA,CAAQ,YAAA,EAAc,OAAO,IAAA,CAAK,CAAA,CAAE,sBAAsB,CAAA,IAAK,QAAA,EAAS;AAAA,IACtF,MAAA,EAAQ,KAAA;AAAA,IACR,UAAA,EAAY,EAAE,IAAA;AAAK,GACrB;AACF;;;
|
|
1
|
+
{"version":3,"sources":["../../src/routes/brands/loader.ts","../../src/routes/brands/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAKA,eAAsB,YAAA,GAAyC;AAC7D,EAAA,MAAM,EAAE,KAAA,EAAO,IAAA,EAAK,GAAI,MAAM,MAAM,IAAA,EAAK;AACzC,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,EAAE,IAAA,EAAM,OAAA,CAAQ,YAAA,EAAc,OAAO,IAAA,CAAK,CAAA,CAAE,sBAAsB,CAAA,IAAK,QAAA,EAAS;AAAA,IACtF,MAAA,EAAQ,KAAA;AAAA,IACR,UAAA,EAAY,EAAE,IAAA;AAAK,GACrB;AACF;;;ACHA,IAAM,cAAA,GAAiB,aAAA;AAAA,EAAc,MACnC,OAAO,2BAAc,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,UAAA,EAAW,CAAE;AAChE,CAAA;AAEO,IAAM,UAAA,GAAa;AAI1B,eAAe,sBAAA,CACb,MACA,MAAA,EAI0B;AAC1B,EAAA,MAAM,IAAA,GAAO,MAAM,YAAA,EAAa;AAEhC,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,IAAA,EAAM,EAAE,MAAA,EAAQ,IAAI,CAAA;AAC/C,IAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAG,KAAA,EAAM;AAAA,EAC7B;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,UAAA,CAAW,KAAsB,IAAA,EAAuC;AAC/E,EAAA,MAAM,IAAA,GAAuB;AAAA,IAC3B,KAAA,EAAO,KAAK,IAAA,CAAK,KAAA;AAAA,IACjB,WAAA,EAAa,KAAK,IAAA,CAAK,WAAA;AAAA,IACvB,oBAAoB,uBAAA,CAAwB,GAAA,CAAI,QAAA,EAAU,GAAA,CAAI,SAAS,QAAQ;AAAA,GACjF;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,MAAA,GAAS;AAAA,EACpB,IAAI,OAAA,CAAQ,YAAA;AAAA,EACZ,MAAA,EAAQ,sBAAA;AAAA,EACR,IAAA,EAAM,UAAA;AAAA,EACN,SAAA,EAAW;AACb","file":"brands.js","sourcesContent":["import type { BrandsPageProps } from './types';\nimport { brand } from '../../api/brands';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport async function brandsLoader(): Promise<BrandsPageProps> {\n const { items, next } = await brand.list();\n const i18n = getTwilightContext().i18n;\n return {\n page: { slug: RouteId.BRANDS_INDEX, title: i18n.t('common.titles.brands') || 'Brands' },\n brands: items,\n pagination: { next },\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport { brandsLoader } from './loader';\nimport type { BrandsPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { lazyComponent } from '../../utils/lazy-component';\n\n// Lazy-load components for code-splitting\nconst LazyBrandsPage = lazyComponent(() =>\n import('./BrandsPage').then((m) => ({ default: m.BrandsPage }))\n);\n\nexport const BrandsPage = LazyBrandsPage;\nexport { brandsLoader };\nexport type { BrandsPageProps, Brand, BrandsGroup } from './types';\n\nasync function brandsLoaderWithExtend(\n _ctx?: { locale?: string },\n extend?: (\n data: BrandsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<BrandsPageProps> {\n const data = await brandsLoader();\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as BrandsPageProps;\n }\n return data;\n}\n\nfunction brandsHead(ctx: TwilightContext, data: BrandsPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Brands = {\n id: RouteId.BRANDS_INDEX,\n loader: brandsLoaderWithExtend,\n head: brandsHead,\n Component: LazyBrandsPage,\n} as const;\n"]}
|
package/dist/routes/cart.js
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
import { cart } from '../chunk-
|
|
2
|
-
import { loyalty } from '../chunk-
|
|
1
|
+
import { cart } from '../chunk-DMS6PZXN.js';
|
|
2
|
+
import { loyalty } from '../chunk-EJ66I5SH.js';
|
|
3
3
|
import { CartSkeleton } from '../chunk-N7CCSGZF.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-LMMDVLAB.js';
|
|
5
5
|
import '../chunk-IXHM24Z4.js';
|
|
6
|
-
import '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-
|
|
10
|
-
import '../chunk-
|
|
6
|
+
import '../chunk-SAYYMA6E.js';
|
|
7
|
+
import '../chunk-HEWFF3KI.js';
|
|
8
|
+
import '../chunk-U6EB7GM3.js';
|
|
9
|
+
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-KLVEKLFL.js';
|
|
10
|
+
import '../chunk-3QR6T7KW.js';
|
|
11
11
|
import '../chunk-Y32RHCOH.js';
|
|
12
|
-
import '../chunk-
|
|
12
|
+
import '../chunk-UXS3QCHM.js';
|
|
13
13
|
import '../chunk-H2QBHOF2.js';
|
|
14
|
-
import '../chunk-
|
|
15
|
-
import '../chunk-
|
|
14
|
+
import '../chunk-VFQNVPFH.js';
|
|
15
|
+
import '../chunk-JFKHKDSK.js';
|
|
16
16
|
import '../chunk-N6ZE6HUX.js';
|
|
17
17
|
import '../chunk-X55R4VVK.js';
|
|
18
|
-
import '../chunk-
|
|
18
|
+
import '../chunk-S7FNMT24.js';
|
|
19
19
|
import '../chunk-OXMUPNMH.js';
|
|
20
|
-
import '../chunk-
|
|
20
|
+
import '../chunk-HG75MP47.js';
|
|
21
21
|
import '../chunk-VVZNW5CB.js';
|
|
22
22
|
import '../chunk-WQPG22DY.js';
|
|
23
23
|
import '../chunk-GD26FI4J.js';
|
|
24
24
|
import '../chunk-Q7E4TNN7.js';
|
|
25
25
|
import { buildHreflangAlternates } from '../chunk-RYGEIQWO.js';
|
|
26
|
-
import '../chunk-
|
|
26
|
+
import '../chunk-ITZ543CK.js';
|
|
27
27
|
import { RouteId } from '../chunk-OUW6WESU.js';
|
|
28
28
|
import '../chunk-HOJ5E2PG.js';
|
|
29
29
|
import '../chunk-HI5V5X3S.js';
|
|
30
|
-
import '../chunk-
|
|
31
|
-
import '../chunk-
|
|
30
|
+
import '../chunk-5FEFYFTS.js';
|
|
31
|
+
import '../chunk-TVAXTMMQ.js';
|
|
32
32
|
import '../chunk-MVT5AF2A.js';
|
|
33
33
|
import '../chunk-Z653O7MX.js';
|
|
34
34
|
import '../chunk-ZCH7W7DZ.js';
|
|
@@ -39,22 +39,22 @@ import '../chunk-7V36I5GT.js';
|
|
|
39
39
|
import '../chunk-6WI7R2BD.js';
|
|
40
40
|
import '../chunk-LFHYQ6AN.js';
|
|
41
41
|
import '../chunk-OAMIDZKW.js';
|
|
42
|
-
import '../chunk-
|
|
42
|
+
import '../chunk-PBFLXHKM.js';
|
|
43
43
|
import '../chunk-OQIIJRAS.js';
|
|
44
44
|
import '../chunk-V2ZDTY6H.js';
|
|
45
|
-
import '../chunk-
|
|
45
|
+
import '../chunk-MWAXFBGG.js';
|
|
46
46
|
import { HookSlot } from '../chunk-5XDPAKF5.js';
|
|
47
47
|
import '../chunk-GCPEMNSU.js';
|
|
48
|
-
import '../chunk-
|
|
48
|
+
import '../chunk-5MNGLNIJ.js';
|
|
49
49
|
import '../chunk-Z5M4YYWT.js';
|
|
50
50
|
import { useTranslation } from '../chunk-TYNZ5B2B.js';
|
|
51
|
-
import { LazyBreadcrumb, LazyNoContent } from '../chunk-
|
|
51
|
+
import { LazyBreadcrumb, LazyNoContent } from '../chunk-TWLJ2RII.js';
|
|
52
52
|
import '../chunk-AXW67SY7.js';
|
|
53
53
|
import '../chunk-BYMOPN2S.js';
|
|
54
54
|
import '../chunk-SKLEJJ6M.js';
|
|
55
55
|
import '../chunk-6BZ5TKEV.js';
|
|
56
56
|
import '../chunk-FZKRSGLP.js';
|
|
57
|
-
import '../chunk-
|
|
57
|
+
import '../chunk-KYMWEUN2.js';
|
|
58
58
|
import '../chunk-YA6ABQB7.js';
|
|
59
59
|
import '../chunk-MWYKP7CI.js';
|
|
60
60
|
import '../chunk-3E3ABCPC.js';
|
|
@@ -63,6 +63,7 @@ import '../chunk-FXVII733.js';
|
|
|
63
63
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
64
64
|
import '../chunk-T72DAX7R.js';
|
|
65
65
|
import { useTwilight } from '../chunk-DF6FBKDN.js';
|
|
66
|
+
import '../chunk-VYGA5AT5.js';
|
|
66
67
|
import '../chunk-DGUM43GV.js';
|
|
67
68
|
import { useQuery } from '@tanstack/react-query';
|
|
68
69
|
import { SallaConditionalOffer } from '@salla.sa/twilight-components-react/conditional-offer';
|
package/dist/routes/cart.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/cart/CartPage.tsx","../../src/routes/cart/loader.ts","../../src/routes/cart/index.tsx"],"names":[],"mappings":"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","file":"cart.js","sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { SallaConditionalOffer } from '@salla.sa/twilight-components-react/conditional-offer';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaProductOptions } from '@salla.sa/twilight-components-react/product-options';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { CartPageProps } from './types';\nimport { Breadcrumb, NoContent } from '../../components/common';\nimport { CartItem, CartSummary, SeoCartWidget } from '../../components/cart';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { CartSkeleton } from '../../skeleton';\nimport { loyalty } from '../../api/loyalty';\nimport { cart } from '../../api/cart';\n\nfunction CartPageContent({ page }: CartPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const { data: loyaltyPoints } = useQuery(loyalty.queries.points());\n\n const { data: cartId } = useQuery(cart.queries.currentId());\n\n const { data: cartData } = useQuery({\n ...cart.queries.detail(cartId!),\n enabled: !!cartId,\n });\n\n const isLoading = cartId == null || cartData === undefined;\n\n if (isLoading) {\n return <CartSkeleton />;\n }\n\n // No cart: it was already turned into an order, shown empty like Twig.\n if (!cartData || cartData.items.length === 0) {\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n <NoContent\n icon=\"sicon-shopping-bag\"\n message={t('pages.cart.empty_cart', 'Your cart is empty')}\n actionLabel={t('common.elements.back_home', 'Back to Home')}\n actionUrl=\"/\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"container\">\n {/* Analytics — no visible UI, fires GTM checkout events */}\n <SeoCartWidget cart={cartData} />\n\n <Breadcrumb page={page} />\n <h1 className=\"sr-only\">{t('common.titles.cart', 'Cart')}</h1>\n <SallaConditionalOffer />\n\n <HookSlot name=\"cart:start\" />\n\n <div className=\"pt-5 flex flex-col items-start lg:flex-row pb-6 lg:pb-20\">\n <div className=\"main-content w-full lg:w-[calc(100%-384px)]\">\n <HookSlot name=\"cart:items.start\" context={{ cartItems: cartData.items }} />\n\n {cartData.items.map((item, index) => (\n <CartItem key={item.id} item={item} isFirst={index === 0} />\n ))}\n\n {cartData.options?.length > 0 && (\n <div className=\"cart-options\">\n {cartData.options.map((option) => (\n <form\n key={option.id}\n className=\"first:pt-5 relative\"\n onChange={(e) => window.salla?.form.onChange('cart.updateItem', e)}\n id={`item-${option.id}`}\n >\n <input type=\"hidden\" name=\"id\" value={option.id} />\n <input type=\"hidden\" name=\"quantity\" value={option.quantity} />\n {/* Twig: {% include 'pages.partials.product.options' with {product:product_option} %} */}\n {option.options && option.options.length > 0 && (\n <SallaProductOptions\n options={JSON.stringify(option.options)}\n productId={option.id}\n />\n )}\n </form>\n ))}\n </div>\n )}\n\n <SallaOffer />\n <HookSlot name=\"cart:items.end\" />\n </div>\n\n <CartSummary\n cart={cartData}\n applyCouponEnabled={store.settings?.cart?.apply_coupon_enabled}\n taxAmount={cartData.tax_amount}\n key={cartData.id}\n loyalty={cartData.loyalty}\n gift={cartData.gift}\n loyaltyPoints={loyaltyPoints ?? undefined}\n />\n </div>\n\n <HookSlot name=\"cart:end\" />\n </div>\n );\n}\n\nexport function CartPage(props: CartPageProps) {\n return <CartPageContent {...props} />;\n}\n","import type { CartPageProps } from './types';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\n/**\n * SSR-safe loader that returns only page metadata.\n * Cart data is fetched client-side via React Query since the cart ID\n * lives in localStorage (unavailable during SSR).\n */\nexport function cartLoader(): CartPageProps {\n const i18n = getTwilightContext().i18n;\n return {\n page: { slug: RouteId.CART, title: i18n.t('common.titles.cart') || 'Cart' },\n } as CartPageProps;\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport { CartPage } from './CartPage';\nimport { cartLoader } from './loader';\nimport type { CartPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport { CartPage } from './CartPage';\nexport { cartLoader } from './loader';\nexport type { CartPageProps } from './types';\n\nasync function loader(\n _ctx?: { locale?: string },\n extend?: (\n data: CartPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<CartPageProps> {\n const data = cartLoader();\n\n if (extend) {\n const extra = extend(data, { params: {} });\n return { ...data, ...(extra instanceof Promise ? {} : extra) } as CartPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: CartPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Cart = { id: RouteId.CART, loader, head, Component: CartPage } as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/routes/cart/CartPage.tsx","../../src/routes/cart/loader.ts","../../src/routes/cart/index.tsx"],"names":[],"mappings":"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","file":"cart.js","sourcesContent":["import { useQuery } from '@tanstack/react-query';\nimport { SallaConditionalOffer } from '@salla.sa/twilight-components-react/conditional-offer';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaProductOptions } from '@salla.sa/twilight-components-react/product-options';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { CartPageProps } from './types';\nimport { Breadcrumb, NoContent } from '../../components/common';\nimport { CartItem, CartSummary, SeoCartWidget } from '../../components/cart';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { CartSkeleton } from '../../skeleton';\nimport { loyalty } from '../../api/loyalty';\nimport { cart } from '../../api/cart';\n\nfunction CartPageContent({ page }: CartPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const { data: loyaltyPoints } = useQuery(loyalty.queries.points());\n\n const { data: cartId } = useQuery(cart.queries.currentId());\n\n const { data: cartData } = useQuery({\n ...cart.queries.detail(cartId!),\n enabled: !!cartId,\n });\n\n const isLoading = cartId == null || cartData === undefined;\n\n if (isLoading) {\n return <CartSkeleton />;\n }\n\n // No cart: it was already turned into an order, shown empty like Twig.\n if (!cartData || cartData.items.length === 0) {\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n <NoContent\n icon=\"sicon-shopping-bag\"\n message={t('pages.cart.empty_cart', 'Your cart is empty')}\n actionLabel={t('common.elements.back_home', 'Back to Home')}\n actionUrl=\"/\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"container\">\n {/* Analytics — no visible UI, fires GTM checkout events */}\n <SeoCartWidget cart={cartData} />\n\n <Breadcrumb page={page} />\n <h1 className=\"sr-only\">{t('common.titles.cart', 'Cart')}</h1>\n <SallaConditionalOffer />\n\n <HookSlot name=\"cart:start\" />\n\n <div className=\"pt-5 flex flex-col items-start lg:flex-row pb-6 lg:pb-20\">\n <div className=\"main-content w-full lg:w-[calc(100%-384px)]\">\n <HookSlot name=\"cart:items.start\" context={{ cartItems: cartData.items }} />\n\n {cartData.items.map((item, index) => (\n <CartItem key={item.id} item={item} isFirst={index === 0} />\n ))}\n\n {cartData.options?.length > 0 && (\n <div className=\"cart-options\">\n {cartData.options.map((option) => (\n <form\n key={option.id}\n className=\"first:pt-5 relative\"\n onChange={(e) => window.salla?.form.onChange('cart.updateItem', e)}\n id={`item-${option.id}`}\n >\n <input type=\"hidden\" name=\"id\" value={option.id} />\n <input type=\"hidden\" name=\"quantity\" value={option.quantity} />\n {/* Twig: {% include 'pages.partials.product.options' with {product:product_option} %} */}\n {option.options && option.options.length > 0 && (\n <SallaProductOptions\n options={JSON.stringify(option.options)}\n productId={option.id}\n />\n )}\n </form>\n ))}\n </div>\n )}\n\n <SallaOffer />\n <HookSlot name=\"cart:items.end\" />\n </div>\n\n <CartSummary\n cart={cartData}\n applyCouponEnabled={store.settings?.cart?.apply_coupon_enabled}\n taxAmount={cartData.tax_amount}\n key={cartData.id}\n loyalty={cartData.loyalty}\n gift={cartData.gift}\n loyaltyPoints={loyaltyPoints ?? undefined}\n />\n </div>\n\n <HookSlot name=\"cart:end\" />\n </div>\n );\n}\n\nexport function CartPage(props: CartPageProps) {\n return <CartPageContent {...props} />;\n}\n","import type { CartPageProps } from './types';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\n/**\n * SSR-safe loader that returns only page metadata.\n * Cart data is fetched client-side via React Query since the cart ID\n * lives in localStorage (unavailable during SSR).\n */\nexport function cartLoader(): CartPageProps {\n const i18n = getTwilightContext().i18n;\n return {\n page: { slug: RouteId.CART, title: i18n.t('common.titles.cart') || 'Cart' },\n } as CartPageProps;\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport { CartPage } from './CartPage';\nimport { cartLoader } from './loader';\nimport type { CartPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport { CartPage } from './CartPage';\nexport { cartLoader } from './loader';\nexport type { CartPageProps } from './types';\n\nasync function loader(\n _ctx?: { locale?: string },\n extend?: (\n data: CartPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<CartPageProps> {\n const data = cartLoader();\n\n if (extend) {\n const extra = extend(data, { params: {} });\n return { ...data, ...(extra instanceof Promise ? {} : extra) } as CartPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: CartPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Cart = { id: RouteId.CART, loader, head, Component: CartPage } as const;\n"]}
|
package/dist/routes/home.js
CHANGED
|
@@ -1,30 +1,30 @@
|
|
|
1
|
-
export { Home, HomeSkeleton, homeLoader } from '../chunk-
|
|
1
|
+
export { Home, HomeSkeleton, homeLoader } from '../chunk-LMMDVLAB.js';
|
|
2
2
|
import '../chunk-IXHM24Z4.js';
|
|
3
|
-
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
6
|
-
import '../chunk-
|
|
3
|
+
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-SAYYMA6E.js';
|
|
4
|
+
import '../chunk-HEWFF3KI.js';
|
|
5
|
+
import '../chunk-U6EB7GM3.js';
|
|
6
|
+
import '../chunk-3QR6T7KW.js';
|
|
7
7
|
import '../chunk-Y32RHCOH.js';
|
|
8
|
-
import '../chunk-
|
|
8
|
+
import '../chunk-UXS3QCHM.js';
|
|
9
9
|
import '../chunk-H2QBHOF2.js';
|
|
10
|
-
import '../chunk-
|
|
11
|
-
import '../chunk-
|
|
10
|
+
import '../chunk-VFQNVPFH.js';
|
|
11
|
+
import '../chunk-JFKHKDSK.js';
|
|
12
12
|
import '../chunk-N6ZE6HUX.js';
|
|
13
13
|
import '../chunk-X55R4VVK.js';
|
|
14
|
-
import '../chunk-
|
|
14
|
+
import '../chunk-S7FNMT24.js';
|
|
15
15
|
import '../chunk-OXMUPNMH.js';
|
|
16
|
-
import '../chunk-
|
|
16
|
+
import '../chunk-HG75MP47.js';
|
|
17
17
|
import '../chunk-VVZNW5CB.js';
|
|
18
18
|
import '../chunk-WQPG22DY.js';
|
|
19
19
|
import '../chunk-GD26FI4J.js';
|
|
20
20
|
import '../chunk-Q7E4TNN7.js';
|
|
21
21
|
import '../chunk-RYGEIQWO.js';
|
|
22
|
-
import '../chunk-
|
|
22
|
+
import '../chunk-ITZ543CK.js';
|
|
23
23
|
import '../chunk-OUW6WESU.js';
|
|
24
24
|
import '../chunk-HOJ5E2PG.js';
|
|
25
25
|
import '../chunk-HI5V5X3S.js';
|
|
26
|
-
import '../chunk-
|
|
27
|
-
import '../chunk-
|
|
26
|
+
import '../chunk-5FEFYFTS.js';
|
|
27
|
+
import '../chunk-TVAXTMMQ.js';
|
|
28
28
|
import '../chunk-MVT5AF2A.js';
|
|
29
29
|
import '../chunk-Z653O7MX.js';
|
|
30
30
|
import '../chunk-ZCH7W7DZ.js';
|
|
@@ -35,22 +35,22 @@ import '../chunk-7V36I5GT.js';
|
|
|
35
35
|
import '../chunk-6WI7R2BD.js';
|
|
36
36
|
import '../chunk-LFHYQ6AN.js';
|
|
37
37
|
import '../chunk-OAMIDZKW.js';
|
|
38
|
-
import '../chunk-
|
|
38
|
+
import '../chunk-PBFLXHKM.js';
|
|
39
39
|
import '../chunk-OQIIJRAS.js';
|
|
40
40
|
import '../chunk-V2ZDTY6H.js';
|
|
41
|
-
import '../chunk-
|
|
41
|
+
import '../chunk-MWAXFBGG.js';
|
|
42
42
|
import '../chunk-5XDPAKF5.js';
|
|
43
43
|
import '../chunk-GCPEMNSU.js';
|
|
44
|
-
import '../chunk-
|
|
44
|
+
import '../chunk-5MNGLNIJ.js';
|
|
45
45
|
import '../chunk-Z5M4YYWT.js';
|
|
46
46
|
import '../chunk-TYNZ5B2B.js';
|
|
47
|
-
import '../chunk-
|
|
47
|
+
import '../chunk-TWLJ2RII.js';
|
|
48
48
|
import '../chunk-AXW67SY7.js';
|
|
49
49
|
import '../chunk-BYMOPN2S.js';
|
|
50
50
|
import '../chunk-SKLEJJ6M.js';
|
|
51
51
|
import '../chunk-6BZ5TKEV.js';
|
|
52
52
|
import '../chunk-FZKRSGLP.js';
|
|
53
|
-
import '../chunk-
|
|
53
|
+
import '../chunk-KYMWEUN2.js';
|
|
54
54
|
import '../chunk-YA6ABQB7.js';
|
|
55
55
|
import '../chunk-MWYKP7CI.js';
|
|
56
56
|
import '../chunk-3E3ABCPC.js';
|
|
@@ -59,6 +59,7 @@ import '../chunk-FXVII733.js';
|
|
|
59
59
|
import '../chunk-6K34BCUP.js';
|
|
60
60
|
import '../chunk-T72DAX7R.js';
|
|
61
61
|
import '../chunk-DF6FBKDN.js';
|
|
62
|
+
import '../chunk-VYGA5AT5.js';
|
|
62
63
|
import '../chunk-DGUM43GV.js';
|
|
63
64
|
//# sourceMappingURL=home.js.map
|
|
64
65
|
//# sourceMappingURL=home.js.map
|
package/dist/routes/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { slugBrandRedirectLoader } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { slugBrandRedirectLoader } from '../chunk-R4BPODDJ.js';
|
|
2
|
+
import '../chunk-ITZ543CK.js';
|
|
3
3
|
import '../chunk-OUW6WESU.js';
|
|
4
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-5MNGLNIJ.js';
|
|
5
5
|
import '../chunk-Z5M4YYWT.js';
|
|
6
6
|
import '../chunk-TYNZ5B2B.js';
|
|
7
7
|
import '../chunk-3E3ABCPC.js';
|
package/dist/routes/lazy.d.ts
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export declare const LazyHomePage: import("
|
|
2
|
-
export declare const LazyCartPage: import("
|
|
3
|
-
export declare const LazyProductPage: import("
|
|
4
|
-
export declare const LazyProductListingPage: import("
|
|
5
|
-
export declare const LazyBlogPage: import("
|
|
6
|
-
export declare const LazyBlogSinglePage: import("
|
|
7
|
-
export declare const LazyBlogAuthorPage: import("
|
|
8
|
-
export declare const LazyBlogCategoryPage: import("
|
|
9
|
-
export declare const LazyBlogTagPage: import("
|
|
10
|
-
export declare const LazyBrandsPage: import("
|
|
11
|
-
export declare const LazyProfilePage: import("
|
|
12
|
-
export declare const LazyWishlistPage: import("
|
|
13
|
-
export declare const LazyWalletPage: import("
|
|
14
|
-
export declare const LazyNotificationsPage: import("
|
|
15
|
-
export declare const LazySettingsPage: import("
|
|
16
|
-
export declare const LazyOrdersPage: import("
|
|
17
|
-
export declare const LazyOrderSinglePage: import("
|
|
18
|
-
export declare const LazyLoyaltyPage: import("
|
|
19
|
-
export declare const LazyPageSingle: import("
|
|
20
|
-
export declare const LazyTestimonialsPage: import("
|
|
21
|
-
export declare const LazyThankYouPage: import("
|
|
22
|
-
export declare const LazyNotFoundPage: import("
|
|
1
|
+
export declare const LazyHomePage: import("../utils/lazy-component").LazyComponent<import("react").MemoExoticComponent<({ components }: import("./home").HomePageProps) => import("react").JSX.Element>>;
|
|
2
|
+
export declare const LazyCartPage: import("../utils/lazy-component").LazyComponent<typeof import("./cart").CartPage>;
|
|
3
|
+
export declare const LazyProductPage: import("../utils/lazy-component").LazyComponent<typeof import("./product/ProductPage").ProductPage>;
|
|
4
|
+
export declare const LazyProductListingPage: import("../utils/lazy-component").LazyComponent<typeof import("./product-listing").ProductListPage>;
|
|
5
|
+
export declare const LazyBlogPage: import("../utils/lazy-component").LazyComponent<typeof import("./blog/BlogPage").BlogPage>;
|
|
6
|
+
export declare const LazyBlogSinglePage: import("../utils/lazy-component").LazyComponent<typeof import("./blog/BlogSinglePage").BlogSinglePage>;
|
|
7
|
+
export declare const LazyBlogAuthorPage: import("../utils/lazy-component").LazyComponent<typeof import("./blog/BlogAuthorPage").BlogAuthorPage>;
|
|
8
|
+
export declare const LazyBlogCategoryPage: import("../utils/lazy-component").LazyComponent<typeof import("./blog/BlogCategoryPage").BlogCategoryPage>;
|
|
9
|
+
export declare const LazyBlogTagPage: import("../utils/lazy-component").LazyComponent<typeof import("./blog/BlogTagPage").BlogTagPage>;
|
|
10
|
+
export declare const LazyBrandsPage: import("../utils/lazy-component").LazyComponent<import("react").MemoExoticComponent<({ page, brands, pagination }: import("./brands").BrandsPageProps) => import("react").JSX.Element>>;
|
|
11
|
+
export declare const LazyProfilePage: import("../utils/lazy-component").LazyComponent<typeof import("./account/profile/ProfilePage").ProfilePage>;
|
|
12
|
+
export declare const LazyWishlistPage: import("../utils/lazy-component").LazyComponent<typeof import("./account/wishlist/WishlistPage").WishlistPage>;
|
|
13
|
+
export declare const LazyWalletPage: import("../utils/lazy-component").LazyComponent<typeof import("./account/wallet/WalletPage").WalletPage>;
|
|
14
|
+
export declare const LazyNotificationsPage: import("../utils/lazy-component").LazyComponent<typeof import("./account/notifications/NotificationsPage").NotificationsPage>;
|
|
15
|
+
export declare const LazySettingsPage: import("../utils/lazy-component").LazyComponent<typeof import("./account/settings/SettingsPage").SettingsPage>;
|
|
16
|
+
export declare const LazyOrdersPage: import("../utils/lazy-component").LazyComponent<typeof import("./account/orders/OrdersPage").OrdersPage>;
|
|
17
|
+
export declare const LazyOrderSinglePage: import("../utils/lazy-component").LazyComponent<typeof import("./account/orders/OrderSinglePage").OrderSinglePage>;
|
|
18
|
+
export declare const LazyLoyaltyPage: import("../utils/lazy-component").LazyComponent<typeof import("./loyalty/LoyaltyPage").LoyaltyPage>;
|
|
19
|
+
export declare const LazyPageSingle: import("../utils/lazy-component").LazyComponent<typeof import("./page/PageSingle").PageSingle>;
|
|
20
|
+
export declare const LazyTestimonialsPage: import("../utils/lazy-component").LazyComponent<typeof import("./testimonials/TestimonialsPage").TestimonialsPage>;
|
|
21
|
+
export declare const LazyThankYouPage: import("../utils/lazy-component").LazyComponent<typeof import("./thank-you/ThankYouPage").ThankYouPage>;
|
|
22
|
+
export declare const LazyNotFoundPage: import("../utils/lazy-component").LazyComponent<typeof import("./not-found").NotFoundPage>;
|
|
23
23
|
//# sourceMappingURL=lazy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/routes/lazy.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,
|
|
1
|
+
{"version":3,"file":"lazy.d.ts","sourceRoot":"","sources":["../../src/routes/lazy.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,YAAY,uKAExB,CAAC;AAGF,eAAO,MAAM,YAAY,mFAExB,CAAC;AAGF,eAAO,MAAM,eAAe,qGAE3B,CAAC;AAGF,eAAO,MAAM,sBAAsB,qGAElC,CAAC;AAGF,eAAO,MAAM,YAAY,4FAExB,CAAC;AAEF,eAAO,MAAM,kBAAkB,wGAE9B,CAAC;AAEF,eAAO,MAAM,kBAAkB,wGAE9B,CAAC;AAEF,eAAO,MAAM,oBAAoB,4GAEhC,CAAC;AAEF,eAAO,MAAM,eAAe,kGAE3B,CAAC;AAGF,eAAO,MAAM,cAAc,yLAE1B,CAAC;AAKF,eAAO,MAAM,eAAe,6GAE3B,CAAC;AAEF,eAAO,MAAM,gBAAgB,gHAE5B,CAAC;AAEF,eAAO,MAAM,cAAc,0GAE1B,CAAC;AAEF,eAAO,MAAM,qBAAqB,+HAIjC,CAAC;AAEF,eAAO,MAAM,gBAAgB,gHAE5B,CAAC;AAEF,eAAO,MAAM,cAAc,0GAE1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,oHAE/B,CAAC;AAGF,eAAO,MAAM,eAAe,qGAE3B,CAAC;AAGF,eAAO,MAAM,cAAc,gGAE1B,CAAC;AAGF,eAAO,MAAM,oBAAoB,oHAEhC,CAAC;AAGF,eAAO,MAAM,gBAAgB,yGAE5B,CAAC;AAGF,eAAO,MAAM,gBAAgB,4FAE5B,CAAC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { HeadDescriptor } from '../../utils/head';
|
|
2
2
|
import type { LoyaltyPageProps, LoyaltyPointsPageProps } from './types';
|
|
3
3
|
import type { TwilightContext } from '../../twilight/context';
|
|
4
|
-
export declare const LoyaltyPage: import("
|
|
5
|
-
export declare const LoyaltyPointsPage: import("
|
|
4
|
+
export declare const LoyaltyPage: import("../../utils/lazy-component").LazyComponent<typeof import("./LoyaltyPage").LoyaltyPage>;
|
|
5
|
+
export declare const LoyaltyPointsPage: import("../../utils/lazy-component").LazyComponent<typeof import("./LoyaltyPointsPage").LoyaltyPointsPage>;
|
|
6
6
|
export { loyaltyLoader, loyaltyPointsLoader } from './loader';
|
|
7
7
|
export type { LoyaltyPageProps, LoyaltyPointsPageProps, LoyaltyPoint, LoyaltyPrize, LoyaltyPrizeItem, } from './types';
|
|
8
8
|
declare function loader(ctx?: {
|
|
@@ -15,7 +15,7 @@ export declare const Loyalty: {
|
|
|
15
15
|
readonly id: "loyalty";
|
|
16
16
|
readonly loader: typeof loader;
|
|
17
17
|
readonly head: typeof head;
|
|
18
|
-
readonly Component: import("
|
|
18
|
+
readonly Component: import("../../utils/lazy-component").LazyComponent<typeof import("./LoyaltyPage").LoyaltyPage>;
|
|
19
19
|
};
|
|
20
20
|
declare function pointsLoader(ctx?: {
|
|
21
21
|
locale?: string;
|
|
@@ -26,6 +26,6 @@ export declare const LoyaltyPoints: {
|
|
|
26
26
|
readonly id: "customer.loyalty_points";
|
|
27
27
|
readonly loader: typeof pointsLoader;
|
|
28
28
|
readonly head: (ctx: TwilightContext, data: LoyaltyPointsPageProps) => HeadDescriptor;
|
|
29
|
-
readonly Component: import("
|
|
29
|
+
readonly Component: import("../../utils/lazy-component").LazyComponent<typeof import("./LoyaltyPointsPage").LoyaltyPointsPage>;
|
|
30
30
|
};
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/loyalty/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAY9D,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/loyalty/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAY9D,eAAO,MAAM,WAAW,gGAAkB,CAAC;AAC3C,eAAO,MAAM,iBAAiB,4GAAwB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC9D,YAAY,EACV,gBAAgB,EAChB,sBAAsB,EACtB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAGjB,iBAAe,MAAM,CACnB,GAAG,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACzB,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,gBAAgB,EACtB,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,KACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9D,OAAO,CAAC,gBAAgB,CAAC,CAQ3B;AAED,iBAAS,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAQ1E;AAED,eAAO,MAAM,OAAO;;;;;CAA6E,CAAC;AAElG,iBAAe,YAAY,CACzB,GAAG,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACzB,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,sBAAsB,EAC5B,GAAG,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;CAAE,KACnC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9D,OAAO,CAAC,sBAAsB,CAAC,CAQjC;AAED,eAAO,MAAM,aAAa;;;yBAGZ,eAAe,QAAQ,sBAAsB,KAAG,cAAc;;CAKlE,CAAC"}
|