@lexsis/storefront-components 1.0.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 (633) hide show
  1. package/dist/PageRenderer.d.ts +8 -0
  2. package/dist/PageRenderer.d.ts.map +1 -0
  3. package/dist/PageRenderer.js +116 -0
  4. package/dist/PageRenderer.js.map +1 -0
  5. package/dist/SectionSkeleton.d.ts +2 -0
  6. package/dist/SectionSkeleton.d.ts.map +1 -0
  7. package/dist/SectionSkeleton.js +5 -0
  8. package/dist/SectionSkeleton.js.map +1 -0
  9. package/dist/ThemeContext.d.ts +11 -0
  10. package/dist/ThemeContext.d.ts.map +1 -0
  11. package/dist/ThemeContext.js +13 -0
  12. package/dist/ThemeContext.js.map +1 -0
  13. package/dist/ThemeProvider.d.ts +9 -0
  14. package/dist/ThemeProvider.d.ts.map +1 -0
  15. package/dist/ThemeProvider.js +227 -0
  16. package/dist/ThemeProvider.js.map +1 -0
  17. package/dist/ThemeToggle.d.ts +6 -0
  18. package/dist/ThemeToggle.d.ts.map +1 -0
  19. package/dist/ThemeToggle.js +26 -0
  20. package/dist/ThemeToggle.js.map +1 -0
  21. package/dist/animations/advanced-hooks.d.ts +36 -0
  22. package/dist/animations/advanced-hooks.d.ts.map +1 -0
  23. package/dist/animations/advanced-hooks.js +106 -0
  24. package/dist/animations/advanced-hooks.js.map +1 -0
  25. package/dist/animations/canvas-utils.d.ts +41 -0
  26. package/dist/animations/canvas-utils.d.ts.map +1 -0
  27. package/dist/animations/canvas-utils.js +115 -0
  28. package/dist/animations/canvas-utils.js.map +1 -0
  29. package/dist/animations/hooks.d.ts +48 -0
  30. package/dist/animations/hooks.d.ts.map +1 -0
  31. package/dist/animations/hooks.js +50 -0
  32. package/dist/animations/hooks.js.map +1 -0
  33. package/dist/animations/index.d.ts +4 -0
  34. package/dist/animations/index.d.ts.map +1 -0
  35. package/dist/animations/index.js +4 -0
  36. package/dist/animations/index.js.map +1 -0
  37. package/dist/animations/presets.d.ts +43 -0
  38. package/dist/animations/presets.d.ts.map +1 -0
  39. package/dist/animations/presets.js +278 -0
  40. package/dist/animations/presets.js.map +1 -0
  41. package/dist/animations/variants.d.ts +15 -0
  42. package/dist/animations/variants.d.ts.map +1 -0
  43. package/dist/animations/variants.js +90 -0
  44. package/dist/animations/variants.js.map +1 -0
  45. package/dist/backgrounds/BackgroundSection.d.ts +3 -0
  46. package/dist/backgrounds/BackgroundSection.d.ts.map +1 -0
  47. package/dist/backgrounds/BackgroundSection.js +205 -0
  48. package/dist/backgrounds/BackgroundSection.js.map +1 -0
  49. package/dist/buttons/ButtonSection.d.ts +3 -0
  50. package/dist/buttons/ButtonSection.d.ts.map +1 -0
  51. package/dist/buttons/ButtonSection.js +150 -0
  52. package/dist/buttons/ButtonSection.js.map +1 -0
  53. package/dist/cards/CardStack.d.ts +3 -0
  54. package/dist/cards/CardStack.d.ts.map +1 -0
  55. package/dist/cards/CardStack.js +140 -0
  56. package/dist/cards/CardStack.js.map +1 -0
  57. package/dist/cards/FeatureCard.d.ts +3 -0
  58. package/dist/cards/FeatureCard.d.ts.map +1 -0
  59. package/dist/cards/FeatureCard.js +100 -0
  60. package/dist/cards/FeatureCard.js.map +1 -0
  61. package/dist/cards/FeaturedCard.d.ts +3 -0
  62. package/dist/cards/FeaturedCard.d.ts.map +1 -0
  63. package/dist/cards/FeaturedCard.js +66 -0
  64. package/dist/cards/FeaturedCard.js.map +1 -0
  65. package/dist/cards/TerminalCard.d.ts +3 -0
  66. package/dist/cards/TerminalCard.d.ts.map +1 -0
  67. package/dist/cards/TerminalCard.js +73 -0
  68. package/dist/cards/TerminalCard.js.map +1 -0
  69. package/dist/cards/TestimonialCard.d.ts +3 -0
  70. package/dist/cards/TestimonialCard.d.ts.map +1 -0
  71. package/dist/cards/TestimonialCard.js +50 -0
  72. package/dist/cards/TestimonialCard.js.map +1 -0
  73. package/dist/cards/index.d.ts +2 -0
  74. package/dist/cards/index.d.ts.map +1 -0
  75. package/dist/cards/index.js +2 -0
  76. package/dist/cards/index.js.map +1 -0
  77. package/dist/cart/CartCheckoutBar.d.ts +3 -0
  78. package/dist/cart/CartCheckoutBar.d.ts.map +1 -0
  79. package/dist/cart/CartCheckoutBar.js +258 -0
  80. package/dist/cart/CartCheckoutBar.js.map +1 -0
  81. package/dist/cart/CartDiscount.d.ts +3 -0
  82. package/dist/cart/CartDiscount.d.ts.map +1 -0
  83. package/dist/cart/CartDiscount.js +78 -0
  84. package/dist/cart/CartDiscount.js.map +1 -0
  85. package/dist/cart/CartDrawer.d.ts +3 -0
  86. package/dist/cart/CartDrawer.d.ts.map +1 -0
  87. package/dist/cart/CartDrawer.js +141 -0
  88. package/dist/cart/CartDrawer.js.map +1 -0
  89. package/dist/cart/CartLines.d.ts +3 -0
  90. package/dist/cart/CartLines.d.ts.map +1 -0
  91. package/dist/cart/CartLines.js +227 -0
  92. package/dist/cart/CartLines.js.map +1 -0
  93. package/dist/cart/CartPage.d.ts +3 -0
  94. package/dist/cart/CartPage.d.ts.map +1 -0
  95. package/dist/cart/CartPage.js +128 -0
  96. package/dist/cart/CartPage.js.map +1 -0
  97. package/dist/cart/CartSummary.d.ts +3 -0
  98. package/dist/cart/CartSummary.d.ts.map +1 -0
  99. package/dist/cart/CartSummary.js +155 -0
  100. package/dist/cart/CartSummary.js.map +1 -0
  101. package/dist/cart/CartTrigger.d.ts +3 -0
  102. package/dist/cart/CartTrigger.d.ts.map +1 -0
  103. package/dist/cart/CartTrigger.js +45 -0
  104. package/dist/cart/CartTrigger.js.map +1 -0
  105. package/dist/cart/GuaranteeBanner.d.ts +3 -0
  106. package/dist/cart/GuaranteeBanner.d.ts.map +1 -0
  107. package/dist/cart/GuaranteeBanner.js +15 -0
  108. package/dist/cart/GuaranteeBanner.js.map +1 -0
  109. package/dist/cart/index.d.ts +8 -0
  110. package/dist/cart/index.d.ts.map +1 -0
  111. package/dist/cart/index.js +8 -0
  112. package/dist/cart/index.js.map +1 -0
  113. package/dist/content/BeforeAfterSlider.d.ts +3 -0
  114. package/dist/content/BeforeAfterSlider.d.ts.map +1 -0
  115. package/dist/content/BeforeAfterSlider.js +61 -0
  116. package/dist/content/BeforeAfterSlider.js.map +1 -0
  117. package/dist/content/ImageTextSplit.d.ts +3 -0
  118. package/dist/content/ImageTextSplit.d.ts.map +1 -0
  119. package/dist/content/ImageTextSplit.js +33 -0
  120. package/dist/content/ImageTextSplit.js.map +1 -0
  121. package/dist/content/LookbookGrid.d.ts +3 -0
  122. package/dist/content/LookbookGrid.d.ts.map +1 -0
  123. package/dist/content/LookbookGrid.js +183 -0
  124. package/dist/content/LookbookGrid.js.map +1 -0
  125. package/dist/content/ParallaxSection.d.ts +3 -0
  126. package/dist/content/ParallaxSection.d.ts.map +1 -0
  127. package/dist/content/ParallaxSection.js +66 -0
  128. package/dist/content/ParallaxSection.js.map +1 -0
  129. package/dist/content/RichText.d.ts +3 -0
  130. package/dist/content/RichText.d.ts.map +1 -0
  131. package/dist/content/RichText.js +21 -0
  132. package/dist/content/RichText.js.map +1 -0
  133. package/dist/content/index.d.ts +5 -0
  134. package/dist/content/index.d.ts.map +1 -0
  135. package/dist/content/index.js +5 -0
  136. package/dist/content/index.js.map +1 -0
  137. package/dist/content-types.d.ts +637 -0
  138. package/dist/content-types.d.ts.map +1 -0
  139. package/dist/content-types.js +2 -0
  140. package/dist/content-types.js.map +1 -0
  141. package/dist/context/LxCartContext.d.ts +71 -0
  142. package/dist/context/LxCartContext.d.ts.map +1 -0
  143. package/dist/context/LxCartContext.js +491 -0
  144. package/dist/context/LxCartContext.js.map +1 -0
  145. package/dist/context/LxEditorContext.d.ts +8 -0
  146. package/dist/context/LxEditorContext.d.ts.map +1 -0
  147. package/dist/context/LxEditorContext.js +10 -0
  148. package/dist/context/LxEditorContext.js.map +1 -0
  149. package/dist/context/LxPDPContext.d.ts +39 -0
  150. package/dist/context/LxPDPContext.d.ts.map +1 -0
  151. package/dist/context/LxPDPContext.js +52 -0
  152. package/dist/context/LxPDPContext.js.map +1 -0
  153. package/dist/cta/CtaFullWidth.d.ts +3 -0
  154. package/dist/cta/CtaFullWidth.d.ts.map +1 -0
  155. package/dist/cta/CtaFullWidth.js +30 -0
  156. package/dist/cta/CtaFullWidth.js.map +1 -0
  157. package/dist/cta/CtaStickyBottom.d.ts +3 -0
  158. package/dist/cta/CtaStickyBottom.d.ts.map +1 -0
  159. package/dist/cta/CtaStickyBottom.js +43 -0
  160. package/dist/cta/CtaStickyBottom.js.map +1 -0
  161. package/dist/cta/GuaranteeCta.d.ts +3 -0
  162. package/dist/cta/GuaranteeCta.d.ts.map +1 -0
  163. package/dist/cta/GuaranteeCta.js +27 -0
  164. package/dist/cta/GuaranteeCta.js.map +1 -0
  165. package/dist/cta/NewsletterSignup.d.ts +3 -0
  166. package/dist/cta/NewsletterSignup.d.ts.map +1 -0
  167. package/dist/cta/NewsletterSignup.js +35 -0
  168. package/dist/cta/NewsletterSignup.js.map +1 -0
  169. package/dist/cta/Popup.d.ts +3 -0
  170. package/dist/cta/Popup.d.ts.map +1 -0
  171. package/dist/cta/Popup.js +208 -0
  172. package/dist/cta/Popup.js.map +1 -0
  173. package/dist/cta/UrgencyCta.d.ts +3 -0
  174. package/dist/cta/UrgencyCta.d.ts.map +1 -0
  175. package/dist/cta/UrgencyCta.js +85 -0
  176. package/dist/cta/UrgencyCta.js.map +1 -0
  177. package/dist/cta/WaitlistCta.d.ts +3 -0
  178. package/dist/cta/WaitlistCta.d.ts.map +1 -0
  179. package/dist/cta/WaitlistCta.js +62 -0
  180. package/dist/cta/WaitlistCta.js.map +1 -0
  181. package/dist/cta/index.d.ts +3 -0
  182. package/dist/cta/index.d.ts.map +1 -0
  183. package/dist/cta/index.js +3 -0
  184. package/dist/cta/index.js.map +1 -0
  185. package/dist/effects/AnimatedBackground.d.ts +22 -0
  186. package/dist/effects/AnimatedBackground.d.ts.map +1 -0
  187. package/dist/effects/AnimatedBackground.js +313 -0
  188. package/dist/effects/AnimatedBackground.js.map +1 -0
  189. package/dist/effects/CanvasReveal.d.ts +5 -0
  190. package/dist/effects/CanvasReveal.d.ts.map +1 -0
  191. package/dist/effects/CanvasReveal.js +104 -0
  192. package/dist/effects/CanvasReveal.js.map +1 -0
  193. package/dist/effects/DecorativeOverlay.d.ts +10 -0
  194. package/dist/effects/DecorativeOverlay.d.ts.map +1 -0
  195. package/dist/effects/DecorativeOverlay.js +76 -0
  196. package/dist/effects/DecorativeOverlay.js.map +1 -0
  197. package/dist/effects/ScrollLinked.d.ts +3 -0
  198. package/dist/effects/ScrollLinked.d.ts.map +1 -0
  199. package/dist/effects/ScrollLinked.js +57 -0
  200. package/dist/effects/ScrollLinked.js.map +1 -0
  201. package/dist/effects/svg-library.d.ts +3 -0
  202. package/dist/effects/svg-library.d.ts.map +1 -0
  203. package/dist/effects/svg-library.js +105 -0
  204. package/dist/effects/svg-library.js.map +1 -0
  205. package/dist/faq/FaqAccordion.d.ts +3 -0
  206. package/dist/faq/FaqAccordion.d.ts.map +1 -0
  207. package/dist/faq/FaqAccordion.js +39 -0
  208. package/dist/faq/FaqAccordion.js.map +1 -0
  209. package/dist/faq/FaqTwoColumn.d.ts +3 -0
  210. package/dist/faq/FaqTwoColumn.d.ts.map +1 -0
  211. package/dist/faq/FaqTwoColumn.js +38 -0
  212. package/dist/faq/FaqTwoColumn.js.map +1 -0
  213. package/dist/faq/index.d.ts +3 -0
  214. package/dist/faq/index.d.ts.map +1 -0
  215. package/dist/faq/index.js +3 -0
  216. package/dist/faq/index.js.map +1 -0
  217. package/dist/features/BentoGrid.d.ts +3 -0
  218. package/dist/features/BentoGrid.d.ts.map +1 -0
  219. package/dist/features/BentoGrid.js +62 -0
  220. package/dist/features/BentoGrid.js.map +1 -0
  221. package/dist/features/FeatureGrid.d.ts +3 -0
  222. package/dist/features/FeatureGrid.d.ts.map +1 -0
  223. package/dist/features/FeatureGrid.js +89 -0
  224. package/dist/features/FeatureGrid.js.map +1 -0
  225. package/dist/features/FeatureTabs.d.ts +3 -0
  226. package/dist/features/FeatureTabs.d.ts.map +1 -0
  227. package/dist/features/FeatureTabs.js +64 -0
  228. package/dist/features/FeatureTabs.js.map +1 -0
  229. package/dist/features/ProcessSteps.d.ts +3 -0
  230. package/dist/features/ProcessSteps.d.ts.map +1 -0
  231. package/dist/features/ProcessSteps.js +74 -0
  232. package/dist/features/ProcessSteps.js.map +1 -0
  233. package/dist/heroes/HeroActivity.d.ts +3 -0
  234. package/dist/heroes/HeroActivity.d.ts.map +1 -0
  235. package/dist/heroes/HeroActivity.js +54 -0
  236. package/dist/heroes/HeroActivity.js.map +1 -0
  237. package/dist/heroes/HeroAnimated.d.ts +3 -0
  238. package/dist/heroes/HeroAnimated.d.ts.map +1 -0
  239. package/dist/heroes/HeroAnimated.js +101 -0
  240. package/dist/heroes/HeroAnimated.js.map +1 -0
  241. package/dist/heroes/HeroAurora.d.ts +3 -0
  242. package/dist/heroes/HeroAurora.d.ts.map +1 -0
  243. package/dist/heroes/HeroAurora.js +53 -0
  244. package/dist/heroes/HeroAurora.js.map +1 -0
  245. package/dist/heroes/HeroCarousel.d.ts +3 -0
  246. package/dist/heroes/HeroCarousel.d.ts.map +1 -0
  247. package/dist/heroes/HeroCarousel.js +187 -0
  248. package/dist/heroes/HeroCarousel.js.map +1 -0
  249. package/dist/heroes/HeroCentered.d.ts +3 -0
  250. package/dist/heroes/HeroCentered.d.ts.map +1 -0
  251. package/dist/heroes/HeroCentered.js +62 -0
  252. package/dist/heroes/HeroCentered.js.map +1 -0
  253. package/dist/heroes/HeroCinematicFullbleed.d.ts +3 -0
  254. package/dist/heroes/HeroCinematicFullbleed.d.ts.map +1 -0
  255. package/dist/heroes/HeroCinematicFullbleed.js +44 -0
  256. package/dist/heroes/HeroCinematicFullbleed.js.map +1 -0
  257. package/dist/heroes/HeroCountdown.d.ts +3 -0
  258. package/dist/heroes/HeroCountdown.d.ts.map +1 -0
  259. package/dist/heroes/HeroCountdown.js +64 -0
  260. package/dist/heroes/HeroCountdown.js.map +1 -0
  261. package/dist/heroes/HeroDarkSplitSticker.d.ts +3 -0
  262. package/dist/heroes/HeroDarkSplitSticker.d.ts.map +1 -0
  263. package/dist/heroes/HeroDarkSplitSticker.js +39 -0
  264. package/dist/heroes/HeroDarkSplitSticker.js.map +1 -0
  265. package/dist/heroes/HeroEditorial.d.ts +3 -0
  266. package/dist/heroes/HeroEditorial.d.ts.map +1 -0
  267. package/dist/heroes/HeroEditorial.js +30 -0
  268. package/dist/heroes/HeroEditorial.js.map +1 -0
  269. package/dist/heroes/HeroEditorialMinimal.d.ts +3 -0
  270. package/dist/heroes/HeroEditorialMinimal.d.ts.map +1 -0
  271. package/dist/heroes/HeroEditorialMinimal.js +47 -0
  272. package/dist/heroes/HeroEditorialMinimal.js.map +1 -0
  273. package/dist/heroes/HeroFullBleed.d.ts +3 -0
  274. package/dist/heroes/HeroFullBleed.d.ts.map +1 -0
  275. package/dist/heroes/HeroFullBleed.js +136 -0
  276. package/dist/heroes/HeroFullBleed.js.map +1 -0
  277. package/dist/heroes/HeroMini.d.ts +3 -0
  278. package/dist/heroes/HeroMini.d.ts.map +1 -0
  279. package/dist/heroes/HeroMini.js +25 -0
  280. package/dist/heroes/HeroMini.js.map +1 -0
  281. package/dist/heroes/HeroParallax.d.ts +3 -0
  282. package/dist/heroes/HeroParallax.d.ts.map +1 -0
  283. package/dist/heroes/HeroParallax.js +71 -0
  284. package/dist/heroes/HeroParallax.js.map +1 -0
  285. package/dist/heroes/HeroRetroCentered.d.ts +3 -0
  286. package/dist/heroes/HeroRetroCentered.d.ts.map +1 -0
  287. package/dist/heroes/HeroRetroCentered.js +49 -0
  288. package/dist/heroes/HeroRetroCentered.js.map +1 -0
  289. package/dist/heroes/HeroSplit.d.ts +3 -0
  290. package/dist/heroes/HeroSplit.d.ts.map +1 -0
  291. package/dist/heroes/HeroSplit.js +81 -0
  292. package/dist/heroes/HeroSplit.js.map +1 -0
  293. package/dist/heroes/HeroSpotlight.d.ts +3 -0
  294. package/dist/heroes/HeroSpotlight.d.ts.map +1 -0
  295. package/dist/heroes/HeroSpotlight.js +60 -0
  296. package/dist/heroes/HeroSpotlight.js.map +1 -0
  297. package/dist/heroes/HeroTrustSplit.d.ts +3 -0
  298. package/dist/heroes/HeroTrustSplit.d.ts.map +1 -0
  299. package/dist/heroes/HeroTrustSplit.js +53 -0
  300. package/dist/heroes/HeroTrustSplit.js.map +1 -0
  301. package/dist/heroes/HeroTypewriter.d.ts +3 -0
  302. package/dist/heroes/HeroTypewriter.d.ts.map +1 -0
  303. package/dist/heroes/HeroTypewriter.js +80 -0
  304. package/dist/heroes/HeroTypewriter.js.map +1 -0
  305. package/dist/heroes/index.d.ts +12 -0
  306. package/dist/heroes/index.d.ts.map +1 -0
  307. package/dist/heroes/index.js +12 -0
  308. package/dist/heroes/index.js.map +1 -0
  309. package/dist/index.d.ts +37 -0
  310. package/dist/index.d.ts.map +1 -0
  311. package/dist/index.js +49 -0
  312. package/dist/index.js.map +1 -0
  313. package/dist/layout/Footer.d.ts +3 -0
  314. package/dist/layout/Footer.d.ts.map +1 -0
  315. package/dist/layout/Footer.js +75 -0
  316. package/dist/layout/Footer.js.map +1 -0
  317. package/dist/layout/Navbar.d.ts +3 -0
  318. package/dist/layout/Navbar.d.ts.map +1 -0
  319. package/dist/layout/Navbar.js +81 -0
  320. package/dist/layout/Navbar.js.map +1 -0
  321. package/dist/layout/PromoTopBar.d.ts +3 -0
  322. package/dist/layout/PromoTopBar.d.ts.map +1 -0
  323. package/dist/layout/PromoTopBar.js +201 -0
  324. package/dist/layout/PromoTopBar.js.map +1 -0
  325. package/dist/layout/SectionDivider.d.ts +3 -0
  326. package/dist/layout/SectionDivider.d.ts.map +1 -0
  327. package/dist/layout/SectionDivider.js +13 -0
  328. package/dist/layout/SectionDivider.js.map +1 -0
  329. package/dist/layout/SectionTransition.d.ts +3 -0
  330. package/dist/layout/SectionTransition.d.ts.map +1 -0
  331. package/dist/layout/SectionTransition.js +60 -0
  332. package/dist/layout/SectionTransition.js.map +1 -0
  333. package/dist/layout/Ticker.d.ts +3 -0
  334. package/dist/layout/Ticker.d.ts.map +1 -0
  335. package/dist/layout/Ticker.js +32 -0
  336. package/dist/layout/Ticker.js.map +1 -0
  337. package/dist/layout/index.d.ts +6 -0
  338. package/dist/layout/index.d.ts.map +1 -0
  339. package/dist/layout/index.js +6 -0
  340. package/dist/layout/index.js.map +1 -0
  341. package/dist/personalization/CartRecovery.d.ts +3 -0
  342. package/dist/personalization/CartRecovery.d.ts.map +1 -0
  343. package/dist/personalization/CartRecovery.js +224 -0
  344. package/dist/personalization/CartRecovery.js.map +1 -0
  345. package/dist/personalization/CohortTrustStack.d.ts +3 -0
  346. package/dist/personalization/CohortTrustStack.d.ts.map +1 -0
  347. package/dist/personalization/CohortTrustStack.js +101 -0
  348. package/dist/personalization/CohortTrustStack.js.map +1 -0
  349. package/dist/personalization/LiveActivityTicker.d.ts +3 -0
  350. package/dist/personalization/LiveActivityTicker.d.ts.map +1 -0
  351. package/dist/personalization/LiveActivityTicker.js +137 -0
  352. package/dist/personalization/LiveActivityTicker.js.map +1 -0
  353. package/dist/personalization/LoyaltyStatus.d.ts +3 -0
  354. package/dist/personalization/LoyaltyStatus.d.ts.map +1 -0
  355. package/dist/personalization/LoyaltyStatus.js +185 -0
  356. package/dist/personalization/LoyaltyStatus.js.map +1 -0
  357. package/dist/personalization/PersonalizedGreeting.d.ts +3 -0
  358. package/dist/personalization/PersonalizedGreeting.d.ts.map +1 -0
  359. package/dist/personalization/PersonalizedGreeting.js +176 -0
  360. package/dist/personalization/PersonalizedGreeting.js.map +1 -0
  361. package/dist/personalization/PersonalizedRecommendations.d.ts +3 -0
  362. package/dist/personalization/PersonalizedRecommendations.d.ts.map +1 -0
  363. package/dist/personalization/PersonalizedRecommendations.js +156 -0
  364. package/dist/personalization/PersonalizedRecommendations.js.map +1 -0
  365. package/dist/personalization/ProgressMilestone.d.ts +3 -0
  366. package/dist/personalization/ProgressMilestone.d.ts.map +1 -0
  367. package/dist/personalization/ProgressMilestone.js +127 -0
  368. package/dist/personalization/ProgressMilestone.js.map +1 -0
  369. package/dist/personalization/ReengagementBanner.d.ts +3 -0
  370. package/dist/personalization/ReengagementBanner.d.ts.map +1 -0
  371. package/dist/personalization/ReengagementBanner.js +185 -0
  372. package/dist/personalization/ReengagementBanner.js.map +1 -0
  373. package/dist/personalization/ScarcityIndicator.d.ts +3 -0
  374. package/dist/personalization/ScarcityIndicator.d.ts.map +1 -0
  375. package/dist/personalization/ScarcityIndicator.js +264 -0
  376. package/dist/personalization/ScarcityIndicator.js.map +1 -0
  377. package/dist/personalization/VipGate.d.ts +3 -0
  378. package/dist/personalization/VipGate.d.ts.map +1 -0
  379. package/dist/personalization/VipGate.js +309 -0
  380. package/dist/personalization/VipGate.js.map +1 -0
  381. package/dist/placeholder/UnknownComponent.d.ts +6 -0
  382. package/dist/placeholder/UnknownComponent.d.ts.map +1 -0
  383. package/dist/placeholder/UnknownComponent.js +5 -0
  384. package/dist/placeholder/UnknownComponent.js.map +1 -0
  385. package/dist/pricing/PricingCards.d.ts +3 -0
  386. package/dist/pricing/PricingCards.d.ts.map +1 -0
  387. package/dist/pricing/PricingCards.js +143 -0
  388. package/dist/pricing/PricingCards.js.map +1 -0
  389. package/dist/primitives/AspectBox.d.ts +12 -0
  390. package/dist/primitives/AspectBox.d.ts.map +1 -0
  391. package/dist/primitives/AspectBox.js +15 -0
  392. package/dist/primitives/AspectBox.js.map +1 -0
  393. package/dist/primitives/CursorSpotlight.d.ts +11 -0
  394. package/dist/primitives/CursorSpotlight.d.ts.map +1 -0
  395. package/dist/primitives/CursorSpotlight.js +21 -0
  396. package/dist/primitives/CursorSpotlight.js.map +1 -0
  397. package/dist/primitives/HeadlineEffect.d.ts +16 -0
  398. package/dist/primitives/HeadlineEffect.d.ts.map +1 -0
  399. package/dist/primitives/HeadlineEffect.js +187 -0
  400. package/dist/primitives/HeadlineEffect.js.map +1 -0
  401. package/dist/primitives/Marquee.d.ts +11 -0
  402. package/dist/primitives/Marquee.d.ts.map +1 -0
  403. package/dist/primitives/Marquee.js +22 -0
  404. package/dist/primitives/Marquee.js.map +1 -0
  405. package/dist/primitives/MediaFlip.d.ts +16 -0
  406. package/dist/primitives/MediaFlip.d.ts.map +1 -0
  407. package/dist/primitives/MediaFlip.js +118 -0
  408. package/dist/primitives/MediaFlip.js.map +1 -0
  409. package/dist/primitives/MediaLoop.d.ts +15 -0
  410. package/dist/primitives/MediaLoop.d.ts.map +1 -0
  411. package/dist/primitives/MediaLoop.js +31 -0
  412. package/dist/primitives/MediaLoop.js.map +1 -0
  413. package/dist/primitives/PDPGallery.d.ts +24 -0
  414. package/dist/primitives/PDPGallery.d.ts.map +1 -0
  415. package/dist/primitives/PDPGallery.js +128 -0
  416. package/dist/primitives/PDPGallery.js.map +1 -0
  417. package/dist/primitives/TiltCard.d.ts +12 -0
  418. package/dist/primitives/TiltCard.d.ts.map +1 -0
  419. package/dist/primitives/TiltCard.js +41 -0
  420. package/dist/primitives/TiltCard.js.map +1 -0
  421. package/dist/product/BundleBuilder.d.ts +3 -0
  422. package/dist/product/BundleBuilder.d.ts.map +1 -0
  423. package/dist/product/BundleBuilder.js +34 -0
  424. package/dist/product/BundleBuilder.js.map +1 -0
  425. package/dist/product/BuyBox.d.ts +3 -0
  426. package/dist/product/BuyBox.d.ts.map +1 -0
  427. package/dist/product/BuyBox.js +398 -0
  428. package/dist/product/BuyBox.js.map +1 -0
  429. package/dist/product/ComparisonTable.d.ts +3 -0
  430. package/dist/product/ComparisonTable.d.ts.map +1 -0
  431. package/dist/product/ComparisonTable.js +59 -0
  432. package/dist/product/ComparisonTable.js.map +1 -0
  433. package/dist/product/FormatGrid.d.ts +3 -0
  434. package/dist/product/FormatGrid.d.ts.map +1 -0
  435. package/dist/product/FormatGrid.js +28 -0
  436. package/dist/product/FormatGrid.js.map +1 -0
  437. package/dist/product/PDPVariants.d.ts +3 -0
  438. package/dist/product/PDPVariants.d.ts.map +1 -0
  439. package/dist/product/PDPVariants.js +284 -0
  440. package/dist/product/PDPVariants.js.map +1 -0
  441. package/dist/product/PillNav.d.ts +3 -0
  442. package/dist/product/PillNav.d.ts.map +1 -0
  443. package/dist/product/PillNav.js +35 -0
  444. package/dist/product/PillNav.js.map +1 -0
  445. package/dist/product/ProductAccordion.d.ts +3 -0
  446. package/dist/product/ProductAccordion.d.ts.map +1 -0
  447. package/dist/product/ProductAccordion.js +46 -0
  448. package/dist/product/ProductAccordion.js.map +1 -0
  449. package/dist/product/ProductCard.d.ts +62 -0
  450. package/dist/product/ProductCard.d.ts.map +1 -0
  451. package/dist/product/ProductCard.js +442 -0
  452. package/dist/product/ProductCard.js.map +1 -0
  453. package/dist/product/ProductCarousel.d.ts +3 -0
  454. package/dist/product/ProductCarousel.d.ts.map +1 -0
  455. package/dist/product/ProductCarousel.js +123 -0
  456. package/dist/product/ProductCarousel.js.map +1 -0
  457. package/dist/product/ProductCenteredStack.d.ts +3 -0
  458. package/dist/product/ProductCenteredStack.d.ts.map +1 -0
  459. package/dist/product/ProductCenteredStack.js +28 -0
  460. package/dist/product/ProductCenteredStack.js.map +1 -0
  461. package/dist/product/ProductGallery.d.ts +3 -0
  462. package/dist/product/ProductGallery.d.ts.map +1 -0
  463. package/dist/product/ProductGallery.js +80 -0
  464. package/dist/product/ProductGallery.js.map +1 -0
  465. package/dist/product/ProductGrid.d.ts +3 -0
  466. package/dist/product/ProductGrid.d.ts.map +1 -0
  467. package/dist/product/ProductGrid.js +58 -0
  468. package/dist/product/ProductGrid.js.map +1 -0
  469. package/dist/product/ProductHighlightLeft.d.ts +3 -0
  470. package/dist/product/ProductHighlightLeft.d.ts.map +1 -0
  471. package/dist/product/ProductHighlightLeft.js +37 -0
  472. package/dist/product/ProductHighlightLeft.js.map +1 -0
  473. package/dist/product/ProductHighlightRight.d.ts +3 -0
  474. package/dist/product/ProductHighlightRight.d.ts.map +1 -0
  475. package/dist/product/ProductHighlightRight.js +23 -0
  476. package/dist/product/ProductHighlightRight.js.map +1 -0
  477. package/dist/product/ProductPage.d.ts +3 -0
  478. package/dist/product/ProductPage.d.ts.map +1 -0
  479. package/dist/product/ProductPage.js +105 -0
  480. package/dist/product/ProductPage.js.map +1 -0
  481. package/dist/product/SubscriptionToggle.d.ts +3 -0
  482. package/dist/product/SubscriptionToggle.d.ts.map +1 -0
  483. package/dist/product/SubscriptionToggle.js +38 -0
  484. package/dist/product/SubscriptionToggle.js.map +1 -0
  485. package/dist/product/Upsell.d.ts +3 -0
  486. package/dist/product/Upsell.d.ts.map +1 -0
  487. package/dist/product/Upsell.js +59 -0
  488. package/dist/product/Upsell.js.map +1 -0
  489. package/dist/product/VideoCarousel.d.ts +3 -0
  490. package/dist/product/VideoCarousel.d.ts.map +1 -0
  491. package/dist/product/VideoCarousel.js +188 -0
  492. package/dist/product/VideoCarousel.js.map +1 -0
  493. package/dist/product/index.d.ts +8 -0
  494. package/dist/product/index.d.ts.map +1 -0
  495. package/dist/product/index.js +8 -0
  496. package/dist/product/index.js.map +1 -0
  497. package/dist/registry-field-schemas.d.ts +66 -0
  498. package/dist/registry-field-schemas.d.ts.map +1 -0
  499. package/dist/registry-field-schemas.js +745 -0
  500. package/dist/registry-field-schemas.js.map +1 -0
  501. package/dist/registry-metadata.d.ts +10 -0
  502. package/dist/registry-metadata.d.ts.map +1 -0
  503. package/dist/registry-metadata.js +2 -0
  504. package/dist/registry-metadata.js.map +1 -0
  505. package/dist/registry.d.ts +20 -0
  506. package/dist/registry.d.ts.map +1 -0
  507. package/dist/registry.js +2317 -0
  508. package/dist/registry.js.map +1 -0
  509. package/dist/renderText.d.ts +6 -0
  510. package/dist/renderText.d.ts.map +1 -0
  511. package/dist/renderText.js +23 -0
  512. package/dist/renderText.js.map +1 -0
  513. package/dist/reviews/ReviewCarousel.d.ts +3 -0
  514. package/dist/reviews/ReviewCarousel.d.ts.map +1 -0
  515. package/dist/reviews/ReviewCarousel.js +24 -0
  516. package/dist/reviews/ReviewCarousel.js.map +1 -0
  517. package/dist/reviews/ReviewMasonry.d.ts +3 -0
  518. package/dist/reviews/ReviewMasonry.d.ts.map +1 -0
  519. package/dist/reviews/ReviewMasonry.js +25 -0
  520. package/dist/reviews/ReviewMasonry.js.map +1 -0
  521. package/dist/reviews/ReviewSpotlight.d.ts +3 -0
  522. package/dist/reviews/ReviewSpotlight.d.ts.map +1 -0
  523. package/dist/reviews/ReviewSpotlight.js +13 -0
  524. package/dist/reviews/ReviewSpotlight.js.map +1 -0
  525. package/dist/reviews/VideoTestimonials.d.ts +3 -0
  526. package/dist/reviews/VideoTestimonials.d.ts.map +1 -0
  527. package/dist/reviews/VideoTestimonials.js +35 -0
  528. package/dist/reviews/VideoTestimonials.js.map +1 -0
  529. package/dist/reviews/index.d.ts +4 -0
  530. package/dist/reviews/index.d.ts.map +1 -0
  531. package/dist/reviews/index.js +4 -0
  532. package/dist/reviews/index.js.map +1 -0
  533. package/dist/schemas/content.d.ts +125 -0
  534. package/dist/schemas/content.d.ts.map +1 -0
  535. package/dist/schemas/content.js +2 -0
  536. package/dist/schemas/content.js.map +1 -0
  537. package/dist/schemas/index.d.ts +3 -0
  538. package/dist/schemas/index.d.ts.map +1 -0
  539. package/dist/schemas/index.js +2 -0
  540. package/dist/schemas/index.js.map +1 -0
  541. package/dist/schemas/settings.d.ts +23 -0
  542. package/dist/schemas/settings.d.ts.map +1 -0
  543. package/dist/schemas/settings.js +321 -0
  544. package/dist/schemas/settings.js.map +1 -0
  545. package/dist/social-proof/AvatarGroup.d.ts +3 -0
  546. package/dist/social-proof/AvatarGroup.d.ts.map +1 -0
  547. package/dist/social-proof/AvatarGroup.js +58 -0
  548. package/dist/social-proof/AvatarGroup.js.map +1 -0
  549. package/dist/social-proof/LogoCarousel.d.ts +3 -0
  550. package/dist/social-proof/LogoCarousel.d.ts.map +1 -0
  551. package/dist/social-proof/LogoCarousel.js +49 -0
  552. package/dist/social-proof/LogoCarousel.js.map +1 -0
  553. package/dist/social-proof/LogoStrip.d.ts +3 -0
  554. package/dist/social-proof/LogoStrip.d.ts.map +1 -0
  555. package/dist/social-proof/LogoStrip.js +35 -0
  556. package/dist/social-proof/LogoStrip.js.map +1 -0
  557. package/dist/social-proof/PressMentions.d.ts +3 -0
  558. package/dist/social-proof/PressMentions.d.ts.map +1 -0
  559. package/dist/social-proof/PressMentions.js +40 -0
  560. package/dist/social-proof/PressMentions.js.map +1 -0
  561. package/dist/social-proof/StatsGrid.d.ts +3 -0
  562. package/dist/social-proof/StatsGrid.d.ts.map +1 -0
  563. package/dist/social-proof/StatsGrid.js +39 -0
  564. package/dist/social-proof/StatsGrid.js.map +1 -0
  565. package/dist/social-proof/TrustBadges.d.ts +3 -0
  566. package/dist/social-proof/TrustBadges.d.ts.map +1 -0
  567. package/dist/social-proof/TrustBadges.js +18 -0
  568. package/dist/social-proof/TrustBadges.js.map +1 -0
  569. package/dist/social-proof/index.d.ts +4 -0
  570. package/dist/social-proof/index.d.ts.map +1 -0
  571. package/dist/social-proof/index.js +4 -0
  572. package/dist/social-proof/index.js.map +1 -0
  573. package/dist/text-effects/TextEffect.d.ts +3 -0
  574. package/dist/text-effects/TextEffect.d.ts.map +1 -0
  575. package/dist/text-effects/TextEffect.js +277 -0
  576. package/dist/text-effects/TextEffect.js.map +1 -0
  577. package/dist/theme/resolve.d.ts +12 -0
  578. package/dist/theme/resolve.d.ts.map +1 -0
  579. package/dist/theme/resolve.js +26 -0
  580. package/dist/theme/resolve.js.map +1 -0
  581. package/dist/theme/tokens.d.ts +147 -0
  582. package/dist/theme/tokens.d.ts.map +1 -0
  583. package/dist/theme/tokens.js +113 -0
  584. package/dist/theme/tokens.js.map +1 -0
  585. package/dist/types.d.ts +154 -0
  586. package/dist/types.d.ts.map +1 -0
  587. package/dist/types.js +2 -0
  588. package/dist/types.js.map +1 -0
  589. package/dist/utils/elementStyles.d.ts +4 -0
  590. package/dist/utils/elementStyles.d.ts.map +1 -0
  591. package/dist/utils/elementStyles.js +6 -0
  592. package/dist/utils/elementStyles.js.map +1 -0
  593. package/dist/utils/icon-map.d.ts +128 -0
  594. package/dist/utils/icon-map.d.ts.map +1 -0
  595. package/dist/utils/icon-map.js +199 -0
  596. package/dist/utils/icon-map.js.map +1 -0
  597. package/dist/utils/imageStyle.d.ts +4 -0
  598. package/dist/utils/imageStyle.d.ts.map +1 -0
  599. package/dist/utils/imageStyle.js +23 -0
  600. package/dist/utils/imageStyle.js.map +1 -0
  601. package/dist/utils/renderIcon.d.ts +32 -0
  602. package/dist/utils/renderIcon.d.ts.map +1 -0
  603. package/dist/utils/renderIcon.js +188 -0
  604. package/dist/utils/renderIcon.js.map +1 -0
  605. package/dist/utils/schemaUtils.d.ts +9 -0
  606. package/dist/utils/schemaUtils.d.ts.map +1 -0
  607. package/dist/utils/schemaUtils.js +10 -0
  608. package/dist/utils/schemaUtils.js.map +1 -0
  609. package/dist/value-props/HowItWorks.d.ts +3 -0
  610. package/dist/value-props/HowItWorks.d.ts.map +1 -0
  611. package/dist/value-props/HowItWorks.js +23 -0
  612. package/dist/value-props/HowItWorks.js.map +1 -0
  613. package/dist/value-props/NumberedList.d.ts +3 -0
  614. package/dist/value-props/NumberedList.d.ts.map +1 -0
  615. package/dist/value-props/NumberedList.js +22 -0
  616. package/dist/value-props/NumberedList.js.map +1 -0
  617. package/dist/value-props/ValuePropsAlternating.d.ts +3 -0
  618. package/dist/value-props/ValuePropsAlternating.d.ts.map +1 -0
  619. package/dist/value-props/ValuePropsAlternating.js +22 -0
  620. package/dist/value-props/ValuePropsAlternating.js.map +1 -0
  621. package/dist/value-props/ValuePropsGrid.d.ts +3 -0
  622. package/dist/value-props/ValuePropsGrid.d.ts.map +1 -0
  623. package/dist/value-props/ValuePropsGrid.js +23 -0
  624. package/dist/value-props/ValuePropsGrid.js.map +1 -0
  625. package/dist/value-props/ValuePropsIconStrip.d.ts +3 -0
  626. package/dist/value-props/ValuePropsIconStrip.d.ts.map +1 -0
  627. package/dist/value-props/ValuePropsIconStrip.js +11 -0
  628. package/dist/value-props/ValuePropsIconStrip.js.map +1 -0
  629. package/dist/value-props/index.d.ts +6 -0
  630. package/dist/value-props/index.d.ts.map +1 -0
  631. package/dist/value-props/index.js +6 -0
  632. package/dist/value-props/index.js.map +1 -0
  633. package/package.json +46 -0
