@salla.sa/twilight-theme-engine 1.0.24 → 1.0.26

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 (211) hide show
  1. package/README.md +1 -0
  2. package/dist/{AddToCartForm-RPBBQKPK.js → AddToCartForm-HQUHBCXL.js} +3 -3
  3. package/dist/{AddToCartForm-RPBBQKPK.js.map → AddToCartForm-HQUHBCXL.js.map} +1 -1
  4. package/dist/{BlogAuthorPage-TVFUV56M.js → BlogAuthorPage-5KR6ZSWM.js} +15 -15
  5. package/dist/{BlogAuthorPage-TVFUV56M.js.map → BlogAuthorPage-5KR6ZSWM.js.map} +1 -1
  6. package/dist/{BlogCategoryPage-IJUXUKS7.js → BlogCategoryPage-YDYYTLVN.js} +15 -15
  7. package/dist/{BlogCategoryPage-IJUXUKS7.js.map → BlogCategoryPage-YDYYTLVN.js.map} +1 -1
  8. package/dist/{BlogPage-PRQXQDUH.js → BlogPage-XRXCAKIG.js} +13 -13
  9. package/dist/{BlogPage-PRQXQDUH.js.map → BlogPage-XRXCAKIG.js.map} +1 -1
  10. package/dist/{BlogSinglePage-FMFV7W3Z.js → BlogSinglePage-PT46EPVR.js} +13 -13
  11. package/dist/{BlogSinglePage-FMFV7W3Z.js.map → BlogSinglePage-PT46EPVR.js.map} +1 -1
  12. package/dist/{BlogTagPage-HTGO6BSN.js → BlogTagPage-WBYSBULM.js} +15 -15
  13. package/dist/{BlogTagPage-HTGO6BSN.js.map → BlogTagPage-WBYSBULM.js.map} +1 -1
  14. package/dist/{BrandsPage-U35JXHJR.js → BrandsPage-NHL6RUIO.js} +13 -13
  15. package/dist/{BrandsPage-U35JXHJR.js.map → BrandsPage-NHL6RUIO.js.map} +1 -1
  16. package/dist/{Breadcrumb-MMZI72KB.js → Breadcrumb-YE4W7Y2V.js} +13 -13
  17. package/dist/{Breadcrumb-MMZI72KB.js.map → Breadcrumb-YE4W7Y2V.js.map} +1 -1
  18. package/dist/{CartItem-QT2MDGJW.js → CartItem-IRQIHZA3.js} +13 -13
  19. package/dist/{CartItem-QT2MDGJW.js.map → CartItem-IRQIHZA3.js.map} +1 -1
  20. package/dist/{CartSummary-DYGLRM55.js → CartSummary-FLNKVT5Z.js} +13 -13
  21. package/dist/{CartSummary-DYGLRM55.js.map → CartSummary-FLNKVT5Z.js.map} +1 -1
  22. package/dist/{Copyright-IJC4R2EC.js → Copyright-RNY57FLT.js} +3 -3
  23. package/dist/{Copyright-IJC4R2EC.js.map → Copyright-RNY57FLT.js.map} +1 -1
  24. package/dist/{CustomerLayout-GJVHZWIJ.js → CustomerLayout-I4CFFVI5.js} +13 -13
  25. package/dist/{CustomerLayout-GJVHZWIJ.js.map → CustomerLayout-I4CFFVI5.js.map} +1 -1
  26. package/dist/{Footer-B2NQD5SY.js → Footer-JFVR7LCW.js} +13 -13
  27. package/dist/{Footer-B2NQD5SY.js.map → Footer-JFVR7LCW.js.map} +1 -1
  28. package/dist/{Header-4BVMG3XU.js → Header-CDTMRJXR.js} +6 -6
  29. package/dist/{Header-4BVMG3XU.js.map → Header-CDTMRJXR.js.map} +1 -1
  30. package/dist/{LoyaltyPage-5BRVSONO.js → LoyaltyPage-CLGAYA5A.js} +14 -14
  31. package/dist/{LoyaltyPage-5BRVSONO.js.map → LoyaltyPage-CLGAYA5A.js.map} +1 -1
  32. package/dist/{MainMenu-G2UOWOOA.js → MainMenu-HJBWDQOW.js} +7 -7
  33. package/dist/{MainMenu-G2UOWOOA.js.map → MainMenu-HJBWDQOW.js.map} +1 -1
  34. package/dist/{MasterLayout-5ICJO4UO.js → MasterLayout-63O5U4NC.js} +13 -13
  35. package/dist/{MasterLayout-5ICJO4UO.js.map → MasterLayout-63O5U4NC.js.map} +1 -1
  36. package/dist/{MobileMenu-HLOHDYMD.js → MobileMenu-CM2PD4MS.js} +14 -14
  37. package/dist/{MobileMenu-HLOHDYMD.js.map → MobileMenu-CM2PD4MS.js.map} +1 -1
  38. package/dist/{NotificationsPage-6EWGCPYG.js → NotificationsPage-V4TCBIEW.js} +13 -13
  39. package/dist/{NotificationsPage-6EWGCPYG.js.map → NotificationsPage-V4TCBIEW.js.map} +1 -1
  40. package/dist/{OrderSinglePage-6XI6DREN.js → OrderSinglePage-E3GQ2NIZ.js} +14 -14
  41. package/dist/{OrderSinglePage-6XI6DREN.js.map → OrderSinglePage-E3GQ2NIZ.js.map} +1 -1
  42. package/dist/{OrdersPage-RNOQQBIY.js → OrdersPage-MPWUQC44.js} +14 -14
  43. package/dist/{OrdersPage-RNOQQBIY.js.map → OrdersPage-MPWUQC44.js.map} +1 -1
  44. package/dist/{PageSingle-XIHQ5WLE.js → PageSingle-KEHDYXAT.js} +3 -3
  45. package/dist/{PageSingle-XIHQ5WLE.js.map → PageSingle-KEHDYXAT.js.map} +1 -1
  46. package/dist/{ProductDetails-2N6XFO3N.js → ProductDetails-MRYRXTE5.js} +3 -3
  47. package/dist/{ProductDetails-2N6XFO3N.js.map → ProductDetails-MRYRXTE5.js.map} +1 -1
  48. package/dist/{ProfilePage-M4D55XUW.js → ProfilePage-UVKW2ZNI.js} +13 -13
  49. package/dist/{ProfilePage-M4D55XUW.js.map → ProfilePage-UVKW2ZNI.js.map} +1 -1
  50. package/dist/{SeoCartWidget-QUYOXYUG.js → SeoCartWidget-Z2ZR3H3H.js} +13 -13
  51. package/dist/{SeoCartWidget-QUYOXYUG.js.map → SeoCartWidget-Z2ZR3H3H.js.map} +1 -1
  52. package/dist/{SettingsPage-5VXVGDGN.js → SettingsPage-N7DMHKF5.js} +13 -13
  53. package/dist/{SettingsPage-5VXVGDGN.js.map → SettingsPage-N7DMHKF5.js.map} +1 -1
  54. package/dist/{StoreClosedNotification-FFCHNXJC.js → StoreClosedNotification-PIBFFMV6.js} +14 -14
  55. package/dist/{StoreClosedNotification-FFCHNXJC.js.map → StoreClosedNotification-PIBFFMV6.js.map} +1 -1
  56. package/dist/{TestimonialsPage-7JP3OLAU.js → TestimonialsPage-H6ZI3C3E.js} +3 -3
  57. package/dist/{TestimonialsPage-7JP3OLAU.js.map → TestimonialsPage-H6ZI3C3E.js.map} +1 -1
  58. package/dist/{ThankYouPage-6WFBFJQE.js → ThankYouPage-KZ5KTX5X.js} +13 -13
  59. package/dist/{ThankYouPage-6WFBFJQE.js.map → ThankYouPage-KZ5KTX5X.js.map} +1 -1
  60. package/dist/{WalletPage-PQUO54K7.js → WalletPage-U4DAEUHY.js} +14 -14
  61. package/dist/{WalletPage-PQUO54K7.js.map → WalletPage-U4DAEUHY.js.map} +1 -1
  62. package/dist/{WishlistPage-XHJDEZCY.js → WishlistPage-SQ6YDRQM.js} +14 -14
  63. package/dist/{WishlistPage-XHJDEZCY.js.map → WishlistPage-SQ6YDRQM.js.map} +1 -1
  64. package/dist/api/apps.js +4 -4
  65. package/dist/api/brands.js +5 -5
  66. package/dist/api/cart.js +5 -5
  67. package/dist/api/category.js +5 -5
  68. package/dist/api/client.js +3 -3
  69. package/dist/api/home.js +4 -4
  70. package/dist/api/loyalty.js +5 -5
  71. package/dist/api/menu.js +4 -4
  72. package/dist/api/notification.js +4 -4
  73. package/dist/api/order.js +5 -5
  74. package/dist/api/page.js +5 -5
  75. package/dist/api/product.js +5 -5
  76. package/dist/api/profile.js +3 -3
  77. package/dist/api/store.d.ts +23 -0
  78. package/dist/api/store.d.ts.map +1 -1
  79. package/dist/api/store.js +4 -4
  80. package/dist/api/translations.js +4 -4
  81. package/dist/api/user.js +4 -4
  82. package/dist/api/wishlist.js +4 -4
  83. package/dist/{chunk-QAZXUVOA.js → chunk-32JMBGG4.js} +4 -4
  84. package/dist/{chunk-QAZXUVOA.js.map → chunk-32JMBGG4.js.map} +1 -1
  85. package/dist/{chunk-53AXOEUK.js → chunk-3CPZ4SMV.js} +4 -4
  86. package/dist/{chunk-53AXOEUK.js.map → chunk-3CPZ4SMV.js.map} +1 -1
  87. package/dist/{chunk-6V45LHKF.js → chunk-4EYOXF7U.js} +7 -7
  88. package/dist/{chunk-6V45LHKF.js.map → chunk-4EYOXF7U.js.map} +1 -1
  89. package/dist/{chunk-ULAPZSHY.js → chunk-4HXLDKIV.js} +3 -3
  90. package/dist/{chunk-ULAPZSHY.js.map → chunk-4HXLDKIV.js.map} +1 -1
  91. package/dist/{chunk-2JHVZBQ7.js → chunk-5V5MFZEC.js} +3 -3
  92. package/dist/{chunk-2JHVZBQ7.js.map → chunk-5V5MFZEC.js.map} +1 -1
  93. package/dist/{chunk-QMT3KQ3V.js → chunk-6CRRDUBY.js} +4 -4
  94. package/dist/{chunk-QMT3KQ3V.js.map → chunk-6CRRDUBY.js.map} +1 -1
  95. package/dist/{chunk-WPJEVWKC.js → chunk-AFLP4PCU.js} +12 -12
  96. package/dist/{chunk-WPJEVWKC.js.map → chunk-AFLP4PCU.js.map} +1 -1
  97. package/dist/{chunk-FALZ7SZO.js → chunk-AIODAVGT.js} +4 -4
  98. package/dist/{chunk-FALZ7SZO.js.map → chunk-AIODAVGT.js.map} +1 -1
  99. package/dist/{chunk-SBDHJUNI.js → chunk-BJPYNISN.js} +3 -3
  100. package/dist/{chunk-SBDHJUNI.js.map → chunk-BJPYNISN.js.map} +1 -1
  101. package/dist/{chunk-NUPOX7ID.js → chunk-BQDXQ6P7.js} +4 -4
  102. package/dist/{chunk-NUPOX7ID.js.map → chunk-BQDXQ6P7.js.map} +1 -1
  103. package/dist/{chunk-UQ2MAJXN.js → chunk-D2UOBR4H.js} +3 -3
  104. package/dist/{chunk-UQ2MAJXN.js.map → chunk-D2UOBR4H.js.map} +1 -1
  105. package/dist/{chunk-ABKWUNWF.js → chunk-ENVH4QCO.js} +5 -5
  106. package/dist/{chunk-ABKWUNWF.js.map → chunk-ENVH4QCO.js.map} +1 -1
  107. package/dist/{chunk-F7TFLW56.js → chunk-EQYBGXF4.js} +4 -4
  108. package/dist/{chunk-F7TFLW56.js.map → chunk-EQYBGXF4.js.map} +1 -1
  109. package/dist/{chunk-MAYB5543.js → chunk-FJPAHB6Y.js} +15 -15
  110. package/dist/{chunk-MAYB5543.js.map → chunk-FJPAHB6Y.js.map} +1 -1
  111. package/dist/{chunk-E2FO6OSL.js → chunk-GLRQJVTK.js} +3 -3
  112. package/dist/{chunk-E2FO6OSL.js.map → chunk-GLRQJVTK.js.map} +1 -1
  113. package/dist/{chunk-EXYGVSRB.js → chunk-GSNKBCDJ.js} +3 -3
  114. package/dist/{chunk-EXYGVSRB.js.map → chunk-GSNKBCDJ.js.map} +1 -1
  115. package/dist/{chunk-EGXKYLBD.js → chunk-GUAM3RX2.js} +4 -4
  116. package/dist/{chunk-EGXKYLBD.js.map → chunk-GUAM3RX2.js.map} +1 -1
  117. package/dist/{chunk-BR26I5WV.js → chunk-HUPUM4VJ.js} +4 -4
  118. package/dist/{chunk-BR26I5WV.js.map → chunk-HUPUM4VJ.js.map} +1 -1
  119. package/dist/{chunk-4EHNAFYR.js → chunk-IK2A36AH.js} +4 -4
  120. package/dist/{chunk-4EHNAFYR.js.map → chunk-IK2A36AH.js.map} +1 -1
  121. package/dist/{chunk-VIRPVAK3.js → chunk-JY7PNW7G.js} +3 -3
  122. package/dist/{chunk-VIRPVAK3.js.map → chunk-JY7PNW7G.js.map} +1 -1
  123. package/dist/{chunk-PQNPO2J3.js → chunk-MAQPYTER.js} +3 -3
  124. package/dist/{chunk-PQNPO2J3.js.map → chunk-MAQPYTER.js.map} +1 -1
  125. package/dist/{chunk-SQCDRDPH.js → chunk-MM2EZ2GX.js} +6 -6
  126. package/dist/{chunk-SQCDRDPH.js.map → chunk-MM2EZ2GX.js.map} +1 -1
  127. package/dist/{chunk-Q5DFI4WQ.js → chunk-MQ4UTXPR.js} +3 -3
  128. package/dist/{chunk-Q5DFI4WQ.js.map → chunk-MQ4UTXPR.js.map} +1 -1
  129. package/dist/{chunk-AY6KRPHL.js → chunk-NGGPWAAN.js} +3 -3
  130. package/dist/{chunk-AY6KRPHL.js.map → chunk-NGGPWAAN.js.map} +1 -1
  131. package/dist/chunk-ONX67JTO.js +14 -0
  132. package/dist/{chunk-O36J2QLP.js.map → chunk-ONX67JTO.js.map} +1 -1
  133. package/dist/{chunk-URH4CDTN.js → chunk-P2SWZ265.js} +4 -4
  134. package/dist/{chunk-URH4CDTN.js.map → chunk-P2SWZ265.js.map} +1 -1
  135. package/dist/{chunk-LUFVVUWZ.js → chunk-P5M6ZWBT.js} +4 -4
  136. package/dist/{chunk-LUFVVUWZ.js.map → chunk-P5M6ZWBT.js.map} +1 -1
  137. package/dist/{chunk-2WNYE75P.js → chunk-QCWPF7W4.js} +45 -4
  138. package/dist/chunk-QCWPF7W4.js.map +1 -0
  139. package/dist/{chunk-GVMWHNQ5.js → chunk-SSZUSUPD.js} +4 -4
  140. package/dist/{chunk-GVMWHNQ5.js.map → chunk-SSZUSUPD.js.map} +1 -1
  141. package/dist/{chunk-UNGQL6AB.js → chunk-SY47NKC6.js} +3 -3
  142. package/dist/{chunk-UNGQL6AB.js.map → chunk-SY47NKC6.js.map} +1 -1
  143. package/dist/{chunk-MLJS3VEC.js → chunk-TZXOJOH7.js} +6 -6
  144. package/dist/{chunk-MLJS3VEC.js.map → chunk-TZXOJOH7.js.map} +1 -1
  145. package/dist/{chunk-U3S6RFYL.js → chunk-W3V547Y7.js} +3 -3
  146. package/dist/{chunk-U3S6RFYL.js.map → chunk-W3V547Y7.js.map} +1 -1
  147. package/dist/{chunk-YY2CTLTJ.js → chunk-XIS2E2UO.js} +5 -5
  148. package/dist/{chunk-YY2CTLTJ.js.map → chunk-XIS2E2UO.js.map} +1 -1
  149. package/dist/{chunk-OPKTJIZQ.js → chunk-XITF2PHC.js} +23 -3
  150. package/dist/chunk-XITF2PHC.js.map +1 -0
  151. package/dist/{chunk-LSR4FTZJ.js → chunk-YV36WMOT.js} +4 -4
  152. package/dist/{chunk-LSR4FTZJ.js.map → chunk-YV36WMOT.js.map} +1 -1
  153. package/dist/{chunk-NXM2FQJ7.js → chunk-ZRG6Z7GP.js} +3 -3
  154. package/dist/{chunk-NXM2FQJ7.js.map → chunk-ZRG6Z7GP.js.map} +1 -1
  155. package/dist/{chunk-LP3IE6UV.js → chunk-ZYKBHBBH.js} +12 -6
  156. package/dist/chunk-ZYKBHBBH.js.map +1 -0
  157. package/dist/{chunk-2FDMBW2G.js → chunk-ZYMBBAEK.js} +3 -3
  158. package/dist/{chunk-2FDMBW2G.js.map → chunk-ZYMBBAEK.js.map} +1 -1
  159. package/dist/components/cart/index.js +1 -1
  160. package/dist/components/common/index.js +1 -1
  161. package/dist/components/drawer/index.js +11 -11
  162. package/dist/components/home/index.js +14 -14
  163. package/dist/components/layout/index.js +5 -5
  164. package/dist/components/product/index.js +12 -12
  165. package/dist/components/store/index.js +13 -13
  166. package/dist/document-class-6343SXKE.js +23 -0
  167. package/dist/{document-class-XCYIBISX.js.map → document-class-6343SXKE.js.map} +1 -1
  168. package/dist/hooks/index.js +11 -11
  169. package/dist/hooks/useGtm.js +11 -11
  170. package/dist/hooks/useMoney.js +11 -11
  171. package/dist/hooks/useStore.js +11 -11
  172. package/dist/hooks/useUser.js +5 -5
  173. package/dist/index.js +11 -11
  174. package/dist/{navigation-WXELHHVJ.js → navigation-3UQAUEHS.js} +5 -5
  175. package/dist/{navigation-WXELHHVJ.js.map → navigation-3UQAUEHS.js.map} +1 -1
  176. package/dist/{navigation-WMJ77B6H.js → navigation-ASMHNVYI.js} +4 -4
  177. package/dist/{navigation-WMJ77B6H.js.map → navigation-ASMHNVYI.js.map} +1 -1
  178. package/dist/{not-found-AO2ZXILV.js → not-found-NR6ESAAX.js} +13 -13
  179. package/dist/{not-found-AO2ZXILV.js.map → not-found-NR6ESAAX.js.map} +1 -1
  180. package/dist/providers/index.js +11 -11
  181. package/dist/routes/account/orders.js +6 -6
  182. package/dist/routes/account.js +14 -14
  183. package/dist/routes/blog.js +10 -10
  184. package/dist/routes/brands.js +6 -6
  185. package/dist/routes/cart.js +19 -19
  186. package/dist/routes/home.js +16 -16
  187. package/dist/routes/index.js +3 -3
  188. package/dist/routes/loyalty.js +6 -6
  189. package/dist/routes/page.js +6 -6
  190. package/dist/routes/product-listing.js +16 -16
  191. package/dist/routes/product.js +14 -14
  192. package/dist/routes/seo-redirects.js +3 -3
  193. package/dist/routes/testimonials.js +2 -2
  194. package/dist/routes/thank-you.js +6 -6
  195. package/dist/skeleton.js +16 -16
  196. package/dist/tanstack/middleware/twilight.d.ts.map +1 -1
  197. package/dist/tanstack.js +28 -15
  198. package/dist/tanstack.js.map +1 -1
  199. package/dist/twilight/context.d.ts +28 -0
  200. package/dist/twilight/context.d.ts.map +1 -1
  201. package/dist/utils/cookies.d.ts +76 -0
  202. package/dist/utils/cookies.d.ts.map +1 -1
  203. package/dist/utils/index.js +4 -4
  204. package/dist/utils/runtime-env.d.ts.map +1 -1
  205. package/dist/vite/index.js +2 -2
  206. package/package.json +2 -2
  207. package/dist/chunk-2WNYE75P.js.map +0 -1
  208. package/dist/chunk-LP3IE6UV.js.map +0 -1
  209. package/dist/chunk-O36J2QLP.js +0 -14
  210. package/dist/chunk-OPKTJIZQ.js.map +0 -1
  211. package/dist/document-class-XCYIBISX.js +0 -23
