@salla.sa/twilight-theme-engine 1.0.134 → 1.0.136

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 (223) hide show
  1. package/dist/{AddToCartForm-D7AQIX7K.js → AddToCartForm-RG4ANO47.js} +3 -3
  2. package/dist/{AddToCartForm-D7AQIX7K.js.map → AddToCartForm-RG4ANO47.js.map} +1 -1
  3. package/dist/{BlogAuthorPage-P2TVMO5O.js → BlogAuthorPage-JEYNAFRH.js} +17 -17
  4. package/dist/{BlogAuthorPage-P2TVMO5O.js.map → BlogAuthorPage-JEYNAFRH.js.map} +1 -1
  5. package/dist/{BlogCategoryPage-A2BS6T3I.js → BlogCategoryPage-IIAXWMHD.js} +17 -17
  6. package/dist/{BlogCategoryPage-A2BS6T3I.js.map → BlogCategoryPage-IIAXWMHD.js.map} +1 -1
  7. package/dist/{BlogPage-ZOIVZQ5W.js → BlogPage-NKYICNRT.js} +15 -15
  8. package/dist/{BlogPage-ZOIVZQ5W.js.map → BlogPage-NKYICNRT.js.map} +1 -1
  9. package/dist/{BlogSinglePage-X57JXKQ6.js → BlogSinglePage-FBO4NQL5.js} +15 -15
  10. package/dist/{BlogSinglePage-X57JXKQ6.js.map → BlogSinglePage-FBO4NQL5.js.map} +1 -1
  11. package/dist/{BlogTagPage-WXLEEA63.js → BlogTagPage-WZIUPBEM.js} +17 -17
  12. package/dist/{BlogTagPage-WXLEEA63.js.map → BlogTagPage-WZIUPBEM.js.map} +1 -1
  13. package/dist/{BrandsPage-6ZMEF4EQ.js → BrandsPage-EN6MZV6T.js} +16 -16
  14. package/dist/{BrandsPage-6ZMEF4EQ.js.map → BrandsPage-EN6MZV6T.js.map} +1 -1
  15. package/dist/{Breadcrumb-FYA3KNAY.js → Breadcrumb-COB4TMMI.js} +15 -15
  16. package/dist/{Breadcrumb-FYA3KNAY.js.map → Breadcrumb-COB4TMMI.js.map} +1 -1
  17. package/dist/{CartItem-XGDV4EZ4.js → CartItem-SYQZHA2F.js} +15 -15
  18. package/dist/{CartItem-XGDV4EZ4.js.map → CartItem-SYQZHA2F.js.map} +1 -1
  19. package/dist/{CartSummary-BP6BJ7BB.js → CartSummary-YQN7N6JW.js} +15 -15
  20. package/dist/{CartSummary-BP6BJ7BB.js.map → CartSummary-YQN7N6JW.js.map} +1 -1
  21. package/dist/{Copyright-H4CYJQR3.js → Copyright-II2URAIP.js} +3 -3
  22. package/dist/{Copyright-H4CYJQR3.js.map → Copyright-II2URAIP.js.map} +1 -1
  23. package/dist/{CustomerLayout-YLMMDLXA.js → CustomerLayout-75NK34WK.js} +15 -15
  24. package/dist/{CustomerLayout-YLMMDLXA.js.map → CustomerLayout-75NK34WK.js.map} +1 -1
  25. package/dist/{Footer-ADZZF3NE.js → Footer-6MYG4POU.js} +4 -4
  26. package/dist/{Footer-ADZZF3NE.js.map → Footer-6MYG4POU.js.map} +1 -1
  27. package/dist/{Header-OMEW5PF4.js → Header-KXX42XKB.js} +8 -8
  28. package/dist/{Header-OMEW5PF4.js.map → Header-KXX42XKB.js.map} +1 -1
  29. package/dist/{LoyaltyPage-EGTJAFY3.js → LoyaltyPage-R4KWVGLW.js} +15 -15
  30. package/dist/{LoyaltyPage-EGTJAFY3.js.map → LoyaltyPage-R4KWVGLW.js.map} +1 -1
  31. package/dist/{LoyaltyPointsPage-RSPBAI73.js → LoyaltyPointsPage-L7HG54RQ.js} +6 -6
  32. package/dist/{LoyaltyPointsPage-RSPBAI73.js.map → LoyaltyPointsPage-L7HG54RQ.js.map} +1 -1
  33. package/dist/{MainMenu-R7RNOTPO.js → MainMenu-KI4BAA7W.js} +5 -5
  34. package/dist/{MainMenu-R7RNOTPO.js.map → MainMenu-KI4BAA7W.js.map} +1 -1
  35. package/dist/{MasterLayout-LLKACZ7T.js → MasterLayout-WQ3VWDAA.js} +15 -15
  36. package/dist/{MasterLayout-LLKACZ7T.js.map → MasterLayout-WQ3VWDAA.js.map} +1 -1
  37. package/dist/{MobileMenu-4F4DBTWU.js → MobileMenu-LJXKYKRI.js} +16 -16
  38. package/dist/{MobileMenu-4F4DBTWU.js.map → MobileMenu-LJXKYKRI.js.map} +1 -1
  39. package/dist/{NotificationsPage-AWKZRH7H.js → NotificationsPage-4TUPN24E.js} +15 -15
  40. package/dist/{NotificationsPage-AWKZRH7H.js.map → NotificationsPage-4TUPN24E.js.map} +1 -1
  41. package/dist/{OrderSinglePage-2RTLHMMO.js → OrderSinglePage-N3YGXCKL.js} +16 -16
  42. package/dist/{OrderSinglePage-2RTLHMMO.js.map → OrderSinglePage-N3YGXCKL.js.map} +1 -1
  43. package/dist/{OrdersPage-57MRSJTB.js → OrdersPage-V3WNW2WZ.js} +15 -15
  44. package/dist/{OrdersPage-57MRSJTB.js.map → OrdersPage-V3WNW2WZ.js.map} +1 -1
  45. package/dist/{PageSingle-YTXFQHHC.js → PageSingle-H5YA47EG.js} +3 -3
  46. package/dist/{PageSingle-YTXFQHHC.js.map → PageSingle-H5YA47EG.js.map} +1 -1
  47. package/dist/{ProductDetails-6LWZSW7R.js → ProductDetails-EHRMQR7F.js} +4 -4
  48. package/dist/{ProductDetails-6LWZSW7R.js.map → ProductDetails-EHRMQR7F.js.map} +1 -1
  49. package/dist/{ProfilePage-JKDLNAKB.js → ProfilePage-3GRY4RSA.js} +15 -15
  50. package/dist/{ProfilePage-JKDLNAKB.js.map → ProfilePage-3GRY4RSA.js.map} +1 -1
  51. package/dist/{ReviewsPage-OST5SGH5.js → ReviewsPage-SPHK5MCS.js} +3 -3
  52. package/dist/{ReviewsPage-OST5SGH5.js.map → ReviewsPage-SPHK5MCS.js.map} +1 -1
  53. package/dist/{SeoCartWidget-7L2B25DP.js → SeoCartWidget-P2QQ62AF.js} +15 -15
  54. package/dist/{SeoCartWidget-7L2B25DP.js.map → SeoCartWidget-P2QQ62AF.js.map} +1 -1
  55. package/dist/{SettingsPage-IFYFZ2SP.js → SettingsPage-YFN32XOV.js} +15 -15
  56. package/dist/{SettingsPage-IFYFZ2SP.js.map → SettingsPage-YFN32XOV.js.map} +1 -1
  57. package/dist/{StoreClosedNotification-COURDUGE.js → StoreClosedNotification-3RU33TF6.js} +16 -16
  58. package/dist/{StoreClosedNotification-COURDUGE.js.map → StoreClosedNotification-3RU33TF6.js.map} +1 -1
  59. package/dist/{TestimonialsPage-2RWGM5OP.js → TestimonialsPage-4W6SXN24.js} +3 -3
  60. package/dist/{TestimonialsPage-2RWGM5OP.js.map → TestimonialsPage-4W6SXN24.js.map} +1 -1
  61. package/dist/{ThankYouPage-OJLIJPLR.js → ThankYouPage-56AIK3QG.js} +15 -15
  62. package/dist/{ThankYouPage-OJLIJPLR.js.map → ThankYouPage-56AIK3QG.js.map} +1 -1
  63. package/dist/{WalletPage-FBOYCP2F.js → WalletPage-FLB4OCK4.js} +16 -16
  64. package/dist/{WalletPage-FBOYCP2F.js.map → WalletPage-FLB4OCK4.js.map} +1 -1
  65. package/dist/{WishlistPage-YWTH5YAO.js → WishlistPage-H6KGJYRT.js} +17 -17
  66. package/dist/{WishlistPage-YWTH5YAO.js.map → WishlistPage-H6KGJYRT.js.map} +1 -1
  67. package/dist/ambient/salla-components.d.ts +5 -0
  68. package/dist/api/advertisement.js +2 -2
  69. package/dist/api/apps.js +2 -2
  70. package/dist/api/blog.js +3 -3
  71. package/dist/api/brands.js +3 -3
  72. package/dist/api/cart.js +3 -3
  73. package/dist/api/category.js +3 -3
  74. package/dist/api/client.js +1 -1
  75. package/dist/api/home.js +2 -2
  76. package/dist/api/loyalty.js +3 -3
  77. package/dist/api/menu.js +2 -2
  78. package/dist/api/notification.js +2 -2
  79. package/dist/api/order.js +3 -3
  80. package/dist/api/page.js +3 -3
  81. package/dist/api/product.js +3 -3
  82. package/dist/api/profile.js +1 -1
  83. package/dist/api/store.js +2 -2
  84. package/dist/api/translations.js +2 -2
  85. package/dist/api/user.js +2 -2
  86. package/dist/api/wallet.js +2 -2
  87. package/dist/api/wishlist.js +4 -4
  88. package/dist/{chunk-2ZJAQBFV.js → chunk-3RHCWLJT.js} +3 -3
  89. package/dist/{chunk-2ZJAQBFV.js.map → chunk-3RHCWLJT.js.map} +1 -1
  90. package/dist/{chunk-KJG4BPY2.js → chunk-6O5EFNDM.js} +4 -4
  91. package/dist/{chunk-KJG4BPY2.js.map → chunk-6O5EFNDM.js.map} +1 -1
  92. package/dist/{chunk-2EF2HHHL.js → chunk-6TT5VHUM.js} +3 -3
  93. package/dist/{chunk-2EF2HHHL.js.map → chunk-6TT5VHUM.js.map} +1 -1
  94. package/dist/{chunk-DRDQQNIW.js → chunk-B6CGVRJ7.js} +4 -4
  95. package/dist/{chunk-DRDQQNIW.js.map → chunk-B6CGVRJ7.js.map} +1 -1
  96. package/dist/{chunk-PXH5TZGZ.js → chunk-BFPTMZ4G.js} +3 -3
  97. package/dist/{chunk-PXH5TZGZ.js.map → chunk-BFPTMZ4G.js.map} +1 -1
  98. package/dist/{chunk-DRX6L472.js → chunk-BXQZXOFK.js} +3 -3
  99. package/dist/{chunk-DRX6L472.js.map → chunk-BXQZXOFK.js.map} +1 -1
  100. package/dist/{chunk-M75BIUMZ.js → chunk-C76QBKQT.js} +3 -3
  101. package/dist/{chunk-M75BIUMZ.js.map → chunk-C76QBKQT.js.map} +1 -1
  102. package/dist/{chunk-IJX2MCPN.js → chunk-D262IAAT.js} +4 -4
  103. package/dist/{chunk-IJX2MCPN.js.map → chunk-D262IAAT.js.map} +1 -1
  104. package/dist/{chunk-6PMG5J4Z.js → chunk-DE7OXJXT.js} +4 -4
  105. package/dist/{chunk-6PMG5J4Z.js.map → chunk-DE7OXJXT.js.map} +1 -1
  106. package/dist/{chunk-WUDGMLUX.js → chunk-DESMKK54.js} +4 -4
  107. package/dist/{chunk-WUDGMLUX.js.map → chunk-DESMKK54.js.map} +1 -1
  108. package/dist/{chunk-LA7B3TTK.js → chunk-DIA2LU6I.js} +7 -7
  109. package/dist/{chunk-LA7B3TTK.js.map → chunk-DIA2LU6I.js.map} +1 -1
  110. package/dist/{chunk-YDXBRST4.js → chunk-EDK4U4WQ.js} +3 -3
  111. package/dist/{chunk-YDXBRST4.js.map → chunk-EDK4U4WQ.js.map} +1 -1
  112. package/dist/{chunk-EISZVMJY.js → chunk-F324WS4B.js} +3 -3
  113. package/dist/{chunk-EISZVMJY.js.map → chunk-F324WS4B.js.map} +1 -1
  114. package/dist/{chunk-WVQBEAYO.js → chunk-F73QPQX7.js} +16 -15
  115. package/dist/chunk-F73QPQX7.js.map +1 -0
  116. package/dist/{chunk-BQ5SELOL.js → chunk-ITNE6DTO.js} +4 -4
  117. package/dist/{chunk-BQ5SELOL.js.map → chunk-ITNE6DTO.js.map} +1 -1
  118. package/dist/chunk-IZ4MRCNY.js +14 -0
  119. package/dist/{chunk-XRULXQBR.js.map → chunk-IZ4MRCNY.js.map} +1 -1
  120. package/dist/{chunk-HIF6PP7C.js → chunk-J37FMLCI.js} +3 -3
  121. package/dist/{chunk-HIF6PP7C.js.map → chunk-J37FMLCI.js.map} +1 -1
  122. package/dist/{chunk-RFDP66ID.js → chunk-JLJKIXDT.js} +7 -7
  123. package/dist/{chunk-RFDP66ID.js.map → chunk-JLJKIXDT.js.map} +1 -1
  124. package/dist/{chunk-UII3OBWQ.js → chunk-KSPVQQ7J.js} +5 -5
  125. package/dist/{chunk-UII3OBWQ.js.map → chunk-KSPVQQ7J.js.map} +1 -1
  126. package/dist/{chunk-5EDFGGY4.js → chunk-LPVWRPMV.js} +4 -4
  127. package/dist/{chunk-5EDFGGY4.js.map → chunk-LPVWRPMV.js.map} +1 -1
  128. package/dist/{chunk-JPG5XSTP.js → chunk-MMXLOECO.js} +36 -8
  129. package/dist/chunk-MMXLOECO.js.map +1 -0
  130. package/dist/{chunk-SXI2XBCC.js → chunk-N6ZE6HUX.js} +199 -3
  131. package/dist/chunk-N6ZE6HUX.js.map +1 -0
  132. package/dist/{chunk-352YYRKV.js → chunk-NBVI4H4K.js} +3 -3
  133. package/dist/{chunk-352YYRKV.js.map → chunk-NBVI4H4K.js.map} +1 -1
  134. package/dist/{chunk-UJIE7IEJ.js → chunk-NZ6REC6S.js} +4 -4
  135. package/dist/{chunk-UJIE7IEJ.js.map → chunk-NZ6REC6S.js.map} +1 -1
  136. package/dist/{chunk-R7DPH75N.js → chunk-OIL6F7S2.js} +4 -4
  137. package/dist/{chunk-R7DPH75N.js.map → chunk-OIL6F7S2.js.map} +1 -1
  138. package/dist/{chunk-TL2RV5KC.js → chunk-PB2K5LRO.js} +3 -3
  139. package/dist/{chunk-TL2RV5KC.js.map → chunk-PB2K5LRO.js.map} +1 -1
  140. package/dist/{chunk-NVPG5X2H.js → chunk-PLFD6UWD.js} +3 -3
  141. package/dist/{chunk-NVPG5X2H.js.map → chunk-PLFD6UWD.js.map} +1 -1
  142. package/dist/{chunk-6S43HHJM.js → chunk-RVPFDYQ2.js} +3 -3
  143. package/dist/{chunk-6S43HHJM.js.map → chunk-RVPFDYQ2.js.map} +1 -1
  144. package/dist/{chunk-5RWIVHYS.js → chunk-RYAOXNRA.js} +3 -3
  145. package/dist/{chunk-5RWIVHYS.js.map → chunk-RYAOXNRA.js.map} +1 -1
  146. package/dist/{chunk-ZKHMZF36.js → chunk-SDJVSRTL.js} +7 -7
  147. package/dist/{chunk-ZKHMZF36.js.map → chunk-SDJVSRTL.js.map} +1 -1
  148. package/dist/{chunk-QC4XQO6D.js → chunk-THDD2H3C.js} +4 -4
  149. package/dist/{chunk-QC4XQO6D.js.map → chunk-THDD2H3C.js.map} +1 -1
  150. package/dist/{chunk-XUJJIH5C.js → chunk-TUIB74QX.js} +54 -11
  151. package/dist/{chunk-XUJJIH5C.js.map → chunk-TUIB74QX.js.map} +1 -1
  152. package/dist/{chunk-FOBC4W73.js → chunk-UA4F3ZR3.js} +3 -3
  153. package/dist/{chunk-FOBC4W73.js.map → chunk-UA4F3ZR3.js.map} +1 -1
  154. package/dist/{chunk-WSPMY4BC.js → chunk-V4E6JFS4.js} +6 -6
  155. package/dist/{chunk-WSPMY4BC.js.map → chunk-V4E6JFS4.js.map} +1 -1
  156. package/dist/{chunk-LVEIDCW2.js → chunk-VE34Y3Z3.js} +3 -3
  157. package/dist/{chunk-LVEIDCW2.js.map → chunk-VE34Y3Z3.js.map} +1 -1
  158. package/dist/{chunk-DGK2HVSR.js → chunk-W37R3JJ7.js} +3 -3
  159. package/dist/{chunk-DGK2HVSR.js.map → chunk-W37R3JJ7.js.map} +1 -1
  160. package/dist/{chunk-3OWCF54L.js → chunk-WXE5OK4N.js} +3 -3
  161. package/dist/{chunk-3OWCF54L.js.map → chunk-WXE5OK4N.js.map} +1 -1
  162. package/dist/{chunk-4EAYVEJO.js → chunk-XNNKW6FA.js} +3 -3
  163. package/dist/{chunk-4EAYVEJO.js.map → chunk-XNNKW6FA.js.map} +1 -1
  164. package/dist/{chunk-IYAXNDJI.js → chunk-YV5VCWQF.js} +4 -4
  165. package/dist/{chunk-IYAXNDJI.js.map → chunk-YV5VCWQF.js.map} +1 -1
  166. package/dist/{chunk-OO2JMMCL.js → chunk-ZAVUF234.js} +3 -3
  167. package/dist/{chunk-OO2JMMCL.js.map → chunk-ZAVUF234.js.map} +1 -1
  168. package/dist/components/cart/index.js +1 -1
  169. package/dist/components/common/index.js +1 -1
  170. package/dist/components/drawer/index.js +13 -13
  171. package/dist/components/home/BundleComponent.d.ts +3 -0
  172. package/dist/components/home/BundleComponent.d.ts.map +1 -1
  173. package/dist/components/home/index.js +17 -17
  174. package/dist/components/layout/index.js +4 -4
  175. package/dist/components/product/index.js +14 -14
  176. package/dist/components/snippets/AppsSnippets.d.ts.map +1 -1
  177. package/dist/components/store/index.js +14 -14
  178. package/dist/dev/editor/index.js +1 -1
  179. package/dist/dev/index.js +1 -1
  180. package/dist/{document-class-R26LC5C2.js → document-class-4JUQ44JX.js} +12 -12
  181. package/dist/{document-class-R26LC5C2.js.map → document-class-4JUQ44JX.js.map} +1 -1
  182. package/dist/hooks/index.js +13 -13
  183. package/dist/hooks/useGtm.js +13 -13
  184. package/dist/hooks/useMoney.js +13 -13
  185. package/dist/hooks/useStore.js +13 -13
  186. package/dist/hooks/useUser.js +3 -3
  187. package/dist/index.js +13 -13
  188. package/dist/{navigation-2UNFQOOQ.js → navigation-6KY4HODP.js} +4 -4
  189. package/dist/{navigation-2UNFQOOQ.js.map → navigation-6KY4HODP.js.map} +1 -1
  190. package/dist/{navigation-5ZAI4SPZ.js → navigation-QYWF2VGQ.js} +5 -5
  191. package/dist/{navigation-5ZAI4SPZ.js.map → navigation-QYWF2VGQ.js.map} +1 -1
  192. package/dist/{not-found-LGTTNZ4Y.js → not-found-3M6US423.js} +16 -16
  193. package/dist/{not-found-LGTTNZ4Y.js.map → not-found-3M6US423.js.map} +1 -1
  194. package/dist/providers/index.js +13 -13
  195. package/dist/routes/account/orders.js +4 -4
  196. package/dist/routes/account.js +13 -13
  197. package/dist/routes/blog.js +8 -8
  198. package/dist/routes/brands.js +4 -4
  199. package/dist/routes/cart.js +21 -21
  200. package/dist/routes/home.js +18 -18
  201. package/dist/routes/index.js +3 -3
  202. package/dist/routes/loyalty.js +5 -5
  203. package/dist/routes/page.js +4 -4
  204. package/dist/routes/product-listing.js +19 -19
  205. package/dist/routes/product.js +17 -17
  206. package/dist/routes/seo-redirects.js +3 -3
  207. package/dist/routes/testimonials.js +2 -2
  208. package/dist/routes/thank-you.js +4 -4
  209. package/dist/skeleton.js +18 -18
  210. package/dist/{store-lookup-DQECZUBL.js → store-lookup-UDGPAAWQ.js} +8 -8
  211. package/dist/{store-lookup-DQECZUBL.js.map → store-lookup-UDGPAAWQ.js.map} +1 -1
  212. package/dist/tanstack/router.d.ts.map +1 -1
  213. package/dist/tanstack.js +12 -12
  214. package/dist/utils/index.js +2 -2
  215. package/dist/utils/snippet-page-compat.d.ts +45 -0
  216. package/dist/utils/snippet-page-compat.d.ts.map +1 -0
  217. package/package.json +1 -1
  218. package/tailwind/components/home/BundleComponent.tsx.txt +46 -3
  219. package/tailwind/components/snippets/AppsSnippets.tsx.txt +4 -0
  220. package/dist/chunk-JPG5XSTP.js.map +0 -1
  221. package/dist/chunk-SXI2XBCC.js.map +0 -1
  222. package/dist/chunk-WVQBEAYO.js.map +0 -1
  223. package/dist/chunk-XRULXQBR.js +0 -14
