@salla.sa/twilight-theme-engine 1.0.0-beta.4
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/README.md +165 -0
- package/dist/AddToCartForm-HOWNKCKX.js +304 -0
- package/dist/AddToCartForm-HOWNKCKX.js.map +1 -0
- package/dist/BlogAuthorPage-W3BZIJHJ.js +101 -0
- package/dist/BlogAuthorPage-W3BZIJHJ.js.map +1 -0
- package/dist/BlogCategoryPage-AIAJ5JBR.js +101 -0
- package/dist/BlogCategoryPage-AIAJ5JBR.js.map +1 -0
- package/dist/BlogPage-4BYF2EQW.js +190 -0
- package/dist/BlogPage-4BYF2EQW.js.map +1 -0
- package/dist/BlogSinglePage-AMNAUMWW.js +187 -0
- package/dist/BlogSinglePage-AMNAUMWW.js.map +1 -0
- package/dist/BlogTagPage-ELG2H5N5.js +101 -0
- package/dist/BlogTagPage-ELG2H5N5.js.map +1 -0
- package/dist/BrandsPage-ZSO3PYAV.js +127 -0
- package/dist/BrandsPage-ZSO3PYAV.js.map +1 -0
- package/dist/Breadcrumb-N32QFMVK.js +152 -0
- package/dist/Breadcrumb-N32QFMVK.js.map +1 -0
- package/dist/CartItem-SGTGOTEC.js +171 -0
- package/dist/CartItem-SGTGOTEC.js.map +1 -0
- package/dist/CartSummary-OKDGVSX2.js +236 -0
- package/dist/CartSummary-OKDGVSX2.js.map +1 -0
- package/dist/Copyright-F3HLYXFJ.js +9 -0
- package/dist/Copyright-F3HLYXFJ.js.map +1 -0
- package/dist/CurrencySymbol-TARAYUOT.js +11 -0
- package/dist/CurrencySymbol-TARAYUOT.js.map +1 -0
- package/dist/CustomerLayout-LB4E2LHT.js +68 -0
- package/dist/CustomerLayout-LB4E2LHT.js.map +1 -0
- package/dist/ErrorPage-TK4U3ENF.js +6 -0
- package/dist/ErrorPage-TK4U3ENF.js.map +1 -0
- package/dist/Footer-UVCSKTW3.js +39 -0
- package/dist/Footer-UVCSKTW3.js.map +1 -0
- package/dist/GoogleTag-4LHWC365.js +52 -0
- package/dist/GoogleTag-4LHWC365.js.map +1 -0
- package/dist/Header-BF6SPZJC.js +15 -0
- package/dist/Header-BF6SPZJC.js.map +1 -0
- package/dist/ImageModal-WLJM3WIE.js +41 -0
- package/dist/ImageModal-WLJM3WIE.js.map +1 -0
- package/dist/LoyaltyPage-X4PHPUFC.js +188 -0
- package/dist/LoyaltyPage-X4PHPUFC.js.map +1 -0
- package/dist/MainMenu-R3EWTNNC.js +91 -0
- package/dist/MainMenu-R3EWTNNC.js.map +1 -0
- package/dist/MasterLayout-5JLM7IMW.js +39 -0
- package/dist/MasterLayout-5JLM7IMW.js.map +1 -0
- package/dist/MobileMenu-QXESUQXC.js +175 -0
- package/dist/MobileMenu-QXESUQXC.js.map +1 -0
- package/dist/NoContent-PBGESHBJ.js +21 -0
- package/dist/NoContent-PBGESHBJ.js.map +1 -0
- package/dist/NotificationsPage-V6UIPDJD.js +84 -0
- package/dist/NotificationsPage-V6UIPDJD.js.map +1 -0
- package/dist/OrderSinglePage-ZMEKPLE3.js +441 -0
- package/dist/OrderSinglePage-ZMEKPLE3.js.map +1 -0
- package/dist/OrdersPage-EAATVPYK.js +184 -0
- package/dist/OrdersPage-EAATVPYK.js.map +1 -0
- package/dist/PageSingle-Y6ARZ5LS.js +28 -0
- package/dist/PageSingle-Y6ARZ5LS.js.map +1 -0
- package/dist/PreOrderNotification-ZVTGNV7K.js +23 -0
- package/dist/PreOrderNotification-ZVTGNV7K.js.map +1 -0
- package/dist/PriceQuoteButton-RAAPL4N4.js +26 -0
- package/dist/PriceQuoteButton-RAAPL4N4.js.map +1 -0
- package/dist/ProductDetails-KTY4ZSFM.js +194 -0
- package/dist/ProductDetails-KTY4ZSFM.js.map +1 -0
- package/dist/ProfilePage-6SK34MDJ.js +64 -0
- package/dist/ProfilePage-6SK34MDJ.js.map +1 -0
- package/dist/RenderWhenVisible-TR7G2KUC.js +50 -0
- package/dist/RenderWhenVisible-TR7G2KUC.js.map +1 -0
- package/dist/SeoCartWidget-XF4GEJK7.js +109 -0
- package/dist/SeoCartWidget-XF4GEJK7.js.map +1 -0
- package/dist/SettingsPage-DPYARBPO.js +51 -0
- package/dist/SettingsPage-DPYARBPO.js.map +1 -0
- package/dist/SiftSnippet-X74S5KDO.js +29 -0
- package/dist/SiftSnippet-X74S5KDO.js.map +1 -0
- package/dist/StoreClosedNotification-KSB2GPEZ.js +91 -0
- package/dist/StoreClosedNotification-KSB2GPEZ.js.map +1 -0
- package/dist/Testimonials-MZCVP66E.js +26 -0
- package/dist/Testimonials-MZCVP66E.js.map +1 -0
- package/dist/TestimonialsPage-4OFS5Z4V.js +77 -0
- package/dist/TestimonialsPage-4OFS5Z4V.js.map +1 -0
- package/dist/ThankYouPage-C7PA3RJP.js +236 -0
- package/dist/ThankYouPage-C7PA3RJP.js.map +1 -0
- package/dist/TwilightBundles-5F2H75VV.js +46 -0
- package/dist/TwilightBundles-5F2H75VV.js.map +1 -0
- package/dist/WalletPage-66XGZKO7.js +189 -0
- package/dist/WalletPage-66XGZKO7.js.map +1 -0
- package/dist/WidgetHead-FXEPCB23.js +7 -0
- package/dist/WidgetHead-FXEPCB23.js.map +1 -0
- package/dist/WishlistPage-7ZZYHBSZ.js +144 -0
- package/dist/WishlistPage-7ZZYHBSZ.js.map +1 -0
- package/dist/ambient/salla-components.d.ts +312 -0
- package/dist/ambient/virtual-modules.d.ts +22 -0
- package/dist/api/apps.d.ts +28 -0
- package/dist/api/apps.d.ts.map +1 -0
- package/dist/api/apps.js +26 -0
- package/dist/api/apps.js.map +1 -0
- package/dist/api/blog.d.ts +61 -0
- package/dist/api/blog.d.ts.map +1 -0
- package/dist/api/brands.d.ts +25 -0
- package/dist/api/brands.d.ts.map +1 -0
- package/dist/api/brands.js +40 -0
- package/dist/api/brands.js.map +1 -0
- package/dist/api/cart.d.ts +21 -0
- package/dist/api/cart.d.ts.map +1 -0
- package/dist/api/cart.js +40 -0
- package/dist/api/cart.js.map +1 -0
- package/dist/api/category.d.ts +31 -0
- package/dist/api/category.d.ts.map +1 -0
- package/dist/api/category.js +40 -0
- package/dist/api/category.js.map +1 -0
- package/dist/api/client.d.ts +17 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +7 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/home.d.ts +15 -0
- package/dist/api/home.d.ts.map +1 -0
- package/dist/api/home.js +8 -0
- package/dist/api/home.js.map +1 -0
- package/dist/api/loyalty.d.ts +25 -0
- package/dist/api/loyalty.d.ts.map +1 -0
- package/dist/api/loyalty.js +40 -0
- package/dist/api/loyalty.js.map +1 -0
- package/dist/api/menu.d.ts +16 -0
- package/dist/api/menu.d.ts.map +1 -0
- package/dist/api/menu.js +8 -0
- package/dist/api/menu.js.map +1 -0
- package/dist/api/notification.d.ts +26 -0
- package/dist/api/notification.d.ts.map +1 -0
- package/dist/api/order.d.ts +74 -0
- package/dist/api/order.d.ts.map +1 -0
- package/dist/api/order.js +40 -0
- package/dist/api/order.js.map +1 -0
- package/dist/api/page.d.ts +16 -0
- package/dist/api/page.d.ts.map +1 -0
- package/dist/api/page.js +40 -0
- package/dist/api/page.js.map +1 -0
- package/dist/api/product.d.ts +80 -0
- package/dist/api/product.d.ts.map +1 -0
- package/dist/api/product.js +40 -0
- package/dist/api/product.js.map +1 -0
- package/dist/api/profile.d.ts +9 -0
- package/dist/api/profile.d.ts.map +1 -0
- package/dist/api/profile.js +23 -0
- package/dist/api/profile.js.map +1 -0
- package/dist/api/store.d.ts +46 -0
- package/dist/api/store.d.ts.map +1 -0
- package/dist/api/store.js +8 -0
- package/dist/api/store.js.map +1 -0
- package/dist/api/translations.d.ts +15 -0
- package/dist/api/translations.d.ts.map +1 -0
- package/dist/api/translations.js +8 -0
- package/dist/api/translations.js.map +1 -0
- package/dist/api/types.d.ts +54 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/types.js +3 -0
- package/dist/api/types.js.map +1 -0
- package/dist/api/user.d.ts +15 -0
- package/dist/api/user.d.ts.map +1 -0
- package/dist/api/user.js +8 -0
- package/dist/api/user.js.map +1 -0
- package/dist/api/wallet.d.ts +30 -0
- package/dist/api/wallet.d.ts.map +1 -0
- package/dist/api/wishlist.d.ts +25 -0
- package/dist/api/wishlist.d.ts.map +1 -0
- package/dist/chunk-25SSLQAJ.js +67 -0
- package/dist/chunk-25SSLQAJ.js.map +1 -0
- package/dist/chunk-2FU6CVSB.js +18 -0
- package/dist/chunk-2FU6CVSB.js.map +1 -0
- package/dist/chunk-2KF5JJU6.js +169 -0
- package/dist/chunk-2KF5JJU6.js.map +1 -0
- package/dist/chunk-2TB2LTL2.js +103 -0
- package/dist/chunk-2TB2LTL2.js.map +1 -0
- package/dist/chunk-3DCZJDDK.js +10 -0
- package/dist/chunk-3DCZJDDK.js.map +1 -0
- package/dist/chunk-3UHSMGPY.js +145 -0
- package/dist/chunk-3UHSMGPY.js.map +1 -0
- package/dist/chunk-4EQEYRZ7.js +65 -0
- package/dist/chunk-4EQEYRZ7.js.map +1 -0
- package/dist/chunk-562ZMVI3.js +592 -0
- package/dist/chunk-562ZMVI3.js.map +1 -0
- package/dist/chunk-5Q6PFLDN.js +20 -0
- package/dist/chunk-5Q6PFLDN.js.map +1 -0
- package/dist/chunk-6B6VCCMC.js +28 -0
- package/dist/chunk-6B6VCCMC.js.map +1 -0
- package/dist/chunk-6BZ5TKEV.js +44 -0
- package/dist/chunk-6BZ5TKEV.js.map +1 -0
- package/dist/chunk-6NBBXERE.js +24 -0
- package/dist/chunk-6NBBXERE.js.map +1 -0
- package/dist/chunk-6Q5BFHFA.js +88 -0
- package/dist/chunk-6Q5BFHFA.js.map +1 -0
- package/dist/chunk-6YX4RS55.js +33 -0
- package/dist/chunk-6YX4RS55.js.map +1 -0
- package/dist/chunk-7LP7D75V.js +14 -0
- package/dist/chunk-7LP7D75V.js.map +1 -0
- package/dist/chunk-A5ZRUAMT.js +16 -0
- package/dist/chunk-A5ZRUAMT.js.map +1 -0
- package/dist/chunk-B3EFOE57.js +32 -0
- package/dist/chunk-B3EFOE57.js.map +1 -0
- package/dist/chunk-BT6HEEAP.js +31 -0
- package/dist/chunk-BT6HEEAP.js.map +1 -0
- package/dist/chunk-BVSJPBJ6.js +26 -0
- package/dist/chunk-BVSJPBJ6.js.map +1 -0
- package/dist/chunk-BWFBVXT3.js +13 -0
- package/dist/chunk-BWFBVXT3.js.map +1 -0
- package/dist/chunk-CW625T2E.js +62 -0
- package/dist/chunk-CW625T2E.js.map +1 -0
- package/dist/chunk-DFMO5KBU.js +67 -0
- package/dist/chunk-DFMO5KBU.js.map +1 -0
- package/dist/chunk-DGUM43GV.js +10 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-EQ5ZGAVR.js +89 -0
- package/dist/chunk-EQ5ZGAVR.js.map +1 -0
- package/dist/chunk-FBFPH5BB.js +34 -0
- package/dist/chunk-FBFPH5BB.js.map +1 -0
- package/dist/chunk-G7ALL4BC.js +52 -0
- package/dist/chunk-G7ALL4BC.js.map +1 -0
- package/dist/chunk-GBWCXUPD.js +99 -0
- package/dist/chunk-GBWCXUPD.js.map +1 -0
- package/dist/chunk-GLM3RPCP.js +1167 -0
- package/dist/chunk-GLM3RPCP.js.map +1 -0
- package/dist/chunk-GN34LCTG.js +92 -0
- package/dist/chunk-GN34LCTG.js.map +1 -0
- package/dist/chunk-GO34DE35.js +247 -0
- package/dist/chunk-GO34DE35.js.map +1 -0
- package/dist/chunk-HOSHJBPS.js +52 -0
- package/dist/chunk-HOSHJBPS.js.map +1 -0
- package/dist/chunk-I5Z4NJBB.js +17 -0
- package/dist/chunk-I5Z4NJBB.js.map +1 -0
- package/dist/chunk-J37AYLWL.js +66 -0
- package/dist/chunk-J37AYLWL.js.map +1 -0
- package/dist/chunk-KCKHA75V.js +19 -0
- package/dist/chunk-KCKHA75V.js.map +1 -0
- package/dist/chunk-KIPZQN3Y.js +158 -0
- package/dist/chunk-KIPZQN3Y.js.map +1 -0
- package/dist/chunk-LBUMC5PB.js +34 -0
- package/dist/chunk-LBUMC5PB.js.map +1 -0
- package/dist/chunk-LSDIFHXZ.js +80 -0
- package/dist/chunk-LSDIFHXZ.js.map +1 -0
- package/dist/chunk-M6ICEIWY.js +25 -0
- package/dist/chunk-M6ICEIWY.js.map +1 -0
- package/dist/chunk-MTONGOJD.js +42 -0
- package/dist/chunk-MTONGOJD.js.map +1 -0
- package/dist/chunk-MXQCE3KA.js +173 -0
- package/dist/chunk-MXQCE3KA.js.map +1 -0
- package/dist/chunk-N5RSKJP4.js +65 -0
- package/dist/chunk-N5RSKJP4.js.map +1 -0
- package/dist/chunk-N7CCSGZF.js +3 -0
- package/dist/chunk-N7CCSGZF.js.map +1 -0
- package/dist/chunk-NBHI5X36.js +27 -0
- package/dist/chunk-NBHI5X36.js.map +1 -0
- package/dist/chunk-NSX6XPDU.js +673 -0
- package/dist/chunk-NSX6XPDU.js.map +1 -0
- package/dist/chunk-O2UOV5RK.js +32 -0
- package/dist/chunk-O2UOV5RK.js.map +1 -0
- package/dist/chunk-OZTGUF7K.js +66 -0
- package/dist/chunk-OZTGUF7K.js.map +1 -0
- package/dist/chunk-Q3VACSSR.js +21 -0
- package/dist/chunk-Q3VACSSR.js.map +1 -0
- package/dist/chunk-QTDGM2SO.js +123 -0
- package/dist/chunk-QTDGM2SO.js.map +1 -0
- package/dist/chunk-QYL5OHAV.js +70 -0
- package/dist/chunk-QYL5OHAV.js.map +1 -0
- package/dist/chunk-RH32IGQD.js +372 -0
- package/dist/chunk-RH32IGQD.js.map +1 -0
- package/dist/chunk-RUHSV4Z6.js +12 -0
- package/dist/chunk-RUHSV4Z6.js.map +1 -0
- package/dist/chunk-RYBA3JDM.js +33 -0
- package/dist/chunk-RYBA3JDM.js.map +1 -0
- package/dist/chunk-SBIXBX6J.js +29 -0
- package/dist/chunk-SBIXBX6J.js.map +1 -0
- package/dist/chunk-SSRNIBVV.js +75 -0
- package/dist/chunk-SSRNIBVV.js.map +1 -0
- package/dist/chunk-SVZOWI7E.js +51 -0
- package/dist/chunk-SVZOWI7E.js.map +1 -0
- package/dist/chunk-SYHTMNYF.js +89 -0
- package/dist/chunk-SYHTMNYF.js.map +1 -0
- package/dist/chunk-T72DAX7R.js +65 -0
- package/dist/chunk-T72DAX7R.js.map +1 -0
- package/dist/chunk-TCSNNCRH.js +23 -0
- package/dist/chunk-TCSNNCRH.js.map +1 -0
- package/dist/chunk-TQLEQSXE.js +48 -0
- package/dist/chunk-TQLEQSXE.js.map +1 -0
- package/dist/chunk-TRUQDEMI.js +14 -0
- package/dist/chunk-TRUQDEMI.js.map +1 -0
- package/dist/chunk-TZ3E5BN4.js +91 -0
- package/dist/chunk-TZ3E5BN4.js.map +1 -0
- package/dist/chunk-TZ4YD5CU.js +16 -0
- package/dist/chunk-TZ4YD5CU.js.map +1 -0
- package/dist/chunk-U7HAK5U7.js +105 -0
- package/dist/chunk-U7HAK5U7.js.map +1 -0
- package/dist/chunk-UE3BUFZI.js +16 -0
- package/dist/chunk-UE3BUFZI.js.map +1 -0
- package/dist/chunk-UIX3W2PN.js +56 -0
- package/dist/chunk-UIX3W2PN.js.map +1 -0
- package/dist/chunk-VVRYP6IL.js +61 -0
- package/dist/chunk-VVRYP6IL.js.map +1 -0
- package/dist/chunk-VVZNW5CB.js +49 -0
- package/dist/chunk-VVZNW5CB.js.map +1 -0
- package/dist/chunk-XHGF75TM.js +133 -0
- package/dist/chunk-XHGF75TM.js.map +1 -0
- package/dist/chunk-XUI3TRXF.js +26 -0
- package/dist/chunk-XUI3TRXF.js.map +1 -0
- package/dist/chunk-YCYTBRYB.js +30 -0
- package/dist/chunk-YCYTBRYB.js.map +1 -0
- package/dist/chunk-YMVLYYLU.js +25 -0
- package/dist/chunk-YMVLYYLU.js.map +1 -0
- package/dist/chunk-Z653O7MX.js +10 -0
- package/dist/chunk-Z653O7MX.js.map +1 -0
- package/dist/chunk-ZCH7W7DZ.js +30 -0
- package/dist/chunk-ZCH7W7DZ.js.map +1 -0
- package/dist/components/Component.d.ts +8 -0
- package/dist/components/Component.d.ts.map +1 -0
- package/dist/components/ComponentRegistry.d.ts +19 -0
- package/dist/components/ComponentRegistry.d.ts.map +1 -0
- package/dist/components/cart/CartItem.d.ts +8 -0
- package/dist/components/cart/CartItem.d.ts.map +1 -0
- package/dist/components/cart/CartSummary.d.ts +12 -0
- package/dist/components/cart/CartSummary.d.ts.map +1 -0
- package/dist/components/cart/PreOrderNotification.d.ts +2 -0
- package/dist/components/cart/PreOrderNotification.d.ts.map +1 -0
- package/dist/components/cart/PriceQuoteButton.d.ts +2 -0
- package/dist/components/cart/PriceQuoteButton.d.ts.map +1 -0
- package/dist/components/cart/SeoCartWidget.d.ts +34 -0
- package/dist/components/cart/SeoCartWidget.d.ts.map +1 -0
- package/dist/components/cart/index.d.ts +4 -0
- package/dist/components/cart/index.d.ts.map +1 -0
- package/dist/components/cart/index.js +4 -0
- package/dist/components/cart/index.js.map +1 -0
- package/dist/components/cart/lazy.d.ts +8 -0
- package/dist/components/cart/lazy.d.ts.map +1 -0
- package/dist/components/collapse/Collapse.d.ts +51 -0
- package/dist/components/collapse/Collapse.d.ts.map +1 -0
- package/dist/components/collapse/index.d.ts +36 -0
- package/dist/components/collapse/index.d.ts.map +1 -0
- package/dist/components/collapse/index.js +44 -0
- package/dist/components/collapse/index.js.map +1 -0
- package/dist/components/common/Breadcrumb.d.ts +7 -0
- package/dist/components/common/Breadcrumb.d.ts.map +1 -0
- package/dist/components/common/BreadcrumbJsonLd.d.ts +8 -0
- package/dist/components/common/BreadcrumbJsonLd.d.ts.map +1 -0
- package/dist/components/common/BreadcrumbTrail.d.ts +8 -0
- package/dist/components/common/BreadcrumbTrail.d.ts.map +1 -0
- package/dist/components/common/CurrencySymbol.d.ts +8 -0
- package/dist/components/common/CurrencySymbol.d.ts.map +1 -0
- package/dist/components/common/DeferredData.d.ts +20 -0
- package/dist/components/common/DeferredData.d.ts.map +1 -0
- package/dist/components/common/ErrorPage.d.ts +18 -0
- package/dist/components/common/ErrorPage.d.ts.map +1 -0
- package/dist/components/common/Image.d.ts +28 -0
- package/dist/components/common/Image.d.ts.map +1 -0
- package/dist/components/common/Link.d.ts +21 -0
- package/dist/components/common/Link.d.ts.map +1 -0
- package/dist/components/common/Link.types.d.ts +82 -0
- package/dist/components/common/Link.types.d.ts.map +1 -0
- package/dist/components/common/NoContent.d.ts +9 -0
- package/dist/components/common/NoContent.d.ts.map +1 -0
- package/dist/components/common/RenderWhenVisible.d.ts +23 -0
- package/dist/components/common/RenderWhenVisible.d.ts.map +1 -0
- package/dist/components/common/index.d.ts +11 -0
- package/dist/components/common/index.d.ts.map +1 -0
- package/dist/components/common/index.js +6 -0
- package/dist/components/common/index.js.map +1 -0
- package/dist/components/common/lazy.d.ts +13 -0
- package/dist/components/common/lazy.d.ts.map +1 -0
- package/dist/components/common/types.d.ts +7 -0
- package/dist/components/common/types.d.ts.map +1 -0
- package/dist/components/defineComponent.d.ts +11 -0
- package/dist/components/defineComponent.d.ts.map +1 -0
- package/dist/components/drawer/Drawer.d.ts +53 -0
- package/dist/components/drawer/Drawer.d.ts.map +1 -0
- package/dist/components/drawer/index.d.ts +32 -0
- package/dist/components/drawer/index.d.ts.map +1 -0
- package/dist/components/drawer/index.js +40 -0
- package/dist/components/drawer/index.js.map +1 -0
- package/dist/components/dropdown/Dropdown.d.ts +63 -0
- package/dist/components/dropdown/Dropdown.d.ts.map +1 -0
- package/dist/components/dropdown/index.d.ts +34 -0
- package/dist/components/dropdown/index.d.ts.map +1 -0
- package/dist/components/dropdown/index.js +67 -0
- package/dist/components/dropdown/index.js.map +1 -0
- package/dist/components/home/BundleComponent.d.ts +9 -0
- package/dist/components/home/BundleComponent.d.ts.map +1 -0
- package/dist/components/home/ComponentErrorBoundary.d.ts +22 -0
- package/dist/components/home/ComponentErrorBoundary.d.ts.map +1 -0
- package/dist/components/home/FeaturedProductsStyle1.d.ts +26 -0
- package/dist/components/home/FeaturedProductsStyle1.d.ts.map +1 -0
- package/dist/components/home/FeaturedProductsStyle2.d.ts +25 -0
- package/dist/components/home/FeaturedProductsStyle2.d.ts.map +1 -0
- package/dist/components/home/FeaturedProductsStyle3.d.ts +20 -0
- package/dist/components/home/FeaturedProductsStyle3.d.ts.map +1 -0
- package/dist/components/home/FixedBanner.d.ts +16 -0
- package/dist/components/home/FixedBanner.d.ts.map +1 -0
- package/dist/components/home/FixedProducts.d.ts +18 -0
- package/dist/components/home/FixedProducts.d.ts.map +1 -0
- package/dist/components/home/HomePageRenderer.d.ts +37 -0
- package/dist/components/home/HomePageRenderer.d.ts.map +1 -0
- package/dist/components/home/ParallaxBackground.d.ts +17 -0
- package/dist/components/home/ParallaxBackground.d.ts.map +1 -0
- package/dist/components/home/PhotosSlider.d.ts +16 -0
- package/dist/components/home/PhotosSlider.d.ts.map +1 -0
- package/dist/components/home/ProductsSlider.d.ts +25 -0
- package/dist/components/home/ProductsSlider.d.ts.map +1 -0
- package/dist/components/home/SquarePhotos.d.ts +21 -0
- package/dist/components/home/SquarePhotos.d.ts.map +1 -0
- package/dist/components/home/StoreFeatures.d.ts +9 -0
- package/dist/components/home/StoreFeatures.d.ts.map +1 -0
- package/dist/components/home/Testimonials.d.ts +15 -0
- package/dist/components/home/Testimonials.d.ts.map +1 -0
- package/dist/components/home/Youtube.d.ts +9 -0
- package/dist/components/home/Youtube.d.ts.map +1 -0
- package/dist/components/home/index.d.ts +9 -0
- package/dist/components/home/index.d.ts.map +1 -0
- package/dist/components/home/index.js +43 -0
- package/dist/components/home/index.js.map +1 -0
- package/dist/components/home/lazy.d.ts +14 -0
- package/dist/components/home/lazy.d.ts.map +1 -0
- package/dist/components/home/register.d.ts +4 -0
- package/dist/components/home/register.d.ts.map +1 -0
- package/dist/components/home/types.d.ts +6 -0
- package/dist/components/home/types.d.ts.map +1 -0
- package/dist/components/layout/Copyright.d.ts +8 -0
- package/dist/components/layout/Copyright.d.ts.map +1 -0
- package/dist/components/layout/CustomerLayout.d.ts +8 -0
- package/dist/components/layout/CustomerLayout.d.ts.map +1 -0
- package/dist/components/layout/Footer.d.ts +2 -0
- package/dist/components/layout/Footer.d.ts.map +1 -0
- package/dist/components/layout/Header.d.ts +7 -0
- package/dist/components/layout/Header.d.ts.map +1 -0
- package/dist/components/layout/MasterLayout.d.ts +3 -0
- package/dist/components/layout/MasterLayout.d.ts.map +1 -0
- package/dist/components/layout/WidgetHead.d.ts +21 -0
- package/dist/components/layout/WidgetHead.d.ts.map +1 -0
- package/dist/components/layout/index.d.ts +5 -0
- package/dist/components/layout/index.d.ts.map +1 -0
- package/dist/components/layout/index.js +25 -0
- package/dist/components/layout/index.js.map +1 -0
- package/dist/components/layout/lazy.d.ts +11 -0
- package/dist/components/layout/lazy.d.ts.map +1 -0
- package/dist/components/layout/types.d.ts +10 -0
- package/dist/components/layout/types.d.ts.map +1 -0
- package/dist/components/modal/ImageModal.d.ts +37 -0
- package/dist/components/modal/ImageModal.d.ts.map +1 -0
- package/dist/components/modal/Modal.d.ts +78 -0
- package/dist/components/modal/Modal.d.ts.map +1 -0
- package/dist/components/modal/index.d.ts +30 -0
- package/dist/components/modal/index.d.ts.map +1 -0
- package/dist/components/modal/index.js +5 -0
- package/dist/components/modal/index.js.map +1 -0
- package/dist/components/modal/lazy.d.ts +7 -0
- package/dist/components/modal/lazy.d.ts.map +1 -0
- package/dist/components/navigation/MainMenu.d.ts +2 -0
- package/dist/components/navigation/MainMenu.d.ts.map +1 -0
- package/dist/components/navigation/MobileMenu.d.ts +6 -0
- package/dist/components/navigation/MobileMenu.d.ts.map +1 -0
- package/dist/components/navigation/index.d.ts +3 -0
- package/dist/components/navigation/index.d.ts.map +1 -0
- package/dist/components/navigation/lazy.d.ts +7 -0
- package/dist/components/navigation/lazy.d.ts.map +1 -0
- package/dist/components/product/AddToCartForm.d.ts +12 -0
- package/dist/components/product/AddToCartForm.d.ts.map +1 -0
- package/dist/components/product/ProductCard.d.ts +16 -0
- package/dist/components/product/ProductCard.d.ts.map +1 -0
- package/dist/components/product/ProductDetails.d.ts +8 -0
- package/dist/components/product/ProductDetails.d.ts.map +1 -0
- package/dist/components/product/ProductGallery.d.ts +7 -0
- package/dist/components/product/ProductGallery.d.ts.map +1 -0
- package/dist/components/product/index.d.ts +8 -0
- package/dist/components/product/index.d.ts.map +1 -0
- package/dist/components/product/index.js +41 -0
- package/dist/components/product/index.js.map +1 -0
- package/dist/components/product/lazy.d.ts +3 -0
- package/dist/components/product/lazy.d.ts.map +1 -0
- package/dist/components/store/StoreClosedNotification.d.ts +17 -0
- package/dist/components/store/StoreClosedNotification.d.ts.map +1 -0
- package/dist/components/store/index.d.ts +3 -0
- package/dist/components/store/index.d.ts.map +1 -0
- package/dist/components/store/lazy.d.ts +3 -0
- package/dist/components/store/lazy.d.ts.map +1 -0
- package/dist/components/toast/Toaster.d.ts +8 -0
- package/dist/components/toast/Toaster.d.ts.map +1 -0
- package/dist/components/toast/index.d.ts +4 -0
- package/dist/components/toast/index.d.ts.map +1 -0
- package/dist/components/toast/index.js +5 -0
- package/dist/components/toast/index.js.map +1 -0
- package/dist/components/toast/types.d.ts +27 -0
- package/dist/components/toast/types.d.ts.map +1 -0
- package/dist/components/toast/useToast.d.ts +5 -0
- package/dist/components/toast/useToast.d.ts.map +1 -0
- package/dist/components/tracking/GoogleTag.d.ts +13 -0
- package/dist/components/tracking/GoogleTag.d.ts.map +1 -0
- package/dist/components/tracking/SiftSnippet.d.ts +16 -0
- package/dist/components/tracking/SiftSnippet.d.ts.map +1 -0
- package/dist/components/tracking/TwilightBundles.d.ts +11 -0
- package/dist/components/tracking/TwilightBundles.d.ts.map +1 -0
- package/dist/components/tracking/index.d.ts +5 -0
- package/dist/components/tracking/index.d.ts.map +1 -0
- package/dist/components/tracking/lazy.d.ts +5 -0
- package/dist/components/tracking/lazy.d.ts.map +1 -0
- package/dist/components/useComponent.d.ts +4 -0
- package/dist/components/useComponent.d.ts.map +1 -0
- package/dist/contexts/CartContext.d.ts +34 -0
- package/dist/contexts/CartContext.d.ts.map +1 -0
- package/dist/contexts/ProductContext.d.ts +34 -0
- package/dist/contexts/ProductContext.d.ts.map +1 -0
- package/dist/contexts/index.d.ts +3 -0
- package/dist/contexts/index.d.ts.map +1 -0
- package/dist/document-class-PLK3HUM6.js +21 -0
- package/dist/document-class-PLK3HUM6.js.map +1 -0
- package/dist/dom/document.d.ts +26 -0
- package/dist/dom/document.d.ts.map +1 -0
- package/dist/dom/index.d.ts +24 -0
- package/dist/dom/index.d.ts.map +1 -0
- package/dist/dom.d.ts +1 -0
- package/dist/dom.js +18 -0
- package/dist/dom.js.map +1 -0
- package/dist/eslint/index.d.ts +17 -0
- package/dist/eslint/index.d.ts.map +1 -0
- package/dist/eslint/index.js +86 -0
- package/dist/eslint/index.js.map +1 -0
- package/dist/hooks/HookRegistry.d.ts +47 -0
- package/dist/hooks/HookRegistry.d.ts.map +1 -0
- package/dist/hooks/HookRegistry.js +4 -0
- package/dist/hooks/HookRegistry.js.map +1 -0
- package/dist/hooks/HookSlot.d.ts +96 -0
- package/dist/hooks/HookSlot.d.ts.map +1 -0
- package/dist/hooks/HookSlot.js +6 -0
- package/dist/hooks/HookSlot.js.map +1 -0
- package/dist/hooks/index.d.ts +27 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +39 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/registerDefaultHooks.d.ts +18 -0
- package/dist/hooks/registerDefaultHooks.d.ts.map +1 -0
- package/dist/hooks/types.d.ts +100 -0
- package/dist/hooks/types.d.ts.map +1 -0
- package/dist/hooks/useAsset.d.ts +26 -0
- package/dist/hooks/useAsset.d.ts.map +1 -0
- package/dist/hooks/useAsset.js +5 -0
- package/dist/hooks/useAsset.js.map +1 -0
- package/dist/hooks/useAsyncFn.d.ts +68 -0
- package/dist/hooks/useAsyncFn.d.ts.map +1 -0
- package/dist/hooks/useAsyncFn.js +4 -0
- package/dist/hooks/useAsyncFn.js.map +1 -0
- package/dist/hooks/useBlogLike.d.ts +7 -0
- package/dist/hooks/useBlogLike.d.ts.map +1 -0
- package/dist/hooks/useBlogLike.js +7 -0
- package/dist/hooks/useBlogLike.js.map +1 -0
- package/dist/hooks/useBreadcrumbs.d.ts +3 -0
- package/dist/hooks/useBreadcrumbs.d.ts.map +1 -0
- package/dist/hooks/useComments.d.ts +36 -0
- package/dist/hooks/useComments.d.ts.map +1 -0
- package/dist/hooks/useComments.js +4 -0
- package/dist/hooks/useComments.js.map +1 -0
- package/dist/hooks/useCoupon.d.ts +66 -0
- package/dist/hooks/useCoupon.d.ts.map +1 -0
- package/dist/hooks/useCoupon.js +5 -0
- package/dist/hooks/useCoupon.js.map +1 -0
- package/dist/hooks/useDate.d.ts +24 -0
- package/dist/hooks/useDate.d.ts.map +1 -0
- package/dist/hooks/useDocumentClass.d.ts +42 -0
- package/dist/hooks/useDocumentClass.d.ts.map +1 -0
- package/dist/hooks/useDocumentClass.js +5 -0
- package/dist/hooks/useDocumentClass.js.map +1 -0
- package/dist/hooks/useGtm.d.ts +38 -0
- package/dist/hooks/useGtm.d.ts.map +1 -0
- package/dist/hooks/useHook.d.ts +24 -0
- package/dist/hooks/useHook.d.ts.map +1 -0
- package/dist/hooks/useHook.js +5 -0
- package/dist/hooks/useHook.js.map +1 -0
- package/dist/hooks/useIsClient.d.ts +7 -0
- package/dist/hooks/useIsClient.d.ts.map +1 -0
- package/dist/hooks/useMoney.d.ts +26 -0
- package/dist/hooks/useMoney.d.ts.map +1 -0
- package/dist/hooks/useMoney.js +39 -0
- package/dist/hooks/useMoney.js.map +1 -0
- package/dist/hooks/useNumber.d.ts +24 -0
- package/dist/hooks/useNumber.d.ts.map +1 -0
- package/dist/hooks/useOpeningHours.d.ts +28 -0
- package/dist/hooks/useOpeningHours.d.ts.map +1 -0
- package/dist/hooks/usePageConfig.d.ts +44 -0
- package/dist/hooks/usePageConfig.d.ts.map +1 -0
- package/dist/hooks/useProduct.d.ts +47 -0
- package/dist/hooks/useProduct.d.ts.map +1 -0
- package/dist/hooks/useProduct.js +4 -0
- package/dist/hooks/useProduct.js.map +1 -0
- package/dist/hooks/useStore.d.ts +36 -0
- package/dist/hooks/useStore.d.ts.map +1 -0
- package/dist/hooks/useStore.js +39 -0
- package/dist/hooks/useStore.js.map +1 -0
- package/dist/hooks/useTheme.d.ts +41 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/hooks/useTheme.js +5 -0
- package/dist/hooks/useTheme.js.map +1 -0
- package/dist/hooks/useUser.d.ts +8 -0
- package/dist/hooks/useUser.d.ts.map +1 -0
- package/dist/hooks/useUser.js +9 -0
- package/dist/hooks/useUser.js.map +1 -0
- package/dist/hooks/useWishlist.d.ts +5 -0
- package/dist/hooks/useWishlist.d.ts.map +1 -0
- package/dist/hooks/useWishlist.js +5 -0
- package/dist/hooks/useWishlist.js.map +1 -0
- package/dist/i18n.d.ts +1 -0
- package/dist/i18n.js +5 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +83 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/analytics/gtm.d.ts +38 -0
- package/dist/lib/analytics/gtm.d.ts.map +1 -0
- package/dist/lib/services/index.d.ts +1 -0
- package/dist/lib/services/index.d.ts.map +1 -0
- package/dist/navigation-N4H65RUN.js +17 -0
- package/dist/navigation-N4H65RUN.js.map +1 -0
- package/dist/navigation-YCYHW4MK.js +10 -0
- package/dist/navigation-YCYHW4MK.js.map +1 -0
- package/dist/nextjs/document-class.d.ts +92 -0
- package/dist/nextjs/document-class.d.ts.map +1 -0
- package/dist/nextjs/head.d.ts +36 -0
- package/dist/nextjs/head.d.ts.map +1 -0
- package/dist/nextjs/index.d.ts +29 -0
- package/dist/nextjs/index.d.ts.map +1 -0
- package/dist/nextjs/link.d.ts +14 -0
- package/dist/nextjs/link.d.ts.map +1 -0
- package/dist/nextjs/navigation.d.ts +9 -0
- package/dist/nextjs/navigation.d.ts.map +1 -0
- package/dist/nextjs/router.d.ts +15 -0
- package/dist/nextjs/router.d.ts.map +1 -0
- package/dist/nextjs.d.ts +1 -0
- package/dist/nextjs.js +22 -0
- package/dist/nextjs.js.map +1 -0
- package/dist/not-found-BJ3VK5VJ.js +69 -0
- package/dist/not-found-BJ3VK5VJ.js.map +1 -0
- package/dist/providers/DocumentClassProvider.d.ts +56 -0
- package/dist/providers/DocumentClassProvider.d.ts.map +1 -0
- package/dist/providers/DocumentSyncRegistry.d.ts +20 -0
- package/dist/providers/DocumentSyncRegistry.d.ts.map +1 -0
- package/dist/providers/LinkProvider.d.ts +34 -0
- package/dist/providers/LinkProvider.d.ts.map +1 -0
- package/dist/providers/NavigationProvider.d.ts +223 -0
- package/dist/providers/NavigationProvider.d.ts.map +1 -0
- package/dist/providers/TwilightProvider.d.ts +7 -0
- package/dist/providers/TwilightProvider.d.ts.map +1 -0
- package/dist/providers/i18n-factory.d.ts +17 -0
- package/dist/providers/i18n-factory.d.ts.map +1 -0
- package/dist/providers/i18n.d.ts +31 -0
- package/dist/providers/i18n.d.ts.map +1 -0
- package/dist/providers/index.d.ts +6 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/locale-constants.d.ts +17 -0
- package/dist/providers/locale-constants.d.ts.map +1 -0
- package/dist/providers/salla-sdk.types.d.ts +352 -0
- package/dist/providers/salla-sdk.types.d.ts.map +1 -0
- package/dist/providers/twilight-context.d.ts +4 -0
- package/dist/providers/twilight-context.d.ts.map +1 -0
- package/dist/providers/twilight-init.d.ts +24 -0
- package/dist/providers/twilight-init.d.ts.map +1 -0
- package/dist/providers/twilight-theme.d.ts +9 -0
- package/dist/providers/twilight-theme.d.ts.map +1 -0
- package/dist/providers/twilight.types.d.ts +95 -0
- package/dist/providers/twilight.types.d.ts.map +1 -0
- package/dist/router/context.d.ts +3 -0
- package/dist/router/context.d.ts.map +1 -0
- package/dist/router/index.d.ts +4 -0
- package/dist/router/index.d.ts.map +1 -0
- package/dist/router/route-ids.d.ts +37 -0
- package/dist/router/route-ids.d.ts.map +1 -0
- package/dist/routes/account/index.d.ts +8 -0
- package/dist/routes/account/index.d.ts.map +1 -0
- package/dist/routes/account/notifications/NotificationsPage.d.ts +3 -0
- package/dist/routes/account/notifications/NotificationsPage.d.ts.map +1 -0
- package/dist/routes/account/notifications/index.d.ts +17 -0
- package/dist/routes/account/notifications/index.d.ts.map +1 -0
- package/dist/routes/account/notifications/loader.d.ts +5 -0
- package/dist/routes/account/notifications/loader.d.ts.map +1 -0
- package/dist/routes/account/notifications/types.d.ts +17 -0
- package/dist/routes/account/notifications/types.d.ts.map +1 -0
- package/dist/routes/account/orders/OrderSinglePage.d.ts +3 -0
- package/dist/routes/account/orders/OrderSinglePage.d.ts.map +1 -0
- package/dist/routes/account/orders/OrdersPage.d.ts +3 -0
- package/dist/routes/account/orders/OrdersPage.d.ts.map +1 -0
- package/dist/routes/account/orders/index.d.ts +35 -0
- package/dist/routes/account/orders/index.d.ts.map +1 -0
- package/dist/routes/account/orders/loader.d.ts +11 -0
- package/dist/routes/account/orders/loader.d.ts.map +1 -0
- package/dist/routes/account/orders/types.d.ts +22 -0
- package/dist/routes/account/orders/types.d.ts.map +1 -0
- package/dist/routes/account/orders.d.ts +1 -0
- package/dist/routes/account/orders.js +42 -0
- package/dist/routes/account/orders.js.map +1 -0
- package/dist/routes/account/profile/ProfilePage.d.ts +3 -0
- package/dist/routes/account/profile/ProfilePage.d.ts.map +1 -0
- package/dist/routes/account/profile/index.d.ts +17 -0
- package/dist/routes/account/profile/index.d.ts.map +1 -0
- package/dist/routes/account/profile/loader.d.ts +5 -0
- package/dist/routes/account/profile/loader.d.ts.map +1 -0
- package/dist/routes/account/profile/types.d.ts +5 -0
- package/dist/routes/account/profile/types.d.ts.map +1 -0
- package/dist/routes/account/settings/SettingsPage.d.ts +3 -0
- package/dist/routes/account/settings/SettingsPage.d.ts.map +1 -0
- package/dist/routes/account/settings/index.d.ts +17 -0
- package/dist/routes/account/settings/index.d.ts.map +1 -0
- package/dist/routes/account/settings/loader.d.ts +5 -0
- package/dist/routes/account/settings/loader.d.ts.map +1 -0
- package/dist/routes/account/settings/types.d.ts +5 -0
- package/dist/routes/account/settings/types.d.ts.map +1 -0
- package/dist/routes/account/types.d.ts +300 -0
- package/dist/routes/account/types.d.ts.map +1 -0
- package/dist/routes/account/wallet/WalletPage.d.ts +3 -0
- package/dist/routes/account/wallet/WalletPage.d.ts.map +1 -0
- package/dist/routes/account/wallet/index.d.ts +16 -0
- package/dist/routes/account/wallet/index.d.ts.map +1 -0
- package/dist/routes/account/wallet/loader.d.ts +4 -0
- package/dist/routes/account/wallet/loader.d.ts.map +1 -0
- package/dist/routes/account/wallet/types.d.ts +11 -0
- package/dist/routes/account/wallet/types.d.ts.map +1 -0
- package/dist/routes/account/wishlist/WishlistPage.d.ts +3 -0
- package/dist/routes/account/wishlist/WishlistPage.d.ts.map +1 -0
- package/dist/routes/account/wishlist/index.d.ts +16 -0
- package/dist/routes/account/wishlist/index.d.ts.map +1 -0
- package/dist/routes/account/wishlist/loader.d.ts +4 -0
- package/dist/routes/account/wishlist/loader.d.ts.map +1 -0
- package/dist/routes/account/wishlist/types.d.ts +9 -0
- package/dist/routes/account/wishlist/types.d.ts.map +1 -0
- package/dist/routes/account.d.ts +1 -0
- package/dist/routes/account.js +253 -0
- package/dist/routes/account.js.map +1 -0
- package/dist/routes/blog/BlogAuthorPage.d.ts +3 -0
- package/dist/routes/blog/BlogAuthorPage.d.ts.map +1 -0
- package/dist/routes/blog/BlogCategoryPage.d.ts +3 -0
- package/dist/routes/blog/BlogCategoryPage.d.ts.map +1 -0
- package/dist/routes/blog/BlogPage.d.ts +3 -0
- package/dist/routes/blog/BlogPage.d.ts.map +1 -0
- package/dist/routes/blog/BlogSinglePage.d.ts +3 -0
- package/dist/routes/blog/BlogSinglePage.d.ts.map +1 -0
- package/dist/routes/blog/BlogTagPage.d.ts +3 -0
- package/dist/routes/blog/BlogTagPage.d.ts.map +1 -0
- package/dist/routes/blog/components.d.ts +14 -0
- package/dist/routes/blog/components.d.ts.map +1 -0
- package/dist/routes/blog/index.d.ts +76 -0
- package/dist/routes/blog/index.d.ts.map +1 -0
- package/dist/routes/blog/loader.d.ts +16 -0
- package/dist/routes/blog/loader.d.ts.map +1 -0
- package/dist/routes/blog/types.d.ts +92 -0
- package/dist/routes/blog/types.d.ts.map +1 -0
- package/dist/routes/blog.d.ts +1 -0
- package/dist/routes/blog.js +303 -0
- package/dist/routes/blog.js.map +1 -0
- package/dist/routes/brands/BrandsPage.d.ts +5 -0
- package/dist/routes/brands/BrandsPage.d.ts.map +1 -0
- package/dist/routes/brands/index.d.ts +20 -0
- package/dist/routes/brands/index.d.ts.map +1 -0
- package/dist/routes/brands/loader.d.ts +3 -0
- package/dist/routes/brands/loader.d.ts.map +1 -0
- package/dist/routes/brands/types.d.ts +32 -0
- package/dist/routes/brands/types.d.ts.map +1 -0
- package/dist/routes/brands.d.ts +1 -0
- package/dist/routes/brands.js +92 -0
- package/dist/routes/brands.js.map +1 -0
- package/dist/routes/cart/CartPage.d.ts +3 -0
- package/dist/routes/cart/CartPage.d.ts.map +1 -0
- package/dist/routes/cart/index.d.ts +20 -0
- package/dist/routes/cart/index.d.ts.map +1 -0
- package/dist/routes/cart/loader.d.ts +8 -0
- package/dist/routes/cart/loader.d.ts.map +1 -0
- package/dist/routes/cart/types.d.ts +6 -0
- package/dist/routes/cart/types.d.ts.map +1 -0
- package/dist/routes/cart.d.ts +1 -0
- package/dist/routes/cart.js +168 -0
- package/dist/routes/cart.js.map +1 -0
- package/dist/routes/home/HomePage.d.ts +5 -0
- package/dist/routes/home/HomePage.d.ts.map +1 -0
- package/dist/routes/home/index.d.ts +22 -0
- package/dist/routes/home/index.d.ts.map +1 -0
- package/dist/routes/home/loader.d.ts +12 -0
- package/dist/routes/home/loader.d.ts.map +1 -0
- package/dist/routes/home/types.d.ts +10 -0
- package/dist/routes/home/types.d.ts.map +1 -0
- package/dist/routes/home.d.ts +1 -0
- package/dist/routes/home.js +46 -0
- package/dist/routes/home.js.map +1 -0
- package/dist/routes/index.d.ts +20 -0
- package/dist/routes/index.d.ts.map +1 -0
- package/dist/routes/index.js +40 -0
- package/dist/routes/index.js.map +1 -0
- package/dist/routes/lazy.d.ts +23 -0
- package/dist/routes/lazy.d.ts.map +1 -0
- package/dist/routes/loyalty/LoyaltyPage.d.ts +3 -0
- package/dist/routes/loyalty/LoyaltyPage.d.ts.map +1 -0
- package/dist/routes/loyalty/index.d.ts +19 -0
- package/dist/routes/loyalty/index.d.ts.map +1 -0
- package/dist/routes/loyalty/loader.d.ts +3 -0
- package/dist/routes/loyalty/loader.d.ts.map +1 -0
- package/dist/routes/loyalty/types.d.ts +96 -0
- package/dist/routes/loyalty/types.d.ts.map +1 -0
- package/dist/routes/loyalty.d.ts +1 -0
- package/dist/routes/loyalty.js +73 -0
- package/dist/routes/loyalty.js.map +1 -0
- package/dist/routes/not-found.d.ts +15 -0
- package/dist/routes/not-found.d.ts.map +1 -0
- package/dist/routes/page/PageSingle.d.ts +3 -0
- package/dist/routes/page/PageSingle.d.ts.map +1 -0
- package/dist/routes/page/index.d.ts +21 -0
- package/dist/routes/page/index.d.ts.map +1 -0
- package/dist/routes/page/loader.d.ts +6 -0
- package/dist/routes/page/loader.d.ts.map +1 -0
- package/dist/routes/page/types.d.ts +32 -0
- package/dist/routes/page/types.d.ts.map +1 -0
- package/dist/routes/page.d.ts +1 -0
- package/dist/routes/page.js +97 -0
- package/dist/routes/page.js.map +1 -0
- package/dist/routes/product/ProductPage.d.ts +3 -0
- package/dist/routes/product/ProductPage.d.ts.map +1 -0
- package/dist/routes/product/index.d.ts +21 -0
- package/dist/routes/product/index.d.ts.map +1 -0
- package/dist/routes/product/loader.d.ts +6 -0
- package/dist/routes/product/loader.d.ts.map +1 -0
- package/dist/routes/product/types.d.ts +6 -0
- package/dist/routes/product/types.d.ts.map +1 -0
- package/dist/routes/product-listing/ProductListPage.d.ts +13 -0
- package/dist/routes/product-listing/ProductListPage.d.ts.map +1 -0
- package/dist/routes/product-listing/index.d.ts +16 -0
- package/dist/routes/product-listing/index.d.ts.map +1 -0
- package/dist/routes/product-listing/loader.d.ts +3 -0
- package/dist/routes/product-listing/loader.d.ts.map +1 -0
- package/dist/routes/product-listing/types.d.ts +71 -0
- package/dist/routes/product-listing/types.d.ts.map +1 -0
- package/dist/routes/product-listing.d.ts +1 -0
- package/dist/routes/product-listing.js +516 -0
- package/dist/routes/product-listing.js.map +1 -0
- package/dist/routes/product.d.ts +1 -0
- package/dist/routes/product.js +225 -0
- package/dist/routes/product.js.map +1 -0
- package/dist/routes/root/beforeLoad.d.ts +21 -0
- package/dist/routes/root/beforeLoad.d.ts.map +1 -0
- package/dist/routes/root/head.d.ts +5 -0
- package/dist/routes/root/head.d.ts.map +1 -0
- package/dist/routes/root/index.d.ts +3 -0
- package/dist/routes/root/index.d.ts.map +1 -0
- package/dist/routes/seo-redirects.d.ts +19 -0
- package/dist/routes/seo-redirects.d.ts.map +1 -0
- package/dist/routes/seo-redirects.js +40 -0
- package/dist/routes/seo-redirects.js.map +1 -0
- package/dist/routes/testimonials/TestimonialsPage.d.ts +3 -0
- package/dist/routes/testimonials/TestimonialsPage.d.ts.map +1 -0
- package/dist/routes/testimonials/index.d.ts +19 -0
- package/dist/routes/testimonials/index.d.ts.map +1 -0
- package/dist/routes/testimonials/loader.d.ts +5 -0
- package/dist/routes/testimonials/loader.d.ts.map +1 -0
- package/dist/routes/testimonials/types.d.ts +5 -0
- package/dist/routes/testimonials/types.d.ts.map +1 -0
- package/dist/routes/testimonials.d.ts +1 -0
- package/dist/routes/testimonials.js +49 -0
- package/dist/routes/testimonials.js.map +1 -0
- package/dist/routes/thank-you/ThankYouPage.d.ts +3 -0
- package/dist/routes/thank-you/ThankYouPage.d.ts.map +1 -0
- package/dist/routes/thank-you/index.d.ts +20 -0
- package/dist/routes/thank-you/index.d.ts.map +1 -0
- package/dist/routes/thank-you/loader.d.ts +5 -0
- package/dist/routes/thank-you/loader.d.ts.map +1 -0
- package/dist/routes/thank-you/types.d.ts +14 -0
- package/dist/routes/thank-you/types.d.ts.map +1 -0
- package/dist/routes/thank-you.d.ts +1 -0
- package/dist/routes/thank-you.js +95 -0
- package/dist/routes/thank-you.js.map +1 -0
- package/dist/routes/types.d.ts +36 -0
- package/dist/routes/types.d.ts.map +1 -0
- package/dist/sentry/client.d.ts +6 -0
- package/dist/sentry/client.d.ts.map +1 -0
- package/dist/sentry/client.js +17 -0
- package/dist/sentry/client.js.map +1 -0
- package/dist/sentry/server.d.ts +10 -0
- package/dist/sentry/server.d.ts.map +1 -0
- package/dist/sentry/server.js +16 -0
- package/dist/sentry/server.js.map +1 -0
- package/dist/skeleton.d.ts +4 -0
- package/dist/skeleton.d.ts.map +1 -0
- package/dist/skeleton.js +47 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/tanstack/document-class.d.ts +44 -0
- package/dist/tanstack/document-class.d.ts.map +1 -0
- package/dist/tanstack/head.d.ts +24 -0
- package/dist/tanstack/head.d.ts.map +1 -0
- package/dist/tanstack/index.d.ts +28 -0
- package/dist/tanstack/index.d.ts.map +1 -0
- package/dist/tanstack/link.d.ts +18 -0
- package/dist/tanstack/link.d.ts.map +1 -0
- package/dist/tanstack/middleware/earlyHints.d.ts +3 -0
- package/dist/tanstack/middleware/earlyHints.d.ts.map +1 -0
- package/dist/tanstack/middleware/twilight.d.ts +7 -0
- package/dist/tanstack/middleware/twilight.d.ts.map +1 -0
- package/dist/tanstack/navigation.d.ts +13 -0
- package/dist/tanstack/navigation.d.ts.map +1 -0
- package/dist/tanstack/router.d.ts +85 -0
- package/dist/tanstack/router.d.ts.map +1 -0
- package/dist/tanstack/templates/account-layout.d.ts +8 -0
- package/dist/tanstack/templates/account-layout.d.ts.map +1 -0
- package/dist/tanstack/templates/index.d.ts +4 -0
- package/dist/tanstack/templates/index.d.ts.map +1 -0
- package/dist/tanstack/templates/locale-wrapper.d.ts +15 -0
- package/dist/tanstack/templates/locale-wrapper.d.ts.map +1 -0
- package/dist/tanstack/templates/redirect.d.ts +6 -0
- package/dist/tanstack/templates/redirect.d.ts.map +1 -0
- package/dist/tanstack.d.ts +1 -0
- package/dist/tanstack.js +137 -0
- package/dist/tanstack.js.map +1 -0
- package/dist/twilight/context.d.ts +46 -0
- package/dist/twilight/context.d.ts.map +1 -0
- package/dist/twilight/index.d.ts +3 -0
- package/dist/twilight/index.d.ts.map +1 -0
- package/dist/types/hooks.d.ts +58 -0
- package/dist/types/hooks.d.ts.map +1 -0
- package/dist/types/index.d.ts +724 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/apply-theme.d.ts +3 -0
- package/dist/utils/apply-theme.d.ts.map +1 -0
- package/dist/utils/asset.d.ts +27 -0
- package/dist/utils/asset.d.ts.map +1 -0
- package/dist/utils/baseHead.d.ts +23 -0
- package/dist/utils/baseHead.d.ts.map +1 -0
- package/dist/utils/baseHead.js +5 -0
- package/dist/utils/baseHead.js.map +1 -0
- package/dist/utils/breadcrumb.d.ts +5 -0
- package/dist/utils/breadcrumb.d.ts.map +1 -0
- package/dist/utils/cdn-image.d.ts +5 -0
- package/dist/utils/cdn-image.d.ts.map +1 -0
- package/dist/utils/color.d.ts +34 -0
- package/dist/utils/color.d.ts.map +1 -0
- package/dist/utils/cookies.d.ts +16 -0
- package/dist/utils/cookies.d.ts.map +1 -0
- package/dist/utils/device.d.ts +19 -0
- package/dist/utils/device.d.ts.map +1 -0
- package/dist/utils/document-class.d.ts +67 -0
- package/dist/utils/document-class.d.ts.map +1 -0
- package/dist/utils/errors.d.ts +4 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/head.d.ts +100 -0
- package/dist/utils/head.d.ts.map +1 -0
- package/dist/utils/head.js +4 -0
- package/dist/utils/head.js.map +1 -0
- package/dist/utils/index.d.ts +22 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +15 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/number.d.ts +21 -0
- package/dist/utils/number.d.ts.map +1 -0
- package/dist/utils/salla-plural.d.ts +14 -0
- package/dist/utils/salla-plural.d.ts.map +1 -0
- package/dist/utils/sanitize.d.ts +2 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sdk-events.d.ts +25 -0
- package/dist/utils/sdk-events.d.ts.map +1 -0
- package/dist/utils/sdk-helpers.d.ts +30 -0
- package/dist/utils/sdk-helpers.d.ts.map +1 -0
- package/dist/utils/sort-options.d.ts +8 -0
- package/dist/utils/sort-options.d.ts.map +1 -0
- package/dist/vite/adapters/index.d.ts +18 -0
- package/dist/vite/adapters/index.d.ts.map +1 -0
- package/dist/vite/adapters/nextjs.adapter.d.ts +12 -0
- package/dist/vite/adapters/nextjs.adapter.d.ts.map +1 -0
- package/dist/vite/adapters/tanstack.adapter.d.ts +71 -0
- package/dist/vite/adapters/tanstack.adapter.d.ts.map +1 -0
- package/dist/vite/index.d.ts +6 -0
- package/dist/vite/index.d.ts.map +1 -0
- package/dist/vite/index.js +2193 -0
- package/dist/vite/index.js.map +1 -0
- package/dist/vite/plugins/best-practices/best-practices.plugin.d.ts +4 -0
- package/dist/vite/plugins/best-practices/best-practices.plugin.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/hooks-registry.d.ts +27 -0
- package/dist/vite/plugins/best-practices/hooks-registry.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/reporter.d.ts +4 -0
- package/dist/vite/plugins/best-practices/reporter.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/rules/index.d.ts +4 -0
- package/dist/vite/plugins/best-practices/rules/index.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/rules/no-deep-component-import.d.ts +3 -0
- package/dist/vite/plugins/best-practices/rules/no-deep-component-import.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/rules/no-direct-product-card-import.d.ts +3 -0
- package/dist/vite/plugins/best-practices/rules/no-direct-product-card-import.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/rules/no-img-without-dimensions.d.ts +3 -0
- package/dist/vite/plugins/best-practices/rules/no-img-without-dimensions.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/rules/no-manual-dom.d.ts +3 -0
- package/dist/vite/plugins/best-practices/rules/no-manual-dom.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/rules/no-window-location-reload.d.ts +3 -0
- package/dist/vite/plugins/best-practices/rules/no-window-location-reload.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/rules/require-page-hooks.d.ts +16 -0
- package/dist/vite/plugins/best-practices/rules/require-page-hooks.d.ts.map +1 -0
- package/dist/vite/plugins/best-practices/types.d.ts +34 -0
- package/dist/vite/plugins/best-practices/types.d.ts.map +1 -0
- package/dist/vite/plugins/package-aliases.plugin.d.ts +3 -0
- package/dist/vite/plugins/package-aliases.plugin.d.ts.map +1 -0
- package/dist/vite/plugins/salla-hydration.plugin.d.ts +12 -0
- package/dist/vite/plugins/salla-hydration.plugin.d.ts.map +1 -0
- package/dist/vite/plugins/theme-translations.plugin.d.ts +20 -0
- package/dist/vite/plugins/theme-translations.plugin.d.ts.map +1 -0
- package/dist/vite/twilight-react.d.ts +22 -0
- package/dist/vite/twilight-react.d.ts.map +1 -0
- package/dist/vite/types.d.ts +110 -0
- package/dist/vite/types.d.ts.map +1 -0
- package/package.json +474 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/providers/NavigationProvider.ts"],"names":[],"mappings":"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","file":"chunk-GO34DE35.js","sourcesContent":["import {\n createElement,\n createContext,\n useContext,\n lazy,\n useCallback,\n useRef,\n useEffect,\n useSyncExternalStore,\n type ReactNode,\n type LazyExoticComponent,\n type FC,\n} from 'react';\nimport { useTwilight } from './twilight-context';\nimport { getTwilightContext, subscribeTwilight, type TwilightLocation } from '../twilight/context';\nimport { RouteId } from '../router/route-ids';\n\n// Re-export RouteId from centralized location\nexport { RouteId } from '../router/route-ids';\nexport type { RouteIdType } from '../router/route-ids';\n\n// Re-export TwilightLocation as Location for convenience\nexport type { TwilightLocation as Location } from '../twilight/context';\n\nexport type NavigateOptions = { replace?: boolean };\nexport type NavigateFn = (to: string, opts?: NavigateOptions) => void;\n\n/** Redirect error - thrown to trigger a redirect */\nexport class RedirectError extends Error {\n constructor(\n public path: string,\n public replace = false\n ) {\n super(`Redirect to ${path}`);\n this.name = 'RedirectError';\n }\n}\n\n/** NotFound error - thrown to trigger 404 */\nexport class NotFoundError extends Error {\n constructor(message?: string) {\n super(message ?? 'Not Found');\n this.name = 'NotFoundError';\n }\n}\n\n/** Unauthorized error - thrown to trigger 401 */\nexport class UnauthorizedError extends Error {\n constructor(message?: string) {\n super(message ?? 'Unauthorized');\n this.name = 'UnauthorizedError';\n }\n}\n\nexport { SettingsError } from '../utils/errors';\n\nexport const defaultNavigate: NavigateFn = (to, opts) => {\n if (opts?.replace) window.location.replace(to);\n else window.location.href = to;\n};\n\n/** Default redirect - throws RedirectError with browser navigation as fallback */\nexport const defaultRedirect = (path: string, opts?: { replace?: boolean }): never => {\n const replace = opts?.replace ?? false;\n\n // In browser, perform actual navigation before throwing\n if (typeof window !== 'undefined') {\n if (replace) window.location.replace(path);\n else window.location.href = path;\n }\n\n throw new RedirectError(path, replace);\n};\n\n/** Default notFound - throws generic error */\nexport const defaultNotFound = (message?: string): never => {\n throw new NotFoundError(message);\n};\n\n/** Default unauthorized - throws generic error */\nexport const defaultUnauthorized = (message?: string): never => {\n throw new UnauthorizedError(message);\n};\n\n// ─── Framework-agnostic functions for loaders (outside React context) ──────\n\n/**\n * Throw a notFound error. Use in route loaders.\n * Framework adapters will override this to throw framework-specific errors.\n *\n * @example\n * ```ts\n * // In loader\n * import { notFound } from '@salla.sa/twilight-theme-engine/providers';\n *\n * if (!data) throw notFound();\n * ```\n */\nexport let notFound = defaultNotFound;\n\n/**\n * Throw an unauthorized error. Use in route loaders to protect authenticated routes.\n * Framework adapters will override this to throw framework-specific errors.\n *\n * @example\n * ```ts\n * import { unauthorized } from '@salla.sa/twilight-theme-engine/providers';\n *\n * if (!user) throw unauthorized();\n * ```\n */\nexport let unauthorized = defaultUnauthorized;\n\n/**\n * Throw a redirect. Use in route loaders.\n * Framework adapters will override this to throw framework-specific redirects.\n *\n * @param path - Path to redirect to\n * @param opts - Redirect options\n *\n * @example\n * ```ts\n * // In loader\n * import { redirect } from '@salla.sa/twilight-theme-engine/providers';\n *\n * throw redirect('/ar/cart');\n * ```\n */\nexport let redirect = defaultRedirect;\n\n/**\n * Configure navigation functions for a specific framework.\n * Called by framework adapters during setup.\n */\nexport function configureNavigation(config: {\n notFound?: (message?: string) => never;\n redirect?: (path: string, opts?: { replace?: boolean }) => never;\n unauthorized?: (_message?: string) => never;\n}): void {\n if (config.notFound) notFound = config.notFound;\n if (config.redirect) redirect = config.redirect;\n if (config.unauthorized) unauthorized = config.unauthorized;\n}\n\n// ─── Loader Error Handling Helpers ─────────────────────────────────────────────\n\n/**\n * Wraps an API promise with error handling for route loaders.\n * On any error, logs debug info and throws notFound() for clean UX.\n *\n * @example\n * ```ts\n * findOrThrow: (id, locale) => orThrow(product.find(id, locale)),\n * const data = await product.findOrThrow(id, locale);\n * ```\n */\nexport async function orThrow<T>(promise: Promise<T>): Promise<T> {\n try {\n return await promise;\n } catch (error) {\n console.debug('[loader error]', error);\n throw new NotFoundError();\n }\n}\n\n/**\n * Wraps an API promise with error handling for authenticated route loaders.\n * On a 401/403 response throws unauthorized(); other errors propagate.\n *\n * @example\n * ```ts\n * const data = await orUnauthorized(order.find(id, locale));\n * ```\n */\nexport async function orUnauthorized<T>(promise: Promise<T>): Promise<T> {\n try {\n return await promise;\n } catch (error) {\n const status = (error as unknown as { response?: { status?: number } })?.response?.status;\n if (status === 401 || status === 403) {\n throw unauthorized();\n }\n throw error;\n }\n}\n\n// ─── Navigation Context ──────────────────────────────────────────────────────\n\ninterface NavigationContextValue {\n navigate: NavigateFn;\n}\n\nconst NavigationContext = createContext<NavigationContextValue>({\n navigate: defaultNavigate,\n});\n\nexport function NavigationProvider({\n navigate,\n children,\n}: {\n navigate: NavigateFn;\n children: ReactNode;\n}) {\n return createElement(NavigationContext.Provider, { value: { navigate } }, children);\n}\n\n// ─── Primary Hooks (High Compatibility) ───────────────────────────────────────\n\n/**\n * Get the navigate function.\n * Matches React Router, TanStack Router, and Remix naming convention.\n *\n * @returns Navigate function\n *\n * @example\n * ```tsx\n * const navigate = useNavigate();\n * navigate('/cart');\n * navigate('/cart', { replace: true });\n * ```\n */\nexport function useNavigate(): NavigateFn {\n return useContext(NavigationContext).navigate;\n}\n\n/**\n * Get the current route ID.\n * Used for route detection (isHome, isProduct, etc.)\n *\n * @returns Current route ID string\n *\n * @example\n * ```tsx\n * const routeId = useRouteId();\n * if (routeId === RouteId.INDEX) { ... }\n * ```\n */\nexport function useRouteId(): string {\n return useSyncExternalStore(\n subscribeTwilight,\n () => getTwilightContext().routeId,\n () => getTwilightContext().routeId\n );\n}\n\n/**\n * Get the current location (TanStack Router compatible).\n * Reads from the router context for SSR compatibility.\n *\n * @returns Location object matching TanStack's ParsedLocation\n *\n * @example\n * ```tsx\n * const location = useLocation();\n * console.log(location.pathname); // '/ar/products'\n * console.log(location.searchStr); // '?q=shoes&page=2'\n * console.log(location.search); // { q: 'shoes', page: '2' }\n * console.log(location.href); // 'https://store.com/ar/products?q=shoes'\n * console.log(location.hash); // '#section-1'\n * console.log(location.state); // { scrollY: 100 }\n * ```\n */\nexport function useLocation<TSearch = Record<string, unknown>>(): TwilightLocation<TSearch> {\n useTwilight();\n return getTwilightContext().location as TwilightLocation<TSearch>;\n}\n\n// ─── Selector Hooks ───────────────────────────────────────────────────────────\n\n/**\n * Check if current page is homepage */\nexport function useIsHome(): boolean {\n return useRouteId() === RouteId.INDEX;\n}\n\n/** Check if current page is product detail */\nexport function useIsProduct(): boolean {\n return useRouteId() === RouteId.PRODUCT_SINGLE;\n}\n\n/** Check if current page is cart */\nexport function useIsCart(): boolean {\n return useRouteId() === RouteId.CART;\n}\n\n/** Check if current page is in customer area */\nexport function useIsCustomer(): boolean {\n return useRouteId().startsWith('customer');\n}\n\n/** Check if current page is blog related */\nexport function useIsBlog(): boolean {\n const routeId = useRouteId();\n return routeId === RouteId.BLOG_INDEX || routeId === RouteId.BLOG_SINGLE;\n}\n\n/** Check if current page is brands related */\nexport function useIsBrands(): boolean {\n const routeId = useRouteId();\n return routeId === RouteId.BRANDS_INDEX || routeId === RouteId.BRANDS_SINGLE;\n}\n\n/** Check if current page is search */\nexport function useIsSearch(): boolean {\n return useRouteId() === RouteId.SEARCH;\n}\n\n// ─── Navigation Interceptor ──────────────────────────────────────────────────\n\n/**\n * NavigationInterceptor - Framework-agnostic SPA navigation interceptor.\n *\n * Uses navigate function from NavigationProvider context and store URL\n * from TwilightProvider to intercept same-origin navigations.\n */\nexport function NavigationInterceptor(): null {\n const navigate = useNavigate();\n const { store } = useTwilight();\n useNavigationInterceptor(navigate, store?.url);\n return null;\n}\n\n/**\n * resolveRelativePath - Resolve href to store-relative path\n *\n * Returns `null` when the URL is not on the same origin as the store,\n * keeping this helper safe against open-redirect misuse.\n *\n * @param href - The URL to resolve\n * @param storeUrl - The store's base URL\n * @returns The relative path string, or null if the URL is external\n */\nexport function resolveRelativePath(href: string, storeUrl: string): string | null {\n try {\n const target = new URL(href, window.location.href);\n const base = new URL(storeUrl);\n\n if (target.origin !== base.origin) return null;\n\n const path = target.pathname + target.search + target.hash;\n return path || '/';\n } catch {\n return null;\n }\n}\n\n/**\n * EXTERNAL_TARGETS - Target attribute values that indicate external navigation\n */\nconst EXTERNAL_TARGETS = new Set(['_blank', '_parent', '_top']);\n\n/**\n * shouldIntercept - Determine if an anchor click should be intercepted by SPA router\n *\n * Follows browser conventions: modifier keys, external targets, downloads,\n * and non-HTTP(S) protocols are left to the browser's default behavior.\n *\n * @param anchor - The anchor element that was clicked\n * @param event - The click event\n * @returns true if the click should be intercepted by the router\n */\nexport function shouldIntercept(anchor: HTMLAnchorElement, event: MouseEvent): boolean {\n if (event.defaultPrevented) return false;\n\n if (event.metaKey || event.ctrlKey || event.shiftKey || event.altKey) return false;\n\n const targetAttr = anchor.getAttribute('target');\n if (targetAttr && EXTERNAL_TARGETS.has(targetAttr)) return false;\n\n if (anchor.hasAttribute('download')) return false;\n\n const rel = (anchor.getAttribute('rel') ?? '').split(/\\s+/);\n if (rel.includes('external')) return false;\n\n const href = anchor.getAttribute('href') ?? '';\n if (!href) return false;\n\n try {\n const url = new URL(href, window.location.href);\n if (url.protocol.startsWith('javascript:')) return false;\n } catch {\n return false;\n }\n\n return true;\n}\n\n// ─── Navigation Interceptor Hook (framework-agnostic) ─────────────────────────\n\n/**\n * Hook for navigation interception using framework-agnostic navigate function.\n * Framework adapters call this with their navigate implementation.\n */\nexport function useNavigationInterceptor(navigate: NavigateFn, storeUrl: string | undefined): void {\n const storeUrlRef = useRef<string | undefined>(storeUrl);\n\n useEffect(() => {\n storeUrlRef.current = storeUrl;\n }, [storeUrl]);\n\n const tryNavigate = useCallback(\n (href: string, replace = false): boolean => {\n const currentStoreUrl = storeUrlRef.current;\n if (!currentStoreUrl) return false;\n\n const relativePath = resolveRelativePath(href, currentStoreUrl);\n if (!relativePath) return false;\n\n navigate(relativePath, { replace });\n return true;\n },\n [navigate]\n );\n\n useEffect(() => {\n // ── Pointer movement tracking ────────────────────────────────────────────\n // Detect drag/scroll gestures to avoid intercepting clicks from swipes.\n let pointerStartX = 0;\n let pointerStartY = 0;\n let pointerSwiped = false;\n const MOVE_THRESHOLD = 10;\n\n function handlePointerDown(event: PointerEvent): void {\n pointerStartX = event.clientX;\n pointerStartY = event.clientY;\n pointerSwiped = false;\n }\n\n function handlePointerUp(event: PointerEvent): void {\n const dx = Math.abs(event.clientX - pointerStartX);\n const dy = Math.abs(event.clientY - pointerStartY);\n pointerSwiped = dx > MOVE_THRESHOLD || dy > MOVE_THRESHOLD;\n }\n\n // ── Anchor click interception ────────────────────────────────────────────\n function handleClick(event: MouseEvent): void {\n // Ignore clicks that resulted from swipe/drag gestures.\n if (pointerSwiped) {\n pointerSwiped = false;\n return;\n }\n\n const path = event.composedPath();\n const anchor = path.find((el): el is HTMLAnchorElement => el instanceof HTMLAnchorElement);\n\n if (!anchor || !shouldIntercept(anchor, event)) return;\n\n if (tryNavigate(anchor.href, false)) {\n event.preventDefault();\n }\n }\n\n // ── window.location.assign patch ─────────────────────────────────────────\n const origAssign = window.location.assign;\n function patchedAssign(url: string): void {\n if (!tryNavigate(url, false)) origAssign.call(window.location, url);\n }\n\n // ── window.location.replace patch ────────────────────────────────────────\n const origReplace = window.location.replace;\n function patchedReplace(url: string): void {\n if (!tryNavigate(url, true)) origReplace.call(window.location, url);\n }\n\n let assignPatched = false;\n let replacePatched = false;\n try {\n window.location.assign = patchedAssign;\n assignPatched = true;\n } catch {\n /* non-writable in this environment */\n }\n try {\n window.location.replace = patchedReplace;\n replacePatched = true;\n } catch {\n /* non-writable in this environment */\n }\n\n document.addEventListener('click', handleClick, { capture: true });\n document.addEventListener('pointerdown', handlePointerDown, { passive: true });\n document.addEventListener('pointerup', handlePointerUp, { passive: true });\n\n return () => {\n document.removeEventListener('click', handleClick, { capture: true });\n document.removeEventListener('pointerdown', handlePointerDown);\n document.removeEventListener('pointerup', handlePointerUp);\n if (assignPatched) {\n try {\n window.location.assign = origAssign;\n } catch {\n /* ignore */\n }\n }\n if (replacePatched) {\n try {\n window.location.replace = origReplace;\n } catch {\n /* ignore */\n }\n }\n };\n }, [tryNavigate]);\n}\n\n// ─── Client navigation config ─────────────────────────────────────────────────\n\nexport interface ClientNav {\n /** Framework adapter to use for client-side navigation. @default 'tanstack' */\n framework?: 'tanstack' | 'nextjs';\n /**\n * Intercept same-origin `<a>` clicks and `window.location` calls from web\n * components and route them through the framework router.\n * @default true\n */\n interceptLinks?: boolean;\n}\n\n// Register additional framework adapters here by adding entries to this map.\nexport const navigationSetups: Record<string, LazyExoticComponent<FC<{ children: ReactNode }>>> = {\n tanstack: lazy(() =>\n import('../tanstack/navigation').then((m) => ({ default: m.NavigationSetup }))\n ),\n nextjs: lazy(() => import('../nextjs/navigation').then((m) => ({ default: m.NavigationSetup }))),\n};\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// src/nextjs/head.ts
|
|
2
|
+
function normalizeImages(images) {
|
|
3
|
+
if (!images) return void 0;
|
|
4
|
+
const arr = Array.isArray(images) ? images : [images];
|
|
5
|
+
return arr.map((img) => typeof img === "string" ? { url: img } : img);
|
|
6
|
+
}
|
|
7
|
+
function nextjsHeadAdapter(descriptor) {
|
|
8
|
+
const og = descriptor.openGraph;
|
|
9
|
+
const tw = descriptor.twitter;
|
|
10
|
+
return {
|
|
11
|
+
title: descriptor.title,
|
|
12
|
+
description: descriptor.description,
|
|
13
|
+
keywords: descriptor.keywords,
|
|
14
|
+
robots: descriptor.robots,
|
|
15
|
+
...og && {
|
|
16
|
+
openGraph: {
|
|
17
|
+
siteName: og.siteName,
|
|
18
|
+
type: og.type,
|
|
19
|
+
title: og.title ?? descriptor.title,
|
|
20
|
+
description: og.description ?? descriptor.description,
|
|
21
|
+
url: og.url,
|
|
22
|
+
locale: og.locale,
|
|
23
|
+
images: normalizeImages(og.images),
|
|
24
|
+
publishedTime: og.publishedTime,
|
|
25
|
+
modifiedTime: og.modifiedTime
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
...tw && {
|
|
29
|
+
twitter: {
|
|
30
|
+
card: tw.card ?? "summary_large_image",
|
|
31
|
+
title: tw.title ?? descriptor.title,
|
|
32
|
+
description: tw.description ?? descriptor.description,
|
|
33
|
+
images: tw.images ? Array.isArray(tw.images) ? tw.images : [tw.images] : void 0,
|
|
34
|
+
site: tw.site,
|
|
35
|
+
creator: tw.creator
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
alternates: {
|
|
39
|
+
canonical: descriptor.canonical,
|
|
40
|
+
languages: descriptor.alternateLanguages?.reduce(
|
|
41
|
+
(acc, { hreflang, href }) => ({ ...acc, [hreflang]: href }),
|
|
42
|
+
{}
|
|
43
|
+
)
|
|
44
|
+
}
|
|
45
|
+
// styles and scripts cannot be expressed in generateMetadata() —
|
|
46
|
+
// inject them via layout.tsx or a <Script> component instead.
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { nextjsHeadAdapter };
|
|
51
|
+
//# sourceMappingURL=chunk-HOSHJBPS.js.map
|
|
52
|
+
//# sourceMappingURL=chunk-HOSHJBPS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/nextjs/head.ts"],"names":[],"mappings":";AAEA,SAAS,gBACP,MAAA,EACmF;AACnF,EAAA,IAAI,CAAC,QAAQ,OAAO,MAAA;AACpB,EAAA,MAAM,MAAM,KAAA,CAAM,OAAA,CAAQ,MAAM,CAAA,GAAI,MAAA,GAAS,CAAC,MAAM,CAAA;AACpD,EAAA,OAAO,GAAA,CAAI,GAAA,CAAI,CAAC,GAAA,KAAS,OAAO,GAAA,KAAQ,QAAA,GAAW,EAAE,GAAA,EAAK,GAAA,EAAI,GAAI,GAAI,CAAA;AACxE;AAKO,SAAS,kBAAkB,UAAA,EAA4B;AAC5D,EAAA,MAAM,KAAK,UAAA,CAAW,SAAA;AACtB,EAAA,MAAM,KAAK,UAAA,CAAW,OAAA;AAEtB,EAAA,OAAO;AAAA,IACL,OAAO,UAAA,CAAW,KAAA;AAAA,IAClB,aAAa,UAAA,CAAW,WAAA;AAAA,IACxB,UAAU,UAAA,CAAW,QAAA;AAAA,IACrB,QAAQ,UAAA,CAAW,MAAA;AAAA,IACnB,GAAI,EAAA,IAAM;AAAA,MACR,SAAA,EAAW;AAAA,QACT,UAAU,EAAA,CAAG,QAAA;AAAA,QACb,MAAM,EAAA,CAAG,IAAA;AAAA,QACT,KAAA,EAAO,EAAA,CAAG,KAAA,IAAS,UAAA,CAAW,KAAA;AAAA,QAC9B,WAAA,EAAa,EAAA,CAAG,WAAA,IAAe,UAAA,CAAW,WAAA;AAAA,QAC1C,KAAK,EAAA,CAAG,GAAA;AAAA,QACR,QAAQ,EAAA,CAAG,MAAA;AAAA,QACX,MAAA,EAAQ,eAAA,CAAgB,EAAA,CAAG,MAAM,CAAA;AAAA,QACjC,eAAe,EAAA,CAAG,aAAA;AAAA,QAClB,cAAc,EAAA,CAAG;AAAA;AACnB,KACF;AAAA,IACA,GAAI,EAAA,IAAM;AAAA,MACR,OAAA,EAAS;AAAA,QACP,IAAA,EAAO,GAAG,IAAA,IAAQ,qBAAA;AAAA,QAClB,KAAA,EAAO,EAAA,CAAG,KAAA,IAAS,UAAA,CAAW,KAAA;AAAA,QAC9B,WAAA,EAAa,EAAA,CAAG,WAAA,IAAe,UAAA,CAAW,WAAA;AAAA,QAC1C,MAAA,EAAQ,EAAA,CAAG,MAAA,GAAU,KAAA,CAAM,OAAA,CAAQ,EAAA,CAAG,MAAM,CAAA,GAAI,EAAA,CAAG,MAAA,GAAS,CAAC,EAAA,CAAG,MAAM,CAAA,GAAK,MAAA;AAAA,QAC3E,MAAM,EAAA,CAAG,IAAA;AAAA,QACT,SAAS,EAAA,CAAG;AAAA;AACd,KACF;AAAA,IACA,UAAA,EAAY;AAAA,MACV,WAAW,UAAA,CAAW,SAAA;AAAA,MACtB,SAAA,EAAW,WAAW,kBAAA,EAAoB,MAAA;AAAA,QACxC,CAAC,GAAA,EAAK,EAAE,QAAA,EAAU,IAAA,EAAK,MAAO,EAAE,GAAG,GAAA,EAAK,CAAC,QAAQ,GAAG,IAAA,EAAK,CAAA;AAAA,QACzD;AAAC;AACH;AACF;AAAA;AAAA,GAGF;AACF","file":"chunk-HOSHJBPS.js","sourcesContent":["import type { HeadDescriptor, OpenGraphImage } from '../utils/head';\n\nfunction normalizeImages(\n images: string | OpenGraphImage | Array<string | OpenGraphImage> | undefined\n): Array<{ url: string; width?: number; height?: number; alt?: string }> | undefined {\n if (!images) return undefined;\n const arr = Array.isArray(images) ? images : [images];\n return arr.map((img) => (typeof img === 'string' ? { url: img } : img));\n}\n\n// HeadDescriptor now uses the same nested openGraph/twitter structure as\n// Next.js Metadata API, so this adapter mostly normalises minor differences\n// (image format, alternates shape).\nexport function nextjsHeadAdapter(descriptor: HeadDescriptor) {\n const og = descriptor.openGraph;\n const tw = descriptor.twitter;\n\n return {\n title: descriptor.title,\n description: descriptor.description,\n keywords: descriptor.keywords,\n robots: descriptor.robots,\n ...(og && {\n openGraph: {\n siteName: og.siteName,\n type: og.type as any,\n title: og.title ?? descriptor.title,\n description: og.description ?? descriptor.description,\n url: og.url,\n locale: og.locale,\n images: normalizeImages(og.images),\n publishedTime: og.publishedTime,\n modifiedTime: og.modifiedTime,\n },\n }),\n ...(tw && {\n twitter: {\n card: (tw.card ?? 'summary_large_image') as any,\n title: tw.title ?? descriptor.title,\n description: tw.description ?? descriptor.description,\n images: tw.images ? (Array.isArray(tw.images) ? tw.images : [tw.images]) : undefined,\n site: tw.site,\n creator: tw.creator,\n },\n }),\n alternates: {\n canonical: descriptor.canonical,\n languages: descriptor.alternateLanguages?.reduce(\n (acc, { hreflang, href }) => ({ ...acc, [hreflang]: href }),\n {} as Record<string, string>\n ),\n },\n // styles and scripts cannot be expressed in generateMetadata() —\n // inject them via layout.tsx or a <Script> component instead.\n };\n}\n"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { user } from './chunk-TCSNNCRH.js';
|
|
2
|
+
import { getTwilightContext } from './chunk-KIPZQN3Y.js';
|
|
3
|
+
import { useQuery } from '@tanstack/react-query';
|
|
4
|
+
|
|
5
|
+
function useUser() {
|
|
6
|
+
const token = getTwilightContext().authToken;
|
|
7
|
+
const query = useQuery({
|
|
8
|
+
...user.queries.current(),
|
|
9
|
+
enabled: !!token,
|
|
10
|
+
placeholderData: null
|
|
11
|
+
});
|
|
12
|
+
return { ...query, isLoggedIn: !!token };
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { useUser };
|
|
16
|
+
//# sourceMappingURL=chunk-I5Z4NJBB.js.map
|
|
17
|
+
//# sourceMappingURL=chunk-I5Z4NJBB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/useUser.ts"],"names":[],"mappings":";;;;AAUO,SAAS,OAAA,GAAyB;AACvC,EAAA,MAAM,KAAA,GAAQ,oBAAmB,CAAE,SAAA;AAEnC,EAAA,MAAM,QAAQ,QAAA,CAAS;AAAA,IACrB,GAAG,IAAA,CAAK,OAAA,CAAQ,OAAA,EAAQ;AAAA,IACxB,OAAA,EAAS,CAAC,CAAC,KAAA;AAAA,IACX,eAAA,EAAiB;AAAA,GAClB,CAAA;AAED,EAAA,OAAO,EAAE,GAAG,KAAA,EAAO,UAAA,EAAY,CAAC,CAAC,KAAA,EAAM;AACzC","file":"chunk-I5Z4NJBB.js","sourcesContent":["import { useQuery, type UseQueryResult } from '@tanstack/react-query';\nimport { getTwilightContext } from '../twilight/context';\nimport { user } from '../api/user';\nimport type { User } from '../types';\n\nexport type UseUserReturn = UseQueryResult<User | null> & {\n /** True when an auth token exists (regardless of query state). */\n isLoggedIn: boolean;\n};\n\nexport function useUser(): UseUserReturn {\n const token = getTwilightContext().authToken;\n\n const query = useQuery({\n ...user.queries.current(),\n enabled: !!token,\n placeholderData: null,\n });\n\n return { ...query, isLoggedIn: !!token };\n}\n"]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
// src/hooks/HookRegistry.ts
|
|
2
|
+
var HookRegistry = class {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.hooks = /* @__PURE__ */ new Map();
|
|
5
|
+
this.subscribers = /* @__PURE__ */ new Map();
|
|
6
|
+
}
|
|
7
|
+
register(name, handler, priority = 50) {
|
|
8
|
+
const hookName = typeof name === "string" ? name : name;
|
|
9
|
+
const handlers = this.hooks.get(hookName) || [];
|
|
10
|
+
handlers.push({ handler, priority });
|
|
11
|
+
handlers.sort((a, b) => b.priority - a.priority);
|
|
12
|
+
this.hooks.set(hookName, handlers);
|
|
13
|
+
this.notify(hookName);
|
|
14
|
+
}
|
|
15
|
+
subscribe(name, callback) {
|
|
16
|
+
const hookName = typeof name === "string" ? name : name;
|
|
17
|
+
if (!this.subscribers.has(hookName)) {
|
|
18
|
+
this.subscribers.set(hookName, /* @__PURE__ */ new Set());
|
|
19
|
+
}
|
|
20
|
+
this.subscribers.get(hookName).add(callback);
|
|
21
|
+
return () => this.unsubscribe(hookName, callback);
|
|
22
|
+
}
|
|
23
|
+
unsubscribe(name, callback) {
|
|
24
|
+
const hookName = typeof name === "string" ? name : name;
|
|
25
|
+
this.subscribers.get(hookName)?.delete(callback);
|
|
26
|
+
}
|
|
27
|
+
notify(name) {
|
|
28
|
+
this.subscribers.get(name)?.forEach((cb) => cb());
|
|
29
|
+
}
|
|
30
|
+
getHandlers(name) {
|
|
31
|
+
const hookName = typeof name === "string" ? name : name;
|
|
32
|
+
return this.hooks.get(hookName) || [];
|
|
33
|
+
}
|
|
34
|
+
has(name) {
|
|
35
|
+
const hookName = typeof name === "string" ? name : name;
|
|
36
|
+
return this.hooks.has(hookName) && this.hooks.get(hookName).length > 0;
|
|
37
|
+
}
|
|
38
|
+
clear(name) {
|
|
39
|
+
const hookName = typeof name === "string" ? name : name;
|
|
40
|
+
this.hooks.delete(hookName);
|
|
41
|
+
this.notify(hookName);
|
|
42
|
+
}
|
|
43
|
+
clearAll() {
|
|
44
|
+
this.hooks.clear();
|
|
45
|
+
Array.from(this.subscribers.keys()).forEach((name) => this.notify(name));
|
|
46
|
+
}
|
|
47
|
+
list() {
|
|
48
|
+
return Array.from(this.hooks.keys());
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var hookRegistry = new HookRegistry();
|
|
52
|
+
function defineHooks(hooks) {
|
|
53
|
+
for (const [name, definition] of Object.entries(hooks)) {
|
|
54
|
+
if (Array.isArray(definition)) {
|
|
55
|
+
definition.forEach(({ handler, priority }) => {
|
|
56
|
+
hookRegistry.register(name, handler, priority);
|
|
57
|
+
});
|
|
58
|
+
} else {
|
|
59
|
+
hookRegistry.register(name, definition);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export { HookRegistry, defineHooks, hookRegistry };
|
|
65
|
+
//# sourceMappingURL=chunk-J37AYLWL.js.map
|
|
66
|
+
//# sourceMappingURL=chunk-J37AYLWL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/HookRegistry.ts"],"names":[],"mappings":"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","file":"chunk-J37AYLWL.js","sourcesContent":["import type { HookHandler, HookDefinition, HookHandlers, HookName } from '../types';\n\n/**\n * HookRegistry - Manages hook handlers for the extension system\n *\n * Provides a central registry for registering, storing, and retrieving hook\n * handlers with priority-based execution order. Hooks allow extending functionality\n * without modifying core code.\n *\n * @example\n * ```ts\n * import { hookRegistry, defineHooks } from './hooks';\n *\n * // Register single hook\n * hookRegistry.register('header.before', ({ context }) => {\n * return <CustomHeader />;\n * }, 100);\n *\n * // Register multiple hooks at once\n * defineHooks({\n * 'header.before': {\n * handler: () => <Logo />,\n * priority: 50\n * },\n * 'header.after': [\n * { handler: () => <Search />, priority: 10 },\n * { handler: () => <CartIcon />, priority: 20 }\n * ]\n * });\n * ```\n */\nclass HookRegistry {\n private hooks = new Map<string, HookDefinition[]>();\n private subscribers = new Map<string, Set<() => void>>();\n\n register<T = Record<string, unknown>>(\n name: HookName | string,\n handler: HookHandler<T>,\n priority = 50\n ): void {\n const hookName = typeof name === 'string' ? name : name;\n const handlers = this.hooks.get(hookName) || [];\n handlers.push({ handler: handler as HookHandler, priority });\n handlers.sort((a, b) => b.priority - a.priority);\n this.hooks.set(hookName, handlers);\n this.notify(hookName);\n }\n\n subscribe(name: HookName | string, callback: () => void): () => void {\n const hookName = typeof name === 'string' ? name : name;\n if (!this.subscribers.has(hookName)) {\n this.subscribers.set(hookName, new Set());\n }\n this.subscribers.get(hookName)!.add(callback);\n return () => this.unsubscribe(hookName, callback);\n }\n\n unsubscribe(name: HookName | string, callback: () => void): void {\n const hookName = typeof name === 'string' ? name : name;\n this.subscribers.get(hookName)?.delete(callback);\n }\n\n private notify(name: string): void {\n this.subscribers.get(name)?.forEach((cb) => cb());\n }\n\n getHandlers(name: HookName | string): HookDefinition[] {\n const hookName = typeof name === 'string' ? name : name;\n return this.hooks.get(hookName) || [];\n }\n\n has(name: HookName | string): boolean {\n const hookName = typeof name === 'string' ? name : name;\n return this.hooks.has(hookName) && this.hooks.get(hookName)!.length > 0;\n }\n\n clear(name: HookName | string): void {\n const hookName = typeof name === 'string' ? name : name;\n this.hooks.delete(hookName);\n this.notify(hookName);\n }\n\n clearAll(): void {\n this.hooks.clear();\n Array.from(this.subscribers.keys()).forEach((name) => this.notify(name));\n }\n\n list(): string[] {\n return Array.from(this.hooks.keys());\n }\n}\n\nexport const hookRegistry = new HookRegistry();\n\nexport function defineHooks(hooks: HookHandlers): void {\n for (const [name, definition] of Object.entries(hooks)) {\n if (Array.isArray(definition)) {\n definition.forEach(({ handler, priority }) => {\n hookRegistry.register(name, handler, priority);\n });\n } else {\n hookRegistry.register(name, definition);\n }\n }\n}\n\nexport { HookRegistry };\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { api } from './chunk-2TB2LTL2.js';
|
|
2
|
+
import { queryOptions } from '@tanstack/react-query';
|
|
3
|
+
|
|
4
|
+
var home = {
|
|
5
|
+
components: async () => {
|
|
6
|
+
const { data } = await api.get("component/list").json();
|
|
7
|
+
return data ?? [];
|
|
8
|
+
},
|
|
9
|
+
queries: {
|
|
10
|
+
components: () => queryOptions({
|
|
11
|
+
queryKey: ["home", "components"],
|
|
12
|
+
queryFn: () => home.components()
|
|
13
|
+
})
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export { home };
|
|
18
|
+
//# sourceMappingURL=chunk-KCKHA75V.js.map
|
|
19
|
+
//# sourceMappingURL=chunk-KCKHA75V.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/home.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,YAAY,YAA0C;AACpD,IAAA,MAAM,EAAE,MAAK,GAAI,MAAM,IAAI,GAAA,CAAI,gBAAgB,EAAE,IAAA,EAAoC;AACrF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,UAAA,EAAY,MACV,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,YAAY,CAAA;AAAA,MAC/B,OAAA,EAAS,MAAM,IAAA,CAAK,UAAA;AAAW,KAChC;AAAA;AAEP","file":"chunk-KCKHA75V.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { HomeComponentData } from '../types';\n\nexport const home = {\n components: async (): Promise<HomeComponentData[]> => {\n const { data } = await api.get('component/list').json<{ data: HomeComponentData[] }>();\n return data ?? [];\n },\n\n queries: {\n components: () =>\n queryOptions({\n queryKey: ['home', 'components'],\n queryFn: () => home.components(),\n }),\n },\n};\n"]}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { FALLBACK_LOCALE, getLanguageInfo } from './chunk-T72DAX7R.js';
|
|
2
|
+
import { __require } from './chunk-DGUM43GV.js';
|
|
3
|
+
import { createInstance } from 'i18next';
|
|
4
|
+
import { initReactI18next } from 'react-i18next';
|
|
5
|
+
|
|
6
|
+
// src/utils/errors.ts
|
|
7
|
+
var SettingsError = class extends Error {
|
|
8
|
+
constructor(message) {
|
|
9
|
+
super(message ?? "Store settings could not be loaded.");
|
|
10
|
+
this.name = "SettingsError";
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
function createI18nInstance(locale, translations, themeTranslations) {
|
|
14
|
+
const instance = createInstance();
|
|
15
|
+
const transKey = `${locale}.trans`;
|
|
16
|
+
instance.use(initReactI18next).init({
|
|
17
|
+
lng: locale,
|
|
18
|
+
fallbackLng: locale,
|
|
19
|
+
ns: ["app", "theme"],
|
|
20
|
+
defaultNS: "app",
|
|
21
|
+
fallbackNS: "theme",
|
|
22
|
+
resources: {
|
|
23
|
+
[locale]: {
|
|
24
|
+
app: translations?.[transKey] ?? {},
|
|
25
|
+
theme: themeTranslations?.[transKey] ?? {}
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
interpolation: { escapeValue: false },
|
|
29
|
+
react: { useSuspense: false },
|
|
30
|
+
keySeparator: ".",
|
|
31
|
+
nsSeparator: false
|
|
32
|
+
});
|
|
33
|
+
return instance;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// src/twilight/context.ts
|
|
37
|
+
var DEFAULT_LOCATION = {
|
|
38
|
+
href: "",
|
|
39
|
+
pathname: "",
|
|
40
|
+
search: {},
|
|
41
|
+
searchStr: "",
|
|
42
|
+
state: {},
|
|
43
|
+
hash: ""
|
|
44
|
+
};
|
|
45
|
+
var DEFAULT_DATA = {
|
|
46
|
+
queryClient: null,
|
|
47
|
+
settings: null,
|
|
48
|
+
locale: FALLBACK_LOCALE,
|
|
49
|
+
routeId: "",
|
|
50
|
+
location: { ...DEFAULT_LOCATION },
|
|
51
|
+
authToken: null,
|
|
52
|
+
scopeId: null,
|
|
53
|
+
i18n: void 0,
|
|
54
|
+
page: void 0
|
|
55
|
+
};
|
|
56
|
+
var _als = null;
|
|
57
|
+
if (typeof window === "undefined") {
|
|
58
|
+
try {
|
|
59
|
+
const { AsyncLocalStorage } = __require("async_hooks");
|
|
60
|
+
_als = new AsyncLocalStorage();
|
|
61
|
+
} catch {
|
|
62
|
+
_als = null;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
var clientStore = { ...DEFAULT_DATA };
|
|
66
|
+
function getTwilightStore() {
|
|
67
|
+
if (_als) {
|
|
68
|
+
const store = _als.getStore();
|
|
69
|
+
if (!store)
|
|
70
|
+
throw new Error("[Twilight] No request context. Wrap with runWithTwilightContext().");
|
|
71
|
+
return store;
|
|
72
|
+
}
|
|
73
|
+
return clientStore;
|
|
74
|
+
}
|
|
75
|
+
function mergeIntoStore(store, partial) {
|
|
76
|
+
if ("queryClient" in partial && partial.queryClient) store.queryClient = partial.queryClient;
|
|
77
|
+
if ("settings" in partial && partial.settings != null) store.settings = partial.settings;
|
|
78
|
+
if ("locale" in partial && partial.locale != null) store.locale = partial.locale;
|
|
79
|
+
if ("routeId" in partial && partial.routeId != null) store.routeId = partial.routeId;
|
|
80
|
+
if ("location" in partial && partial.location != null)
|
|
81
|
+
store.location = { ...store.location, ...partial.location };
|
|
82
|
+
if ("authToken" in partial && partial.authToken !== void 0)
|
|
83
|
+
store.authToken = partial.authToken ?? null;
|
|
84
|
+
if ("scopeId" in partial && partial.scopeId !== void 0)
|
|
85
|
+
store.scopeId = partial.scopeId ?? null;
|
|
86
|
+
if ("i18n" in partial && partial.i18n != null) store.i18n = partial.i18n;
|
|
87
|
+
if ("page" in partial) store.page = partial.page;
|
|
88
|
+
if ("extras" in partial) store.extras = partial.extras;
|
|
89
|
+
}
|
|
90
|
+
function runWithTwilightContext(partial, fn) {
|
|
91
|
+
if (_als) {
|
|
92
|
+
const data = { ...DEFAULT_DATA };
|
|
93
|
+
mergeIntoStore(data, partial);
|
|
94
|
+
return _als.run(data, fn);
|
|
95
|
+
}
|
|
96
|
+
mergeIntoStore(clientStore, partial);
|
|
97
|
+
return fn();
|
|
98
|
+
}
|
|
99
|
+
var listeners = /* @__PURE__ */ new Set();
|
|
100
|
+
function subscribeTwilight(listener) {
|
|
101
|
+
listeners.add(listener);
|
|
102
|
+
return () => {
|
|
103
|
+
listeners.delete(listener);
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
function updateTwilightContext(partial) {
|
|
107
|
+
mergeIntoStore(getTwilightStore(), partial);
|
|
108
|
+
if (typeof window !== "undefined") {
|
|
109
|
+
for (const listener of listeners) listener();
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
function getTwilightContext() {
|
|
113
|
+
const data = getTwilightStore();
|
|
114
|
+
return {
|
|
115
|
+
get queryClient() {
|
|
116
|
+
return data.queryClient;
|
|
117
|
+
},
|
|
118
|
+
get settings() {
|
|
119
|
+
if (!data.settings) throw new SettingsError();
|
|
120
|
+
return data.settings;
|
|
121
|
+
},
|
|
122
|
+
get locale() {
|
|
123
|
+
return data.locale;
|
|
124
|
+
},
|
|
125
|
+
get routeId() {
|
|
126
|
+
return data.routeId;
|
|
127
|
+
},
|
|
128
|
+
get location() {
|
|
129
|
+
return data.location;
|
|
130
|
+
},
|
|
131
|
+
get authToken() {
|
|
132
|
+
return data.authToken;
|
|
133
|
+
},
|
|
134
|
+
get scopeId() {
|
|
135
|
+
return data.scopeId;
|
|
136
|
+
},
|
|
137
|
+
get i18n() {
|
|
138
|
+
if (!data.i18n) {
|
|
139
|
+
const translations = data.queryClient?.getQueryData(["translations"]);
|
|
140
|
+
data.i18n = createI18nInstance(data.locale, translations);
|
|
141
|
+
}
|
|
142
|
+
return data.i18n;
|
|
143
|
+
},
|
|
144
|
+
get dir() {
|
|
145
|
+
return getLanguageInfo(data.locale).dir;
|
|
146
|
+
},
|
|
147
|
+
get page() {
|
|
148
|
+
return data.page;
|
|
149
|
+
},
|
|
150
|
+
get extras() {
|
|
151
|
+
return data.extras;
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
export { SettingsError, createI18nInstance, getTwilightContext, runWithTwilightContext, subscribeTwilight, updateTwilightContext };
|
|
157
|
+
//# sourceMappingURL=chunk-KIPZQN3Y.js.map
|
|
158
|
+
//# sourceMappingURL=chunk-KIPZQN3Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/utils/errors.ts","../src/providers/i18n-factory.ts","../src/twilight/context.ts"],"names":[],"mappings":"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","file":"chunk-KIPZQN3Y.js","sourcesContent":["export class SettingsError extends Error {\n constructor(message?: string) {\n super(message ?? 'Store settings could not be loaded.');\n this.name = 'SettingsError';\n }\n}\n","import { createInstance, type i18n as I18nInstance } from 'i18next';\nimport { initReactI18next } from 'react-i18next';\n\nexport type TranslationMessages = Record<string, Record<string, string>>;\n\n/**\n * Creates a new i18next instance for the given locale.\n *\n * @param locale - Active locale code, e.g. `'ar'`\n * @param translations - App translations from the Salla API (store-specific)\n * @param themeTranslations - Bundled theme translations (static defaults)\n */\nexport function createI18nInstance(\n locale: string,\n translations?: TranslationMessages,\n themeTranslations?: TranslationMessages\n): I18nInstance {\n const instance = createInstance();\n const transKey = `${locale}.trans`;\n\n instance.use(initReactI18next).init({\n lng: locale,\n fallbackLng: locale,\n ns: ['app', 'theme'],\n defaultNS: 'app',\n fallbackNS: 'theme',\n resources: {\n [locale]: {\n app: translations?.[transKey] ?? {},\n theme: themeTranslations?.[transKey] ?? {},\n },\n },\n interpolation: { escapeValue: false },\n react: { useSuspense: false },\n keySeparator: '.',\n nsSeparator: false,\n });\n\n return instance;\n}\n\n/**\n * Creates i18n instance for testing\n * @param locale - Locale code (default: 'ar')\n * @param translations - Optional translations\n */\nexport function createTestI18n(locale = 'ar', translations?: TranslationMessages): I18nInstance {\n return createI18nInstance(locale, translations);\n}\n","import type { QueryClient } from '@tanstack/react-query';\nimport type { i18n } from 'i18next';\nimport type { StoreContext } from '../api/store';\nimport { FALLBACK_LOCALE, getLanguageInfo } from '../providers/locale-constants';\nimport type { TranslationMessages } from '../providers/i18n-factory';\nimport { createI18nInstance } from '../providers/i18n-factory';\nimport { SettingsError } from '../utils/errors';\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport interface TwilightLocation<TSearch = Record<string, unknown>> {\n href: string;\n pathname: string;\n search: TSearch;\n searchStr: string;\n state: Record<string, unknown>;\n hash: string;\n}\n\nexport interface PageContext {\n slug: string;\n id?: string | number;\n title: string;\n url?: string;\n parent?: { id: string | number; name: string; url: string } | null;\n breadcrumbs?: { name: string; url: string }[];\n}\n\nexport interface TwilightContext {\n queryClient: QueryClient;\n settings: StoreContext;\n locale: string;\n routeId: string;\n location: TwilightLocation;\n authToken: string | null;\n scopeId: string | null;\n i18n: i18n;\n dir: 'ltr' | 'rtl';\n page?: PageContext;\n extras?: Record<string, unknown>;\n}\n\n// ============================================================================\n// Internal Store\n// ============================================================================\n\nconst DEFAULT_LOCATION: TwilightLocation = {\n href: '',\n pathname: '',\n search: {},\n searchStr: '',\n state: {},\n hash: '',\n};\n\ninterface ContextData {\n queryClient: QueryClient;\n settings: StoreContext | null;\n locale: string;\n routeId: string;\n location: TwilightLocation;\n authToken: string | null;\n scopeId: string | null;\n i18n?: i18n;\n page?: PageContext;\n extras?: Record<string, unknown>;\n}\n\nconst DEFAULT_DATA: ContextData = {\n queryClient: null as unknown as QueryClient,\n settings: null,\n locale: FALLBACK_LOCALE,\n routeId: '',\n location: { ...DEFAULT_LOCATION },\n authToken: null,\n scopeId: null,\n i18n: undefined,\n page: undefined,\n};\n\n// ============================================================================\n// Storage: AsyncLocalStorage (server) or module-level store (client)\n// ============================================================================\n\ntype AsyncLocalStore<T> = { getStore(): T | undefined; run(val: T, fn: () => unknown): unknown };\n\n// Initialize ALS at module load time for SSR — no race condition\nlet _als: AsyncLocalStore<ContextData> | null = null;\nif (typeof window === 'undefined') {\n try {\n // eslint-disable-next-line @typescript-eslint/no-require-imports\n const { AsyncLocalStorage } = require('node:async_hooks') as {\n AsyncLocalStorage: new <T>() => AsyncLocalStore<T>;\n };\n _als = new AsyncLocalStorage<ContextData>();\n } catch {\n _als = null;\n }\n}\n\nconst clientStore: ContextData = { ...DEFAULT_DATA };\n\nfunction getTwilightStore(): ContextData {\n if (_als) {\n const store = _als.getStore();\n if (!store)\n throw new Error('[Twilight] No request context. Wrap with runWithTwilightContext().');\n return store;\n }\n return clientStore;\n}\n\nfunction writableStore(): ContextData {\n if (_als) {\n const store = _als.getStore();\n if (store) return store;\n }\n return clientStore;\n}\n\nfunction mergeIntoStore(store: ContextData, partial: Partial<TwilightContext>): void {\n if ('queryClient' in partial && partial.queryClient) store.queryClient = partial.queryClient;\n if ('settings' in partial && partial.settings != null) store.settings = partial.settings;\n if ('locale' in partial && partial.locale != null) store.locale = partial.locale;\n if ('routeId' in partial && partial.routeId != null) store.routeId = partial.routeId;\n if ('location' in partial && partial.location != null)\n store.location = { ...store.location, ...partial.location };\n if ('authToken' in partial && partial.authToken !== undefined)\n store.authToken = partial.authToken ?? null;\n if ('scopeId' in partial && partial.scopeId !== undefined)\n store.scopeId = partial.scopeId ?? null;\n if ('i18n' in partial && partial.i18n != null) store.i18n = partial.i18n;\n if ('page' in partial) store.page = partial.page;\n if ('extras' in partial) store.extras = partial.extras;\n}\n\n// ============================================================================\n// Public API\n// ============================================================================\n\nexport function runWithTwilightContext<T>(partial: Partial<TwilightContext>, fn: () => T): T {\n if (_als) {\n const data: ContextData = { ...DEFAULT_DATA };\n mergeIntoStore(data, partial);\n return _als.run(data, fn) as T;\n }\n mergeIntoStore(clientStore, partial);\n return fn();\n}\n\n// Client-only subscription so React consumers (useRouteId/useIsHome/…) re-render\n// when navigation mutates the module store. Mirrors hooks/useWishlist.ts.\nconst listeners = new Set<() => void>();\n\nexport function subscribeTwilight(listener: () => void): () => void {\n listeners.add(listener);\n return () => {\n listeners.delete(listener);\n };\n}\n\nexport function updateTwilightContext(partial: Partial<TwilightContext>): void {\n mergeIntoStore(getTwilightStore(), partial);\n // Server uses AsyncLocalStorage and has no React subscribers; notify on client only.\n if (typeof window !== 'undefined') {\n for (const listener of listeners) listener();\n }\n}\n\nexport function getTwilightContext(): TwilightContext {\n const data = getTwilightStore();\n return {\n get queryClient() {\n return data.queryClient;\n },\n get settings() {\n if (!data.settings) throw new SettingsError();\n return data.settings;\n },\n get locale() {\n return data.locale;\n },\n get routeId() {\n return data.routeId;\n },\n get location() {\n return data.location;\n },\n get authToken() {\n return data.authToken;\n },\n get scopeId() {\n return data.scopeId;\n },\n get i18n() {\n if (!data.i18n) {\n const translations = data.queryClient?.getQueryData(['translations']) as\n | TranslationMessages\n | undefined;\n data.i18n = createI18nInstance(data.locale, translations);\n }\n return data.i18n;\n },\n get dir() {\n return getLanguageInfo(data.locale).dir;\n },\n get page() {\n return data.page;\n },\n get extras() {\n return data.extras;\n },\n };\n}\n\n/** @internal Reset store for testing */\nexport function resetForTesting(): void {\n Object.assign(writableStore(), { ...DEFAULT_DATA });\n}\n"]}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// src/types/hooks.ts
|
|
2
|
+
var HookName = /* @__PURE__ */ ((HookName2) => {
|
|
3
|
+
HookName2["BODY_START"] = "body:start";
|
|
4
|
+
HookName2["BODY_END"] = "body:end";
|
|
5
|
+
HookName2["BODY_INNER"] = "body:inner";
|
|
6
|
+
HookName2["HEAD_START"] = "head:start";
|
|
7
|
+
HookName2["HEAD_END"] = "head:end";
|
|
8
|
+
HookName2["HEAD_INNER"] = "head:inner";
|
|
9
|
+
HookName2["HEADER_START"] = "header:start";
|
|
10
|
+
HookName2["HEADER_END"] = "header:end";
|
|
11
|
+
HookName2["FOOTER_START"] = "footer:start";
|
|
12
|
+
HookName2["FOOTER_END"] = "footer:end";
|
|
13
|
+
HookName2["PRODUCT_DESCRIPTION_START"] = "product:single.description.start";
|
|
14
|
+
HookName2["PRODUCT_DESCRIPTION"] = "product:single.description";
|
|
15
|
+
HookName2["PRODUCT_DESCRIPTION_END"] = "product:single.description.end";
|
|
16
|
+
HookName2["PRODUCT_FORM_START"] = "product:single.form.start";
|
|
17
|
+
HookName2["PRODUCT_FORM_END"] = "product:single.form.end";
|
|
18
|
+
HookName2["CART_ITEMS_START"] = "cart:items.start";
|
|
19
|
+
HookName2["CART_ITEMS_END"] = "cart:items.end";
|
|
20
|
+
HookName2["CART_SUMMARY_START"] = "cart:summary.start";
|
|
21
|
+
HookName2["CART_SUMMARY_END"] = "cart:summary.end";
|
|
22
|
+
HookName2["SEARCH_START"] = "search:start";
|
|
23
|
+
HookName2["SEARCH_ITEMS_START"] = "search:items.start";
|
|
24
|
+
HookName2["SEARCH_ITEMS_END"] = "search:items.end";
|
|
25
|
+
HookName2["SEARCH_END"] = "search:end";
|
|
26
|
+
HookName2["HOMEPAGE_SLIDER"] = "homepage:slider";
|
|
27
|
+
HookName2["HOMEPAGE_BANNERS"] = "homepage:banners";
|
|
28
|
+
HookName2["HOMEPAGE_FEATURED"] = "homepage:featured";
|
|
29
|
+
return HookName2;
|
|
30
|
+
})(HookName || {});
|
|
31
|
+
|
|
32
|
+
export { HookName };
|
|
33
|
+
//# sourceMappingURL=chunk-LBUMC5PB.js.map
|
|
34
|
+
//# sourceMappingURL=chunk-LBUMC5PB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/types/hooks.ts"],"names":["HookName"],"mappings":";AAYO,IAAK,QAAA,qBAAAA,SAAAA,KAAL;AAEL,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AACb,EAAAA,UAAA,UAAA,CAAA,GAAW,UAAA;AACX,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,2BAAA,CAAA,GAA4B,kCAAA;AAC5B,EAAAA,UAAA,qBAAA,CAAA,GAAsB,4BAAA;AACtB,EAAAA,UAAA,yBAAA,CAAA,GAA0B,gCAAA;AAC1B,EAAAA,UAAA,oBAAA,CAAA,GAAqB,2BAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,yBAAA;AAEnB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,gBAAA,CAAA,GAAiB,gBAAA;AACjB,EAAAA,UAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AAEnB,EAAAA,UAAA,cAAA,CAAA,GAAe,cAAA;AACf,EAAAA,UAAA,oBAAA,CAAA,GAAqB,oBAAA;AACrB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,YAAA,CAAA,GAAa,YAAA;AAEb,EAAAA,UAAA,iBAAA,CAAA,GAAkB,iBAAA;AAClB,EAAAA,UAAA,kBAAA,CAAA,GAAmB,kBAAA;AACnB,EAAAA,UAAA,mBAAA,CAAA,GAAoB,mBAAA;AAlCV,EAAA,OAAAA,SAAAA;AAAA,CAAA,EAAA,QAAA,IAAA,EAAA","file":"chunk-LBUMC5PB.js","sourcesContent":["import type { ReactNode } from 'react';\n\n/**\n * Predefined hook names for type-safe hook registration.\n *\n * @example\n * ```tsx\n * import { HookName, hookRegistry } from '@salla.sa/twilight-theme-engine';\n *\n * hookRegistry.register(HookName.BODY_END, () => <MyComponent />);\n * ```\n */\nexport enum HookName {\n // Global - Body\n BODY_START = 'body:start',\n BODY_END = 'body:end',\n BODY_INNER = 'body:inner',\n // Global - Head\n HEAD_START = 'head:start',\n HEAD_END = 'head:end',\n HEAD_INNER = 'head:inner',\n // Header\n HEADER_START = 'header:start',\n HEADER_END = 'header:end',\n // Footer\n FOOTER_START = 'footer:start',\n FOOTER_END = 'footer:end',\n // Product\n PRODUCT_DESCRIPTION_START = 'product:single.description.start',\n PRODUCT_DESCRIPTION = 'product:single.description',\n PRODUCT_DESCRIPTION_END = 'product:single.description.end',\n PRODUCT_FORM_START = 'product:single.form.start',\n PRODUCT_FORM_END = 'product:single.form.end',\n // Cart\n CART_ITEMS_START = 'cart:items.start',\n CART_ITEMS_END = 'cart:items.end',\n CART_SUMMARY_START = 'cart:summary.start',\n CART_SUMMARY_END = 'cart:summary.end',\n // Search\n SEARCH_START = 'search:start',\n SEARCH_ITEMS_START = 'search:items.start',\n SEARCH_ITEMS_END = 'search:items.end',\n SEARCH_END = 'search:end',\n // Homepage\n HOMEPAGE_SLIDER = 'homepage:slider',\n HOMEPAGE_BANNERS = 'homepage:banners',\n HOMEPAGE_FEATURED = 'homepage:featured',\n}\n\n/**\n * Hook handler function type.\n */\nexport type HookHandler<T = Record<string, unknown>> = (context: T) => ReactNode;\n\n/**\n * Hook definition with handler and priority.\n */\nexport interface HookDefinition {\n handler: HookHandler;\n priority: number;\n}\n\n/**\n * Hook handlers map for bulk registration.\n */\nexport type HookHandlers = Record<\n string,\n | HookHandler\n | Array<{\n priority?: number;\n handler: HookHandler;\n }>\n>;\n"]}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { getActiveScopeId, api } from './chunk-2TB2LTL2.js';
|
|
2
|
+
import { getTwilightContext } from './chunk-KIPZQN3Y.js';
|
|
3
|
+
import { queryOptions } from '@tanstack/react-query';
|
|
4
|
+
|
|
5
|
+
var DEFAULT_INCLUDE_ITEMS = [
|
|
6
|
+
"store",
|
|
7
|
+
"settings",
|
|
8
|
+
"theme",
|
|
9
|
+
"theme_settings",
|
|
10
|
+
"external_services",
|
|
11
|
+
"currencies",
|
|
12
|
+
"languages",
|
|
13
|
+
"payments",
|
|
14
|
+
"product_widgets",
|
|
15
|
+
"rating",
|
|
16
|
+
"ratings"
|
|
17
|
+
];
|
|
18
|
+
function resolveStoreIdentifier(explicit) {
|
|
19
|
+
if (explicit) return explicit;
|
|
20
|
+
try {
|
|
21
|
+
const viteEnv = import.meta.env?.VITE_STORE_DOMAIN;
|
|
22
|
+
if (viteEnv) return viteEnv;
|
|
23
|
+
} catch {
|
|
24
|
+
}
|
|
25
|
+
const isBrowser = typeof window !== "undefined";
|
|
26
|
+
if (isBrowser) return window.location.host;
|
|
27
|
+
return typeof process !== "undefined" && process.env?.STORE_DOMAIN || "";
|
|
28
|
+
}
|
|
29
|
+
function languagesToArray(languages) {
|
|
30
|
+
if (!languages) return void 0;
|
|
31
|
+
return Object.values(languages).map((lang) => ({ iso_code: lang.code, ...lang }));
|
|
32
|
+
}
|
|
33
|
+
var store = {
|
|
34
|
+
settings: async (storeIdentifier) => {
|
|
35
|
+
const identifier = storeIdentifier ?? resolveStoreIdentifier();
|
|
36
|
+
if (!identifier) {
|
|
37
|
+
console.warn("[store.settings] No store identifier available");
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
const includeParams = DEFAULT_INCLUDE_ITEMS.map((i) => `include[]=${i}`).join("&");
|
|
41
|
+
const scopeId = getActiveScopeId();
|
|
42
|
+
const params = scopeId != null ? `${includeParams}&scope=${scopeId}` : includeParams;
|
|
43
|
+
try {
|
|
44
|
+
const json = await api.get(`store/settings?${params}`, { timeout: 5e3 }).json();
|
|
45
|
+
const data = json?.data;
|
|
46
|
+
if (!data) return null;
|
|
47
|
+
const languages = languagesToArray(data.languages);
|
|
48
|
+
return {
|
|
49
|
+
store: data.store,
|
|
50
|
+
theme: data.theme,
|
|
51
|
+
languages,
|
|
52
|
+
currencies: data.currencies,
|
|
53
|
+
external_services: data.external_services,
|
|
54
|
+
headers: data.headers,
|
|
55
|
+
login: data.login,
|
|
56
|
+
affiliate: data.affiliate,
|
|
57
|
+
policy_url: data.policy_url
|
|
58
|
+
};
|
|
59
|
+
} catch (error) {
|
|
60
|
+
console.error("[store.settings] Failed:", error);
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
queries: {
|
|
65
|
+
settings: (storeIdentifier) => queryOptions({
|
|
66
|
+
queryKey: [
|
|
67
|
+
"store",
|
|
68
|
+
"settings",
|
|
69
|
+
storeIdentifier,
|
|
70
|
+
getTwilightContext().locale,
|
|
71
|
+
getActiveScopeId()
|
|
72
|
+
],
|
|
73
|
+
queryFn: () => store.settings(storeIdentifier)
|
|
74
|
+
})
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
|
|
78
|
+
export { resolveStoreIdentifier, store };
|
|
79
|
+
//# sourceMappingURL=chunk-LSDIFHXZ.js.map
|
|
80
|
+
//# sourceMappingURL=chunk-LSDIFHXZ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/store.ts"],"names":[],"mappings":"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","file":"chunk-LSDIFHXZ.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api, getActiveScopeId } from './client';\nimport type { Store, Theme, Language } from '../types';\nimport { getTwilightContext } from '../twilight/context';\n\nconst DEFAULT_INCLUDE_ITEMS = [\n 'store',\n 'settings',\n 'theme',\n 'theme_settings',\n 'external_services',\n 'currencies',\n 'languages',\n 'payments',\n 'product_widgets',\n 'rating',\n 'ratings',\n];\n\n/**\n * Raw API response for settings endpoint.\n * Languages come as object: { \"AR\": { code, name, ... }, \"EN\": {...} }\n */\ninterface SettingsApiResponse {\n store?: Store;\n theme?: Theme;\n languages?: Record<string, Language>;\n currencies?: Record<\n string,\n { code: string; name: string; symbol: string; amount: number; country_code: string }\n >;\n external_services?: Record<string, unknown>;\n headers?: Record<string, unknown>;\n login?: { url: string; turnstile_site_key: string };\n affiliate?: { utm_url: string; cta_enabled: boolean };\n debug?: boolean;\n trace_console?: boolean;\n policy_url?: string;\n}\n\n/**\n * Central settings context - single source of truth for all API data.\n * Contains everything from the settings endpoint response after processing.\n */\nexport interface StoreContext {\n store?: Store;\n theme?: Theme;\n /** Languages as array after conversion from API object format */\n languages?: Language[];\n currencies?: Record<\n string,\n { code: string; name: string; symbol: string; amount: number; country_code: string }\n >;\n external_services?: Record<string, unknown>;\n headers?: Record<string, unknown>;\n login?: { url: string; turnstile_site_key: string };\n affiliate?: { utm_url: string; cta_enabled: boolean };\n debug?: boolean;\n trace_console?: boolean; // todo:: remove it\n policy_url?: string;\n}\n\nexport function resolveStoreIdentifier(explicit?: string): string {\n if (explicit) return explicit;\n try {\n const viteEnv = (import.meta as { env?: { VITE_STORE_DOMAIN?: string } }).env\n ?.VITE_STORE_DOMAIN;\n if (viteEnv) return viteEnv;\n } catch {\n /* import.meta not available in all environments */\n }\n const isBrowser = typeof window !== 'undefined';\n if (isBrowser) return window.location.host;\n return (typeof process !== 'undefined' && process.env?.STORE_DOMAIN) || '';\n}\n\n/**\n * Converts languages object from API to array format.\n * API returns: { \"AR\": { code, name, ... }, \"EN\": { ... } }\n * We need: [{ code, name, ... }, { code, name, ... }]\n * todo:: return the languages as object from the APIs to avoid this\n */\nfunction languagesToArray(languages?: Record<string, Language>): Language[] | undefined {\n if (!languages) return undefined;\n // The SDK's localization modal reads `lang.iso_code` (not `code`) when a language is\n // selected — without it the switch navigates to `/undefined/...`.\n return Object.values(languages).map((lang) => ({ iso_code: lang.code, ...lang }));\n}\n\nexport const store = {\n settings: async (storeIdentifier?: string): Promise<StoreContext | null> => {\n const identifier = storeIdentifier ?? resolveStoreIdentifier();\n\n if (!identifier) {\n console.warn('[store.settings] No store identifier available');\n return null;\n }\n\n const includeParams = DEFAULT_INCLUDE_ITEMS.map((i) => `include[]=${i}`).join('&');\n const scopeId = getActiveScopeId();\n const params = scopeId != null ? `${includeParams}&scope=${scopeId}` : includeParams;\n\n try {\n const json = await api\n .get(`store/settings?${params}`, { timeout: 5000 })\n .json<{ data?: SettingsApiResponse }>();\n\n const data = json?.data;\n if (!data) return null;\n\n // Convert languages from object to array\n const languages = languagesToArray(data.languages);\n\n return {\n store: data.store,\n theme: data.theme,\n languages,\n currencies: data.currencies,\n external_services: data.external_services,\n headers: data.headers,\n login: data.login,\n affiliate: data.affiliate,\n policy_url: data.policy_url,\n };\n } catch (error) {\n console.error('[store.settings] Failed:', error);\n return null;\n }\n },\n\n queries: {\n settings: (storeIdentifier?: string) =>\n queryOptions<StoreContext | null>({\n queryKey: [\n 'store',\n 'settings',\n storeIdentifier,\n getTwilightContext().locale,\n getActiveScopeId(),\n ],\n queryFn: () => store.settings(storeIdentifier),\n }),\n },\n};\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { cdn } from './chunk-2TB2LTL2.js';
|
|
2
|
+
import { queryOptions } from '@tanstack/react-query';
|
|
3
|
+
|
|
4
|
+
var TRANSLATIONS_CDN_FALLBACK = "js/translations.json";
|
|
5
|
+
var translations = {
|
|
6
|
+
get: async () => {
|
|
7
|
+
try {
|
|
8
|
+
const data = await cdn.get(TRANSLATIONS_CDN_FALLBACK, { timeout: 5e3 }).json();
|
|
9
|
+
return data ?? null;
|
|
10
|
+
} catch {
|
|
11
|
+
console.warn("[translations.get] Failed to load translations");
|
|
12
|
+
return null;
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
queries: {
|
|
16
|
+
byLocale: () => queryOptions({
|
|
17
|
+
queryKey: ["translations"],
|
|
18
|
+
queryFn: () => translations.get()
|
|
19
|
+
})
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
export { translations };
|
|
24
|
+
//# sourceMappingURL=chunk-M6ICEIWY.js.map
|
|
25
|
+
//# sourceMappingURL=chunk-M6ICEIWY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/api/translations.ts"],"names":[],"mappings":";;;AAIA,IAAM,yBAAA,GAA4B,sBAAA;AAC3B,IAAM,YAAA,GAAe;AAAA,EAC1B,KAAK,YAAiD;AACpD,IAAA,IAAI;AACF,MAAA,MAAM,IAAA,GAAO,MAAM,GAAA,CAChB,GAAA,CAAI,yBAAA,EAA2B,EAAE,OAAA,EAAS,GAAA,EAAM,CAAA,CAChD,IAAA,EAA0B;AAC7B,MAAA,OAAO,IAAA,IAAQ,IAAA;AAAA,IACjB,CAAA,CAAA,MAAQ;AACN,MAAA,OAAA,CAAQ,KAAK,gDAAgD,CAAA;AAC7D,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,cAAc,CAAA;AAAA,MACzB,OAAA,EAAS,MAAM,YAAA,CAAa,GAAA;AAAI,KACjC;AAAA;AAEP","file":"chunk-M6ICEIWY.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { cdn } from './client';\nimport type { TranslationMessages } from '../providers/i18n';\n\nconst TRANSLATIONS_CDN_FALLBACK = 'js/translations.json';\nexport const translations = {\n get: async (): Promise<TranslationMessages | null> => {\n try {\n const data = await cdn\n .get(TRANSLATIONS_CDN_FALLBACK, { timeout: 5000 })\n .json<TranslationMessages>();\n return data ?? null;\n } catch {\n console.warn('[translations.get] Failed to load translations');\n return null;\n }\n },\n\n queries: {\n byLocale: () =>\n queryOptions({\n queryKey: ['translations'],\n queryFn: () => translations.get(),\n }),\n },\n};\n"]}
|