medusa-storefront-data 2.1.0 → 2.4.0

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 (269) hide show
  1. package/HOMEPAGE_CONFIG.md +99 -0
  2. package/dist/segment-data/default-page-input.json +191 -0
  3. package/dist/src/config.d.ts.map +1 -0
  4. package/dist/src/cookies.d.ts.map +1 -0
  5. package/dist/src/edge.d.ts.map +1 -0
  6. package/dist/src/middleware.d.ts.map +1 -0
  7. package/dist/src/server/cart.d.ts.map +1 -0
  8. package/dist/src/server/categories.d.ts.map +1 -0
  9. package/dist/src/server/collections.d.ts.map +1 -0
  10. package/dist/src/server/config-merge.d.ts +3 -0
  11. package/dist/src/server/config-merge.d.ts.map +1 -0
  12. package/dist/src/server/config-merge.js +31 -0
  13. package/dist/src/server/contact.d.ts.map +1 -0
  14. package/dist/src/server/customer-registration.d.ts.map +1 -0
  15. package/dist/src/server/customer.d.ts.map +1 -0
  16. package/dist/src/server/dynamic-config.d.ts +240 -0
  17. package/dist/src/server/dynamic-config.d.ts.map +1 -0
  18. package/dist/src/server/dynamic-config.js +703 -0
  19. package/dist/src/server/fulfillment.d.ts.map +1 -0
  20. package/dist/src/server/guest.d.ts.map +1 -0
  21. package/dist/src/server/home-sections/about-brand.d.ts +9 -0
  22. package/dist/src/server/home-sections/about-brand.d.ts.map +1 -0
  23. package/dist/src/server/home-sections/about-brand.js +9 -0
  24. package/dist/src/server/home-sections/baptism-picks.d.ts +10 -0
  25. package/dist/src/server/home-sections/baptism-picks.d.ts.map +1 -0
  26. package/dist/src/server/home-sections/baptism-picks.js +27 -0
  27. package/dist/src/server/home-sections/baptism.d.ts +13 -0
  28. package/dist/src/server/home-sections/baptism.d.ts.map +1 -0
  29. package/dist/src/server/home-sections/baptism.js +43 -0
  30. package/dist/src/server/home-sections/blog-posts.d.ts +9 -0
  31. package/dist/src/server/home-sections/blog-posts.d.ts.map +1 -0
  32. package/dist/src/server/home-sections/blog-posts.js +9 -0
  33. package/dist/src/server/home-sections/brand-marquee.d.ts +8 -0
  34. package/dist/src/server/home-sections/brand-marquee.d.ts.map +1 -0
  35. package/dist/src/server/home-sections/brand-marquee.js +7 -0
  36. package/dist/src/server/home-sections/brand-pillars.d.ts +9 -0
  37. package/dist/src/server/home-sections/brand-pillars.d.ts.map +1 -0
  38. package/dist/src/server/home-sections/brand-pillars.js +9 -0
  39. package/dist/src/server/home-sections/category-pills.d.ts +9 -0
  40. package/dist/src/server/home-sections/category-pills.d.ts.map +1 -0
  41. package/dist/src/server/home-sections/category-pills.js +19 -0
  42. package/dist/src/server/home-sections/celebrity-trust.d.ts +12 -0
  43. package/dist/src/server/home-sections/celebrity-trust.d.ts.map +1 -0
  44. package/dist/src/server/home-sections/celebrity-trust.js +27 -0
  45. package/dist/src/server/home-sections/features.d.ts +9 -0
  46. package/dist/src/server/home-sections/features.d.ts.map +1 -0
  47. package/dist/src/server/home-sections/features.js +9 -0
  48. package/dist/src/server/home-sections/hero.d.ts +9 -0
  49. package/dist/src/server/home-sections/hero.d.ts.map +1 -0
  50. package/dist/src/server/home-sections/hero.js +9 -0
  51. package/dist/src/server/home-sections/instagram-posts.d.ts +9 -0
  52. package/dist/src/server/home-sections/instagram-posts.d.ts.map +1 -0
  53. package/dist/src/server/home-sections/instagram-posts.js +9 -0
  54. package/dist/src/server/home-sections/loved-by-moms.d.ts +12 -0
  55. package/dist/src/server/home-sections/loved-by-moms.d.ts.map +1 -0
  56. package/dist/src/server/home-sections/loved-by-moms.js +20 -0
  57. package/dist/src/server/home-sections/luxe-favourites.d.ts +11 -0
  58. package/dist/src/server/home-sections/luxe-favourites.d.ts.map +1 -0
  59. package/dist/src/server/home-sections/luxe-favourites.js +19 -0
  60. package/dist/src/server/home-sections/new-arrivals-classic.d.ts +8 -0
  61. package/dist/src/server/home-sections/new-arrivals-classic.d.ts.map +1 -0
  62. package/dist/src/server/home-sections/new-arrivals-classic.js +10 -0
  63. package/dist/src/server/home-sections/new-arrivals.d.ts +12 -0
  64. package/dist/src/server/home-sections/new-arrivals.d.ts.map +1 -0
  65. package/dist/src/server/home-sections/new-arrivals.js +28 -0
  66. package/dist/src/server/home-sections/promo-announcements.d.ts +7 -0
  67. package/dist/src/server/home-sections/promo-announcements.d.ts.map +1 -0
  68. package/dist/src/server/home-sections/promo-announcements.js +7 -0
  69. package/dist/src/server/home-sections/promo-countdown.d.ts +6 -0
  70. package/dist/src/server/home-sections/promo-countdown.d.ts.map +1 -0
  71. package/dist/src/server/home-sections/promo-countdown.js +5 -0
  72. package/dist/src/server/home-sections/shared.d.ts +10 -0
  73. package/dist/src/server/home-sections/shared.d.ts.map +1 -0
  74. package/dist/src/server/home-sections/shared.js +29 -0
  75. package/dist/src/server/home-sections/shop-by-age.d.ts +9 -0
  76. package/dist/src/server/home-sections/shop-by-age.d.ts.map +1 -0
  77. package/dist/src/server/home-sections/shop-by-age.js +17 -0
  78. package/dist/src/server/home-sections/shop-by-category.d.ts +10 -0
  79. package/dist/src/server/home-sections/shop-by-category.d.ts.map +1 -0
  80. package/dist/src/server/home-sections/shop-by-category.js +17 -0
  81. package/dist/src/server/home-sections/testimonials.d.ts +9 -0
  82. package/dist/src/server/home-sections/testimonials.d.ts.map +1 -0
  83. package/dist/src/server/home-sections/testimonials.js +9 -0
  84. package/dist/src/server/home-sections/theme-dresses.d.ts +12 -0
  85. package/dist/src/server/home-sections/theme-dresses.d.ts.map +1 -0
  86. package/dist/src/server/home-sections/theme-dresses.js +27 -0
  87. package/dist/src/server/home-sections/video-stories.d.ts +9 -0
  88. package/dist/src/server/home-sections/video-stories.d.ts.map +1 -0
  89. package/dist/src/server/home-sections/video-stories.js +9 -0
  90. package/dist/src/server/home-sections/why-choose-us.d.ts +9 -0
  91. package/dist/src/server/home-sections/why-choose-us.d.ts.map +1 -0
  92. package/dist/src/server/home-sections/why-choose-us.js +9 -0
  93. package/dist/src/server/home.d.ts +62 -0
  94. package/dist/src/server/home.d.ts.map +1 -0
  95. package/dist/src/server/home.js +122 -0
  96. package/dist/src/server/homepage-config.types.d.ts +274 -0
  97. package/dist/src/server/homepage-config.types.d.ts.map +1 -0
  98. package/dist/src/server/homepage-config.types.js +33 -0
  99. package/dist/src/server/homepage-section-defaults.d.ts +188 -0
  100. package/dist/src/server/homepage-section-defaults.d.ts.map +1 -0
  101. package/dist/src/server/homepage-section-defaults.js +188 -0
  102. package/dist/{server → src/server}/index.d.ts +2 -0
  103. package/dist/src/server/index.d.ts.map +1 -0
  104. package/dist/{server → src/server}/index.js +2 -0
  105. package/dist/src/server/locale-actions.d.ts.map +1 -0
  106. package/dist/src/server/locales.d.ts.map +1 -0
  107. package/dist/src/server/notifications.d.ts.map +1 -0
  108. package/dist/src/server/onboarding.d.ts.map +1 -0
  109. package/dist/src/server/orders.d.ts.map +1 -0
  110. package/dist/src/server/page-input.d.ts +19 -0
  111. package/dist/src/server/page-input.d.ts.map +1 -0
  112. package/dist/src/server/page-input.js +40 -0
  113. package/dist/src/server/payment-details.d.ts.map +1 -0
  114. package/dist/src/server/payment.d.ts.map +1 -0
  115. package/dist/src/server/pincode.d.ts.map +1 -0
  116. package/dist/src/server/products.d.ts.map +1 -0
  117. package/dist/src/server/regions.d.ts.map +1 -0
  118. package/dist/src/server/resolve-home-segment-data.d.ts +25 -0
  119. package/dist/src/server/resolve-home-segment-data.d.ts.map +1 -0
  120. package/dist/src/server/resolve-home-segment-data.js +20 -0
  121. package/dist/src/server/returns.d.ts.map +1 -0
  122. package/dist/src/server/shoppable-looks.d.ts +17 -0
  123. package/dist/src/server/shoppable-looks.d.ts.map +1 -0
  124. package/dist/src/server/shoppable-looks.js +136 -0
  125. package/dist/src/server/swaps.d.ts.map +1 -0
  126. package/dist/src/server/variants.d.ts.map +1 -0
  127. package/dist/src/server/wishlist.d.ts.map +1 -0
  128. package/dist/src/util/get-locale-header.d.ts.map +1 -0
  129. package/dist/src/util/medusa-error.d.ts.map +1 -0
  130. package/dist/src/util/revalidate-cart.d.ts.map +1 -0
  131. package/dist/src/util/sort-products.d.ts.map +1 -0
  132. package/dist/src/util/store-client.d.ts.map +1 -0
  133. package/homepage-config.example.json +209 -0
  134. package/homepage-sections.example.json +55 -0
  135. package/package.json +121 -2
  136. package/segment-data/default-page-input.json +191 -0
  137. package/src/server/config-merge.ts +31 -0
  138. package/src/server/dynamic-config.ts +838 -248
  139. package/src/server/home-sections/about-brand.ts +24 -0
  140. package/src/server/home-sections/baptism-picks.ts +46 -0
  141. package/src/server/home-sections/baptism.ts +64 -0
  142. package/src/server/home-sections/blog-posts.ts +23 -0
  143. package/src/server/home-sections/brand-marquee.ts +17 -0
  144. package/src/server/home-sections/brand-pillars.ts +23 -0
  145. package/src/server/home-sections/category-pills.ts +32 -0
  146. package/src/server/home-sections/celebrity-trust.ts +42 -0
  147. package/src/server/home-sections/features.ts +23 -0
  148. package/src/server/home-sections/hero.ts +24 -0
  149. package/src/server/home-sections/instagram-posts.ts +23 -0
  150. package/src/server/home-sections/loved-by-moms.ts +34 -0
  151. package/src/server/home-sections/luxe-favourites.ts +30 -0
  152. package/src/server/home-sections/new-arrivals-classic.ts +21 -0
  153. package/src/server/home-sections/new-arrivals.ts +47 -0
  154. package/src/server/home-sections/promo-announcements.ts +17 -0
  155. package/src/server/home-sections/promo-countdown.ts +15 -0
  156. package/src/server/home-sections/shared.ts +44 -0
  157. package/src/server/home-sections/shop-by-age.ts +26 -0
  158. package/src/server/home-sections/shop-by-category.ts +28 -0
  159. package/src/server/home-sections/testimonials.ts +23 -0
  160. package/src/server/home-sections/theme-dresses.ts +49 -0
  161. package/src/server/home-sections/video-stories.ts +23 -0
  162. package/src/server/home-sections/why-choose-us.ts +23 -0
  163. package/src/server/home.ts +173 -16
  164. package/src/server/homepage-config.types.ts +335 -0
  165. package/src/server/homepage-section-defaults.ts +199 -0
  166. package/src/server/index.ts +2 -0
  167. package/src/server/page-input.ts +64 -0
  168. package/src/server/resolve-home-segment-data.ts +63 -0
  169. package/src/server/shoppable-looks.ts +178 -0
  170. package/dist/config.d.ts.map +0 -1
  171. package/dist/cookies.d.ts.map +0 -1
  172. package/dist/edge.d.ts.map +0 -1
  173. package/dist/middleware.d.ts.map +0 -1
  174. package/dist/server/cart.d.ts.map +0 -1
  175. package/dist/server/categories.d.ts.map +0 -1
  176. package/dist/server/collections.d.ts.map +0 -1
  177. package/dist/server/contact.d.ts.map +0 -1
  178. package/dist/server/customer-registration.d.ts.map +0 -1
  179. package/dist/server/customer.d.ts.map +0 -1
  180. package/dist/server/dynamic-config.d.ts +0 -125
  181. package/dist/server/dynamic-config.d.ts.map +0 -1
  182. package/dist/server/dynamic-config.js +0 -289
  183. package/dist/server/fulfillment.d.ts.map +0 -1
  184. package/dist/server/guest.d.ts.map +0 -1
  185. package/dist/server/home.d.ts +0 -15
  186. package/dist/server/home.d.ts.map +0 -1
  187. package/dist/server/home.js +0 -45
  188. package/dist/server/index.d.ts.map +0 -1
  189. package/dist/server/locale-actions.d.ts.map +0 -1
  190. package/dist/server/locales.d.ts.map +0 -1
  191. package/dist/server/notifications.d.ts.map +0 -1
  192. package/dist/server/onboarding.d.ts.map +0 -1
  193. package/dist/server/orders.d.ts.map +0 -1
  194. package/dist/server/payment-details.d.ts.map +0 -1
  195. package/dist/server/payment.d.ts.map +0 -1
  196. package/dist/server/pincode.d.ts.map +0 -1
  197. package/dist/server/products.d.ts.map +0 -1
  198. package/dist/server/regions.d.ts.map +0 -1
  199. package/dist/server/returns.d.ts.map +0 -1
  200. package/dist/server/swaps.d.ts.map +0 -1
  201. package/dist/server/variants.d.ts.map +0 -1
  202. package/dist/server/wishlist.d.ts.map +0 -1
  203. package/dist/util/get-locale-header.d.ts.map +0 -1
  204. package/dist/util/medusa-error.d.ts.map +0 -1
  205. package/dist/util/revalidate-cart.d.ts.map +0 -1
  206. package/dist/util/sort-products.d.ts.map +0 -1
  207. package/dist/util/store-client.d.ts.map +0 -1
  208. /package/dist/{config.d.ts → src/config.d.ts} +0 -0
  209. /package/dist/{config.js → src/config.js} +0 -0
  210. /package/dist/{cookies.d.ts → src/cookies.d.ts} +0 -0
  211. /package/dist/{cookies.js → src/cookies.js} +0 -0
  212. /package/dist/{edge.d.ts → src/edge.d.ts} +0 -0
  213. /package/dist/{edge.js → src/edge.js} +0 -0
  214. /package/dist/{middleware.d.ts → src/middleware.d.ts} +0 -0
  215. /package/dist/{middleware.js → src/middleware.js} +0 -0
  216. /package/dist/{server → src/server}/cart.d.ts +0 -0
  217. /package/dist/{server → src/server}/cart.js +0 -0
  218. /package/dist/{server → src/server}/categories.d.ts +0 -0
  219. /package/dist/{server → src/server}/categories.js +0 -0
  220. /package/dist/{server → src/server}/collections.d.ts +0 -0
  221. /package/dist/{server → src/server}/collections.js +0 -0
  222. /package/dist/{server → src/server}/contact.d.ts +0 -0
  223. /package/dist/{server → src/server}/contact.js +0 -0
  224. /package/dist/{server → src/server}/customer-registration.d.ts +0 -0
  225. /package/dist/{server → src/server}/customer-registration.js +0 -0
  226. /package/dist/{server → src/server}/customer.d.ts +0 -0
  227. /package/dist/{server → src/server}/customer.js +0 -0
  228. /package/dist/{server → src/server}/fulfillment.d.ts +0 -0
  229. /package/dist/{server → src/server}/fulfillment.js +0 -0
  230. /package/dist/{server → src/server}/guest.d.ts +0 -0
  231. /package/dist/{server → src/server}/guest.js +0 -0
  232. /package/dist/{server → src/server}/locale-actions.d.ts +0 -0
  233. /package/dist/{server → src/server}/locale-actions.js +0 -0
  234. /package/dist/{server → src/server}/locales.d.ts +0 -0
  235. /package/dist/{server → src/server}/locales.js +0 -0
  236. /package/dist/{server → src/server}/notifications.d.ts +0 -0
  237. /package/dist/{server → src/server}/notifications.js +0 -0
  238. /package/dist/{server → src/server}/onboarding.d.ts +0 -0
  239. /package/dist/{server → src/server}/onboarding.js +0 -0
  240. /package/dist/{server → src/server}/orders.d.ts +0 -0
  241. /package/dist/{server → src/server}/orders.js +0 -0
  242. /package/dist/{server → src/server}/payment-details.d.ts +0 -0
  243. /package/dist/{server → src/server}/payment-details.js +0 -0
  244. /package/dist/{server → src/server}/payment.d.ts +0 -0
  245. /package/dist/{server → src/server}/payment.js +0 -0
  246. /package/dist/{server → src/server}/pincode.d.ts +0 -0
  247. /package/dist/{server → src/server}/pincode.js +0 -0
  248. /package/dist/{server → src/server}/products.d.ts +0 -0
  249. /package/dist/{server → src/server}/products.js +0 -0
  250. /package/dist/{server → src/server}/regions.d.ts +0 -0
  251. /package/dist/{server → src/server}/regions.js +0 -0
  252. /package/dist/{server → src/server}/returns.d.ts +0 -0
  253. /package/dist/{server → src/server}/returns.js +0 -0
  254. /package/dist/{server → src/server}/swaps.d.ts +0 -0
  255. /package/dist/{server → src/server}/swaps.js +0 -0
  256. /package/dist/{server → src/server}/variants.d.ts +0 -0
  257. /package/dist/{server → src/server}/variants.js +0 -0
  258. /package/dist/{server → src/server}/wishlist.d.ts +0 -0
  259. /package/dist/{server → src/server}/wishlist.js +0 -0
  260. /package/dist/{util → src/util}/get-locale-header.d.ts +0 -0
  261. /package/dist/{util → src/util}/get-locale-header.js +0 -0
  262. /package/dist/{util → src/util}/medusa-error.d.ts +0 -0
  263. /package/dist/{util → src/util}/medusa-error.js +0 -0
  264. /package/dist/{util → src/util}/revalidate-cart.d.ts +0 -0
  265. /package/dist/{util → src/util}/revalidate-cart.js +0 -0
  266. /package/dist/{util → src/util}/sort-products.d.ts +0 -0
  267. /package/dist/{util → src/util}/sort-products.js +0 -0
  268. /package/dist/{util → src/util}/store-client.d.ts +0 -0
  269. /package/dist/{util → src/util}/store-client.js +0 -0
