medusa-storefront-data 2.5.8 → 2.5.9

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 (311) hide show
  1. package/dist/segment-data/default-page-input.json +191 -0
  2. package/dist/src/config.d.ts +3 -0
  3. package/dist/src/config.d.ts.map +1 -0
  4. package/dist/src/config.js +31 -0
  5. package/dist/src/cookies.d.ts +23 -0
  6. package/dist/src/cookies.d.ts.map +1 -0
  7. package/dist/src/cookies.js +140 -0
  8. package/dist/src/dynamic-config-schema/index.d.ts +103 -0
  9. package/dist/src/dynamic-config-schema/index.d.ts.map +1 -0
  10. package/dist/src/dynamic-config-schema/index.js +172 -0
  11. package/dist/src/dynamic-config-schema/sections/about-brand.d.ts +5 -0
  12. package/dist/src/dynamic-config-schema/sections/about-brand.d.ts.map +1 -0
  13. package/dist/src/dynamic-config-schema/sections/about-brand.js +30 -0
  14. package/dist/src/dynamic-config-schema/sections/baptism-picks.d.ts +5 -0
  15. package/dist/src/dynamic-config-schema/sections/baptism-picks.d.ts.map +1 -0
  16. package/dist/src/dynamic-config-schema/sections/baptism-picks.js +17 -0
  17. package/dist/src/dynamic-config-schema/sections/baptism.d.ts +5 -0
  18. package/dist/src/dynamic-config-schema/sections/baptism.d.ts.map +1 -0
  19. package/dist/src/dynamic-config-schema/sections/baptism.js +4 -0
  20. package/dist/src/dynamic-config-schema/sections/blog-posts.d.ts +5 -0
  21. package/dist/src/dynamic-config-schema/sections/blog-posts.d.ts.map +1 -0
  22. package/dist/src/dynamic-config-schema/sections/blog-posts.js +31 -0
  23. package/dist/src/dynamic-config-schema/sections/brand-marquee.d.ts +5 -0
  24. package/dist/src/dynamic-config-schema/sections/brand-marquee.d.ts.map +1 -0
  25. package/dist/src/dynamic-config-schema/sections/brand-marquee.js +9 -0
  26. package/dist/src/dynamic-config-schema/sections/brand-pillars.d.ts +5 -0
  27. package/dist/src/dynamic-config-schema/sections/brand-pillars.d.ts.map +1 -0
  28. package/dist/src/dynamic-config-schema/sections/brand-pillars.js +29 -0
  29. package/dist/src/dynamic-config-schema/sections/category-pills.d.ts +5 -0
  30. package/dist/src/dynamic-config-schema/sections/category-pills.d.ts.map +1 -0
  31. package/dist/src/dynamic-config-schema/sections/category-pills.js +4 -0
  32. package/dist/src/dynamic-config-schema/sections/celebrity-trust.d.ts +5 -0
  33. package/dist/src/dynamic-config-schema/sections/celebrity-trust.d.ts.map +1 -0
  34. package/dist/src/dynamic-config-schema/sections/celebrity-trust.js +4 -0
  35. package/dist/src/dynamic-config-schema/sections/features.d.ts +5 -0
  36. package/dist/src/dynamic-config-schema/sections/features.d.ts.map +1 -0
  37. package/dist/src/dynamic-config-schema/sections/features.js +12 -0
  38. package/dist/src/dynamic-config-schema/sections/hero.d.ts +6 -0
  39. package/dist/src/dynamic-config-schema/sections/hero.d.ts.map +1 -0
  40. package/dist/src/dynamic-config-schema/sections/hero.js +9 -0
  41. package/dist/src/dynamic-config-schema/sections/index.d.ts +24 -0
  42. package/dist/src/dynamic-config-schema/sections/index.d.ts.map +1 -0
  43. package/dist/src/dynamic-config-schema/sections/index.js +23 -0
  44. package/dist/src/dynamic-config-schema/sections/instagram-posts.d.ts +5 -0
  45. package/dist/src/dynamic-config-schema/sections/instagram-posts.d.ts.map +1 -0
  46. package/dist/src/dynamic-config-schema/sections/instagram-posts.js +30 -0
  47. package/dist/src/dynamic-config-schema/sections/loved-by-moms.d.ts +5 -0
  48. package/dist/src/dynamic-config-schema/sections/loved-by-moms.d.ts.map +1 -0
  49. package/dist/src/dynamic-config-schema/sections/loved-by-moms.js +4 -0
  50. package/dist/src/dynamic-config-schema/sections/luxe-favourites.d.ts +5 -0
  51. package/dist/src/dynamic-config-schema/sections/luxe-favourites.d.ts.map +1 -0
  52. package/dist/src/dynamic-config-schema/sections/luxe-favourites.js +4 -0
  53. package/dist/src/dynamic-config-schema/sections/new-arrivals-classic.d.ts +5 -0
  54. package/dist/src/dynamic-config-schema/sections/new-arrivals-classic.d.ts.map +1 -0
  55. package/dist/src/dynamic-config-schema/sections/new-arrivals-classic.js +12 -0
  56. package/dist/src/dynamic-config-schema/sections/new-arrivals.d.ts +5 -0
  57. package/dist/src/dynamic-config-schema/sections/new-arrivals.d.ts.map +1 -0
  58. package/dist/src/dynamic-config-schema/sections/new-arrivals.js +12 -0
  59. package/dist/src/dynamic-config-schema/sections/promo-announcements.d.ts +5 -0
  60. package/dist/src/dynamic-config-schema/sections/promo-announcements.d.ts.map +1 -0
  61. package/dist/src/dynamic-config-schema/sections/promo-announcements.js +16 -0
  62. package/dist/src/dynamic-config-schema/sections/promo-countdown.d.ts +5 -0
  63. package/dist/src/dynamic-config-schema/sections/promo-countdown.d.ts.map +1 -0
  64. package/dist/src/dynamic-config-schema/sections/promo-countdown.js +16 -0
  65. package/dist/src/dynamic-config-schema/sections/shop-by-age.d.ts +5 -0
  66. package/dist/src/dynamic-config-schema/sections/shop-by-age.d.ts.map +1 -0
  67. package/dist/src/dynamic-config-schema/sections/shop-by-age.js +4 -0
  68. package/dist/src/dynamic-config-schema/sections/shop-by-category.d.ts +5 -0
  69. package/dist/src/dynamic-config-schema/sections/shop-by-category.d.ts.map +1 -0
  70. package/dist/src/dynamic-config-schema/sections/shop-by-category.js +4 -0
  71. package/dist/src/dynamic-config-schema/sections/testimonials.d.ts +5 -0
  72. package/dist/src/dynamic-config-schema/sections/testimonials.d.ts.map +1 -0
  73. package/dist/src/dynamic-config-schema/sections/testimonials.js +9 -0
  74. package/dist/src/dynamic-config-schema/sections/theme-dresses.d.ts +5 -0
  75. package/dist/src/dynamic-config-schema/sections/theme-dresses.d.ts.map +1 -0
  76. package/dist/src/dynamic-config-schema/sections/theme-dresses.js +4 -0
  77. package/dist/src/dynamic-config-schema/sections/video-stories.d.ts +5 -0
  78. package/dist/src/dynamic-config-schema/sections/video-stories.d.ts.map +1 -0
  79. package/dist/src/dynamic-config-schema/sections/video-stories.js +24 -0
  80. package/dist/src/dynamic-config-schema/sections/why-choose-us.d.ts +5 -0
  81. package/dist/src/dynamic-config-schema/sections/why-choose-us.d.ts.map +1 -0
  82. package/dist/src/dynamic-config-schema/sections/why-choose-us.js +9 -0
  83. package/dist/src/dynamic-config-schema/shared.d.ts +35 -0
  84. package/dist/src/dynamic-config-schema/shared.d.ts.map +1 -0
  85. package/dist/src/dynamic-config-schema/shared.js +99 -0
  86. package/dist/src/dynamic-config-schema/site-configs.d.ts +11 -0
  87. package/dist/src/dynamic-config-schema/site-configs.d.ts.map +1 -0
  88. package/dist/src/dynamic-config-schema/site-configs.js +70 -0
  89. package/dist/src/edge.d.ts +3 -0
  90. package/dist/src/edge.d.ts.map +1 -0
  91. package/dist/src/edge.js +1 -0
  92. package/dist/src/middleware.d.ts +3 -0
  93. package/dist/src/middleware.d.ts.map +1 -0
  94. package/dist/src/middleware.js +1 -0
  95. package/dist/src/server/brand-pillars-from-categories.d.ts +8 -0
  96. package/dist/src/server/brand-pillars-from-categories.d.ts.map +1 -0
  97. package/dist/src/server/brand-pillars-from-categories.js +92 -0
  98. package/dist/src/server/cart.d.ts +96 -0
  99. package/dist/src/server/cart.d.ts.map +1 -0
  100. package/dist/src/server/cart.js +797 -0
  101. package/dist/src/server/categories.d.ts +4 -0
  102. package/dist/src/server/categories.d.ts.map +1 -0
  103. package/dist/src/server/categories.js +34 -0
  104. package/dist/src/server/collections.d.ts +8 -0
  105. package/dist/src/server/collections.d.ts.map +1 -0
  106. package/dist/src/server/collections.js +39 -0
  107. package/dist/src/server/config-merge.d.ts +3 -0
  108. package/dist/src/server/config-merge.d.ts.map +1 -0
  109. package/dist/src/server/config-merge.js +31 -0
  110. package/dist/src/server/contact.d.ts +34 -0
  111. package/dist/src/server/contact.d.ts.map +1 -0
  112. package/dist/src/server/contact.js +57 -0
  113. package/dist/src/server/customer-registration.d.ts +142 -0
  114. package/dist/src/server/customer-registration.d.ts.map +1 -0
  115. package/dist/src/server/customer-registration.js +295 -0
  116. package/dist/src/server/customer.d.ts +48 -0
  117. package/dist/src/server/customer.d.ts.map +1 -0
  118. package/dist/src/server/customer.js +413 -0
  119. package/dist/src/server/dynamic-config-api.d.ts +11 -0
  120. package/dist/src/server/dynamic-config-api.d.ts.map +1 -0
  121. package/dist/src/server/dynamic-config-api.js +46 -0
  122. package/dist/src/server/dynamic-config.d.ts +200 -0
  123. package/dist/src/server/dynamic-config.d.ts.map +1 -0
  124. package/dist/src/server/dynamic-config.js +788 -0
  125. package/dist/src/server/fulfillment.d.ts +5 -0
  126. package/dist/src/server/fulfillment.d.ts.map +1 -0
  127. package/dist/src/server/fulfillment.js +47 -0
  128. package/dist/src/server/guest.d.ts +81 -0
  129. package/dist/src/server/guest.d.ts.map +1 -0
  130. package/dist/src/server/guest.js +183 -0
  131. package/dist/src/server/help-faq-section-defaults.json +92 -0
  132. package/dist/src/server/help-sections/help-faq.d.ts +11 -0
  133. package/dist/src/server/help-sections/help-faq.d.ts.map +1 -0
  134. package/dist/src/server/help-sections/help-faq.js +6 -0
  135. package/dist/src/server/help-sections/index.d.ts +2 -0
  136. package/dist/src/server/help-sections/index.d.ts.map +1 -0
  137. package/dist/src/server/help-sections/index.js +1 -0
  138. package/dist/src/server/hero-banner-priority.d.ts +31 -0
  139. package/dist/src/server/hero-banner-priority.d.ts.map +1 -0
  140. package/dist/src/server/hero-banner-priority.js +26 -0
  141. package/dist/src/server/hero-banner-resolve.test.d.ts +2 -0
  142. package/dist/src/server/hero-banner-resolve.test.d.ts.map +1 -0
  143. package/dist/src/server/hero-banner-resolve.test.js +56 -0
  144. package/dist/src/server/hero-banners-config.test.d.ts +2 -0
  145. package/dist/src/server/hero-banners-config.test.d.ts.map +1 -0
  146. package/dist/src/server/hero-banners-config.test.js +44 -0
  147. package/dist/src/server/home-sections/about-brand.d.ts +9 -0
  148. package/dist/src/server/home-sections/about-brand.d.ts.map +1 -0
  149. package/dist/src/server/home-sections/about-brand.js +9 -0
  150. package/dist/src/server/home-sections/baptism-picks.d.ts +10 -0
  151. package/dist/src/server/home-sections/baptism-picks.d.ts.map +1 -0
  152. package/dist/src/server/home-sections/baptism-picks.js +27 -0
  153. package/dist/src/server/home-sections/baptism.d.ts +13 -0
  154. package/dist/src/server/home-sections/baptism.d.ts.map +1 -0
  155. package/dist/src/server/home-sections/baptism.js +43 -0
  156. package/dist/src/server/home-sections/blog-posts.d.ts +9 -0
  157. package/dist/src/server/home-sections/blog-posts.d.ts.map +1 -0
  158. package/dist/src/server/home-sections/blog-posts.js +9 -0
  159. package/dist/src/server/home-sections/brand-marquee.d.ts +8 -0
  160. package/dist/src/server/home-sections/brand-marquee.d.ts.map +1 -0
  161. package/dist/src/server/home-sections/brand-marquee.js +7 -0
  162. package/dist/src/server/home-sections/brand-pillars.d.ts +9 -0
  163. package/dist/src/server/home-sections/brand-pillars.d.ts.map +1 -0
  164. package/dist/src/server/home-sections/brand-pillars.js +9 -0
  165. package/dist/src/server/home-sections/category-pills.d.ts +9 -0
  166. package/dist/src/server/home-sections/category-pills.d.ts.map +1 -0
  167. package/dist/src/server/home-sections/category-pills.js +19 -0
  168. package/dist/src/server/home-sections/celebrity-trust.d.ts +12 -0
  169. package/dist/src/server/home-sections/celebrity-trust.d.ts.map +1 -0
  170. package/dist/src/server/home-sections/celebrity-trust.js +27 -0
  171. package/dist/src/server/home-sections/customer-stories.d.ts +9 -0
  172. package/dist/src/server/home-sections/customer-stories.d.ts.map +1 -0
  173. package/dist/src/server/home-sections/customer-stories.js +9 -0
  174. package/dist/src/server/home-sections/features.d.ts +9 -0
  175. package/dist/src/server/home-sections/features.d.ts.map +1 -0
  176. package/dist/src/server/home-sections/features.js +9 -0
  177. package/dist/src/server/home-sections/hero.d.ts +9 -0
  178. package/dist/src/server/home-sections/hero.d.ts.map +1 -0
  179. package/dist/src/server/home-sections/hero.js +9 -0
  180. package/dist/src/server/home-sections/instagram-posts.d.ts +9 -0
  181. package/dist/src/server/home-sections/instagram-posts.d.ts.map +1 -0
  182. package/dist/src/server/home-sections/instagram-posts.js +9 -0
  183. package/dist/src/server/home-sections/loved-by-moms.d.ts +12 -0
  184. package/dist/src/server/home-sections/loved-by-moms.d.ts.map +1 -0
  185. package/dist/src/server/home-sections/loved-by-moms.js +20 -0
  186. package/dist/src/server/home-sections/luxe-favourites.d.ts +11 -0
  187. package/dist/src/server/home-sections/luxe-favourites.d.ts.map +1 -0
  188. package/dist/src/server/home-sections/luxe-favourites.js +19 -0
  189. package/dist/src/server/home-sections/new-arrivals-classic.d.ts +8 -0
  190. package/dist/src/server/home-sections/new-arrivals-classic.d.ts.map +1 -0
  191. package/dist/src/server/home-sections/new-arrivals-classic.js +10 -0
  192. package/dist/src/server/home-sections/new-arrivals.d.ts +12 -0
  193. package/dist/src/server/home-sections/new-arrivals.d.ts.map +1 -0
  194. package/dist/src/server/home-sections/new-arrivals.js +28 -0
  195. package/dist/src/server/home-sections/promo-announcements.d.ts +11 -0
  196. package/dist/src/server/home-sections/promo-announcements.d.ts.map +1 -0
  197. package/dist/src/server/home-sections/promo-announcements.js +5 -0
  198. package/dist/src/server/home-sections/promo-countdown.d.ts +6 -0
  199. package/dist/src/server/home-sections/promo-countdown.d.ts.map +1 -0
  200. package/dist/src/server/home-sections/promo-countdown.js +5 -0
  201. package/dist/src/server/home-sections/shared.d.ts +10 -0
  202. package/dist/src/server/home-sections/shared.d.ts.map +1 -0
  203. package/dist/src/server/home-sections/shared.js +29 -0
  204. package/dist/src/server/home-sections/shop-by-age.d.ts +9 -0
  205. package/dist/src/server/home-sections/shop-by-age.d.ts.map +1 -0
  206. package/dist/src/server/home-sections/shop-by-age.js +17 -0
  207. package/dist/src/server/home-sections/shop-by-category.d.ts +10 -0
  208. package/dist/src/server/home-sections/shop-by-category.d.ts.map +1 -0
  209. package/dist/src/server/home-sections/shop-by-category.js +17 -0
  210. package/dist/src/server/home-sections/testimonials.d.ts +9 -0
  211. package/dist/src/server/home-sections/testimonials.d.ts.map +1 -0
  212. package/dist/src/server/home-sections/testimonials.js +9 -0
  213. package/dist/src/server/home-sections/theme-dresses.d.ts +12 -0
  214. package/dist/src/server/home-sections/theme-dresses.d.ts.map +1 -0
  215. package/dist/src/server/home-sections/theme-dresses.js +27 -0
  216. package/dist/src/server/home-sections/video-stories.d.ts +9 -0
  217. package/dist/src/server/home-sections/video-stories.d.ts.map +1 -0
  218. package/dist/src/server/home-sections/video-stories.js +9 -0
  219. package/dist/src/server/home-sections/why-choose-us.d.ts +9 -0
  220. package/dist/src/server/home-sections/why-choose-us.d.ts.map +1 -0
  221. package/dist/src/server/home-sections/why-choose-us.js +9 -0
  222. package/dist/src/server/home.d.ts +54 -0
  223. package/dist/src/server/home.d.ts.map +1 -0
  224. package/dist/src/server/home.js +1 -0
  225. package/dist/src/server/homepage-config.types.d.ts +405 -0
  226. package/dist/src/server/homepage-config.types.d.ts.map +1 -0
  227. package/dist/src/server/homepage-config.types.js +35 -0
  228. package/dist/src/server/homepage-section-defaults.d.ts +201 -0
  229. package/dist/src/server/homepage-section-defaults.d.ts.map +1 -0
  230. package/dist/src/server/homepage-section-defaults.js +192 -0
  231. package/dist/src/server/index.d.ts +26 -0
  232. package/dist/src/server/index.d.ts.map +1 -0
  233. package/dist/src/server/index.js +25 -0
  234. package/dist/src/server/locale-actions.d.ts +14 -0
  235. package/dist/src/server/locale-actions.d.ts.map +1 -0
  236. package/dist/src/server/locale-actions.js +58 -0
  237. package/dist/src/server/locales.d.ts +8 -0
  238. package/dist/src/server/locales.d.ts.map +1 -0
  239. package/dist/src/server/locales.js +12 -0
  240. package/dist/src/server/normalize-homepage-config.d.ts +7 -0
  241. package/dist/src/server/normalize-homepage-config.d.ts.map +1 -0
  242. package/dist/src/server/normalize-homepage-config.js +281 -0
  243. package/dist/src/server/notifications.d.ts +2 -0
  244. package/dist/src/server/notifications.d.ts.map +1 -0
  245. package/dist/src/server/notifications.js +20 -0
  246. package/dist/src/server/onboarding.d.ts +2 -0
  247. package/dist/src/server/onboarding.d.ts.map +1 -0
  248. package/dist/src/server/onboarding.js +8 -0
  249. package/dist/src/server/orders.d.ts +63 -0
  250. package/dist/src/server/orders.d.ts.map +1 -0
  251. package/dist/src/server/orders.js +230 -0
  252. package/dist/src/server/page-input.d.ts +25 -0
  253. package/dist/src/server/page-input.d.ts.map +1 -0
  254. package/dist/src/server/page-input.js +172 -0
  255. package/dist/src/server/payment-details.d.ts +5 -0
  256. package/dist/src/server/payment-details.d.ts.map +1 -0
  257. package/dist/src/server/payment-details.js +28 -0
  258. package/dist/src/server/payment.d.ts +3 -0
  259. package/dist/src/server/payment.d.ts.map +1 -0
  260. package/dist/src/server/payment.js +13 -0
  261. package/dist/src/server/pincode.d.ts +7 -0
  262. package/dist/src/server/pincode.d.ts.map +1 -0
  263. package/dist/src/server/pincode.js +30 -0
  264. package/dist/src/server/products.d.ts +54 -0
  265. package/dist/src/server/products.d.ts.map +1 -0
  266. package/dist/src/server/products.js +154 -0
  267. package/dist/src/server/regions.d.ts +5 -0
  268. package/dist/src/server/regions.d.ts.map +1 -0
  269. package/dist/src/server/regions.js +57 -0
  270. package/dist/src/server/resolve-home-segment-data.d.ts +25 -0
  271. package/dist/src/server/resolve-home-segment-data.d.ts.map +1 -0
  272. package/dist/src/server/resolve-home-segment-data.js +20 -0
  273. package/dist/src/server/returns.d.ts +29 -0
  274. package/dist/src/server/returns.d.ts.map +1 -0
  275. package/dist/src/server/returns.js +132 -0
  276. package/dist/src/server/shoppable-looks.d.ts +17 -0
  277. package/dist/src/server/shoppable-looks.d.ts.map +1 -0
  278. package/dist/src/server/shoppable-looks.js +136 -0
  279. package/dist/src/server/storefront-cms.d.ts +11 -0
  280. package/dist/src/server/storefront-cms.d.ts.map +1 -0
  281. package/dist/src/server/storefront-cms.js +24 -0
  282. package/dist/src/server/swaps.d.ts +15 -0
  283. package/dist/src/server/swaps.d.ts.map +1 -0
  284. package/dist/src/server/swaps.js +89 -0
  285. package/dist/src/server/variants.d.ts +3 -0
  286. package/dist/src/server/variants.d.ts.map +1 -0
  287. package/dist/src/server/variants.js +15 -0
  288. package/dist/src/server/wishlist.d.ts +11 -0
  289. package/dist/src/server/wishlist.d.ts.map +1 -0
  290. package/dist/src/server/wishlist.js +49 -0
  291. package/dist/src/util/get-locale-header.d.ts +4 -0
  292. package/dist/src/util/get-locale-header.d.ts.map +1 -0
  293. package/dist/src/util/get-locale-header.js +7 -0
  294. package/dist/src/util/medusa-error.d.ts +2 -0
  295. package/dist/src/util/medusa-error.d.ts.map +1 -0
  296. package/dist/src/util/medusa-error.js +18 -0
  297. package/dist/src/util/revalidate-cart.d.ts +2 -0
  298. package/dist/src/util/revalidate-cart.d.ts.map +1 -0
  299. package/dist/src/util/revalidate-cart.js +8 -0
  300. package/dist/src/util/sort-products.d.ts +3 -0
  301. package/dist/src/util/sort-products.d.ts.map +1 -0
  302. package/dist/src/util/sort-products.js +1 -0
  303. package/dist/src/util/store-client.d.ts +11 -0
  304. package/dist/src/util/store-client.d.ts.map +1 -0
  305. package/dist/src/util/store-client.js +75 -0
  306. package/package.json +27 -18
  307. package/src/server/dynamic-config.ts +136 -0
  308. package/src/server/hero-banner-priority.ts +63 -0
  309. package/src/server/home-sections/customer-stories.ts +23 -0
  310. package/src/server/homepage-config.types.ts +18 -0
  311. package/src/server/homepage-section-defaults.ts +2 -0