@@ -1,32 +1,32 @@
1
1
  import { SORT_IDS, availableSortIds, sortOptions } from '../chunk-3LZJXKVO.js';
2
- import { category } from '../chunk-IYAXNDJI.js';
3
- import { brand } from '../chunk-KJG4BPY2.js';
4
- import { useReorderButtons, LazyTestimonials } from '../chunk-JPG5XSTP.js';
5
- import '../chunk-M75BIUMZ.js';
6
- import { product, parseNextPageToken } from '../chunk-DRDQQNIW.js';
2
+ import { category } from '../chunk-YV5VCWQF.js';
3
+ import { brand } from '../chunk-6O5EFNDM.js';
4
+ import { useReorderButtons, LazyTestimonials } from '../chunk-MMXLOECO.js';
5
+ import '../chunk-C76QBKQT.js';
6
+ import { product, parseNextPageToken } from '../chunk-B6CGVRJ7.js';
7
7
  import { Drawer } from '../chunk-6TKIUG5C.js';
8
- import { ProductCard } from '../chunk-WSPMY4BC.js';
8
+ import { ProductCard } from '../chunk-V4E6JFS4.js';
9
9
  import { registry, COMPONENT_KEYS } from '../chunk-Y32RHCOH.js';
10
- import { useStore } from '../chunk-WVQBEAYO.js';
10
+ import { useStore } from '../chunk-F73QPQX7.js';
11
11
  import '../chunk-H2QBHOF2.js';