package/dist/api/cart.js CHANGED
@@ -1,9 +1,9 @@
1
- export { cart } from '../chunk-EGXKYLBD.js';
2
- import '../chunk-PQNPO2J3.js';
1
+ export { cart } from '../chunk-GUAM3RX2.js';
2
+ import '../chunk-MAQPYTER.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-F7TFLW56.js';
5
- import '../chunk-2WNYE75P.js';
6
- import '../chunk-OPKTJIZQ.js';
4
+ import '../chunk-EQYBGXF4.js';
5
+ import '../chunk-QCWPF7W4.js';
6
+ import '../chunk-XITF2PHC.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
@@ -1,9 +1,9 @@
1
- export { category } from '../chunk-LUFVVUWZ.js';
2
- import '../chunk-PQNPO2J3.js';
1
+ export { category } from '../chunk-P5M6ZWBT.js';
2
+ import '../chunk-MAQPYTER.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-F7TFLW56.js';
5
- import '../chunk-2WNYE75P.js';
6
- import '../chunk-OPKTJIZQ.js';
4
+ import '../chunk-EQYBGXF4.js';
5
+ import '../chunk-QCWPF7W4.js';
6
+ import '../chunk-XITF2PHC.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
@@ -1,6 +1,6 @@
1
- export { api, cdn, getActiveScopeId, getAuthToken } from '../chunk-F7TFLW56.js';
2
- import '../chunk-2WNYE75P.js';
3
- import '../chunk-OPKTJIZQ.js';
1
+ export { api, cdn, getActiveScopeId, getAuthToken } from '../chunk-EQYBGXF4.js';
2
+ import '../chunk-QCWPF7W4.js';
3
+ import '../chunk-XITF2PHC.js';
4
4
  import '../chunk-T72DAX7R.js';