@@ -0,0 +1,99 @@
1
+ # Homepage config and page input
2
+
3
+ Storefront **packages do not call** `GET /store/dynamic-config`. Segment copy uses **hardcoded JSON defaults** (`segment-data/default-page-input.json`). The **main project** fetches dynamic config once and passes optional `pageInput` overrides.
4
+
5
+ ## Tree-shakeable imports (one section)
6
+
7
+ Import **only** the section UI and its loader. No `loadHomePageData`, no `registerAllHomeSections`, no full home barrel.
8
+
9
+ ```tsx
10
+ // app/[countryCode]/page.tsx — single hero block
11
+ import HeroSection from "medusa-ui-home/sections/hero"
12
+ import { loadHeroSectionData } from "medusa-storefront-data/home/sections/hero"
13
+
14
+ export default async function Page({
15
+ params,
16
+ }: {
17
+ params: Promise<{ countryCode: string }>
18
+ }) {
19
+ const { countryCode } = await params
20
+ const pageInput = /* optional: homepageConfigFromDynamicResponse(await getDynamicConfig()) */
21
+ const data = await loadHeroSectionData(countryCode, { pageInput })
22
+
23
+ return <HeroSection {...data} />
24
+ }
25
+ ```
26
+
27
+ ### Section subpaths
28
+
29
+ | UI component | Scoped data loader |
30
+ |--------------|-------------------|
31
+ | `medusa-ui-home/sections/hero` | `medusa-storefront-data/home/sections/hero` |
32
+ | `medusa-ui-home/sections/newArrivals` | `medusa-storefront-data/home/sections/newArrivals` |
33
+ | `medusa-ui-home/sections/promoAnnouncements` | `medusa-storefront-data/home/sections/promoAnnouncements` |
34
+ | … | … (all `HomeSectionId` values) |
35
+
36
+ Run `node scripts/generate-home-section-exports.mjs` after adding a section.
37
+
38
+ ## Themed pages (tree-shakeable)
39
+
40
+ Import **one page** from `medusa-storefront-pages` — each route is its own export:
41
+
42
+ ```tsx
43
+ import ContactPage, { CONTACT_PAGE_METADATA } from "medusa-storefront-pages/contact"
44
+
45
+ export const metadata = CONTACT_PAGE_METADATA
46
+ export default ContactPage // optional pageInput; uses JSON defaults when omitted
47
+ ```
48
+
49
+ Do **not** import a root barrel (there is no `.` export).
50
+
51
+ ## Multiple sections in the main app
52
+
53
+ Compose manually (recommended):
54
+
55
+ ```tsx
56
+ import HeroSection from "medusa-ui-home/sections/hero"
57
+ import NewArrivalsSection from "medusa-ui-home/sections/newArrivals"
58
+ import { loadHeroSectionData } from "medusa-storefront-data/home/sections/hero"
59
+ import { loadNewArrivalsSectionData } from "medusa-storefront-data/home/sections/newArrivals"
60
+
61
+ const [hero, newArrivals] = await Promise.all([
62
+ loadHeroSectionData(countryCode, { pageInput }),
63
+ loadNewArrivalsSectionData(countryCode, { pageInput }),
64
+ ])
65
+
66
+ return (
67
+ <>
68
+ {hero && <HeroSection {...hero} />}
69
+ {newArrivals && <NewArrivalsSection {...newArrivals} />}
70
+ </>
71
+ )
72
+ ```
73
+
74
+ ### Legacy compose registry
75
+
76
+ `medusa-ui-home/home/register-sections` and `loadHomePageData` still exist but pull **every** section — avoid for tree-shaking.
77
+
78
+ ## Main project dynamic config
79
+
80
+ ```tsx
81
+ import {
82
+ getDynamicConfig,
83
+ homepageConfigFromDynamicResponse,
84
+ } from "medusa-storefront-data/dynamic-config"
85
+
86
+ const pageInput = homepageConfigFromDynamicResponse(await getDynamicConfig())
87
+ ```
88
+
89
+ Pass `pageInput` only where you need CMS overrides; omit it to use package JSON defaults.
90
+
91
+ ## API reference
92
+
93
+ | Export | Use |
94
+ |--------|-----|
95
+ | `loadHeroSectionData`, `loadNewArrivalsSectionData`, … | **One section** catalog + copy |
96
+ | `loadHomePageData` | All sections (legacy) |
97
+ | `getDynamicConfig()` | **Main project only** |
98
+ | `homepageConfigFromDynamicResponse(raw)` | Merge API → `pageInput` |
99
+ | `DEFAULT_PAGE_INPUT` | Package defaults |
@@ -0,0 +1,191 @@
1
+ {
2
+ "logo": "/Logo.png",
3
+ "website-description": "Premium kids fashion for everyday wear and special occasions.",
4
+ "homepage-banner-array": [
5
+ {
6
+ "homepage-banner": {
7
+ "homepage-banner-image": "/newbanner.png",
8
+ "homepage-banner-title": "Premium Kids Shop",
9
+ "homepage-banner-subtitle": "Little Trends, Quality Kids Wear",
10
+ "homepage-banner-description": "Shop stylish kids wear for little ones and children of all years—from newborn up to 15 years.",
11
+ "homepage-banner-button-name": "Shop Kids Wear",
12
+ "homepage-banner-button-link": "/store"
13
+ }
14
+ }
15
+ ],
16
+ "app-banner-array": [
17
+ {
18
+ "app-banner": {
19
+ "app-banner-image": "/appbanner.png",
20
+ "app-banner-title": "Premium Kids Shop",
21
+ "app-banner-subtitle": "Little Trends, Quality Kids Wear",
22
+ "app-banner-description": "Shop stylish kids wear for little ones and children of all years—from newborn up to 15 years.",
23
+ "app-banner-button-name": "Shop Kids Wear",
24
+ "app-banner-button-link": "/store"
25
+ }
26
+ }
27
+ ],
28
+ "promo-bar": {
29
+ "promo-text": null,
30
+ "promo-code": null,
31
+ "promo-active": false
32
+ },
33
+ "contact-us": {
34
+ "contact-phone": "+1 000 000 0000",
35
+ "contact-email": "hello@yourstore.com",
36
+ "contact-address": "Your store address"
37
+ },
38
+ "social-links": [],
39
+ "faq-array": [],
40
+ "sections": {
41
+ "promoAnnouncements": {
42
+ "messages": [
43
+ "Free shipping on orders over a threshold",
44
+ "Worldwide shipping available",
45
+ "Selected products available with customisation",
46
+ "Need help choosing? Book a video call consultation"
47
+ ]
48
+ },
49
+ "hero": {},
50
+ "categoryPills": {},
51
+ "newArrivals": {
52
+ "title": "New Arrivals",
53
+ "subtitle": "Fresh styles just landed",
54
+ "variant": "grid"
55
+ },
56
+ "newArrivalsClassic": {
57
+ "title": "New Arrivals",
58
+ "subtitle": "Fresh styles just landed",
59
+ "variant": "classic"
60
+ },
61
+ "promoCountdown": {
62
+ "code": "SAVE50",
63
+ "text": "Up to 50% off — shop your favourites before they're gone!",
64
+ "end-at": "2026-12-31T23:59:59.000Z",
65
+ "active": false,
66
+ "cta-label": "Shop Offers",
67
+ "cta-href": "/store"
68
+ },
69
+ "celebrityTrust": {
70
+ "title": "Trusted by Celebrities",
71
+ "text": "When the stars dress their little ones in our collections."
72
+ },
73
+ "luxeFavourites": {
74
+ "title": "Luxe Favourites"
75
+ },
76
+ "shopByCategory": {
77
+ "title": "Shop By Categories",
78
+ "description": "Browse by style and occasion"
79
+ },
80
+ "baptism": {
81
+ "title": "Baptism"
82
+ },
83
+ "baptismPicks": {
84
+ "title": "Baptism Picks",
85
+ "looks": []
86
+ },
87
+ "themeDresses": {
88
+ "title": "Theme",
89
+ "description": "Dress her in a dreamy theme outfit for her birthday celebration"
90
+ },
91
+ "brandMarquee": {
92
+ "text": "est. 2012"
93
+ },
94
+ "aboutBrand": {
95
+ "eyebrow": "Who We Are",
96
+ "title": "Discover what makes us different",
97
+ "description": "We offer stylish, comfortable, and high-quality clothing for children, crafted for everyday wear and special occasions.",
98
+ "readMoreHref": "/about",
99
+ "stats": [
100
+ {
101
+ "label": "Visit us in store",
102
+ "value": "Find a location"
103
+ },
104
+ {
105
+ "label": "Happy customers",
106
+ "value": "150k+"
107
+ },
108
+ {
109
+ "label": "Products",
110
+ "value": "3000+"
111
+ }
112
+ ]
113
+ },
114
+ "testimonials": {
115
+ "title": "What Clients Talk About Us",
116
+ "description": "The Trust We've Earned",
117
+ "items": [
118
+ {
119
+ "text": "Amazing place if you are looking for a dress for ur little girl's special day.",
120
+ "name": "Greeshma thottippal shanmughan"
121
+ },
122
+ {
123
+ "text": "I frequently buy dresses for my baby from this store and I am extremely satisfied with the purchase.",
124
+ "name": "Priyanka Rajesh"
125
+ }
126
+ ]
127
+ },
128
+ "instagramPosts": {
129
+ "title": "Follow Us on Instagram",
130
+ "handle": "yourbrand",
131
+ "profile-url": "https://www.instagram.com/yourbrand/",
132
+ "profile-image": "/Logo.png",
133
+ "posts": []
134
+ },
135
+ "brandPillars": {
136
+ "title": "This approach resulted in the beautiful structure",
137
+ "pillars": [
138
+ {
139
+ "title": "Your favorite kids destination",
140
+ "description": "Trendy, high-quality outfits for little ones.",
141
+ "image": "/features/store.jpg"
142
+ }
143
+ ]
144
+ },
145
+ "features": {
146
+ "title": "Why shop with us",
147
+ "description": "Secure checkout, fast delivery, and easy exchanges",
148
+ "features": [
149
+ {
150
+ "name": "100% Secure",
151
+ "icon": "/secure.svg"
152
+ },
153
+ {
154
+ "name": "Easy Exchanges",
155
+ "icon": "/exchnage.svg"
156
+ }
157
+ ]
158
+ },
159
+ "whyChooseUs": {
160
+ "title": "Why Choose Us?",
161
+ "features": [
162
+ {
163
+ "feature-name": "Premium Quality",
164
+ "feature-icon": "/icons/quality.svg"
165
+ }
166
+ ]
167
+ },
168
+ "lovedByMoms": {
169
+ "title": "Loved by Moms",
170
+ "description": "Top-rated styles loved by parents and kids alike."
171
+ },
172
+ "shopByAge": {
173
+ "title": "Shop By Age"
174
+ },
175
+ "videoStories": {
176
+ "title": "Watch Stories & Reviews",
177
+ "video-urls": []
178
+ },
179
+ "blogPosts": {
180
+ "title": "Blog posts",
181
+ "posts": [
182
+ {
183
+ "title": "Which Theme Dress Matches Her Vibe?",
184
+ "href": "/blog/theme-dress-vibe",
185
+ "category": "Theme Dress",
186
+ "date": "May 24, 2026"
187
+ }
188
+ ]
189
+ }
190
+ }
191
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/config.ts"],"names":[],"mappings":"AACA,OAAO,MAAiC,MAAM,kBAAkB,CAAA;AAShE,eAAO,MAAM,GAAG,QAId,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cookies.d.ts","sourceRoot":"","sources":["../../src/cookies.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAA;AAGpB,eAAO,MAAM,cAAc,QAAa,OAAO,CAC7C;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,EAAE,CAc/B,CAAA;AAED,eAAO,MAAM,mBAAmB,QAAa,OAAO,CAClD;IAAE,aAAa,EAAE,MAAM,CAAA;CAAE,GAAG,EAAE,CAc/B,CAAA;AAED,eAAO,MAAM,WAAW,GAAU,KAAK,MAAM,KAAG,OAAO,CAAC,MAAM,CAa7D,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,KAAK,MAAM,KACV,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,EAAE,CAYjC,CAAA;AAED,eAAO,MAAM,YAAY,GAAU,OAAO,MAAM,kBAQ/C,CAAA;AAED,eAAO,MAAM,eAAe,qBAK3B,CAAA;AAED,eAAO,MAAM,SAAS,mCAsBrB,CAAA;AAED,eAAO,MAAM,SAAS,GAAU,QAAQ,MAAM,kBAQ7C,CAAA;AAED,eAAO,MAAM,YAAY,qBAKxB,CAAA;AAED,eAAO,MAAM,cAAc,qBAK1B,CAAA;AAED,eAAO,MAAM,aAAa,GAAU,QAAQ,MAAM,kBAQjD,CAAA;AAED,eAAO,MAAM,aAAa,mCAGzB,CAAA;AAED,eAAO,MAAM,gBAAgB,qBAK5B,CAAA;AAED,eAAO,MAAM,eAAe,GAAU,QAAQ,MAAM,kBAQnD,CAAA;AAED,eAAO,MAAM,kBAAkB,qBAK9B,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge.d.ts","sourceRoot":"","sources":["../../src/edge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../../src/middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACjF,YAAY,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cart.d.ts","sourceRoot":"","sources":["../../../src/server/cart.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"categories.d.ts","sourceRoot":"","sources":["../../../src/server/categories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAI3C,eAAO,MAAM,cAAc,GAAU,QAAQ,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,8CAW/D,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAU,gBAAgB,MAAM,EAAE,mDAuBjE,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"collections.d.ts","sourceRoot":"","sources":["../../../src/server/collections.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAQ3C,eAAO,MAAM,kBAAkB,GAAU,IAAI,MAAM,uCAIlD,CAAA;AAED,eAAO,MAAM,eAAe,GAC1B,cAAa,MAAM,CAAC,MAAM,EAAE,MAAM,CAAM,KACvC,OAAO,CAAC;IAAE,WAAW,EAAE,SAAS,CAAC,eAAe,EAAE,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAWrE,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,QAAQ,MAAM,KACb,OAAO,CAAC,SAAS,CAAC,eAAe,GAAG,IAAI,CAsB1C,CAAA"}
@@ -0,0 +1,3 @@
1
+ /** Merge CMS section block onto package defaults (override wins when set). */
2
+ export declare function mergeSectionBlock(defaults: Record<string, unknown>, override: Record<string, unknown> | null): Record<string, unknown>;
3
+ //# sourceMappingURL=config-merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-merge.d.ts","sourceRoot":"","sources":["../../../src/server/config-merge.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACvC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CA0BzB"}
@@ -0,0 +1,31 @@
1
+ /** Merge CMS section block onto package defaults (override wins when set). */
2
+ export function mergeSectionBlock(defaults, override) {
3
+ if (!override)
4
+ return { ...defaults };
5
+ const merged = { ...defaults };
6
+ for (const [key, value] of Object.entries(override)) {
7
+ if (value === undefined || value === null)
8
+ continue;
9
+ if (Array.isArray(value)) {
10
+ if (value.length > 0)
11
+ merged[key] = value;
12
+ continue;
13
+ }
14
+ if (typeof value === "string") {
15
+ if (value.trim())
16
+ merged[key] = value.trim();
17
+ continue;
18
+ }
19
+ if (typeof value === "boolean" || typeof value === "number") {
20
+ merged[key] = value;
21
+ continue;
22
+ }
23
+ if (typeof value === "object") {
24
+ const base = merged[key] && typeof merged[key] === "object" && !Array.isArray(merged[key])
25
+ ? merged[key]
26
+ : {};
27
+ merged[key] = mergeSectionBlock(base, value);
28
+ }
29
+ }
30
+ return merged;
31
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contact.d.ts","sourceRoot":"","sources":["../../../src/server/contact.ts"],"names":[],"mappings":"AAgBA,wBAAsB,oBAAoB,CAAC,EACzC,KAAK,EACL,OAAO,EACP,QAAQ,EACR,MAAqB,GACtB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,KAAK,CAAC,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,OAAO,EAAE,MAAM,CAAA;KAChB,CAAA;IACD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IAClC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;;;;;;;;GAsBA;AAED,wBAAsB,qBAAqB,CAAC,EAC1C,KAAK,EACL,MAAqB,EACrB,MAAiB,GAClB,EAAE;IACD,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,YAAY,GAAG,cAAc,CAAA;IACtC,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;;;;;;;;GA2BA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-registration.d.ts","sourceRoot":"","sources":["../../../src/server/customer-registration.ts"],"names":[],"mappings":"AAqBA;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACnB;;;;;;;;;;GAoDA;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,GAAE,MAA6B;;;;;;;;;;GAuB5F;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;;;;;;;GAwBlE;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;;;GAoBxE;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM;;;;;;;;GAyBvD;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,IAAI,EAAE;IAC9C,KAAK,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;CAChB;;;;;;;;GA8BA;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM;;GAwBvD;AACD;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM;;;;;;;;GAkBzD;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;GAcvE;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,MAAM;;;;;;;;GAe/D;AAED;;GAEG;AACH,wBAAsB,4BAA4B,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;;;;;;GAc7E"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer.d.ts","sourceRoot":"","sources":["../../../src/server/customer.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAA;AA4C3C,eAAO,MAAM,gBAAgB,QACjB,OAAO,CAAC,SAAS,CAAC,aAAa,GAAG,IAAI,CAkBjD,CAAA;AAED,eAAO,MAAM,cAAc,GAAU,MAAM,SAAS,CAAC,mBAAmB,qCAYvE,CAAA;AAED,wBAAsB,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,gBAqCtE;AAED,wBAAsB,KAAK,CACzB,aAAa,EAAE,MAAM,GAAG,IAAI,EAC5B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsExB;AAED,wBAAsB,OAAO,CAAC,WAAW,EAAE,MAAM,iBAqBhD;AAED,wBAAsB,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM,iBAwChD;AAED,eAAO,MAAM,kBAAkB,GAC7B,cAAc,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,UAAU,QAAQ,KACjB,OAAO,CAAC,GAAG,CAgCb,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,WAAW,MAAM,KAChB,OAAO,CAAC,IAAI,CAWd,CAAA;AAED,eAAO,MAAM,qBAAqB,GAChC,cAAc,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACrC,UAAU,QAAQ,KACjB,OAAO,CAAC,GAAG,CAuCb,CAAA;AAED,eAAO,MAAM,iBAAiB,GAAU,WAAW,MAAM;;;;;;EAWxD,CAAA;AAED,wBAAsB,kBAAkB;;;;;;GA8CvC;AAED,wBAAsB,wBAAwB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;;;;;;GAsC5E;AAED,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;;;;;;GAmChH;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ;;;;;;;;GAyC1D"}
@@ -0,0 +1,240 @@
1
+ import "server-only";
2
+ import { type DefaultHomeSectionId } from "./homepage-section-defaults";
3
+ import type { DynamicConfigResponse, HomepageConfig } from "./homepage-config.types";
4
+ export { DEFAULT_PAGE_INPUT, mergePageInputWithDefaults, resolvePageInput, homepageConfigFromDynamicResponse, type StorefrontPageInput, } from "./page-input";
5
+ /** @deprecated Use `DynamicConfigResponse` from `medusa-storefront-data/homepage-config-schema`. */
6
+ export type DynamicConfig = DynamicConfigResponse;
7
+ export declare const getDynamicConfig: () => Promise<DynamicConfigResponse | null>;
8
+ export declare function getLogoFromPageInput(pageInput?: HomepageConfig | null): string | null;
9
+ /** @deprecated Fetch in main project; pass `pageInput` into layout/pages instead. */
10
+ export declare const getLogoFromConfig: () => Promise<string | null>;
11
+ export declare const getBannerImageFromConfig: () => Promise<string | null>;
12
+ export declare const getMobileBannerFromConfig: () => Promise<{
13
+ image: string | null;
14
+ link: string | null;
15
+ }>;
16
+ export type HomepageBanner = {
17
+ image?: string;
18
+ title?: string;
19
+ subtitle?: string;
20
+ description?: string;
21
+ buttonName?: string;
22
+ buttonLink?: string;
23
+ };
24
+ export declare function getHomeBannersFromPageInput(pageInput?: HomepageConfig | null): HomepageBanner[] | null;
25
+ export declare function getAppBannersFromPageInput(pageInput?: HomepageConfig | null): HomepageBanner[] | null;
26
+ /** @deprecated Pass `pageInput` from main project. */
27
+ export declare const getHomeBannersFromConfig: () => Promise<HomepageBanner[] | null>;
28
+ /** @deprecated Pass `pageInput` from main project. */
29
+ export declare const getAppBannersFromConfig: () => Promise<HomepageBanner[] | null>;
30
+ export declare const getMobileBannerImageFromConfig: () => Promise<string | null>;
31
+ export declare function getWebsiteDescriptionFromPageInput(pageInput?: HomepageConfig | null): string | null;
32
+ /** @deprecated Pass `pageInput` from main project. */
33
+ export declare const getWebsiteDescriptionFromConfig: () => Promise<string | null>;
34
+ /** Why choose us — defaults + `sections.whyChooseUs` override. */
35
+ export declare function getFeaturesFromPageInput(pageInput?: HomepageConfig | null): {
36
+ title: string;
37
+ features: Array<{
38
+ name: string;
39
+ icon: string;
40
+ }>;
41
+ };
42
+ /** @deprecated Pass `pageInput` from main project. */
43
+ export declare const getFeaturesFromConfig: () => Promise<{
44
+ title: string;
45
+ features: Array<{
46
+ name: string;
47
+ icon: string;
48
+ }>;
49
+ }>;
50
+ /** CMS copy for a homepage section (title, name, text, description, etc.). */
51
+ export type SectionCopy = {
52
+ title: string | null;
53
+ name: string | null;
54
+ text: string | null;
55
+ description: string | null;
56
+ subtitle: string | null;
57
+ eyebrow: string | null;
58
+ /** Layout variant, e.g. new arrivals `grid` | `classic`. */
59
+ variant: string | null;
60
+ layout: string | null;
61
+ };
62
+ export declare function parseSectionCopy(block: unknown): SectionCopy;
63
+ export type HomeSectionCopyId = DefaultHomeSectionId;
64
+ export type HomeSectionsCopy = Record<HomeSectionCopyId, SectionCopy>;
65
+ export { mergeSectionBlock } from "./config-merge";
66
+ export declare function getMergedSectionBlock(id: HomeSectionCopyId, pageInput?: HomepageConfig | null): Record<string, unknown>;
67
+ /**
68
+ * Merged section copy: package defaults + `homepage-config.sections` overrides.
69
+ */
70
+ export declare function getHomeSectionsCopyFromPageInput(pageInput?: HomepageConfig | null): HomeSectionsCopy;
71
+ /** @deprecated Pass `pageInput` from main project instead of fetching here. */
72
+ export declare const getHomeSectionsCopyFromConfig: () => Promise<HomeSectionsCopy>;
73
+ export type TrustFeaturesConfig = {
74
+ title: string | null;
75
+ description: string | null;
76
+ features: Array<{
77
+ name: string;
78
+ icon: string;
79
+ }>;
80
+ };
81
+ /** Trust badge row — defaults + `sections.features` override. */
82
+ export declare function getTrustFeaturesFromPageInput(pageInput?: HomepageConfig | null): TrustFeaturesConfig;
83
+ /** @deprecated Pass `pageInput` from main project. */
84
+ export declare const getTrustFeaturesFromConfig: () => Promise<TrustFeaturesConfig>;
85
+ export type ContactInfo = {
86
+ phone?: string;
87
+ email?: string;
88
+ address?: string;
89
+ };
90
+ export declare function getContactInfoFromPageInput(pageInput?: HomepageConfig | null): ContactInfo | null;
91
+ /** @deprecated Pass `pageInput` from main project. */
92
+ export declare const getContactInfoFromConfig: () => Promise<ContactInfo | null>;
93
+ /**
94
+ * Homepage video stories/reviews carousel (`homepage-config.video-stories`).
95
+ */
96
+ export declare function getVideoStoriesFromPageInput(pageInput?: HomepageConfig | null): {
97
+ title: string;
98
+ videoUrls: string[];
99
+ };
100
+ /** @deprecated Pass `pageInput` from main project. */
101
+ export declare const getVideoStoriesFromConfig: () => Promise<{
102
+ title: string;
103
+ videoUrls: string[];
104
+ } | null>;
105
+ export type TestimonialItem = {
106
+ id: string;
107
+ text: string;
108
+ name: string;
109
+ rating?: number;
110
+ avatar?: string;
111
+ };
112
+ export declare function getTestimonialsFromPageInput(pageInput?: HomepageConfig | null): {
113
+ title: string;
114
+ subtitle: string | null;
115
+ testimonials: TestimonialItem[];
116
+ };
117
+ /** @deprecated Pass `pageInput` from main project. */
118
+ export declare const getTestimonialsFromConfig: () => Promise<{
119
+ title: string;
120
+ subtitle: string | null;
121
+ testimonials: TestimonialItem[];
122
+ }>;
123
+ export declare function getSocialLinksFromPageInput(pageInput?: HomepageConfig | null): Array<{
124
+ name: string;
125
+ url: string;
126
+ icon?: string;
127
+ }> | null;
128
+ /** @deprecated Pass `pageInput` from main project. */
129
+ export declare const getSocialLinksFromConfig: () => Promise<Array<{
130
+ name: string;
131
+ url: string;
132
+ icon?: string;
133
+ }> | null>;
134
+ export declare function getFaqsFromPageInput(pageInput?: HomepageConfig | null): Array<{
135
+ category: string;
136
+ items: Array<{
137
+ q: string;
138
+ a: string;
139
+ }>;
140
+ }> | null;
141
+ /** @deprecated Pass `pageInput` from main project. */
142
+ export declare const getFaqsFromConfig: () => Promise<Array<{
143
+ category: string;
144
+ items: Array<{
145
+ q: string;
146
+ a: string;
147
+ }>;
148
+ }> | null>;
149
+ export declare function getAnnouncementMessagesFromPageInput(pageInput?: HomepageConfig | null): string[];
150
+ /** @deprecated Pass `pageInput` from main project. */
151
+ export declare const getAnnouncementMessagesFromConfig: () => Promise<string[]>;
152
+ export type AboutBrandConfig = {
153
+ eyebrow: string;
154
+ title: string;
155
+ description: string;
156
+ readMoreHref: string;
157
+ stats: Array<{
158
+ label: string;
159
+ value: string;
160
+ }>;
161
+ };
162
+ export declare function getAboutBrandFromPageInput(pageInput?: HomepageConfig | null): AboutBrandConfig;
163
+ /** @deprecated Pass `pageInput` from main project. */
164
+ export declare const getAboutBrandFromConfig: () => Promise<AboutBrandConfig>;
165
+ export type BrandPillarConfig = {
166
+ title: string;
167
+ description: string;
168
+ image?: string;
169
+ };
170
+ export declare function getBrandPillarsFromPageInput(pageInput?: HomepageConfig | null): {
171
+ sectionTitle: string;
172
+ pillars: BrandPillarConfig[];
173
+ };
174
+ /** @deprecated Pass `pageInput` from main project. */
175
+ export declare const getBrandPillarsFromConfig: () => Promise<{
176
+ sectionTitle: string;
177
+ pillars: BrandPillarConfig[];
178
+ }>;
179
+ export type BlogPostConfig = {
180
+ title: string;
181
+ excerpt?: string;
182
+ category?: string;
183
+ date?: string;
184
+ href: string;
185
+ image?: string;
186
+ };
187
+ export declare function getBlogPostsFromPageInput(pageInput?: HomepageConfig | null): BlogPostConfig[];
188
+ /** @deprecated Pass `pageInput` from main project. */
189
+ export declare const getBlogPostsFromConfig: () => Promise<BlogPostConfig[]>;
190
+ /** Promo countdown — defaults + `sections.promoCountdown` override. */
191
+ export declare function getPromoCountdownFromPageInput(pageInput?: HomepageConfig | null): {
192
+ code: string | null;
193
+ message: string | null;
194
+ endAt: string | null;
195
+ active: boolean;
196
+ ctaLabel: string | null;
197
+ ctaHref: string | null;
198
+ };
199
+ /** @deprecated Pass `pageInput` from main project. */
200
+ export declare const getPromoCountdownFromConfig: () => Promise<{
201
+ code: string | null;
202
+ message: string | null;
203
+ endAt: string | null;
204
+ active: boolean;
205
+ ctaLabel: string | null;
206
+ ctaHref: string | null;
207
+ }>;
208
+ export type InstagramPostConfig = {
209
+ id: string;
210
+ image: string;
211
+ url?: string;
212
+ };
213
+ export type InstagramPostsData = {
214
+ title: string;
215
+ handle: string;
216
+ profileUrl: string;
217
+ profileImage?: string;
218
+ posts: InstagramPostConfig[];
219
+ };
220
+ /** Instagram feed — `sections.instagramPosts` + optional social-links fallback. */
221
+ export declare function getInstagramPostsFromPageInput(pageInput?: HomepageConfig | null): InstagramPostsData;
222
+ /** @deprecated Pass `pageInput` from main project. */
223
+ export declare const getInstagramPostsFromConfig: () => Promise<InstagramPostsData>;
224
+ export { DEFAULT_HOMEPAGE_SECTIONS, type DefaultHomeSectionId, } from "./homepage-section-defaults";
225
+ export type { DynamicConfigResponse, HomepageConfig, HomepageSectionsConfig, HomepageSectionId, HomepageSectionCopyFields, HomepageNewArrivalsSection, } from "./homepage-config.types";
226
+ export { HOMEPAGE_SECTION_IDS } from "./homepage-config.types";
227
+ export declare function getPromoBarFromPageInput(pageInput?: HomepageConfig | null): {
228
+ text: string | null;
229
+ code: string | null;
230
+ value: string | null;
231
+ active: boolean;
232
+ };
233
+ /** @deprecated Pass `pageInput` from main project. */
234
+ export declare const getPromoBarConfig: () => Promise<{
235
+ text: string | null;
236
+ code: string | null;
237
+ value: string | null;
238
+ active: boolean;
239
+ }>;
240
+ //# sourceMappingURL=dynamic-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamic-config.d.ts","sourceRoot":"","sources":["../../../src/server/dynamic-config.ts"],"names":[],"mappings":"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"}