12
- import '../chunk-RFDP66ID.js';
13
- import '../chunk-FOBC4W73.js';
14
- import '../chunk-SXI2XBCC.js';
12
+ import '../chunk-JLJKIXDT.js';
13
+ import '../chunk-UA4F3ZR3.js';
14
+ import '../chunk-N6ZE6HUX.js';
15
15
  import '../chunk-X55R4VVK.js';
16
- import '../chunk-OO2JMMCL.js';
16
+ import '../chunk-ZAVUF234.js';
17
17
  import '../chunk-OXMUPNMH.js';
18
- import '../chunk-2EF2HHHL.js';
18
+ import '../chunk-6TT5VHUM.js';
19
19
  import '../chunk-VVZNW5CB.js';
20
20
  import '../chunk-WQPG22DY.js';
21
21
  import '../chunk-GD26FI4J.js';
22
22
  import '../chunk-Q7E4TNN7.js';
23
23
  import { buildHreflangAlternates, storePageUrl } from '../chunk-RYGEIQWO.js';
24
- import { unauthorized, notFound, orThrow, useNavigate, useLocation } from '../chunk-DGK2HVSR.js';
24
+ import { unauthorized, notFound, orThrow, useNavigate, useLocation } from '../chunk-W37R3JJ7.js';
25
25
  import { RouteId } from '../chunk-OUW6WESU.js';