5
5
  import '../chunk-DGUM43GV.js';
6
6
  //# sourceMappingURL=client.js.map
package/dist/api/home.js CHANGED
@@ -1,7 +1,7 @@
1
- export { home } from '../chunk-2FDMBW2G.js';
2
- import '../chunk-F7TFLW56.js';
3
- import '../chunk-2WNYE75P.js';
4
- import '../chunk-OPKTJIZQ.js';
1
+ export { home } from '../chunk-ZYMBBAEK.js';
2
+ import '../chunk-EQYBGXF4.js';
3
+ import '../chunk-QCWPF7W4.js';
4
+ import '../chunk-XITF2PHC.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=home.js.map
@@ -1,9 +1,9 @@
1
- export { loyalty } from '../chunk-4EHNAFYR.js';
2
- import '../chunk-PQNPO2J3.js';
1
+ export { loyalty } from '../chunk-IK2A36AH.js';
2
+ import '../chunk-MAQPYTER.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-F7TFLW56.js';
5
- import '../chunk-2WNYE75P.js';
6
- import '../chunk-OPKTJIZQ.js';
4
+ import '../chunk-EQYBGXF4.js';
5
+ import '../chunk-QCWPF7W4.js';
6
+ import '../chunk-XITF2PHC.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
package/dist/api/menu.js CHANGED
@@ -1,7 +1,7 @@
1
- export { menu } from '../chunk-53AXOEUK.js';
2
- import '../chunk-F7TFLW56.js';
3
- import '../chunk-2WNYE75P.js';
4
- import '../chunk-OPKTJIZQ.js';
1
+ export { menu } from '../chunk-3CPZ4SMV.js';
2
+ import '../chunk-EQYBGXF4.js';
3
+ import '../chunk-QCWPF7W4.js';
4
+ import '../chunk-XITF2PHC.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=menu.js.map
@@ -1,7 +1,7 @@
1
- export { notification } from '../chunk-U3S6RFYL.js';
2
- import '../chunk-F7TFLW56.js';
3
- import '../chunk-2WNYE75P.js';
4
- import '../chunk-OPKTJIZQ.js';
1
+ export { notification } from '../chunk-W3V547Y7.js';
2
+ import '../chunk-EQYBGXF4.js';
3
+ import '../chunk-QCWPF7W4.js';
4
+ import '../chunk-XITF2PHC.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=notification.js.map
package/dist/api/order.js CHANGED
@@ -1,9 +1,9 @@
1
- export { order } from '../chunk-GVMWHNQ5.js';
2
- import '../chunk-PQNPO2J3.js';
1
+ export { order } from '../chunk-SSZUSUPD.js';
2
+ import '../chunk-MAQPYTER.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-F7TFLW56.js';
5
- import '../chunk-2WNYE75P.js';
6
- import '../chunk-OPKTJIZQ.js';
4
+ import '../chunk-EQYBGXF4.js';
5
+ import '../chunk-QCWPF7W4.js';
6
+ import '../chunk-XITF2PHC.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
package/dist/api/page.js CHANGED
@@ -1,9 +1,9 @@
1
- export { page } from '../chunk-URH4CDTN.js';
2
- import '../chunk-PQNPO2J3.js';
1
+ export { page } from '../chunk-P2SWZ265.js';
2
+ import '../chunk-MAQPYTER.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-F7TFLW56.js';
5
- import '../chunk-2WNYE75P.js';
6
- import '../chunk-OPKTJIZQ.js';
4
+ import '../chunk-EQYBGXF4.js';
5
+ import '../chunk-QCWPF7W4.js';
6
+ import '../chunk-XITF2PHC.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
@@ -1,9 +1,9 @@
1
- export { product } from '../chunk-FALZ7SZO.js';
2
- import '../chunk-PQNPO2J3.js';
1
+ export { product } from '../chunk-AIODAVGT.js';
2
+ import '../chunk-MAQPYTER.js';
3
3
  import '../chunk-MTONGOJD.js';
4
- import '../chunk-F7TFLW56.js';
5
- import '../chunk-2WNYE75P.js';
6
- import '../chunk-OPKTJIZQ.js';
4
+ import '../chunk-EQYBGXF4.js';
5
+ import '../chunk-QCWPF7W4.js';
6
+ import '../chunk-XITF2PHC.js';
7
7
  import '../chunk-T72DAX7R.js';
8
8
  import '../chunk-DF6FBKDN.js';
9
9
  import '../chunk-DGUM43GV.js';
@@ -1,6 +1,6 @@
1
- import { api } from '../chunk-F7TFLW56.js';
2
- import '../chunk-2WNYE75P.js';
3
- import '../chunk-OPKTJIZQ.js';
1
+ import { api } from '../chunk-EQYBGXF4.js';
2
+ import '../chunk-QCWPF7W4.js';
3
+ import '../chunk-XITF2PHC.js';
4
4
  import '../chunk-T72DAX7R.js';
5
5
  import '../chunk-DGUM43GV.js';
6
6
 
@@ -29,6 +29,29 @@ export interface StoreContext {
29
29
  trace_console?: boolean;
30
30
  policy_url?: string;
31
31
  }
32
+ /**
33
+ * Which store to ask about, in the order the answers can be trusted.
34
+ *
35
+ * A deployed theme worker is published with **no vars and no bindings** — the
36
+ * script metadata carries `main_module`, compatibility settings, assets and tags
37
+ * and nothing else — so `VITE_STORE_DOMAIN` exists only where a build baked it
38
+ * in, which is local development. In production this function used to reach the
39
+ * end of that chain and return the empty string, `store.settings` refused to
40
+ * call with no identifier, and the root loader threw "Store Unavailable" — a
41
+ * theme that renders its own failure page for every visitor of every store.
42
+ *
43
+ * The order:
44
+ *
45
+ * 1. what the caller passed, which is always deliberate;
46
+ * 2. the store this request names — the `?storeId=` a preview was opened with,
47
+ * then the cookie remembering it — seeded by `twilightMiddleware`;
48
+ * 3. what SSR already resolved and published, so the hydrated client asks about
49
+ * the same store the server rendered instead of resolving again from a URL
50
+ * that no longer names it;
51
+ * 4. the request's own host, which *is* the identity of a live storefront;
52
+ * 5. `VITE_STORE_DOMAIN`, last, because a build-time constant is a development
53
+ * convenience and must never outrank what the request actually said.
54
+ */
32
55
  export declare function resolveStoreIdentifier(explicit?: string): string;
