@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.
- package/dist/PageRenderer.d.ts +8 -0
- package/dist/PageRenderer.d.ts.map +1 -0
- package/dist/PageRenderer.js +116 -0
- package/dist/PageRenderer.js.map +1 -0
- package/dist/SectionSkeleton.d.ts +2 -0
- package/dist/SectionSkeleton.d.ts.map +1 -0
- package/dist/SectionSkeleton.js +5 -0
- package/dist/SectionSkeleton.js.map +1 -0
- package/dist/ThemeContext.d.ts +11 -0
- package/dist/ThemeContext.d.ts.map +1 -0
- package/dist/ThemeContext.js +13 -0
- package/dist/ThemeContext.js.map +1 -0
- package/dist/ThemeProvider.d.ts +9 -0
- package/dist/ThemeProvider.d.ts.map +1 -0
- package/dist/ThemeProvider.js +227 -0
- package/dist/ThemeProvider.js.map +1 -0
- package/dist/ThemeToggle.d.ts +6 -0
- package/dist/ThemeToggle.d.ts.map +1 -0
- package/dist/ThemeToggle.js +26 -0
- package/dist/ThemeToggle.js.map +1 -0
- package/dist/animations/advanced-hooks.d.ts +36 -0
- package/dist/animations/advanced-hooks.d.ts.map +1 -0
- package/dist/animations/advanced-hooks.js +106 -0
- package/dist/animations/advanced-hooks.js.map +1 -0
- package/dist/animations/canvas-utils.d.ts +41 -0
- package/dist/animations/canvas-utils.d.ts.map +1 -0
- package/dist/animations/canvas-utils.js +115 -0
- package/dist/animations/canvas-utils.js.map +1 -0
- package/dist/animations/hooks.d.ts +48 -0
- package/dist/animations/hooks.d.ts.map +1 -0
- package/dist/animations/hooks.js +50 -0
- package/dist/animations/hooks.js.map +1 -0
- package/dist/animations/index.d.ts +4 -0
- package/dist/animations/index.d.ts.map +1 -0
- package/dist/animations/index.js +4 -0
- package/dist/animations/index.js.map +1 -0
- package/dist/animations/presets.d.ts +43 -0
- package/dist/animations/presets.d.ts.map +1 -0
- package/dist/animations/presets.js +278 -0
- package/dist/animations/presets.js.map +1 -0
- package/dist/animations/variants.d.ts +15 -0
- package/dist/animations/variants.d.ts.map +1 -0
- package/dist/animations/variants.js +90 -0
- package/dist/animations/variants.js.map +1 -0
- package/dist/backgrounds/BackgroundSection.d.ts +3 -0
- package/dist/backgrounds/BackgroundSection.d.ts.map +1 -0
- package/dist/backgrounds/BackgroundSection.js +205 -0
- package/dist/backgrounds/BackgroundSection.js.map +1 -0
- package/dist/buttons/ButtonSection.d.ts +3 -0
- package/dist/buttons/ButtonSection.d.ts.map +1 -0
- package/dist/buttons/ButtonSection.js +150 -0
- package/dist/buttons/ButtonSection.js.map +1 -0
- package/dist/cards/CardStack.d.ts +3 -0
- package/dist/cards/CardStack.d.ts.map +1 -0
- package/dist/cards/CardStack.js +140 -0
- package/dist/cards/CardStack.js.map +1 -0
- package/dist/cards/FeatureCard.d.ts +3 -0
- package/dist/cards/FeatureCard.d.ts.map +1 -0
- package/dist/cards/FeatureCard.js +100 -0
- package/dist/cards/FeatureCard.js.map +1 -0
- package/dist/cards/FeaturedCard.d.ts +3 -0
- package/dist/cards/FeaturedCard.d.ts.map +1 -0
- package/dist/cards/FeaturedCard.js +66 -0
- package/dist/cards/FeaturedCard.js.map +1 -0
- package/dist/cards/TerminalCard.d.ts +3 -0
- package/dist/cards/TerminalCard.d.ts.map +1 -0
- package/dist/cards/TerminalCard.js +73 -0
- package/dist/cards/TerminalCard.js.map +1 -0
- package/dist/cards/TestimonialCard.d.ts +3 -0
- package/dist/cards/TestimonialCard.d.ts.map +1 -0
- package/dist/cards/TestimonialCard.js +50 -0
- package/dist/cards/TestimonialCard.js.map +1 -0
- package/dist/cards/index.d.ts +2 -0
- package/dist/cards/index.d.ts.map +1 -0
- package/dist/cards/index.js +2 -0
- package/dist/cards/index.js.map +1 -0
- package/dist/cart/CartCheckoutBar.d.ts +3 -0
- package/dist/cart/CartCheckoutBar.d.ts.map +1 -0
- package/dist/cart/CartCheckoutBar.js +258 -0
- package/dist/cart/CartCheckoutBar.js.map +1 -0
- package/dist/cart/CartDiscount.d.ts +3 -0
- package/dist/cart/CartDiscount.d.ts.map +1 -0
- package/dist/cart/CartDiscount.js +78 -0
- package/dist/cart/CartDiscount.js.map +1 -0
- package/dist/cart/CartDrawer.d.ts +3 -0
- package/dist/cart/CartDrawer.d.ts.map +1 -0
- package/dist/cart/CartDrawer.js +141 -0
- package/dist/cart/CartDrawer.js.map +1 -0
- package/dist/cart/CartLines.d.ts +3 -0
- package/dist/cart/CartLines.d.ts.map +1 -0
- package/dist/cart/CartLines.js +227 -0
- package/dist/cart/CartLines.js.map +1 -0
- package/dist/cart/CartPage.d.ts +3 -0
- package/dist/cart/CartPage.d.ts.map +1 -0
- package/dist/cart/CartPage.js +128 -0
- package/dist/cart/CartPage.js.map +1 -0
- package/dist/cart/CartSummary.d.ts +3 -0
- package/dist/cart/CartSummary.d.ts.map +1 -0
- package/dist/cart/CartSummary.js +155 -0
- package/dist/cart/CartSummary.js.map +1 -0
- package/dist/cart/CartTrigger.d.ts +3 -0
- package/dist/cart/CartTrigger.d.ts.map +1 -0
- package/dist/cart/CartTrigger.js +45 -0
- package/dist/cart/CartTrigger.js.map +1 -0
- package/dist/cart/GuaranteeBanner.d.ts +3 -0
- package/dist/cart/GuaranteeBanner.d.ts.map +1 -0
- package/dist/cart/GuaranteeBanner.js +15 -0
- package/dist/cart/GuaranteeBanner.js.map +1 -0
- package/dist/cart/index.d.ts +8 -0
- package/dist/cart/index.d.ts.map +1 -0
- package/dist/cart/index.js +8 -0
- package/dist/cart/index.js.map +1 -0
- package/dist/content/BeforeAfterSlider.d.ts +3 -0
- package/dist/content/BeforeAfterSlider.d.ts.map +1 -0
- package/dist/content/BeforeAfterSlider.js +61 -0
- package/dist/content/BeforeAfterSlider.js.map +1 -0
- package/dist/content/ImageTextSplit.d.ts +3 -0
- package/dist/content/ImageTextSplit.d.ts.map +1 -0
- package/dist/content/ImageTextSplit.js +33 -0
- package/dist/content/ImageTextSplit.js.map +1 -0
- package/dist/content/LookbookGrid.d.ts +3 -0
- package/dist/content/LookbookGrid.d.ts.map +1 -0
- package/dist/content/LookbookGrid.js +183 -0
- package/dist/content/LookbookGrid.js.map +1 -0
- package/dist/content/ParallaxSection.d.ts +3 -0
- package/dist/content/ParallaxSection.d.ts.map +1 -0
- package/dist/content/ParallaxSection.js +66 -0
- package/dist/content/ParallaxSection.js.map +1 -0
- package/dist/content/RichText.d.ts +3 -0
- package/dist/content/RichText.d.ts.map +1 -0
- package/dist/content/RichText.js +21 -0
- package/dist/content/RichText.js.map +1 -0
- package/dist/content/index.d.ts +5 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +5 -0
- package/dist/content/index.js.map +1 -0
- package/dist/content-types.d.ts +637 -0
- package/dist/content-types.d.ts.map +1 -0
- package/dist/content-types.js +2 -0
- package/dist/content-types.js.map +1 -0
- package/dist/context/LxCartContext.d.ts +71 -0
- package/dist/context/LxCartContext.d.ts.map +1 -0
- package/dist/context/LxCartContext.js +491 -0
- package/dist/context/LxCartContext.js.map +1 -0
- package/dist/context/LxEditorContext.d.ts +8 -0
- package/dist/context/LxEditorContext.d.ts.map +1 -0
- package/dist/context/LxEditorContext.js +10 -0
- package/dist/context/LxEditorContext.js.map +1 -0
- package/dist/context/LxPDPContext.d.ts +39 -0
- package/dist/context/LxPDPContext.d.ts.map +1 -0
- package/dist/context/LxPDPContext.js +52 -0
- package/dist/context/LxPDPContext.js.map +1 -0
- package/dist/cta/CtaFullWidth.d.ts +3 -0
- package/dist/cta/CtaFullWidth.d.ts.map +1 -0
- package/dist/cta/CtaFullWidth.js +30 -0
- package/dist/cta/CtaFullWidth.js.map +1 -0
- package/dist/cta/CtaStickyBottom.d.ts +3 -0
- package/dist/cta/CtaStickyBottom.d.ts.map +1 -0
- package/dist/cta/CtaStickyBottom.js +43 -0
- package/dist/cta/CtaStickyBottom.js.map +1 -0
- package/dist/cta/GuaranteeCta.d.ts +3 -0
- package/dist/cta/GuaranteeCta.d.ts.map +1 -0
- package/dist/cta/GuaranteeCta.js +27 -0
- package/dist/cta/GuaranteeCta.js.map +1 -0
- package/dist/cta/NewsletterSignup.d.ts +3 -0
- package/dist/cta/NewsletterSignup.d.ts.map +1 -0
- package/dist/cta/NewsletterSignup.js +35 -0
- package/dist/cta/NewsletterSignup.js.map +1 -0
- package/dist/cta/Popup.d.ts +3 -0
- package/dist/cta/Popup.d.ts.map +1 -0
- package/dist/cta/Popup.js +208 -0
- package/dist/cta/Popup.js.map +1 -0
- package/dist/cta/UrgencyCta.d.ts +3 -0
- package/dist/cta/UrgencyCta.d.ts.map +1 -0
- package/dist/cta/UrgencyCta.js +85 -0
- package/dist/cta/UrgencyCta.js.map +1 -0
- package/dist/cta/WaitlistCta.d.ts +3 -0
- package/dist/cta/WaitlistCta.d.ts.map +1 -0
- package/dist/cta/WaitlistCta.js +62 -0
- package/dist/cta/WaitlistCta.js.map +1 -0
- package/dist/cta/index.d.ts +3 -0
- package/dist/cta/index.d.ts.map +1 -0
- package/dist/cta/index.js +3 -0
- package/dist/cta/index.js.map +1 -0
- package/dist/effects/AnimatedBackground.d.ts +22 -0
- package/dist/effects/AnimatedBackground.d.ts.map +1 -0
- package/dist/effects/AnimatedBackground.js +313 -0
- package/dist/effects/AnimatedBackground.js.map +1 -0
- package/dist/effects/CanvasReveal.d.ts +5 -0
- package/dist/effects/CanvasReveal.d.ts.map +1 -0
- package/dist/effects/CanvasReveal.js +104 -0
- package/dist/effects/CanvasReveal.js.map +1 -0
- package/dist/effects/DecorativeOverlay.d.ts +10 -0
- package/dist/effects/DecorativeOverlay.d.ts.map +1 -0
- package/dist/effects/DecorativeOverlay.js +76 -0
- package/dist/effects/DecorativeOverlay.js.map +1 -0
- package/dist/effects/ScrollLinked.d.ts +3 -0
- package/dist/effects/ScrollLinked.d.ts.map +1 -0
- package/dist/effects/ScrollLinked.js +57 -0
- package/dist/effects/ScrollLinked.js.map +1 -0
- package/dist/effects/svg-library.d.ts +3 -0
- package/dist/effects/svg-library.d.ts.map +1 -0
- package/dist/effects/svg-library.js +105 -0
- package/dist/effects/svg-library.js.map +1 -0
- package/dist/faq/FaqAccordion.d.ts +3 -0
- package/dist/faq/FaqAccordion.d.ts.map +1 -0
- package/dist/faq/FaqAccordion.js +39 -0
- package/dist/faq/FaqAccordion.js.map +1 -0
- package/dist/faq/FaqTwoColumn.d.ts +3 -0
- package/dist/faq/FaqTwoColumn.d.ts.map +1 -0
- package/dist/faq/FaqTwoColumn.js +38 -0
- package/dist/faq/FaqTwoColumn.js.map +1 -0
- package/dist/faq/index.d.ts +3 -0
- package/dist/faq/index.d.ts.map +1 -0
- package/dist/faq/index.js +3 -0
- package/dist/faq/index.js.map +1 -0
- package/dist/features/BentoGrid.d.ts +3 -0
- package/dist/features/BentoGrid.d.ts.map +1 -0
- package/dist/features/BentoGrid.js +62 -0
- package/dist/features/BentoGrid.js.map +1 -0
- package/dist/features/FeatureGrid.d.ts +3 -0
- package/dist/features/FeatureGrid.d.ts.map +1 -0
- package/dist/features/FeatureGrid.js +89 -0
- package/dist/features/FeatureGrid.js.map +1 -0
- package/dist/features/FeatureTabs.d.ts +3 -0
- package/dist/features/FeatureTabs.d.ts.map +1 -0
- package/dist/features/FeatureTabs.js +64 -0
- package/dist/features/FeatureTabs.js.map +1 -0
- package/dist/features/ProcessSteps.d.ts +3 -0
- package/dist/features/ProcessSteps.d.ts.map +1 -0
- package/dist/features/ProcessSteps.js +74 -0
- package/dist/features/ProcessSteps.js.map +1 -0
- package/dist/heroes/HeroActivity.d.ts +3 -0
- package/dist/heroes/HeroActivity.d.ts.map +1 -0
- package/dist/heroes/HeroActivity.js +54 -0
- package/dist/heroes/HeroActivity.js.map +1 -0
- package/dist/heroes/HeroAnimated.d.ts +3 -0
- package/dist/heroes/HeroAnimated.d.ts.map +1 -0
- package/dist/heroes/HeroAnimated.js +101 -0
- package/dist/heroes/HeroAnimated.js.map +1 -0
- package/dist/heroes/HeroAurora.d.ts +3 -0
- package/dist/heroes/HeroAurora.d.ts.map +1 -0
- package/dist/heroes/HeroAurora.js +53 -0
- package/dist/heroes/HeroAurora.js.map +1 -0
- package/dist/heroes/HeroCarousel.d.ts +3 -0
- package/dist/heroes/HeroCarousel.d.ts.map +1 -0
- package/dist/heroes/HeroCarousel.js +187 -0
- package/dist/heroes/HeroCarousel.js.map +1 -0
- package/dist/heroes/HeroCentered.d.ts +3 -0
- package/dist/heroes/HeroCentered.d.ts.map +1 -0
- package/dist/heroes/HeroCentered.js +62 -0
- package/dist/heroes/HeroCentered.js.map +1 -0
- package/dist/heroes/HeroCinematicFullbleed.d.ts +3 -0
- package/dist/heroes/HeroCinematicFullbleed.d.ts.map +1 -0
- package/dist/heroes/HeroCinematicFullbleed.js +44 -0
- package/dist/heroes/HeroCinematicFullbleed.js.map +1 -0
- package/dist/heroes/HeroCountdown.d.ts +3 -0
- package/dist/heroes/HeroCountdown.d.ts.map +1 -0
- package/dist/heroes/HeroCountdown.js +64 -0
- package/dist/heroes/HeroCountdown.js.map +1 -0
- package/dist/heroes/HeroDarkSplitSticker.d.ts +3 -0
- package/dist/heroes/HeroDarkSplitSticker.d.ts.map +1 -0
- package/dist/heroes/HeroDarkSplitSticker.js +39 -0
- package/dist/heroes/HeroDarkSplitSticker.js.map +1 -0
- package/dist/heroes/HeroEditorial.d.ts +3 -0
- package/dist/heroes/HeroEditorial.d.ts.map +1 -0
- package/dist/heroes/HeroEditorial.js +30 -0
- package/dist/heroes/HeroEditorial.js.map +1 -0
- package/dist/heroes/HeroEditorialMinimal.d.ts +3 -0
- package/dist/heroes/HeroEditorialMinimal.d.ts.map +1 -0
- package/dist/heroes/HeroEditorialMinimal.js +47 -0
- package/dist/heroes/HeroEditorialMinimal.js.map +1 -0
- package/dist/heroes/HeroFullBleed.d.ts +3 -0
- package/dist/heroes/HeroFullBleed.d.ts.map +1 -0
- package/dist/heroes/HeroFullBleed.js +136 -0
- package/dist/heroes/HeroFullBleed.js.map +1 -0
- package/dist/heroes/HeroMini.d.ts +3 -0
- package/dist/heroes/HeroMini.d.ts.map +1 -0
- package/dist/heroes/HeroMini.js +25 -0
- package/dist/heroes/HeroMini.js.map +1 -0
- package/dist/heroes/HeroParallax.d.ts +3 -0
- package/dist/heroes/HeroParallax.d.ts.map +1 -0
- package/dist/heroes/HeroParallax.js +71 -0
- package/dist/heroes/HeroParallax.js.map +1 -0
- package/dist/heroes/HeroRetroCentered.d.ts +3 -0
- package/dist/heroes/HeroRetroCentered.d.ts.map +1 -0
- package/dist/heroes/HeroRetroCentered.js +49 -0
- package/dist/heroes/HeroRetroCentered.js.map +1 -0
- package/dist/heroes/HeroSplit.d.ts +3 -0
- package/dist/heroes/HeroSplit.d.ts.map +1 -0
- package/dist/heroes/HeroSplit.js +81 -0
- package/dist/heroes/HeroSplit.js.map +1 -0
- package/dist/heroes/HeroSpotlight.d.ts +3 -0
- package/dist/heroes/HeroSpotlight.d.ts.map +1 -0
- package/dist/heroes/HeroSpotlight.js +60 -0
- package/dist/heroes/HeroSpotlight.js.map +1 -0
- package/dist/heroes/HeroTrustSplit.d.ts +3 -0
- package/dist/heroes/HeroTrustSplit.d.ts.map +1 -0
- package/dist/heroes/HeroTrustSplit.js +53 -0
- package/dist/heroes/HeroTrustSplit.js.map +1 -0
- package/dist/heroes/HeroTypewriter.d.ts +3 -0
- package/dist/heroes/HeroTypewriter.d.ts.map +1 -0
- package/dist/heroes/HeroTypewriter.js +80 -0
- package/dist/heroes/HeroTypewriter.js.map +1 -0
- package/dist/heroes/index.d.ts +12 -0
- package/dist/heroes/index.d.ts.map +1 -0
- package/dist/heroes/index.js +12 -0
- package/dist/heroes/index.js.map +1 -0
- package/dist/index.d.ts +37 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +49 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/Footer.d.ts +3 -0
- package/dist/layout/Footer.d.ts.map +1 -0
- package/dist/layout/Footer.js +75 -0
- package/dist/layout/Footer.js.map +1 -0
- package/dist/layout/Navbar.d.ts +3 -0
- package/dist/layout/Navbar.d.ts.map +1 -0
- package/dist/layout/Navbar.js +81 -0
- package/dist/layout/Navbar.js.map +1 -0
- package/dist/layout/PromoTopBar.d.ts +3 -0
- package/dist/layout/PromoTopBar.d.ts.map +1 -0
- package/dist/layout/PromoTopBar.js +201 -0
- package/dist/layout/PromoTopBar.js.map +1 -0
- package/dist/layout/SectionDivider.d.ts +3 -0
- package/dist/layout/SectionDivider.d.ts.map +1 -0
- package/dist/layout/SectionDivider.js +13 -0
- package/dist/layout/SectionDivider.js.map +1 -0
- package/dist/layout/SectionTransition.d.ts +3 -0
- package/dist/layout/SectionTransition.d.ts.map +1 -0
- package/dist/layout/SectionTransition.js +60 -0
- package/dist/layout/SectionTransition.js.map +1 -0
- package/dist/layout/Ticker.d.ts +3 -0
- package/dist/layout/Ticker.d.ts.map +1 -0
- package/dist/layout/Ticker.js +32 -0
- package/dist/layout/Ticker.js.map +1 -0
- package/dist/layout/index.d.ts +6 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +6 -0
- package/dist/layout/index.js.map +1 -0
- package/dist/personalization/CartRecovery.d.ts +3 -0
- package/dist/personalization/CartRecovery.d.ts.map +1 -0
- package/dist/personalization/CartRecovery.js +224 -0
- package/dist/personalization/CartRecovery.js.map +1 -0
- package/dist/personalization/CohortTrustStack.d.ts +3 -0
- package/dist/personalization/CohortTrustStack.d.ts.map +1 -0
- package/dist/personalization/CohortTrustStack.js +101 -0
- package/dist/personalization/CohortTrustStack.js.map +1 -0
- package/dist/personalization/LiveActivityTicker.d.ts +3 -0
- package/dist/personalization/LiveActivityTicker.d.ts.map +1 -0
- package/dist/personalization/LiveActivityTicker.js +137 -0
- package/dist/personalization/LiveActivityTicker.js.map +1 -0
- package/dist/personalization/LoyaltyStatus.d.ts +3 -0
- package/dist/personalization/LoyaltyStatus.d.ts.map +1 -0
- package/dist/personalization/LoyaltyStatus.js +185 -0
- package/dist/personalization/LoyaltyStatus.js.map +1 -0
- package/dist/personalization/PersonalizedGreeting.d.ts +3 -0
- package/dist/personalization/PersonalizedGreeting.d.ts.map +1 -0
- package/dist/personalization/PersonalizedGreeting.js +176 -0
- package/dist/personalization/PersonalizedGreeting.js.map +1 -0
- package/dist/personalization/PersonalizedRecommendations.d.ts +3 -0
- package/dist/personalization/PersonalizedRecommendations.d.ts.map +1 -0
- package/dist/personalization/PersonalizedRecommendations.js +156 -0
- package/dist/personalization/PersonalizedRecommendations.js.map +1 -0
- package/dist/personalization/ProgressMilestone.d.ts +3 -0
- package/dist/personalization/ProgressMilestone.d.ts.map +1 -0
- package/dist/personalization/ProgressMilestone.js +127 -0
- package/dist/personalization/ProgressMilestone.js.map +1 -0
- package/dist/personalization/ReengagementBanner.d.ts +3 -0
- package/dist/personalization/ReengagementBanner.d.ts.map +1 -0
- package/dist/personalization/ReengagementBanner.js +185 -0
- package/dist/personalization/ReengagementBanner.js.map +1 -0
- package/dist/personalization/ScarcityIndicator.d.ts +3 -0
- package/dist/personalization/ScarcityIndicator.d.ts.map +1 -0
- package/dist/personalization/ScarcityIndicator.js +264 -0
- package/dist/personalization/ScarcityIndicator.js.map +1 -0
- package/dist/personalization/VipGate.d.ts +3 -0
- package/dist/personalization/VipGate.d.ts.map +1 -0
- package/dist/personalization/VipGate.js +309 -0
- package/dist/personalization/VipGate.js.map +1 -0
- package/dist/placeholder/UnknownComponent.d.ts +6 -0
- package/dist/placeholder/UnknownComponent.d.ts.map +1 -0
- package/dist/placeholder/UnknownComponent.js +5 -0
- package/dist/placeholder/UnknownComponent.js.map +1 -0
- package/dist/pricing/PricingCards.d.ts +3 -0
- package/dist/pricing/PricingCards.d.ts.map +1 -0
- package/dist/pricing/PricingCards.js +143 -0
- package/dist/pricing/PricingCards.js.map +1 -0
- package/dist/primitives/AspectBox.d.ts +12 -0
- package/dist/primitives/AspectBox.d.ts.map +1 -0
- package/dist/primitives/AspectBox.js +15 -0
- package/dist/primitives/AspectBox.js.map +1 -0
- package/dist/primitives/CursorSpotlight.d.ts +11 -0
- package/dist/primitives/CursorSpotlight.d.ts.map +1 -0
- package/dist/primitives/CursorSpotlight.js +21 -0
- package/dist/primitives/CursorSpotlight.js.map +1 -0
- package/dist/primitives/HeadlineEffect.d.ts +16 -0
- package/dist/primitives/HeadlineEffect.d.ts.map +1 -0
- package/dist/primitives/HeadlineEffect.js +187 -0
- package/dist/primitives/HeadlineEffect.js.map +1 -0
- package/dist/primitives/Marquee.d.ts +11 -0
- package/dist/primitives/Marquee.d.ts.map +1 -0
- package/dist/primitives/Marquee.js +22 -0
- package/dist/primitives/Marquee.js.map +1 -0
- package/dist/primitives/MediaFlip.d.ts +16 -0
- package/dist/primitives/MediaFlip.d.ts.map +1 -0
- package/dist/primitives/MediaFlip.js +118 -0
- package/dist/primitives/MediaFlip.js.map +1 -0
- package/dist/primitives/MediaLoop.d.ts +15 -0
- package/dist/primitives/MediaLoop.d.ts.map +1 -0
- package/dist/primitives/MediaLoop.js +31 -0
- package/dist/primitives/MediaLoop.js.map +1 -0
- package/dist/primitives/PDPGallery.d.ts +24 -0
- package/dist/primitives/PDPGallery.d.ts.map +1 -0
- package/dist/primitives/PDPGallery.js +128 -0
- package/dist/primitives/PDPGallery.js.map +1 -0
- package/dist/primitives/TiltCard.d.ts +12 -0
- package/dist/primitives/TiltCard.d.ts.map +1 -0
- package/dist/primitives/TiltCard.js +41 -0
- package/dist/primitives/TiltCard.js.map +1 -0
- package/dist/product/BundleBuilder.d.ts +3 -0
- package/dist/product/BundleBuilder.d.ts.map +1 -0
- package/dist/product/BundleBuilder.js +34 -0
- package/dist/product/BundleBuilder.js.map +1 -0
- package/dist/product/BuyBox.d.ts +3 -0
- package/dist/product/BuyBox.d.ts.map +1 -0
- package/dist/product/BuyBox.js +398 -0
- package/dist/product/BuyBox.js.map +1 -0
- package/dist/product/ComparisonTable.d.ts +3 -0
- package/dist/product/ComparisonTable.d.ts.map +1 -0
- package/dist/product/ComparisonTable.js +59 -0
- package/dist/product/ComparisonTable.js.map +1 -0
- package/dist/product/FormatGrid.d.ts +3 -0
- package/dist/product/FormatGrid.d.ts.map +1 -0
- package/dist/product/FormatGrid.js +28 -0
- package/dist/product/FormatGrid.js.map +1 -0
- package/dist/product/PDPVariants.d.ts +3 -0
- package/dist/product/PDPVariants.d.ts.map +1 -0
- package/dist/product/PDPVariants.js +284 -0
- package/dist/product/PDPVariants.js.map +1 -0
- package/dist/product/PillNav.d.ts +3 -0
- package/dist/product/PillNav.d.ts.map +1 -0
- package/dist/product/PillNav.js +35 -0
- package/dist/product/PillNav.js.map +1 -0
- package/dist/product/ProductAccordion.d.ts +3 -0
- package/dist/product/ProductAccordion.d.ts.map +1 -0
- package/dist/product/ProductAccordion.js +46 -0
- package/dist/product/ProductAccordion.js.map +1 -0
- package/dist/product/ProductCard.d.ts +62 -0
- package/dist/product/ProductCard.d.ts.map +1 -0
- package/dist/product/ProductCard.js +442 -0
- package/dist/product/ProductCard.js.map +1 -0
- package/dist/product/ProductCarousel.d.ts +3 -0
- package/dist/product/ProductCarousel.d.ts.map +1 -0
- package/dist/product/ProductCarousel.js +123 -0
- package/dist/product/ProductCarousel.js.map +1 -0
- package/dist/product/ProductCenteredStack.d.ts +3 -0
- package/dist/product/ProductCenteredStack.d.ts.map +1 -0
- package/dist/product/ProductCenteredStack.js +28 -0
- package/dist/product/ProductCenteredStack.js.map +1 -0
- package/dist/product/ProductGallery.d.ts +3 -0
- package/dist/product/ProductGallery.d.ts.map +1 -0
- package/dist/product/ProductGallery.js +80 -0
- package/dist/product/ProductGallery.js.map +1 -0
- package/dist/product/ProductGrid.d.ts +3 -0
- package/dist/product/ProductGrid.d.ts.map +1 -0
- package/dist/product/ProductGrid.js +58 -0
- package/dist/product/ProductGrid.js.map +1 -0
- package/dist/product/ProductHighlightLeft.d.ts +3 -0
- package/dist/product/ProductHighlightLeft.d.ts.map +1 -0
- package/dist/product/ProductHighlightLeft.js +37 -0
- package/dist/product/ProductHighlightLeft.js.map +1 -0
- package/dist/product/ProductHighlightRight.d.ts +3 -0
- package/dist/product/ProductHighlightRight.d.ts.map +1 -0
- package/dist/product/ProductHighlightRight.js +23 -0
- package/dist/product/ProductHighlightRight.js.map +1 -0
- package/dist/product/ProductPage.d.ts +3 -0
- package/dist/product/ProductPage.d.ts.map +1 -0
- package/dist/product/ProductPage.js +105 -0
- package/dist/product/ProductPage.js.map +1 -0
- package/dist/product/SubscriptionToggle.d.ts +3 -0
- package/dist/product/SubscriptionToggle.d.ts.map +1 -0
- package/dist/product/SubscriptionToggle.js +38 -0
- package/dist/product/SubscriptionToggle.js.map +1 -0
- package/dist/product/Upsell.d.ts +3 -0
- package/dist/product/Upsell.d.ts.map +1 -0
- package/dist/product/Upsell.js +59 -0
- package/dist/product/Upsell.js.map +1 -0
- package/dist/product/VideoCarousel.d.ts +3 -0
- package/dist/product/VideoCarousel.d.ts.map +1 -0
- package/dist/product/VideoCarousel.js +188 -0
- package/dist/product/VideoCarousel.js.map +1 -0
- package/dist/product/index.d.ts +8 -0
- package/dist/product/index.d.ts.map +1 -0
- package/dist/product/index.js +8 -0
- package/dist/product/index.js.map +1 -0
- package/dist/registry-field-schemas.d.ts +66 -0
- package/dist/registry-field-schemas.d.ts.map +1 -0
- package/dist/registry-field-schemas.js +745 -0
- package/dist/registry-field-schemas.js.map +1 -0
- package/dist/registry-metadata.d.ts +10 -0
- package/dist/registry-metadata.d.ts.map +1 -0
- package/dist/registry-metadata.js +2 -0
- package/dist/registry-metadata.js.map +1 -0
- package/dist/registry.d.ts +20 -0
- package/dist/registry.d.ts.map +1 -0
- package/dist/registry.js +2317 -0
- package/dist/registry.js.map +1 -0
- package/dist/renderText.d.ts +6 -0
- package/dist/renderText.d.ts.map +1 -0
- package/dist/renderText.js +23 -0
- package/dist/renderText.js.map +1 -0
- package/dist/reviews/ReviewCarousel.d.ts +3 -0
- package/dist/reviews/ReviewCarousel.d.ts.map +1 -0
- package/dist/reviews/ReviewCarousel.js +24 -0
- package/dist/reviews/ReviewCarousel.js.map +1 -0
- package/dist/reviews/ReviewMasonry.d.ts +3 -0
- package/dist/reviews/ReviewMasonry.d.ts.map +1 -0
- package/dist/reviews/ReviewMasonry.js +25 -0
- package/dist/reviews/ReviewMasonry.js.map +1 -0
- package/dist/reviews/ReviewSpotlight.d.ts +3 -0
- package/dist/reviews/ReviewSpotlight.d.ts.map +1 -0
- package/dist/reviews/ReviewSpotlight.js +13 -0
- package/dist/reviews/ReviewSpotlight.js.map +1 -0
- package/dist/reviews/VideoTestimonials.d.ts +3 -0
- package/dist/reviews/VideoTestimonials.d.ts.map +1 -0
- package/dist/reviews/VideoTestimonials.js +35 -0
- package/dist/reviews/VideoTestimonials.js.map +1 -0
- package/dist/reviews/index.d.ts +4 -0
- package/dist/reviews/index.d.ts.map +1 -0
- package/dist/reviews/index.js +4 -0
- package/dist/reviews/index.js.map +1 -0
- package/dist/schemas/content.d.ts +125 -0
- package/dist/schemas/content.d.ts.map +1 -0
- package/dist/schemas/content.js +2 -0
- package/dist/schemas/content.js.map +1 -0
- package/dist/schemas/index.d.ts +3 -0
- package/dist/schemas/index.d.ts.map +1 -0
- package/dist/schemas/index.js +2 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/settings.d.ts +23 -0
- package/dist/schemas/settings.d.ts.map +1 -0
- package/dist/schemas/settings.js +321 -0
- package/dist/schemas/settings.js.map +1 -0
- package/dist/social-proof/AvatarGroup.d.ts +3 -0
- package/dist/social-proof/AvatarGroup.d.ts.map +1 -0
- package/dist/social-proof/AvatarGroup.js +58 -0
- package/dist/social-proof/AvatarGroup.js.map +1 -0
- package/dist/social-proof/LogoCarousel.d.ts +3 -0
- package/dist/social-proof/LogoCarousel.d.ts.map +1 -0
- package/dist/social-proof/LogoCarousel.js +49 -0
- package/dist/social-proof/LogoCarousel.js.map +1 -0
- package/dist/social-proof/LogoStrip.d.ts +3 -0
- package/dist/social-proof/LogoStrip.d.ts.map +1 -0
- package/dist/social-proof/LogoStrip.js +35 -0
- package/dist/social-proof/LogoStrip.js.map +1 -0
- package/dist/social-proof/PressMentions.d.ts +3 -0
- package/dist/social-proof/PressMentions.d.ts.map +1 -0
- package/dist/social-proof/PressMentions.js +40 -0
- package/dist/social-proof/PressMentions.js.map +1 -0
- package/dist/social-proof/StatsGrid.d.ts +3 -0
- package/dist/social-proof/StatsGrid.d.ts.map +1 -0
- package/dist/social-proof/StatsGrid.js +39 -0
- package/dist/social-proof/StatsGrid.js.map +1 -0
- package/dist/social-proof/TrustBadges.d.ts +3 -0
- package/dist/social-proof/TrustBadges.d.ts.map +1 -0
- package/dist/social-proof/TrustBadges.js +18 -0
- package/dist/social-proof/TrustBadges.js.map +1 -0
- package/dist/social-proof/index.d.ts +4 -0
- package/dist/social-proof/index.d.ts.map +1 -0
- package/dist/social-proof/index.js +4 -0
- package/dist/social-proof/index.js.map +1 -0
- package/dist/text-effects/TextEffect.d.ts +3 -0
- package/dist/text-effects/TextEffect.d.ts.map +1 -0
- package/dist/text-effects/TextEffect.js +277 -0
- package/dist/text-effects/TextEffect.js.map +1 -0
- package/dist/theme/resolve.d.ts +12 -0
- package/dist/theme/resolve.d.ts.map +1 -0
- package/dist/theme/resolve.js +26 -0
- package/dist/theme/resolve.js.map +1 -0
- package/dist/theme/tokens.d.ts +147 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/theme/tokens.js +113 -0
- package/dist/theme/tokens.js.map +1 -0
- package/dist/types.d.ts +154 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/elementStyles.d.ts +4 -0
- package/dist/utils/elementStyles.d.ts.map +1 -0
- package/dist/utils/elementStyles.js +6 -0
- package/dist/utils/elementStyles.js.map +1 -0
- package/dist/utils/icon-map.d.ts +128 -0
- package/dist/utils/icon-map.d.ts.map +1 -0
- package/dist/utils/icon-map.js +199 -0
- package/dist/utils/icon-map.js.map +1 -0
- package/dist/utils/imageStyle.d.ts +4 -0
- package/dist/utils/imageStyle.d.ts.map +1 -0
- package/dist/utils/imageStyle.js +23 -0
- package/dist/utils/imageStyle.js.map +1 -0
- package/dist/utils/renderIcon.d.ts +32 -0
- package/dist/utils/renderIcon.d.ts.map +1 -0
- package/dist/utils/renderIcon.js +188 -0
- package/dist/utils/renderIcon.js.map +1 -0
- package/dist/utils/schemaUtils.d.ts +9 -0
- package/dist/utils/schemaUtils.d.ts.map +1 -0
- package/dist/utils/schemaUtils.js +10 -0
- package/dist/utils/schemaUtils.js.map +1 -0
- package/dist/value-props/HowItWorks.d.ts +3 -0
- package/dist/value-props/HowItWorks.d.ts.map +1 -0
- package/dist/value-props/HowItWorks.js +23 -0
- package/dist/value-props/HowItWorks.js.map +1 -0
- package/dist/value-props/NumberedList.d.ts +3 -0
- package/dist/value-props/NumberedList.d.ts.map +1 -0
- package/dist/value-props/NumberedList.js +22 -0
- package/dist/value-props/NumberedList.js.map +1 -0
- package/dist/value-props/ValuePropsAlternating.d.ts +3 -0
- package/dist/value-props/ValuePropsAlternating.d.ts.map +1 -0
- package/dist/value-props/ValuePropsAlternating.js +22 -0
- package/dist/value-props/ValuePropsAlternating.js.map +1 -0
- package/dist/value-props/ValuePropsGrid.d.ts +3 -0
- package/dist/value-props/ValuePropsGrid.d.ts.map +1 -0
- package/dist/value-props/ValuePropsGrid.js +23 -0
- package/dist/value-props/ValuePropsGrid.js.map +1 -0
- package/dist/value-props/ValuePropsIconStrip.d.ts +3 -0
- package/dist/value-props/ValuePropsIconStrip.d.ts.map +1 -0
- package/dist/value-props/ValuePropsIconStrip.js +11 -0
- package/dist/value-props/ValuePropsIconStrip.js.map +1 -0
- package/dist/value-props/index.d.ts +6 -0
- package/dist/value-props/index.d.ts.map +1 -0
- package/dist/value-props/index.js +6 -0
- package/dist/value-props/index.js.map +1 -0
- 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 @@
|
|
|
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 @@
|
|
|
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":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAE9D,MAAM,CAAC,OAAO,UAAU,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAkB;IACpG,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC1E,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5E,MAAM,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/E,MAAM,QAAQ,GAAI,OAAO,CAAC,KAAmB,IAAI,EAAE,CAAC;IACpD,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,IAAI,OAAO,IAAI,KAAK,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC;QACrE,MAAM,GAAG,GAAG,IAA+B,CAAC;QAC5C,OAAO;YACL,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC;YACpD,UAAU,EAAE,UAAU,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,KAAK,CAAC;SACpD,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY,CAAC;IACzE,MAAM,SAAS,GAAG,OAAO,KAAK,SAAS,CAAC;IACxC,MAAM,WAAW,GAAG,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,YAAY,CAAC;IACzE,MAAM,YAAY,GAAG,OAAO,KAAK,aAAa,CAAC;IAC/C,MAAM,eAAe,GAAG,OAAO,KAAK,gBAAgB,CAAC;IAErD,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,eAAe;YAAE,OAAO;QAC7B,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAI,CAAC,UAAU,CAAC,OAAO;gBAAE,OAAO;YAChC,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC;YACxD,MAAM,MAAM,GAAG,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC;YAC5E,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,SAAS,GAAG,cAAc,MAAM,KAAK,CAAC;QACjE,CAAC,CAAC;QACF,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/D,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAC9D,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,MAAM,QAAQ,GAAI,OAAO,CAAC,WAA0B,IAAI,MAAM,CAAC;IAC/D,MAAM,gBAAgB,GAAG,QAAQ,KAAK,MAAM,IAAI,QAAQ,CAAC;IACzD,MAAM,IAAI,GAAG,QAAQ,EAAE,UAAU,IAAI,MAAM,CAAC;IAE5C,qFAAqF;IACrF,IAAI,gBAAgB,EAAE,CAAC;QACrB,MAAM,UAAU,GAAG,CAAC,WAAW,CAAC;QAChC,MAAM,YAAY,GAAG,QAAQ,EAAE,mBAAmB,CAAC;QACnD,qHAAqH;QACrH,MAAM,WAAW,GAAG,YAAY,IAAI,CAAC,UAAU;YAC7C,CAAC,CAAC,mDAAmD;YACrD,CAAC,CAAC,mDAAmD,CAAC,CAAC;QAEzD,OAAO,CACL,mBACE,SAAS,EAAC,0BAA0B,EACpC,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAG7D,cACE,GAAG,EAAE,UAAU,mBACD,WAAW,EACzB,SAAS,EAAC,+EAA+E,EACzF,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC,EAAE,YAE9H,KAAC,SAAS,IACR,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,QAAQ,EACb,GAAG,EAAC,OAAO,EACX,SAAS,EAAC,eAAe,EACzB,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,GAC1B,GACE,EAGN,cACE,SAAS,EAAE,uDACT,UAAU,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBACvC,EAAE,EACF,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAE1B,eAAK,SAAS,EAAC,UAAU,aACtB,OAAO,IAAI,CACV,6BAAiB,SAAS,EAAC,SAAS,EAAC,mDAAmD,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,YAClK,OAAO,GACN,CACL,EACD,8BACgB,UAAU,EACxB,SAAS,EAAC,kEAAkE,EAC5E,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,YAExH,KAAC,cAAc,IAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAqC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAG,OAAO,CAAC,wBAAqC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,eAAqC,EAAE,KAAK,EAAG,OAAO,CAAC,uBAAoC,IAAI,EAAE,GAAI,GAC5U,EACJ,OAAO,IAAI,CACV,6BAAiB,SAAS,EAAC,SAAS,EAAC,yBAAyB,EAAC,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,YACrL,OAAO,GACN,CACL,EACA,OAAO,IAAI,CACV,kCACgB,UAAU,EACxB,SAAS,EAAC,yGAAyG,EACnH,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,uDAAuD,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC,EAAE,YAE7J,OAAO,GACD,CACV,EAEA,OAAO,CAAC,kBAAkB,IAAI,CAC7B,cAAK,SAAS,EAAC,MAAM,YACnB,aACE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,iBAA2B,CAAC,IAAI,GAAG,EAC5D,SAAS,EAAC,wFAAwF,EAClG,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAElD,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAU,EACrD,UAAU,CAAC,OAAO,CAAC,kBAA4B,CAAC,IAC/C,GACA,CACP,EAEA,OAAO,CAAC,iBAAiB,IAAI,CAC5B,YAAG,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,YAC3E,UAAU,CAAC,OAAO,CAAC,iBAA2B,CAAC,GAC9C,CACL,EAEA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAK,OAAO,CAAC,WAAmD,CAAC,MAAM,GAAG,CAAC,IAAI,CAChH,cAAK,SAAS,EAAC,uCAAuC,YAClD,OAAO,CAAC,WAAmD,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAC/E,gBAAgB,SAAS,EAAC,+CAA+C,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAC3H,yBAAO,IAAI,CAAC,IAAI,GAAQ,EAAC,IAAI,CAAC,IAAI,KADzB,GAAG,CAEP,CACR,CAAC,GACE,CACP,IACG,GACF,EAGN,cAAK,SAAS,EAAC,WAAW,YACxB,KAAC,SAAS,IAAC,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,GAAG,EAAC,OAAO,EAAC,SAAS,EAAC,QAAQ,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,GAAI,GACrH,IACE,CACX,CAAC;IACJ,CAAC;IAED,OAAO,CACL,kBACE,SAAS,EAAC,uDAAuD,EACjE,KAAK,EAAE,EAAE,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,YAE5C,eACE,SAAS,EAAE,mCACT,WAAW,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,aACxC,gCAAgC,aAGhC,eAAK,SAAS,EAAC,wBAAwB,aACpC,OAAO,IAAI,CACV,6BACgB,SAAS,EACvB,SAAS,EAAC,mDAAmD,EAC7D,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,YAE3E,OAAO,GACN,CACL,EACD,8BACgB,UAAU,EACxB,SAAS,EAAC,kEAAkE,EAC5E,KAAK,EAAE;gCACL,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,SAAS;gCAC3C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gCACzB,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;6BACtC,YAED,KAAC,cAAc,IAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,eAAqC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,cAAc,EAAG,OAAO,CAAC,wBAAqC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,eAAqC,EAAE,KAAK,EAAG,OAAO,CAAC,uBAAoC,IAAI,EAAE,GAAI,GAC5U,EACJ,OAAO,IAAI,CACV,6BACgB,SAAS,EACvB,SAAS,EAAC,kCAAkC,EAC5C,KAAK,EAAE;gCACL,UAAU,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,cAAc;gCAC7C,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;gCACzB,GAAG,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC;6BACrC,YAEA,OAAO,GACN,CACL,EACA,OAAO,IAAI,CACV,kCACgB,UAAU,EACxB,SAAS,EAAC,yGAAyG,EACnH,KAAK,EAAE;gCACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;gCACrC,YAAY,EAAE,uDAAuD;gCACrE,GAAG,OAAO,CAAC,aAAa,EAAE,UAAU,CAAC;6BACtC,YAEA,OAAO,GACD,CACV,EAEA,OAAO,CAAC,kBAAkB,IAAI,CAC7B,cAAK,SAAS,EAAC,MAAM,YACnB,aACE,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,iBAA2B,CAAC,IAAI,GAAG,EAC5D,SAAS,EAAC,wFAAwF,EAClG,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,aAElD,eAAM,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,uBAAU,EACrD,UAAU,CAAC,OAAO,CAAC,kBAA4B,CAAC,IAC/C,GACA,CACP,EAEA,OAAO,CAAC,iBAAiB,IAAI,CAC5B,YAAG,SAAS,EAAC,cAAc,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,YAC3E,UAAU,CAAC,OAAO,CAAC,iBAA2B,CAAC,GAC9C,CACL,EAEA,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,IAAK,OAAO,CAAC,WAAmD,CAAC,MAAM,GAAG,CAAC,IAAI,CAChH,cAAK,SAAS,EAAC,uCAAuC,YAClD,OAAO,CAAC,WAAmD,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC,CAC/E,gBAAgB,SAAS,EAAC,+CAA+C,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,aAC3H,yBAAO,IAAI,CAAC,IAAI,GAAQ,EAAC,IAAI,CAAC,IAAI,KADzB,GAAG,CAEP,CACR,CAAC,GACE,CACP,IACG,EAGN,eACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,yDACT,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,EACtC,IAAI,WAAW,IAAI,SAAS,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,EAAE,EAAE,aAElE,QAAQ,CAAC,CAAC,CAAC,CACV,KAAC,SAAS,qBACM,WAAW,EACzB,GAAG,EAAE,QAAQ,EACb,GAAG,EAAE,QAAQ,EACb,GAAG,EAAC,OAAO,EACX,gBAAgB,EAAE,QAAQ,KAAK,MAAM,EACrC,SAAS,EAAE,UAAU,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,EACvD,KAAK,EAAE;gCACL,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS;gCAC7C,GAAG,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gCACtE,GAAG,OAAO,CAAC,aAAa,EAAE,WAAW,CAAC;6BACvC,GACD,CACH,CAAC,CAAC,CAAC,IAAI,EAEP,WAAW,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,CAClC,cAAK,SAAS,EAAC,2CAA2C,YACvD,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,eAEE,SAAS,EAAC,gDAAgD,EAC1D,KAAK,EAAE;oCACL,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG;oCACtB,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG;iCAC7B,aAED,cACE,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,eAAe,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,GACrF,EACF,eACE,SAAS,EAAC,8DAA8D,EACxE,KAAK,EAAE;4CACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE;4CACjC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,IAAI;4CACzB,MAAM,EAAE,eAAe,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE;4CAChE,SAAS,EAAE,cAAc,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,IAAI;yCACrE,aAED,eAAM,SAAS,EAAC,iBAAiB,EAAC,KAAK,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,kBAAU,EACpG,IAAI,CAAC,KAAK,IACP,KAtBD,CAAC,CAuBF,CACP,CAAC,GACE,CACP,IACG,IACF,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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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"}
|