26
26
  import '../chunk-HOJ5E2PG.js';
27
27
  import '../chunk-HI5V5X3S.js';
28
- import '../chunk-EISZVMJY.js';
29
- import '../chunk-6S43HHJM.js';
28
+ import '../chunk-F324WS4B.js';
29
+ import '../chunk-RVPFDYQ2.js';
30
30
  import '../chunk-MVT5AF2A.js';
31
31
  import '../chunk-Z653O7MX.js';
32
32
  import '../chunk-ZCH7W7DZ.js';
@@ -37,16 +37,16 @@ import '../chunk-7V36I5GT.js';
37
37
  import '../chunk-6WI7R2BD.js';
38
38
  import '../chunk-LFHYQ6AN.js';
39
39
  import '../chunk-OAMIDZKW.js';
40
- import '../chunk-TL2RV5KC.js';
40
+ import '../chunk-PB2K5LRO.js';
41
41
  import '../chunk-OQIIJRAS.js';
42
42
  import '../chunk-V2ZDTY6H.js';
43
- import '../chunk-4EAYVEJO.js';
43
+ import '../chunk-XNNKW6FA.js';
44
44
  import { HookSlot } from '../chunk-5XDPAKF5.js';
45
45
  import '../chunk-GCPEMNSU.js';
46
- import { getAuthToken } from '../chunk-5RWIVHYS.js';
46
+ import { getAuthToken } from '../chunk-RYAOXNRA.js';
47
47
  import '../chunk-Z5M4YYWT.js';
48
48
  import { useTranslation } from '../chunk-TYNZ5B2B.js';
49
- import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-DRX6L472.js';
49
+ import { LazyBreadcrumb, Image, LazyNoContent, ProductCardSkeleton, LazyRenderWhenVisible } from '../chunk-BXQZXOFK.js';
50
50
  import '../chunk-AXW67SY7.js';
51
51
  import '../chunk-BYMOPN2S.js';
52
52
  import '../chunk-SKLEJJ6M.js';
@@ -1,28 +1,28 @@
1
- import { ProductsSlider, LazyTestimonials } from '../chunk-JPG5XSTP.js';
2
- import '../chunk-M75BIUMZ.js';
3
- import { product } from '../chunk-DRDQQNIW.js';
4
- import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-WSPMY4BC.js';
1
+ import { ProductsSlider, LazyTestimonials } from '../chunk-MMXLOECO.js';
2
+ import '../chunk-C76QBKQT.js';
3
+ import { product } from '../chunk-B6CGVRJ7.js';
4
+ import { ProductGallery, LazyProductDetails, LazyAddToCartForm } from '../chunk-V4E6JFS4.js';
5
5
  import '../chunk-Y32RHCOH.js';
6
- import { fastCheckoutScript } from '../chunk-WVQBEAYO.js';
6
+ import { fastCheckoutScript } from '../chunk-F73QPQX7.js';
7
7
  import '../chunk-H2QBHOF2.js';
8
- import '../chunk-RFDP66ID.js';
9
- import '../chunk-FOBC4W73.js';
10
- import '../chunk-SXI2XBCC.js';
8
+ import '../chunk-JLJKIXDT.js';
9
+ import '../chunk-UA4F3ZR3.js';
10
+ import '../chunk-N6ZE6HUX.js';
11
11
  import '../chunk-X55R4VVK.js';
12
- import '../chunk-OO2JMMCL.js';
12
+ import '../chunk-ZAVUF234.js';
13
13
  import '../chunk-OXMUPNMH.js';
14
- import '../chunk-2EF2HHHL.js';
14
+ import '../chunk-6TT5VHUM.js';
15
15
  import '../chunk-VVZNW5CB.js';
16
16
  import '../chunk-WQPG22DY.js';
17
17
  import '../chunk-GD26FI4J.js';
18
18
  import '../chunk-Q7E4TNN7.js';
19
19
  import { buildHreflangAlternates } from '../chunk-RYGEIQWO.js';
20
- import '../chunk-DGK2HVSR.js';
20
+ import '../chunk-W37R3JJ7.js';
21
21
  import { RouteId } from '../chunk-OUW6WESU.js';
22
22
  import { useComments } from '../chunk-HOJ5E2PG.js';
23
23
  import '../chunk-HI5V5X3S.js';
24
- import '../chunk-EISZVMJY.js';
25
- import '../chunk-6S43HHJM.js';
24
+ import '../chunk-F324WS4B.js';
25
+ import '../chunk-RVPFDYQ2.js';
26
26
  import '../chunk-MVT5AF2A.js';
27
27
  import '../chunk-Z653O7MX.js';
28
28
  import '../chunk-ZCH7W7DZ.js';
@@ -33,16 +33,16 @@ import '../chunk-7V36I5GT.js';
33
33
  import '../chunk-6WI7R2BD.js';
34
34
  import '../chunk-LFHYQ6AN.js';
35
35
  import '../chunk-OAMIDZKW.js';
36
- import '../chunk-TL2RV5KC.js';
36
+ import '../chunk-PB2K5LRO.js';
37
37
  import '../chunk-OQIIJRAS.js';
38
38
  import '../chunk-V2ZDTY6H.js';
39
- import '../chunk-4EAYVEJO.js';
39
+ import '../chunk-XNNKW6FA.js';
40
40
  import { HookSlot } from '../chunk-5XDPAKF5.js';
41
41
  import '../chunk-GCPEMNSU.js';
42
- import { getActiveCurrency } from '../chunk-5RWIVHYS.js';
42
+ import { getActiveCurrency } from '../chunk-RYAOXNRA.js';
43
43
  import '../chunk-Z5M4YYWT.js';
44
44
  import { useTranslation } from '../chunk-TYNZ5B2B.js';
45
- import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-DRX6L472.js';
45
+ import { LazyBreadcrumb, LazyRenderWhenVisible } from '../chunk-BXQZXOFK.js';
46
46
  import '../chunk-AXW67SY7.js';
47
47
  import '../chunk-BYMOPN2S.js';
48
48
  import '../chunk-SKLEJJ6M.js';
