@salla.sa/twilight-theme-engine 1.0.105 → 1.0.106
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AddToCartForm-LWSRJJSF.js → AddToCartForm-DQ3VNTFE.js} +3 -3
- package/dist/{AddToCartForm-LWSRJJSF.js.map → AddToCartForm-DQ3VNTFE.js.map} +1 -1
- package/dist/{BlogAuthorPage-E2BONAKB.js → BlogAuthorPage-DSFZ6OLA.js} +7 -7
- package/dist/{BlogAuthorPage-E2BONAKB.js.map → BlogAuthorPage-DSFZ6OLA.js.map} +1 -1
- package/dist/{BlogCategoryPage-F5G35XQE.js → BlogCategoryPage-AD5LV4R3.js} +7 -7
- package/dist/{BlogCategoryPage-F5G35XQE.js.map → BlogCategoryPage-AD5LV4R3.js.map} +1 -1
- package/dist/{BlogPage-W4NDWE5Q.js → BlogPage-GXGSY6ET.js} +6 -6
- package/dist/{BlogPage-W4NDWE5Q.js.map → BlogPage-GXGSY6ET.js.map} +1 -1
- package/dist/{BlogSinglePage-543VMKSI.js → BlogSinglePage-KHF37HSX.js} +6 -6
- package/dist/{BlogSinglePage-543VMKSI.js.map → BlogSinglePage-KHF37HSX.js.map} +1 -1
- package/dist/{BlogTagPage-KDQVHQ65.js → BlogTagPage-OSWZDEND.js} +7 -7
- package/dist/{BlogTagPage-KDQVHQ65.js.map → BlogTagPage-OSWZDEND.js.map} +1 -1
- package/dist/{BrandsPage-ABKUKE5J.js → BrandsPage-T2AVCDET.js} +6 -6
- package/dist/{BrandsPage-ABKUKE5J.js.map → BrandsPage-T2AVCDET.js.map} +1 -1
- package/dist/{Breadcrumb-WBTLVXYF.js → Breadcrumb-6CMWBRFH.js} +6 -6
- package/dist/{Breadcrumb-WBTLVXYF.js.map → Breadcrumb-6CMWBRFH.js.map} +1 -1
- package/dist/{CartItem-KNFR7K7Z.js → CartItem-SVR5WS4N.js} +6 -6
- package/dist/{CartItem-KNFR7K7Z.js.map → CartItem-SVR5WS4N.js.map} +1 -1
- package/dist/{CartSummary-EQ4GTR4Y.js → CartSummary-RCX2NAF5.js} +6 -6
- package/dist/{CartSummary-EQ4GTR4Y.js.map → CartSummary-RCX2NAF5.js.map} +1 -1
- package/dist/{Copyright-NYKF6LY5.js → Copyright-N2V5LBLG.js} +3 -3
- package/dist/{Copyright-NYKF6LY5.js.map → Copyright-N2V5LBLG.js.map} +1 -1
- package/dist/{CustomerLayout-NY4LOV3Y.js → CustomerLayout-WHXOXK46.js} +6 -6
- package/dist/{CustomerLayout-NY4LOV3Y.js.map → CustomerLayout-WHXOXK46.js.map} +1 -1
- package/dist/{Footer-DRKA2MI6.js → Footer-WWPE5TZT.js} +4 -4
- package/dist/{Footer-DRKA2MI6.js.map → Footer-WWPE5TZT.js.map} +1 -1
- package/dist/{Header-JBZRD2WU.js → Header-NXUFMN3V.js} +4 -4
- package/dist/{Header-JBZRD2WU.js.map → Header-NXUFMN3V.js.map} +1 -1
- package/dist/{LoyaltyPage-VOAUC2CY.js → LoyaltyPage-DORPKRUO.js} +6 -6
- package/dist/{LoyaltyPage-VOAUC2CY.js.map → LoyaltyPage-DORPKRUO.js.map} +1 -1
- package/dist/{LoyaltyPointsPage-I5U5NFK3.js → LoyaltyPointsPage-QFK6SI23.js} +3 -3
- package/dist/{LoyaltyPointsPage-I5U5NFK3.js.map → LoyaltyPointsPage-QFK6SI23.js.map} +1 -1
- package/dist/{MainMenu-SWP46RPJ.js → MainMenu-VV7XR3W3.js} +3 -3
- package/dist/{MainMenu-SWP46RPJ.js.map → MainMenu-VV7XR3W3.js.map} +1 -1
- package/dist/MaintenancePage-IKWAGFKU.js +7 -0
- package/dist/{MaintenancePage-MGWJYB2O.js.map → MaintenancePage-IKWAGFKU.js.map} +1 -1
- package/dist/{MasterLayout-BF2E47SE.js → MasterLayout-BCIRVCX5.js} +6 -6
- package/dist/{MasterLayout-BF2E47SE.js.map → MasterLayout-BCIRVCX5.js.map} +1 -1
- package/dist/{MobileMenu-LBOVOA6D.js → MobileMenu-PYCT6V4P.js} +6 -6
- package/dist/{MobileMenu-LBOVOA6D.js.map → MobileMenu-PYCT6V4P.js.map} +1 -1
- package/dist/{NotificationsPage-FNFKEOX3.js → NotificationsPage-6WNYAZOR.js} +6 -6
- package/dist/{NotificationsPage-FNFKEOX3.js.map → NotificationsPage-6WNYAZOR.js.map} +1 -1
- package/dist/{OrderSinglePage-EGCPZ25S.js → OrderSinglePage-YV3LBB7I.js} +6 -6
- package/dist/{OrderSinglePage-EGCPZ25S.js.map → OrderSinglePage-YV3LBB7I.js.map} +1 -1
- package/dist/{OrdersPage-DOK3AE37.js → OrdersPage-PPTYNBK2.js} +6 -6
- package/dist/{OrdersPage-DOK3AE37.js.map → OrdersPage-PPTYNBK2.js.map} +1 -1
- package/dist/{PageSingle-4NYB7VCI.js → PageSingle-JBRR5X3B.js} +3 -3
- package/dist/{PageSingle-4NYB7VCI.js.map → PageSingle-JBRR5X3B.js.map} +1 -1
- package/dist/{ProductDetails-EJ6WKSLO.js → ProductDetails-EGIMNYEY.js} +3 -3
- package/dist/{ProductDetails-EJ6WKSLO.js.map → ProductDetails-EGIMNYEY.js.map} +1 -1
- package/dist/{ProfilePage-RQJNJFAV.js → ProfilePage-4NDLJCST.js} +6 -6
- package/dist/{ProfilePage-RQJNJFAV.js.map → ProfilePage-4NDLJCST.js.map} +1 -1
- package/dist/{ReviewsPage-SSVTW76R.js → ReviewsPage-IB3HTSSY.js} +3 -3
- package/dist/{ReviewsPage-SSVTW76R.js.map → ReviewsPage-IB3HTSSY.js.map} +1 -1
- package/dist/{SeoCartWidget-I3T6MEYN.js → SeoCartWidget-TZQUVTS7.js} +6 -6
- package/dist/{SeoCartWidget-I3T6MEYN.js.map → SeoCartWidget-TZQUVTS7.js.map} +1 -1
- package/dist/{SettingsPage-F2PHWF6M.js → SettingsPage-ZSN2P2XD.js} +6 -6
- package/dist/{SettingsPage-F2PHWF6M.js.map → SettingsPage-ZSN2P2XD.js.map} +1 -1
- package/dist/{StoreClosedNotification-A55JL5ZF.js → StoreClosedNotification-WJGHUXGJ.js} +7 -7
- package/dist/{StoreClosedNotification-A55JL5ZF.js.map → StoreClosedNotification-WJGHUXGJ.js.map} +1 -1
- package/dist/{TestimonialsPage-P3NQ4MD6.js → TestimonialsPage-AF7EIJMK.js} +3 -3
- package/dist/{TestimonialsPage-P3NQ4MD6.js.map → TestimonialsPage-AF7EIJMK.js.map} +1 -1
- package/dist/{ThankYouPage-NGQHYJV5.js → ThankYouPage-NPUUJ4M6.js} +6 -6
- package/dist/{ThankYouPage-NGQHYJV5.js.map → ThankYouPage-NPUUJ4M6.js.map} +1 -1
- package/dist/{WalletPage-QKMWV2NA.js → WalletPage-5T7UBXH4.js} +6 -6
- package/dist/{WalletPage-QKMWV2NA.js.map → WalletPage-5T7UBXH4.js.map} +1 -1
- package/dist/{WishlistPage-HOR22EBU.js → WishlistPage-IYKIDZT2.js} +6 -6
- package/dist/{WishlistPage-HOR22EBU.js.map → WishlistPage-IYKIDZT2.js.map} +1 -1
- package/dist/{chunk-MHDOK7GH.js → chunk-4H7HB3HQ.js} +4 -4
- package/dist/{chunk-MHDOK7GH.js.map → chunk-4H7HB3HQ.js.map} +1 -1
- package/dist/{chunk-D6IJYZ7U.js → chunk-5Q3SDXVC.js} +5 -5
- package/dist/{chunk-D6IJYZ7U.js.map → chunk-5Q3SDXVC.js.map} +1 -1
- package/dist/{chunk-PLW6MTSL.js → chunk-6W4J6ZDX.js} +4 -4
- package/dist/{chunk-PLW6MTSL.js.map → chunk-6W4J6ZDX.js.map} +1 -1
- package/dist/{chunk-BHNY4T4O.js → chunk-BHV2RZWY.js} +4 -4
- package/dist/{chunk-BHNY4T4O.js.map → chunk-BHV2RZWY.js.map} +1 -1
- package/dist/{chunk-42RKFHJG.js → chunk-EL2IPQLA.js} +3 -3
- package/dist/{chunk-42RKFHJG.js.map → chunk-EL2IPQLA.js.map} +1 -1
- package/dist/chunk-JJIXGYVN.js +14 -0
- package/dist/{chunk-TCTKM34I.js.map → chunk-JJIXGYVN.js.map} +1 -1
- package/dist/{chunk-3PSJH6Q4.js → chunk-RCRE66QK.js} +4 -4
- package/dist/chunk-RCRE66QK.js.map +1 -0
- package/dist/{chunk-YMHL73TL.js → chunk-TYLJMWSI.js} +3 -3
- package/dist/{chunk-YMHL73TL.js.map → chunk-TYLJMWSI.js.map} +1 -1
- package/dist/{chunk-PXM3FBPO.js → chunk-U5TBXUQT.js} +3 -3
- package/dist/{chunk-PXM3FBPO.js.map → chunk-U5TBXUQT.js.map} +1 -1
- package/dist/{chunk-JP5XQJKO.js → chunk-UAKYRNUV.js} +3 -3
- package/dist/{chunk-JP5XQJKO.js.map → chunk-UAKYRNUV.js.map} +1 -1
- package/dist/{chunk-TYTYD6AK.js → chunk-W2FFROOO.js} +3 -3
- package/dist/{chunk-TYTYD6AK.js.map → chunk-W2FFROOO.js.map} +1 -1
- package/dist/{chunk-6SXIAFXW.js → chunk-WLGTF3V4.js} +7 -7
- package/dist/{chunk-6SXIAFXW.js.map → chunk-WLGTF3V4.js.map} +1 -1
- package/dist/{chunk-YXCJBX6X.js → chunk-YD4TVUA4.js} +6 -6
- package/dist/{chunk-YXCJBX6X.js.map → chunk-YD4TVUA4.js.map} +1 -1
- package/dist/{chunk-P7N3TZFE.js → chunk-ZTH65CJY.js} +55 -10
- package/dist/chunk-ZTH65CJY.js.map +1 -0
- package/dist/components/cart/index.js +1 -1
- package/dist/components/common/index.js +1 -1
- package/dist/components/drawer/index.js +4 -4
- package/dist/components/home/index.js +6 -6
- package/dist/components/layout/index.js +1 -1
- package/dist/components/product/index.js +5 -5
- package/dist/components/store/MaintenanceDevBar.d.ts +9 -0
- package/dist/components/store/MaintenanceDevBar.d.ts.map +1 -0
- package/dist/components/store/MaintenancePage.d.ts.map +1 -1
- package/dist/components/store/index.js +6 -6
- package/dist/{document-class-AQ7FGLPE.js → document-class-JTMWALK3.js} +3 -3
- package/dist/{document-class-AQ7FGLPE.js.map → document-class-JTMWALK3.js.map} +1 -1
- package/dist/hooks/index.js +4 -4
- package/dist/hooks/useGtm.js +4 -4
- package/dist/hooks/useMoney.js +4 -4
- package/dist/hooks/useStore.js +4 -4
- package/dist/index.js +4 -4
- package/dist/{not-found-RBWKACRW.js → not-found-RLM7SV7P.js} +6 -6
- package/dist/{not-found-RBWKACRW.js.map → not-found-RLM7SV7P.js.map} +1 -1
- package/dist/providers/TwilightProvider.d.ts.map +1 -1
- package/dist/providers/index.js +4 -4
- package/dist/routes/account/orders.js +1 -1
- package/dist/routes/account.js +6 -6
- package/dist/routes/blog.js +5 -5
- package/dist/routes/brands.js +1 -1
- package/dist/routes/cart.js +8 -8
- package/dist/routes/home.js +7 -7
- package/dist/routes/loyalty.js +2 -2
- package/dist/routes/page.js +1 -1
- package/dist/routes/product-listing.js +6 -6
- package/dist/routes/product.js +6 -6
- package/dist/routes/testimonials.js +2 -2
- package/dist/routes/thank-you.js +1 -1
- package/dist/skeleton.js +7 -7
- package/dist/tanstack.js +1 -1
- package/package.json +1 -1
- package/tailwind/components/store/MaintenanceDevBar.tsx.txt +57 -0
- package/tailwind/components/store/MaintenancePage.tsx.txt +7 -2
- package/dist/MaintenancePage-MGWJYB2O.js +0 -7
- package/dist/chunk-3PSJH6Q4.js.map +0 -1
- package/dist/chunk-P7N3TZFE.js.map +0 -1
- package/dist/chunk-TCTKM34I.js +0 -14
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":[],"names":[],"mappings":"","file":"document-class-
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"document-class-JTMWALK3.js"}
|
package/dist/hooks/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { registerDefaultHooks, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { registerDefaultHooks, useBreadcrumbs, useDate, useGtm, useMoney, useNumber, useOpeningHours, usePageConfig, useStore } from '../chunk-ZTH65CJY.js';
|
|
2
|
+
import '../chunk-5Q3SDXVC.js';
|
|
3
|
+
import '../chunk-U5TBXUQT.js';
|
|
4
4
|
import '../chunk-D2VMJV3L.js';
|
|
5
5
|
import '../chunk-S6SP272Z.js';
|
|
6
6
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -33,7 +33,7 @@ export { HookSlot, useIsClient } from '../chunk-5XDPAKF5.js';
|
|
|
33
33
|
export { HookRegistry, defineHooks, hookRegistry } from '../chunk-GCPEMNSU.js';
|
|
34
34
|
import '../chunk-KTLQV4Q4.js';
|
|
35
35
|
import '../chunk-TYNZ5B2B.js';
|
|
36
|
-
import '../chunk-
|
|
36
|
+
import '../chunk-W2FFROOO.js';
|
|
37
37
|
import '../chunk-AXW67SY7.js';
|
|
38
38
|
import '../chunk-BYMOPN2S.js';
|
|
39
39
|
import '../chunk-SKLEJJ6M.js';
|
package/dist/hooks/useGtm.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { useGtm } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { useGtm } from '../chunk-ZTH65CJY.js';
|
|
2
|
+
import '../chunk-5Q3SDXVC.js';
|
|
3
|
+
import '../chunk-U5TBXUQT.js';
|
|
4
4
|
import '../chunk-D2VMJV3L.js';
|
|
5
5
|
import '../chunk-S6SP272Z.js';
|
|
6
6
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
|
|
|
33
33
|
import '../chunk-GCPEMNSU.js';
|
|
34
34
|
import '../chunk-KTLQV4Q4.js';
|
|
35
35
|
import '../chunk-TYNZ5B2B.js';
|
|
36
|
-
import '../chunk-
|
|
36
|
+
import '../chunk-W2FFROOO.js';
|
|
37
37
|
import '../chunk-AXW67SY7.js';
|
|
38
38
|
import '../chunk-BYMOPN2S.js';
|
|
39
39
|
import '../chunk-SKLEJJ6M.js';
|
package/dist/hooks/useMoney.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { useMoney } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { useMoney } from '../chunk-ZTH65CJY.js';
|
|
2
|
+
import '../chunk-5Q3SDXVC.js';
|
|
3
|
+
import '../chunk-U5TBXUQT.js';
|
|
4
4
|
import '../chunk-D2VMJV3L.js';
|
|
5
5
|
import '../chunk-S6SP272Z.js';
|
|
6
6
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
|
|
|
33
33
|
import '../chunk-GCPEMNSU.js';
|
|
34
34
|
import '../chunk-KTLQV4Q4.js';
|
|
35
35
|
import '../chunk-TYNZ5B2B.js';
|
|
36
|
-
import '../chunk-
|
|
36
|
+
import '../chunk-W2FFROOO.js';
|
|
37
37
|
import '../chunk-AXW67SY7.js';
|
|
38
38
|
import '../chunk-BYMOPN2S.js';
|
|
39
39
|
import '../chunk-SKLEJJ6M.js';
|
package/dist/hooks/useStore.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { useStore } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { useStore } from '../chunk-ZTH65CJY.js';
|
|
2
|
+
import '../chunk-5Q3SDXVC.js';
|
|
3
|
+
import '../chunk-U5TBXUQT.js';
|
|
4
4
|
import '../chunk-D2VMJV3L.js';
|
|
5
5
|
import '../chunk-S6SP272Z.js';
|
|
6
6
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
|
|
|
33
33
|
import '../chunk-GCPEMNSU.js';
|
|
34
34
|
import '../chunk-KTLQV4Q4.js';
|
|
35
35
|
import '../chunk-TYNZ5B2B.js';
|
|
36
|
-
import '../chunk-
|
|
36
|
+
import '../chunk-W2FFROOO.js';
|
|
37
37
|
import '../chunk-AXW67SY7.js';
|
|
38
38
|
import '../chunk-BYMOPN2S.js';
|
|
39
39
|
import '../chunk-SKLEJJ6M.js';
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { registry } from './chunk-Y32RHCOH.js';
|
|
2
2
|
export { ComponentRegistry, registry } from './chunk-Y32RHCOH.js';
|
|
3
|
-
export { TwilightProvider } from './chunk-
|
|
4
|
-
import './chunk-
|
|
5
|
-
import './chunk-
|
|
3
|
+
export { TwilightProvider } from './chunk-ZTH65CJY.js';
|
|
4
|
+
import './chunk-5Q3SDXVC.js';
|
|
5
|
+
import './chunk-U5TBXUQT.js';
|
|
6
6
|
import './chunk-D2VMJV3L.js';
|
|
7
7
|
import './chunk-S6SP272Z.js';
|
|
8
8
|
import './chunk-LPAWMUJR.js';
|
|
@@ -35,7 +35,7 @@ import './chunk-5XDPAKF5.js';
|
|
|
35
35
|
import './chunk-GCPEMNSU.js';
|
|
36
36
|
import './chunk-KTLQV4Q4.js';
|
|
37
37
|
import './chunk-TYNZ5B2B.js';
|
|
38
|
-
import './chunk-
|
|
38
|
+
import './chunk-W2FFROOO.js';
|
|
39
39
|
import './chunk-AXW67SY7.js';
|
|
40
40
|
import './chunk-BYMOPN2S.js';
|
|
41
41
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { product } from './chunk-VJQ7SM4O.js';
|
|
2
|
-
import './chunk-
|
|
3
|
-
import './chunk-
|
|
4
|
-
import './chunk-
|
|
2
|
+
import './chunk-ZTH65CJY.js';
|
|
3
|
+
import './chunk-5Q3SDXVC.js';
|
|
4
|
+
import './chunk-U5TBXUQT.js';
|
|
5
5
|
import './chunk-D2VMJV3L.js';
|
|
6
6
|
import './chunk-S6SP272Z.js';
|
|
7
7
|
import './chunk-LPAWMUJR.js';
|
|
@@ -34,7 +34,7 @@ import { HookSlot } from './chunk-5XDPAKF5.js';
|
|
|
34
34
|
import './chunk-GCPEMNSU.js';
|
|
35
35
|
import './chunk-KTLQV4Q4.js';
|
|
36
36
|
import { useTranslation } from './chunk-TYNZ5B2B.js';
|
|
37
|
-
import { LazyErrorPage } from './chunk-
|
|
37
|
+
import { LazyErrorPage } from './chunk-W2FFROOO.js';
|
|
38
38
|
import './chunk-AXW67SY7.js';
|
|
39
39
|
import './chunk-BYMOPN2S.js';
|
|
40
40
|
import './chunk-SKLEJJ6M.js';
|
|
@@ -151,5 +151,5 @@ function NotFoundPage(props = {}) {
|
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
export { NotFoundPage };
|
|
154
|
-
//# sourceMappingURL=not-found-
|
|
155
|
-
//# sourceMappingURL=not-found-
|
|
154
|
+
//# sourceMappingURL=not-found-RLM7SV7P.js.map
|
|
155
|
+
//# sourceMappingURL=not-found-RLM7SV7P.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/routes/product-short-link.ts","../src/routes/not-found.tsx"],"names":[],"mappings":"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","file":"not-found-RBWKACRW.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { product } from '../api/product';\nimport { isLocale } from '../providers/locale-constants';\nimport { useLocation, useNavigate } from '../providers/NavigationProvider';\n\n/** Short codes are 5-10 letters/digits (e.g. `lvXvzln`). */\nconst SHORT_CODE = /^[A-Za-z0-9]{5,10}$/;\n\n/**\n * The product short code in a path shaped `/{locale}/{code}` or `/{code}` (the\n * store base is already stripped from the router's location), plus the locale\n * segment to keep when redirecting. `null` for any other path.\n */\nexport function parseShortLinkPath(pathname: string): { code: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n if (segments.length === 2 && isLocale(segments[0]) && SHORT_CODE.test(segments[1])) {\n return { code: segments[1], locale: segments[0] };\n }\n if (segments.length === 1 && !isLocale(segments[0]) && SHORT_CODE.test(segments[0])) {\n return { code: segments[0] };\n }\n return null;\n}\n\n/** A product URL in the stores' \"new URLs\" format: `{sku}-{name}`, or `p{id}-{name}` without a SKU. */\nconst PRODUCT_KEY = /^([0-9A-Za-z]+)-./;\n\n/** The `{sku}` or `p{id}` key of `/{locale}/{sku}-{name}` or `/{sku}-{name}`, with that locale. */\nexport function parseProductKeyPath(pathname: string): { key: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n const hasLocale = segments.length === 2 && isLocale(segments[0]);\n if (!hasLocale && (segments.length !== 1 || isLocale(segments[0]))) return null;\n const key = segments[segments.length - 1].match(PRODUCT_KEY)?.[1];\n if (!key) return null;\n return hasLocale ? { key, locale: segments[0] } : { key };\n}\n\nfunction productKeyOf(url: string | undefined): string | undefined {\n try {\n const last = new URL(url ?? '').pathname.split('/').filter(Boolean).pop() ?? '';\n return last.match(PRODUCT_KEY)?.[1];\n } catch {\n return undefined;\n }\n}\n\n/** Like Laravel: `p{id}` is the id; anything else is a SKU, which only search can find. */\nasync function findByProductKey(key: string): Promise<number | null> {\n const id = key.match(/^p(\\d+)$/)?.[1];\n if (id) return Number(id);\n const { items } = await product.list({ source: 'search', keyword: key, perPage: 50 });\n const found = items.find((item) => productKeyOf(item.url) === key);\n return found ? Number(found.id) : null;\n}\n\n/** The SEO slug from a product URL (`…/{slug}/p{id}`), `-` when it has none. */\nexport function slugFromProductUrl(url: string | undefined): string {\n try {\n const segments = new URL(url ?? '').pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1] ?? '';\n return /^p\\d+$/.test(last) && segments.length > 1 ? segments[segments.length - 2] : '-';\n } catch {\n return '-';\n }\n}\n\n/**\n * Resolves a product URL that matched no route, a short link (`/ar/lvXvzln`) or\n * a \"new URLs\" one (`/ar/1213asa-chocolate`), and replaces the URL with the\n * product's page. Returns `true` while a lookup is in flight (so the 404 isn't\n * flashed); settles to `false` when the path is neither or doesn't resolve.\n */\nexport function useProductShortLink(): boolean {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const shortLink = parseShortLinkPath(pathname);\n const productKey = parseProductKeyPath(pathname);\n const lookup = shortLink?.code ?? productKey?.key;\n const locale = shortLink?.locale ?? productKey?.locale;\n const isShortLink = !!shortLink;\n const [failed, setFailed] = useState<string | null>(null);\n\n useEffect(() => {\n if (!lookup) return;\n let cancelled = false;\n const productPath = isShortLink\n ? product\n .find(lookup)\n .then((found) => (found?.id ? `${slugFromProductUrl(found.url)}/p${found.id}` : null))\n : findByProductKey(lookup).then((id) => (id ? `-/p${id}` : null));\n productPath\n .then((path) => {\n if (cancelled) return;\n if (!path) return setFailed(lookup);\n navigate(`${locale ? `/${locale}` : ''}/${path}`, { replace: true });\n })\n .catch(() => !cancelled && setFailed(lookup));\n return () => {\n cancelled = true;\n };\n }, [lookup, isShortLink, locale, navigate]);\n\n return !!lookup && failed !== lookup;\n}\n","import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\nimport { useProductShortLink } from './product-short-link';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n // A product short link (`/ar/lvXvzln`) or \"new URLs\" link (`/ar/1213asa-name`) matches no route; resolve it instead of 404ing.\n const resolvingShortLink = useProductShortLink();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n if (resolvingShortLink) return null;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/routes/product-short-link.ts","../src/routes/not-found.tsx"],"names":[],"mappings":"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","file":"not-found-RLM7SV7P.js","sourcesContent":["import { useEffect, useState } from 'react';\nimport { product } from '../api/product';\nimport { isLocale } from '../providers/locale-constants';\nimport { useLocation, useNavigate } from '../providers/NavigationProvider';\n\n/** Short codes are 5-10 letters/digits (e.g. `lvXvzln`). */\nconst SHORT_CODE = /^[A-Za-z0-9]{5,10}$/;\n\n/**\n * The product short code in a path shaped `/{locale}/{code}` or `/{code}` (the\n * store base is already stripped from the router's location), plus the locale\n * segment to keep when redirecting. `null` for any other path.\n */\nexport function parseShortLinkPath(pathname: string): { code: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n if (segments.length === 2 && isLocale(segments[0]) && SHORT_CODE.test(segments[1])) {\n return { code: segments[1], locale: segments[0] };\n }\n if (segments.length === 1 && !isLocale(segments[0]) && SHORT_CODE.test(segments[0])) {\n return { code: segments[0] };\n }\n return null;\n}\n\n/** A product URL in the stores' \"new URLs\" format: `{sku}-{name}`, or `p{id}-{name}` without a SKU. */\nconst PRODUCT_KEY = /^([0-9A-Za-z]+)-./;\n\n/** The `{sku}` or `p{id}` key of `/{locale}/{sku}-{name}` or `/{sku}-{name}`, with that locale. */\nexport function parseProductKeyPath(pathname: string): { key: string; locale?: string } | null {\n const segments = pathname.split('/').filter(Boolean);\n const hasLocale = segments.length === 2 && isLocale(segments[0]);\n if (!hasLocale && (segments.length !== 1 || isLocale(segments[0]))) return null;\n const key = segments[segments.length - 1].match(PRODUCT_KEY)?.[1];\n if (!key) return null;\n return hasLocale ? { key, locale: segments[0] } : { key };\n}\n\nfunction productKeyOf(url: string | undefined): string | undefined {\n try {\n const last = new URL(url ?? '').pathname.split('/').filter(Boolean).pop() ?? '';\n return last.match(PRODUCT_KEY)?.[1];\n } catch {\n return undefined;\n }\n}\n\n/** Like Laravel: `p{id}` is the id; anything else is a SKU, which only search can find. */\nasync function findByProductKey(key: string): Promise<number | null> {\n const id = key.match(/^p(\\d+)$/)?.[1];\n if (id) return Number(id);\n const { items } = await product.list({ source: 'search', keyword: key, perPage: 50 });\n const found = items.find((item) => productKeyOf(item.url) === key);\n return found ? Number(found.id) : null;\n}\n\n/** The SEO slug from a product URL (`…/{slug}/p{id}`), `-` when it has none. */\nexport function slugFromProductUrl(url: string | undefined): string {\n try {\n const segments = new URL(url ?? '').pathname.split('/').filter(Boolean);\n const last = segments[segments.length - 1] ?? '';\n return /^p\\d+$/.test(last) && segments.length > 1 ? segments[segments.length - 2] : '-';\n } catch {\n return '-';\n }\n}\n\n/**\n * Resolves a product URL that matched no route, a short link (`/ar/lvXvzln`) or\n * a \"new URLs\" one (`/ar/1213asa-chocolate`), and replaces the URL with the\n * product's page. Returns `true` while a lookup is in flight (so the 404 isn't\n * flashed); settles to `false` when the path is neither or doesn't resolve.\n */\nexport function useProductShortLink(): boolean {\n const { pathname } = useLocation();\n const navigate = useNavigate();\n const shortLink = parseShortLinkPath(pathname);\n const productKey = parseProductKeyPath(pathname);\n const lookup = shortLink?.code ?? productKey?.key;\n const locale = shortLink?.locale ?? productKey?.locale;\n const isShortLink = !!shortLink;\n const [failed, setFailed] = useState<string | null>(null);\n\n useEffect(() => {\n if (!lookup) return;\n let cancelled = false;\n const productPath = isShortLink\n ? product\n .find(lookup)\n .then((found) => (found?.id ? `${slugFromProductUrl(found.url)}/p${found.id}` : null))\n : findByProductKey(lookup).then((id) => (id ? `-/p${id}` : null));\n productPath\n .then((path) => {\n if (cancelled) return;\n if (!path) return setFailed(lookup);\n navigate(`${locale ? `/${locale}` : ''}/${path}`, { replace: true });\n })\n .catch(() => !cancelled && setFailed(lookup));\n return () => {\n cancelled = true;\n };\n }, [lookup, isShortLink, locale, navigate]);\n\n return !!lookup && failed !== lookup;\n}\n","import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\nimport { useProductShortLink } from './product-short-link';\n\nexport interface NotFoundPageProps {\n title?: string;\n message?: string;\n showHomeLink?: boolean;\n homeLinkText?: string;\n LinkComponent?: ComponentType<{\n to: string;\n className?: string;\n style?: React.CSSProperties;\n children: ReactNode;\n }>;\n}\n\nexport function NotFoundPage(props: NotFoundPageProps = {}) {\n const { t } = useTranslation();\n // A product short link (`/ar/lvXvzln`) or \"new URLs\" link (`/ar/1213asa-name`) matches no route; resolve it instead of 404ing.\n const resolvingShortLink = useProductShortLink();\n\n const {\n title = t('common.errors.404') || 'Page Not Found',\n message = t('common.errors.error_occurred') ||\n 'The page you are looking for does not exist or has been moved.',\n showHomeLink = true,\n homeLinkText = t('common.elements.back_home') || 'Back to Home',\n LinkComponent,\n } = props;\n\n if (resolvingShortLink) return null;\n\n return (\n <ErrorPage\n code={404}\n title={title}\n message={message}\n showAction={showHomeLink}\n actionText={homeLinkText}\n LinkComponent={LinkComponent}\n >\n <HookSlot name=\"notfound:start\" />\n <HookSlot name=\"notfound:content\" />\n <HookSlot name=\"notfound:end\" />\n </ErrorPage>\n );\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TwilightProvider.d.ts","sourceRoot":"","sources":["../../src/providers/TwilightProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"TwilightProvider.d.ts","sourceRoot":"","sources":["../../src/providers/TwilightProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAuE,MAAM,OAAO,CAAC;AA4B5F,OAAO,KAAK,EAGV,qBAAqB,EAEtB,MAAM,mBAAmB,CAAC;AAgB3B,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,YAAY,EAAE,qBAAqB,EAAE,CAAC;AAUtC,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,KAAa,EACb,QAAQ,EACR,YAAY,EAAE,iBAAiB,EAC/B,OAAO,EACP,OAAO,EACP,MAAwD,EACxD,KAAY,EACZ,mBAAqC,EACrC,cAAqB,EACrB,UAAiB,EACjB,MAAM,EAAE,eAA8B,EACtC,eAAe,EAAE,wBAA8C,GAChE,EAAE,qBAAqB,GAAG,KAAK,CAAC,YAAY,CAgT5C;AAED,eAAe,gBAAgB,CAAC"}
|
package/dist/providers/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
3
|
-
import '../chunk-
|
|
1
|
+
export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-ZTH65CJY.js';
|
|
2
|
+
import '../chunk-5Q3SDXVC.js';
|
|
3
|
+
import '../chunk-U5TBXUQT.js';
|
|
4
4
|
import '../chunk-D2VMJV3L.js';
|
|
5
5
|
import '../chunk-S6SP272Z.js';
|
|
6
6
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -33,7 +33,7 @@ import '../chunk-5XDPAKF5.js';
|
|
|
33
33
|
import '../chunk-GCPEMNSU.js';
|
|
34
34
|
import '../chunk-KTLQV4Q4.js';
|
|
35
35
|
import '../chunk-TYNZ5B2B.js';
|
|
36
|
-
import '../chunk-
|
|
36
|
+
import '../chunk-W2FFROOO.js';
|
|
37
37
|
import '../chunk-AXW67SY7.js';
|
|
38
38
|
export { LinkProvider, LinkProviderError, createLinkWithAdapter, useLinkAdapter } from '../chunk-BYMOPN2S.js';
|
|
39
39
|
import '../chunk-SKLEJJ6M.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-
|
|
1
|
+
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-6W4J6ZDX.js';
|
|
2
2
|
import '../../chunk-SDEBSX6Z.js';
|
|
3
3
|
import '../../chunk-4SZZPXM2.js';
|
|
4
4
|
import '../../chunk-V7QFIGQ4.js';
|
package/dist/routes/account.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { wallet } from '../chunk-MSNU4NYS.js';
|
|
2
|
-
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-
|
|
2
|
+
export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-6W4J6ZDX.js';
|
|
3
3
|
import '../chunk-SDEBSX6Z.js';
|
|
4
4
|
import { notification } from '../chunk-STKR2KHL.js';
|
|
5
5
|
import { wishlist } from '../chunk-RSWRKU4X.js';
|
|
@@ -31,7 +31,7 @@ async function profileLoader(_ctx) {
|
|
|
31
31
|
|
|
32
32
|
// src/routes/account/profile/index.tsx
|
|
33
33
|
var LazyProfilePage = lazy(
|
|
34
|
-
() => import('../ProfilePage-
|
|
34
|
+
() => import('../ProfilePage-4NDLJCST.js').then((m) => ({ default: m.ProfilePage }))
|
|
35
35
|
);
|
|
36
36
|
var ProfilePage = LazyProfilePage;
|
|
37
37
|
var Profile = {
|
|
@@ -73,7 +73,7 @@ async function wishlistLoader(ctx) {
|
|
|
73
73
|
|
|
74
74
|
// src/routes/account/wishlist/index.tsx
|
|
75
75
|
var LazyWishlistPage = lazy(
|
|
76
|
-
() => import('../WishlistPage-
|
|
76
|
+
() => import('../WishlistPage-IYKIDZT2.js').then((m) => ({ default: m.WishlistPage }))
|
|
77
77
|
);
|
|
78
78
|
var WishlistPage = LazyWishlistPage;
|
|
79
79
|
var Wishlist = {
|
|
@@ -115,7 +115,7 @@ async function walletLoader(ctx) {
|
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
// src/routes/account/wallet/index.tsx
|
|
118
|
-
var LazyWalletPage = lazy(() => import('../WalletPage-
|
|
118
|
+
var LazyWalletPage = lazy(() => import('../WalletPage-5T7UBXH4.js').then((m) => ({ default: m.WalletPage })));
|
|
119
119
|
var WalletPage = LazyWalletPage;
|
|
120
120
|
var Wallet = {
|
|
121
121
|
id: RouteId.CUSTOMER_WALLET,
|
|
@@ -151,7 +151,7 @@ async function notificationsLoader(_ctx) {
|
|
|
151
151
|
|
|
152
152
|
// src/routes/account/notifications/index.tsx
|
|
153
153
|
var LazyNotificationsPage = lazy(
|
|
154
|
-
() => import('../NotificationsPage-
|
|
154
|
+
() => import('../NotificationsPage-6WNYAZOR.js').then((m) => ({ default: m.NotificationsPage }))
|
|
155
155
|
);
|
|
156
156
|
var NotificationsPage = LazyNotificationsPage;
|
|
157
157
|
var Notifications = {
|
|
@@ -184,7 +184,7 @@ async function settingsLoader(_ctx) {
|
|
|
184
184
|
|
|
185
185
|
// src/routes/account/settings/index.tsx
|
|
186
186
|
var LazySettingsPage = lazy(
|
|
187
|
-
() => import('../SettingsPage-
|
|
187
|
+
() => import('../SettingsPage-ZSN2P2XD.js').then((m) => ({ default: m.SettingsPage }))
|
|
188
188
|
);
|
|
189
189
|
var SettingsPage = LazySettingsPage;
|
|
190
190
|
var Settings = {
|
package/dist/routes/blog.js
CHANGED
|
@@ -145,18 +145,18 @@ async function blogTagLoader({
|
|
|
145
145
|
}
|
|
146
146
|
|
|
147
147
|
// src/routes/blog/index.tsx
|
|
148
|
-
var LazyBlogPage = lazy(() => import('../BlogPage-
|
|
148
|
+
var LazyBlogPage = lazy(() => import('../BlogPage-GXGSY6ET.js').then((m) => ({ default: m.BlogPage })));
|
|
149
149
|
var LazyBlogSinglePage = lazy(
|
|
150
|
-
() => import('../BlogSinglePage-
|
|
150
|
+
() => import('../BlogSinglePage-KHF37HSX.js').then((m) => ({ default: m.BlogSinglePage }))
|
|
151
151
|
);
|
|
152
152
|
var LazyBlogAuthorPage = lazy(
|
|
153
|
-
() => import('../BlogAuthorPage-
|
|
153
|
+
() => import('../BlogAuthorPage-DSFZ6OLA.js').then((m) => ({ default: m.BlogAuthorPage }))
|
|
154
154
|
);
|
|
155
155
|
var LazyBlogCategoryPage = lazy(
|
|
156
|
-
() => import('../BlogCategoryPage-
|
|
156
|
+
() => import('../BlogCategoryPage-AD5LV4R3.js').then((m) => ({ default: m.BlogCategoryPage }))
|
|
157
157
|
);
|
|
158
158
|
var LazyBlogTagPage = lazy(
|
|
159
|
-
() => import('../BlogTagPage-
|
|
159
|
+
() => import('../BlogTagPage-OSWZDEND.js').then((m) => ({ default: m.BlogTagPage }))
|
|
160
160
|
);
|
|
161
161
|
var BlogPage = LazyBlogPage;
|
|
162
162
|
var BlogSinglePage = LazyBlogSinglePage;
|
package/dist/routes/brands.js
CHANGED
|
@@ -24,7 +24,7 @@ async function brandsLoader() {
|
|
|
24
24
|
}
|
|
25
25
|
|
|
26
26
|
// src/routes/brands/index.tsx
|
|
27
|
-
var LazyBrandsPage = lazy(() => import('../BrandsPage-
|
|
27
|
+
var LazyBrandsPage = lazy(() => import('../BrandsPage-T2AVCDET.js').then((m) => ({ default: m.BrandsPage })));
|
|
28
28
|
var BrandsPage = LazyBrandsPage;
|
|
29
29
|
async function brandsLoaderWithExtend(_ctx, extend) {
|
|
30
30
|
const data = await brandsLoader();
|
package/dist/routes/cart.js
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { cart } from '../chunk-HGY7P2Y3.js';
|
|
2
2
|
import { loyalty } from '../chunk-5L6IBYWZ.js';
|
|
3
3
|
import { CartSkeleton } from '../chunk-N7CCSGZF.js';
|
|
4
|
-
import '../chunk-
|
|
5
|
-
import '../chunk-
|
|
4
|
+
import '../chunk-TYLJMWSI.js';
|
|
5
|
+
import '../chunk-BHV2RZWY.js';
|
|
6
6
|
import '../chunk-42YMCOK4.js';
|
|
7
7
|
import '../chunk-VJQ7SM4O.js';
|
|
8
|
-
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-
|
|
9
|
-
import '../chunk-
|
|
8
|
+
import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-JJIXGYVN.js';
|
|
9
|
+
import '../chunk-YD4TVUA4.js';
|
|
10
10
|
import '../chunk-Y32RHCOH.js';
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
13
|
-
import '../chunk-
|
|
11
|
+
import '../chunk-ZTH65CJY.js';
|
|
12
|
+
import '../chunk-5Q3SDXVC.js';
|
|
13
|
+
import '../chunk-U5TBXUQT.js';
|
|
14
14
|
import '../chunk-D2VMJV3L.js';
|
|
15
15
|
import '../chunk-S6SP272Z.js';
|
|
16
16
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -43,7 +43,7 @@ import { HookSlot } from '../chunk-5XDPAKF5.js';
|
|
|
43
43
|
import '../chunk-GCPEMNSU.js';
|
|
44
44
|
import '../chunk-KTLQV4Q4.js';
|
|
45
45
|
import { useTranslation } from '../chunk-TYNZ5B2B.js';
|
|
46
|
-
import { LazyBreadcrumb, LazyNoContent } from '../chunk-
|
|
46
|
+
import { LazyBreadcrumb, LazyNoContent } from '../chunk-W2FFROOO.js';
|
|
47
47
|
import '../chunk-AXW67SY7.js';
|
|
48
48
|
import '../chunk-BYMOPN2S.js';
|
|
49
49
|
import '../chunk-SKLEJJ6M.js';
|
package/dist/routes/home.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
export { Home, HomeSkeleton, homeLoader } from '../chunk-
|
|
2
|
-
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-
|
|
1
|
+
export { Home, HomeSkeleton, homeLoader } from '../chunk-TYLJMWSI.js';
|
|
2
|
+
export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-BHV2RZWY.js';
|
|
3
3
|
import '../chunk-42YMCOK4.js';
|
|
4
4
|
import '../chunk-VJQ7SM4O.js';
|
|
5
|
-
import '../chunk-
|
|
5
|
+
import '../chunk-YD4TVUA4.js';
|
|
6
6
|
import '../chunk-Y32RHCOH.js';
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
9
|
-
import '../chunk-
|
|
7
|
+
import '../chunk-ZTH65CJY.js';
|
|
8
|
+
import '../chunk-5Q3SDXVC.js';
|
|
9
|
+
import '../chunk-U5TBXUQT.js';
|
|
10
10
|
import '../chunk-D2VMJV3L.js';
|
|
11
11
|
import '../chunk-S6SP272Z.js';
|
|
12
12
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -39,7 +39,7 @@ import '../chunk-5XDPAKF5.js';
|
|
|
39
39
|
import '../chunk-GCPEMNSU.js';
|
|
40
40
|
import '../chunk-KTLQV4Q4.js';
|
|
41
41
|
import '../chunk-TYNZ5B2B.js';
|
|
42
|
-
import '../chunk-
|
|
42
|
+
import '../chunk-W2FFROOO.js';
|
|
43
43
|
import '../chunk-AXW67SY7.js';
|
|
44
44
|
import '../chunk-BYMOPN2S.js';
|
|
45
45
|
import '../chunk-SKLEJJ6M.js';
|
package/dist/routes/loyalty.js
CHANGED
|
@@ -58,10 +58,10 @@ async function loyaltyPointsLoader(locale) {
|
|
|
58
58
|
|
|
59
59
|
// src/routes/loyalty/index.tsx
|
|
60
60
|
var LazyLoyaltyPage = lazy(
|
|
61
|
-
() => import('../LoyaltyPage-
|
|
61
|
+
() => import('../LoyaltyPage-DORPKRUO.js').then((m) => ({ default: m.LoyaltyPage }))
|
|
62
62
|
);
|
|
63
63
|
var LazyLoyaltyPointsPage = lazy(
|
|
64
|
-
() => import('../LoyaltyPointsPage-
|
|
64
|
+
() => import('../LoyaltyPointsPage-QFK6SI23.js').then((m) => ({ default: m.LoyaltyPointsPage }))
|
|
65
65
|
);
|
|
66
66
|
var LoyaltyPage = LazyLoyaltyPage;
|
|
67
67
|
var LoyaltyPointsPage = LazyLoyaltyPointsPage;
|
package/dist/routes/page.js
CHANGED
|
@@ -29,7 +29,7 @@ async function pageSingleLoader({ params }) {
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
// src/routes/page/index.tsx
|
|
32
|
-
var LazyPageSingle = lazy(() => import('../PageSingle-
|
|
32
|
+
var LazyPageSingle = lazy(() => import('../PageSingle-JBRR5X3B.js').then((m) => ({ default: m.PageSingle })));
|
|
33
33
|
var PageSingleLazy = LazyPageSingle;
|
|
34
34
|
async function loader(ctx, extend) {
|
|
35
35
|
const data = await pageSingleLoader({ params: ctx.params });
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import { SORT_IDS, availableSortIds, sortOptions } from '../chunk-3LZJXKVO.js';
|
|
2
2
|
import { category } from '../chunk-UWDS42UX.js';
|
|
3
3
|
import { brand } from '../chunk-ZE262XHY.js';
|
|
4
|
-
import { useReorderButtons, LazyTestimonials } from '../chunk-
|
|
4
|
+
import { useReorderButtons, LazyTestimonials } from '../chunk-BHV2RZWY.js';
|
|
5
5
|
import '../chunk-42YMCOK4.js';
|
|
6
6
|
import { product, parseNextPageToken } from '../chunk-VJQ7SM4O.js';
|
|
7
7
|
import { Drawer } from '../chunk-6TKIUG5C.js';
|
|
8
|
-
import { ProductCard } from '../chunk-
|
|
8
|
+
import { ProductCard } from '../chunk-YD4TVUA4.js';
|
|
9
9
|
import { registry, COMPONENT_KEYS } from '../chunk-Y32RHCOH.js';
|
|
10
|
-
import { useStore } from '../chunk-
|
|
11
|
-
import '../chunk-
|
|
12
|
-
import '../chunk-
|
|
10
|
+
import { useStore } from '../chunk-ZTH65CJY.js';
|
|
11
|
+
import '../chunk-5Q3SDXVC.js';
|
|
12
|
+
import '../chunk-U5TBXUQT.js';
|
|
13
13
|
import '../chunk-D2VMJV3L.js';
|
|
14
14
|
import '../chunk-S6SP272Z.js';
|
|
15
15
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -42,7 +42,7 @@ import { HookSlot } from '../chunk-5XDPAKF5.js';
|
|
|
42
42
|
import '../chunk-GCPEMNSU.js';
|
|
43
43
|
import { getAuthToken } from '../chunk-KTLQV4Q4.js';
|
|
44
44
|
import { useTranslation } from '../chunk-TYNZ5B2B.js';
|
|
45
|
-
import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-
|
|
45
|
+
import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-W2FFROOO.js';
|
|
46
46
|
import '../chunk-AXW67SY7.js';
|
|
47
47
|
import '../chunk-BYMOPN2S.js';
|
|
48
48
|
import '../chunk-SKLEJJ6M.js';
|
package/dist/routes/product.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { ProductsSlider, LazyTestimonials } from '../chunk-
|
|
1
|
+
import { ProductsSlider, LazyTestimonials } from '../chunk-BHV2RZWY.js';
|
|
2
2
|
import '../chunk-42YMCOK4.js';
|
|
3
3
|
import { product } from '../chunk-VJQ7SM4O.js';
|
|
4
|
-
import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-
|
|
4
|
+
import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-YD4TVUA4.js';
|
|
5
5
|
import '../chunk-Y32RHCOH.js';
|
|
6
|
-
import { fastCheckoutScript } from '../chunk-
|
|
7
|
-
import '../chunk-
|
|
8
|
-
import '../chunk-
|
|
6
|
+
import { fastCheckoutScript } from '../chunk-ZTH65CJY.js';
|
|
7
|
+
import '../chunk-5Q3SDXVC.js';
|
|
8
|
+
import '../chunk-U5TBXUQT.js';
|
|
9
9
|
import '../chunk-D2VMJV3L.js';
|
|
10
10
|
import '../chunk-S6SP272Z.js';
|
|
11
11
|
import '../chunk-LPAWMUJR.js';
|
|
@@ -38,7 +38,7 @@ import { HookSlot } from '../chunk-5XDPAKF5.js';
|
|
|
38
38
|
import '../chunk-GCPEMNSU.js';
|
|
39
39
|
import { getActiveCurrency } from '../chunk-KTLQV4Q4.js';
|
|
40
40
|
import { useTranslation } from '../chunk-TYNZ5B2B.js';
|
|
41
|
-
import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-
|
|
41
|
+
import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-W2FFROOO.js';
|
|
42
42
|
import '../chunk-AXW67SY7.js';
|
|
43
43
|
import '../chunk-BYMOPN2S.js';
|
|
44
44
|
import '../chunk-SKLEJJ6M.js';
|
|
@@ -32,10 +32,10 @@ async function reviewsLoader() {
|
|
|
32
32
|
|
|
33
33
|
// src/routes/testimonials/index.tsx
|
|
34
34
|
var LazyTestimonialsPage = lazy(
|
|
35
|
-
() => import('../TestimonialsPage-
|
|
35
|
+
() => import('../TestimonialsPage-AF7EIJMK.js').then((m) => ({ default: m.TestimonialsPage }))
|
|
36
36
|
);
|
|
37
37
|
var LazyReviewsPage = lazy(
|
|
38
|
-
() => import('../ReviewsPage-
|
|
38
|
+
() => import('../ReviewsPage-IB3HTSSY.js').then((m) => ({ default: m.ReviewsPage }))
|
|
39
39
|
);
|
|
40
40
|
var TestimonialsPage = LazyTestimonialsPage;
|
|
41
41
|
var ReviewsPage = LazyReviewsPage;
|
package/dist/routes/thank-you.js
CHANGED
|
@@ -40,7 +40,7 @@ async function thankYouLoader({
|
|
|
40
40
|
|
|
41
41
|
// src/routes/thank-you/index.tsx
|
|
42
42
|
var LazyThankYouPage = lazy(
|
|
43
|
-
() => import('../ThankYouPage-
|
|
43
|
+
() => import('../ThankYouPage-NPUUJ4M6.js').then((m) => ({ default: m.ThankYouPage }))
|
|
44
44
|
);
|
|
45
45
|
var ThankYouPage = LazyThankYouPage;
|
|
46
46
|
async function loader(ctx, extend) {
|
package/dist/skeleton.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
export { BlogSkeleton, BreadcrumbSkeleton, CartSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from './chunk-N7CCSGZF.js';
|
|
2
|
-
export { HomeSkeleton } from './chunk-
|
|
3
|
-
import './chunk-
|
|
2
|
+
export { HomeSkeleton } from './chunk-TYLJMWSI.js';
|
|
3
|
+
import './chunk-BHV2RZWY.js';
|
|
4
4
|
import './chunk-42YMCOK4.js';
|
|
5
5
|
import './chunk-VJQ7SM4O.js';
|
|
6
|
-
import './chunk-
|
|
6
|
+
import './chunk-YD4TVUA4.js';
|
|
7
7
|
import './chunk-Y32RHCOH.js';
|
|
8
|
-
import './chunk-
|
|
9
|
-
import './chunk-
|
|
10
|
-
import './chunk-
|
|
8
|
+
import './chunk-ZTH65CJY.js';
|
|
9
|
+
import './chunk-5Q3SDXVC.js';
|
|
10
|
+
import './chunk-U5TBXUQT.js';
|
|
11
11
|
import './chunk-D2VMJV3L.js';
|
|
12
12
|
import './chunk-S6SP272Z.js';
|
|
13
13
|
import './chunk-LPAWMUJR.js';
|
|
@@ -40,7 +40,7 @@ import './chunk-5XDPAKF5.js';
|
|
|
40
40
|
import './chunk-GCPEMNSU.js';
|
|
41
41
|
import './chunk-KTLQV4Q4.js';
|
|
42
42
|
import './chunk-TYNZ5B2B.js';
|
|
43
|
-
import './chunk-
|
|
43
|
+
import './chunk-W2FFROOO.js';
|
|
44
44
|
import './chunk-AXW67SY7.js';
|
|
45
45
|
import './chunk-BYMOPN2S.js';
|
|
46
46
|
import './chunk-SKLEJJ6M.js';
|
package/dist/tanstack.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-
|
|
1
|
+
export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-EL2IPQLA.js';
|
|
2
2
|
import { requestHostOf } from './chunk-XD33WKKI.js';
|
|
3
3
|
export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-XD33WKKI.js';
|
|
4
4
|
import './chunk-Z4Y55HWX.js';
|
package/package.json
CHANGED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { CSSProperties } from 'react';
|
|
2
|
+
import { getTwilightContext, hasTwilightSettings } from '../../twilight/context';
|
|
3
|
+
import { useTranslation } from '../../providers/I18nProvider';
|
|
4
|
+
|
|
5
|
+
const BAR: CSSProperties = {
|
|
6
|
+
position: 'fixed',
|
|
7
|
+
insetInline: 0,
|
|
8
|
+
top: 0,
|
|
9
|
+
zIndex: 2147483647,
|
|
10
|
+
display: 'flex',
|
|
11
|
+
flexWrap: 'wrap',
|
|
12
|
+
alignItems: 'center',
|
|
13
|
+
justifyContent: 'center',
|
|
14
|
+
gap: '8px 16px',
|
|
15
|
+
padding: '10px 16px',
|
|
16
|
+
font: '14px/1.4 system-ui, sans-serif',
|
|
17
|
+
color: '#fff',
|
|
18
|
+
background: '#1f2937',
|
|
19
|
+
boxShadow: '0 2px 8px rgb(0 0 0 / 20%)',
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
const LINK: CSSProperties = {
|
|
23
|
+
color: '#fff',
|
|
24
|
+
fontWeight: 600,
|
|
25
|
+
textDecoration: 'underline',
|
|
26
|
+
};
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Dev-server only, pinned over the top of the maintenance page: says why the store did not render
|
|
30
|
+
* and links to the dashboard's own entry (`?utm_source=dashboard&identifier=<store id>`),
|
|
31
|
+
* which `rootBeforeLoad` answers with the owner cookie and the store. The provider
|
|
32
|
+
* mounts it behind `import.meta.env.DEV`, so production builds drop it; the theme's
|
|
33
|
+
* own `maintenancePage` gets it too.
|
|
34
|
+
*/
|
|
35
|
+
export function MaintenanceDevBar() {
|
|
36
|
+
const { t } = useTranslation();
|
|
37
|
+
const storeId = hasTwilightSettings() ? getTwilightContext().settings?.store?.id : undefined;
|
|
38
|
+
if (storeId == null) return null;
|
|
39
|
+
return (
|
|
40
|
+
<aside data-testid="store-maintenance-dev-bar" style={BAR}>
|
|
41
|
+
<span>
|
|
42
|
+
{t('pages.maintenance.dev_hint', {
|
|
43
|
+
defaultValue: 'Twilight dev: this store is in maintenance, so customers get this page.',
|
|
44
|
+
})}
|
|
45
|
+
</span>
|
|
46
|
+
<a
|
|
47
|
+
data-testid="store-maintenance-view-as-merchant"
|
|
48
|
+
href={`?utm_source=dashboard&identifier=${storeId}`}
|
|
49
|
+
style={LINK}
|
|
50
|
+
>
|
|
51
|
+
{t('pages.maintenance.view_as_merchant', {
|
|
52
|
+
defaultValue: 'View the store as the merchant',
|
|
53
|
+
})}
|
|
54
|
+
</a>
|
|
55
|
+
</aside>
|
|
56
|
+
);
|
|
57
|
+
}
|
|
@@ -17,10 +17,15 @@ const SOCIAL_ICONS: [keyof StoreSocial, string][] = [
|
|
|
17
17
|
// The platform's maintenance page (Store `pages/maintenance.blade.php` + `_maintenance.scss`),
|
|
18
18
|
// trimmed to what it renders: greyscale, logo + title beside the message, contacts under a
|
|
19
19
|
// rule, the illustration alongside; stacked and centred under 1024px.
|
|
20
|
+
//
|
|
21
|
+
// The page is its own scroll container, the viewport tall, because app-shell themes lock
|
|
22
|
+
// `html, body { overflow: hidden }` and scroll only their main element, which this page
|
|
23
|
+
// replaces. Centring is by auto margins, not `justify-content`, so content taller than the
|
|
24
|
+
// viewport starts at the top instead of being clipped at both ends.
|
|
20
25
|
const STYLE = `
|
|
21
|
-
.s-maintenance{display:flex;flex-direction:column;align-items:center;
|
|
26
|
+
.s-maintenance{display:flex;flex-direction:column;align-items:center;width:100%;height:100vh;height:100dvh;overflow-y:auto;color:#a3a3a3;background:#fff;filter:grayscale(100%);box-sizing:border-box}
|
|
22
27
|
.s-maintenance *{box-sizing:border-box}
|
|
23
|
-
.s-maintenance .mt-container{width:100%;max-width:1200px;padding:0 15px}
|
|
28
|
+
.s-maintenance .mt-container{width:100%;max-width:1200px;margin:auto 0;padding:0 15px}
|
|
24
29
|
.s-maintenance .mt-panel{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%}
|
|
25
30
|
.s-maintenance .mt-message{width:100%;padding-inline-start:80px;animation:revealMtBlock 1.5s forwards}
|
|
26
31
|
.s-maintenance .mt-title{display:flex;align-items:center;margin:0 0 20px}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
export { MaintenancePage } from './chunk-3PSJH6Q4.js';
|
|
2
|
-
import './chunk-TYNZ5B2B.js';
|
|
3
|
-
import './chunk-HG4B4F4N.js';
|
|
4
|
-
import './chunk-T72DAX7R.js';
|
|
5
|
-
import './chunk-DGUM43GV.js';
|
|
6
|
-
//# sourceMappingURL=MaintenancePage-MGWJYB2O.js.map
|
|
7
|
-
//# sourceMappingURL=MaintenancePage-MGWJYB2O.js.map
|