@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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/product/loader.ts","../../src/routes/product/ProductPage.tsx","../../src/routes/product/index.tsx"],"names":["product"],"mappings":"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","file":"product.js","sourcesContent":["import type { ProductPageProps } from './types';\nimport type { IdParams } from '../types';\nimport { product } from '../../api/product';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport type { Breadcrumb } from '../../types';\n\nexport async function productLoader({ params }: { params: IdParams }): Promise<ProductPageProps> {\n const data = await product.findOrThrow(params.id);\n const i18n = getTwilightContext().i18n;\n const home: Breadcrumb = { name: i18n.t('common.titles.home'), url: '/' };\n\n const breadcrumbs: Breadcrumb[] = [home];\n if (data.category) {\n breadcrumbs.push({ name: data.category.name, url: data.category.url });\n }\n breadcrumbs.push({ name: data.name, url: data.url });\n\n const page = {\n slug: RouteId.PRODUCT_SINGLE,\n id: data.id,\n title: data.name,\n url: data.url,\n parent:\n data.category && data.category.id\n ? { id: data.category.id, name: data.category.name, url: data.category.url }\n : null,\n breadcrumbs,\n };\n\n return {\n page,\n product: data,\n };\n}\n","import { SallaQuickOrder } from '@salla.sa/twilight-components-react/quick-order';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaComments } from '@salla.sa/twilight-components-react/comments';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useProduct } from '../../hooks/useProduct';\nimport { useComments } from '../../hooks/useComments';\nimport type { ProductPageProps } from './types';\nimport { Breadcrumb, RenderWhenVisible } from '../../components/common';\nimport { ProductDetails, AddToCartForm, ProductGallery } from '../../components/product';\nimport { ProductsSlider, Testimonials } from '../../components/home';\nimport { useTwilight } from '../../providers/twilight-context';\n\nexport function ProductPage({ product: initialProduct, page }: ProductPageProps) {\n const { theme, store } = useTwilight();\n const { t } = useTranslation();\n const { product } = useProduct(initialProduct);\n const { commentsKey } = useComments();\n\n return (\n <div key={product.id}>\n <div className=\"container\">\n {theme?.settings?.product_show_breadcrumbs !== false && <Breadcrumb page={page} />}\n\n <HookSlot name=\"product:start\" />\n\n <div className=\"flex flex-col items-start md:flex-row\" id={`product-${product.id}`}>\n <ProductGallery product={product} />\n\n <div className=\"main-content md:sticky md:overflow-hidden top-24 w-full md:w-2/4 md:pb-16\">\n <HookSlot name=\"product:details.start\" />\n <ProductDetails product={product} showTags={theme.settings.show_tags} />\n <HookSlot name=\"product:details.end\" />\n\n <HookSlot name=\"product:single.form.start\" />\n <AddToCartForm product={product} stickyAddToCart={theme.settings.sticky_add_to_cart} />\n <HookSlot name=\"product:single.form.end\" />\n {/* After the form, as in Twig; `.start` and `description` are in ProductDetails */}\n <HookSlot name=\"product:single.description.end\" context={{ product }} />\n\n <SallaQuickOrder className=\"mt-5 md:-mb-2 block\" />\n </div>\n </div>\n\n <SallaOffer />\n </div>\n\n {store.settings?.rating?.show_on_product && (\n <RenderWhenVisible>\n <SallaComments key={commentsKey} itemId={Number(product.id)} type={'product' as any} />\n </RenderWhenVisible>\n )}\n\n <HookSlot name=\"product:related.start\" />\n <RenderWhenVisible>\n <div className=\"container\">\n <ProductsSlider\n data={{\n products: { source: 'related', source_value: Number(product.id) },\n title: t('pages.products.similar_products'),\n display_all_url: '',\n }}\n />\n </div>\n </RenderWhenVisible>\n <HookSlot name=\"product:related.end\" />\n\n <RenderWhenVisible>\n <div className=\"container\">\n <Testimonials data={{}} />\n </div>\n </RenderWhenVisible>\n\n <HookSlot name=\"product:end\" />\n </div>\n );\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport type { ProductPageProps } from './types';\nimport type { IdParams } from '../types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { productLoader } from './loader';\nimport { RouteId } from '../../router/route-ids';\nimport { ProductPage } from './ProductPage';\nimport { fastCheckoutScript } from '../../utils/fast-checkout';\nimport { getActiveCurrency } from '../../api/client';\nexport { productLoader } from './loader';\nexport type { ProductPageProps } from './types';\n\nasync function loader(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: ProductPageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<ProductPageProps> {\n const data = await productLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as ProductPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: ProductPageProps): HeadDescriptor {\n if (!data?.product) {\n return {\n title: 'Products',\n description: 'Browse our products',\n };\n }\n const product = data.product;\n const storeName = ctx.settings?.store?.name ?? '';\n\n // Strip HTML and limit description to 160 chars\n const description = product.description?.replace(/<[^>]*>/g, '').slice(0, 160) ?? '';\n\n // Price valid until: 1 month from now\n const priceValidUntil = new Date();\n priceValidUntil.setMonth(priceValidUntil.getMonth() + 1);\n\n // Collect all product images\n const images = product.images?.map((img) => img.url).filter(Boolean) ?? [];\n if (product.image?.url && !images.includes(product.image.url)) {\n images.unshift(product.image.url);\n }\n\n // Build JSON-LD schema matching SchemaProductWidget.php\n const jsonLd: Record<string, unknown> = {\n '@context': 'https://schema.org',\n '@type': 'Product',\n name: product.name,\n description,\n sku: product.sku,\n image: images.length > 0 ? images : undefined,\n offers: {\n '@type': 'Offer',\n url: product.url,\n availability: product.is_available\n ? 'https://schema.org/InStock'\n : 'https://schema.org/OutOfStock',\n price: product.sale_price,\n priceCurrency: getActiveCurrency(product.currency),\n priceValidUntil: priceValidUntil.toISOString().split('T')[0],\n seller: storeName\n ? {\n '@type': 'Organization',\n name: storeName,\n }\n : undefined,\n },\n };\n\n // Add brand if exists\n if (product.brand) {\n jsonLd.brand = {\n '@type': 'Brand',\n name: product.brand.name,\n description: product.brand.description,\n logo: product.brand.logo,\n };\n }\n\n // Add aggregateRating and review if rating exists\n if (product.rating && product.rating.count > 0) {\n const ratingValue = product.rating.stars;\n jsonLd.aggregateRating = {\n '@type': 'AggregateRating',\n ratingCount: product.rating.count,\n ratingValue,\n };\n jsonLd.review = {\n '@type': 'Review',\n author: storeName\n ? {\n '@type': 'Organization',\n name: storeName,\n }\n : undefined,\n reviewRating: {\n '@type': 'Rating',\n bestRating: 5,\n ratingValue,\n },\n };\n }\n\n if (product.gtin && product.gtin.length === 8) {\n jsonLd.gtin8 = product.gtin;\n }\n\n if (product.mpn) {\n jsonLd.mpn = product.mpn;\n }\n\n // Twig: \"<product> | <store name>\", without the store meta title.\n const title = storeName ? `${product.name} | ${storeName}` : product.name;\n const base: HeadDescriptor = {\n title,\n appendStoreTitle: false,\n description,\n canonical: product.url,\n openGraph: {\n type: 'product',\n title,\n description,\n images: product.image?.url,\n url: product.url,\n },\n twitter: {\n card: 'summary_large_image',\n title,\n description,\n images: product.image?.url,\n },\n jsonLd,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n // Quick-buy widget code, eager only here: the Buy Now button is above the fold on this page.\n // Other routes load it on idle from the body:end default hook, which also owns the\n // `#fast-checkout-js` marker `salla-add-product-button` checks for.\n scripts: ctx.settings?.store?.settings?.buy_now ? [fastCheckoutScript()] : [],\n };\n\n return base;\n}\n\nexport const Product = {\n id: RouteId.PRODUCT_SINGLE,\n loader,\n head,\n Component: ProductPage,\n} as const;\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/routes/product/loader.ts","../../src/routes/product/ProductPage.tsx","../../src/routes/product/index.tsx"],"names":["product"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,eAAsB,aAAA,CAAc,EAAE,MAAA,EAAO,EAAoD;AAC/F,EAAA,MAAM,IAAA,GAAO,MAAM,OAAA,CAAQ,WAAA,CAAY,OAAO,EAAE,CAAA;AAChD,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,MAAM,IAAA,GAAmB,EAAE,IAAA,EAAM,IAAA,CAAK,EAAE,oBAAoB,CAAA,EAAG,KAAK,GAAA,EAAI;AAExE,EAAA,MAAM,WAAA,GAA4B,CAAC,IAAI,CAAA;AACvC,EAAA,IAAI,KAAK,QAAA,EAAU;AACjB,IAAA,WAAA,CAAY,IAAA,CAAK,EAAE,IAAA,EAAM,IAAA,CAAK,QAAA,CAAS,MAAM,GAAA,EAAK,IAAA,CAAK,QAAA,CAAS,GAAA,EAAK,CAAA;AAAA,EACvE;AACA,EAAA,WAAA,CAAY,IAAA,CAAK,EAAE,IAAA,EAAM,IAAA,CAAK,MAAM,GAAA,EAAK,IAAA,CAAK,KAAK,CAAA;AAEnD,EAAA,MAAM,IAAA,GAAO;AAAA,IACX,MAAM,OAAA,CAAQ,cAAA;AAAA,IACd,IAAI,IAAA,CAAK,EAAA;AAAA,IACT,OAAO,IAAA,CAAK,IAAA;AAAA,IACZ,KAAK,IAAA,CAAK,GAAA;AAAA,IACV,QACE,IAAA,CAAK,QAAA,IAAY,KAAK,QAAA,CAAS,EAAA,GAC3B,EAAE,EAAA,EAAI,IAAA,CAAK,SAAS,EAAA,EAAI,IAAA,EAAM,KAAK,QAAA,CAAS,IAAA,EAAM,KAAK,IAAA,CAAK,QAAA,CAAS,KAAI,GACzE,IAAA;AAAA,IACN;AAAA,GACF;AAEA,EAAA,OAAO;AAAA,IACL,IAAA;AAAA,IACA,OAAA,EAAS;AAAA,GACX;AACF;ACrBO,SAAS,WAAA,CAAY,EAAE,OAAA,EAAS,cAAA,EAAgB,MAAK,EAAqB;AAC/E,EAAA,MAAM,EAAE,KAAA,EAAO,KAAA,EAAM,GAAI,WAAA,EAAY;AACrC,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,EAAE,OAAA,EAAAA,QAAAA,EAAQ,GAAI,WAAW,cAAc,CAAA;AAC7C,EAAA,MAAM,EAAE,WAAA,EAAY,GAAI,WAAA,EAAY;AAEpC,EAAA,4BACG,KAAA,EAAA,EACC,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACZ,QAAA,EAAA;AAAA,MAAA,KAAA,EAAO,QAAA,EAAU,wBAAA,KAA6B,KAAA,oBAAS,GAAA,CAAC,kBAAW,IAAA,EAAY,CAAA;AAAA,sBAEhF,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,eAAA,EAAgB,CAAA;AAAA,sBAE/B,IAAA,CAAC,SAAI,SAAA,EAAU,uCAAA,EAAwC,IAAI,CAAA,QAAA,EAAWA,QAAAA,CAAQ,EAAE,CAAA,CAAA,EAC9E,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,cAAA,EAAA,EAAe,SAASA,QAAAA,EAAS,CAAA;AAAA,wBAElC,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,2EAAA,EACb,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,uBAAA,EAAwB,CAAA;AAAA,8BACtC,kBAAA,EAAA,EAAe,OAAA,EAASA,UAAS,QAAA,EAAU,KAAA,CAAM,SAAS,SAAA,EAAW,CAAA;AAAA,0BACtE,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,qBAAA,EAAsB,CAAA;AAAA,0BAErC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,2BAAA,EAA4B,CAAA;AAAA,8BAC1C,iBAAA,EAAA,EAAc,OAAA,EAASA,UAAS,eAAA,EAAiB,KAAA,CAAM,SAAS,kBAAA,EAAoB,CAAA;AAAA,0BACrF,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,yBAAA,EAA0B,CAAA;AAAA,0BAEzC,GAAA,CAAC,YAAS,IAAA,EAAK,gCAAA,EAAiC,SAAS,EAAE,OAAA,EAAAA,UAAQ,EAAG,CAAA;AAAA,0BAEtE,GAAA,CAAC,eAAA,EAAA,EAAgB,SAAA,EAAU,qBAAA,EAAsB;AAAA,SAAA,EACnD;AAAA,OAAA,EACF,CAAA;AAAA,0BAEC,UAAA,EAAA,EAAW;AAAA,KAAA,EACd,CAAA;AAAA,IAEC,MAAM,QAAA,EAAU,MAAA,EAAQ,eAAA,oBACvB,GAAA,CAAC,yBACC,QAAA,kBAAA,GAAA,CAAC,aAAA,EAAA,EAAgC,MAAA,EAAQ,MAAA,CAAOA,SAAQ,EAAE,CAAA,EAAG,IAAA,EAAM,SAAA,EAAA,EAA/C,WAAiE,CAAA,EACvF,CAAA;AAAA,oBAGF,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,uBAAA,EAAwB,CAAA;AAAA,oBACvC,GAAA,CAAC,qBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,WAAU,WAAA,EACb,QAAA,kBAAA,GAAA;AAAA,MAAC,cAAA;AAAA,MAAA;AAAA,QACC,IAAA,EAAM;AAAA,UACJ,QAAA,EAAU,EAAE,MAAA,EAAQ,SAAA,EAAW,cAAc,MAAA,CAAOA,QAAAA,CAAQ,EAAE,CAAA,EAAE;AAAA,UAChE,KAAA,EAAO,EAAE,iCAAiC,CAAA;AAAA,UAC1C,eAAA,EAAiB;AAAA;AACnB;AAAA,OAEJ,CAAA,EACF,CAAA;AAAA,oBACA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,qBAAA,EAAsB,CAAA;AAAA,oBAErC,GAAA,CAAC,qBAAA,EAAA,EACC,QAAA,kBAAA,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAa,IAAA,EAAM,EAAC,EAAG,CAAA,EAC1B,CAAA,EACF,CAAA;AAAA,oBAEA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,aAAA,EAAc;AAAA,GAAA,EAAA,EArDrBA,SAAQ,EAsDlB,CAAA;AAEJ;;;AC/DA,eAAe,MAAA,CACb,KACA,MAAA,EAI2B;AAC3B,EAAA,MAAM,OAAO,MAAM,aAAA,CAAc,EAAE,MAAA,EAAQ,GAAA,CAAI,QAAQ,CAAA;AAEvD,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,IAAA,EAAM,GAAG,CAAA;AACpC,IAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAG,KAAA,EAAM;AAAA,EAC7B;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,IAAA,CAAK,KAAsB,IAAA,EAAwC;AAC1E,EAAA,IAAI,CAAC,MAAM,OAAA,EAAS;AAClB,IAAA,OAAO;AAAA,MACL,KAAA,EAAO,UAAA;AAAA,MACP,WAAA,EAAa;AAAA,KACf;AAAA,EACF;AACA,EAAA,MAAMA,WAAU,IAAA,CAAK,OAAA;AACrB,EAAA,MAAM,SAAA,GAAY,GAAA,CAAI,QAAA,EAAU,KAAA,EAAO,IAAA,IAAQ,EAAA;AAG/C,EAAA,MAAM,WAAA,GAAcA,QAAAA,CAAQ,WAAA,EAAa,OAAA,CAAQ,UAAA,EAAY,EAAE,CAAA,CAAE,KAAA,CAAM,CAAA,EAAG,GAAG,CAAA,IAAK,EAAA;AAGlF,EAAA,MAAM,eAAA,uBAAsB,IAAA,EAAK;AACjC,EAAA,eAAA,CAAgB,QAAA,CAAS,eAAA,CAAgB,QAAA,EAAS,GAAI,CAAC,CAAA;AAGvD,EAAA,MAAM,MAAA,GAASA,QAAAA,CAAQ,MAAA,EAAQ,GAAA,CAAI,CAAC,GAAA,KAAQ,GAAA,CAAI,GAAG,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA,IAAK,EAAC;AACzE,EAAA,IAAIA,QAAAA,CAAQ,OAAO,GAAA,IAAO,CAAC,OAAO,QAAA,CAASA,QAAAA,CAAQ,KAAA,CAAM,GAAG,CAAA,EAAG;AAC7D,IAAA,MAAA,CAAO,OAAA,CAAQA,QAAAA,CAAQ,KAAA,CAAM,GAAG,CAAA;AAAA,EAClC;AAGA,EAAA,MAAM,MAAA,GAAkC;AAAA,IACtC,UAAA,EAAY,oBAAA;AAAA,IACZ,OAAA,EAAS,SAAA;AAAA,IACT,MAAMA,QAAAA,CAAQ,IAAA;AAAA,IACd,WAAA;AAAA,IACA,KAAKA,QAAAA,CAAQ,GAAA;AAAA,IACb,KAAA,EAAO,MAAA,CAAO,MAAA,GAAS,CAAA,GAAI,MAAA,GAAS,MAAA;AAAA,IACpC,MAAA,EAAQ;AAAA,MACN,OAAA,EAAS,OAAA;AAAA,MACT,KAAKA,QAAAA,CAAQ,GAAA;AAAA,MACb,YAAA,EAAcA,QAAAA,CAAQ,YAAA,GAClB,4BAAA,GACA,+BAAA;AAAA,MACJ,OAAOA,QAAAA,CAAQ,UAAA;AAAA,MACf,aAAA,EAAe,iBAAA,CAAkBA,QAAAA,CAAQ,QAAQ,CAAA;AAAA,MACjD,iBAAiB,eAAA,CAAgB,WAAA,GAAc,KAAA,CAAM,GAAG,EAAE,CAAC,CAAA;AAAA,MAC3D,QAAQ,SAAA,GACJ;AAAA,QACE,OAAA,EAAS,cAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR,GACA;AAAA;AACN,GACF;AAGA,EAAA,IAAIA,SAAQ,KAAA,EAAO;AACjB,IAAA,MAAA,CAAO,KAAA,GAAQ;AAAA,MACb,OAAA,EAAS,OAAA;AAAA,MACT,IAAA,EAAMA,SAAQ,KAAA,CAAM,IAAA;AAAA,MACpB,WAAA,EAAaA,SAAQ,KAAA,CAAM,WAAA;AAAA,MAC3B,IAAA,EAAMA,SAAQ,KAAA,CAAM;AAAA,KACtB;AAAA,EACF;AAGA,EAAA,IAAIA,QAAAA,CAAQ,MAAA,IAAUA,QAAAA,CAAQ,MAAA,CAAO,QAAQ,CAAA,EAAG;AAC9C,IAAA,MAAM,WAAA,GAAcA,SAAQ,MAAA,CAAO,KAAA;AACnC,IAAA,MAAA,CAAO,eAAA,GAAkB;AAAA,MACvB,OAAA,EAAS,iBAAA;AAAA,MACT,WAAA,EAAaA,SAAQ,MAAA,CAAO,KAAA;AAAA,MAC5B;AAAA,KACF;AACA,IAAA,MAAA,CAAO,MAAA,GAAS;AAAA,MACd,OAAA,EAAS,QAAA;AAAA,MACT,QAAQ,SAAA,GACJ;AAAA,QACE,OAAA,EAAS,cAAA;AAAA,QACT,IAAA,EAAM;AAAA,OACR,GACA,MAAA;AAAA,MACJ,YAAA,EAAc;AAAA,QACZ,OAAA,EAAS,QAAA;AAAA,QACT,UAAA,EAAY,CAAA;AAAA,QACZ;AAAA;AACF,KACF;AAAA,EACF;AAEA,EAAA,IAAIA,QAAAA,CAAQ,IAAA,IAAQA,QAAAA,CAAQ,IAAA,CAAK,WAAW,CAAA,EAAG;AAC7C,IAAA,MAAA,CAAO,QAAQA,QAAAA,CAAQ,IAAA;AAAA,EACzB;AAEA,EAAA,IAAIA,SAAQ,GAAA,EAAK;AACf,IAAA,MAAA,CAAO,MAAMA,QAAAA,CAAQ,GAAA;AAAA,EACvB;AAGA,EAAA,MAAM,KAAA,GAAQ,YAAY,CAAA,EAAGA,QAAAA,CAAQ,IAAI,CAAA,GAAA,EAAM,SAAS,KAAKA,QAAAA,CAAQ,IAAA;AACrE,EAAA,MAAM,IAAA,GAAuB;AAAA,IAC3B,KAAA;AAAA,IACA,gBAAA,EAAkB,KAAA;AAAA,IAClB,WAAA;AAAA,IACA,WAAWA,QAAAA,CAAQ,GAAA;AAAA,IACnB,SAAA,EAAW;AAAA,MACT,IAAA,EAAM,SAAA;AAAA,MACN,KAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,EAAQA,SAAQ,KAAA,EAAO,GAAA;AAAA,MACvB,KAAKA,QAAAA,CAAQ;AAAA,KACf;AAAA,IACA,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,qBAAA;AAAA,MACN,KAAA;AAAA,MACA,WAAA;AAAA,MACA,MAAA,EAAQA,SAAQ,KAAA,EAAO;AAAA,KACzB;AAAA,IACA,MAAA;AAAA,IACA,oBAAoB,uBAAA,CAAwB,GAAA,CAAI,QAAA,EAAU,GAAA,CAAI,SAAS,QAAQ,CAAA;AAAA;AAAA;AAAA;AAAA,IAI/E,OAAA,EAAS,GAAA,CAAI,QAAA,EAAU,KAAA,EAAO,QAAA,EAAU,UAAU,CAAC,kBAAA,EAAoB,CAAA,GAAI;AAAC,GAC9E;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,OAAA,GAAU;AAAA,EACrB,IAAI,OAAA,CAAQ,cAAA;AAAA,EACZ,MAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA,EAAW;AACb","file":"product.js","sourcesContent":["import type { ProductPageProps } from './types';\nimport type { IdParams } from '../types';\nimport { product } from '../../api/product';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport type { Breadcrumb } from '../../types';\n\nexport async function productLoader({ params }: { params: IdParams }): Promise<ProductPageProps> {\n const data = await product.findOrThrow(params.id);\n const i18n = getTwilightContext().i18n;\n const home: Breadcrumb = { name: i18n.t('common.titles.home'), url: '/' };\n\n const breadcrumbs: Breadcrumb[] = [home];\n if (data.category) {\n breadcrumbs.push({ name: data.category.name, url: data.category.url });\n }\n breadcrumbs.push({ name: data.name, url: data.url });\n\n const page = {\n slug: RouteId.PRODUCT_SINGLE,\n id: data.id,\n title: data.name,\n url: data.url,\n parent:\n data.category && data.category.id\n ? { id: data.category.id, name: data.category.name, url: data.category.url }\n : null,\n breadcrumbs,\n };\n\n return {\n page,\n product: data,\n };\n}\n","import { SallaQuickOrder } from '@salla.sa/twilight-components-react/quick-order';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaComments } from '@salla.sa/twilight-components-react/comments';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useProduct } from '../../hooks/useProduct';\nimport { useComments } from '../../hooks/useComments';\nimport type { ProductPageProps } from './types';\nimport { Breadcrumb, RenderWhenVisible } from '../../components/common';\nimport { ProductDetails, AddToCartForm, ProductGallery } from '../../components/product';\nimport { ProductsSlider, Testimonials } from '../../components/home';\nimport { useTwilight } from '../../providers/twilight-context';\n\nexport function ProductPage({ product: initialProduct, page }: ProductPageProps) {\n const { theme, store } = useTwilight();\n const { t } = useTranslation();\n const { product } = useProduct(initialProduct);\n const { commentsKey } = useComments();\n\n return (\n <div key={product.id}>\n <div className=\"container\">\n {theme?.settings?.product_show_breadcrumbs !== false && <Breadcrumb page={page} />}\n\n <HookSlot name=\"product:start\" />\n\n <div className=\"flex flex-col items-start md:flex-row\" id={`product-${product.id}`}>\n <ProductGallery product={product} />\n\n <div className=\"main-content md:sticky md:overflow-hidden top-24 w-full md:w-2/4 md:pb-16\">\n <HookSlot name=\"product:details.start\" />\n <ProductDetails product={product} showTags={theme.settings.show_tags} />\n <HookSlot name=\"product:details.end\" />\n\n <HookSlot name=\"product:single.form.start\" />\n <AddToCartForm product={product} stickyAddToCart={theme.settings.sticky_add_to_cart} />\n <HookSlot name=\"product:single.form.end\" />\n {/* After the form, as in Twig; `.start` and `description` are in ProductDetails */}\n <HookSlot name=\"product:single.description.end\" context={{ product }} />\n\n <SallaQuickOrder className=\"mt-5 md:-mb-2 block\" />\n </div>\n </div>\n\n <SallaOffer />\n </div>\n\n {store.settings?.rating?.show_on_product && (\n <RenderWhenVisible>\n <SallaComments key={commentsKey} itemId={Number(product.id)} type={'product' as any} />\n </RenderWhenVisible>\n )}\n\n <HookSlot name=\"product:related.start\" />\n <RenderWhenVisible>\n <div className=\"container\">\n <ProductsSlider\n data={{\n products: { source: 'related', source_value: Number(product.id) },\n title: t('pages.products.similar_products'),\n display_all_url: '',\n }}\n />\n </div>\n </RenderWhenVisible>\n <HookSlot name=\"product:related.end\" />\n\n <RenderWhenVisible>\n <div className=\"container\">\n <Testimonials data={{}} />\n </div>\n </RenderWhenVisible>\n\n <HookSlot name=\"product:end\" />\n </div>\n );\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport type { ProductPageProps } from './types';\nimport type { IdParams } from '../types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { productLoader } from './loader';\nimport { RouteId } from '../../router/route-ids';\nimport { ProductPage } from './ProductPage';\nimport { fastCheckoutScript } from '../../utils/fast-checkout';\nimport { getActiveCurrency } from '../../api/client';\nexport { productLoader } from './loader';\nexport type { ProductPageProps } from './types';\n\nasync function loader(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: ProductPageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<ProductPageProps> {\n const data = await productLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as ProductPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: ProductPageProps): HeadDescriptor {\n if (!data?.product) {\n return {\n title: 'Products',\n description: 'Browse our products',\n };\n }\n const product = data.product;\n const storeName = ctx.settings?.store?.name ?? '';\n\n // Strip HTML and limit description to 160 chars\n const description = product.description?.replace(/<[^>]*>/g, '').slice(0, 160) ?? '';\n\n // Price valid until: 1 month from now\n const priceValidUntil = new Date();\n priceValidUntil.setMonth(priceValidUntil.getMonth() + 1);\n\n // Collect all product images\n const images = product.images?.map((img) => img.url).filter(Boolean) ?? [];\n if (product.image?.url && !images.includes(product.image.url)) {\n images.unshift(product.image.url);\n }\n\n // Build JSON-LD schema matching SchemaProductWidget.php\n const jsonLd: Record<string, unknown> = {\n '@context': 'https://schema.org',\n '@type': 'Product',\n name: product.name,\n description,\n sku: product.sku,\n image: images.length > 0 ? images : undefined,\n offers: {\n '@type': 'Offer',\n url: product.url,\n availability: product.is_available\n ? 'https://schema.org/InStock'\n : 'https://schema.org/OutOfStock',\n price: product.sale_price,\n priceCurrency: getActiveCurrency(product.currency),\n priceValidUntil: priceValidUntil.toISOString().split('T')[0],\n seller: storeName\n ? {\n '@type': 'Organization',\n name: storeName,\n }\n : undefined,\n },\n };\n\n // Add brand if exists\n if (product.brand) {\n jsonLd.brand = {\n '@type': 'Brand',\n name: product.brand.name,\n description: product.brand.description,\n logo: product.brand.logo,\n };\n }\n\n // Add aggregateRating and review if rating exists\n if (product.rating && product.rating.count > 0) {\n const ratingValue = product.rating.stars;\n jsonLd.aggregateRating = {\n '@type': 'AggregateRating',\n ratingCount: product.rating.count,\n ratingValue,\n };\n jsonLd.review = {\n '@type': 'Review',\n author: storeName\n ? {\n '@type': 'Organization',\n name: storeName,\n }\n : undefined,\n reviewRating: {\n '@type': 'Rating',\n bestRating: 5,\n ratingValue,\n },\n };\n }\n\n if (product.gtin && product.gtin.length === 8) {\n jsonLd.gtin8 = product.gtin;\n }\n\n if (product.mpn) {\n jsonLd.mpn = product.mpn;\n }\n\n // Twig: \"<product> | <store name>\", without the store meta title.\n const title = storeName ? `${product.name} | ${storeName}` : product.name;\n const base: HeadDescriptor = {\n title,\n appendStoreTitle: false,\n description,\n canonical: product.url,\n openGraph: {\n type: 'product',\n title,\n description,\n images: product.image?.url,\n url: product.url,\n },\n twitter: {\n card: 'summary_large_image',\n title,\n description,\n images: product.image?.url,\n },\n jsonLd,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n // Quick-buy widget code, eager only here: the Buy Now button is above the fold on this page.\n // Other routes load it on idle from the body:end default hook, which also owns the\n // `#fast-checkout-js` marker `salla-add-product-button` checks for.\n scripts: ctx.settings?.store?.settings?.buy_now ? [fastCheckoutScript()] : [],\n };\n\n return base;\n}\n\nexport const Product = {\n id: RouteId.PRODUCT_SINGLE,\n loader,\n head,\n Component: ProductPage,\n} as const;\n"]}
|
|
@@ -3,27 +3,46 @@ import type { StoreContext } from '../../api/store';
|
|
|
3
3
|
import { type AppSnippet, type AppSettings } from '../../api/apps';
|
|
4
4
|
import type { TwilightLocation } from '../../twilight/context';
|
|
5
5
|
import { type ActiveScope } from '../../utils/cookies';
|
|
6
|
+
/**
|
|
7
|
+
* The market the settings were answered for, when the request asked with another one and
|
|
8
|
+
* its address did not switch market; null otherwise.
|
|
9
|
+
*
|
|
10
|
+
* That is a market's own domain (`us.store.com`): the API serves the market the domain is
|
|
11
|
+
* pinned to, whatever the `scope` cookie remembers from an earlier visit. The page has to
|
|
12
|
+
* take that market over, or the SDK keeps sending the remembered one and creates the
|
|
13
|
+
* guest's cart in it, which every request answered for the domain's market then refuses
|
|
14
|
+
* (TD-17588). A request that asked with no scope has nothing stale to correct. The branch
|
|
15
|
+
* is dropped with the market it belonged to; the type is store-wide, so it is the
|
|
16
|
+
* answer's, else the requested one.
|
|
17
|
+
*/
|
|
18
|
+
export declare function hostPinnedScope(url: string, requested: ActiveScope | null, settings: StoreContext): ActiveScope | null;
|
|
6
19
|
/**
|
|
7
20
|
* The scope to write to the `scope` cookie for this request, or null to leave the cookie
|
|
8
21
|
* as it is.
|
|
9
22
|
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* the
|
|
15
|
-
*
|
|
23
|
+
* The market a market's own domain answered with, over a remembered one; see
|
|
24
|
+
* {@link hostPinnedScope}.
|
|
25
|
+
*
|
|
26
|
+
* Otherwise only for a market a `?scope=` URL switched to, and only when the settings were
|
|
27
|
+
* answered for it: the API falls back to another market when it does not accept the
|
|
28
|
+
* requested one, and Twig keeps the previous choice then too, rather than recording one
|
|
29
|
+
* the page is not showing. Its type is the one the settings answered with: a URL names
|
|
30
|
+
* only the id, and the store-wide type is assumed until the answer says otherwise (a
|
|
31
|
+
* store browsing by branch or city), so later requests send the type the API matches
|
|
32
|
+
* against.
|
|
16
33
|
*/
|
|
17
34
|
export declare function scopeCookieUpdate(url: string, cookieHeader: string | null, settings: StoreContext): ActiveScope | null;
|
|
18
35
|
/**
|
|
19
|
-
* Gives the request
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
36
|
+
* Gives the request the scope its settings answered with, for the rest of this render:
|
|
37
|
+
* the market a market's own domain is pinned to when the request asked with another (see
|
|
38
|
+
* {@link hostPinnedScope}; only with the page `url`), else the same scope with the type
|
|
39
|
+
* the answer named. Files the settings and ads under the key the corrected scope makes, so
|
|
40
|
+
* the browser — which reads the corrected scope from the cookie (see
|
|
41
|
+
* {@link scopeCookieUpdate}) — finds them dehydrated instead of fetching them again. The
|
|
42
|
+
* entry under the assumed scope's key is removed, so the page carries them once.
|
|
43
|
+
* Server-only; a no-op when there is nothing to correct.
|
|
25
44
|
*/
|
|
26
|
-
export declare function
|
|
45
|
+
export declare function alignRequestScope(queryClient: QueryClient, settings: StoreContext, url?: string): void;
|
|
27
46
|
/**
|
|
28
47
|
* Writes {@link scopeCookieUpdate} to the response. Read from the request itself rather
|
|
29
48
|
* than the middleware's context, for the same reason as {@link readServerCookieToken}.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"beforeLoad.d.ts","sourceRoot":"","sources":["../../../src/routes/root/beforeLoad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAQ,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAUL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"beforeLoad.d.ts","sourceRoot":"","sources":["../../../src/routes/root/beforeLoad.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AASzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAQ,KAAK,UAAU,EAAE,KAAK,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAKzE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE/D,OAAO,EAUL,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAoC7B;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,WAAW,GAAG,IAAI,EAC7B,QAAQ,EAAE,YAAY,GACrB,WAAW,GAAG,IAAI,CAMpB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,MAAM,EACX,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,QAAQ,EAAE,YAAY,GACrB,WAAW,GAAG,IAAI,CASpB;AASD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,EACtB,GAAG,CAAC,EAAE,MAAM,GACX,IAAI,CAoBN;AAED;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,oFAoBP,CAAC;AA0B1B;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAMhF;AAsDD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,YAAY,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,sBAAsB,EAAE,OAAO,CAAC;IAChC,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC;IACnB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB;mGAC+F;IAC/F,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAC5B;2DACuD;IACvD,YAAY,CAAC,EAAE,WAAW,CAAC;IAC3B,6FAA6F;IAC7F,WAAW,EAAE,OAAO,CAAC;CACtB;AA0DD,wBAAsB,cAAc,CAAC,GAAG,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,OAAO,EAAE;QACP,WAAW,EAAE,WAAW,CAAC;QACzB,WAAW,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;KAC7D,CAAC;IACF,aAAa,CAAC,EAAE;QACd,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KAC3B,CAAC;CACH,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAsK5B"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export { LogoutRedirect, accountRedirectLoader, pendingOrdersRedirectLoader, productsSourceRedirectLoader, ratingRedirectLoader, slugBrandRedirectLoader } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { LogoutRedirect, accountRedirectLoader, pendingOrdersRedirectLoader, productsSourceRedirectLoader, ratingRedirectLoader, 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-3E3ABCPC.js';
|
|
7
7
|
import '../chunk-NHA4SBKG.js';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import type { HeadDescriptor } from '../../utils/head';
|
|
2
2
|
import type { ReviewsPageProps, TestimonialsPageProps } from './types';
|
|
3
3
|
import type { TwilightContext } from '../../twilight/context';
|
|
4
|
-
export declare const TestimonialsPage: import("
|
|
5
|
-
export declare const ReviewsPage: import("
|
|
4
|
+
export declare const TestimonialsPage: import("../../utils/lazy-component").LazyComponent<typeof import("./TestimonialsPage").TestimonialsPage>;
|
|
5
|
+
export declare const ReviewsPage: import("../../utils/lazy-component").LazyComponent<typeof import("./ReviewsPage").ReviewsPage>;
|
|
6
6
|
export { reviewsLoader, testimonialsLoader } from './loader';
|
|
7
7
|
export type { ReviewsPageProps, TestimonialsPageProps } from './types';
|
|
8
8
|
declare function loader(ctx: {
|
|
@@ -15,7 +15,7 @@ export declare const Testimonials: {
|
|
|
15
15
|
readonly id: "testimonials";
|
|
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("./TestimonialsPage").TestimonialsPage>;
|
|
19
19
|
};
|
|
20
20
|
declare function loadReviews(_ctx?: {
|
|
21
21
|
locale?: string;
|
|
@@ -26,6 +26,6 @@ export declare const Reviews: {
|
|
|
26
26
|
readonly id: "reviews";
|
|
27
27
|
readonly loader: typeof loadReviews;
|
|
28
28
|
readonly head: (ctx: TwilightContext, data: ReviewsPageProps) => HeadDescriptor;
|
|
29
|
-
readonly Component: import("
|
|
29
|
+
readonly Component: import("../../utils/lazy-component").LazyComponent<typeof import("./ReviewsPage").ReviewsPage>;
|
|
30
30
|
};
|
|
31
31
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/testimonials/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/testimonials/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAa9D,eAAO,MAAM,gBAAgB,0GAAuB,CAAC;AACrD,eAAO,MAAM,WAAW,gGAAkB,CAAC;AAC3C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC7D,YAAY,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAEvE,iBAAe,MAAM,CACnB,GAAG,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACxB,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,qBAAqB,EAC3B,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,qBAAqB,CAAC,CAQhC;AAED,iBAAS,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,qBAAqB,GAAG,cAAc,CAQ/E;AAED,eAAO,MAAM,YAAY;;;;;CAKf,CAAC;AAEX,iBAAe,WAAW,CACxB,IAAI,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EAC1B,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,eAAO,MAAM,OAAO;;;yBAGN,eAAe,QAAQ,gBAAgB,KAAG,cAAc;;CAK5D,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { RouteId } from '../chunk-OUW6WESU.js';
|
|
|
3
3
|
import '../chunk-FXVII733.js';
|
|
4
4
|
import { getTwilightContext } from '../chunk-6K34BCUP.js';
|
|
5
5
|
import '../chunk-T72DAX7R.js';
|
|
6
|
+
import { lazyComponent } from '../chunk-VYGA5AT5.js';
|
|
6
7
|
import '../chunk-DGUM43GV.js';
|
|
7
|
-
import { lazy } from 'react';
|
|
8
8
|
|
|
9
9
|
// src/routes/testimonials/loader.ts
|
|
10
10
|
async function testimonialsLoader(_ctx) {
|
|
@@ -32,11 +32,11 @@ async function reviewsLoader() {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
// src/routes/testimonials/index.tsx
|
|
35
|
-
var LazyTestimonialsPage =
|
|
36
|
-
() => import('../TestimonialsPage-
|
|
35
|
+
var LazyTestimonialsPage = lazyComponent(
|
|
36
|
+
() => import('../TestimonialsPage-PYFKXCQP.js').then((m) => ({ default: m.TestimonialsPage }))
|
|
37
37
|
);
|
|
38
|
-
var LazyReviewsPage =
|
|
39
|
-
() => import('../ReviewsPage-
|
|
38
|
+
var LazyReviewsPage = lazyComponent(
|
|
39
|
+
() => import('../ReviewsPage-65CYIATI.js').then((m) => ({ default: m.ReviewsPage }))
|
|
40
40
|
);
|
|
41
41
|
var TestimonialsPage = LazyTestimonialsPage;
|
|
42
42
|
var ReviewsPage = LazyReviewsPage;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/testimonials/loader.ts","../../src/routes/testimonials/index.tsx"],"names":[],"mappings":";;;;;;;;;AAIA,eAAsB,mBAAmB,IAAA,EAA0D;AACjG,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,MACJ,MAAM,OAAA,CAAQ,YAAA;AAAA,MACd,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,0BAA0B,CAAA,IAAK;AAAA;AAC/C,GACF;AACF;AAGA,eAAsB,aAAA,GAA2C;AAC/D,EAAA,MAAM,EAAE,IAAA,EAAK,GAAI,kBAAA,EAAmB;AACpC,EAAA,MAAM,KAAA,GAAQ,IAAA,CAAK,CAAA,CAAE,uBAAuB,CAAA;AAC5C,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,MACJ,MAAM,OAAA,CAAQ,OAAA;AAAA,MACd,KAAA;AAAA,MACA,WAAA,EAAa;AAAA,QACX,EAAE,IAAA,EAAM,IAAA,CAAK,EAAE,oBAAoB,CAAA,EAAG,KAAK,GAAA,EAAI;AAAA,QAC/C,EAAE,IAAA,EAAM,KAAA,EAAO,GAAA,EAAK,UAAA;AAAW;AACjC;AACF,GACF;AACF;;;
|
|
1
|
+
{"version":3,"sources":["../../src/routes/testimonials/loader.ts","../../src/routes/testimonials/index.tsx"],"names":[],"mappings":"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","file":"testimonials.js","sourcesContent":["import type { ReviewsPageProps, TestimonialsPageProps } from './types';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport async function testimonialsLoader(_ctx: { locale: string }): Promise<TestimonialsPageProps> {\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.TESTIMONIALS,\n title: i18n.t('blocks.home.testimonials') || 'Customer Reviews',\n },\n };\n}\n\n/** The product reviews page, Twig's `pages/reviews`: `<salla-reviews-page>` loads the reviews itself. */\nexport async function reviewsLoader(): Promise<ReviewsPageProps> {\n const { i18n } = getTwilightContext();\n const title = i18n.t('common.titles.reviews');\n return {\n page: {\n slug: RouteId.REVIEWS,\n title,\n breadcrumbs: [\n { name: i18n.t('common.titles.home'), url: '/' },\n { name: title, url: '/reviews' },\n ],\n },\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport { reviewsLoader, testimonialsLoader } from './loader';\nimport type { ReviewsPageProps, TestimonialsPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { lazyComponent } from '../../utils/lazy-component';\n\n// Lazy-load component for code-splitting\nconst LazyTestimonialsPage = lazyComponent(() =>\n import('./TestimonialsPage').then((m) => ({ default: m.TestimonialsPage }))\n);\n\nconst LazyReviewsPage = lazyComponent(() =>\n import('./ReviewsPage').then((m) => ({ default: m.ReviewsPage }))\n);\n\nexport const TestimonialsPage = LazyTestimonialsPage;\nexport const ReviewsPage = LazyReviewsPage;\nexport { reviewsLoader, testimonialsLoader } from './loader';\nexport type { ReviewsPageProps, TestimonialsPageProps } from './types';\n\nasync function loader(\n ctx: { locale?: string },\n extend?: (\n data: TestimonialsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<TestimonialsPageProps> {\n const data = await testimonialsLoader({ locale: ctx.locale ?? 'ar' });\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as TestimonialsPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: TestimonialsPageProps): 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 Testimonials = {\n id: RouteId.TESTIMONIALS,\n loader,\n head,\n Component: LazyTestimonialsPage,\n} as const;\n\nasync function loadReviews(\n _ctx?: { locale?: string },\n extend?: (\n data: ReviewsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<ReviewsPageProps> {\n const data = await reviewsLoader();\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as ReviewsPageProps;\n }\n return data;\n}\n\nexport const Reviews = {\n id: RouteId.REVIEWS,\n loader: loadReviews,\n head: (ctx: TwilightContext, data: ReviewsPageProps): HeadDescriptor => ({\n title: data.page.title,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyReviewsPage,\n} as const;\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { HeadDescriptor } from '../../utils/head';
|
|
2
2
|
import type { ThankYouPageProps, ThankYouLoaderParams } from './types';
|
|
3
3
|
import type { TwilightContext } from '../../twilight/context';
|
|
4
|
-
export declare const ThankYouPage: import("
|
|
4
|
+
export declare const ThankYouPage: import("../../utils/lazy-component").LazyComponent<typeof import("./ThankYouPage").ThankYouPage>;
|
|
5
5
|
export { thankYouLoader } from './loader';
|
|
6
6
|
export type { ThankYouLoaderParams, ThankYouPageProps } from './types';
|
|
7
7
|
declare function loader(ctx: {
|
|
@@ -15,6 +15,6 @@ export declare const ThankYou: {
|
|
|
15
15
|
readonly id: "thank-you";
|
|
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("./ThankYouPage").ThankYouPage>;
|
|
19
19
|
};
|
|
20
20
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/routes/thank-you/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAIvD,OAAO,KAAK,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AACvE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAS9D,eAAO,MAAM,YAAY,kGAAmB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,YAAY,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEvE,iBAAe,MAAM,CACnB,GAAG,EAAE;IAAE,MAAM,EAAE,oBAAoB,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,EACtD,MAAM,CAAC,EAAE,CACP,IAAI,EAAE,iBAAiB,EACvB,GAAG,EAAE;IAAE,MAAM,EAAE,oBAAoB,CAAA;CAAE,KAClC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC9D,OAAO,CAAC,iBAAiB,CAAC,CAQ5B;AAED,iBAAS,IAAI,CAAC,GAAG,EAAE,eAAe,EAAE,IAAI,EAAE,iBAAiB,GAAG,cAAc,CAQ3E;AAED,eAAO,MAAM,QAAQ;;;;;CAKX,CAAC"}
|
package/dist/routes/thank-you.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { order } from '../chunk-
|
|
1
|
+
import { order } from '../chunk-GJFK3SU5.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/thank-you/loader.ts
|
|
17
17
|
async function thankYouLoader({
|
|
@@ -40,8 +40,8 @@ async function thankYouLoader({
|
|
|
40
40
|
}
|
|
41
41
|
|
|
42
42
|
// src/routes/thank-you/index.tsx
|
|
43
|
-
var LazyThankYouPage =
|
|
44
|
-
() => import('../ThankYouPage-
|
|
43
|
+
var LazyThankYouPage = lazyComponent(
|
|
44
|
+
() => import('../ThankYouPage-VHUAKQF7.js').then((m) => ({ default: m.ThankYouPage }))
|
|
45
45
|
);
|
|
46
46
|
var ThankYouPage = LazyThankYouPage;
|
|
47
47
|
async function loader(ctx, extend) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/routes/thank-you/loader.ts","../../src/routes/thank-you/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,eAAsB,cAAA,CAAe;AAAA,EACnC;AACF,CAAA,EAE+B;AAC7B,EAAA,MAAM,UAAU,MAAA,CAAO,OAAA;AAMvB,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,MAAM,QAAQ,UAAA,CAAW;AAAA,IAC7D,KAAA,CAAM,KAAK,OAAO,CAAA;AAAA,IAClB,KAAA,CAAM,SAAS,OAAO;AAAA,GACvB,CAAA;AAED,EAAA,MAAM,YACJ,WAAA,CAAY,MAAA,KAAW,WAAA,GAAc,WAAA,CAAY,MAAM,KAAA,GAAQ,MAAA;AACjE,EAAA,MAAM,YAAA,GAAe,cAAA,CAAe,MAAA,KAAW,WAAA,GAAc,eAAe,KAAA,GAAQ,MAAA;AAEpF,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,MACJ,MAAM,OAAA,CAAQ,SAAA;AAAA,MACd,EAAA,EAAI,SAAA,GAAY,MAAA,CAAO,SAAA,CAAU,EAAE,CAAA,GAAI,OAAA;AAAA,MACvC,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,yBAAyB,CAAA,IAAK;AAAA,KAC9C;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,iBAAiB,YAAA,EAAc,eAAA;AAAA,IAC/B,QAAA,EAAU,YAAA,EAAc,QAAA,IAAY,EAAC;AAAA,IACrC,eAAe,YAAA,EAAc,aAAA;AAAA,IAC7B,qBAAqB,YAAA,EAAc;AAAA,GACrC;AACF;;;
|
|
1
|
+
{"version":3,"sources":["../../src/routes/thank-you/loader.ts","../../src/routes/thank-you/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAMA,eAAsB,cAAA,CAAe;AAAA,EACnC;AACF,CAAA,EAE+B;AAC7B,EAAA,MAAM,UAAU,MAAA,CAAO,OAAA;AAMvB,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAI,MAAM,QAAQ,UAAA,CAAW;AAAA,IAC7D,KAAA,CAAM,KAAK,OAAO,CAAA;AAAA,IAClB,KAAA,CAAM,SAAS,OAAO;AAAA,GACvB,CAAA;AAED,EAAA,MAAM,YACJ,WAAA,CAAY,MAAA,KAAW,WAAA,GAAc,WAAA,CAAY,MAAM,KAAA,GAAQ,MAAA;AACjE,EAAA,MAAM,YAAA,GAAe,cAAA,CAAe,MAAA,KAAW,WAAA,GAAc,eAAe,KAAA,GAAQ,MAAA;AAEpF,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM;AAAA,MACJ,MAAM,OAAA,CAAQ,SAAA;AAAA,MACd,EAAA,EAAI,SAAA,GAAY,MAAA,CAAO,SAAA,CAAU,EAAE,CAAA,GAAI,OAAA;AAAA,MACvC,KAAA,EAAO,IAAA,CAAK,CAAA,CAAE,yBAAyB,CAAA,IAAK;AAAA,KAC9C;AAAA,IACA,KAAA,EAAO,SAAA;AAAA,IACP,iBAAiB,YAAA,EAAc,eAAA;AAAA,IAC/B,QAAA,EAAU,YAAA,EAAc,QAAA,IAAY,EAAC;AAAA,IACrC,eAAe,YAAA,EAAc,aAAA;AAAA,IAC7B,qBAAqB,YAAA,EAAc;AAAA,GACrC;AACF;;;AC7BA,IAAM,gBAAA,GAAmB,aAAA;AAAA,EAAc,MACrC,OAAO,6BAAgB,CAAA,CAAE,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,OAAA,EAAS,CAAA,CAAE,YAAA,EAAa,CAAE;AACpE,CAAA;AAEO,IAAM,YAAA,GAAe;AAI5B,eAAe,MAAA,CACb,KACA,MAAA,EAI4B;AAC5B,EAAA,MAAM,OAAO,MAAM,cAAA,CAAe,EAAE,MAAA,EAAQ,GAAA,CAAI,QAAQ,CAAA;AAExD,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAM,KAAA,GAAQ,MAAM,MAAA,CAAO,IAAA,EAAM,GAAG,CAAA;AACpC,IAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAG,KAAA,EAAM;AAAA,EAC7B;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,IAAA,CAAK,KAAsB,IAAA,EAAyC;AAC3E,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,QAAA,GAAW;AAAA,EACtB,IAAI,OAAA,CAAQ,SAAA;AAAA,EACZ,MAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA,EAAW;AACb","file":"thank-you.js","sourcesContent":["import type { ThankYouPageProps, ThankYouLoaderParams } from './types';\nimport type { Order } from '../account/types';\nimport { order } from '../../api/order';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport async function thankYouLoader({\n params,\n}: {\n params: ThankYouLoaderParams;\n}): Promise<ThankYouPageProps> {\n const orderId = params.orderId;\n\n // orders/{id} needs a customer token that guest checkout / tokenless SSR lacks (400\n // token_not_provided). Don't let that 500 the page — render whatever resolves.\n // ponytail: guest order detail needs checkout/thank-you to return the order; source it\n // here once that payload is confirmed on a correctly store-bound worker.\n const [orderResult, thankYouResult] = await Promise.allSettled([\n order.find(orderId),\n order.thankYou(orderId),\n ]);\n\n const orderData: Order | undefined =\n orderResult.status === 'fulfilled' ? orderResult.value.order : undefined;\n const thankYouData = thankYouResult.status === 'fulfilled' ? thankYouResult.value : undefined;\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.THANK_YOU,\n id: orderData ? String(orderData.id) : orderId,\n title: i18n.t('common.titles.thank_you') || 'Thank You',\n },\n order: orderData,\n thank_you_title: thankYouData?.thank_you_title,\n messages: thankYouData?.messages ?? [],\n share_message: thankYouData?.share_message,\n short_share_message: thankYouData?.short_share_message,\n };\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\n\nimport { thankYouLoader } from './loader';\nimport type { ThankYouPageProps, ThankYouLoaderParams } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\nimport { lazyComponent } from '../../utils/lazy-component';\n\n// Lazy-load component for code-splitting\nconst LazyThankYouPage = lazyComponent(() =>\n import('./ThankYouPage').then((m) => ({ default: m.ThankYouPage }))\n);\n\nexport const ThankYouPage = LazyThankYouPage;\nexport { thankYouLoader } from './loader';\nexport type { ThankYouLoaderParams, ThankYouPageProps } from './types';\n\nasync function loader(\n ctx: { params: ThankYouLoaderParams; locale?: string },\n extend?: (\n data: ThankYouPageProps,\n ctx: { params: ThankYouLoaderParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<ThankYouPageProps> {\n const data = await thankYouLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as ThankYouPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: ThankYouPageProps): 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 ThankYou = {\n id: RouteId.THANK_YOU,\n loader,\n head,\n Component: LazyThankYouPage,\n} as const;\n"]}
|
package/dist/skeleton.js
CHANGED
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
export { BlogSkeleton, BreadcrumbSkeleton, CartSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from './chunk-N7CCSGZF.js';
|
|
2
|
-
export { HomeSkeleton } from './chunk-
|
|
2
|
+
export { HomeSkeleton } from './chunk-LMMDVLAB.js';
|
|
3
3
|
import './chunk-IXHM24Z4.js';
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
6
|
-
import './chunk-
|
|
7
|
-
import './chunk-
|
|
4
|
+
import './chunk-SAYYMA6E.js';
|
|
5
|
+
import './chunk-HEWFF3KI.js';
|
|
6
|
+
import './chunk-U6EB7GM3.js';
|
|
7
|
+
import './chunk-3QR6T7KW.js';
|
|
8
8
|
import './chunk-Y32RHCOH.js';
|
|
9
|
-
import './chunk-
|
|
9
|
+
import './chunk-UXS3QCHM.js';
|
|
10
10
|
import './chunk-H2QBHOF2.js';
|
|
11
|
-
import './chunk-
|
|
12
|
-
import './chunk-
|
|
11
|
+
import './chunk-VFQNVPFH.js';
|
|
12
|
+
import './chunk-JFKHKDSK.js';
|
|
13
13
|
import './chunk-N6ZE6HUX.js';
|
|
14
14
|
import './chunk-X55R4VVK.js';
|
|
15
|
-
import './chunk-
|
|
15
|
+
import './chunk-S7FNMT24.js';
|
|
16
16
|
import './chunk-OXMUPNMH.js';
|
|
17
|
-
import './chunk-
|
|
17
|
+
import './chunk-HG75MP47.js';
|
|
18
18
|
import './chunk-VVZNW5CB.js';
|
|
19
19
|
import './chunk-WQPG22DY.js';
|
|
20
20
|
import './chunk-GD26FI4J.js';
|
|
21
21
|
import './chunk-Q7E4TNN7.js';
|
|
22
22
|
import './chunk-RYGEIQWO.js';
|
|
23
|
-
import './chunk-
|
|
23
|
+
import './chunk-ITZ543CK.js';
|
|
24
24
|
import './chunk-OUW6WESU.js';
|
|
25
25
|
import './chunk-HOJ5E2PG.js';
|
|
26
26
|
import './chunk-HI5V5X3S.js';
|
|
27
|
-
import './chunk-
|
|
28
|
-
import './chunk-
|
|
27
|
+
import './chunk-5FEFYFTS.js';
|
|
28
|
+
import './chunk-TVAXTMMQ.js';
|
|
29
29
|
import './chunk-MVT5AF2A.js';
|
|
30
30
|
import './chunk-Z653O7MX.js';
|
|
31
31
|
import './chunk-ZCH7W7DZ.js';
|
|
@@ -36,22 +36,22 @@ import './chunk-7V36I5GT.js';
|
|
|
36
36
|
import './chunk-6WI7R2BD.js';
|
|
37
37
|
import './chunk-LFHYQ6AN.js';
|
|
38
38
|
import './chunk-OAMIDZKW.js';
|
|
39
|
-
import './chunk-
|
|
39
|
+
import './chunk-PBFLXHKM.js';
|
|
40
40
|
import './chunk-OQIIJRAS.js';
|
|
41
41
|
import './chunk-V2ZDTY6H.js';
|
|
42
|
-
import './chunk-
|
|
42
|
+
import './chunk-MWAXFBGG.js';
|
|
43
43
|
import './chunk-5XDPAKF5.js';
|
|
44
44
|
import './chunk-GCPEMNSU.js';
|
|
45
|
-
import './chunk-
|
|
45
|
+
import './chunk-5MNGLNIJ.js';
|
|
46
46
|
import './chunk-Z5M4YYWT.js';
|
|
47
47
|
import './chunk-TYNZ5B2B.js';
|
|
48
|
-
import './chunk-
|
|
48
|
+
import './chunk-TWLJ2RII.js';
|
|
49
49
|
import './chunk-AXW67SY7.js';
|
|
50
50
|
import './chunk-BYMOPN2S.js';
|
|
51
51
|
import './chunk-SKLEJJ6M.js';
|
|
52
52
|
import './chunk-6BZ5TKEV.js';
|
|
53
53
|
import './chunk-FZKRSGLP.js';
|
|
54
|
-
import './chunk-
|
|
54
|
+
import './chunk-KYMWEUN2.js';
|
|
55
55
|
import './chunk-YA6ABQB7.js';
|
|
56
56
|
import './chunk-MWYKP7CI.js';
|
|
57
57
|
import './chunk-3E3ABCPC.js';
|
|
@@ -60,6 +60,7 @@ import './chunk-FXVII733.js';
|
|
|
60
60
|
import './chunk-6K34BCUP.js';
|
|
61
61
|
import './chunk-T72DAX7R.js';
|
|
62
62
|
import './chunk-DF6FBKDN.js';
|
|
63
|
+
import './chunk-VYGA5AT5.js';
|
|
63
64
|
import './chunk-DGUM43GV.js';
|
|
64
65
|
//# sourceMappingURL=skeleton.js.map
|
|
65
66
|
//# sourceMappingURL=skeleton.js.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { category } from './chunk-
|
|
2
|
-
import { blog } from './chunk-
|
|
3
|
-
import { brand } from './chunk-
|
|
4
|
-
import { product } from './chunk-
|
|
1
|
+
import { category } from './chunk-S5ZKI3TY.js';
|
|
2
|
+
import { blog } from './chunk-OSYUGCRG.js';
|
|
3
|
+
import { brand } from './chunk-OXBMZSKL.js';
|
|
4
|
+
import { product } from './chunk-U6EB7GM3.js';
|
|
5
5
|
import { DEV_LOOKUP_BUDGET_MS } from './chunk-OXMUPNMH.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-ITZ543CK.js';
|
|
7
7
|
import './chunk-OUW6WESU.js';
|
|
8
|
-
import './chunk-
|
|
8
|
+
import './chunk-5MNGLNIJ.js';
|
|
9
9
|
import './chunk-Z5M4YYWT.js';
|
|
10
10
|
import './chunk-3E3ABCPC.js';
|
|
11
11
|
import './chunk-NHA4SBKG.js';
|
|
@@ -111,5 +111,5 @@ function lookupInStore(source, query) {
|
|
|
111
111
|
}
|
|
112
112
|
|
|
113
113
|
export { lookupInStore };
|
|
114
|
-
//# sourceMappingURL=store-lookup-
|
|
115
|
-
//# sourceMappingURL=store-lookup-
|
|
114
|
+
//# sourceMappingURL=store-lookup-2P7PQVXE.js.map
|
|
115
|
+
//# sourceMappingURL=store-lookup-2P7PQVXE.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":"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","file":"store-lookup-
|
|
1
|
+
{"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":";;;;;;;;;;;;;;;;;;AAmBA,IAAM,QAAA,GAAW,EAAA;AAEjB,IAAM,SAAA,GAAY,EAAA;AAalB,eAAe,OAAA,CACb,WACA,IAAA,EACc;AACd,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,GAAA,EAAI,GAAI,oBAAA;AAC9B,EAAA,MAAM,QAAa,EAAC;AACpB,EAAA,IAAI,MAAA,GAAwB,IAAA;AAC5B,EAAA,KAAA,IAAS,IAAA,GAAO,CAAA,EAAG,IAAA,IAAQ,SAAA,EAAW,QAAQ,CAAA,EAAG;AAC/C,IAAA,MAAM,EAAE,KAAA,EAAO,IAAA,KAAS,MAAM,SAAA,CAAU,MAAM,MAAM,CAAA;AACpD,IAAA,KAAA,CAAM,IAAA,CAAK,GAAG,KAAA,CAAM,MAAA,CAAO,IAAI,CAAC,CAAA;AAChC,IAAA,IAAI,KAAA,CAAM,UAAU,QAAA,IAAY,CAAC,QAAQ,IAAA,CAAK,GAAA,MAAS,QAAA,EAAU;AACjE,IAAA,MAAA,GAAS,IAAA;AAAA,EACX;AACA,EAAA,OAAO,KAAA,CAAM,KAAA,CAAM,CAAA,EAAG,QAAQ,CAAA;AAChC;AAEA,SAAS,OAAA,CAAQ,MAAc,KAAA,EAAwB;AACrD,EAAA,OAAO,CAAC,SAAS,IAAA,CAAK,WAAA,GAAc,QAAA,CAAS,KAAA,CAAM,aAAa,CAAA;AAClE;AAGA,SAAS,QAAQA,WAAAA,EAAoC;AACnD,EAAA,OAAOA,WAAAA,CAAW,OAAA,CAAQ,CAAC,CAAA,KAAM,CAAC,CAAA,EAAG,GAAG,OAAA,CAAQ,CAAA,CAAE,cAAA,IAAkB,EAAE,CAAC,CAAC,CAAA;AAC1E;AAEA,eAAe,SAAS,KAAA,EAAyC;AAC/D,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,MAAM,QAAQ,IAAA,CAAK;AAAA,IACnC,MAAA,EAAQ,QAAQ,QAAA,GAAW,QAAA;AAAA,IAC3B,GAAI,KAAA,GAAQ,EAAE,OAAA,EAAS,KAAA,KAAU,EAAC;AAAA,IAClC,OAAA,EAAS;AAAA,GACV,CAAA;AAED,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,IACvB,EAAA,EAAI,MAAA,CAAO,CAAA,CAAE,EAAE,CAAA;AAAA,IACf,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,KAAA,EAAO,EAAE,KAAA,EAAO,GAAA;AAAA,IAChB,KAAK,CAAA,CAAE,GAAA;AAAA,IACP,MAAM,EAAE,EAAA,EAAI,MAAA,CAAO,CAAA,CAAE,EAAE,CAAA,EAAG,IAAA,EAAM,CAAA,CAAE,IAAA,EAAM,KAAK,CAAA,CAAE,GAAA,EAAK,OAAO,CAAA,CAAE,KAAA,EAAO,OAAO,IAAA;AAAK,GAClF,CAAE,CAAA;AACJ;AAEA,eAAe,WAAW,KAAA,EAAyC;AACjE,EAAA,OAAO,OAAA,CAAQ,MAAM,QAAA,CAAS,IAAA,EAAM,CAAA,CACjC,MAAA,CAAO,CAAC,CAAA,KAAM,OAAA,CAAQ,EAAE,IAAA,EAAM,KAAK,CAAC,CAAA,CACpC,KAAA,CAAM,GAAG,QAAQ,CAAA,CACjB,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,IACX,IAAI,CAAA,CAAE,EAAA;AAAA,IACN,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,KAAA,EAAO,EAAE,KAAA,IAAS,MAAA;AAAA,IAClB,KAAK,CAAA,CAAE,GAAA;AAAA,IACP,MAAM,EAAE,EAAA,EAAI,EAAE,EAAA,EAAI,IAAA,EAAM,EAAE,IAAA,EAAM,GAAA,EAAK,CAAA,CAAE,GAAA,EAAK,OAAO,CAAA,CAAE,KAAA,IAAS,MAAM,IAAA,EAAM,CAAA,CAAE,QAAQ,IAAA;AAAK,GAC3F,CAAE,CAAA;AACN;AAEA,eAAe,OAAO,KAAA,EAAyC;AAC7D,EAAA,MAAM,QAAQ,MAAM,OAAA;AAAA,IAClB,CAAC,IAAA,KAAS,KAAA,CAAM,IAAA,CAAK,IAAI,CAAA;AAAA,IACzB,CAAC,CAAA,KAAM,OAAA,CAAQ,CAAA,CAAE,MAAM,KAAK;AAAA,GAC9B;AACA,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,IACvB,IAAI,CAAA,CAAE,EAAA;AAAA,IACN,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,OAAO,CAAA,CAAE,IAAA;AAAA,IACT,KAAK,CAAA,CAAE,GAAA;AAAA,IACP,MAAM,EAAE,EAAA,EAAI,CAAA,CAAE,EAAA,EAAI,MAAM,CAAA,CAAE,IAAA,EAAM,GAAA,EAAK,CAAA,CAAE,KAAK,IAAA,EAAM,CAAA,CAAE,MAAM,MAAA,EAAQ,CAAA,CAAE,UAAU,IAAA;AAAK,GACrF,CAAE,CAAA;AACJ;AAEA,eAAe,aAAa,KAAA,EAAyC;AACnE,EAAA,MAAM,QAAQ,MAAM,OAAA;AAAA,IAClB,OAAO,OAAO,MAAA,KAAW;AACvB,MAAA,MAAM,EAAE,IAAA,EAAM,MAAA,EAAQ,KAAA,EAAM,GAAI,MAAM,IAAA,CAAK,QAAA,CAAS,IAAA,CAAK,MAAA,GAAS,EAAE,MAAA,KAAW,MAAS,CAAA;AACxF,MAAA,OAAO,EAAE,KAAA,EAAO,IAAA,EAAM,IAAA,EAAM,KAAA,EAAO,QAAQ,IAAA,EAAK;AAAA,IAClD,CAAA;AAAA,IACA,CAAC,CAAA,KAAM,OAAA,CAAQ,CAAA,CAAE,MAAM,KAAK;AAAA,GAC9B;AACA,EAAA,OAAO,KAAA,CAAM,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,IACvB,IAAI,CAAA,CAAE,EAAA;AAAA,IACN,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,OAAO,CAAA,CAAE,KAAA;AAAA,IACT,KAAK,CAAA,CAAE,GAAA;AAAA,IACP,IAAA,EAAM,EAAE,EAAA,EAAI,CAAA,CAAE,EAAA,EAAI,MAAM,CAAA,CAAE,IAAA,EAAM,GAAA,EAAK,CAAA,CAAE,GAAA;AAAI,GAC7C,CAAE,CAAA;AACJ;AAEA,eAAe,eAAe,KAAA,EAAyC;AACrE,EAAA,MAAM,EAAE,UAAA,EAAY,IAAA,EAAK,GAAI,MAAM,KAAK,GAAA,EAAI;AAC5C,EAAA,OAAO,KACJ,MAAA,CAAO,CAAC,CAAA,KAAM,OAAA,CAAQ,EAAE,IAAA,EAAM,KAAK,CAAC,CAAA,CACpC,MAAM,CAAA,EAAG,QAAQ,CAAA,CACjB,GAAA,CAAI,CAAC,CAAA,MAAO;AAAA,IACX,IAAI,CAAA,CAAE,EAAA;AAAA,IACN,MAAM,CAAA,CAAE,IAAA;AAAA,IACR,KAAK,CAAA,CAAE,GAAA;AAAA,IACP,IAAA,EAAM,EAAE,EAAA,EAAI,CAAA,CAAE,EAAA,EAAI,MAAM,CAAA,CAAE,IAAA,EAAM,GAAA,EAAK,CAAA,CAAE,GAAA;AAAI,GAC7C,CAAE,CAAA;AACN;AAEA,IAAM,OAAA,GAAgF;AAAA,EACpF,QAAA;AAAA,EACA,UAAA;AAAA,EACA,MAAA;AAAA,EACA,aAAA,EAAe,YAAA;AAAA,EACf,eAAA,EAAiB;AACnB,CAAA;AAEO,SAAS,aAAA,CAAc,QAAyB,KAAA,EAAyC;AAC9F,EAAA,MAAM,MAAA,GAAS,QAAQ,MAAM,CAAA;AAC7B,EAAA,IAAI,CAAC,MAAA,EAAQ,OAAO,OAAA,CAAQ,MAAA,CAAO,IAAI,KAAA,CAAM,CAAA,cAAA,EAAiB,MAAM,CAAA,CAAE,CAAC,CAAA;AACvE,EAAA,OAAO,MAAA,CAAO,KAAA,CAAM,IAAA,EAAM,CAAA;AAC5B","file":"store-lookup-2P7PQVXE.js","sourcesContent":["/**\n * Runs in the editor's frame (the storefront), which has the engine's API\n * client set up for the dev store: answers the editor's pickers with the real\n * store's products, categories, brands and blog. Loaded with `import()` on the\n * first lookup, so a storefront never carries it.\n *\n * Each item's `data` is what a block receives for it, in the API's shape: a\n * product block reads only the ids and fetches the rest, while categories and\n * brands are drawn from what is saved.\n */\n\nimport { product } from '../api/product';\nimport { category } from '../api/category';\nimport { brand } from '../api/brands';\nimport { blog } from '../api/blog';\nimport type { Category } from '../types';\nimport { DEV_LOOKUP_BUDGET_MS, type DevLookupItem, type DevLookupSource } from './schema-types';\n\n/** Enough to choose from; a search narrows it further. */\nconst PER_PAGE = 20;\n/** How far a paged list is searched before giving up, so a big store can't stall the picker. */\nconst MAX_PAGES = 10;\n\ninterface Page<T> {\n items: T[];\n next: string | null;\n}\n\n/**\n * The matching items of a paged list, read page after page until there are\n * enough, the pages run out, or the time budget is spent: a brand or article on\n * page three is still found, and what was found so far always reaches the\n * editor before it stops waiting (`DEV_LOOKUP_BUDGET_MS` < its timeout).\n */\nasync function collect<T>(\n fetchPage: (page: number, cursor: string | null) => Promise<Page<T>>,\n keep: (item: T) => boolean\n): Promise<T[]> {\n const deadline = Date.now() + DEV_LOOKUP_BUDGET_MS;\n const found: T[] = [];\n let cursor: string | null = null;\n for (let page = 1; page <= MAX_PAGES; page += 1) {\n const { items, next } = await fetchPage(page, cursor);\n found.push(...items.filter(keep));\n if (found.length >= PER_PAGE || !next || Date.now() >= deadline) break;\n cursor = next;\n }\n return found.slice(0, PER_PAGE);\n}\n\nfunction matches(name: string, query: string): boolean {\n return !query || name.toLowerCase().includes(query.toLowerCase());\n}\n\n/** Categories with their subcategories, flattened, parents first. */\nfunction flatten(categories: Category[]): Category[] {\n return categories.flatMap((c) => [c, ...flatten(c.sub_categories ?? [])]);\n}\n\nasync function products(query: string): Promise<DevLookupItem[]> {\n const { items } = await product.list({\n source: query ? 'search' : 'latest',\n ...(query ? { keyword: query } : {}),\n perPage: PER_PAGE,\n });\n // List responses send the id as a numeric string; the block reads a number. Use it for both.\n return items.map((p) => ({\n id: Number(p.id),\n name: p.name,\n image: p.image?.url,\n url: p.url,\n data: { id: Number(p.id), name: p.name, url: p.url, image: p.image?.url ?? null },\n }));\n}\n\nasync function categories(query: string): Promise<DevLookupItem[]> {\n return flatten(await category.list())\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n image: c.image ?? undefined,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url, image: c.image ?? null, icon: c.icon ?? null },\n }));\n}\n\nasync function brands(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n (page) => brand.list(page),\n (b) => matches(b.name, query)\n );\n return found.map((b) => ({\n id: b.id,\n name: b.name,\n image: b.logo,\n url: b.url,\n data: { id: b.id, name: b.name, url: b.url, logo: b.logo, banner: b.banner ?? null },\n }));\n}\n\nasync function blogArticles(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n async (_page, cursor) => {\n const { data, cursor: pages } = await blog.articles.list(cursor ? { cursor } : undefined);\n return { items: data, next: pages?.next ?? null };\n },\n (a) => matches(a.name, query)\n );\n return found.map((a) => ({\n id: a.id,\n name: a.name,\n image: a.image,\n url: a.url,\n data: { id: a.id, name: a.name, url: a.url },\n }));\n}\n\nasync function blogCategories(query: string): Promise<DevLookupItem[]> {\n const { categories: list } = await blog.get();\n return list\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url },\n }));\n}\n\nconst LOOKUPS: Record<DevLookupSource, (query: string) => Promise<DevLookupItem[]>> = {\n products,\n categories,\n brands,\n blog_articles: blogArticles,\n blog_categories: blogCategories,\n};\n\nexport function lookupInStore(source: DevLookupSource, query: string): Promise<DevLookupItem[]> {\n const lookup = LOOKUPS[source];\n if (!lookup) return Promise.reject(new Error(`no lookup for ${source}`));\n return lookup(query.trim());\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/tanstack/router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAwC,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/tanstack/router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAwC,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAiBhE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA2C7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAoED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,KAG7B,SAAS,GAAG,kRAOrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,sCA4BlE;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAa1E;AA8ND;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,uGA+HzE;AAED,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;KACzC;IAED,UAAU,aAAc,SAAQ,oBAAoB;KAAG;CACxD"}
|
package/dist/tanstack.js
CHANGED
|
@@ -1,26 +1,26 @@
|
|
|
1
|
-
export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-
|
|
2
|
-
import { requestHostOf } from './chunk-
|
|
3
|
-
export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-
|
|
1
|
+
export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-EGJ2SV6O.js';
|
|
2
|
+
import { requestHostOf } from './chunk-P43VADN7.js';
|
|
3
|
+
export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-P43VADN7.js';
|
|
4
4
|
import './chunk-Z4Y55HWX.js';
|
|
5
5
|
export { tanstackHeadAdapter as head, withHead } from './chunk-5UWRPWK2.js';
|
|
6
6
|
import { CRITICAL_STYLE_HREF } from './chunk-4FJGZQD3.js';
|
|
7
|
-
import './chunk-
|
|
8
|
-
import { readNativeAppHeaders } from './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
7
|
+
import './chunk-6KZUGNCS.js';
|
|
8
|
+
import { readNativeAppHeaders } from './chunk-A7KXUBPT.js';
|
|
9
|
+
import './chunk-FVHAKOEH.js';
|
|
10
|
+
import './chunk-U6EB7GM3.js';
|
|
11
11
|
import { rootHead } from './chunk-N6ZE6HUX.js';
|
|
12
12
|
import './chunk-X55R4VVK.js';
|
|
13
|
-
import './chunk-
|
|
13
|
+
import './chunk-HG75MP47.js';
|
|
14
14
|
import './chunk-WQPG22DY.js';
|
|
15
15
|
import './chunk-GD26FI4J.js';
|
|
16
16
|
import { maintenanceEvidence, MAINTENANCE_EVIDENCE_HEADER, maintenanceEvidenceHeader } from './chunk-Q7E4TNN7.js';
|
|
17
17
|
import './chunk-RYGEIQWO.js';
|
|
18
|
-
import './chunk-
|
|
18
|
+
import './chunk-ITZ543CK.js';
|
|
19
19
|
import './chunk-OUW6WESU.js';
|
|
20
20
|
import './chunk-JWXJPJBO.js';
|
|
21
21
|
export { mergeDocumentDescriptors as mergeAttrs } from './chunk-CW625T2E.js';
|
|
22
|
-
import './chunk-
|
|
23
|
-
import './chunk-
|
|
22
|
+
import './chunk-MWAXFBGG.js';
|
|
23
|
+
import './chunk-5MNGLNIJ.js';
|
|
24
24
|
import './chunk-Z5M4YYWT.js';
|
|
25
25
|
import './chunk-TYNZ5B2B.js';
|
|
26
26
|
import './chunk-BYMOPN2S.js';
|
|
@@ -31,6 +31,7 @@ import { runWithTwilightContext, getTwilightContext } from './chunk-6K34BCUP.js'
|
|
|
31
31
|
export { getTwilightContext, runWithTwilightContext, updateTwilightContext } from './chunk-6K34BCUP.js';
|
|
32
32
|
import './chunk-T72DAX7R.js';
|
|
33
33
|
import './chunk-DF6FBKDN.js';
|
|
34
|
+
import './chunk-VYGA5AT5.js';
|
|
34
35
|
import './chunk-DGUM43GV.js';
|
|
35
36
|
import { useState, useSyncExternalStore, createElement } from 'react';
|
|
36
37
|
import { useRouterState, useTags, useRouter, Asset } from '@tanstack/react-router';
|