@salla.sa/twilight-theme-engine 1.0.37 → 1.0.39

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.
Files changed (183) hide show
  1. package/dist/{AddToCartForm-BAXWUVBW.js → AddToCartForm-GTGSQTZC.js} +4 -3
  2. package/dist/AddToCartForm-GTGSQTZC.js.map +1 -0
  3. package/dist/{BlogAuthorPage-C7ENIUKC.js → BlogAuthorPage-BEAHFND7.js} +8 -7
  4. package/dist/BlogAuthorPage-BEAHFND7.js.map +1 -0
  5. package/dist/{BlogCategoryPage-QODJTKFE.js → BlogCategoryPage-SABHZZVS.js} +8 -7
  6. package/dist/BlogCategoryPage-SABHZZVS.js.map +1 -0
  7. package/dist/{BlogPage-N5BKRIWD.js → BlogPage-TOQE5ZTO.js} +7 -6
  8. package/dist/BlogPage-TOQE5ZTO.js.map +1 -0
  9. package/dist/{BlogSinglePage-HVSCXCCV.js → BlogSinglePage-QOKI4OSO.js} +7 -6
  10. package/dist/BlogSinglePage-QOKI4OSO.js.map +1 -0
  11. package/dist/{BlogTagPage-YXYYHD5S.js → BlogTagPage-LX4SKB4Q.js} +8 -7
  12. package/dist/BlogTagPage-LX4SKB4Q.js.map +1 -0
  13. package/dist/{BrandsPage-UP3HKHGR.js → BrandsPage-MKCQBVR6.js} +7 -6
  14. package/dist/BrandsPage-MKCQBVR6.js.map +1 -0
  15. package/dist/{Breadcrumb-5464BOGG.js → Breadcrumb-7PHTPBML.js} +7 -6
  16. package/dist/Breadcrumb-7PHTPBML.js.map +1 -0
  17. package/dist/{CartItem-TARZW35A.js → CartItem-C7LTDYGZ.js} +7 -6
  18. package/dist/CartItem-C7LTDYGZ.js.map +1 -0
  19. package/dist/{CartSummary-2KSBKQM7.js → CartSummary-FIMQY76P.js} +7 -6
  20. package/dist/CartSummary-FIMQY76P.js.map +1 -0
  21. package/dist/{Copyright-2D7W6OS4.js → Copyright-6UKVLT47.js} +4 -3
  22. package/dist/{Copyright-2D7W6OS4.js.map → Copyright-6UKVLT47.js.map} +1 -1
  23. package/dist/{CustomerLayout-Z3JGXMO7.js → CustomerLayout-5OPILJB5.js} +7 -6
  24. package/dist/CustomerLayout-5OPILJB5.js.map +1 -0
  25. package/dist/{Footer-DFZFOH5E.js → Footer-PEYVKRYH.js} +7 -6
  26. package/dist/{Footer-DFZFOH5E.js.map → Footer-PEYVKRYH.js.map} +1 -1
  27. package/dist/{Header-CF5TQMWR.js → Header-VCJOSJZY.js} +5 -4
  28. package/dist/{Header-CF5TQMWR.js.map → Header-VCJOSJZY.js.map} +1 -1
  29. package/dist/{LoyaltyPage-TOXOPXEU.js → LoyaltyPage-X26UDO3B.js} +7 -6
  30. package/dist/LoyaltyPage-X26UDO3B.js.map +1 -0
  31. package/dist/{MainMenu-6VTPCMMJ.js → MainMenu-5N7BOYRS.js} +4 -3
  32. package/dist/MainMenu-5N7BOYRS.js.map +1 -0
  33. package/dist/{MasterLayout-PQ2XGL6A.js → MasterLayout-BAMH2YI7.js} +7 -6
  34. package/dist/{MasterLayout-PQ2XGL6A.js.map → MasterLayout-BAMH2YI7.js.map} +1 -1
  35. package/dist/{MobileMenu-UWDB2BHQ.js → MobileMenu-DTN23HGL.js} +7 -6
  36. package/dist/MobileMenu-DTN23HGL.js.map +1 -0
  37. package/dist/{NotificationsPage-3WUAFRTU.js → NotificationsPage-T34IOOX7.js} +7 -6
  38. package/dist/NotificationsPage-T34IOOX7.js.map +1 -0
  39. package/dist/{OrderSinglePage-T2UE2EJI.js → OrderSinglePage-ZVIWTFDX.js} +7 -6
  40. package/dist/OrderSinglePage-ZVIWTFDX.js.map +1 -0
  41. package/dist/{OrdersPage-762O24YK.js → OrdersPage-PTFAVBHI.js} +7 -6
  42. package/dist/OrdersPage-PTFAVBHI.js.map +1 -0
  43. package/dist/{PageSingle-Y6IVAY3E.js → PageSingle-OBUFVEIG.js} +4 -3
  44. package/dist/PageSingle-OBUFVEIG.js.map +1 -0
  45. package/dist/{ProductDetails-7G7QOLTB.js → ProductDetails-IFQCBWQQ.js} +4 -3
  46. package/dist/ProductDetails-IFQCBWQQ.js.map +1 -0
  47. package/dist/{ProfilePage-H2JWTJJY.js → ProfilePage-Z7VH4V7C.js} +7 -6
  48. package/dist/ProfilePage-Z7VH4V7C.js.map +1 -0
  49. package/dist/{SeoCartWidget-XYWATIV3.js → SeoCartWidget-W4NDM2TO.js} +7 -6
  50. package/dist/SeoCartWidget-W4NDM2TO.js.map +1 -0
  51. package/dist/{SettingsPage-WQX22FTS.js → SettingsPage-XBXP7R2T.js} +7 -6
  52. package/dist/SettingsPage-XBXP7R2T.js.map +1 -0
  53. package/dist/{StoreClosedNotification-TL4XY6OS.js → StoreClosedNotification-A5EGHXHA.js} +8 -7
  54. package/dist/{StoreClosedNotification-TL4XY6OS.js.map → StoreClosedNotification-A5EGHXHA.js.map} +1 -1
  55. package/dist/{TestimonialsPage-PWVTHBOS.js → TestimonialsPage-Q7TVGSFR.js} +4 -3
  56. package/dist/TestimonialsPage-Q7TVGSFR.js.map +1 -0
  57. package/dist/{ThankYouPage-C573J2KJ.js → ThankYouPage-5VPLSMRP.js} +7 -6
  58. package/dist/ThankYouPage-5VPLSMRP.js.map +1 -0
  59. package/dist/{WalletPage-7JE6PELL.js → WalletPage-IR37KTVM.js} +7 -6
  60. package/dist/WalletPage-IR37KTVM.js.map +1 -0
  61. package/dist/{WishlistPage-XTQ6IRG7.js → WishlistPage-ETWCCI6G.js} +9 -7
  62. package/dist/WishlistPage-ETWCCI6G.js.map +1 -0
  63. package/dist/api/product.d.ts +40 -12
  64. package/dist/api/product.d.ts.map +1 -1
  65. package/dist/api/product.js +1 -1
  66. package/dist/api/wishlist.d.ts +10 -4
  67. package/dist/api/wishlist.d.ts.map +1 -1
  68. package/dist/api/wishlist.js +5 -1
  69. package/dist/{chunk-SSRNIBVV.js → chunk-3U26OMNO.js} +4 -4
  70. package/dist/chunk-3U26OMNO.js.map +1 -0
  71. package/dist/{chunk-4PLGRQAS.js → chunk-4ZTHLZOJ.js} +3 -3
  72. package/dist/{chunk-4PLGRQAS.js.map → chunk-4ZTHLZOJ.js.map} +1 -1
  73. package/dist/{chunk-CZS4ZHQK.js → chunk-AA2F3EBJ.js} +4 -24
  74. package/dist/chunk-AA2F3EBJ.js.map +1 -0
  75. package/dist/{chunk-5R5IGGI3.js → chunk-B7EPMCWM.js} +3 -3
  76. package/dist/{chunk-5R5IGGI3.js.map → chunk-B7EPMCWM.js.map} +1 -1
  77. package/dist/chunk-DV2XH7GO.js +14 -0
  78. package/dist/{chunk-BK4VEUF3.js.map → chunk-DV2XH7GO.js.map} +1 -1
  79. package/dist/{chunk-YOA3UVDE.js → chunk-EG52TSNH.js} +4 -4
  80. package/dist/{chunk-YOA3UVDE.js.map → chunk-EG52TSNH.js.map} +1 -1
  81. package/dist/{chunk-EFHSAWDQ.js → chunk-JOIPJKEX.js} +7 -7
  82. package/dist/{chunk-EFHSAWDQ.js.map → chunk-JOIPJKEX.js.map} +1 -1
  83. package/dist/{chunk-KLTQ2UST.js → chunk-KOZYZQH4.js} +8 -5
  84. package/dist/chunk-KOZYZQH4.js.map +1 -0
  85. package/dist/chunk-RN3MT564.js +23 -0
  86. package/dist/chunk-RN3MT564.js.map +1 -0
  87. package/dist/{chunk-FKOBOGLQ.js → chunk-U3JM5FWK.js} +4 -4
  88. package/dist/{chunk-FKOBOGLQ.js.map → chunk-U3JM5FWK.js.map} +1 -1
  89. package/dist/{chunk-ZZA7L3RI.js → chunk-VOOOQPAH.js} +6 -6
  90. package/dist/{chunk-ZZA7L3RI.js.map → chunk-VOOOQPAH.js.map} +1 -1
  91. package/dist/{chunk-63WNORBK.js → chunk-WQLC7PNT.js} +5 -5
  92. package/dist/{chunk-63WNORBK.js.map → chunk-WQLC7PNT.js.map} +1 -1
  93. package/dist/{chunk-5FH6E2FQ.js → chunk-X3B7BDP7.js} +7 -3
  94. package/dist/chunk-X3B7BDP7.js.map +1 -0
  95. package/dist/chunk-XLJPUFN4.js +141 -0
  96. package/dist/chunk-XLJPUFN4.js.map +1 -0
  97. package/dist/{chunk-XLVAVCUV.js → chunk-ZFLBHEHI.js} +5 -5
  98. package/dist/{chunk-XLVAVCUV.js.map → chunk-ZFLBHEHI.js.map} +1 -1
  99. package/dist/components/cart/index.js +1 -1
  100. package/dist/components/common/index.js +2 -1
  101. package/dist/components/drawer/index.js +5 -4
  102. package/dist/components/home/index.js +8 -7
  103. package/dist/components/layout/index.js +5 -5
  104. package/dist/components/product/index.js +6 -5
  105. package/dist/components/store/index.js +7 -6
  106. package/dist/components/store/index.js.map +1 -1
  107. package/dist/{document-class-5BBGX5LN.js → document-class-KL3XOJBW.js} +4 -3
  108. package/dist/{document-class-5BBGX5LN.js.map → document-class-KL3XOJBW.js.map} +1 -1
  109. package/dist/hooks/index.d.ts +1 -1
  110. package/dist/hooks/index.d.ts.map +1 -1
  111. package/dist/hooks/index.js +5 -4
  112. package/dist/hooks/useGtm.js +5 -4
  113. package/dist/hooks/useMoney.js +5 -4
  114. package/dist/hooks/useProduct.d.ts +12 -2
  115. package/dist/hooks/useProduct.d.ts.map +1 -1
  116. package/dist/hooks/useProduct.js +1 -1
  117. package/dist/hooks/useStore.js +5 -4
  118. package/dist/index.js +5 -4
  119. package/dist/index.js.map +1 -1
  120. package/dist/{not-found-QM2L2D7P.js → not-found-5UA4KGON.js} +7 -6
  121. package/dist/not-found-5UA4KGON.js.map +1 -0
  122. package/dist/providers/index.js +5 -4
  123. package/dist/routes/account/orders.js +1 -1
  124. package/dist/routes/account.js +8 -7
  125. package/dist/routes/account.js.map +1 -1
  126. package/dist/routes/blog.js +5 -5
  127. package/dist/routes/brands.js +1 -1
  128. package/dist/routes/cart.js +10 -9
  129. package/dist/routes/cart.js.map +1 -1
  130. package/dist/routes/home.js +9 -8
  131. package/dist/routes/loyalty.js +1 -1
  132. package/dist/routes/page.js +1 -1
  133. package/dist/routes/product-listing.js +8 -7
  134. package/dist/routes/product-listing.js.map +1 -1
  135. package/dist/routes/product.js +8 -7
  136. package/dist/routes/product.js.map +1 -1
  137. package/dist/routes/testimonials.js +1 -1
  138. package/dist/routes/thank-you.js +1 -1
  139. package/dist/skeleton.js +9 -8
  140. package/dist/tanstack/router.d.ts.map +1 -1
  141. package/dist/tanstack.js +3 -2
  142. package/dist/tanstack.js.map +1 -1
  143. package/dist/utils/cdn-image.js +4 -0
  144. package/dist/utils/cdn-image.js.map +1 -0
  145. package/dist/utils/index.js +1 -1
  146. package/dist/vite/index.js +1 -0
  147. package/dist/vite/index.js.map +1 -1
  148. package/dist/vite/plugins/package-aliases.plugin.d.ts.map +1 -1
  149. package/package.json +5 -1
  150. package/dist/AddToCartForm-BAXWUVBW.js.map +0 -1
  151. package/dist/BlogAuthorPage-C7ENIUKC.js.map +0 -1
  152. package/dist/BlogCategoryPage-QODJTKFE.js.map +0 -1
  153. package/dist/BlogPage-N5BKRIWD.js.map +0 -1
  154. package/dist/BlogSinglePage-HVSCXCCV.js.map +0 -1
  155. package/dist/BlogTagPage-YXYYHD5S.js.map +0 -1
  156. package/dist/BrandsPage-UP3HKHGR.js.map +0 -1
  157. package/dist/Breadcrumb-5464BOGG.js.map +0 -1
  158. package/dist/CartItem-TARZW35A.js.map +0 -1
  159. package/dist/CartSummary-2KSBKQM7.js.map +0 -1
  160. package/dist/CustomerLayout-Z3JGXMO7.js.map +0 -1
  161. package/dist/LoyaltyPage-TOXOPXEU.js.map +0 -1
  162. package/dist/MainMenu-6VTPCMMJ.js.map +0 -1
  163. package/dist/MobileMenu-UWDB2BHQ.js.map +0 -1
  164. package/dist/NotificationsPage-3WUAFRTU.js.map +0 -1
  165. package/dist/OrderSinglePage-T2UE2EJI.js.map +0 -1
  166. package/dist/OrdersPage-762O24YK.js.map +0 -1
  167. package/dist/PageSingle-Y6IVAY3E.js.map +0 -1
  168. package/dist/ProductDetails-7G7QOLTB.js.map +0 -1
  169. package/dist/ProfilePage-H2JWTJJY.js.map +0 -1
  170. package/dist/SeoCartWidget-XYWATIV3.js.map +0 -1
  171. package/dist/SettingsPage-WQX22FTS.js.map +0 -1
  172. package/dist/TestimonialsPage-PWVTHBOS.js.map +0 -1
  173. package/dist/ThankYouPage-C573J2KJ.js.map +0 -1
  174. package/dist/WalletPage-7JE6PELL.js.map +0 -1
  175. package/dist/WishlistPage-XTQ6IRG7.js.map +0 -1
  176. package/dist/chunk-5FH6E2FQ.js.map +0 -1
  177. package/dist/chunk-BK4VEUF3.js +0 -14
  178. package/dist/chunk-CZS4ZHQK.js.map +0 -1
  179. package/dist/chunk-KLTQ2UST.js.map +0 -1
  180. package/dist/chunk-SSRNIBVV.js.map +0 -1
  181. package/dist/chunk-VZHYSYKG.js +0 -67
  182. package/dist/chunk-VZHYSYKG.js.map +0 -1
  183. package/dist/not-found-QM2L2D7P.js.map +0 -1