@@ -0,0 +1,9 @@
1
+ import "server-only";
2
+ import { getHomeSectionsCopyFromPageInput } from "../dynamic-config";
3
+ import { type SectionLoaderOptions } from "./shared";
4
+ export type ShopByAgeSectionData = {
5
+ collections: Array<Record<string, unknown>>;
6
+ copy: ReturnType<typeof getHomeSectionsCopyFromPageInput>["shopByAge"];
7
+ };
8
+ export declare function loadShopByAgeSectionData(countryCode: string, options?: SectionLoaderOptions): Promise<ShopByAgeSectionData | null>;
9
+ //# sourceMappingURL=shop-by-age.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shop-by-age.d.ts","sourceRoot":"","sources":["../../../../src/server/home-sections/shop-by-age.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEnE,MAAM,MAAM,oBAAoB,GAAG;IACjC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,IAAI,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,WAAW,CAAC,CAAA;CACvE,CAAA;AAED,wBAAsB,wBAAwB,CAC5C,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAWtC"}
@@ -0,0 +1,17 @@
1
+ import "server-only";
2
+ import { getHomeSectionsCopyFromPageInput } from "../dynamic-config";
3
+ import { listCollections } from "../collections";
4
+ import { requireRegion } from "./shared";
5
+ export async function loadShopByAgeSectionData(countryCode, options) {
6
+ const region = await requireRegion(countryCode);
7
+ if (!region)
8
+ return null;
9
+ const collectionsResult = await listCollections({
10
+ fields: "id, handle, title, metadata",
11
+ }).catch(() => ({ collections: [] }));
12
+ return {
13
+ collections: (collectionsResult.collections ??
14
+ []),
15
+ copy: getHomeSectionsCopyFromPageInput(options?.pageInput ?? null).shopByAge,
16
+ };
17
+ }
@@ -0,0 +1,10 @@
1
+ import "server-only";
2
+ import { HttpTypes } from "@medusajs/types";
3
+ import { getHomeSectionsCopyFromPageInput } from "../dynamic-config";
4
+ import { type SectionLoaderOptions } from "./shared";
5
+ export type ShopByCategorySectionData = {
6
+ categories: HttpTypes.StoreProductCategory[];
7
+ copy: ReturnType<typeof getHomeSectionsCopyFromPageInput>["shopByCategory"];
8
+ };
9
+ export declare function loadShopByCategorySectionData(countryCode: string, options?: SectionLoaderOptions): Promise<ShopByCategorySectionData | null>;
10
+ //# sourceMappingURL=shop-by-category.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shop-by-category.d.ts","sourceRoot":"","sources":["../../../../src/server/home-sections/shop-by-category.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAC3C,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAA;AAEpE,OAAO,EAAiB,KAAK,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEnE,MAAM,MAAM,yBAAyB,GAAG;IACtC,UAAU,EAAE,SAAS,CAAC,oBAAoB,EAAE,CAAA;IAC5C,IAAI,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,gBAAgB,CAAC,CAAA;CAC5E,CAAA;AAED,wBAAsB,6BAA6B,CACjD,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,yBAAyB,GAAG,IAAI,CAAC,CAY3C"}
@@ -0,0 +1,17 @@
1
+ import "server-only";
2
+ import { getHomeSectionsCopyFromPageInput } from "../dynamic-config";
3
+ import { listCategories } from "../categories";
4
+ import { requireRegion } from "./shared";
5
+ export async function loadShopByCategorySectionData(countryCode, options) {
6
+ const region = await requireRegion(countryCode);
7
+ if (!region)
8
+ return null;
9
+ const categories = (await listCategories({
10
+ limit: 100,
11
+ fields: "id,handle,name,metadata,parent_category_id,*parent_category,*parent_category.parent_category",
12
+ }).catch(() => []));
13
+ return {
14
+ categories,
15
+ copy: getHomeSectionsCopyFromPageInput(options?.pageInput ?? null).shopByCategory,
16
+ };
17
+ }
@@ -0,0 +1,9 @@
1
+ import "server-only";
2
+ import { getHomeSectionsCopyFromPageInput, getTestimonialsFromPageInput } from "../dynamic-config";
3
+ import type { SectionLoaderOptions } from "./shared";
4
+ export type TestimonialsSectionData = {
5
+ testimonials: ReturnType<typeof getTestimonialsFromPageInput>;
6
+ copy: ReturnType<typeof getHomeSectionsCopyFromPageInput>["testimonials"];
7
+ };
8
+ export declare function loadTestimonialsSectionData(_countryCode: string, options?: SectionLoaderOptions): Promise<TestimonialsSectionData>;
9
+ //# sourceMappingURL=testimonials.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testimonials.d.ts","sourceRoot":"","sources":["../../../../src/server/home-sections/testimonials.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAA;IAC7D,IAAI,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,cAAc,CAAC,CAAA;CAC1E,CAAA;AAED,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAMlC"}
@@ -0,0 +1,9 @@
1
+ import "server-only";
2
+ import { getHomeSectionsCopyFromPageInput, getTestimonialsFromPageInput, } from "../dynamic-config";
3
+ export async function loadTestimonialsSectionData(_countryCode, options) {
4
+ const pageInput = options?.pageInput ?? null;
5
+ return {
6
+ testimonials: getTestimonialsFromPageInput(pageInput),
7
+ copy: getHomeSectionsCopyFromPageInput(pageInput).testimonials,
8
+ };
9
+ }
@@ -0,0 +1,12 @@
1
+ import "server-only";
2
+ import { HttpTypes } from "@medusajs/types";
3
+ import { getHomeSectionsCopyFromPageInput } from "../dynamic-config";
4
+ import { requireRegion, type SectionLoaderOptions } from "./shared";
5
+ export type ThemeDressesSectionData = {
6
+ region: NonNullable<Awaited<ReturnType<typeof requireRegion>>>;
7
+ themeProducts: HttpTypes.StoreProduct[];
8
+ ratings: unknown[];
9
+ copy: ReturnType<typeof getHomeSectionsCopyFromPageInput>["themeDresses"];
10
+ };
11
+ export declare function loadThemeDressesSectionData(countryCode: string, options?: SectionLoaderOptions): Promise<ThemeDressesSectionData | null>;
12
+ //# sourceMappingURL=theme-dresses.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-dresses.d.ts","sourceRoot":"","sources":["../../../../src/server/home-sections/theme-dresses.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAE3C,OAAO,EAAE,gCAAgC,EAAE,MAAM,mBAAmB,CAAA;AAGpE,OAAO,EAGL,aAAa,EACb,KAAK,oBAAoB,EAC1B,MAAM,UAAU,CAAA;AAEjB,MAAM,MAAM,uBAAuB,GAAG;IACpC,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAA;IAC9D,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;IACvC,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,IAAI,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,cAAc,CAAC,CAAA;CAC1E,CAAA;AAED,wBAAsB,2BAA2B,CAC/C,WAAW,EAAE,MAAM,EACnB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAwBzC"}
@@ -0,0 +1,27 @@
1
+ import "server-only";
2
+ import { fetchRatings } from "medusa-reviews-logic/server";
3
+ import { getHomeSectionsCopyFromPageInput } from "../dynamic-config";
4
+ import { listCategories } from "../categories";
5
+ import { getProductsByTag } from "../products";
6
+ import { categoryIdsMatching, productsForCategoryIds, requireRegion, } from "./shared";
7
+ export async function loadThemeDressesSectionData(countryCode, options) {
8
+ const region = await requireRegion(countryCode);
9
+ if (!region)
10
+ return null;
11
+ const pageInput = options?.pageInput ?? null;
12
+ const [themeByTag, categoriesResult, ratings] = await Promise.all([
13
+ getProductsByTag({ tagValue: "theme", limit: 8, countryCode }).catch(() => []),
14
+ listCategories({ limit: 100 }).catch(() => []),
15
+ fetchRatings(),
16
+ ]);
17
+ const categories = (categoriesResult ?? []);
18
+ const themeProducts = themeByTag.length > 0
19
+ ? themeByTag
20
+ : await productsForCategoryIds(countryCode, categoryIdsMatching(categories, /theme/), 8);
21
+ return {
22
+ region,
23
+ themeProducts,
24
+ ratings: ratings ?? [],
25
+ copy: getHomeSectionsCopyFromPageInput(pageInput).themeDresses,
26
+ };
27
+ }
@@ -0,0 +1,9 @@
1
+ import "server-only";
2
+ import { getHomeSectionsCopyFromPageInput, getVideoStoriesFromPageInput } from "../dynamic-config";
3
+ import type { SectionLoaderOptions } from "./shared";
4
+ export type VideoStoriesSectionData = {
5
+ videoStories: ReturnType<typeof getVideoStoriesFromPageInput>;
6
+ copy: ReturnType<typeof getHomeSectionsCopyFromPageInput>["videoStories"];
7
+ };
8
+ export declare function loadVideoStoriesSectionData(_countryCode: string, options?: SectionLoaderOptions): Promise<VideoStoriesSectionData>;
9
+ //# sourceMappingURL=video-stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"video-stories.d.ts","sourceRoot":"","sources":["../../../../src/server/home-sections/video-stories.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EACL,gCAAgC,EAChC,4BAA4B,EAC7B,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEpD,MAAM,MAAM,uBAAuB,GAAG;IACpC,YAAY,EAAE,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAA;IAC7D,IAAI,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,cAAc,CAAC,CAAA;CAC1E,CAAA;AAED,wBAAsB,2BAA2B,CAC/C,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,uBAAuB,CAAC,CAMlC"}
@@ -0,0 +1,9 @@
1
+ import "server-only";
2
+ import { getHomeSectionsCopyFromPageInput, getVideoStoriesFromPageInput, } from "../dynamic-config";
3
+ export async function loadVideoStoriesSectionData(_countryCode, options) {
4
+ const pageInput = options?.pageInput ?? null;
5
+ return {
6
+ videoStories: getVideoStoriesFromPageInput(pageInput),
7
+ copy: getHomeSectionsCopyFromPageInput(pageInput).videoStories,
8
+ };
9
+ }
@@ -0,0 +1,9 @@
1
+ import "server-only";
2
+ import { getFeaturesFromPageInput, getHomeSectionsCopyFromPageInput } from "../dynamic-config";
3
+ import type { SectionLoaderOptions } from "./shared";
4
+ export type WhyChooseUsSectionData = {
5
+ whyChooseUsFeatures: ReturnType<typeof getFeaturesFromPageInput>;
6
+ copy: ReturnType<typeof getHomeSectionsCopyFromPageInput>["whyChooseUs"];
7
+ };
8
+ export declare function loadWhyChooseUsSectionData(_countryCode: string, options?: SectionLoaderOptions): Promise<WhyChooseUsSectionData>;
9
+ //# sourceMappingURL=why-choose-us.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"why-choose-us.d.ts","sourceRoot":"","sources":["../../../../src/server/home-sections/why-choose-us.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAEpB,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EACjC,MAAM,mBAAmB,CAAA;AAC1B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAA;AAEpD,MAAM,MAAM,sBAAsB,GAAG;IACnC,mBAAmB,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,CAAA;IAChE,IAAI,EAAE,UAAU,CAAC,OAAO,gCAAgC,CAAC,CAAC,aAAa,CAAC,CAAA;CACzE,CAAA;AAED,wBAAsB,0BAA0B,CAC9C,YAAY,EAAE,MAAM,EACpB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,sBAAsB,CAAC,CAMjC"}
@@ -0,0 +1,9 @@
1
+ import "server-only";
2
+ import { getFeaturesFromPageInput, getHomeSectionsCopyFromPageInput, } from "../dynamic-config";
3
+ export async function loadWhyChooseUsSectionData(_countryCode, options) {
4
+ const pageInput = options?.pageInput ?? null;
5
+ return {
6
+ whyChooseUsFeatures: getFeaturesFromPageInput(pageInput),
7
+ copy: getHomeSectionsCopyFromPageInput(pageInput).whyChooseUs,
8
+ };
9
+ }
@@ -0,0 +1,54 @@
1
+ import type { HttpTypes } from "@medusajs/types";
2
+ import type { InstagramPostsData, AboutBrandConfig, BrandPillarConfig, BlogPostConfig, HomeSectionsCopy, TrustFeaturesConfig, HomepageBanner } from "./dynamic-config";
3
+ import type { ShoppableLook } from "./shoppable-looks";
4
+ /**
5
+ * Shared homepage data shape used by `medusa-storefront-compose`.
6
+ * This is a type-only module (no runtime loaders).
7
+ */
8
+ export type HomePageData = {
9
+ region: HttpTypes.StoreRegion | null;
10
+ collections: Array<Record<string, unknown>>;
11
+ categories: HttpTypes.StoreProductCategory[];
12
+ newArrivals: HttpTypes.StoreProduct[];
13
+ bestsellers: HttpTypes.StoreProduct[];
14
+ testimonials: unknown | null;
15
+ ratings: unknown[];
16
+ videoStories: {
17
+ title: string;
18
+ videoUrls: string[];
19
+ } | null;
20
+ announcementMessages: string[];
21
+ promoCountdown: {
22
+ code: string | null;
23
+ message: string | null;
24
+ endAt: string | null;
25
+ active: boolean;
26
+ ctaLabel: string | null;
27
+ ctaHref: string | null;
28
+ };
29
+ luxeFavourites: HttpTypes.StoreProduct[];
30
+ celebrityProduct: HttpTypes.StoreProduct | null;
31
+ baptismGirl: HttpTypes.StoreProduct[];
32
+ baptismBoy: HttpTypes.StoreProduct[];
33
+ baptismPicks: ShoppableLook[];
34
+ themeProducts: HttpTypes.StoreProduct[];
35
+ aboutBrand: AboutBrandConfig;
36
+ brandPillars: {
37
+ sectionTitle: string;
38
+ pillars: BrandPillarConfig[];
39
+ };
40
+ blogPosts: BlogPostConfig[];
41
+ instagramPosts: InstagramPostsData;
42
+ sectionsCopy: HomeSectionsCopy;
43
+ trustFeatures: TrustFeaturesConfig;
44
+ homeBanners: HomepageBanner[] | null;
45
+ appBanners: HomepageBanner[] | null;
46
+ whyChooseUsFeatures: {
47
+ title: string;
48
+ features: Array<{
49
+ name: string;
50
+ icon: string;
51
+ }>;
52
+ };
53
+ };
54
+ //# sourceMappingURL=home.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"home.d.ts","sourceRoot":"","sources":["../../../src/server/home.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACf,MAAM,kBAAkB,CAAA;AACzB,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAEtD;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,MAAM,EAAE,SAAS,CAAC,WAAW,GAAG,IAAI,CAAA;IACpC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;IAC3C,UAAU,EAAE,SAAS,CAAC,oBAAoB,EAAE,CAAA;IAC5C,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;IACrC,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;IACrC,YAAY,EAAE,OAAO,GAAG,IAAI,CAAA;IAC5B,OAAO,EAAE,OAAO,EAAE,CAAA;IAClB,YAAY,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAA;IAC3D,oBAAoB,EAAE,MAAM,EAAE,CAAA;IAC9B,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;QACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;QACpB,MAAM,EAAE,OAAO,CAAA;QACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;QACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;KACvB,CAAA;IACD,cAAc,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;IACxC,gBAAgB,EAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAA;IAC/C,WAAW,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;IACrC,UAAU,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;IACpC,YAAY,EAAE,aAAa,EAAE,CAAA;IAC7B,aAAa,EAAE,SAAS,CAAC,YAAY,EAAE,CAAA;IACvC,UAAU,EAAE,gBAAgB,CAAA;IAC5B,YAAY,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,iBAAiB,EAAE,CAAA;KAAE,CAAA;IACpE,SAAS,EAAE,cAAc,EAAE,CAAA;IAC3B,cAAc,EAAE,kBAAkB,CAAA;IAClC,YAAY,EAAE,gBAAgB,CAAA;IAC9B,aAAa,EAAE,mBAAmB,CAAA;IAClC,WAAW,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;IACpC,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CAAA;IACnC,mBAAmB,EAAE;QACnB,KAAK,EAAE,MAAM,CAAA;QACb,QAAQ,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAA;KAChD,CAAA;CACF,CAAA"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,405 @@
1
+ /**
2
+ * Medusa `GET /store/dynamic-config` → `homepage-config` shape.
3
+ * Used by the storefront and as the reference for backend admin JSON.
4
+ *
5
+ * Section keys: camelCase (preferred) or kebab-case (`new-arrivals` → `newArrivals`).
6
+ * Only fields you set override package defaults in `homepage-section-defaults.ts`.
7
+ */
8
+ /** Shared copy fields merged into every section block. */
9
+ export type HomepageSectionCopyFields = {
10
+ title?: string;
11
+ name?: string;
12
+ subtitle?: string;
13
+ text?: string;
14
+ description?: string;
15
+ eyebrow?: string;
16
+ /** Layout variant, e.g. new arrivals: `grid` | `classic` */
17
+ variant?: string;
18
+ layout?: string;
19
+ };
20
+ export type HomepagePromoAnnouncementsSection = HomepageSectionCopyFields & {
21
+ messages?: string[];
22
+ items?: Array<string | {
23
+ message?: string;
24
+ text?: string;
25
+ }>;
26
+ "announcement-messages"?: string[];
27
+ /** Optional icon shown before the ticker. */
28
+ icon?: string;
29
+ iconAlt?: string;
30
+ ariaLabel?: string;
31
+ separator?: string;
32
+ };
33
+ export type HomepagePromoUiConfig = {
34
+ icon?: string;
35
+ iconAlt?: string;
36
+ ariaLabel?: string;
37
+ separator?: string;
38
+ };
39
+ export type HomepagePromoCountdownSection = HomepageSectionCopyFields & {
40
+ code?: string;
41
+ "coupon-code"?: string;
42
+ text?: string;
43
+ message?: string;
44
+ "promo-text"?: string;
45
+ "end-at"?: string;
46
+ endAt?: string;
47
+ active?: boolean;
48
+ "promo-active"?: boolean;
49
+ "cta-label"?: string;
50
+ "cta-href"?: string;
51
+ };
52
+ export type HomepageNewArrivalsSection = HomepageSectionCopyFields & {
53
+ /** `grid` (ProductCardView) or `classic` (ProductPreview + pink background) */
54
+ variant?: "grid" | "classic" | "legacy" | "preview";
55
+ };
56
+ export type HomepageTestimonialItem = {
57
+ text?: string;
58
+ name?: string;
59
+ rating?: number;
60
+ avatar?: string;
61
+ id?: string;
62
+ testimonial?: HomepageTestimonialItem;
63
+ review?: HomepageTestimonialItem;
64
+ };
65
+ export type HomepageTestimonialsSection = HomepageSectionCopyFields & {
66
+ items?: HomepageTestimonialItem[];
67
+ testimonials?: HomepageTestimonialItem[];
68
+ reviews?: HomepageTestimonialItem[];
69
+ };
70
+ export type HomepageRatingItem = HomepageTestimonialItem;
71
+ export type HomepageShoppableLook = {
72
+ image?: string;
73
+ "look-image"?: string;
74
+ "product-ids"?: string[];
75
+ productIds?: string[];
76
+ "product-handles"?: string[];
77
+ productHandles?: string[];
78
+ look?: HomepageShoppableLook;
79
+ };
80
+ export type HomepageBaptismPicksSection = HomepageSectionCopyFields & {
81
+ looks?: HomepageShoppableLook[];
82
+ "shop-looks"?: HomepageShoppableLook[];
83
+ };
84
+ export type HomepageAboutBrandStat = {
85
+ label?: string;
86
+ name?: string;
87
+ value?: string;
88
+ };
89
+ export type HomepageAboutBrandSection = HomepageSectionCopyFields & {
90
+ readMoreHref?: string;
91
+ "read-more-link"?: string;
92
+ stats?: HomepageAboutBrandStat[];
93
+ "about-stats"?: HomepageAboutBrandStat[];
94
+ };
95
+ export type HomepageBrandPillar = {
96
+ title?: string;
97
+ name?: string;
98
+ description?: string;
99
+ text?: string;
100
+ image?: string;
101
+ icon?: string;
102
+ pillar?: HomepageBrandPillar;
103
+ };
104
+ export type HomepageBrandPillarsSection = HomepageSectionCopyFields & {
105
+ pillars?: HomepageBrandPillar[];
106
+ "brand-pillars"?: HomepageBrandPillar[];
107
+ };
108
+ export type HomepageFeatureItem = {
109
+ name?: string;
110
+ icon?: string;
111
+ "feature-name"?: string;
112
+ "feature-icon"?: string;
113
+ feature?: HomepageFeatureItem;
114
+ };
115
+ export type HomepageFeaturesSection = HomepageSectionCopyFields & {
116
+ features?: HomepageFeatureItem[];
117
+ items?: HomepageFeatureItem[];
118
+ };
119
+ export type HomepageBlogPost = {
120
+ title?: string;
121
+ href?: string;
122
+ link?: string;
123
+ url?: string;
124
+ excerpt?: string;
125
+ description?: string;
126
+ category?: string;
127
+ tag?: string;
128
+ date?: string;
129
+ image?: string;
130
+ thumbnail?: string;
131
+ blog?: HomepageBlogPost;
132
+ };
133
+ export type HomepageBlogPostsSection = HomepageSectionCopyFields & {
134
+ posts?: HomepageBlogPost[];
135
+ "blog-posts"?: HomepageBlogPost[];
136
+ };
137
+ export type HomepageHelpFaqItem = {
138
+ question?: string;
139
+ answer?: string;
140
+ q?: string;
141
+ a?: string;
142
+ faq?: HomepageHelpFaqItem;
143
+ };
144
+ export type HomepageHelpFaqCategory = {
145
+ category?: string;
146
+ name?: string;
147
+ icon?: string;
148
+ color?: string;
149
+ items?: HomepageHelpFaqItem[];
150
+ faqs?: HomepageHelpFaqItem[];
151
+ };
152
+ export type HomepageHelpFaqSection = HomepageSectionCopyFields & {
153
+ titleHighlight?: string;
154
+ categories?: HomepageHelpFaqCategory[];
155
+ };
156
+ export type HomepageInstagramPost = {
157
+ id?: string;
158
+ image?: string;
159
+ "post-image"?: string;
160
+ url?: string;
161
+ link?: string;
162
+ post?: HomepageInstagramPost;
163
+ instagram?: HomepageInstagramPost;
164
+ };
165
+ export type HomepageInstagramPostsSection = HomepageSectionCopyFields & {
166
+ handle?: string;
167
+ username?: string;
168
+ "instagram-handle"?: string;
169
+ "profile-url"?: string;
170
+ profileUrl?: string;
171
+ "profile-image"?: string;
172
+ profileImage?: string;
173
+ posts?: HomepageInstagramPost[];
174
+ items?: HomepageInstagramPost[];
175
+ };
176
+ export type HomepageVideoStoryEntry = string | {
177
+ "video-url"?: string;
178
+ video_url?: string;
179
+ url?: string;
180
+ src?: string;
181
+ video?: string;
182
+ "video-story"?: Record<string, unknown>;
183
+ };
184
+ export type HomepageVideoStoriesSection = HomepageSectionCopyFields & {
185
+ "video-urls"?: HomepageVideoStoryEntry[];
186
+ videoUrls?: HomepageVideoStoryEntry[];
187
+ videos?: HomepageVideoStoryEntry[];
188
+ "video-stories"?: HomepageVideoStoryEntry[];
189
+ };
190
+ export type HomepageCustomerStoryItem = {
191
+ id?: string;
192
+ image?: string;
193
+ text?: string;
194
+ name?: string;
195
+ rating?: number | string;
196
+ location?: string;
197
+ story?: HomepageCustomerStoryItem;
198
+ review?: HomepageCustomerStoryItem;
199
+ };
200
+ export type HomepageCustomerStoriesSection = HomepageSectionCopyFields & {
201
+ items?: HomepageCustomerStoryItem[];
202
+ stories?: HomepageCustomerStoryItem[];
203
+ };
204
+ /** Per-section blocks under `homepage-config.sections`. */
205
+ export type HomepageSectionsConfig = {
206
+ promoAnnouncements?: HomepagePromoAnnouncementsSection;
207
+ hero?: HomepageSectionCopyFields;
208
+ categoryPills?: HomepageSectionCopyFields;
209
+ newArrivals?: HomepageNewArrivalsSection;
210
+ newArrivalsClassic?: HomepageNewArrivalsSection;
211
+ promoCountdown?: HomepagePromoCountdownSection;
212
+ celebrityTrust?: HomepageSectionCopyFields;
213
+ luxeFavourites?: HomepageSectionCopyFields;
214
+ shopByCategory?: HomepageSectionCopyFields;
215
+ baptism?: HomepageSectionCopyFields;
216
+ baptismPicks?: HomepageBaptismPicksSection;
217
+ themeDresses?: HomepageSectionCopyFields;
218
+ brandMarquee?: HomepageSectionCopyFields;
219
+ aboutBrand?: HomepageAboutBrandSection;
220
+ customerStories?: HomepageCustomerStoriesSection;
221
+ testimonials?: HomepageTestimonialsSection;
222
+ brandPillars?: HomepageBrandPillarsSection;
223
+ instagramPosts?: HomepageInstagramPostsSection;
224
+ features?: HomepageFeaturesSection;
225
+ shopByAge?: HomepageSectionCopyFields;
226
+ whyChooseUs?: HomepageFeaturesSection;
227
+ lovedByMoms?: HomepageSectionCopyFields;
228
+ videoStories?: HomepageVideoStoriesSection;
229
+ blogPosts?: HomepageBlogPostsSection;
230
+ helpFaq?: HomepageHelpFaqSection;
231
+ /** Allow kebab-case keys from legacy CMS */
232
+ [sectionKey: string]: HomepageSectionCopyFields | undefined;
233
+ };
234
+ export type HomepageBanner = {
235
+ "homepage-banner-image"?: string;
236
+ "homepage-banner-title"?: string;
237
+ "homepage-banner-subtitle"?: string;
238
+ "homepage-banner-description"?: string;
239
+ "homepage-banner-button-name"?: string;
240
+ "homepage-banner-button-link"?: string;
241
+ };
242
+ export type HomepageBannerEntry = {
243
+ "homepage-banner"?: HomepageBanner;
244
+ };
245
+ export type HomepageAppBanner = {
246
+ "app-banner-image"?: string;
247
+ "app-banner-title"?: string;
248
+ "app-banner-subtitle"?: string;
249
+ "app-banner-description"?: string;
250
+ "app-banner-button-name"?: string;
251
+ "app-banner-button-link"?: string;
252
+ "app-banner-link"?: string;
253
+ };
254
+ export type HomepageAppBannerEntry = {
255
+ "app-banner"?: HomepageAppBanner;
256
+ };
257
+ export type HomepageContactConfig = {
258
+ "contact-phone"?: string;
259
+ "contact-email"?: string;
260
+ "contact-address"?: string;
261
+ };
262
+ export type HomepageSocialLink = {
263
+ "social-platform-name"?: string;
264
+ "social-platform-icon"?: string;
265
+ "social-platform-url"?: string;
266
+ "social-link"?: HomepageSocialLink;
267
+ };
268
+ export type HomepagePromoBarConfig = {
269
+ "promo-text"?: string;
270
+ "promo-code"?: string;
271
+ "promo-value"?: string;
272
+ "promo-active"?: boolean;
273
+ };
274
+ export type HomepageHeaderNavStaticItem = {
275
+ type?: "static";
276
+ label?: string;
277
+ href?: string;
278
+ icon?: string;
279
+ iconSrc?: string;
280
+ };
281
+ export type HomepageHeaderNavCategoriesItem = {
282
+ type: "categories";
283
+ /** Limit how many categories to include (after filtering). */
284
+ limit?: number;
285
+ /** Show only these category handles (in this exact order). */
286
+ handles?: string[];
287
+ /** Only include top-level categories (no parent). Default: true */
288
+ topLevelOnly?: boolean;
289
+ /** Optional prefix label like "Shop by category" (not used in desktop links). */
290
+ label?: string;
291
+ };
292
+ export type HomepageHeaderNavItem = HomepageHeaderNavStaticItem | HomepageHeaderNavCategoriesItem;
293
+ export type HomepageHeaderNavConfig = {
294
+ items?: HomepageHeaderNavItem[];
295
+ };
296
+ export type HomepageFooterNavLink = {
297
+ label?: string;
298
+ href?: string;
299
+ };
300
+ export type HomepageFooterNavColumn = {
301
+ title?: string;
302
+ links?: HomepageFooterNavLink[];
303
+ };
304
+ export type HomepageFooterNavConfig = {
305
+ columns?: HomepageFooterNavColumn[];
306
+ };
307
+ export type HomepageFooterUiConfig = {
308
+ shopColumnTitle?: string;
309
+ contactTitle?: string;
310
+ newsletterBlurb?: string;
311
+ newsletterPlaceholder?: string;
312
+ newsletterSubmitLabel?: string;
313
+ newsletterInvalidEmail?: string;
314
+ newsletterErrorMessage?: string;
315
+ /** Supports `{siteName}` token. */
316
+ copyrightText?: string;
317
+ icons?: {
318
+ phone?: string;
319
+ email?: string;
320
+ address?: string;
321
+ };
322
+ social?: {
323
+ facebook?: string;
324
+ linkedin?: string;
325
+ instagram?: string;
326
+ youtube?: string;
327
+ };
328
+ };
329
+ export type HomepageHeaderUiConfig = {
330
+ icons?: {
331
+ cart?: string;
332
+ account?: string;
333
+ search?: string;
334
+ };
335
+ search?: {
336
+ placeholder?: string;
337
+ title?: string;
338
+ emptyStateText?: string;
339
+ };
340
+ };
341
+ export type HomepageFaqEntry = {
342
+ "faq-category"?: string;
343
+ "faq-question"?: string;
344
+ "faq-answer"?: string;
345
+ faq?: HomepageFaqEntry;
346
+ };
347
+ /**
348
+ * Root `homepage-config` object stored in Medusa dynamic config.
349
+ */
350
+ export type HomepageConfig = {
351
+ logo?: string;
352
+ "website-description"?: string;
353
+ website_description?: string;
354
+ /**
355
+ * Header navigation (desktop + mobile).
356
+ * Use `type: "static"` for hardcoded links, or `type: "categories"` to auto-populate from product categories.
357
+ */
358
+ headerNav?: HomepageHeaderNavConfig;
359
+ "header-nav"?: HomepageHeaderNavConfig;
360
+ /** Footer navigation columns + links. */
361
+ footerNav?: HomepageFooterNavConfig;
362
+ "footer-nav"?: HomepageFooterNavConfig;
363
+ /** Footer static copy + icon overrides. */
364
+ footerUi?: HomepageFooterUiConfig;
365
+ "footer-ui"?: HomepageFooterUiConfig;
366
+ /** Header icons + search copy. */
367
+ headerUi?: HomepageHeaderUiConfig;
368
+ "header-ui"?: HomepageHeaderUiConfig;
369
+ /** Promo ticker icon + accessibility copy (merged with `sections.promoAnnouncements`). */
370
+ promoUi?: HomepagePromoUiConfig;
371
+ "promo-ui"?: HomepagePromoUiConfig;
372
+ /** Hero carousel — used by `hero` section (not `sections.hero`). */
373
+ "homepage-banner-array"?: HomepageBannerEntry[];
374
+ "app-banner-array"?: HomepageAppBannerEntry[];
375
+ /** Option 1 — central section copy + structured data (preferred). */
376
+ sections?: HomepageSectionsConfig;
377
+ /**
378
+ * Product reviews for testimonials carousel.
379
+ * Fallback when `sections.testimonials.items` is empty.
380
+ */
381
+ ratings?: HomepageRatingItem[];
382
+ /** Legacy top-level keys (still read; prefer `sections.*`). */
383
+ "promo-bar"?: HomepagePromoBarConfig;
384
+ "contact-us"?: HomepageContactConfig;
385
+ "social-links"?: HomepageSocialLink[];
386
+ "faq-array"?: HomepageFaqEntry[];
387
+ "why-choose-us-title"?: string;
388
+ "why-choose-us-features"?: HomepageFeatureItem[];
389
+ "about-brand"?: HomepageAboutBrandSection;
390
+ "who-we-are"?: HomepageAboutBrandSection;
391
+ "video-stories"?: HomepageVideoStoryEntry[];
392
+ "video-stories-array"?: HomepageVideoStoryEntry[];
393
+ video_stories?: HomepageVideoStoryEntry[];
394
+ "announcement-messages"?: string[];
395
+ "announcement-bar"?: string[];
396
+ };
397
+ /** Full dynamic config API response. */
398
+ export type DynamicConfigResponse = {
399
+ "homepage-config"?: HomepageConfig;
400
+ [key: string]: unknown;
401
+ };
402
+ /** All section ids with package defaults. */
403
+ export declare const HOMEPAGE_SECTION_IDS: readonly ["promoAnnouncements", "hero", "categoryPills", "newArrivals", "newArrivalsClassic", "promoCountdown", "celebrityTrust", "luxeFavourites", "shopByCategory", "baptism", "baptismPicks", "themeDresses", "brandMarquee", "aboutBrand", "customerStories", "testimonials", "brandPillars", "instagramPosts", "features", "shopByAge", "whyChooseUs", "lovedByMoms", "videoStories", "blogPosts", "helpFaq"];
404
+ export type HomepageSectionId = (typeof HOMEPAGE_SECTION_IDS)[number];
405
+ //# sourceMappingURL=homepage-config.types.d.ts.map