@@ -0,0 +1,71 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { renderText } from "../renderText";
4
+ import { HeadlineEffect } from "../primitives/HeadlineEffect";
5
+ export default function HeroParallax({ content, variant, theme, settings }) {
6
+ const headline = renderText(content.headline);
7
+ const subhead = content.subhead ? renderText(content.subhead) : undefined;
8
+ const eyebrow = content.eyebrow ? renderText(content.eyebrow) : undefined;
9
+ const ctaText = content.cta_text ? renderText(content.cta_text) : "Shop Now";
10
+ const ctaUrl = content.cta_url ? renderText(content.cta_url) : "#";
11
+ const bgMediaUrl = content.bg_media_url ? renderText(content.bg_media_url) : undefined;
12
+ const mediaUrl = content.media_url ? renderText(content.media_url) : undefined;
13
+ const imgUrl = bgMediaUrl || mediaUrl;
14
+ const sectionRef = useRef(null);
15
+ const imgRef = useRef(null);
16
+ const [tilt, setTilt] = useState({ x: 0, y: 0 });
17
+ useEffect(() => {
18
+ if (variant === "tilt_3d")
19
+ return;
20
+ const onScroll = () => {
21
+ if (!sectionRef.current || !imgRef.current)
22
+ return;
23
+ const rect = sectionRef.current.getBoundingClientRect();
24
+ const scrolled = -rect.top;
25
+ const speed = variant === "zoom_on_scroll" ? 0 : 0.35;
26
+ if (variant === "zoom_on_scroll") {
27
+ const progress = Math.max(0, Math.min(1, scrolled / rect.height));
28
+ const scale = 1 + progress * 0.25;
29
+ imgRef.current.style.transform = `scale(${scale})`;
30
+ }
31
+ else if (variant === "layered") {
32
+ imgRef.current.style.transform = `translateY(${scrolled * 0.2}px)`;
33
+ }
34
+ else {
35
+ imgRef.current.style.transform = `translateY(${scrolled * speed}px)`;
36
+ }
37
+ };
38
+ window.addEventListener("scroll", onScroll, { passive: true });
39
+ return () => window.removeEventListener("scroll", onScroll);
40
+ }, [variant]);
41
+ const handleMouseMove = (e) => {
42
+ if (variant !== "tilt_3d")
43
+ return;
44
+ const rect = e.currentTarget.getBoundingClientRect();
45
+ const cx = rect.left + rect.width / 2;
46
+ const cy = rect.top + rect.height / 2;
47
+ const x = ((e.clientX - cx) / (rect.width / 2)) * 8;
48
+ const y = ((e.clientY - cy) / (rect.height / 2)) * -8;
49
+ setTilt({ x, y });
50
+ };
51
+ const handleMouseLeave = () => {
52
+ if (variant === "tilt_3d")
53
+ setTilt({ x: 0, y: 0 });
54
+ };
55
+ const isLayered = variant === "layered";
56
+ const minH = settings?.min_height ?? "600px";
57
+ return (_jsxs("section", { ref: sectionRef, className: "relative w-full flex items-center justify-center overflow-hidden", style: { backgroundColor: theme.palette.bg, minHeight: minH }, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, children: [imgUrl && (_jsx("div", { ref: imgRef, className: "absolute inset-0 bg-cover bg-center will-change-transform", style: {
58
+ backgroundImage: `url(${imgUrl})`,
59
+ transform: isLayered ? "scale(1.15)" : "scale(1.1)",
60
+ transition: variant === "tilt_3d" ? "transform 0.1s ease-out" : undefined,
61
+ } })), isLayered && imgUrl && (_jsx("div", { className: "absolute inset-0 bg-cover bg-center opacity-30 pointer-events-none", style: {
62
+ backgroundImage: `url(${imgUrl})`,
63
+ filter: "blur(12px)",
64
+ } })), _jsx("div", { className: "absolute inset-0", style: { background: "linear-gradient(to bottom, var(--lx-overlay-light) 0%, var(--lx-overlay-heavy) 100%)" } }), _jsxs("div", { className: "relative z-10 max-w-3xl mx-auto text-center px-5 py-20", style: {
65
+ transform: variant === "tilt_3d"
66
+ ? `perspective(800px) rotateX(${tilt.y}deg) rotateY(${tilt.x}deg)`
67
+ : undefined,
68
+ transition: variant === "tilt_3d" ? "transform 0.1s ease-out" : undefined,
69
+ }, children: [eyebrow && (_jsx("p", { className: "text-xs font-bold uppercase tracking-[0.2em] mb-4 text-white/70", children: eyebrow })), _jsx("h1", { className: "text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-tight mb-6 text-white", style: { fontFamily: `${theme.fonts.display}, serif` }, children: _jsx(HeadlineEffect, { text: headline, effect: content.headline_effect, accent: theme.palette.accent, textColor: "#ffffff", highlightWords: content.headline_highlight_words || [], prefix: content.headline_prefix, words: content.headline_rotating_words || [] }) }), subhead && (_jsx("p", { className: "text-lg mb-10 opacity-80 text-white max-w-xl mx-auto", children: subhead })), _jsx("a", { href: ctaUrl, className: "inline-flex items-center px-8 py-4 font-semibold text-white hover:-translate-y-0.5 transition-transform rounded-full", style: { backgroundColor: theme.palette.accent }, children: ctaText }), content.cta_secondary_text && (_jsx("div", { className: "mt-4", children: _jsxs("a", { href: renderText(content.cta_secondary_url) || "#", className: "inline-flex items-center gap-2 text-sm font-medium text-white/60 hover:text-white/80 transition-colors", children: [_jsx("span", { children: "\u25B6" }), renderText(content.cta_secondary_text)] }) })), content.social_proof_text && (_jsx("p", { className: "text-sm mt-4 text-white/50", children: renderText(content.social_proof_text) })), Array.isArray(content.trust_items) && content.trust_items.length > 0 && (_jsx("div", { className: "flex flex-wrap justify-center gap-x-5 gap-y-1.5 mt-5", children: content.trust_items.map((item, idx) => (_jsxs("span", { className: "flex items-center gap-1.5 text-xs font-medium text-white/45", children: [_jsx("span", { children: item.icon }), item.text] }, idx))) }))] })] }));
70
+ }
71
+ //# sourceMappingURL=HeroParallax.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroParallax.js","sourceRoot":"","sources":["../../src/heroes/HeroParallax.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps } from "../types";
2
+ export default function HeroRetroCentered({ content, theme, settings, elementStyles }: ComponentProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=HeroRetroCentered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroRetroCentered.d.ts","sourceRoot":"","sources":["../../src/heroes/HeroRetroCentered.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAmB/C,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,cAAc,2CAoHpG"}
@@ -0,0 +1,49 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { motion } from "framer-motion";
3
+ import { renderText } from "../renderText";
4
+ import { elStyle } from "../utils/elementStyles";
5
+ import { MediaLoop } from "../primitives/MediaLoop";
6
+ // Olipop-inspired: sunburst bg, product floating center, retro 1950s poster energy
7
+ const FLOAT_KEYFRAMES = `
8
+ @keyframes lx-float {
9
+ 0%, 100% { transform: translateY(0px) rotate(0deg); }
10
+ 33% { transform: translateY(-14px) rotate(1.5deg); }
11
+ 66% { transform: translateY(-7px) rotate(-1deg); }
12
+ }`;
13
+ export default function HeroRetroCentered({ content, theme, settings, elementStyles }) {
14
+ const headline = renderText(content.headline || "");
15
+ const subhead = content.subhead ? renderText(content.subhead) : undefined;
16
+ const ctaText = renderText(content.cta_text || "Shop Now");
17
+ const ctaUrl = content.cta_url ? renderText(content.cta_url) : "#";
18
+ const mediaUrl = renderText(content.media_url || "");
19
+ const bgColor = content.bg_color || "#FDE68A";
20
+ const bgGradient = content.bg_gradient;
21
+ const floatingElements = content.floating_elements || [];
22
+ const minH = settings?.min_height ?? "92vh";
23
+ const sunburstBg = bgGradient || `radial-gradient(ellipse 80% 60% at 50% 60%, ${bgColor} 0%, ${bgColor}cc 50%, ${bgColor}44 100%)`;
24
+ return (_jsxs("section", { className: "relative w-full overflow-hidden flex flex-col items-center justify-center text-center", style: { minHeight: minH, background: sunburstBg }, children: [_jsx("style", { children: FLOAT_KEYFRAMES }), _jsx("div", { className: "absolute inset-0 pointer-events-none", style: {
25
+ background: `conic-gradient(from 0deg at 50% 55%, transparent 0deg, ${bgColor}55 8deg, transparent 16deg, ${bgColor}35 24deg, transparent 32deg, ${bgColor}55 40deg, transparent 48deg, ${bgColor}35 56deg, transparent 64deg, ${bgColor}55 72deg, transparent 80deg, ${bgColor}35 88deg, transparent 96deg, ${bgColor}55 104deg, transparent 112deg, ${bgColor}35 120deg, transparent 128deg, ${bgColor}55 136deg, transparent 144deg, ${bgColor}35 152deg, transparent 160deg, ${bgColor}55 168deg, transparent 176deg, ${bgColor}35 184deg, transparent 192deg, ${bgColor}55 200deg, transparent 208deg, ${bgColor}35 216deg, transparent 224deg, ${bgColor}55 232deg, transparent 240deg, ${bgColor}35 248deg, transparent 256deg, ${bgColor}55 264deg, transparent 272deg, ${bgColor}35 280deg, transparent 288deg, ${bgColor}55 296deg, transparent 304deg, ${bgColor}35 312deg, transparent 320deg, ${bgColor}55 328deg, transparent 336deg, ${bgColor}35 344deg, transparent 352deg, ${bgColor}55 360deg)`,
26
+ opacity: 0.45,
27
+ zIndex: 0,
28
+ } }), floatingElements.map((el, i) => (_jsx(motion.div, { className: "absolute pointer-events-none select-none", style: {
29
+ top: el.top, left: el.left, right: el.right, bottom: el.bottom,
30
+ width: el.size || "100px", zIndex: 1,
31
+ animation: `lx-float ${3.5 + i * 0.4}s ease-in-out ${el.delay ?? 0}s infinite`,
32
+ filter: "drop-shadow(0 8px 16px rgba(0,0,0,0.15))",
33
+ }, initial: { opacity: 0, scale: 0, rotate: (el.rotate || 0) - 15 }, animate: { opacity: 1, scale: 1, rotate: el.rotate || 0 }, transition: { delay: 0.4 + i * 0.12, type: "spring", stiffness: 260, damping: 20 }, children: _jsx(MediaLoop, { src: el.url, alt: "", fit: "contain" }) }, i))), _jsxs("div", { className: "relative flex flex-col items-center px-6 py-16", style: { zIndex: 2, maxWidth: "700px" }, children: [mediaUrl && (_jsx(motion.div, { "data-lx-field": "media_url", initial: { opacity: 0, y: 30, scale: 0.9 }, animate: { opacity: 1, y: 0, scale: 1 }, transition: { duration: 0.7, ease: [0.25, 0.46, 0.45, 0.94] }, className: "mb-6", style: {
34
+ maxWidth: "280px",
35
+ maxHeight: "320px",
36
+ filter: "drop-shadow(0 24px 48px rgba(0,0,0,0.2))",
37
+ animation: "lx-float 4s ease-in-out infinite",
38
+ ...elStyle(elementStyles, "media_url"),
39
+ }, children: _jsx(MediaLoop, { src: mediaUrl, alt: headline, fit: "contain", style: { maxWidth: "280px", maxHeight: "320px" } }) })), _jsx(motion.h1, { "data-lx-field": "headline", initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { delay: 0.25, duration: 0.55 }, className: "mb-4", style: {
40
+ fontFamily: `${theme.fonts.display}, serif`,
41
+ fontWeight: 800,
42
+ fontSize: "clamp(2.4rem, 5.5vw, 5rem)",
43
+ lineHeight: 1.05,
44
+ color: theme.palette.text,
45
+ letterSpacing: "-0.02em",
46
+ ...elStyle(elementStyles, "headline"),
47
+ }, children: headline }), subhead && (_jsx(motion.p, { "data-lx-field": "subhead", initial: { opacity: 0 }, animate: { opacity: 1 }, transition: { delay: 0.4, duration: 0.5 }, className: "mb-8 text-base md:text-lg max-w-md", style: { color: theme.palette.text, opacity: 0.65, fontFamily: theme.fonts.body, lineHeight: 1.6, ...elStyle(elementStyles, "subhead") }, children: subhead })), _jsx(motion.a, { href: ctaUrl, "data-lx-field": "cta_text", initial: { opacity: 0, scale: 0.9 }, animate: { opacity: 1, scale: 1 }, transition: { delay: 0.5, type: "spring", stiffness: 280, damping: 20 }, whileHover: { scale: 1.05, y: -2 }, whileTap: { scale: 0.97 }, className: "inline-flex items-center px-8 py-4 font-bold rounded-full text-sm md:text-base", style: { backgroundColor: theme.palette.accent, color: "#fff", fontFamily: theme.fonts.body, boxShadow: "0 8px 32px rgba(0,0,0,0.15)" }, children: ctaText })] })] }));
48
+ }
49
+ //# sourceMappingURL=HeroRetroCentered.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroRetroCentered.js","sourceRoot":"","sources":["../../src/heroes/HeroRetroCentered.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps } from "../types";
2
+ export default function HeroSplit({ content, variant, theme, settings, elementStyles }: ComponentProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=HeroSplit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroSplit.d.ts","sourceRoot":"","sources":["../../src/heroes/HeroSplit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAO/C,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,cAAc,2CAkSrG"}
@@ -0,0 +1,81 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef } from "react";
3
+ import { renderText } from "../renderText";
4
+ import { MediaLoop } from "../primitives/MediaLoop";
5
+ import { elStyle } from "../utils/elementStyles";
6
+ import { HeadlineEffect } from "../primitives/HeadlineEffect";
7
+ export default function HeroSplit({ content, variant, theme, settings, elementStyles }) {
8
+ const headline = renderText(content.headline);
9
+ const subhead = content.subhead ? renderText(content.subhead) : undefined;
10
+ const eyebrow = content.eyebrow ? renderText(content.eyebrow) : undefined;
11
+ const ctaText = content.cta_text ? renderText(content.cta_text) : undefined;
12
+ const mediaUrl = content.media_url ? renderText(content.media_url) : undefined;
13
+ const rawPills = content.pills || [];
14
+ const pills = rawPills.map((pill) => {
15
+ if (typeof pill === "string")
16
+ return { label: pill, color_hint: "" };
17
+ const obj = pill;
18
+ return {
19
+ label: renderText(obj.label || obj.text || obj.name),
20
+ color_hint: renderText(obj.color_hint || obj.color),
21
+ };
22
+ });
23
+ const isRightText = variant === "right-text" || variant === "right_text";
24
+ const isOverlap = variant === "overlap";
25
+ const isWithPills = variant === "with-pills" || variant === "with_pills";
26
+ const isSplitVideo = variant === "split_video";
27
+ const isParallaxSplit = variant === "parallax_split";
28
+ const imgWrapRef = useRef(null);
29
+ useEffect(() => {
30
+ if (!isParallaxSplit)
31
+ return;
32
+ const onScroll = () => {
33
+ if (!imgWrapRef.current)
34
+ return;
35
+ const rect = imgWrapRef.current.getBoundingClientRect();
36
+ const offset = (window.innerHeight / 2 - rect.top - rect.height / 2) * 0.12;
37
+ imgWrapRef.current.style.transform = `translateY(${offset}px)`;
38
+ };
39
+ window.addEventListener("scroll", onScroll, { passive: true });
40
+ return () => window.removeEventListener("scroll", onScroll);
41
+ }, [isParallaxSplit]);
42
+ const imgStyle = content.image_style || "card";
43
+ const isFullBleedSplit = imgStyle === "full" && mediaUrl;
44
+ const minH = settings?.min_height ?? "80vh";
45
+ // Full-bleed split: absolute image panel flush to viewport edge, text in padded half
46
+ if (isFullBleedSplit) {
47
+ const imgOnRight = !isRightText;
48
+ const cornerRadius = settings?.image_corner_radius;
49
+ // Default inner corners: if image is on right, round top-left + bottom-left; if left, round top-right + bottom-right
50
+ const panelRadius = cornerRadius ?? (imgOnRight
51
+ ? "var(--lx-image-radius) 0 0 var(--lx-image-radius)"
52
+ : "0 var(--lx-image-radius) var(--lx-image-radius) 0");
53
+ return (_jsxs("section", { className: "relative overflow-hidden", style: { backgroundColor: theme.palette.bg, minHeight: minH }, children: [_jsx("div", { ref: imgWrapRef, "data-lx-field": "media_url", className: "hidden md:block absolute top-0 bottom-0 will-change-transform overflow-hidden", style: { width: "50%", [imgOnRight ? "right" : "left"]: 0, borderRadius: panelRadius, ...elStyle(elementStyles, "media_url") }, children: _jsx(MediaLoop, { src: mediaUrl, alt: headline, fit: "cover", className: "w-full h-full", style: { borderRadius: 0 } }) }), _jsx("div", { className: `relative z-10 flex items-center px-8 md:px-16 py-20 ${imgOnRight ? "md:w-1/2 md:mr-auto" : "md:w-1/2 md:ml-auto"}`, style: { minHeight: minH }, children: _jsxs("div", { className: "max-w-lg", children: [eyebrow && (_jsx("p", { "data-lx-field": "eyebrow", className: "text-xs font-bold uppercase tracking-[0.2em] mb-4", style: { color: theme.palette.accent, ...elStyle(elementStyles, "eyebrow") }, children: eyebrow })), _jsx("h1", { "data-lx-field": "headline", className: "text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-tight mb-6", style: { fontFamily: `${theme.fonts.display}, serif`, color: theme.palette.text, ...elStyle(elementStyles, "headline") }, children: _jsx(HeadlineEffect, { text: headline, effect: content.headline_effect, accent: theme.palette.accent, textColor: theme.palette.text, highlightWords: content.headline_highlight_words || [], prefix: content.headline_prefix, words: content.headline_rotating_words || [] }) }), subhead && (_jsx("p", { "data-lx-field": "subhead", className: "text-lg mb-8 opacity-70", style: { fontFamily: `${theme.fonts.body}, sans-serif`, color: theme.palette.text, ...elStyle(elementStyles, "subhead") }, children: subhead })), ctaText && (_jsx("button", { "data-lx-field": "cta_text", className: "inline-flex items-center px-8 py-4 font-semibold text-white hover:-translate-y-0.5 transition-transform", style: { backgroundColor: theme.palette.accent, borderRadius: "var(--lx-herosplit-cta-radius, var(--lx-radius-full))", ...elStyle(elementStyles, "cta_text") }, children: ctaText })), content.cta_secondary_text && (_jsx("div", { className: "mt-4", children: _jsxs("a", { href: renderText(content.cta_secondary_url) || "#", className: "inline-flex items-center gap-2 text-sm font-medium hover:opacity-80 transition-opacity", style: { color: theme.palette.text, opacity: 0.6 }, children: [_jsx("span", { style: { color: theme.palette.accent }, children: "\u25B6" }), renderText(content.cta_secondary_text)] }) })), content.social_proof_text && (_jsx("p", { className: "text-sm mt-4", style: { color: theme.palette.text, opacity: 0.5 }, children: renderText(content.social_proof_text) })), Array.isArray(content.trust_items) && content.trust_items.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-x-5 gap-y-1.5 mt-5", children: content.trust_items.map((item, idx) => (_jsxs("span", { className: "flex items-center gap-1.5 text-xs font-medium", style: { color: theme.palette.text, opacity: 0.45 }, children: [_jsx("span", { children: item.icon }), item.text] }, idx))) }))] }) }), _jsx("div", { className: "md:hidden", children: _jsx(MediaLoop, { src: mediaUrl, alt: headline, fit: "cover", className: "w-full", style: { borderRadius: 0, maxHeight: "60vw" } }) })] }));
54
+ }
55
+ return (_jsx("section", { className: "relative py-16 px-5 md:py-24 lg:py-32 overflow-hidden", style: { backgroundColor: theme.palette.bg }, children: _jsxs("div", { className: `mx-auto max-w-7xl flex flex-col ${isRightText ? "md:flex-row-reverse" : "md:flex-row"} items-center gap-10 lg:gap-16`, children: [_jsxs("div", { className: "flex-1 w-full md:w-1/2", children: [eyebrow && (_jsx("p", { "data-lx-field": "eyebrow", className: "text-xs font-bold uppercase tracking-[0.2em] mb-4", style: { color: theme.palette.accent, ...elStyle(elementStyles, "eyebrow") }, children: eyebrow })), _jsx("h1", { "data-lx-field": "headline", className: "text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-tight mb-6", style: {
56
+ fontFamily: `${theme.fonts.display}, serif`,
57
+ color: theme.palette.text,
58
+ ...elStyle(elementStyles, "headline"),
59
+ }, children: _jsx(HeadlineEffect, { text: headline, effect: content.headline_effect, accent: theme.palette.accent, textColor: theme.palette.text, highlightWords: content.headline_highlight_words || [], prefix: content.headline_prefix, words: content.headline_rotating_words || [] }) }), subhead && (_jsx("p", { "data-lx-field": "subhead", className: "text-lg mb-8 opacity-70 max-w-lg", style: {
60
+ fontFamily: `${theme.fonts.body}, sans-serif`,
61
+ color: theme.palette.text,
62
+ ...elStyle(elementStyles, "subhead"),
63
+ }, children: subhead })), ctaText && (_jsx("button", { "data-lx-field": "cta_text", className: "inline-flex items-center px-8 py-4 font-semibold text-white hover:-translate-y-0.5 transition-transform", style: {
64
+ backgroundColor: theme.palette.accent,
65
+ borderRadius: "var(--lx-herosplit-cta-radius, var(--lx-radius-full))",
66
+ ...elStyle(elementStyles, "cta_text"),
67
+ }, children: ctaText })), content.cta_secondary_text && (_jsx("div", { className: "mt-4", children: _jsxs("a", { href: renderText(content.cta_secondary_url) || "#", className: "inline-flex items-center gap-2 text-sm font-medium hover:opacity-80 transition-opacity", style: { color: theme.palette.text, opacity: 0.6 }, children: [_jsx("span", { style: { color: theme.palette.accent }, children: "\u25B6" }), renderText(content.cta_secondary_text)] }) })), content.social_proof_text && (_jsx("p", { className: "text-sm mt-4", style: { color: theme.palette.text, opacity: 0.5 }, children: renderText(content.social_proof_text) })), Array.isArray(content.trust_items) && content.trust_items.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-x-5 gap-y-1.5 mt-5", children: content.trust_items.map((item, idx) => (_jsxs("span", { className: "flex items-center gap-1.5 text-xs font-medium", style: { color: theme.palette.text, opacity: 0.45 }, children: [_jsx("span", { children: item.icon }), item.text] }, idx))) }))] }), _jsxs("div", { ref: imgWrapRef, className: `flex-1 w-full md:w-1/2 relative will-change-transform ${isOverlap ? "md:-ml-16 lg:-ml-24" : ""} ${isRightText && isOverlap ? "md:-mr-16 lg:-mr-24 md:ml-0" : ""}`, children: [mediaUrl ? (_jsx(MediaLoop, { "data-lx-field": "media_url", src: mediaUrl, alt: headline, fit: "cover", applyImageTokens: imgStyle === "card", className: `w-full ${isOverlap ? "relative z-10" : ""}`, style: {
68
+ maxHeight: isSplitVideo ? "520px" : undefined,
69
+ ...(imgStyle !== "card" ? { borderRadius: 0, boxShadow: "none" } : {}),
70
+ ...elStyle(elementStyles, "media_url"),
71
+ } })) : null, isWithPills && pills.length > 0 && (_jsx("div", { className: "absolute inset-0 z-20 pointer-events-none", children: pills.map((pill, i) => (_jsxs("div", { className: "absolute flex items-center pointer-events-auto", style: {
72
+ top: `${14 + i * 18}%`,
73
+ right: `${3 + (i % 2) * 7}%`,
74
+ }, children: [_jsx("div", { className: "h-px opacity-50", style: { width: "1.75rem", backgroundColor: pill.color_hint || theme.palette.accent } }), _jsxs("div", { className: "px-3 py-1.5 text-xs font-bold rounded-full whitespace-nowrap", style: {
75
+ backgroundColor: theme.palette.bg,
76
+ color: theme.palette.text,
77
+ border: `1.5px solid ${pill.color_hint || theme.palette.accent}`,
78
+ boxShadow: `0 2px 12px ${pill.color_hint || theme.palette.accent}20`,
79
+ }, children: [_jsx("span", { className: "mr-1 font-black", style: { color: pill.color_hint || theme.palette.accent }, children: "+" }), pill.label] })] }, i))) }))] })] }) }));
80
+ }
81
+ //# sourceMappingURL=HeroSplit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroSplit.js","sourceRoot":"","sources":["../../src/heroes/HeroSplit.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps } from "../types";
2
+ export default function HeroSpotlight({ content, variant, theme, settings, elementStyles }: ComponentProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=HeroSpotlight.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroSpotlight.d.ts","sourceRoot":"","sources":["../../src/heroes/HeroSpotlight.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/C,MAAM,CAAC,OAAO,UAAU,aAAa,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,cAAc,2CAwOzG"}
@@ -0,0 +1,60 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useRef } from "react";
3
+ import { renderText } from "../renderText";
4
+ import { HeadlineEffect } from "../primitives/HeadlineEffect";
5
+ import { elStyle } from "../utils/elementStyles";
6
+ export default function HeroSpotlight({ content, variant, theme, settings, elementStyles }) {
7
+ const headline = renderText(content.headline);
8
+ const subhead = content.subhead ? renderText(content.subhead) : undefined;
9
+ const eyebrow = content.eyebrow ? renderText(content.eyebrow) : undefined;
10
+ const ctaText = content.cta_text ? renderText(content.cta_text) : "Shop Now";
11
+ const ctaUrl = content.cta_url ? renderText(content.cta_url) : "#";
12
+ const mediaUrl = content.media_url ? renderText(content.media_url) : undefined;
13
+ const rawCards = Array.isArray(content.cards)
14
+ ? content.cards
15
+ : [];
16
+ const sectionRef = useRef(null);
17
+ const [spotlight, setSpotlight] = useState({ x: -999, y: -999 });
18
+ const handleMouseMove = (e) => {
19
+ if (!sectionRef.current)
20
+ return;
21
+ const rect = sectionRef.current.getBoundingClientRect();
22
+ setSpotlight({ x: e.clientX - rect.left, y: e.clientY - rect.top });
23
+ };
24
+ const handleMouseLeave = () => setSpotlight({ x: -999, y: -999 });
25
+ const isMulti = variant === "spotlight_multi";
26
+ const imgStyle = content.image_style || "card";
27
+ const minH = settings?.min_height ?? "80vh";
28
+ // Full-bleed single: absolute image panel flush to viewport right edge
29
+ if (imgStyle === "full" && mediaUrl && !isMulti) {
30
+ return (_jsxs("section", { ref: sectionRef, className: "relative overflow-hidden", style: { backgroundColor: theme.palette.bg, minHeight: minH }, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, children: [_jsx("div", { className: "pointer-events-none absolute inset-0 z-0 transition-opacity duration-300", style: { background: `radial-gradient(600px circle at ${spotlight.x}px ${spotlight.y}px, ${theme.palette.accent}22, transparent 70%)` } }), _jsx("div", { className: "hidden md:block absolute top-0 bottom-0 right-0 z-0", style: { width: "50%" }, children: _jsx("img", { "data-lx-field": "media_url", src: mediaUrl, alt: headline, className: "w-full h-full object-cover", style: elStyle(elementStyles, "media_url") }) }), _jsx("div", { className: "relative z-10 flex items-center px-8 md:px-16 py-20 md:w-1/2", style: { minHeight: minH }, children: _jsxs("div", { className: "max-w-lg", children: [eyebrow && (_jsx("p", { "data-lx-field": "eyebrow", className: "text-xs font-bold uppercase tracking-[0.2em] mb-4", style: { color: theme.palette.accent, ...elStyle(elementStyles, "eyebrow") }, children: eyebrow })), _jsx("h1", { "data-lx-field": "headline", className: "text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-tight mb-6", style: { fontFamily: `${theme.fonts.display}, serif`, color: theme.palette.text, ...elStyle(elementStyles, "headline") }, children: _jsx(HeadlineEffect, { text: headline, effect: content.headline_effect, accent: theme.palette.accent, textColor: theme.palette.text, highlightWords: content.headline_highlight_words || [], prefix: content.headline_prefix, words: content.headline_rotating_words || [] }) }), subhead && (_jsx("p", { "data-lx-field": "subhead", className: "text-lg mb-8 opacity-70", style: { color: theme.palette.text, ...elStyle(elementStyles, "subhead") }, children: subhead })), _jsx("a", { "data-lx-field": "cta_text", href: ctaUrl, className: "inline-flex items-center px-8 py-4 font-semibold text-white rounded-full hover:-translate-y-0.5 transition-transform", style: { backgroundColor: theme.palette.accent, ...elStyle(elementStyles, "cta_text") }, children: ctaText }), content.cta_secondary_text && (_jsx("div", { className: "mt-4", children: _jsxs("a", { href: renderText(content.cta_secondary_url) || "#", className: "inline-flex items-center gap-2 text-sm font-medium hover:opacity-80 transition-opacity", style: { color: theme.palette.text, opacity: 0.6 }, children: [_jsx("span", { style: { color: theme.palette.accent }, children: "\u25B6" }), renderText(content.cta_secondary_text)] }) })), content.social_proof_text && (_jsx("p", { className: "text-sm mt-4", style: { color: theme.palette.text, opacity: 0.5 }, children: renderText(content.social_proof_text) })), Array.isArray(content.trust_items) && content.trust_items.length > 0 && (_jsx("div", { className: "flex flex-wrap gap-x-5 gap-y-1.5 mt-5", children: content.trust_items.map((item, idx) => (_jsxs("span", { className: "flex items-center gap-1.5 text-xs font-medium", style: { color: theme.palette.text, opacity: 0.45 }, children: [_jsx("span", { children: item.icon }), item.text] }, idx))) }))] }) }), _jsx("div", { className: "md:hidden", children: _jsx("img", { "data-lx-field": "media_url", src: mediaUrl, alt: headline, className: "w-full", style: { maxHeight: "60vw", objectFit: "cover", ...elStyle(elementStyles, "media_url") } }) })] }));
31
+ }
32
+ return (_jsxs("section", { ref: sectionRef, className: "relative py-20 px-5 md:py-28 overflow-hidden", style: { backgroundColor: theme.palette.bg }, onMouseMove: handleMouseMove, onMouseLeave: handleMouseLeave, children: [_jsx("div", { className: "pointer-events-none absolute inset-0 z-0 transition-opacity duration-300", style: {
33
+ background: `radial-gradient(600px circle at ${spotlight.x}px ${spotlight.y}px, ${theme.palette.accent}22, transparent 70%)`,
34
+ } }), isMulti ? (
35
+ /* Multi-card spotlight layout */
36
+ _jsxs("div", { className: "relative z-10 mx-auto max-w-6xl", children: [_jsxs("div", { className: "text-center mb-12", children: [eyebrow && (_jsx("p", { "data-lx-field": "eyebrow", className: "text-xs font-bold uppercase tracking-[0.2em] mb-4", style: { color: theme.palette.accent, ...elStyle(elementStyles, "eyebrow") }, children: eyebrow })), _jsx("h1", { "data-lx-field": "headline", className: "text-[clamp(2rem,5vw,4rem)] leading-tight tracking-tight mb-4", style: { fontFamily: `${theme.fonts.display}, serif`, color: theme.palette.text, ...elStyle(elementStyles, "headline") }, children: _jsx(HeadlineEffect, { text: headline, effect: content.headline_effect, accent: theme.palette.accent, textColor: theme.palette.text, highlightWords: content.headline_highlight_words || [], prefix: content.headline_prefix, words: content.headline_rotating_words || [] }) }), subhead && (_jsx("p", { "data-lx-field": "subhead", className: "text-lg opacity-70 max-w-xl mx-auto", style: { color: theme.palette.text, ...elStyle(elementStyles, "subhead") }, children: subhead }))] }), _jsx("div", { className: "grid grid-cols-1 md:grid-cols-3 gap-6", "data-lx-field": "cards", children: (rawCards.length > 0 ? rawCards : [
37
+ { label: "Vitamin C Serum", price: "₹1,299", img: mediaUrl },
38
+ { label: "Retinol Cream", price: "₹1,899", img: mediaUrl },
39
+ { label: "SPF 50 Sunscreen", price: "₹799", img: mediaUrl },
40
+ ]).map((card, i) => (_jsx(SpotlightCard, { label: renderText(card.label) || `Product ${i + 1}`, price: renderText(card.price), img: renderText(card.img) || mediaUrl, accent: theme.palette.accent, bg: theme.palette.surface || "#f9f9f9", text: theme.palette.text, font: theme.fonts.body }, i))) }), _jsx("div", { className: "text-center mt-10", children: _jsx("a", { "data-lx-field": "cta_text", href: ctaUrl, className: "inline-flex items-center px-8 py-4 font-semibold text-white rounded-full hover:-translate-y-0.5 transition-transform", style: { backgroundColor: theme.palette.accent, ...elStyle(elementStyles, "cta_text") }, children: ctaText }) })] })) : (
41
+ /* Single spotlight layout */
42
+ _jsxs("div", { className: "relative z-10 mx-auto max-w-4xl flex flex-col md:flex-row items-center gap-10", children: [_jsxs("div", { className: "flex-1 text-left", children: [eyebrow && (_jsx("p", { "data-lx-field": "eyebrow", className: "text-xs font-bold uppercase tracking-[0.2em] mb-4", style: { color: theme.palette.accent, ...elStyle(elementStyles, "eyebrow") }, children: eyebrow })), _jsx("h1", { "data-lx-field": "headline", className: "text-[clamp(2.5rem,6vw,5rem)] leading-[1.05] tracking-tight mb-6", style: { fontFamily: `${theme.fonts.display}, serif`, color: theme.palette.text, ...elStyle(elementStyles, "headline") }, children: _jsx(HeadlineEffect, { text: headline, effect: content.headline_effect, accent: theme.palette.accent, textColor: theme.palette.text, highlightWords: content.headline_highlight_words || [], prefix: content.headline_prefix, words: content.headline_rotating_words || [] }) }), subhead && (_jsx("p", { "data-lx-field": "subhead", className: "text-lg mb-8 opacity-70", style: { color: theme.palette.text, ...elStyle(elementStyles, "subhead") }, children: subhead })), _jsx("a", { "data-lx-field": "cta_text", href: ctaUrl, className: "inline-flex items-center px-8 py-4 font-semibold text-white rounded-full hover:-translate-y-0.5 transition-transform", style: { backgroundColor: theme.palette.accent, ...elStyle(elementStyles, "cta_text") }, children: ctaText })] }), mediaUrl && (_jsxs("div", { className: "flex-1 relative", children: [imgStyle === "card" && (_jsx("div", { className: "absolute -inset-4 opacity-30 blur-2xl", style: { backgroundColor: theme.palette.accent, borderRadius: "var(--lx-radius-3xl)" } })), _jsx("img", { "data-lx-field": "media_url", src: mediaUrl, alt: headline, className: "relative w-full", style: {
43
+ borderRadius: imgStyle === "card" ? "var(--lx-image-radius)" : "0",
44
+ boxShadow: imgStyle === "card" ? "var(--lx-image-shadow)" : "none",
45
+ opacity: "var(--lx-image-opacity)",
46
+ ...elStyle(elementStyles, "media_url"),
47
+ } })] }))] }))] }));
48
+ }
49
+ function SpotlightCard({ label, price, img, accent, bg, text, font, }) {
50
+ const [pos, setPos] = useState({ x: 0, y: 0 });
51
+ const ref = useRef(null);
52
+ const onMove = (e) => {
53
+ if (!ref.current)
54
+ return;
55
+ const r = ref.current.getBoundingClientRect();
56
+ setPos({ x: e.clientX - r.left, y: e.clientY - r.top });
57
+ };
58
+ return (_jsxs("div", { ref: ref, className: "relative overflow-hidden p-5 cursor-pointer transition-transform hover:-translate-y-1", style: { backgroundColor: bg, border: `1px solid ${accent}22`, borderRadius: "var(--lx-card-radius)" }, onMouseMove: onMove, children: [_jsx("div", { className: "pointer-events-none absolute inset-0", style: { background: `radial-gradient(250px circle at ${pos.x}px ${pos.y}px, ${accent}18, transparent 70%)` } }), img && (_jsx("img", { src: img, alt: label, className: "w-full h-40 object-cover mb-4", style: { borderRadius: "var(--lx-image-radius)", opacity: "var(--lx-image-opacity)" } })), _jsx("p", { className: "font-semibold text-base", style: { color: text, fontFamily: font }, children: label }), price && _jsx("p", { className: "text-sm mt-1 font-bold", style: { color: accent }, children: price })] }));
59
+ }
60
+ //# sourceMappingURL=HeroSpotlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroSpotlight.js","sourceRoot":"","sources":["../../src/heroes/HeroSpotlight.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps } from "../types";
2
+ export default function HeroTrustSplit({ content, theme, settings, elementStyles }: ComponentProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=HeroTrustSplit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroTrustSplit.d.ts","sourceRoot":"","sources":["../../src/heroes/HeroTrustSplit.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAiC/C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,EAAE,cAAc,2CA0HjG"}
@@ -0,0 +1,53 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { motion } from "framer-motion";
3
+ import { renderText } from "../renderText";
4
+ import { elStyle } from "../utils/elementStyles";
5
+ import { MediaLoop } from "../primitives/MediaLoop";
6
+ import { CursorSpotlight } from "../primitives/CursorSpotlight";
7
+ import { renderIcon } from "../utils/renderIcon";
8
+ function StarRating({ rating, accent }) {
9
+ const full = Math.floor(rating);
10
+ const half = rating % 1 >= 0.5;
11
+ return (_jsx("span", { className: "inline-flex items-center gap-0.5", "aria-label": `${rating} stars`, children: Array.from({ length: 5 }).map((_, i) => (_jsx("span", { style: { color: i < full || (i === full && half) ? accent : "#d1d5db", fontSize: "1rem" }, children: i < full ? "★" : i === full && half ? "⯨" : "☆" }, i))) }));
12
+ }
13
+ const containerVariants = {
14
+ hidden: { opacity: 0 },
15
+ visible: { opacity: 1, transition: { staggerChildren: 0.1, delayChildren: 0.1 } },
16
+ };
17
+ const itemVariants = {
18
+ hidden: { opacity: 0, y: 20 },
19
+ visible: { opacity: 1, y: 0, transition: { duration: 0.5, ease: [0.25, 0.46, 0.45, 0.94] } },
20
+ };
21
+ export default function HeroTrustSplit({ content, theme, settings, elementStyles }) {
22
+ const headline = renderText(content.headline || "");
23
+ const subhead = content.subhead ? renderText(content.subhead) : undefined;
24
+ const ctaText = renderText(content.cta_text || "Shop Now");
25
+ const ctaUrl = content.cta_url ? renderText(content.cta_url) : "#";
26
+ const mediaUrl = renderText(content.media_url || "");
27
+ const rating = content.rating ? Number(content.rating) : undefined;
28
+ const reviewCount = content.review_count ? renderText(content.review_count) : undefined;
29
+ const credentials = content.credential_badges || [];
30
+ const minH = settings?.min_height ?? "88vh";
31
+ return (_jsx("section", { className: "relative w-full overflow-hidden", style: { minHeight: minH, backgroundColor: theme.palette.bg }, children: _jsxs("div", { className: "flex flex-col md:flex-row items-center", style: { minHeight: minH }, children: [_jsx(CursorSpotlight, { radius: 380, color: `${theme.palette.accent}12`, className: "flex-1 md:w-1/2 flex flex-col justify-center px-8 md:px-14 xl:px-20 py-16 relative", children: _jsxs(motion.div, { variants: containerVariants, initial: "hidden", animate: "visible", children: [(rating || reviewCount) && (_jsxs(motion.div, { variants: itemVariants, className: "flex items-center gap-3 mb-6", children: [rating && _jsx(StarRating, { rating: rating, accent: theme.palette.accent }), reviewCount && (_jsx("span", { className: "text-sm", style: { color: theme.palette.text, opacity: 0.55, fontFamily: theme.fonts.body }, children: reviewCount }))] })), _jsx(motion.h1, { "data-lx-field": "headline", variants: itemVariants, className: "mb-5", style: {
32
+ fontFamily: `${theme.fonts.display}, serif`,
33
+ fontWeight: 700,
34
+ fontSize: "clamp(2.4rem, 4.5vw, 4.2rem)",
35
+ lineHeight: 1.06,
36
+ color: theme.palette.text,
37
+ letterSpacing: "-0.025em",
38
+ maxWidth: "480px",
39
+ ...elStyle(elementStyles, "headline"),
40
+ }, children: headline }), subhead && (_jsx(motion.p, { "data-lx-field": "subhead", variants: itemVariants, className: "mb-8 text-base leading-relaxed", style: { color: theme.palette.text, opacity: 0.6, fontFamily: theme.fonts.body, maxWidth: "400px", ...elStyle(elementStyles, "subhead") }, children: subhead })), _jsx(motion.div, { variants: itemVariants, className: "mb-8", children: _jsxs(motion.a, { href: ctaUrl, "data-lx-field": "cta_text", whileHover: { scale: 1.03, x: 3 }, whileTap: { scale: 0.97 }, className: "inline-flex items-center gap-2 px-8 py-4 font-semibold rounded-full text-sm md:text-base", style: {
41
+ backgroundColor: theme.palette.accent,
42
+ color: "#fff",
43
+ fontFamily: theme.fonts.body,
44
+ boxShadow: "0 8px 24px rgba(0,0,0,0.1)",
45
+ ...elStyle(elementStyles, "cta_text"),
46
+ }, children: [ctaText, " ", _jsx("span", { children: "\u2192" })] }) }), credentials.length > 0 && (_jsx(motion.div, { variants: itemVariants, className: "flex flex-wrap gap-2", children: credentials.map((badge, i) => (_jsxs("span", { className: "inline-flex items-center gap-1.5 px-3 py-1.5 rounded-full text-xs font-medium", style: {
47
+ background: `${theme.palette.accent}12`,
48
+ color: theme.palette.text,
49
+ fontFamily: theme.fonts.body,
50
+ border: `1px solid ${theme.palette.accent}22`,
51
+ }, children: [badge.icon && _jsx("span", { children: renderIcon(badge.icon, { size: 12, color: theme.palette.accent }) }), badge.text] }, i))) }))] }) }), _jsx("div", { className: "hidden md:flex items-center justify-center md:w-1/2 relative overflow-visible py-8", style: { minHeight: minH }, children: mediaUrl && (_jsx(motion.div, { "data-lx-field": "media_url", initial: { opacity: 0, x: 40, scale: 0.95 }, animate: { opacity: 1, x: 0, scale: 1.04 }, transition: { duration: 0.75, ease: [0.25, 0.46, 0.45, 0.94], delay: 0.2 }, style: { maxHeight: "80vh", maxWidth: "520px", filter: "drop-shadow(0 20px 60px rgba(0,0,0,0.1))", ...elStyle(elementStyles, "media_url") }, children: _jsx(MediaLoop, { src: mediaUrl, alt: headline, fit: "contain", style: { maxHeight: "80vh", maxWidth: "520px" } }) })) })] }) }));
52
+ }
53
+ //# sourceMappingURL=HeroTrustSplit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroTrustSplit.js","sourceRoot":"","sources":["../../src/heroes/HeroTrustSplit.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps } from "../types";
2
+ export default function HeroTypewriter({ content, variant, theme, settings: _settings, elementStyles }: ComponentProps): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=HeroTypewriter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroTypewriter.d.ts","sourceRoot":"","sources":["../../src/heroes/HeroTypewriter.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAM/C,MAAM,CAAC,OAAO,UAAU,cAAc,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE,cAAc,2CA4JrH"}
@@ -0,0 +1,80 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, useEffect, useRef } from "react";
3
+ import { renderText } from "../renderText";
4
+ import { renderHeroImage } from "../utils/imageStyle";
5
+ import { elStyle } from "../utils/elementStyles";
6
+ export default function HeroTypewriter({ content, variant, theme, settings: _settings, elementStyles }) {
7
+ const headlinePrefix = renderText(content.headline_prefix);
8
+ const subhead = renderText(content.subhead);
9
+ const ctaText = renderText(content.cta_text) || "Shop Now";
10
+ const ctaUrl = renderText(content.cta_url) || "#";
11
+ const mediaUrl = renderText(content.media_url);
12
+ const rawWords = Array.isArray(content.rotating_words)
13
+ ? content.rotating_words.map(renderText).filter(Boolean)
14
+ : ["Beautiful", "Radiant", "Glowing"];
15
+ const words = rawWords.length > 0 ? rawWords : ["Beautiful", "Radiant", "Glowing"];
16
+ const [wordIndex, setWordIndex] = useState(0);
17
+ const [charIndex, setCharIndex] = useState(0);
18
+ const [isDeleting, setIsDeleting] = useState(false);
19
+ const [displayed, setDisplayed] = useState("");
20
+ const [done, setDone] = useState(false);
21
+ const pauseRef = useRef(false);
22
+ useEffect(() => {
23
+ if (done)
24
+ return;
25
+ const currentWord = words[wordIndex];
26
+ if (pauseRef.current)
27
+ return;
28
+ const delay = isDeleting ? 50 : 80;
29
+ const id = setInterval(() => {
30
+ if (pauseRef.current) {
31
+ clearInterval(id);
32
+ return;
33
+ }
34
+ if (!isDeleting) {
35
+ const next = charIndex + 1;
36
+ setDisplayed(currentWord.slice(0, next));
37
+ setCharIndex(next);
38
+ if (next === currentWord.length) {
39
+ clearInterval(id);
40
+ pauseRef.current = true;
41
+ setTimeout(() => {
42
+ pauseRef.current = false;
43
+ const isLastWord = wordIndex === words.length - 1;
44
+ if (variant !== "loop" && isLastWord) {
45
+ setDone(true);
46
+ }
47
+ else {
48
+ setIsDeleting(true);
49
+ }
50
+ }, 1800);
51
+ }
52
+ }
53
+ else {
54
+ const next = charIndex - 1;
55
+ setDisplayed(currentWord.slice(0, next));
56
+ setCharIndex(next);
57
+ if (next === 0) {
58
+ clearInterval(id);
59
+ setIsDeleting(false);
60
+ setWordIndex((prev) => (prev + 1) % words.length);
61
+ }
62
+ }
63
+ }, delay);
64
+ return () => clearInterval(id);
65
+ }, [wordIndex, charIndex, isDeleting, done, variant, words]);
66
+ return (_jsxs("section", { style: { backgroundColor: theme.palette.bg, color: theme.palette.text }, className: "w-full py-20 px-4", children: [_jsx("style", { children: `
67
+ @keyframes blink {
68
+ 0%, 100% { opacity: 1; }
69
+ 50% { opacity: 0; }
70
+ }
71
+ .animate-blink {
72
+ animation: blink 0.7s step-end infinite;
73
+ }
74
+ ` }), _jsxs("div", { className: "max-w-2xl mx-auto text-center", children: [_jsxs("h1", { "data-lx-field": "headline", style: { fontFamily: theme.fonts.display, color: theme.palette.text, ...elStyle(elementStyles, "headline") }, className: "text-4xl md:text-5xl font-bold mb-5 leading-tight", children: [headlinePrefix && (_jsxs("span", { children: [headlinePrefix, " "] })), _jsx("span", { style: { color: theme.palette.accent }, children: displayed }), _jsx("span", { className: "animate-blink", style: { color: theme.palette.accent }, children: "|" })] }), subhead && (_jsx("p", { "data-lx-field": "subhead", style: { color: theme.palette.text, fontFamily: theme.fonts.body, ...elStyle(elementStyles, "subhead") }, className: "text-base opacity-70 mb-8", children: subhead })), _jsx("a", { "data-lx-field": "cta_text", href: ctaUrl, style: {
75
+ backgroundColor: theme.palette.accent,
76
+ fontFamily: theme.fonts.body,
77
+ ...elStyle(elementStyles, "cta_text"),
78
+ }, className: "inline-block rounded-full px-8 py-3 font-semibold text-white hover:opacity-90 transition-opacity", children: ctaText }), content.cta_secondary_text && (_jsx("div", { className: "mt-4", children: _jsxs("a", { href: renderText(content.cta_secondary_url) || "#", className: "inline-flex items-center gap-2 text-sm font-medium hover:opacity-80 transition-opacity", style: { color: theme.palette.text, opacity: 0.6 }, children: [_jsx("span", { style: { color: theme.palette.accent }, children: "\u25B6" }), renderText(content.cta_secondary_text)] }) })), content.social_proof_text && (_jsx("p", { className: "text-sm mt-4", style: { color: theme.palette.text, opacity: 0.5 }, children: renderText(content.social_proof_text) })), Array.isArray(content.trust_items) && content.trust_items.length > 0 && (_jsx("div", { className: "flex flex-wrap justify-center gap-x-5 gap-y-1.5 mt-5", children: content.trust_items.map((item, idx) => (_jsxs("span", { className: "flex items-center gap-1.5 text-xs font-medium", style: { color: theme.palette.text, opacity: 0.45 }, children: [_jsx("span", { children: item.icon }), item.text] }, idx))) })), mediaUrl && (_jsx("div", { "data-lx-field": "media_url", className: "mt-10", style: elStyle(elementStyles, "media_url"), children: renderHeroImage(mediaUrl, headlinePrefix || "", content.image_style || "card", theme, "media_url", elStyle(elementStyles, "media_url")) }))] })] }));
79
+ }
80
+ //# sourceMappingURL=HeroTypewriter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroTypewriter.js","sourceRoot":"","sources":["../../src/heroes/HeroTypewriter.tsx"],"names":[],"mappings":"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"}