@@ -1,5 +1,5 @@
1
- export { useGtm } from '../chunk-EFHSAWDQ.js';
2
- import '../chunk-63WNORBK.js';
1
+ export { useGtm } from '../chunk-JOIPJKEX.js';
2
+ import '../chunk-WQLC7PNT.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
5
  import '../chunk-6IATCGID.js';
@@ -17,7 +17,7 @@ import '../chunk-6XWMNQ52.js';
17
17
  import '../chunk-TP3LCGE7.js';
18
18
  import '../chunk-Z653O7MX.js';
19
19
  import '../chunk-ZCH7W7DZ.js';
20
- import '../chunk-SSRNIBVV.js';
20
+ import '../chunk-3U26OMNO.js';
21
21
  import '../chunk-JWXJPJBO.js';
22
22
  import '../chunk-CW625T2E.js';
23
23
  import '../chunk-BVSJPBJ6.js';
@@ -29,9 +29,10 @@ import '../chunk-YMVLYYLU.js';
29
29
  import '../chunk-RJPPO3ET.js';
30
30
  import '../chunk-Q7VWURUR.js';
31
31
  import '../chunk-GU2KUQVD.js';
32
- import '../chunk-CZS4ZHQK.js';
32
+ import '../chunk-AA2F3EBJ.js';
33
33
  import '../chunk-AXW67SY7.js';
34
34
  import '../chunk-BYMOPN2S.js';
35
+ import '../chunk-RN3MT564.js';
35
36
  import '../chunk-6BZ5TKEV.js';
36
37
  import '../chunk-FZKRSGLP.js';
37
38
  import '../chunk-CUG6VOLM.js';
@@ -1,5 +1,5 @@
1
- export { useMoney } from '../chunk-EFHSAWDQ.js';
2
- import '../chunk-63WNORBK.js';
1
+ export { useMoney } from '../chunk-JOIPJKEX.js';
2
+ import '../chunk-WQLC7PNT.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
5
  import '../chunk-6IATCGID.js';
@@ -17,7 +17,7 @@ import '../chunk-6XWMNQ52.js';
17
17
  import '../chunk-TP3LCGE7.js';
18
18
  import '../chunk-Z653O7MX.js';
19
19
  import '../chunk-ZCH7W7DZ.js';
20
- import '../chunk-SSRNIBVV.js';
20
+ import '../chunk-3U26OMNO.js';
21
21
  import '../chunk-JWXJPJBO.js';
22
22
  import '../chunk-CW625T2E.js';
23
23
  import '../chunk-BVSJPBJ6.js';
@@ -29,9 +29,10 @@ import '../chunk-YMVLYYLU.js';
29
29
  import '../chunk-RJPPO3ET.js';
30
30
  import '../chunk-Q7VWURUR.js';
31
31
  import '../chunk-GU2KUQVD.js';
32
- import '../chunk-CZS4ZHQK.js';
32
+ import '../chunk-AA2F3EBJ.js';
33
33
  import '../chunk-AXW67SY7.js';
34
34
  import '../chunk-BYMOPN2S.js';
35
+ import '../chunk-RN3MT564.js';
35
36
  import '../chunk-6BZ5TKEV.js';
36
37
  import '../chunk-FZKRSGLP.js';
37
38
  import '../chunk-CUG6VOLM.js';
@@ -8,6 +8,14 @@ export interface UseProductResult {
8
8
  /** Reload product data from API */
9
9
  reload: () => Promise<void>;
10
10
  }