33
56
  export declare const store: {
34
57
  settings: (storeIdentifier?: string) => Promise<StoreContext | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/api/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAsCvD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iEAAiE;IACjE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CACjB,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CACrF,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAYhE;AAeD,eAAO,MAAM,KAAK;iCACmB,MAAM,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;;qCAyCzC,MAAM;;;;;;;;;CAYtC,CAAC"}
1
+ {"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../src/api/store.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAuCvD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,iEAAiE;IACjE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CACjB,MAAM,EACN;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,CACrF,CAAC;IACF,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,kBAAkB,EAAE,MAAM,CAAA;KAAE,CAAC;IACpD,SAAS,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,OAAO,CAAA;KAAE,CAAC;IACtD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAsBhE;AAeD,eAAO,MAAM,KAAK;iCACmB,MAAM,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;;qCAyCzC,MAAM;;;;;;;;;CAYtC,CAAC"}
package/dist/api/store.js CHANGED
@@ -1,7 +1,7 @@
1
- export { resolveStoreIdentifier, store } from '../chunk-LP3IE6UV.js';
2
- import '../chunk-F7TFLW56.js';
3
- import '../chunk-2WNYE75P.js';
4
- import '../chunk-OPKTJIZQ.js';
1
+ export { resolveStoreIdentifier, store } from '../chunk-ZYKBHBBH.js';
2
+ import '../chunk-EQYBGXF4.js';
3
+ import '../chunk-QCWPF7W4.js';
4
+ import '../chunk-XITF2PHC.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=store.js.map
@@ -1,7 +1,7 @@
1
- export { translations } from '../chunk-EXYGVSRB.js';
2
- import '../chunk-F7TFLW56.js';
3
- import '../chunk-2WNYE75P.js';
4
- import '../chunk-OPKTJIZQ.js';
1
+ export { translations } from '../chunk-GSNKBCDJ.js';
2
+ import '../chunk-EQYBGXF4.js';
3
+ import '../chunk-QCWPF7W4.js';
4
+ import '../chunk-XITF2PHC.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=translations.js.map
package/dist/api/user.js CHANGED
@@ -1,7 +1,7 @@
1
- export { user } from '../chunk-2JHVZBQ7.js';
2
- import '../chunk-F7TFLW56.js';
3
- import '../chunk-2WNYE75P.js';
4
- import '../chunk-OPKTJIZQ.js';
1
+ export { user } from '../chunk-5V5MFZEC.js';
2
+ import '../chunk-EQYBGXF4.js';
3
+ import '../chunk-QCWPF7W4.js';
4
+ import '../chunk-XITF2PHC.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=user.js.map
@@ -1,7 +1,7 @@
1
- export { wishlist } from '../chunk-SBDHJUNI.js';
2
- import '../chunk-F7TFLW56.js';
3
- import '../chunk-2WNYE75P.js';
4
- import '../chunk-OPKTJIZQ.js';
1
+ export { wishlist } from '../chunk-BJPYNISN.js';
2
+ import '../chunk-EQYBGXF4.js';
3
+ import '../chunk-QCWPF7W4.js';
4
+ import '../chunk-XITF2PHC.js';
5
5
  import '../chunk-T72DAX7R.js';
6
6
  import '../chunk-DGUM43GV.js';
7
7
  //# sourceMappingURL=wishlist.js.map
@@ -1,6 +1,6 @@
1
- import { useDate } from './chunk-MAYB5543.js';
1
+ import { useDate } from './chunk-FJPAHB6Y.js';
2
2
  import { useTranslation } from './chunk-TYNZ5B2B.js';
3
- import { Image } from './chunk-NXM2FQJ7.js';
3
+ import { Image } from './chunk-ZRG6Z7GP.js';
4
4
  import { Link } from './chunk-AXW67SY7.js';
5
5
  import { jsxs, jsx } from 'react/jsx-runtime';
6
6
 
@@ -61,5 +61,5 @@ function BlogListLayout({
61
61
  }
62
62
 
63
63
  export { BlogArticleCard, BlogListLayout };
64
- //# sourceMappingURL=chunk-QAZXUVOA.js.map
65
- //# sourceMappingURL=chunk-QAZXUVOA.js.map
64
+ //# sourceMappingURL=chunk-32JMBGG4.js.map
65
+ //# sourceMappingURL=chunk-32JMBGG4.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/blog/components.tsx"],"names":[],"mappings":"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","file":"chunk-QAZXUVOA.js","sourcesContent":["import type { ReactNode } from 'react';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useDate } from '../../hooks';\nimport { Image, Link } from '../../components/common';\nimport type { BlogCategory, ArticleSummary } from './types';\n\nexport function BlogCategoriesSidebar({ categories }: { categories: BlogCategory[] }) {\n const { t } = useTranslation();\n\n if (!categories.length) return null;\n\n return (\n <nav aria-label=\"Sidebar\" className=\"hidden lg:block lg:sticky shrink-0 top-24 col-span-2\">\n <h2 className=\"font-bold mb-3\">{t('pages.blog_categories.categories')}</h2>\n <ul>\n {categories.map((category) => (\n <li key={category.id} className={category.is_current ? 'text-primary' : ''}>\n <Link className=\"py-3 block text-sm hover:text-primary\" to={category.url}>\n {category.name}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n}\n\nexport function BlogArticleCard({\n article,\n showAuthor = false,\n}: {\n article: ArticleSummary;\n showAuthor?: boolean;\n}) {\n const { format: formatDate } = useDate();\n\n return (\n <div className=\"list-block post-entry relative h-full transition-shadow duration-500 bg-white hover:shadow-default rounded-lg justify-around overflow-hidden flex flex-col\">\n <Link\n to={article.url}\n className=\"post-entry__image relative overflow-hidden hover:opacity-90 w-full h-56 bg-border-color flex items-center justify-center\"\n >\n {article.image && (\n <Image\n className=\"h-full w-full object-cover\"\n src={article.image}\n alt={article.name}\n aspectRatio=\"16/9\"\n />\n )}\n </Link>\n <div className=\"flex-1 px-5 pt-5 pb-7\">\n <div className=\"mb-2.5 text-gray-500 rounded-md inline-flex text-sm rtl:space-x-reverse space-x-5\">\n <div className=\"flex items-center\">\n <i className=\"sicon-calendar-date rtl:ml-1 ltr:mr-1\"></i>\n <span>{formatDate(article.created_at)}</span>\n </div>\n {showAuthor && article.author && (\n <Link to={article.author.url} className=\"flex items-center hover:text-dark\">\n <i className=\"sicon-user rtl:ml-1 ltr:mr-1\"></i>\n <span>{article.author.name}</span>\n </Link>\n )}\n </div>\n <h3 className=\"post-entry__title text-sm font-bold text-gray-800 leading-6 mb-2.5\">\n <Link to={article.url}>{article.name}</Link>\n </h3>\n <p className=\"text-sm text-gray-500 leading-6 mb-2.5\">{article.description}</p>\n </div>\n </div>\n );\n}\n\nexport function BlogListLayout({\n categories,\n children,\n}: {\n categories: BlogCategory[];\n children: ReactNode;\n}) {\n return (\n <div className=\"grid grid-cols-1 lg:grid-cols-8 gap-8\">\n <BlogCategoriesSidebar categories={categories} />\n <div className=\"main-content lg:col-span-6\">{children}</div>\n </div>\n );\n}\n"]}
1
+ {"version":3,"sources":["../src/routes/blog/components.tsx"],"names":[],"mappings":"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","file":"chunk-32JMBGG4.js","sourcesContent":["import type { ReactNode } from 'react';\nimport { useTranslation } from '../../providers/I18nProvider';\nimport { useDate } from '../../hooks';\nimport { Image, Link } from '../../components/common';\nimport type { BlogCategory, ArticleSummary } from './types';\n\nexport function BlogCategoriesSidebar({ categories }: { categories: BlogCategory[] }) {\n const { t } = useTranslation();\n\n if (!categories.length) return null;\n\n return (\n <nav aria-label=\"Sidebar\" className=\"hidden lg:block lg:sticky shrink-0 top-24 col-span-2\">\n <h2 className=\"font-bold mb-3\">{t('pages.blog_categories.categories')}</h2>\n <ul>\n {categories.map((category) => (\n <li key={category.id} className={category.is_current ? 'text-primary' : ''}>\n <Link className=\"py-3 block text-sm hover:text-primary\" to={category.url}>\n {category.name}\n </Link>\n </li>\n ))}\n </ul>\n </nav>\n );\n}\n\nexport function BlogArticleCard({\n article,\n showAuthor = false,\n}: {\n article: ArticleSummary;\n showAuthor?: boolean;\n}) {\n const { format: formatDate } = useDate();\n\n return (\n <div className=\"list-block post-entry relative h-full transition-shadow duration-500 bg-white hover:shadow-default rounded-lg justify-around overflow-hidden flex flex-col\">\n <Link\n to={article.url}\n className=\"post-entry__image relative overflow-hidden hover:opacity-90 w-full h-56 bg-border-color flex items-center justify-center\"\n >\n {article.image && (\n <Image\n className=\"h-full w-full object-cover\"\n src={article.image}\n alt={article.name}\n aspectRatio=\"16/9\"\n />\n )}\n </Link>\n <div className=\"flex-1 px-5 pt-5 pb-7\">\n <div className=\"mb-2.5 text-gray-500 rounded-md inline-flex text-sm rtl:space-x-reverse space-x-5\">\n <div className=\"flex items-center\">\n <i className=\"sicon-calendar-date rtl:ml-1 ltr:mr-1\"></i>\n <span>{formatDate(article.created_at)}</span>\n </div>\n {showAuthor && article.author && (\n <Link to={article.author.url} className=\"flex items-center hover:text-dark\">\n <i className=\"sicon-user rtl:ml-1 ltr:mr-1\"></i>\n <span>{article.author.name}</span>\n </Link>\n )}\n </div>\n <h3 className=\"post-entry__title text-sm font-bold text-gray-800 leading-6 mb-2.5\">\n <Link to={article.url}>{article.name}</Link>\n </h3>\n <p className=\"text-sm text-gray-500 leading-6 mb-2.5\">{article.description}</p>\n </div>\n </div>\n );\n}\n\nexport function BlogListLayout({\n categories,\n children,\n}: {\n categories: BlogCategory[];\n children: ReactNode;\n}) {\n return (\n <div className=\"grid grid-cols-1 lg:grid-cols-8 gap-8\">\n <BlogCategoriesSidebar categories={categories} />\n <div className=\"main-content lg:col-span-6\">{children}</div>\n </div>\n );\n}\n"]}
@@ -1,5 +1,5 @@
1
- import { api } from './chunk-F7TFLW56.js';
2
- import { getTwilightContext } from './chunk-OPKTJIZQ.js';
1
+ import { api } from './chunk-EQYBGXF4.js';
2
+ import { getTwilightContext } from './chunk-XITF2PHC.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var menu = {
@@ -23,5 +23,5 @@ var menu = {
23
23
  };
24
24
 
25
25
  export { menu };
26
- //# sourceMappingURL=chunk-53AXOEUK.js.map
27
- //# sourceMappingURL=chunk-53AXOEUK.js.map
26
+ //# sourceMappingURL=chunk-3CPZ4SMV.js.map
27
+ //# sourceMappingURL=chunk-3CPZ4SMV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/menu.ts"],"names":[],"mappings":";;;;AAKO,IAAM,IAAA,GAAO;AAAA,EAClB,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,MACN,YAAA,CAAa;AAAA,MACX,UAAU,CAAC,OAAA,EAAS,QAAA,EAAU,kBAAA,GAAqB,MAAM,CAAA;AAAA,MACzD,OAAA,EAAS,MAAM,IAAA,CAAK,MAAA,EAAO;AAAA,MAC3B,SAAA,EAAW,IAAI,EAAA,GAAK;AAAA,KACrB;AAAA;AAEP","file":"chunk-53AXOEUK.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport { getTwilightContext } from '../twilight/context';\nimport type { MenuItem } from '../types';\n\nexport const menu = {\n header: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/header?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n footer: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/footer?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n queries: {\n header: () =>\n queryOptions({\n queryKey: ['menus', 'header', getTwilightContext().locale],\n queryFn: () => menu.header(),\n staleTime: 5 * 60 * 1000,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/menu.ts"],"names":[],"mappings":";;;;AAKO,IAAM,IAAA,GAAO;AAAA,EAClB,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,QAAQ,YAAiC;AACvC,IAAA,MAAM,EAAE,MAAA,EAAO,GAAI,kBAAA,EAAmB;AACtC,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CAAI,IAAI,CAAA,kBAAA,EAAqB,MAAM,CAAA,CAAE,CAAA,CAAE,IAAA,EAA2B;AACzF,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,MAAA,EAAQ,MACN,YAAA,CAAa;AAAA,MACX,UAAU,CAAC,OAAA,EAAS,QAAA,EAAU,kBAAA,GAAqB,MAAM,CAAA;AAAA,MACzD,OAAA,EAAS,MAAM,IAAA,CAAK,MAAA,EAAO;AAAA,MAC3B,SAAA,EAAW,IAAI,EAAA,GAAK;AAAA,KACrB;AAAA;AAEP","file":"chunk-3CPZ4SMV.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport { getTwilightContext } from '../twilight/context';\nimport type { MenuItem } from '../types';\n\nexport const menu = {\n header: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/header?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n footer: async (): Promise<MenuItem[]> => {\n const { locale } = getTwilightContext();\n const { data } = await api.get(`menus/footer?lang=${locale}`).json<{ data: MenuItem[] }>();\n return data || [];\n },\n\n queries: {\n header: () =>\n queryOptions({\n queryKey: ['menus', 'header', getTwilightContext().locale],\n queryFn: () => menu.header(),\n staleTime: 5 * 60 * 1000,\n }),\n },\n};\n"]}
@@ -1,8 +1,8 @@
1
- import { order } from './chunk-GVMWHNQ5.js';
1
+ import { order } from './chunk-SSZUSUPD.js';
2
2
  import { buildHreflangAlternates } from './chunk-TZ3E5BN4.js';
3
- import { orUnauthorized } from './chunk-PQNPO2J3.js';
3
+ import { orUnauthorized } from './chunk-MAQPYTER.js';
4
4
  import { RouteId } from './chunk-MTONGOJD.js';
5
- import { getTwilightContext } from './chunk-OPKTJIZQ.js';
5
+ import { getTwilightContext } from './chunk-XITF2PHC.js';
6
6
  import { lazy } from 'react';
7
7
 
8
8
  // src/routes/account/orders/loader.ts
@@ -47,9 +47,9 @@ async function orderSingleLoader({
47
47
  }
48
48
 
49
49
  // src/routes/account/orders/index.tsx
50
- var LazyOrdersPage = lazy(() => import('./OrdersPage-RNOQQBIY.js').then((m) => ({ default: m.OrdersPage })));
50
+ var LazyOrdersPage = lazy(() => import('./OrdersPage-MPWUQC44.js').then((m) => ({ default: m.OrdersPage })));
51
51
  var LazyOrderSinglePage = lazy(
52
- () => import('./OrderSinglePage-6XI6DREN.js').then((m) => ({ default: m.OrderSinglePage }))
52
+ () => import('./OrderSinglePage-E3GQ2NIZ.js').then((m) => ({ default: m.OrderSinglePage }))
53
53
  );
54
54
  var OrdersPage = LazyOrdersPage;
55
55
  var OrderSinglePage = LazyOrderSinglePage;
@@ -101,5 +101,5 @@ var OrderSingle = {
101
101
  };
102
102
 
103
103
  export { OrderSingle, OrderSinglePage, Orders, OrdersPage, orderSingleLoader, ordersLoader };
104
- //# sourceMappingURL=chunk-6V45LHKF.js.map
105
- //# sourceMappingURL=chunk-6V45LHKF.js.map
104
+ //# sourceMappingURL=chunk-4EYOXF7U.js.map
105
+ //# sourceMappingURL=chunk-4EYOXF7U.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-6V45LHKF.js","sourcesContent":["import { order } from '../../../api/order';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersQuery } from './types';\nimport type { IdParams } from '../../types';\n\nexport async function ordersLoader(\n ctx: { query?: OrdersQuery },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.query;\n const isPending = query?.status === 'pending';\n const response = await orUnauthorized(\n order.list({\n status: query?.status,\n feedback_status: query?.feedback_status,\n })\n );\n const i18n = getTwilightContext().i18n;\n const pageData: OrdersPageProps = {\n page: {\n title: isPending\n ? i18n.t('common.titles.pending_orders') || 'Pending Orders'\n : i18n.t('common.titles.orders') || 'Orders',\n slug: 'orders',\n },\n orders: response.data,\n cursor: response.cursor,\n query,\n };\n\n if (extend) {\n const extra = await extend(pageData, { params: {} });\n return { ...pageData, ...extra } as OrdersPageProps;\n }\n return pageData;\n}\n\nexport async function orderSingleLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<OrderSinglePageProps> {\n const data = await order.findOrThrow(params.id);\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.CUSTOMER_ORDERS_SINGLE,\n id: String(params.id),\n title: (i18n.t('pages.orders.order_details') || 'Order Details').replace(':id', params.id),\n },\n order: data.order,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { ordersLoader, orderSingleLoader } from './loader';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersSearchParams } from './types';\nimport type { IdParams } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\n// Lazy-load components for code-splitting\nconst LazyOrdersPage = lazy(() => import('./OrdersPage').then((m) => ({ default: m.OrdersPage })));\nconst LazyOrderSinglePage = lazy(() =>\n import('./OrderSinglePage').then((m) => ({ default: m.OrderSinglePage }))\n);\n\nexport const OrdersPage = LazyOrdersPage;\nexport const OrderSinglePage = LazyOrderSinglePage;\nexport { ordersLoader, orderSingleLoader } from './loader';\nexport type {\n OrdersPageProps,\n OrderSinglePageProps,\n OrdersSearchParams,\n OrdersQuery,\n} from './types';\n\nasync function ordersLoaderWithExtend(\n ctx: { search?: OrdersSearchParams; locale?: string },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.search;\n const data = await ordersLoader({ query }, extend);\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as OrdersPageProps;\n }\n return data;\n}\n\nfunction ordersHead(ctx: TwilightContext, data: OrdersPageProps): HeadDescriptor {\n const isPending = ctx.location.search?.status === 'pending';\n const base: HeadDescriptor = {\n title: ctx.i18n.t(isPending ? 'common.titles.pending_orders' : 'common.titles.orders'),\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function orderSingleLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: OrderSinglePageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrderSinglePageProps> {\n const data = await orderSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as OrderSinglePageProps;\n }\n return data;\n}\n\nfunction orderSingleHead(ctx: TwilightContext, data: OrderSinglePageProps): 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 Orders = {\n id: RouteId.CUSTOMER_ORDERS_INDEX,\n loader: ordersLoaderWithExtend,\n head: ordersHead,\n Component: LazyOrdersPage,\n} as const;\nexport const OrderSingle = {\n id: RouteId.CUSTOMER_ORDERS_SINGLE,\n loader: orderSingleLoaderWithExtend,\n head: orderSingleHead,\n Component: LazyOrderSinglePage,\n} as const;\n"]}
1
+ {"version":3,"sources":["../src/routes/account/orders/loader.ts","../src/routes/account/orders/index.tsx"],"names":[],"mappings":"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","file":"chunk-4EYOXF7U.js","sourcesContent":["import { order } from '../../../api/order';\nimport { getTwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\nimport { orUnauthorized } from '../../../providers/NavigationProvider';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersQuery } from './types';\nimport type { IdParams } from '../../types';\n\nexport async function ordersLoader(\n ctx: { query?: OrdersQuery },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.query;\n const isPending = query?.status === 'pending';\n const response = await orUnauthorized(\n order.list({\n status: query?.status,\n feedback_status: query?.feedback_status,\n })\n );\n const i18n = getTwilightContext().i18n;\n const pageData: OrdersPageProps = {\n page: {\n title: isPending\n ? i18n.t('common.titles.pending_orders') || 'Pending Orders'\n : i18n.t('common.titles.orders') || 'Orders',\n slug: 'orders',\n },\n orders: response.data,\n cursor: response.cursor,\n query,\n };\n\n if (extend) {\n const extra = await extend(pageData, { params: {} });\n return { ...pageData, ...extra } as OrdersPageProps;\n }\n return pageData;\n}\n\nexport async function orderSingleLoader({\n params,\n}: {\n params: IdParams;\n}): Promise<OrderSinglePageProps> {\n const data = await order.findOrThrow(params.id);\n const i18n = getTwilightContext().i18n;\n return {\n page: {\n slug: RouteId.CUSTOMER_ORDERS_SINGLE,\n id: String(params.id),\n title: (i18n.t('pages.orders.order_details') || 'Order Details').replace(':id', params.id),\n },\n order: data.order,\n };\n}\n","import type { HeadDescriptor } from '../../../utils/head';\nimport { buildHreflangAlternates } from '../../../utils/baseHead';\nimport { lazy } from 'react';\nimport { ordersLoader, orderSingleLoader } from './loader';\nimport type { OrdersPageProps, OrderSinglePageProps, OrdersSearchParams } from './types';\nimport type { IdParams } from '../../types';\nimport type { TwilightContext } from '../../../twilight/context';\nimport { RouteId } from '../../../router/route-ids';\n\n// Lazy-load components for code-splitting\nconst LazyOrdersPage = lazy(() => import('./OrdersPage').then((m) => ({ default: m.OrdersPage })));\nconst LazyOrderSinglePage = lazy(() =>\n import('./OrderSinglePage').then((m) => ({ default: m.OrderSinglePage }))\n);\n\nexport const OrdersPage = LazyOrdersPage;\nexport const OrderSinglePage = LazyOrderSinglePage;\nexport { ordersLoader, orderSingleLoader } from './loader';\nexport type {\n OrdersPageProps,\n OrderSinglePageProps,\n OrdersSearchParams,\n OrdersQuery,\n} from './types';\n\nasync function ordersLoaderWithExtend(\n ctx: { search?: OrdersSearchParams; locale?: string },\n extend?: (\n data: OrdersPageProps,\n ctx: { params: Record<string, never> }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrdersPageProps> {\n const query = ctx.search;\n const data = await ordersLoader({ query }, extend);\n\n if (extend) {\n const extra = await extend(data, { params: {} });\n return { ...data, ...extra } as OrdersPageProps;\n }\n return data;\n}\n\nfunction ordersHead(ctx: TwilightContext, data: OrdersPageProps): HeadDescriptor {\n const isPending = ctx.location.search?.status === 'pending';\n const base: HeadDescriptor = {\n title: ctx.i18n.t(isPending ? 'common.titles.pending_orders' : 'common.titles.orders'),\n description: data.page.description,\n alternateLanguages: buildHreflangAlternates(ctx.settings, ctx.location.pathname),\n };\n\n return base;\n}\n\nasync function orderSingleLoaderWithExtend(\n ctx: { params: IdParams; locale?: string },\n extend?: (\n data: OrderSinglePageProps,\n ctx: { params: IdParams }\n ) => Promise<Record<string, unknown>> | Record<string, unknown>\n): Promise<OrderSinglePageProps> {\n const data = await orderSingleLoader({ params: ctx.params });\n\n if (extend) {\n const extra = await extend(data, ctx);\n return { ...data, ...extra } as OrderSinglePageProps;\n }\n return data;\n}\n\nfunction orderSingleHead(ctx: TwilightContext, data: OrderSinglePageProps): 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 Orders = {\n id: RouteId.CUSTOMER_ORDERS_INDEX,\n loader: ordersLoaderWithExtend,\n head: ordersHead,\n Component: LazyOrdersPage,\n} as const;\nexport const OrderSingle = {\n id: RouteId.CUSTOMER_ORDERS_SINGLE,\n loader: orderSingleLoaderWithExtend,\n head: orderSingleHead,\n Component: LazyOrderSinglePage,\n} as const;\n"]}
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-F7TFLW56.js';
1
+ import { api } from './chunk-EQYBGXF4.js';
2
2
  import { queryOptions } from '@tanstack/react-query';
3
3
 
4
4
  var apps = {
@@ -40,5 +40,5 @@ var apps = {
40
40
  };
41
41
 
42
42
  export { apps };
43
- //# sourceMappingURL=chunk-ULAPZSHY.js.map
44
- //# sourceMappingURL=chunk-ULAPZSHY.js.map
43
+ //# sourceMappingURL=chunk-4HXLDKIV.js.map
44
+ //# sourceMappingURL=chunk-4HXLDKIV.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/apps.ts"],"names":[],"mappings":";;;AAmCO,IAAM,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,UAAU,YAAmC;AAC3C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,eAAA,EAAiB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CACtC,IAAA,EAA8B;AACjC,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,YAAkC;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,wBAAA,EAA0B,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CAC/C,IAAA,EAAsC;AACzC,IAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,IAAQ,EAAC,EAAE;AAAA,EAClC,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA;AAAA;AAAA;AAAA,MAIX,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,IAEH,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA,MACX,KAAA,EAAO;AAAA,KACR;AAAA;AAEP","file":"chunk-ULAPZSHY.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\n\nexport interface AppSnippetRow {\n place: string;\n content: string;\n url?: string | null;\n /**\n * Raw snippet id, emitted as `data-snippet-id`. Present only on CDN rows — the\n * inline branch of the backend's snippet parser omits the key entirely.\n */\n id?: number;\n /** `{{customer.x}}` placeholders in `content` to substitute from SDK config `user.*` keys. */\n customer_parameters?: string[];\n}\n\nexport interface AppSnippet {\n service: string;\n app_id: string;\n /** Encoded app id (`getRouteKey()`): the scope id its snippets bind to via `data-scope-id`,\n * and its settings-bucket key. Absent on payloads predating the settings API. */\n id?: string;\n app_slug: string;\n status: string;\n snippets: AppSnippetRow[];\n}\n\n/**\n * Per-app public `app.*` buckets for CDN snippets, keyed by encoded app id (== `AppSnippet.id`,\n * the `Salla.appScope` scope id). One isolated bucket per app; reads within a scope are bare `app.*`.\n */\nexport interface AppSettings {\n apps: Record<string, Record<string, unknown>>;\n}\n\nexport const apps = {\n /**\n * Installed apps' snippets (scripts/HTML to inject). Timeout-bounded because it's awaited in\n * rootBeforeLoad (SSR/TTFB): a slow response degrades to no CDN tags, never stalls the page.\n */\n snippets: async (): Promise<AppSnippet[]> => {\n const { data } = await api\n .get('apps/snippets', { timeout: 2500 })\n .json<{ data?: AppSnippet[] }>();\n return data ?? [];\n },\n\n /**\n * Per-app public `app.*` buckets, keyed by encoded app id. Timeout-bounded (SSR-awaited):\n * a slow response degrades to empty buckets (fail-open), never strands injection.\n */\n settings: async (): Promise<AppSettings> => {\n const { data } = await api\n .get('apps/snippets/settings', { timeout: 2500 })\n .json<{ data?: Partial<AppSettings> }>();\n return { apps: data?.apps ?? {} };\n },\n\n queries: {\n snippets: () =>\n queryOptions({\n queryKey: ['apps', 'snippets'],\n queryFn: () => apps.snippets(),\n // Snippets are static per session; one fetch per page load is enough.\n staleTime: Infinity,\n // No retry: this is awaited in rootBeforeLoad, so the router's default `retry: 1` would\n // make the SSR wait 2 x the 2500ms timeout (plus backoff) before failing open. The\n // 2500ms timeout must be the whole budget; the client fallback query does the retrying.\n retry: 0,\n }),\n\n settings: () =>\n queryOptions({\n queryKey: ['apps', 'settings'],\n queryFn: () => apps.settings(),\n // Encoded app ids and their buckets are stable per page; one fetch is enough.\n staleTime: Infinity,\n retry: 0,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/apps.ts"],"names":[],"mappings":";;;AAmCO,IAAM,IAAA,GAAO;AAAA;AAAA;AAAA;AAAA;AAAA,EAKlB,UAAU,YAAmC;AAC3C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,eAAA,EAAiB,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CACtC,IAAA,EAA8B;AACjC,IAAA,OAAO,QAAQ,EAAC;AAAA,EAClB,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,YAAkC;AAC1C,IAAA,MAAM,EAAE,IAAA,EAAK,GAAI,MAAM,GAAA,CACpB,GAAA,CAAI,wBAAA,EAA0B,EAAE,OAAA,EAAS,IAAA,EAAM,CAAA,CAC/C,IAAA,EAAsC;AACzC,IAAA,OAAO,EAAE,IAAA,EAAM,IAAA,EAAM,IAAA,IAAQ,EAAC,EAAE;AAAA,EAClC,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA;AAAA;AAAA;AAAA,MAIX,KAAA,EAAO;AAAA,KACR,CAAA;AAAA,IAEH,QAAA,EAAU,MACR,YAAA,CAAa;AAAA,MACX,QAAA,EAAU,CAAC,MAAA,EAAQ,UAAU,CAAA;AAAA,MAC7B,OAAA,EAAS,MAAM,IAAA,CAAK,QAAA,EAAS;AAAA;AAAA,MAE7B,SAAA,EAAW,QAAA;AAAA,MACX,KAAA,EAAO;AAAA,KACR;AAAA;AAEP","file":"chunk-4HXLDKIV.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\n\nexport interface AppSnippetRow {\n place: string;\n content: string;\n url?: string | null;\n /**\n * Raw snippet id, emitted as `data-snippet-id`. Present only on CDN rows — the\n * inline branch of the backend's snippet parser omits the key entirely.\n */\n id?: number;\n /** `{{customer.x}}` placeholders in `content` to substitute from SDK config `user.*` keys. */\n customer_parameters?: string[];\n}\n\nexport interface AppSnippet {\n service: string;\n app_id: string;\n /** Encoded app id (`getRouteKey()`): the scope id its snippets bind to via `data-scope-id`,\n * and its settings-bucket key. Absent on payloads predating the settings API. */\n id?: string;\n app_slug: string;\n status: string;\n snippets: AppSnippetRow[];\n}\n\n/**\n * Per-app public `app.*` buckets for CDN snippets, keyed by encoded app id (== `AppSnippet.id`,\n * the `Salla.appScope` scope id). One isolated bucket per app; reads within a scope are bare `app.*`.\n */\nexport interface AppSettings {\n apps: Record<string, Record<string, unknown>>;\n}\n\nexport const apps = {\n /**\n * Installed apps' snippets (scripts/HTML to inject). Timeout-bounded because it's awaited in\n * rootBeforeLoad (SSR/TTFB): a slow response degrades to no CDN tags, never stalls the page.\n */\n snippets: async (): Promise<AppSnippet[]> => {\n const { data } = await api\n .get('apps/snippets', { timeout: 2500 })\n .json<{ data?: AppSnippet[] }>();\n return data ?? [];\n },\n\n /**\n * Per-app public `app.*` buckets, keyed by encoded app id. Timeout-bounded (SSR-awaited):\n * a slow response degrades to empty buckets (fail-open), never strands injection.\n */\n settings: async (): Promise<AppSettings> => {\n const { data } = await api\n .get('apps/snippets/settings', { timeout: 2500 })\n .json<{ data?: Partial<AppSettings> }>();\n return { apps: data?.apps ?? {} };\n },\n\n queries: {\n snippets: () =>\n queryOptions({\n queryKey: ['apps', 'snippets'],\n queryFn: () => apps.snippets(),\n // Snippets are static per session; one fetch per page load is enough.\n staleTime: Infinity,\n // No retry: this is awaited in rootBeforeLoad, so the router's default `retry: 1` would\n // make the SSR wait 2 x the 2500ms timeout (plus backoff) before failing open. The\n // 2500ms timeout must be the whole budget; the client fallback query does the retrying.\n retry: 0,\n }),\n\n settings: () =>\n queryOptions({\n queryKey: ['apps', 'settings'],\n queryFn: () => apps.settings(),\n // Encoded app ids and their buckets are stable per page; one fetch is enough.\n staleTime: Infinity,\n retry: 0,\n }),\n },\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { api } from './chunk-F7TFLW56.js';
1
+ import { api } from './chunk-EQYBGXF4.js';
2
2
  import { queryOptions } from '@tanstack/react-query';
3
3
 
4
4
  var user = {
@@ -19,5 +19,5 @@ var user = {
19
19
  };
20
20
 
21
21
  export { user };
22
- //# sourceMappingURL=chunk-2JHVZBQ7.js.map
23
- //# sourceMappingURL=chunk-2JHVZBQ7.js.map
22
+ //# sourceMappingURL=chunk-5V5MFZEC.js.map
23
+ //# sourceMappingURL=chunk-5V5MFZEC.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/user.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,KAAK,YAAkC;AACrC,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,GAAA,CACV,GAAA,CAAI,WAAW,CAAA,CACf,MAAmC,CACnC,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,CAAE,IAAA,EAAM,IAAA,EAAM,QAAgB,CAAE,CAAA;AAAA,IACvD,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,sBAAsB,KAAK,CAAA;AACzC,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MACP,YAAA,CAA0B;AAAA,MACxB,QAAA,EAAU,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,MAC5B,SAAS,IAAA,CAAK;AAAA,KACf;AAAA;AAEP","file":"chunk-2JHVZBQ7.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { User } from '../types';\n\nexport const user = {\n get: async (): Promise<User | null> => {\n try {\n return await api\n .get('auth/user')\n .json<{ data: Omit<User, 'type'> }>()\n .then((r) => ({ ...r.data, type: 'user' as const }));\n } catch (error) {\n console.debug('[user.get] Failed:', error);\n return null;\n }\n },\n\n queries: {\n current: () =>\n queryOptions<User | null>({\n queryKey: ['user', 'current'],\n queryFn: user.get,\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/user.ts"],"names":[],"mappings":";;;AAIO,IAAM,IAAA,GAAO;AAAA,EAClB,KAAK,YAAkC;AACrC,IAAA,IAAI;AACF,MAAA,OAAO,MAAM,GAAA,CACV,GAAA,CAAI,WAAW,CAAA,CACf,MAAmC,CACnC,IAAA,CAAK,CAAC,CAAA,MAAO,EAAE,GAAG,CAAA,CAAE,IAAA,EAAM,IAAA,EAAM,QAAgB,CAAE,CAAA;AAAA,IACvD,SAAS,KAAA,EAAO;AACd,MAAA,OAAA,CAAQ,KAAA,CAAM,sBAAsB,KAAK,CAAA;AACzC,MAAA,OAAO,IAAA;AAAA,IACT;AAAA,EACF,CAAA;AAAA,EAEA,OAAA,EAAS;AAAA,IACP,OAAA,EAAS,MACP,YAAA,CAA0B;AAAA,MACxB,QAAA,EAAU,CAAC,MAAA,EAAQ,SAAS,CAAA;AAAA,MAC5B,SAAS,IAAA,CAAK;AAAA,KACf;AAAA;AAEP","file":"chunk-5V5MFZEC.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport { api } from './client';\nimport type { User } from '../types';\n\nexport const user = {\n get: async (): Promise<User | null> => {\n try {\n return await api\n .get('auth/user')\n .json<{ data: Omit<User, 'type'> }>()\n .then((r) => ({ ...r.data, type: 'user' as const }));\n } catch (error) {\n console.debug('[user.get] Failed:', error);\n return null;\n }\n },\n\n queries: {\n current: () =>\n queryOptions<User | null>({\n queryKey: ['user', 'current'],\n queryFn: user.get,\n }),\n },\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { orThrow } from './chunk-PQNPO2J3.js';
2
- import { api } from './chunk-F7TFLW56.js';
1
+ import { orThrow } from './chunk-MAQPYTER.js';
2
+ import { api } from './chunk-EQYBGXF4.js';
3
3
  import { queryOptions } from '@tanstack/react-query';
4
4
 
5
5
  var blog = {
@@ -63,5 +63,5 @@ var blog = {
63
63
  };
64
64
 
65
65
  export { blog };
66
- //# sourceMappingURL=chunk-QMT3KQ3V.js.map
67
- //# sourceMappingURL=chunk-QMT3KQ3V.js.map
66
+ //# sourceMappingURL=chunk-6CRRDUBY.js.map
67
+ //# sourceMappingURL=chunk-6CRRDUBY.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/api/blog.ts"],"names":[],"mappings":"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","file":"chunk-QMT3KQ3V.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport type { Options as KyOptions } from 'ky';\nimport { api } from './client';\nimport type { Pagination } from './types';\nimport type {\n ArticleSummary,\n ArticleDetail,\n BlogAuthor,\n BlogCategory,\n BlogTag,\n BlogOverview,\n} from '../routes/blog/types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport interface BlogArticlesListParams {\n category?: string;\n author?: string;\n tag?: string;\n page?: number;\n cursor?: string | null;\n signal?: AbortSignal;\n}\n\nexport interface BlogArticlesListResponse {\n data: ArticleSummary[];\n categories?: BlogCategory[];\n category: BlogCategory;\n author: BlogAuthor;\n tag: BlogTag;\n cursor: Pagination;\n}\n\nexport interface BlogGetResponse {\n data: {\n categories: BlogCategory[] | null;\n slides: ArticleSummary[] | null;\n articles: ArticleSummary[] | null;\n popular: ArticleSummary[] | null;\n };\n}\n\nexport const blog = {\n get: async (signal?: AbortSignal): Promise<BlogOverview> => {\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api.get('blog', options as KyOptions).json<BlogGetResponse>();\n\n return {\n categories: response.data.categories ?? [],\n slides: response.data.slides ?? [],\n articles: response.data.articles ?? [],\n popular: response.data.popular ?? [],\n };\n },\n\n articles: {\n list: async (params?: BlogArticlesListParams): Promise<BlogArticlesListResponse> => {\n const { category, author, tag, page, cursor, signal } = params ?? {};\n\n const searchParams = new URLSearchParams();\n if (page !== undefined) searchParams.set('page', String(page));\n if (cursor) searchParams.set('cursor', cursor);\n if (category) searchParams.set('category', category);\n if (author) searchParams.set('author', author);\n if (tag) searchParams.set('tag', tag);\n\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`blog/articles?${searchParams.toString()}`, options as KyOptions)\n .json<{\n data: ArticleSummary[] | null;\n categories?: BlogCategory[] | null;\n category: BlogCategory;\n author: BlogAuthor;\n tag: BlogTag;\n cursor: Pagination;\n }>();\n\n return {\n data: response.data ?? [],\n categories: response.categories ?? undefined,\n category: response.category,\n author: response.author,\n tag: response.tag,\n cursor: response.cursor,\n };\n },\n\n find: async (id: string, signal?: AbortSignal): Promise<ArticleDetail> => {\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`blog/articles/${id}`, options as KyOptions)\n .json<{ data: ArticleDetail | null }>();\n\n if (!response.data) {\n throw new Error(`Article ${id} not found`);\n }\n\n return response.data;\n },\n\n findOrThrow: (id: string, signal?: AbortSignal): Promise<ArticleDetail> =>\n orThrow(blog.articles.find(id, signal)),\n },\n\n queries: {\n overview: () =>\n queryOptions({\n queryKey: ['blog', 'overview'],\n queryFn: ({ signal }) => blog.get(signal),\n }),\n articles: (params?: Omit<BlogArticlesListParams, 'signal'>) =>\n queryOptions({\n queryKey: ['blog', 'articles', params],\n queryFn: ({ signal }) => blog.articles.list({ ...params, signal }),\n }),\n article: (id: string) =>\n queryOptions({\n queryKey: ['blog', 'article', id],\n queryFn: ({ signal }) => blog.articles.find(id, signal),\n }),\n },\n};\n"]}
1
+ {"version":3,"sources":["../src/api/blog.ts"],"names":[],"mappings":"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","file":"chunk-6CRRDUBY.js","sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport type { Options as KyOptions } from 'ky';\nimport { api } from './client';\nimport type { Pagination } from './types';\nimport type {\n ArticleSummary,\n ArticleDetail,\n BlogAuthor,\n BlogCategory,\n BlogTag,\n BlogOverview,\n} from '../routes/blog/types';\nimport { orThrow } from '../providers/NavigationProvider';\n\nexport interface BlogArticlesListParams {\n category?: string;\n author?: string;\n tag?: string;\n page?: number;\n cursor?: string | null;\n signal?: AbortSignal;\n}\n\nexport interface BlogArticlesListResponse {\n data: ArticleSummary[];\n categories?: BlogCategory[];\n category: BlogCategory;\n author: BlogAuthor;\n tag: BlogTag;\n cursor: Pagination;\n}\n\nexport interface BlogGetResponse {\n data: {\n categories: BlogCategory[] | null;\n slides: ArticleSummary[] | null;\n articles: ArticleSummary[] | null;\n popular: ArticleSummary[] | null;\n };\n}\n\nexport const blog = {\n get: async (signal?: AbortSignal): Promise<BlogOverview> => {\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api.get('blog', options as KyOptions).json<BlogGetResponse>();\n\n return {\n categories: response.data.categories ?? [],\n slides: response.data.slides ?? [],\n articles: response.data.articles ?? [],\n popular: response.data.popular ?? [],\n };\n },\n\n articles: {\n list: async (params?: BlogArticlesListParams): Promise<BlogArticlesListResponse> => {\n const { category, author, tag, page, cursor, signal } = params ?? {};\n\n const searchParams = new URLSearchParams();\n if (page !== undefined) searchParams.set('page', String(page));\n if (cursor) searchParams.set('cursor', cursor);\n if (category) searchParams.set('category', category);\n if (author) searchParams.set('author', author);\n if (tag) searchParams.set('tag', tag);\n\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`blog/articles?${searchParams.toString()}`, options as KyOptions)\n .json<{\n data: ArticleSummary[] | null;\n categories?: BlogCategory[] | null;\n category: BlogCategory;\n author: BlogAuthor;\n tag: BlogTag;\n cursor: Pagination;\n }>();\n\n return {\n data: response.data ?? [],\n categories: response.categories ?? undefined,\n category: response.category,\n author: response.author,\n tag: response.tag,\n cursor: response.cursor,\n };\n },\n\n find: async (id: string, signal?: AbortSignal): Promise<ArticleDetail> => {\n const options: Record<string, unknown> = {};\n if (signal) options.signal = signal;\n\n const response = await api\n .get(`blog/articles/${id}`, options as KyOptions)\n .json<{ data: ArticleDetail | null }>();\n\n if (!response.data) {\n throw new Error(`Article ${id} not found`);\n }\n\n return response.data;\n },\n\n findOrThrow: (id: string, signal?: AbortSignal): Promise<ArticleDetail> =>\n orThrow(blog.articles.find(id, signal)),\n },\n\n queries: {\n overview: () =>\n queryOptions({\n queryKey: ['blog', 'overview'],\n queryFn: ({ signal }) => blog.get(signal),\n }),\n articles: (params?: Omit<BlogArticlesListParams, 'signal'>) =>\n queryOptions({\n queryKey: ['blog', 'articles', params],\n queryFn: ({ signal }) => blog.articles.list({ ...params, signal }),\n }),\n article: (id: string) =>\n queryOptions({\n queryKey: ['blog', 'article', id],\n queryFn: ({ signal }) => blog.articles.find(id, signal),\n }),\n },\n};\n"]}
@@ -1,16 +1,16 @@
1
1
  import { ErrorPage } from './chunk-Z4Y55HWX.js';
2
- import { ensureTwilightContextFromMatches, tanstackHeadAdapter } from './chunk-UQ2MAJXN.js';
3
- import { dispatchRouteChanged } from './chunk-Q5DFI4WQ.js';
2
+ import { ensureTwilightContextFromMatches, tanstackHeadAdapter } from './chunk-D2UOBR4H.js';
3
+ import { dispatchRouteChanged } from './chunk-MQ4UTXPR.js';
4
4
  import { resolveHead, mergeHead, setHeadAdapter } from './chunk-B3EFOE57.js';
5
- import { store } from './chunk-LP3IE6UV.js';
6
- import { translations } from './chunk-EXYGVSRB.js';
5
+ import { store } from './chunk-ZYKBHBBH.js';
6
+ import { translations } from './chunk-GSNKBCDJ.js';
7
7
  import { buildBaseHead } from './chunk-TZ3E5BN4.js';
8
- import { apps } from './chunk-ULAPZSHY.js';
9
- import { renderThemeHookSlotsScript, renderAppScopeInstallScript } from './chunk-E2FO6OSL.js';
10
- import { RedirectError, NotFoundError, UnauthorizedError } from './chunk-PQNPO2J3.js';
8
+ import { apps } from './chunk-4HXLDKIV.js';
9
+ import { renderThemeHookSlotsScript, renderAppScopeInstallScript } from './chunk-GLRQJVTK.js';
10
+ import { RedirectError, NotFoundError, UnauthorizedError } from './chunk-MAQPYTER.js';
11
11
  import { RouteId } from './chunk-MTONGOJD.js';
12
- import { AUTH_TOKEN_COOKIE_NAME, renderRuntimeEnvScript, escapeForInlineScript, readEnv, syncSdkLocale, syncScopeCookie, extractTokenFromCookies } from './chunk-2WNYE75P.js';
13
- import { getTwilightContext, SettingsError, updateTwilightContext, createI18nInstance } from './chunk-OPKTJIZQ.js';
12
+ import { AUTH_TOKEN_COOKIE_NAME, renderRuntimeEnvScript, escapeForInlineScript, readEnv, syncSdkLocale, syncScopeCookie, extractTokenFromCookies } from './chunk-QCWPF7W4.js';
13
+ import { getTwilightContext, SettingsError, updateTwilightContext, createI18nInstance } from './chunk-XITF2PHC.js';
14
14
  import { useDocumentClass } from './chunk-JWXJPJBO.js';
15
15
  import { toReactProps, mergeElementAttrs } from './chunk-CW625T2E.js';
16
16
  import { FALLBACK_LOCALE, getLanguageInfo } from './chunk-T72DAX7R.js';
@@ -391,7 +391,7 @@ function resolveRouteId(tanstackId) {
391
391
  return TANSTACK_ROUTE_ID_MAP[tanstackId] ?? tanstackId;
392
392
  }
393
393
  var LazyNotFoundPage = lazy(
394
- () => import('./not-found-AO2ZXILV.js').then((m) => ({ default: m.NotFoundPage }))
394
+ () => import('./not-found-NR6ESAAX.js').then((m) => ({ default: m.NotFoundPage }))
395
395
  );
396
396
  function StoreUnavailablePage() {
397
397
  return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(
@@ -713,5 +713,5 @@ function tanstackDocumentAdapter(descriptor) {
713
713
  }
714
714
 
715
715
  export { RouteDocumentSync, TanStackDocumentSync, createRouter, createTwilightRootRoute, rootHead, tanstackDocumentAdapter, useTanstackDocumentAttrs };
716
- //# sourceMappingURL=chunk-WPJEVWKC.js.map
717
- //# sourceMappingURL=chunk-WPJEVWKC.js.map
716
+ //# sourceMappingURL=chunk-AFLP4PCU.js.map
717
+ //# sourceMappingURL=chunk-AFLP4PCU.js.map