@@ -1,7 +1,7 @@
1
- export { LogoutRedirect, accountRedirectLoader, pendingOrdersRedirectLoader, productsSourceRedirectLoader, ratingRedirectLoader, slugBrandRedirectLoader } from '../chunk-HIF6PP7C.js';
2
- import '../chunk-DGK2HVSR.js';
1
+ export { LogoutRedirect, accountRedirectLoader, pendingOrdersRedirectLoader, productsSourceRedirectLoader, ratingRedirectLoader, slugBrandRedirectLoader } from '../chunk-J37FMLCI.js';
2
+ import '../chunk-W37R3JJ7.js';
3
3
  import '../chunk-OUW6WESU.js';
4
- import '../chunk-5RWIVHYS.js';
4
+ import '../chunk-RYAOXNRA.js';
5
5
  import '../chunk-Z5M4YYWT.js';
6
6
  import '../chunk-3E3ABCPC.js';
7
7
  import '../chunk-NHA4SBKG.js';
@@ -33,10 +33,10 @@ async function reviewsLoader() {
33
33
 
34
34
  // src/routes/testimonials/index.tsx
35
35
  var LazyTestimonialsPage = lazy(
36
- () => import('../TestimonialsPage-2RWGM5OP.js').then((m) => ({ default: m.TestimonialsPage }))
36
+ () => import('../TestimonialsPage-4W6SXN24.js').then((m) => ({ default: m.TestimonialsPage }))
37
37
  );
38
38
  var LazyReviewsPage = lazy(
39
- () => import('../ReviewsPage-OST5SGH5.js').then((m) => ({ default: m.ReviewsPage }))
39
+ () => import('../ReviewsPage-SPHK5MCS.js').then((m) => ({ default: m.ReviewsPage }))
40
40
  );
41
41
  var TestimonialsPage = LazyTestimonialsPage;
42
42
  var ReviewsPage = LazyReviewsPage;
@@ -1,8 +1,8 @@
1
- import { order } from '../chunk-UJIE7IEJ.js';
1
+ import { order } from '../chunk-NZ6REC6S.js';
2
2
  import { buildHreflangAlternates } from '../chunk-RYGEIQWO.js';
3
- import '../chunk-DGK2HVSR.js';
3
+ import '../chunk-W37R3JJ7.js';
4
4
  import { RouteId } from '../chunk-OUW6WESU.js';
5
- import '../chunk-5RWIVHYS.js';
5
+ import '../chunk-RYAOXNRA.js';
6
6
  import '../chunk-Z5M4YYWT.js';
7
7
  import '../chunk-3E3ABCPC.js';
8
8
  import '../chunk-NHA4SBKG.js';
@@ -41,7 +41,7 @@ async function thankYouLoader({
41
41
 
42
42
  // src/routes/thank-you/index.tsx
43
43
  var LazyThankYouPage = lazy(
44
- () => import('../ThankYouPage-OJLIJPLR.js').then((m) => ({ default: m.ThankYouPage }))
44
+ () => import('../ThankYouPage-56AIK3QG.js').then((m) => ({ default: m.ThankYouPage }))
45
45
  );
46
46
  var ThankYouPage = LazyThankYouPage;
47
47
  async function loader(ctx, extend) {
package/dist/skeleton.js CHANGED
@@ -1,31 +1,31 @@
1
1
  export { BlogSkeleton, BreadcrumbSkeleton, CartSkeleton, CustomerLayoutSkeleton, CustomerPageSkeleton, PageSkeleton, ProductCardSkeleton, ProductDetailSkeleton, ProductGridSkeleton, SkeletonPulse } from './chunk-N7CCSGZF.js';
2
- export { HomeSkeleton } from './chunk-UII3OBWQ.js';
2
+ export { HomeSkeleton } from './chunk-KSPVQQ7J.js';
3
3
  import './chunk-IXHM24Z4.js';
4
- import './chunk-JPG5XSTP.js';
5
- import './chunk-M75BIUMZ.js';
6
- import './chunk-DRDQQNIW.js';
7
- import './chunk-WSPMY4BC.js';
4
+ import './chunk-MMXLOECO.js';
5
+ import './chunk-C76QBKQT.js';
6
+ import './chunk-B6CGVRJ7.js';
7
+ import './chunk-V4E6JFS4.js';
8
8
  import './chunk-Y32RHCOH.js';
9
- import './chunk-WVQBEAYO.js';
9
+ import './chunk-F73QPQX7.js';
10
10
  import './chunk-H2QBHOF2.js';
11
- import './chunk-RFDP66ID.js';
12
- import './chunk-FOBC4W73.js';
13
- import './chunk-SXI2XBCC.js';
11
+ import './chunk-JLJKIXDT.js';
12
+ import './chunk-UA4F3ZR3.js';
13
+ import './chunk-N6ZE6HUX.js';
14
14
  import './chunk-X55R4VVK.js';
15
- import './chunk-OO2JMMCL.js';
15
+ import './chunk-ZAVUF234.js';
16
16
  import './chunk-OXMUPNMH.js';
17
- import './chunk-2EF2HHHL.js';
17
+ import './chunk-6TT5VHUM.js';
18
18
  import './chunk-VVZNW5CB.js';
19
19
  import './chunk-WQPG22DY.js';
20
20
  import './chunk-GD26FI4J.js';
21
21
  import './chunk-Q7E4TNN7.js';
22
22
  import './chunk-RYGEIQWO.js';
23
- import './chunk-DGK2HVSR.js';
23
+ import './chunk-W37R3JJ7.js';
24
24
  import './chunk-OUW6WESU.js';
25
25
  import './chunk-HOJ5E2PG.js';
26
26
  import './chunk-HI5V5X3S.js';
27
- import './chunk-EISZVMJY.js';
28
- import './chunk-6S43HHJM.js';
27
+ import './chunk-F324WS4B.js';
28
+ import './chunk-RVPFDYQ2.js';
29
29
  import './chunk-MVT5AF2A.js';
30
30
  import './chunk-Z653O7MX.js';
31
31
  import './chunk-ZCH7W7DZ.js';
@@ -36,16 +36,16 @@ import './chunk-7V36I5GT.js';
36
36
  import './chunk-6WI7R2BD.js';
37
37
  import './chunk-LFHYQ6AN.js';
38
38
  import './chunk-OAMIDZKW.js';
39
- import './chunk-TL2RV5KC.js';
39
+ import './chunk-PB2K5LRO.js';
40
40
  import './chunk-OQIIJRAS.js';
41
41
  import './chunk-V2ZDTY6H.js';
42
- import './chunk-4EAYVEJO.js';
42
+ import './chunk-XNNKW6FA.js';
43
43
  import './chunk-5XDPAKF5.js';
44
44
  import './chunk-GCPEMNSU.js';
45
- import './chunk-5RWIVHYS.js';
45
+ import './chunk-RYAOXNRA.js';
46
46
  import './chunk-Z5M4YYWT.js';
47
47
  import './chunk-TYNZ5B2B.js';
48
- import './chunk-DRX6L472.js';
48
+ import './chunk-BXQZXOFK.js';
49
49
  import './chunk-AXW67SY7.js';
50
50
  import './chunk-BYMOPN2S.js';
51
51
  import './chunk-SKLEJJ6M.js';
@@ -1,11 +1,11 @@
1
- import { category } from './chunk-IYAXNDJI.js';
2
- import { blog } from './chunk-WUDGMLUX.js';
3
- import { brand } from './chunk-KJG4BPY2.js';
4
- import { product } from './chunk-DRDQQNIW.js';
1
+ import { category } from './chunk-YV5VCWQF.js';
2
+ import { blog } from './chunk-DESMKK54.js';
3
+ import { brand } from './chunk-6O5EFNDM.js';
4
+ import { product } from './chunk-B6CGVRJ7.js';
5
5
  import { DEV_LOOKUP_BUDGET_MS } from './chunk-OXMUPNMH.js';
6
- import './chunk-DGK2HVSR.js';
6
+ import './chunk-W37R3JJ7.js';
7
7
  import './chunk-OUW6WESU.js';
8
- import './chunk-5RWIVHYS.js';
8
+ import './chunk-RYAOXNRA.js';
9
9
  import './chunk-Z5M4YYWT.js';
10
10
  import './chunk-3E3ABCPC.js';
11
11
  import './chunk-NHA4SBKG.js';
@@ -111,5 +111,5 @@ function lookupInStore(source, query) {
111
111
  }
112
112
 
113
113
  export { lookupInStore };
114
- //# sourceMappingURL=store-lookup-DQECZUBL.js.map
115
- //# sourceMappingURL=store-lookup-DQECZUBL.js.map
114
+ //# sourceMappingURL=store-lookup-UDGPAAWQ.js.map
115
+ //# sourceMappingURL=store-lookup-UDGPAAWQ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":"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","file":"store-lookup-DQECZUBL.js","sourcesContent":["/**\n * Runs in the editor's frame (the storefront), which has the engine's API\n * client set up for the dev store: answers the editor's pickers with the real\n * store's products, categories, brands and blog. Loaded with `import()` on the\n * first lookup, so a storefront never carries it.\n *\n * Each item's `data` is what a block receives for it, in the API's shape: a\n * product block reads only the ids and fetches the rest, while categories and\n * brands are drawn from what is saved.\n */\n\nimport { product } from '../api/product';\nimport { category } from '../api/category';\nimport { brand } from '../api/brands';\nimport { blog } from '../api/blog';\nimport type { Category } from '../types';\nimport { DEV_LOOKUP_BUDGET_MS, type DevLookupItem, type DevLookupSource } from './schema-types';\n\n/** Enough to choose from; a search narrows it further. */\nconst PER_PAGE = 20;\n/** How far a paged list is searched before giving up, so a big store can't stall the picker. */\nconst MAX_PAGES = 10;\n\ninterface Page<T> {\n items: T[];\n next: string | null;\n}\n\n/**\n * The matching items of a paged list, read page after page until there are\n * enough, the pages run out, or the time budget is spent: a brand or article on\n * page three is still found, and what was found so far always reaches the\n * editor before it stops waiting (`DEV_LOOKUP_BUDGET_MS` < its timeout).\n */\nasync function collect<T>(\n fetchPage: (page: number, cursor: string | null) => Promise<Page<T>>,\n keep: (item: T) => boolean\n): Promise<T[]> {\n const deadline = Date.now() + DEV_LOOKUP_BUDGET_MS;\n const found: T[] = [];\n let cursor: string | null = null;\n for (let page = 1; page <= MAX_PAGES; page += 1) {\n const { items, next } = await fetchPage(page, cursor);\n found.push(...items.filter(keep));\n if (found.length >= PER_PAGE || !next || Date.now() >= deadline) break;\n cursor = next;\n }\n return found.slice(0, PER_PAGE);\n}\n\nfunction matches(name: string, query: string): boolean {\n return !query || name.toLowerCase().includes(query.toLowerCase());\n}\n\n/** Categories with their subcategories, flattened, parents first. */\nfunction flatten(categories: Category[]): Category[] {\n return categories.flatMap((c) => [c, ...flatten(c.sub_categories ?? [])]);\n}\n\nasync function products(query: string): Promise<DevLookupItem[]> {\n const { items } = await product.list({\n source: query ? 'search' : 'latest',\n ...(query ? { keyword: query } : {}),\n perPage: PER_PAGE,\n });\n // List responses send the id as a numeric string; the block reads a number. Use it for both.\n return items.map((p) => ({\n id: Number(p.id),\n name: p.name,\n image: p.image?.url,\n url: p.url,\n data: { id: Number(p.id), name: p.name, url: p.url, image: p.image?.url ?? null },\n }));\n}\n\nasync function categories(query: string): Promise<DevLookupItem[]> {\n return flatten(await category.list())\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n image: c.image ?? undefined,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url, image: c.image ?? null, icon: c.icon ?? null },\n }));\n}\n\nasync function brands(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n (page) => brand.list(page),\n (b) => matches(b.name, query)\n );\n return found.map((b) => ({\n id: b.id,\n name: b.name,\n image: b.logo,\n url: b.url,\n data: { id: b.id, name: b.name, url: b.url, logo: b.logo, banner: b.banner ?? null },\n }));\n}\n\nasync function blogArticles(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n async (_page, cursor) => {\n const { data, cursor: pages } = await blog.articles.list(cursor ? { cursor } : undefined);\n return { items: data, next: pages?.next ?? null };\n },\n (a) => matches(a.name, query)\n );\n return found.map((a) => ({\n id: a.id,\n name: a.name,\n image: a.image,\n url: a.url,\n data: { id: a.id, name: a.name, url: a.url },\n }));\n}\n\nasync function blogCategories(query: string): Promise<DevLookupItem[]> {\n const { categories: list } = await blog.get();\n return list\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url },\n }));\n}\n\nconst LOOKUPS: Record<DevLookupSource, (query: string) => Promise<DevLookupItem[]>> = {\n products,\n categories,\n brands,\n blog_articles: blogArticles,\n blog_categories: blogCategories,\n};\n\nexport function lookupInStore(source: DevLookupSource, query: string): Promise<DevLookupItem[]> {\n const lookup = LOOKUPS[source];\n if (!lookup) return Promise.reject(new Error(`no lookup for ${source}`));\n return lookup(query.trim());\n}\n"]}
1
+ {"version":3,"sources":["../src/dev/store-lookup.ts"],"names":["categories"],"mappings":"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","file":"store-lookup-UDGPAAWQ.js","sourcesContent":["/**\n * Runs in the editor's frame (the storefront), which has the engine's API\n * client set up for the dev store: answers the editor's pickers with the real\n * store's products, categories, brands and blog. Loaded with `import()` on the\n * first lookup, so a storefront never carries it.\n *\n * Each item's `data` is what a block receives for it, in the API's shape: a\n * product block reads only the ids and fetches the rest, while categories and\n * brands are drawn from what is saved.\n */\n\nimport { product } from '../api/product';\nimport { category } from '../api/category';\nimport { brand } from '../api/brands';\nimport { blog } from '../api/blog';\nimport type { Category } from '../types';\nimport { DEV_LOOKUP_BUDGET_MS, type DevLookupItem, type DevLookupSource } from './schema-types';\n\n/** Enough to choose from; a search narrows it further. */\nconst PER_PAGE = 20;\n/** How far a paged list is searched before giving up, so a big store can't stall the picker. */\nconst MAX_PAGES = 10;\n\ninterface Page<T> {\n items: T[];\n next: string | null;\n}\n\n/**\n * The matching items of a paged list, read page after page until there are\n * enough, the pages run out, or the time budget is spent: a brand or article on\n * page three is still found, and what was found so far always reaches the\n * editor before it stops waiting (`DEV_LOOKUP_BUDGET_MS` < its timeout).\n */\nasync function collect<T>(\n fetchPage: (page: number, cursor: string | null) => Promise<Page<T>>,\n keep: (item: T) => boolean\n): Promise<T[]> {\n const deadline = Date.now() + DEV_LOOKUP_BUDGET_MS;\n const found: T[] = [];\n let cursor: string | null = null;\n for (let page = 1; page <= MAX_PAGES; page += 1) {\n const { items, next } = await fetchPage(page, cursor);\n found.push(...items.filter(keep));\n if (found.length >= PER_PAGE || !next || Date.now() >= deadline) break;\n cursor = next;\n }\n return found.slice(0, PER_PAGE);\n}\n\nfunction matches(name: string, query: string): boolean {\n return !query || name.toLowerCase().includes(query.toLowerCase());\n}\n\n/** Categories with their subcategories, flattened, parents first. */\nfunction flatten(categories: Category[]): Category[] {\n return categories.flatMap((c) => [c, ...flatten(c.sub_categories ?? [])]);\n}\n\nasync function products(query: string): Promise<DevLookupItem[]> {\n const { items } = await product.list({\n source: query ? 'search' : 'latest',\n ...(query ? { keyword: query } : {}),\n perPage: PER_PAGE,\n });\n // List responses send the id as a numeric string; the block reads a number. Use it for both.\n return items.map((p) => ({\n id: Number(p.id),\n name: p.name,\n image: p.image?.url,\n url: p.url,\n data: { id: Number(p.id), name: p.name, url: p.url, image: p.image?.url ?? null },\n }));\n}\n\nasync function categories(query: string): Promise<DevLookupItem[]> {\n return flatten(await category.list())\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n image: c.image ?? undefined,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url, image: c.image ?? null, icon: c.icon ?? null },\n }));\n}\n\nasync function brands(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n (page) => brand.list(page),\n (b) => matches(b.name, query)\n );\n return found.map((b) => ({\n id: b.id,\n name: b.name,\n image: b.logo,\n url: b.url,\n data: { id: b.id, name: b.name, url: b.url, logo: b.logo, banner: b.banner ?? null },\n }));\n}\n\nasync function blogArticles(query: string): Promise<DevLookupItem[]> {\n const found = await collect(\n async (_page, cursor) => {\n const { data, cursor: pages } = await blog.articles.list(cursor ? { cursor } : undefined);\n return { items: data, next: pages?.next ?? null };\n },\n (a) => matches(a.name, query)\n );\n return found.map((a) => ({\n id: a.id,\n name: a.name,\n image: a.image,\n url: a.url,\n data: { id: a.id, name: a.name, url: a.url },\n }));\n}\n\nasync function blogCategories(query: string): Promise<DevLookupItem[]> {\n const { categories: list } = await blog.get();\n return list\n .filter((c) => matches(c.name, query))\n .slice(0, PER_PAGE)\n .map((c) => ({\n id: c.id,\n name: c.name,\n url: c.url,\n data: { id: c.id, name: c.name, url: c.url },\n }));\n}\n\nconst LOOKUPS: Record<DevLookupSource, (query: string) => Promise<DevLookupItem[]>> = {\n products,\n categories,\n brands,\n blog_articles: blogArticles,\n blog_categories: blogCategories,\n};\n\nexport function lookupInStore(source: DevLookupSource, query: string): Promise<DevLookupItem[]> {\n const lookup = LOOKUPS[source];\n if (!lookup) return Promise.reject(new Error(`no lookup for ${source}`));\n return lookup(query.trim());\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/tanstack/router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAY,aAAa,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAM7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBhE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA2C7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAoED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,KAG7B,SAAS,GAAG,kRAOrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,sCA4BlE;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAa1E;AAoKD;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,uGA6HzE;AAED,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;KACzC;IAED,UAAU,aAAc,SAAQ,oBAAoB;KAAG;CACxD"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/tanstack/router.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAOvC,OAAO,KAAK,EAAwC,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAClG,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAMpD,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,qBAAqB,CAAC;AAO7B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAW,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAgBhE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,WAAW,EAAE,WAAW,CAAC;IACzB,WAAW,EAAE,CAAC,SAAS,EAAE,OAAO,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC;CAC7D;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CA2C7D,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAEzD;AAoED;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,KAG7B,SAAS,GAAG,kRAOrB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,OAAO,CAAA;CAAE,sCA4BlE;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,kCAAkC,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAa1E;AA8ND;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,uBAAuB,CAAC,EAAE,CAAC,MAAM,SAAS,CAAC,GAAG,KAAK,CAAC;IACpD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,mBAAmB,uGA+HzE;AAED,OAAO,QAAQ,wBAAwB,CAAC;IACtC,UAAU,QAAQ;QAChB,MAAM,EAAE,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC;KACzC;IAED,UAAU,aAAc,SAAQ,oBAAoB;KAAG;CACxD"}
package/dist/tanstack.js CHANGED
@@ -1,26 +1,26 @@
1
- export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-XUJJIH5C.js';
2
- import { requestHostOf } from './chunk-LVEIDCW2.js';
3
- export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-LVEIDCW2.js';
1
+ export { tanstackDocumentAdapter as attrs, createRouter, createTwilightRootRoute, useTanstackDocumentAttrs as useAttrs } from './chunk-TUIB74QX.js';
2
+ import { requestHostOf } from './chunk-VE34Y3Z3.js';
3
+ export { TanStackLinkAdapter, TanStackNavigationProvider, createTanStackLinkAdapter } from './chunk-VE34Y3Z3.js';
4
4
  import './chunk-Z4Y55HWX.js';
5
5
  export { tanstackHeadAdapter as head, withHead } from './chunk-5UWRPWK2.js';
6
6
  import { CRITICAL_STYLE_HREF } from './chunk-4FJGZQD3.js';
7
- import './chunk-PXH5TZGZ.js';
8
- import { readNativeAppHeaders } from './chunk-YDXBRST4.js';
9
- import './chunk-3OWCF54L.js';
10
- import './chunk-DRDQQNIW.js';
11
- import { rootHead } from './chunk-SXI2XBCC.js';
7
+ import './chunk-BFPTMZ4G.js';
8
+ import { readNativeAppHeaders } from './chunk-EDK4U4WQ.js';
9
+ import './chunk-WXE5OK4N.js';
10
+ import './chunk-B6CGVRJ7.js';
11
+ import { rootHead } from './chunk-N6ZE6HUX.js';
12
12
  import './chunk-X55R4VVK.js';
13
- import './chunk-2EF2HHHL.js';
13
+ import './chunk-6TT5VHUM.js';
14
14
  import './chunk-WQPG22DY.js';
15
15
  import './chunk-GD26FI4J.js';
16
16
  import { maintenanceEvidence, MAINTENANCE_EVIDENCE_HEADER, maintenanceEvidenceHeader } from './chunk-Q7E4TNN7.js';
17
17
  import './chunk-RYGEIQWO.js';
18
- import './chunk-DGK2HVSR.js';
18
+ import './chunk-W37R3JJ7.js';
19
19
  import './chunk-OUW6WESU.js';
20
20
  import './chunk-JWXJPJBO.js';
21
21
  export { mergeDocumentDescriptors as mergeAttrs } from './chunk-CW625T2E.js';
22
- import './chunk-4EAYVEJO.js';
23
- import './chunk-5RWIVHYS.js';
22
+ import './chunk-XNNKW6FA.js';
23
+ import './chunk-RYAOXNRA.js';
24
24
  import './chunk-Z5M4YYWT.js';
25
25
  import './chunk-TYNZ5B2B.js';
26
26
  import './chunk-BYMOPN2S.js';
@@ -1,6 +1,6 @@
1
1
  export { stripUnsafeHtml } from '../chunk-RUHSV4Z6.js';
2
2
  export { formatSallaPlural } from '../chunk-BT6HEEAP.js';
3
- export { dispatchRouteChanged } from '../chunk-PXH5TZGZ.js';
3
+ export { dispatchRouteChanged } from '../chunk-BFPTMZ4G.js';
4
4
  export { sortOptions } from '../chunk-3LZJXKVO.js';
5
5
  export { color } from '../chunk-VVZNW5CB.js';
6
6
  export { applyAppScopeMocks, registerThemeHookSlots } from '../chunk-WQPG22DY.js';
@@ -8,7 +8,7 @@ export { mergeHead, resolveHead, setHeadAdapter } from '../chunk-GD26FI4J.js';
8
8
  export { buildBaseHead, buildHreflangAlternates, localeToOgLocale } from '../chunk-RYGEIQWO.js';
9
9
  export { asset, cdn, isPlaceholder } from '../chunk-ZCH7W7DZ.js';
10
10
  export { mergeDocumentDescriptors, mergeElementAttrs, normalizeClasses, syncAttrsToElement, toReactProps } from '../chunk-CW625T2E.js';
11
- import '../chunk-5RWIVHYS.js';
11
+ import '../chunk-RYAOXNRA.js';
12
12
  import '../chunk-Z5M4YYWT.js';
13
13
  export { getSallaSDK, getStoreIdentifier, onSallaEvent, whenSallaLoaded, whenSallaReady } from '../chunk-NHA4SBKG.js';
14
14
  export { AUTH_TOKEN_COOKIE_NAME, clearAuthTokenCookie, extractTokenFromCookies } from '../chunk-FXVII733.js';
@@ -0,0 +1,45 @@
1
+ /**
2
+ * Compatibility mode for app snippets written for Twig, where every page is a full load.
3
+ *
4
+ * Such a snippet checks the page once, when it runs (`if (salla.url.is_page('product.single'))`),
5
+ * and edits the DOM it finds. In the SPA it runs once per visit, on whatever page the shopper
6
+ * landed on, so it never mounts on a later product page, and React replaces what it added when
7
+ * the page changes. Until those apps move to the SDK's `page::view`, the engine loads the document fully
8
+ * when a navigation enters or leaves a page one of them names, which is what Twig did. Only pages a
9
+ * snippet names count: every other navigation stays in the browser.
10
+ */
11
+ /**
12
+ * The pages an inline snippet's code depends on: the slugs it passes to `is_page` as a literal,
13
+ * or nothing when it doesn't care or reads the page only inside a `page::view` listener.
14
+ *
15
+ * Only a literal, positive check counts. A negated one, `page.slug`, `config.get('page')` or a
16
+ * slug held in a variable would point at every page, and a full load on every navigation costs
17
+ * the whole store its in-browser navigation (#513), so those snippets keep running once.
18
+ */
19
+ export declare function snippetPageTargets(snippet: string): string[];
20
+ /** Told whether any page needs a full load, each time the snippets are recorded. */
21
+ type TargetsListener = (active: boolean) => void;
22
+ /**
23
+ * Calls `listener` now and whenever the snippets are recorded, with whether any page needs a full
24
+ * load. The router installs its navigation blocker only while one does: a blocker makes every
25
+ * history push wait a tick, which stores without such snippets shouldn't pay for.
26
+ */
27
+ export declare function subscribeSnippetPageTargets(listener: TargetsListener): () => void;
28
+ /**
29
+ * Records the installed apps' inline snippets. CDN snippets are not scanned: their code is on
30
+ * another origin. `AppsSnippets` calls this once the snippets are known.
31
+ */
32
+ export declare function setSnippetPageTargets(snippets: ReadonlyArray<{
33
+ content: string;
34
+ url?: string | null;
35
+ }>): void;
36
+ /**
37
+ * Whether going from the page `from` to the page `to` must load the document fully: when either
38
+ * is a page some app snippet targets. Leaving one matters as much as entering: a widget an app
39
+ * added to <body> for the product page would otherwise stay on the cart.
40
+ */
41
+ export declare function needsDocumentLoad(from: string | undefined, to: string | undefined): boolean;
42
+ /** @internal Test-only. */
43
+ export declare function resetSnippetPageTargets(): void;
44
+ export {};
45
+ //# sourceMappingURL=snippet-page-compat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snippet-page-compat.d.ts","sourceRoot":"","sources":["../../src/utils/snippet-page-compat.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAgOH;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAM5D;AAmBD,oFAAoF;AACpF,KAAK,eAAe,GAAG,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,IAAI,CAIjF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,aAAa,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,GAChE,IAAI,CAcN;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,SAAS,GAAG,OAAO,CAG3F;AAED,2BAA2B;AAC3B,wBAAgB,uBAAuB,IAAI,IAAI,CAG9C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salla.sa/twilight-theme-engine",
3
- "version": "1.0.134",
3
+ "version": "1.0.136",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,13 +1,47 @@
1
- import { memo, useState, useEffect } from 'react';
1
+ import { memo, useState, useEffect, type CSSProperties } from 'react';
2
+
3
+ // Placeholder hints a bundle declares per component under `props` in its
4
+ // twilight-bundle.json; the store API passes them as `component_props`. Each maps 1:1 to an
5
+ // attribute on <salla-custom-component>, which reserves the component's space until the
6
+ // bundle renders.
7
+ // @see https://github.com/SallaApp/twilight-bundles/blob/master/packages/starter-kit/README.md#component-skeleton--placeholder
8
+ const SIZE_PROPS = ['min-height', 'height', 'width', 'aspect-ratio'] as const;
9
+ const SKELETON_PROPS: readonly string[] = [...SIZE_PROPS, 'skeleton-style'];
10
+
11
+ type SkeletonProps = Record<string, string>;
2
12
 
3
13
  export interface BundleComponentProps {
4
14
  data: {
5
15
  component_name: string;
6
16
  bundle_id: string;
17
+ component_props?: SkeletonProps;
7
18
  [key: string]: unknown;
8
19
  };
9
20
  }
10
21
 
22
+ function pickSkeletonProps(props: unknown): SkeletonProps {
23
+ if (!props || typeof props !== 'object') return {};
24
+ return Object.fromEntries(
25
+ Object.entries(props).filter(
26
+ ([name, value]) =>
27
+ SKELETON_PROPS.includes(name) && typeof value === 'string' && value.trim() !== ''
28
+ )
29
+ ) as SkeletonProps;
30
+ }
31
+
32
+ // Until mount there is no <salla-custom-component>, so hold the same footprint with a plain
33
+ // block — otherwise the server HTML has nothing here and the page shifts once it mounts.
34
+ function reservedSizeStyle(props: SkeletonProps): CSSProperties | undefined {
35
+ const sizes = SIZE_PROPS.filter((name) => props[name]);
36
+ if (!sizes.length) return undefined;
37
+ return Object.fromEntries(
38
+ sizes.map((name) => [
39
+ name.replace(/-([a-z])/g, (_, char: string) => char.toUpperCase()),
40
+ props[name],
41
+ ])
42
+ ) as CSSProperties;
43
+ }
44
+
11
45
  export const BundleComponent = memo(function BundleComponent(props: BundleComponentProps) {
12
46
  const [mounted, setMounted] = useState(false);
13
47
 
@@ -15,11 +49,19 @@ export const BundleComponent = memo(function BundleComponent(props: BundleCompon
15
49
  setMounted(true);
16
50
  }, []);
17
51
 
52
+ const {
53
+ component_name: componentName,
54
+ bundle_id: bundleId,
55
+ component_props: componentProps,
56
+ ...rest
57
+ } = props.data;
58
+ const skeletonProps = pickSkeletonProps(componentProps);
59
+
18
60
  if (!mounted) {
19
- return null;
61
+ const style = reservedSizeStyle(skeletonProps);
62
+ return style ? <div aria-hidden="true" style={style} /> : null;
20
63
  }
21
64
 
22
- const { component_name: componentName, bundle_id: bundleId, ...rest } = props.data;
23
65
  const config = JSON.stringify(rest);
24
66
 
25
67
  return (
@@ -28,6 +70,7 @@ export const BundleComponent = memo(function BundleComponent(props: BundleCompon
28
70
  component-name={componentName}
29
71
  bundle-id={bundleId}
30
72
  config={config}
73
+ {...skeletonProps}
31
74
  suppressHydrationWarning
32
75
  />
33
76
  </>
@@ -3,6 +3,7 @@ import { useQuery } from '@tanstack/react-query';
3
3
  import { apps, type AppSnippetRow } from '../../api/apps';
4
4
  import { installAppScope } from '../../utils/app-scope';
5
5
  import { applyThemeHookSlots } from '../../utils/theme-hook-slots';
6
+ import { setSnippetPageTargets } from '../../utils/snippet-page-compat';
6
7
  import { getTwilightContext } from '../../twilight/context';
7
8
 
8
9
  /** How long to wait on the SDK / settings before injecting anyway. */
@@ -180,6 +181,9 @@ export function AppsSnippets() {
180
181
  [data]
181
182
  );
182
183
 
184
+ // Pages these snippets check once on load: navigating to or from them reloads the document.
185
+ useEffect(() => setSnippetPageTargets(owned), [owned]);
186
+
183
187
  // Every CDN snippet → a real `<script>` tag in the SSR body (rendered below).
184
188
  const ssrCdnScripts = useMemo<SsrCdnScript[]>(
185
189
  () =>