11
+ export interface UseProductOptions {
12
+ /**
13
+ * True while `initialProduct` is a list-card stand-in. When it flips to false
14
+ * (details arrived), state re-seeds. Do not infer this from `options`/`images`
15
+ * — list payloads may include those fields.
16
+ */
17
+ isPreview?: boolean;
18
+ }
11
19
  /**
12
20
  * useProduct - Hook for managing product state with live updates
13
21
  *
@@ -18,7 +26,9 @@ export interface UseProductResult {
18
26
  * Stock status is reflected in `product.is_out_of_stock` which updates
19
27
  * when price calculations succeed or fail (e.g., unavailable option combinations).
20
28
  *
21
- * @param initialProduct - The initial product object (typically from loader/SSR)
29
+ * @param initialProduct - The initial product object (typically from loader/SSR).
30
+ * @param options.isPreview - Pass true for a list-card placeholder so the hook
31
+ * re-seeds when details for the same id arrive (`isPreview` goes false).
22
32
  *
23
33
  * @returns Object with product and reload function
24
34
  *
@@ -43,5 +53,5 @@ export interface UseProductResult {
43
53
  * }
44
54
  * ```
45
55
  */
46
- export declare function useProduct(initialProduct: Product): UseProductResult;
56
+ export declare function useProduct(initialProduct: Product, options?: UseProductOptions): UseProductResult;
47
57
  //# sourceMappingURL=useProduct.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useProduct.d.ts","sourceRoot":"","sources":["../../src/hooks/useProduct.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,OAAO,GAAG,gBAAgB,CAyFpE"}
1
+ {"version":3,"file":"useProduct.d.ts","sourceRoot":"","sources":["../../src/hooks/useProduct.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,wDAAwD;IACxD,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,gBAAgB,CAyFjG"}
@@ -1,4 +1,4 @@
1
- export { useProduct } from '../chunk-SSRNIBVV.js';
1
+ export { useProduct } from '../chunk-3U26OMNO.js';
2
2
  import '../chunk-DGUM43GV.js';
3
3
  //# sourceMappingURL=useProduct.js.map
4
4
  //# sourceMappingURL=useProduct.js.map
@@ -1,5 +1,5 @@
1
- export { useStore } from '../chunk-EFHSAWDQ.js';
2
- import '../chunk-63WNORBK.js';
1
+ export { useStore } from '../chunk-JOIPJKEX.js';
2
+ import '../chunk-WQLC7PNT.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
5
  import '../chunk-6IATCGID.js';
@@ -17,7 +17,7 @@ import '../chunk-6XWMNQ52.js';
17
17
  import '../chunk-TP3LCGE7.js';
18
18
  import '../chunk-Z653O7MX.js';
19
19
  import '../chunk-ZCH7W7DZ.js';
20
- import '../chunk-SSRNIBVV.js';
20
+ import '../chunk-3U26OMNO.js';
21
21
  import '../chunk-JWXJPJBO.js';
22
22
  import '../chunk-CW625T2E.js';
23
23
  import '../chunk-BVSJPBJ6.js';
@@ -29,9 +29,10 @@ import '../chunk-YMVLYYLU.js';
29
29
  import '../chunk-RJPPO3ET.js';
30
30
  import '../chunk-Q7VWURUR.js';
31
31
  import '../chunk-GU2KUQVD.js';
32
- import '../chunk-CZS4ZHQK.js';
32
+ import '../chunk-AA2F3EBJ.js';
33
33
  import '../chunk-AXW67SY7.js';
34
34
  import '../chunk-BYMOPN2S.js';
35
+ import '../chunk-RN3MT564.js';
35
36
  import '../chunk-6BZ5TKEV.js';
36
37
  import '../chunk-FZKRSGLP.js';
37
38
  import '../chunk-CUG6VOLM.js';
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { registry } from './chunk-342EPVXN.js';
2
2
  export { ComponentRegistry, registry } from './chunk-342EPVXN.js';
3
- export { TwilightProvider } from './chunk-EFHSAWDQ.js';
4
- import './chunk-63WNORBK.js';
3
+ export { TwilightProvider } from './chunk-JOIPJKEX.js';
4
+ import './chunk-WQLC7PNT.js';
5
5
  import './chunk-JKIRRMBU.js';
6
6
  import './chunk-2JV6WZ6O.js';
7
7
  import './chunk-6IATCGID.js';
@@ -19,7 +19,7 @@ export { SettingsError } from './chunk-6XWMNQ52.js';
19
19
  export { HookName } from './chunk-TP3LCGE7.js';
20
20
  import './chunk-Z653O7MX.js';
21
21
  import './chunk-ZCH7W7DZ.js';
22
- import './chunk-SSRNIBVV.js';
22
+ import './chunk-3U26OMNO.js';
23
23
  import './chunk-JWXJPJBO.js';
24
24
  import './chunk-CW625T2E.js';
25
25
  import './chunk-BVSJPBJ6.js';
@@ -31,9 +31,10 @@ import './chunk-YMVLYYLU.js';
31
31
  import './chunk-RJPPO3ET.js';
32
32
  import './chunk-Q7VWURUR.js';
33
33
  import './chunk-GU2KUQVD.js';
34
- import './chunk-CZS4ZHQK.js';
34
+ import './chunk-AA2F3EBJ.js';
35
35
  import './chunk-AXW67SY7.js';
36
36
  import './chunk-BYMOPN2S.js';
37
+ import './chunk-RN3MT564.js';
37
38
  import './chunk-6BZ5TKEV.js';
38
39
  import './chunk-FZKRSGLP.js';
39
40
  import './chunk-CUG6VOLM.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/Component.tsx","../src/components/useComponent.ts","../src/components/defineComponent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAAS,UAAU,EAAE,IAAA,EAAM,WAAW,IAAA,EAAM,GAAG,OAAM,EAAoC;AAC9F,EAAA,MAAM,iBAAA,GAAoB,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAE/C,EAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,EAAe;AAC1C,MAAA,MAAA,CAAO,KAAA,EAAO,MAAA,EAAQ,IAAA,CAAK,CAAA,YAAA,EAAe,IAAI,CAAA,uBAAA,CAAyB,CAAA;AAAA,IACzE;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AACvC;;;ACjBO,SAAS,aAA0C,IAAA,EAAuC;AAC/F,EAAA,OAAO,QAAA,CAAS,QAAW,IAAI,CAAA;AACjC;AAEO,SAAS,qBACd,IAAA,EACyB;AACzB,EAAA,OAAO,QAAA,CAAS,YAAe,IAAI,CAAA;AACrC;;;ACFO,SAAS,gBACd,MAAA,EACkB;AAClB,EAAA,IAAI,OAAO,QAAA,EAAU;AACnB,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD,CAAA,MAAO;AACL,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,MAAA,CAAO,SAAA;AAChB;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF","file":"index.js","sourcesContent":["import React from 'react';\nimport { registry } from './ComponentRegistry';\n\nexport interface ComponentProps {\n name: string;\n fallback?: React.ReactNode;\n [key: string]: unknown;\n}\n\nexport function Component({ name, fallback = null, ...props }: ComponentProps): React.ReactNode {\n const ResolvedComponent = registry.resolve(name);\n\n if (!ResolvedComponent) {\n if (process.env.NODE_ENV === 'development') {\n window.salla?.logger?.warn(`Component::\"${name}\" not found in registry`);\n }\n return fallback;\n }\n\n return <ResolvedComponent {...props} />;\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\nexport function useComponent<P = Record<string, unknown>>(name: string): ComponentType<P> | null {\n return registry.resolve<P>(name);\n}\n\nexport function useOriginalComponent<P = Record<string, unknown>>(\n name: string\n): ComponentType<P> | null {\n return registry.getOriginal<P>(name);\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\ninterface DefineComponentConfig<P = Record<string, unknown>> {\n name: string;\n component: ComponentType<P>;\n override?: boolean;\n}\n\nexport function defineComponent<P = Record<string, unknown>>(\n config: DefineComponentConfig<P>\n): ComponentType<P> {\n if (config.override) {\n registry.override(config.name, config.component);\n } else {\n registry.register(config.name, config.component);\n }\n\n return config.component;\n}\n\nexport function registerComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.register(name, component);\n }\n}\n\nexport function overrideComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.override(name, component);\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/components/Component.tsx","../src/components/useComponent.ts","../src/components/defineComponent.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASO,SAAS,UAAU,EAAE,IAAA,EAAM,WAAW,IAAA,EAAM,GAAG,OAAM,EAAoC;AAC9F,EAAA,MAAM,iBAAA,GAAoB,QAAA,CAAS,OAAA,CAAQ,IAAI,CAAA;AAE/C,EAAA,IAAI,CAAC,iBAAA,EAAmB;AACtB,IAAA,IAAI,OAAA,CAAQ,GAAA,CAAI,QAAA,KAAa,aAAA,EAAe;AAC1C,MAAA,MAAA,CAAO,KAAA,EAAO,MAAA,EAAQ,IAAA,CAAK,CAAA,YAAA,EAAe,IAAI,CAAA,uBAAA,CAAyB,CAAA;AAAA,IACzE;AACA,IAAA,OAAO,QAAA;AAAA,EACT;AAEA,EAAA,uBAAO,GAAA,CAAC,iBAAA,EAAA,EAAmB,GAAG,KAAA,EAAO,CAAA;AACvC;;;ACjBO,SAAS,aAA0C,IAAA,EAAuC;AAC/F,EAAA,OAAO,QAAA,CAAS,QAAW,IAAI,CAAA;AACjC;AAEO,SAAS,qBACd,IAAA,EACyB;AACzB,EAAA,OAAO,QAAA,CAAS,YAAe,IAAI,CAAA;AACrC;;;ACFO,SAAS,gBACd,MAAA,EACkB;AAClB,EAAA,IAAI,OAAO,QAAA,EAAU;AACnB,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD,CAAA,MAAO;AACL,IAAA,QAAA,CAAS,QAAA,CAAS,MAAA,CAAO,IAAA,EAAM,MAAA,CAAO,SAAS,CAAA;AAAA,EACjD;AAEA,EAAA,OAAO,MAAA,CAAO,SAAA;AAChB;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF;AAEO,SAAS,mBAAmB,UAAA,EAAiD;AAClF,EAAA,KAAA,MAAW,CAAC,IAAA,EAAM,SAAS,KAAK,MAAA,CAAO,OAAA,CAAQ,UAAU,CAAA,EAAG;AAC1D,IAAA,QAAA,CAAS,QAAA,CAAS,MAAM,SAAS,CAAA;AAAA,EACnC;AACF","file":"index.js","sourcesContent":["import React from 'react';\nimport { registry } from './ComponentRegistry';\n\nexport interface ComponentProps {\n name: string;\n fallback?: React.ReactNode;\n [key: string]: unknown;\n}\n\nexport function Component({ name, fallback = null, ...props }: ComponentProps): React.ReactNode {\n const ResolvedComponent = registry.resolve(name);\n\n if (!ResolvedComponent) {\n if (process.env.NODE_ENV === 'development') {\n window.salla?.logger?.warn(`Component::\"${name}\" not found in registry`);\n }\n return fallback;\n }\n\n return <ResolvedComponent {...props} />;\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\nexport function useComponent<P = Record<string, unknown>>(name: string): ComponentType<P> | null {\n return registry.resolve<P>(name);\n}\n\nexport function useOriginalComponent<P = Record<string, unknown>>(\n name: string\n): ComponentType<P> | null {\n return registry.getOriginal<P>(name);\n}\n","import { registry } from './ComponentRegistry';\nimport type { ComponentType } from '../types';\n\ninterface DefineComponentConfig<P = Record<string, unknown>> {\n name: string;\n component: ComponentType<P>;\n override?: boolean;\n}\n\nexport function defineComponent<P = Record<string, unknown>>(\n config: DefineComponentConfig<P>\n): ComponentType<P> {\n if (config.override) {\n registry.override(config.name, config.component);\n } else {\n registry.register(config.name, config.component);\n }\n\n return config.component;\n}\n\nexport function registerComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.register(name, component);\n }\n}\n\nexport function overrideComponents(components: Record<string, ComponentType>): void {\n for (const [name, component] of Object.entries(components)) {\n registry.override(name, component);\n }\n}\n"]}
@@ -1,5 +1,5 @@
1
- import './chunk-EFHSAWDQ.js';
2
- import './chunk-63WNORBK.js';
1
+ import './chunk-JOIPJKEX.js';
2
+ import './chunk-WQLC7PNT.js';
3
3
  import './chunk-JKIRRMBU.js';
4
4
  import './chunk-2JV6WZ6O.js';
5
5
  import './chunk-6IATCGID.js';
@@ -17,7 +17,7 @@ import './chunk-6XWMNQ52.js';
17
17
  import './chunk-TP3LCGE7.js';
18
18
  import './chunk-Z653O7MX.js';
19
19
  import './chunk-ZCH7W7DZ.js';
20
- import './chunk-SSRNIBVV.js';
20
+ import './chunk-3U26OMNO.js';
21
21
  import './chunk-JWXJPJBO.js';
22
22
  import './chunk-CW625T2E.js';
23
23
  import './chunk-BVSJPBJ6.js';
@@ -29,9 +29,10 @@ import './chunk-YMVLYYLU.js';
29
29
  import './chunk-RJPPO3ET.js';
30
30
  import { HookSlot } from './chunk-Q7VWURUR.js';
31
31
  import './chunk-GU2KUQVD.js';
32
- import { LazyErrorPage } from './chunk-CZS4ZHQK.js';
32
+ import { LazyErrorPage } from './chunk-AA2F3EBJ.js';
33
33
  import './chunk-AXW67SY7.js';
34
34
  import './chunk-BYMOPN2S.js';
35
+ import './chunk-RN3MT564.js';
35
36
  import './chunk-6BZ5TKEV.js';
36
37
  import './chunk-FZKRSGLP.js';
37
38
  import './chunk-CUG6VOLM.js';
@@ -69,5 +70,5 @@ function NotFoundPage(props = {}) {
69
70
  }
70
71
 
71
72
  export { NotFoundPage };
72
- //# sourceMappingURL=not-found-QM2L2D7P.js.map
73
- //# sourceMappingURL=not-found-QM2L2D7P.js.map
73
+ //# sourceMappingURL=not-found-5UA4KGON.js.map
74
+ //# sourceMappingURL=not-found-5UA4KGON.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/routes/not-found.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkBO,SAAS,YAAA,CAAa,KAAA,GAA2B,EAAC,EAAG;AAC1D,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAE7B,EAAA,MAAM;AAAA,IACJ,KAAA,GAAQ,CAAA,CAAE,mBAAmB,CAAA,IAAK,gBAAA;AAAA,IAClC,OAAA,GAAU,CAAA,CAAE,8BAA8B,CAAA,IACxC,gEAAA;AAAA,IACF,YAAA,GAAe,IAAA;AAAA,IACf,YAAA,GAAe,CAAA,CAAE,2BAA2B,CAAA,IAAK,cAAA;AAAA,IACjD;AAAA,GACF,GAAI,KAAA;AAEJ,EAAA,uBACE,IAAA;AAAA,IAAC,aAAA;AAAA,IAAA;AAAA,MACC,IAAA,EAAM,GAAA;AAAA,MACN,KAAA;AAAA,MACA,OAAA;AAAA,MACA,UAAA,EAAY,YAAA;AAAA,MACZ,UAAA,EAAY,YAAA;AAAA,MACZ,aAAA;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,gBAAA,EAAiB,CAAA;AAAA,wBAChC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,kBAAA,EAAmB,CAAA;AAAA,wBAClC,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,cAAA,EAAe;AAAA;AAAA;AAAA,GAChC;AAEJ","file":"not-found-5UA4KGON.js","sourcesContent":["import type { ComponentType, ReactNode } from 'react';\nimport { HookSlot } from '../hooks';\nimport { useTranslation } from '../providers/I18nProvider';\nimport { ErrorPage } from '../components/common';\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\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 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,5 +1,5 @@
1
- export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-EFHSAWDQ.js';
2
- import '../chunk-63WNORBK.js';
1
+ export { TwilightProvider, registerDocumentSync, routeDocumentSyncs } from '../chunk-JOIPJKEX.js';
2
+ import '../chunk-WQLC7PNT.js';
3
3
  import '../chunk-JKIRRMBU.js';
4
4
  import '../chunk-2JV6WZ6O.js';
5
5
  import '../chunk-6IATCGID.js';
@@ -17,7 +17,7 @@ export { SettingsError } from '../chunk-6XWMNQ52.js';
17
17
  import '../chunk-TP3LCGE7.js';
18
18
  import '../chunk-Z653O7MX.js';
19
19
  import '../chunk-ZCH7W7DZ.js';
20
- import '../chunk-SSRNIBVV.js';
20
+ import '../chunk-3U26OMNO.js';
21
21
  export { DocumentClassProvider, useDocumentClassContext, useDocumentClassOutput } from '../chunk-JWXJPJBO.js';
22
22
  import '../chunk-CW625T2E.js';
23
23
  import '../chunk-BVSJPBJ6.js';
@@ -29,9 +29,10 @@ import '../chunk-YMVLYYLU.js';
29
29
  import '../chunk-RJPPO3ET.js';
30
30
  import '../chunk-Q7VWURUR.js';
31
31
  import '../chunk-GU2KUQVD.js';
32
- import '../chunk-CZS4ZHQK.js';
32
+ import '../chunk-AA2F3EBJ.js';
33
33
  import '../chunk-AXW67SY7.js';
34
34
  export { LinkProvider, LinkProviderError, createLinkWithAdapter, useLinkAdapter } from '../chunk-BYMOPN2S.js';
35
+ import '../chunk-RN3MT564.js';
35
36
  import '../chunk-6BZ5TKEV.js';
36
37
  import '../chunk-FZKRSGLP.js';
37
38
  import '../chunk-CUG6VOLM.js';
@@ -1,4 +1,4 @@
1
- export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-FKOBOGLQ.js';
1
+ export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../../chunk-U3JM5FWK.js';
2
2
  import '../../chunk-MCYEMXFY.js';
3
3
  import '../../chunk-TZ3E5BN4.js';
4
4
  import '../../chunk-XLGVT7QF.js';
@@ -1,9 +1,10 @@
1
1
  import { wallet } from '../chunk-OGGWNPF3.js';
2
- export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-FKOBOGLQ.js';
2
+ export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader } from '../chunk-U3JM5FWK.js';
3
3
  import '../chunk-MCYEMXFY.js';
4
4
  import { notification } from '../chunk-CCCKRNO4.js';
5
- import { wishlist } from '../chunk-KLTQ2UST.js';
5
+ import { wishlist } from '../chunk-KOZYZQH4.js';
6
6
  import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
7
+ import '../chunk-XLJPUFN4.js';
7
8
  import { unauthorized, orUnauthorized } from '../chunk-XLGVT7QF.js';
8
9
  import { RouteId } from '../chunk-MTONGOJD.js';
9
10
  import '../chunk-AZ5HAIYQ.js';
@@ -28,7 +29,7 @@ async function profileLoader(_ctx) {
28
29
 
29
30
  // src/routes/account/profile/index.tsx
30
31
  var LazyProfilePage = lazy(
31
- () => import('../ProfilePage-H2JWTJJY.js').then((m) => ({ default: m.ProfilePage }))
32
+ () => import('../ProfilePage-Z7VH4V7C.js').then((m) => ({ default: m.ProfilePage }))
32
33
  );
33
34
  var ProfilePage = LazyProfilePage;
34
35
  var Profile = {
@@ -69,7 +70,7 @@ async function wishlistLoader(ctx) {
69
70
 
70
71
  // src/routes/account/wishlist/index.tsx
71
72
  var LazyWishlistPage = lazy(
72
- () => import('../WishlistPage-XTQ6IRG7.js').then((m) => ({ default: m.WishlistPage }))
73
+ () => import('../WishlistPage-ETWCCI6G.js').then((m) => ({ default: m.WishlistPage }))
73
74
  );
74
75
  var WishlistPage = LazyWishlistPage;
75
76
  var Wishlist = {
@@ -110,7 +111,7 @@ async function walletLoader(ctx) {
110
111
  }
111
112
 
112
113
  // src/routes/account/wallet/index.tsx
113
- var LazyWalletPage = lazy(() => import('../WalletPage-7JE6PELL.js').then((m) => ({ default: m.WalletPage })));
114
+ var LazyWalletPage = lazy(() => import('../WalletPage-IR37KTVM.js').then((m) => ({ default: m.WalletPage })));
114
115
  var WalletPage = LazyWalletPage;
115
116
  var Wallet = {
116
117
  id: RouteId.CUSTOMER_WALLET,
@@ -145,7 +146,7 @@ async function notificationsLoader(_ctx) {
145
146
 
146
147
  // src/routes/account/notifications/index.tsx
147
148
  var LazyNotificationsPage = lazy(
148
- () => import('../NotificationsPage-3WUAFRTU.js').then((m) => ({ default: m.NotificationsPage }))
149
+ () => import('../NotificationsPage-T34IOOX7.js').then((m) => ({ default: m.NotificationsPage }))
149
150
  );
150
151
  var NotificationsPage = LazyNotificationsPage;
151
152
  var Notifications = {
@@ -177,7 +178,7 @@ async function settingsLoader(_ctx) {
177
178
 
178
179
  // src/routes/account/settings/index.tsx
179
180
  var LazySettingsPage = lazy(
180
- () => import('../SettingsPage-WQX22FTS.js').then((m) => ({ default: m.SettingsPage }))
181
+ () => import('../SettingsPage-XBXP7R2T.js').then((m) => ({ default: m.SettingsPage }))
181
182
  );
182
183
  var SettingsPage = LazySettingsPage;
183
184
  var Settings = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/routes/account/profile/loader.ts","../../src/routes/account/profile/index.tsx","../../src/routes/account/wishlist/loader.ts","../../src/routes/account/wishlist/index.tsx","../../src/routes/account/wallet/loader.ts","../../src/routes/account/wallet/index.tsx","../../src/routes/account/notifications/loader.ts","../../src/routes/account/notifications/index.tsx","../../src/routes/account/settings/loader.ts","../../src/routes/account/settings/index.tsx"],"names":["lazy"],"mappings":"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","file":"account.js","sourcesContent":["import type { ProfilePageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function profileLoader(_ctx: { locale: string }): Promise<ProfilePageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: {\n title: i18n.t('common.titles.profile') || 'Profile',\n slug: 'profile',\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { profileLoader } from './loader';\nimport type { ProfilePageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyProfilePage = lazy(() =>\n import('./ProfilePage').then((m) => ({ default: m.ProfilePage }))\n);\n\nexport const ProfilePage = LazyProfilePage;\nexport { profileLoader } from './loader';\nexport type { ProfilePageProps } from './types';\n\nexport const Profile = {\n id: RouteId.CUSTOMER_PROFILE,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: ProfilePageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<ProfilePageProps> => {\n const data = await profileLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as ProfilePageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: ProfilePageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyProfilePage,\n} as const;\n","import type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wishlist } from '../../../api/wishlist';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function wishlistLoader(ctx: LoaderContext): Promise<WishlistPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wishlist.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wishlist') || 'Wishlist',\n slug: 'wishlist',\n },\n query: { page: pageNum },\n products: data.items,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { wishlistLoader } from './loader';\nimport type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWishlistPage = lazy(() =>\n import('./WishlistPage').then((m) => ({ default: m.WishlistPage }))\n);\n\nexport const WishlistPage = LazyWishlistPage;\nexport { wishlistLoader } from './loader';\nexport type { WishlistPageProps } from './types';\n\nexport const Wishlist = {\n id: RouteId.CUSTOMER_WISHLIST,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WishlistPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WishlistPageProps> => {\n const data = await wishlistLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WishlistPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WishlistPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWishlistPage,\n} as const;\n","import type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wallet } from '../../../api/wallet';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function walletLoader(ctx: LoaderContext): Promise<WalletPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wallet.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wallet') || 'Wallet',\n slug: 'wallet',\n },\n query: { page: pageNum },\n transactions: data.items,\n balance: data.balance,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { walletLoader } from './loader';\nimport type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWalletPage = lazy(() => import('./WalletPage').then((m) => ({ default: m.WalletPage })));\n\nexport const WalletPage = LazyWalletPage;\nexport { walletLoader } from './loader';\nexport type { WalletPageProps } from './types';\n\nexport const Wallet = {\n id: RouteId.CUSTOMER_WALLET,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WalletPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WalletPageProps> => {\n const data = await walletLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WalletPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WalletPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWalletPage,\n} as const;\n","import { notification } from '../../../api/notification';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { NotificationsPageProps } from './types';\n\nexport async function notificationsLoader(_ctx: {\n locale: string;\n}): Promise<NotificationsPageProps> {\n const i18n = getTwilightContext().i18n;\n const response = await orUnauthorized(notification.list());\n\n return {\n page: {\n title: i18n.t('common.titles.notifications') || 'Notifications',\n slug: 'notifications',\n },\n notifications: response.data,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { notificationsLoader } from './loader';\nimport type { NotificationsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyNotificationsPage = lazy(() =>\n import('./NotificationsPage').then((m) => ({ default: m.NotificationsPage }))\n);\n\nexport const NotificationsPage = LazyNotificationsPage;\nexport { notificationsLoader } from './loader';\nexport type { NotificationsPageProps, Notification } from './types';\n\nexport const Notifications = {\n id: RouteId.CUSTOMER_NOTIFICATIONS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: NotificationsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<NotificationsPageProps> => {\n const data = await notificationsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as NotificationsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: NotificationsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyNotificationsPage,\n} as const;\n","import type { SettingsPageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function settingsLoader(_ctx: { locale: string }): Promise<SettingsPageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: { title: i18n.t('common.titles.settings') || 'Settings', slug: 'settings' },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { settingsLoader } from './loader';\nimport type { SettingsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazySettingsPage = lazy(() =>\n import('./SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\n\nexport const SettingsPage = LazySettingsPage;\nexport { settingsLoader } from './loader';\nexport type { SettingsPageProps } from './types';\n\nexport const Settings = {\n id: RouteId.CUSTOMER_SETTINGS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: SettingsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<SettingsPageProps> => {\n const data = await settingsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as SettingsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: SettingsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazySettingsPage,\n} as const;\n"]}
1
+ {"version":3,"sources":["../../src/routes/account/profile/loader.ts","../../src/routes/account/profile/index.tsx","../../src/routes/account/wishlist/loader.ts","../../src/routes/account/wishlist/index.tsx","../../src/routes/account/wallet/loader.ts","../../src/routes/account/wallet/index.tsx","../../src/routes/account/notifications/loader.ts","../../src/routes/account/notifications/index.tsx","../../src/routes/account/settings/loader.ts","../../src/routes/account/settings/index.tsx"],"names":["lazy"],"mappings":"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","file":"account.js","sourcesContent":["import type { ProfilePageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function profileLoader(_ctx: { locale: string }): Promise<ProfilePageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: {\n title: i18n.t('common.titles.profile') || 'Profile',\n slug: 'profile',\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { profileLoader } from './loader';\nimport type { ProfilePageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyProfilePage = lazy(() =>\n import('./ProfilePage').then((m) => ({ default: m.ProfilePage }))\n);\n\nexport const ProfilePage = LazyProfilePage;\nexport { profileLoader } from './loader';\nexport type { ProfilePageProps } from './types';\n\nexport const Profile = {\n id: RouteId.CUSTOMER_PROFILE,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: ProfilePageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<ProfilePageProps> => {\n const data = await profileLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as ProfilePageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: ProfilePageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyProfilePage,\n} as const;\n","import type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wishlist } from '../../../api/wishlist';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function wishlistLoader(ctx: LoaderContext): Promise<WishlistPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wishlist.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wishlist') || 'Wishlist',\n slug: 'wishlist',\n },\n query: { page: pageNum },\n products: data.items,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { wishlistLoader } from './loader';\nimport type { WishlistPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWishlistPage = lazy(() =>\n import('./WishlistPage').then((m) => ({ default: m.WishlistPage }))\n);\n\nexport const WishlistPage = LazyWishlistPage;\nexport { wishlistLoader } from './loader';\nexport type { WishlistPageProps } from './types';\n\nexport const Wishlist = {\n id: RouteId.CUSTOMER_WISHLIST,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WishlistPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WishlistPageProps> => {\n const data = await wishlistLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WishlistPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WishlistPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWishlistPage,\n} as const;\n","import type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport { wallet } from '../../../api/wallet';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\n\nexport async function walletLoader(ctx: LoaderContext): Promise<WalletPageProps> {\n const pageNum = Number(ctx.search?.page) || 1;\n const data = await orUnauthorized(wallet.list({ page: pageNum }));\n\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n title: i18n.t('common.titles.wallet') || 'Wallet',\n slug: 'wallet',\n },\n query: { page: pageNum },\n transactions: data.items,\n balance: data.balance,\n pagination: {\n next: data.next,\n },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { walletLoader } from './loader';\nimport type { WalletPageProps } from './types';\nimport type { LoaderContext } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyWalletPage = lazy(() => import('./WalletPage').then((m) => ({ default: m.WalletPage })));\n\nexport const WalletPage = LazyWalletPage;\nexport { walletLoader } from './loader';\nexport type { WalletPageProps } from './types';\n\nexport const Wallet = {\n id: RouteId.CUSTOMER_WALLET,\n loader: async (\n ctx: LoaderContext,\n extend?: (\n data: WalletPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<WalletPageProps> => {\n const data = await walletLoader(ctx);\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as WalletPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: WalletPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyWalletPage,\n} as const;\n","import { notification } from '../../../api/notification';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { NotificationsPageProps } from './types';\n\nexport async function notificationsLoader(_ctx: {\n locale: string;\n}): Promise<NotificationsPageProps> {\n const i18n = getTwilightContext().i18n;\n const response = await orUnauthorized(notification.list());\n\n return {\n page: {\n title: i18n.t('common.titles.notifications') || 'Notifications',\n slug: 'notifications',\n },\n notifications: response.data,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { notificationsLoader } from './loader';\nimport type { NotificationsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazyNotificationsPage = lazy(() =>\n import('./NotificationsPage').then((m) => ({ default: m.NotificationsPage }))\n);\n\nexport const NotificationsPage = LazyNotificationsPage;\nexport { notificationsLoader } from './loader';\nexport type { NotificationsPageProps, Notification } from './types';\n\nexport const Notifications = {\n id: RouteId.CUSTOMER_NOTIFICATIONS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: NotificationsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<NotificationsPageProps> => {\n const data = await notificationsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as NotificationsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: NotificationsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazyNotificationsPage,\n} as const;\n","import type { SettingsPageProps } from './types';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { unauthorized } from '../../../providers/NavigationProvider';\n\nexport async function settingsLoader(_ctx: { locale: string }): Promise<SettingsPageProps> {\n const { authToken, i18n } = getTwilightContext();\n if (!authToken) throw unauthorized();\n return {\n page: { title: i18n.t('common.titles.settings') || 'Settings', slug: 'settings' },\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { settingsLoader } from './loader';\nimport type { SettingsPageProps } from './types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\nconst LazySettingsPage = lazy(() =>\n import('./SettingsPage').then((m) => ({ default: m.SettingsPage }))\n);\n\nexport const SettingsPage = LazySettingsPage;\nexport { settingsLoader } from './loader';\nexport type { SettingsPageProps } from './types';\n\nexport const Settings = {\n id: RouteId.CUSTOMER_SETTINGS,\n loader: async (\n _ctx: { locale?: string },\n extend?: (\n data: SettingsPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n ): Promise<SettingsPageProps> => {\n const data = await settingsLoader({ locale: _ctx.locale ?? 'ar' });\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as SettingsPageProps;\n }\n return data;\n },\n head: (ctx: TwilightContext, data: SettingsPageProps): HeadDescriptor => ({\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n }),\n Component: LazySettingsPage,\n} as const;\n"]}
@@ -133,18 +133,18 @@ async function blogTagLoader({
133
133
  }
134
134
 
135
135
  // src/routes/blog/index.tsx
136
- var LazyBlogPage = lazy(() => import('../BlogPage-N5BKRIWD.js').then((m) => ({ default: m.BlogPage })));
136
+ var LazyBlogPage = lazy(() => import('../BlogPage-TOQE5ZTO.js').then((m) => ({ default: m.BlogPage })));
137
137
  var LazyBlogSinglePage = lazy(
138
- () => import('../BlogSinglePage-HVSCXCCV.js').then((m) => ({ default: m.BlogSinglePage }))
138
+ () => import('../BlogSinglePage-QOKI4OSO.js').then((m) => ({ default: m.BlogSinglePage }))
139
139
  );
140
140
  var LazyBlogAuthorPage = lazy(
141
- () => import('../BlogAuthorPage-C7ENIUKC.js').then((m) => ({ default: m.BlogAuthorPage }))
141
+ () => import('../BlogAuthorPage-BEAHFND7.js').then((m) => ({ default: m.BlogAuthorPage }))
142
142
  );
143
143
  var LazyBlogCategoryPage = lazy(
144
- () => import('../BlogCategoryPage-QODJTKFE.js').then((m) => ({ default: m.BlogCategoryPage }))
144
+ () => import('../BlogCategoryPage-SABHZZVS.js').then((m) => ({ default: m.BlogCategoryPage }))
145
145
  );
146
146
  var LazyBlogTagPage = lazy(
147
- () => import('../BlogTagPage-YXYYHD5S.js').then((m) => ({ default: m.BlogTagPage }))
147
+ () => import('../BlogTagPage-LX4SKB4Q.js').then((m) => ({ default: m.BlogTagPage }))
148
148
  );
149
149
  var BlogPage = LazyBlogPage;
150
150
  var BlogSinglePage = LazyBlogSinglePage;
@@ -33,7 +33,7 @@ async function brandsLoader() {
33
33
  }
34
34
 
35
35
  // src/routes/brands/index.tsx
36
- var LazyBrandsPage = lazy(() => import('../BrandsPage-UP3HKHGR.js').then((m) => ({ default: m.BrandsPage })));
36
+ var LazyBrandsPage = lazy(() => import('../BrandsPage-MKCQBVR6.js').then((m) => ({ default: m.BrandsPage })));
37
37
  var BrandsPage = LazyBrandsPage;
38
38
  async function brandsLoaderWithExtend(_ctx, extend) {
39
39
  const data = await brandsLoader();
@@ -1,16 +1,16 @@
1
1
  import { cart } from '../chunk-KFH3OBFW.js';
2
2
  import { loyalty } from '../chunk-ZNWNJZSM.js';
3
3
  import { CartSkeleton } from '../chunk-N7CCSGZF.js';
4
- import '../chunk-5R5IGGI3.js';
4
+ import '../chunk-B7EPMCWM.js';
5
5
  import '../chunk-QG2Q6HB5.js';
6
6
  import { buildHreflangAlternates } from '../chunk-TZ3E5BN4.js';
7
- import '../chunk-XLVAVCUV.js';
8
- import '../chunk-VZHYSYKG.js';
9
- import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-BK4VEUF3.js';
10
- import '../chunk-ZZA7L3RI.js';
7
+ import '../chunk-ZFLBHEHI.js';
8
+ import '../chunk-XLJPUFN4.js';
9
+ import { LazySeoCartWidget, LazyCartItem, LazyCartSummary } from '../chunk-DV2XH7GO.js';
10
+ import '../chunk-VOOOQPAH.js';
11
11
  import '../chunk-342EPVXN.js';
12
- import '../chunk-EFHSAWDQ.js';
13
- import '../chunk-63WNORBK.js';
12
+ import '../chunk-JOIPJKEX.js';
13
+ import '../chunk-WQLC7PNT.js';
14
14
  import '../chunk-JKIRRMBU.js';
15
15
  import '../chunk-2JV6WZ6O.js';
16
16
  import '../chunk-6IATCGID.js';
@@ -28,7 +28,7 @@ import { getTwilightContext } from '../chunk-6XWMNQ52.js';
28
28
  import '../chunk-TP3LCGE7.js';
29
29
  import '../chunk-Z653O7MX.js';
30
30
  import '../chunk-ZCH7W7DZ.js';
31
- import '../chunk-SSRNIBVV.js';
31
+ import '../chunk-3U26OMNO.js';
32
32
  import '../chunk-JWXJPJBO.js';
33
33
  import '../chunk-CW625T2E.js';
34
34
  import '../chunk-BVSJPBJ6.js';
@@ -40,9 +40,10 @@ import '../chunk-YMVLYYLU.js';
40
40
  import '../chunk-RJPPO3ET.js';
41
41
  import { HookSlot } from '../chunk-Q7VWURUR.js';
42
42
  import '../chunk-GU2KUQVD.js';
43
- import { LazyBreadcrumb, LazyNoContent } from '../chunk-CZS4ZHQK.js';
43
+ import { LazyBreadcrumb, LazyNoContent } from '../chunk-AA2F3EBJ.js';
44
44
  import '../chunk-AXW67SY7.js';
45
45
  import '../chunk-BYMOPN2S.js';
46
+ import '../chunk-RN3MT564.js';
46
47
  import '../chunk-6BZ5TKEV.js';
47
48
  import '../chunk-FZKRSGLP.js';
48
49
  import '../chunk-CUG6VOLM.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/routes/cart/CartPage.tsx","../../src/routes/cart/loader.ts","../../src/routes/cart/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,SAAS,eAAA,CAAgB,EAAE,IAAA,EAAK,EAAkB;AAChD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,WAAA,EAAY;AAC9B,EAAA,MAAM,EAAE,CAAA,EAAE,GAAI,cAAA,EAAe;AAC7B,EAAA,MAAM,EAAE,MAAM,aAAA,EAAc,GAAI,SAAS,OAAA,CAAQ,OAAA,CAAQ,QAAQ,CAAA;AAEjE,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAwB,IAAI,CAAA;AAExD,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAA,CAAO,OAAO,IAAA,CAAK,GAAA,CAAI,gBAAA,EAAiB,CAAE,KAAK,SAAS,CAAA;AAAA,EAC1D,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAS,GAAI,QAAA,CAAS;AAAA,IAClC,GAAG,IAAA,CAAK,OAAA,CAAQ,MAAA,CAAO,MAAO,CAAA;AAAA,IAC9B,OAAA,EAAS,CAAC,CAAC;AAAA,GACZ,CAAA;AAED,EAAA,MAAM,SAAA,GAAY,MAAA,KAAW,IAAA,IAAQ,CAAC,QAAA;AAEtC,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,2BAAQ,YAAA,EAAA,EAAa,CAAA;AAAA,EACvB;AAEA,EAAA,IAAI,QAAA,CAAS,KAAA,CAAM,MAAA,KAAW,CAAA,EAAG;AAC/B,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EACb,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAW,IAAA,EAAY,CAAA;AAAA,sBACxB,GAAA;AAAA,QAAC,aAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,oBAAA;AAAA,UACL,OAAA,EAAS,CAAA,CAAE,uBAAA,EAAyB,oBAAoB,CAAA;AAAA,UACxD,WAAA,EAAa,CAAA,CAAE,2BAAA,EAA6B,cAAc,CAAA;AAAA,UAC1D,SAAA,EAAU;AAAA;AAAA;AACZ,KAAA,EACF,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,WAAA,EAEb,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,iBAAA,EAAA,EAAc,MAAM,QAAA,EAAU,CAAA;AAAA,oBAE/B,GAAA,CAAC,kBAAW,IAAA,EAAY,CAAA;AAAA,wBACvB,IAAA,EAAA,EAAG,SAAA,EAAU,WAAW,QAAA,EAAA,CAAA,CAAE,oBAAA,EAAsB,MAAM,CAAA,EAAE,CAAA;AAAA,wBACxD,qBAAA,EAAA,EAAsB,CAAA;AAAA,oBAEvB,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,YAAA,EAAa,CAAA;AAAA,oBAE5B,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,0DAAA,EACb,QAAA,EAAA;AAAA,sBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,6CAAA,EACb,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,QAAA,EAAA,EAAS,MAAK,kBAAA,EAAmB,OAAA,EAAS,EAAE,SAAA,EAAW,QAAA,CAAS,OAAM,EAAG,CAAA;AAAA,QAEzE,QAAA,CAAS,KAAA,CAAM,GAAA,CAAI,CAAC,MAAM,KAAA,qBACzB,GAAA,CAAC,YAAA,EAAA,EAAuB,IAAA,EAAY,OAAA,EAAS,KAAA,KAAU,CAAA,EAAA,EAAxC,IAAA,CAAK,EAAsC,CAC3D,CAAA;AAAA,QAEA,QAAA,CAAS,OAAA,EAAS,MAAA,GAAS,CAAA,oBAC1B,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,cAAA,EACZ,QAAA,EAAA,QAAA,CAAS,OAAA,CAAQ,GAAA,CAAI,CAAC,MAAA,qBACrB,IAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAU,qBAAA;AAAA,YACV,QAAA,EAAU,CAAC,CAAA,KAAM,MAAA,CAAO,OAAO,IAAA,CAAK,QAAA,CAAS,mBAAmB,CAAC,CAAA;AAAA,YACjE,EAAA,EAAI,CAAA,KAAA,EAAQ,MAAA,CAAO,EAAE,CAAA,CAAA;AAAA,YAErB,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,WAAM,IAAA,EAAK,QAAA,EAAS,MAAK,IAAA,EAAK,KAAA,EAAO,OAAO,EAAA,EAAI,CAAA;AAAA,8BACjD,GAAA,CAAC,WAAM,IAAA,EAAK,QAAA,EAAS,MAAK,UAAA,EAAW,KAAA,EAAO,OAAO,QAAA,EAAU,CAAA;AAAA,cAE5D,MAAA,CAAO,OAAA,IAAW,MAAA,CAAO,OAAA,CAAQ,SAAS,CAAA,oBACzC,GAAA;AAAA,gBAAC,mBAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAS,IAAA,CAAK,SAAA,CAAU,MAAA,CAAO,OAAO,CAAA;AAAA,kBACtC,WAAW,MAAA,CAAO;AAAA;AAAA;AACpB;AAAA,WAAA;AAAA,UAZG,MAAA,CAAO;AAAA,SAef,CAAA,EACH,CAAA;AAAA,4BAGD,UAAA,EAAA,EAAW,CAAA;AAAA,wBACZ,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,gBAAA,EAAiB;AAAA,OAAA,EAClC,CAAA;AAAA,sBAEA,GAAA;AAAA,QAAC,eAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAM,QAAA;AAAA,UACN,kBAAA,EAAoB,KAAA,CAAM,QAAA,EAAU,IAAA,EAAM,oBAAA;AAAA,UAC1C,WAAW,QAAA,CAAS,UAAA;AAAA,UAEpB,SAAS,QAAA,CAAS,OAAA;AAAA,UAClB,MAAM,QAAA,CAAS,IAAA;AAAA,UACf,eAAe,aAAA,IAAiB;AAAA,SAAA;AAAA,QAH3B,QAAA,CAAS;AAAA;AAIhB,KAAA,EACF,CAAA;AAAA,oBAEA,GAAA,CAAC,QAAA,EAAA,EAAS,IAAA,EAAK,UAAA,EAAW;AAAA,GAAA,EAC5B,CAAA;AAEJ;AAEO,SAAS,SAAS,KAAA,EAAsB;AAC7C,EAAA,uBAAO,GAAA,CAAC,eAAA,EAAA,EAAiB,GAAG,KAAA,EAAO,CAAA;AACrC;;;AC1GO,SAAS,UAAA,GAA4B;AAC1C,EAAA,MAAM,IAAA,GAAO,oBAAmB,CAAE,IAAA;AAClC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,EAAE,IAAA,EAAM,OAAA,CAAQ,IAAA,EAAM,OAAO,IAAA,CAAK,CAAA,CAAE,oBAAoB,CAAA,IAAK,MAAA;AAAO,GAC5E;AACF;;;ACFA,eAAe,MAAA,CACb,MACA,MAAA,EAIwB;AACxB,EAAA,MAAM,OAAO,UAAA,EAAW;AAExB,EAAA,IAAI,MAAA,EAAQ;AACV,IAAA,MAAM,QAAQ,MAAA,CAAO,IAAA,EAAM,EAAE,MAAA,EAAQ,IAAI,CAAA;AACzC,IAAA,OAAO,EAAE,GAAG,IAAA,EAAM,GAAI,iBAAiB,OAAA,GAAU,KAAK,KAAA,EAAO;AAAA,EAC/D;AACA,EAAA,OAAO,IAAA;AACT;AAEA,SAAS,IAAA,CAAK,KAAsB,IAAA,EAAqC;AACvE,EAAA,MAAM,IAAA,GAAuB;AAAA,IAC3B,KAAA,EAAO,KAAK,IAAA,CAAK,KAAA;AAAA,IACjB,WAAA,EAAa,KAAK,IAAA,CAAK,WAAA;AAAA,IACvB,oBAAoB,uBAAA,CAAwB,GAAA,CAAI,QAAA,EAAU,GAAA,CAAI,SAAS,QAAQ;AAAA,GACjF;AAEA,EAAA,OAAO,IAAA;AACT;AAEO,IAAM,IAAA,GAAO,EAAE,EAAA,EAAI,OAAA,CAAQ,MAAM,MAAA,EAAQ,IAAA,EAAM,WAAW,QAAA","file":"cart.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { SallaConditionalOffer } from '@salla.sa/twilight-components-react/conditional-offer';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaProductOptions } from '@salla.sa/twilight-components-react/product-options';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { CartPageProps } from './types';\nimport { Breadcrumb, NoContent } from '../../components/common';\nimport { CartItem, CartSummary, SeoCartWidget } from '../../components/cart';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { CartSkeleton } from '../../skeleton';\nimport { loyalty } from '../../api/loyalty';\nimport { cart } from '../../api/cart';\n\nfunction CartPageContent({ page }: CartPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const { data: loyaltyPoints } = useQuery(loyalty.queries.points());\n\n const [cartId, setCartId] = useState<number | null>(null);\n\n useEffect(() => {\n window.salla?.cart.api.getCurrentCartId().then(setCartId);\n }, []);\n\n const { data: cartData } = useQuery({\n ...cart.queries.detail(cartId!),\n enabled: !!cartId,\n });\n\n const isLoading = cartId === null || !cartData;\n\n if (isLoading) {\n return <CartSkeleton />;\n }\n\n if (cartData.items.length === 0) {\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n <NoContent\n icon=\"sicon-shopping-bag\"\n message={t('pages.cart.empty_cart', 'Your cart is empty')}\n actionLabel={t('common.elements.back_home', 'Back to Home')}\n actionUrl=\"/\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"container\">\n {/* Analytics — no visible UI, fires GTM checkout events */}\n <SeoCartWidget cart={cartData} />\n\n <Breadcrumb page={page} />\n <h1 className=\"sr-only\">{t('common.titles.cart', 'Cart')}</h1>\n <SallaConditionalOffer />\n\n <HookSlot name=\"cart:start\" />\n\n <div className=\"pt-5 flex flex-col items-start lg:flex-row pb-6 lg:pb-20\">\n <div className=\"main-content w-full lg:w-[calc(100%-384px)]\">\n <HookSlot name=\"cart:items.start\" context={{ cartItems: cartData.items }} />\n\n {cartData.items.map((item, index) => (\n <CartItem key={item.id} item={item} isFirst={index === 0} />\n ))}\n\n {cartData.options?.length > 0 && (\n <div className=\"cart-options\">\n {cartData.options.map((option) => (\n <form\n key={option.id}\n className=\"first:pt-5 relative\"\n onChange={(e) => window.salla?.form.onChange('cart.updateItem', e)}\n id={`item-${option.id}`}\n >\n <input type=\"hidden\" name=\"id\" value={option.id} />\n <input type=\"hidden\" name=\"quantity\" value={option.quantity} />\n {/* Twig: {% include 'pages.partials.product.options' with {product:product_option} %} */}\n {option.options && option.options.length > 0 && (\n <SallaProductOptions\n options={JSON.stringify(option.options)}\n productId={option.id}\n />\n )}\n </form>\n ))}\n </div>\n )}\n\n <SallaOffer />\n <HookSlot name=\"cart:items.end\" />\n </div>\n\n <CartSummary\n cart={cartData}\n applyCouponEnabled={store.settings?.cart?.apply_coupon_enabled}\n taxAmount={cartData.tax_amount}\n key={cartData.id}\n loyalty={cartData.loyalty}\n gift={cartData.gift}\n loyaltyPoints={loyaltyPoints ?? undefined}\n />\n </div>\n\n <HookSlot name=\"cart:end\" />\n </div>\n );\n}\n\nexport function CartPage(props: CartPageProps) {\n return <CartPageContent {...props} />;\n}\n","import type { CartPageProps } from './types';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\n/**\n * SSR-safe loader that returns only page metadata.\n * Cart data is fetched client-side via React Query since the cart ID\n * lives in localStorage (unavailable during SSR).\n */\nexport function cartLoader(): CartPageProps {\n const i18n = getTwilightContext().i18n;\n return {\n page: { slug: RouteId.CART, title: i18n.t('common.titles.cart') || 'Cart' },\n } as CartPageProps;\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport { CartPage } from './CartPage';\nimport { cartLoader } from './loader';\nimport type { CartPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport { CartPage } from './CartPage';\nexport { cartLoader } from './loader';\nexport type { CartPageProps } from './types';\n\nasync function loader(\n _ctx?: { locale?: string },\n extend?: (\n data: CartPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<CartPageProps> {\n const data = cartLoader();\n\n if (extend) {\n const extra = extend(data, { params: {} });\n return { ...data, ...(extra instanceof Promise ? {} : extra) } as CartPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: CartPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Cart = { id: RouteId.CART, loader, head, Component: CartPage } as const;\n"]}
1
+ {"version":3,"sources":["../../src/routes/cart/CartPage.tsx","../../src/routes/cart/loader.ts","../../src/routes/cart/index.tsx"],"names":[],"mappings":"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","file":"cart.js","sourcesContent":["import { useState, useEffect } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { SallaConditionalOffer } from '@salla.sa/twilight-components-react/conditional-offer';\nimport { SallaOffer } from '@salla.sa/twilight-components-react/offer';\nimport { SallaProductOptions } from '@salla.sa/twilight-components-react/product-options';\nimport { HookSlot } from '../../hooks';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport type { CartPageProps } from './types';\nimport { Breadcrumb, NoContent } from '../../components/common';\nimport { CartItem, CartSummary, SeoCartWidget } from '../../components/cart';\nimport { useTwilight } from '../../providers/twilight-context';\nimport { CartSkeleton } from '../../skeleton';\nimport { loyalty } from '../../api/loyalty';\nimport { cart } from '../../api/cart';\n\nfunction CartPageContent({ page }: CartPageProps) {\n const { store } = useTwilight();\n const { t } = useTranslation();\n const { data: loyaltyPoints } = useQuery(loyalty.queries.points());\n\n const [cartId, setCartId] = useState<number | null>(null);\n\n useEffect(() => {\n window.salla?.cart.api.getCurrentCartId().then(setCartId);\n }, []);\n\n const { data: cartData } = useQuery({\n ...cart.queries.detail(cartId!),\n enabled: !!cartId,\n });\n\n const isLoading = cartId === null || !cartData;\n\n if (isLoading) {\n return <CartSkeleton />;\n }\n\n if (cartData.items.length === 0) {\n return (\n <div className=\"container\">\n <Breadcrumb page={page} />\n <NoContent\n icon=\"sicon-shopping-bag\"\n message={t('pages.cart.empty_cart', 'Your cart is empty')}\n actionLabel={t('common.elements.back_home', 'Back to Home')}\n actionUrl=\"/\"\n />\n </div>\n );\n }\n\n return (\n <div className=\"container\">\n {/* Analytics — no visible UI, fires GTM checkout events */}\n <SeoCartWidget cart={cartData} />\n\n <Breadcrumb page={page} />\n <h1 className=\"sr-only\">{t('common.titles.cart', 'Cart')}</h1>\n <SallaConditionalOffer />\n\n <HookSlot name=\"cart:start\" />\n\n <div className=\"pt-5 flex flex-col items-start lg:flex-row pb-6 lg:pb-20\">\n <div className=\"main-content w-full lg:w-[calc(100%-384px)]\">\n <HookSlot name=\"cart:items.start\" context={{ cartItems: cartData.items }} />\n\n {cartData.items.map((item, index) => (\n <CartItem key={item.id} item={item} isFirst={index === 0} />\n ))}\n\n {cartData.options?.length > 0 && (\n <div className=\"cart-options\">\n {cartData.options.map((option) => (\n <form\n key={option.id}\n className=\"first:pt-5 relative\"\n onChange={(e) => window.salla?.form.onChange('cart.updateItem', e)}\n id={`item-${option.id}`}\n >\n <input type=\"hidden\" name=\"id\" value={option.id} />\n <input type=\"hidden\" name=\"quantity\" value={option.quantity} />\n {/* Twig: {% include 'pages.partials.product.options' with {product:product_option} %} */}\n {option.options && option.options.length > 0 && (\n <SallaProductOptions\n options={JSON.stringify(option.options)}\n productId={option.id}\n />\n )}\n </form>\n ))}\n </div>\n )}\n\n <SallaOffer />\n <HookSlot name=\"cart:items.end\" />\n </div>\n\n <CartSummary\n cart={cartData}\n applyCouponEnabled={store.settings?.cart?.apply_coupon_enabled}\n taxAmount={cartData.tax_amount}\n key={cartData.id}\n loyalty={cartData.loyalty}\n gift={cartData.gift}\n loyaltyPoints={loyaltyPoints ?? undefined}\n />\n </div>\n\n <HookSlot name=\"cart:end\" />\n </div>\n );\n}\n\nexport function CartPage(props: CartPageProps) {\n return <CartPageContent {...props} />;\n}\n","import type { CartPageProps } from './types';\nimport { getTwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\n/**\n * SSR-safe loader that returns only page metadata.\n * Cart data is fetched client-side via React Query since the cart ID\n * lives in localStorage (unavailable during SSR).\n */\nexport function cartLoader(): CartPageProps {\n const i18n = getTwilightContext().i18n;\n return {\n page: { slug: RouteId.CART, title: i18n.t('common.titles.cart') || 'Cart' },\n } as CartPageProps;\n}\n","import type { HeadDescriptor } from '../../utils/head';\nimport { buildHreflangAlternates } from '../../utils/baseHead';\nimport { CartPage } from './CartPage';\nimport { cartLoader } from './loader';\nimport type { CartPageProps } from './types';\nimport type { TwilightContext } from '../../twilight/context';\nimport { RouteId } from '../../router/route-ids';\n\nexport { CartPage } from './CartPage';\nexport { cartLoader } from './loader';\nexport type { CartPageProps } from './types';\n\nasync function loader(\n _ctx?: { locale?: string },\n extend?: (\n data: CartPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<CartPageProps> {\n const data = cartLoader();\n\n if (extend) {\n const extra = extend(data, { params: {} });\n return { ...data, ...(extra instanceof Promise ? {} : extra) } as CartPageProps;\n }\n return data;\n}\n\nfunction head(ctx: TwilightContext, data: CartPageProps): HeadDescriptor {\n const base: HeadDescriptor = {\n title: data.page.title,\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nexport const Cart = { id: RouteId.CART, loader, head, Component: CartPage } as const;\n"]}
@@ -1,12 +1,12 @@
1
- export { Home, HomeSkeleton, homeLoader } from '../chunk-5R5IGGI3.js';
1
+ export { Home, HomeSkeleton, homeLoader } from '../chunk-B7EPMCWM.js';
2
2
  import '../chunk-QG2Q6HB5.js';
3
3
  import '../chunk-TZ3E5BN4.js';
4
- export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-XLVAVCUV.js';
5
- import '../chunk-VZHYSYKG.js';
6
- import '../chunk-ZZA7L3RI.js';
4
+ export { DefaultHomeComponents, registerHomeComponentConfig, registerHomeComponents } from '../chunk-ZFLBHEHI.js';
5
+ import '../chunk-XLJPUFN4.js';
6
+ import '../chunk-VOOOQPAH.js';
7
7
  import '../chunk-342EPVXN.js';
8
- import '../chunk-EFHSAWDQ.js';
9
- import '../chunk-63WNORBK.js';
8
+ import '../chunk-JOIPJKEX.js';
9
+ import '../chunk-WQLC7PNT.js';
10
10
  import '../chunk-JKIRRMBU.js';
11
11
  import '../chunk-2JV6WZ6O.js';
12
12
  import '../chunk-6IATCGID.js';
@@ -24,7 +24,7 @@ import '../chunk-6XWMNQ52.js';
24
24
  import '../chunk-TP3LCGE7.js';
25
25
  import '../chunk-Z653O7MX.js';
26
26
  import '../chunk-ZCH7W7DZ.js';
27
- import '../chunk-SSRNIBVV.js';
27
+ import '../chunk-3U26OMNO.js';
28
28
  import '../chunk-JWXJPJBO.js';
29
29
  import '../chunk-CW625T2E.js';
30
30
  import '../chunk-BVSJPBJ6.js';
@@ -36,9 +36,10 @@ import '../chunk-YMVLYYLU.js';
36
36
  import '../chunk-RJPPO3ET.js';
37
37
  import '../chunk-Q7VWURUR.js';
38
38
  import '../chunk-GU2KUQVD.js';
39
- import '../chunk-CZS4ZHQK.js';
39
+ import '../chunk-AA2F3EBJ.js';
40
40
  import '../chunk-AXW67SY7.js';
41
41
  import '../chunk-BYMOPN2S.js';
42
+ import '../chunk-RN3MT564.js';
42
43
  import '../chunk-6BZ5TKEV.js';
43
44
  import '../chunk-FZKRSGLP.js';
44
45
  import '../chunk-CUG6VOLM.js';
@@ -18,7 +18,7 @@ async function loyaltyLoader() {
18
18
 
19
19
  // src/routes/loyalty/index.tsx
20
20
  var LazyLoyaltyPage = lazy(
21
- () => import('../LoyaltyPage-TOXOPXEU.js').then((m) => ({ default: m.LoyaltyPage }))
21
+ () => import('../LoyaltyPage-X26UDO3B.js').then((m) => ({ default: m.LoyaltyPage }))
22
22
  );
23
23
  var LoyaltyPage = LazyLoyaltyPage;
24
24
  async function loader(_ctx, extend) {
@@ -27,7 +27,7 @@ async function pageSingleLoader({ params }) {
27
27
  }
28
28
 
29
29
  // src/routes/page/index.tsx
30
- var LazyPageSingle = lazy(() => import('../PageSingle-Y6IVAY3E.js').then((m) => ({ default: m.PageSingle })));
30
+ var LazyPageSingle = lazy(() => import('../PageSingle-OBUFVEIG.js').then((m) => ({ default: m.PageSingle })));
31
31
  var PageSingleLazy = LazyPageSingle;
32
32
  async function loader(ctx, extend) {
33
33
  const data = await pageSingleLoader({ params: ctx.params });