@anker-in/headless-ui 1.3.78 → 1.3.79
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/cjs/biz-components/HeroBanner/HeroBanner.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.d.ts +9 -10
- package/dist/cjs/biz-components/HeroBanner/HeroBannerCarousel.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/index.d.ts +3 -0
- package/dist/cjs/biz-components/HeroBanner/index.js +1 -1
- package/dist/cjs/biz-components/HeroBanner/mediaResolver.d.ts +58 -0
- package/dist/cjs/biz-components/HeroBanner/mediaResolver.js +1 -0
- package/dist/cjs/biz-components/HeroBanner/types.d.ts +116 -8
- package/dist/cjs/biz-components/HeroBanner/types.js +1 -1
- package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.d.ts +9 -9
- package/dist/cjs/biz-components/SecondaryBanner/SecondaryBannerCarousel.js +1 -1
- package/dist/cjs/biz-components/SecondaryBanner/index.d.ts +53 -6
- package/dist/cjs/biz-components/SecondaryBanner/index.js +1 -1
- package/dist/cjs/biz-components/index.d.ts +1 -0
- package/dist/cjs/biz-components/index.js +1 -1
- package/dist/cjs/helpers/ScrollLoadVideo.js +1 -1
- package/dist/cjs/hooks/useCarouselPlayback.d.ts +110 -0
- package/dist/cjs/hooks/useCarouselPlayback.js +1 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/shared/CarouselControls.d.ts +75 -0
- package/dist/cjs/shared/CarouselControls.js +1 -0
- package/dist/esm/biz-components/HeroBanner/HeroBanner.js +1 -1
- package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.d.ts +9 -10
- package/dist/esm/biz-components/HeroBanner/HeroBannerCarousel.js +1 -1
- package/dist/esm/biz-components/HeroBanner/index.d.ts +3 -0
- package/dist/esm/biz-components/HeroBanner/index.js +1 -1
- package/dist/esm/biz-components/HeroBanner/mediaResolver.d.ts +58 -0
- package/dist/esm/biz-components/HeroBanner/mediaResolver.js +1 -0
- package/dist/esm/biz-components/HeroBanner/types.d.ts +116 -8
- package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.d.ts +9 -9
- package/dist/esm/biz-components/SecondaryBanner/SecondaryBannerCarousel.js +1 -1
- package/dist/esm/biz-components/SecondaryBanner/index.d.ts +53 -6
- package/dist/esm/biz-components/SecondaryBanner/index.js +1 -1
- package/dist/esm/biz-components/index.d.ts +1 -0
- package/dist/esm/biz-components/index.js +1 -1
- package/dist/esm/helpers/ScrollLoadVideo.js +1 -1
- package/dist/esm/hooks/useCarouselPlayback.d.ts +110 -0
- package/dist/esm/hooks/useCarouselPlayback.js +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/shared/CarouselControls.d.ts +75 -0
- package/dist/esm/shared/CarouselControls.js +1 -0
- package/package.json +1 -1
- package/style.css +32 -23
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";"use client";var
|
|
1
|
+
"use strict";"use client";var U=Object.create;var u=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,ee=Object.prototype.hasOwnProperty;var te=(n,e)=>{for(var t in e)u(n,t,{get:e[t],enumerable:!0})},z=(n,e,t,d)=>{if(e&&typeof e=="object"||typeof e=="function")for(let p of Y(e))!ee.call(n,p)&&p!==t&&u(n,p,{get:()=>e[p],enumerable:!(d=X(e,p))||d.enumerable});return n};var g=(n,e,t)=>(t=n!=null?U(Z(n)):{},z(e||!n||!n.__esModule?u(t,"default",{value:n,enumerable:!0}):t,n)),ae=n=>z(u({},"__esModule",{value:!0}),n);var ie={};te(ie,{default:()=>ne,secondaryBannerVariants:()=>P});module.exports=ae(ie);var a=require("react/jsx-runtime"),C=g(require("react")),M=require("class-variance-authority"),x=g(require("jump.js")),i=require("../../helpers/index.js"),o=require("../../components/index.js"),A=require("../../shared/Styles.js"),D=g(require("../Media/index.js")),N=require("../AiuiProvider/index.js"),O=g(require("./SecondaryBannerCarousel.js"));const P=(0,M.cva)("text-info-primary relative w-full",{variants:{size:{sm:"tablet:aspect-[768/480] laptop:aspect-[1024/480] desktop:aspect-[1440/480] lg-desktop:aspect-[1920/480] aspect-[390/480]",base:"tablet:aspect-[768/660] laptop:aspect-[1024/432] desktop:aspect-[1440/576] lg-desktop:aspect-[1920/720] aspect-[390/660]",lg:"tablet:aspect-[768/660] laptop:aspect-[1024/520] desktop:aspect-[1440/700] lg-desktop:aspect-[1920/930] aspect-[390/660]",xlg:"tablet:aspect-[768/1320] laptop:aspect-[1024/864] desktop:aspect-[1440/1152] lg-desktop:aspect-[1920/1440] aspect-[390/1440] overflow-visible"}},defaultVariants:{size:"base"}}),L=C.forwardRef(({className:n,classNames:e={},data:t,jumpOptions:d={},isActive:p,a11yLabels:w,...h},k)=>{const{pcImage:V,padImage:_,mobileImage:j,isVideoLoop:H,endDate:B,endDate_tz:E,dateFormat:J,size:R,iconArray:b,theme:F,primaryButton:s,secondaryButton:r,title:W,titleTag:$}=t,q=H??!0,y=R??"base",G=F??"light",K=$??"h2",{locale:v="us"}=(0,N.useAiuiContext)(),T={...{duration:500,offset:0},...d},f=C.useId(),m=W?`${f}-title`:void 0,S=t.subtitle?`${f}-subtitle`:void 0,I=t.superTitle?`${f}-super-title`:void 0,Q=[I,S].filter(Boolean).join(" ")||void 0;return t.items&&t.items.length>0?(0,a.jsx)(O.default,{data:t,className:n,classNames:e,jumpOptions:d,a11yLabels:w,ref:k,...h}):(0,a.jsxs)("section",{ref:k,role:"banner","aria-labelledby":m,"aria-describedby":Q,className:(0,i.cn)({"aiui-dark":G==="dark"},P({size:y}),n,e?.root),...h,children:[(0,a.jsx)("div",{className:(0,i.cn)("absolute inset-0",{"h-fit":y==="xlg"}),children:(0,a.jsx)(D.default,{pcImage:V,padImage:_,mobileImage:j,className:"size-full",imgClassName:"object-cover",videoClassName:"object-cover",muted:!0,loop:q,playsInline:!0,autoPlay:p??!0})}),(0,a.jsxs)("div",{className:(0,i.cn)("banner-content laptop:top-[min(50%,50vh)] laptop:-translate-y-1/2 tablet:px-[32px] laptop:px-[64px] lg-desktop:px-[calc(50%-832px)] absolute top-12 z-10 flex flex-col items-start justify-center px-[16px] text-left",e?.content),children:[(0,a.jsxs)("div",{className:"banner-inner-title desktop:gap-2 flex flex-col items-start gap-1",children:[t.superTitle&&(0,a.jsx)(o.Text,{as:"p",size:2,id:I,className:(0,i.cn)("banner-super-title desktop:text-[16px] lg-desktop:text-[18px]",e?.superTitle),html:t.superTitle}),t.title&&(0,a.jsx)(o.Heading,{as:K,size:["xlg","lg"].includes(y)?5:4,id:m,className:(0,i.cn)("banner-title ",e?.title),html:t.title}),t.subtitle&&(0,a.jsx)(o.Text,{as:"p",size:3,id:S,className:(0,i.cn)("banner-subtitle desktop:text-[16px] lg-desktop:text-[18px]",e?.subtitle),html:t.subtitle})]}),B&&(0,a.jsx)("div",{className:"banner-countdown",children:(0,a.jsx)(o.Countdown,{endDate:B,endDate_tz:E,dateFormat:J,variant:"spacious",className:"lg-desktop:mt-8 mt-6"})}),(0,a.jsxs)("div",{className:(0,i.cn)("banner-cta-group lg-desktop:mt-[32px] lg-desktop:gap-3 mt-6 flex gap-2",e?.buttonGroup),children:[r?.text&&(0,a.jsx)(o.Button,{variant:"secondary",onClick:c=>{if(r.link?.startsWith("#")){c.preventDefault();const l=document.querySelector(r.link);l&&(0,x.default)(l,T)}r.onClick?.()},className:(0,i.cn)("",e?.secondaryButton),"aria-describedby":m,...r.link&&!r.link.startsWith("#")?{as:"a",href:(0,i.getLocalizedPath)(r.link,v)}:{},children:r.text}),s?.text&&(0,a.jsx)(o.Button,{onClick:c=>{if(s.link?.startsWith("#")){c.preventDefault();const l=document.querySelector(s.link);l&&(0,x.default)(l,T)}s.onClick?.()},className:(0,i.cn)("",e?.primaryButton),"aria-describedby":m,...s.link&&!s.link.startsWith("#")?{as:"a",href:(0,i.getLocalizedPath)(s.link,v)}:{},children:s.text})]}),Array.isArray(b)&&b.length>0&&(0,a.jsx)("div",{className:"banner-icons desktop:mt-3 lg-desktop:mt-4 mt-2 flex items-center gap-2",role:"group","aria-label":"brand icons",children:b.map((c,l)=>c.pcImage?(0,a.jsx)(o.Picture,{source:c.pcImage.url,alt:c.pcImage.alt||`icon ${l+1}`,role:"img",className:"laptop:h-auto h-[48px] max-w-none",imgClassName:"h-full"},l):null)})]})]})});L.displayName="SecondaryBanner";var ne=(0,A.withLayout)(L);
|
|
@@ -19,6 +19,7 @@ export type { ShelfDisplayProps, ShelfDisplayType, ShelfDisplayItem, SocialEndor
|
|
|
19
19
|
export { default as Evaluate } from './Evaluate/index.js';
|
|
20
20
|
export { default as Category } from './Category/index.js';
|
|
21
21
|
export { default as HeroBanner } from './HeroBanner/index.js';
|
|
22
|
+
export type { HeroBannerProps, HeroBannerSlideData, HeroBannerCarouselConfig, HeroBannerA11yLabels, HeroBannerMediaTier, HeroBannerTieredMedia, HeroBannerTieredMediaFields, HeroBannerMultiThemeFields, } from './HeroBanner/index.js';
|
|
22
23
|
export { default as AccordionCards } from './AccordionCards/index.js';
|
|
23
24
|
export { default as Graphic } from './Graphic/index.js';
|
|
24
25
|
export { default as MediaPlayerBase } from './MediaPlayerBase/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var yt=Object.create;var f=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var ht=Object.getOwnPropertyNames;var Pt=Object.getPrototypeOf,Ct=Object.prototype.hasOwnProperty;var gt=(t,o)=>{for(var i in o)f(t,i,{get:o[i],enumerable:!0})},S=(t,o,i,y)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of ht(o))!Ct.call(t,p)&&p!==i&&f(t,p,{get:()=>o[p],enumerable:!(y=St(o,p))||y.enumerable});return t};var e=(t,o,i)=>(i=t!=null?yt(Pt(t)):{},S(o||!t||!t.__esModule?f(i,"default",{value:t,enumerable:!0}):i,t)),Mt=t=>S(f({},"__esModule",{value:!0}),t);var Tt={};gt(Tt,{AccessoriesProductGrid:()=>a.AccessoriesProductGrid,AccessoryProductCard:()=>m.AccessoryProductCard,AccessoryShelf:()=>m.default,AccordionCards:()=>G.default,ActiveShelf:()=>$e.default,ActivityMechanism:()=>g.default,ActivitySchedule:()=>h.default,AddToCartSuccessPopover:()=>a.AddToCartSuccessPopover,AiuiProvider:()=>_.default,AnchorNavigation:()=>Ye.default,AplusDesc:()=>Te.default,BenefitsTab:()=>xe.default,BizProductProvider:()=>c.default,BrandCardLink:()=>De.default,BrandEquity:()=>M.default,BuyOneGetOneShelf:()=>Ze.default,CartActionButtons:()=>he.default,CartGiftSection:()=>r.CartGiftSection,CartItemRow:()=>r.CartItemRow,CartPerksSection:()=>r.CartPerksSection,CartPriceSummary:()=>r.CartPriceSummary,CartSummaryHeader:()=>r.CartSummaryHeader,CartThirdPartyBanner:()=>r.CartThirdPartyBanner,Category:()=>j.default,CreativeModule:()=>X.default,CreditCouponRedeem:()=>ye.default,CreditsProductCard:()=>n.CreditsProductCard,CreditsShelf:()=>n.default,DownLoad:()=>be.default,Evaluate:()=>D.default,EventSchedule:()=>Qe.default,Faq:()=>E.default,FeatureCards:()=>Ve.default,FeatureShowcase:()=>Re.default,FeaturedBlogPosts:()=>Le.default,Features:()=>ve.default,FootCharger:()=>Ae.default,FooterNavigation:()=>z.default,GiftBox:()=>Be.default,GiftShelf:()=>P.default,GiftTierShelf:()=>C.default,Graphic:()=>O.default,GraphicAttractionBlock:()=>q.default,GraphicMore:()=>Me.default,GraphicOverlay:()=>Z.default,HeaderNavigation:()=>H.default,HeroBanner:()=>F.default,IPC_SEARCH_PAGE:()=>d.IPC_SEARCH_PAGE,IPRedirect:()=>Bt,ImageOverlayShelf:()=>at.default,ImageTextFeature:()=>we.default,ImageTextOverlay:()=>it.default,ImageWithText:()=>ke.default,Ksp:()=>Oe.default,MainProductArea:()=>a.MainProductArea,Marquee:()=>k.default,MarqueeImageContent:()=>s.MarqueeImageContent,MarqueeItem:()=>s.MarqueeItem,MarqueeReview:()=>W.default,MarqueeTextContent:()=>s.MarqueeTextContent,MediaEndorsement:()=>rt.default,MediaPlayerBase:()=>w.default,MediaPlayerMulti:()=>L.default,MediaPlayerSticky:()=>V.default,MediaSceneSwitcher:()=>ze.default,MediaSceneSwitcherV2:()=>Ke.default,MediaShelf:()=>et.default,MediaTextOverlay:()=>ot.default,MemberEquity:()=>v.default,MiniCart:()=>st.default,MiniCartCircleProgress:()=>pt.default,MiniCartDialog:()=>x.default,MiniCartDialogComponent:()=>x.MiniCartDialog,ModalCoupon:()=>lt.default,ModalRegisterSubscribe:()=>nt.default,ModalSmsSubscribe:()=>mt.default,ModalSubscribeConfirm:()=>ut.default,ModalVerify:()=>xt.default,MultiLayoutGraphicBlock:()=>R.default,NotifyMeDialog:()=>Pe.NotifyMeDialog,PAYLOAD_COMPONENT_MAP:()=>vt,PaidShipping:()=>Se.default,ProductActions:()=>re.default,ProductBanner:()=>ne.default,ProductBenefits:()=>ae.default,ProductBenefitsTabs:()=>oe.default,ProductBundle:()=>de.default,ProductCompare:()=>Ge.default,ProductCoupon:()=>ce.default,ProductFreeGift:()=>se.default,ProductFunctionFreeGift:()=>pe.default,ProductGallery:()=>le.default,ProductGridBox:()=>ue.default,ProductHero:()=>qe.default,ProductHighlight:()=>ie.default,ProductLottery:()=>Fe.default,ProductNav:()=>_e.default,ProductOptions:()=>fe.default,ProductPaidShipping:()=>ge.default,ProductServiceBenefits:()=>Ce.default,ProductSummary:()=>me.default,PromoBanner:()=>a.PromoBanner,PromotionalBar:()=>Je.default,PurchaseBar:()=>te.default,SceneProductCard:()=>u.SceneProductCard,SceneShelf:()=>u.default,SceneShelfV2:()=>l.default,SceneShelfV2ProductCard:()=>l.SceneShelfV2ProductCard,SceneShelfV3:()=>tt.default,SearchPage:()=>K.default,SearchPageTabType:()=>d.SearchPageTabType,SecondaryBanner:()=>Xe.default,SectionHeader:()=>a.SectionHeader,SelectStore:()=>Ie.default,ShelfDisplay:()=>b.default,ShelfDisplayHorizontal:()=>A.default,Slogan:()=>T.default,Spacer:()=>I.default,Specs:()=>$.default,SpecsComparison:()=>He.default,SwiperBox:()=>J.default,TabGroup:()=>ee.default,TabWithImage:()=>Ee.default,Tabs:()=>Y.default,TabsWithMedia:()=>Ne.default,ThreeDCarousel:()=>Ue.default,Title:()=>B.default,VideoFeature:()=>We.default,VideoModal:()=>Q.VideoModal,WebPushPopup:()=>ft.default,WheelLottery:()=>je.default,WhyChoose:()=>N.default,useAiuiContext:()=>ct.useAiuiContext,useBizProductContext:()=>c.useBizProductContext,useEmarsysWebPush:()=>dt.useEmarsysWebPush,withLayout:()=>U.withLayout});module.exports=Mt(Tt);var a=require("./AccessoriesShelf/index.js"),h=e(require("./ActivitySchedule/index.js")),P=e(require("./GiftShelf/index.js")),C=e(require("./GiftTierShelf/index.js")),g=e(require("./ActivityMechanism/index.js")),M=e(require("./BrandEquity/index.js")),v=e(require("./MemberEquity/index.js")),T=e(require("./Slogan/index.js")),B=e(require("./Title/index.js")),I=e(require("./Spacer/index.js")),b=e(require("./ShelfDisplay/index.js")),A=e(require("./ShelfDisplayHorizontal/index.js")),D=e(require("./Evaluate/index.js")),j=e(require("./Category/index.js")),F=e(require("./HeroBanner/index.js")),G=e(require("./AccordionCards/index.js")),O=e(require("./Graphic/index.js")),w=e(require("./MediaPlayerBase/index.js")),V=e(require("./MediaPlayerSticky/index.js")),L=e(require("./MediaPlayerMulti/index.js")),k=e(require("./Marquee/index.js")),W=e(require("./MarqueeReview/index.js")),N=e(require("./WhyChoose/index.js")),E=e(require("./Faq/index.js")),s=require("./Marquee/index.js"),R=e(require("./MultiLayoutGraphicBlock/index.js")),q=e(require("./GraphicAttractionBlock/index.js")),H=e(require("./HeaderNavigation/index.js")),z=e(require("./FooterNavigation/index.js")),K=e(require("./SearchPage/index.js")),d=require("./SearchPage/types.js"),U=require("../shared/Styles.js"),_=e(require("./AiuiProvider/index.js")),Y=e(require("./Tabs/index.js")),J=e(require("./SwiperBox/index.js")),Q=require("./VideoModal/index.js"),X=e(require("./CreativeModule/index.js")),Z=e(require("./GraphicOverlay/index.js")),$=e(require("./Specs/index.js")),ee=e(require("./TabsGroup/index.js")),c=e(require("./Listing/BizProductProvider.js")),te=e(require("./Listing/components/PurchaseBar/index.js")),re=e(require("./Listing/components/PurchaseBar/ProductActions/index.js")),oe=e(require("./Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js")),ae=e(require("./Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js")),ie=e(require("./Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js")),se=e(require("./Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js")),pe=e(require("./Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js")),fe=e(require("./Listing/components/ProductCard/ProductDetail/ProductOptions/index.js")),de=e(require("./Listing/components/ProductCard/ProductDetail/ProductBundle/index.js")),ce=e(require("./Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js")),ne=e(require("./Listing/components/ProductCard/ProductDetail/ProductBanner/index.js")),ue=e(require("./Listing/components/ProductCard/ProductGridBox.js")),le=e(require("./Listing/components/ProductCard/ProductGallery/index.js")),me=e(require("./Listing/components/ProductCard/ProductSummary/index.js")),xe=e(require("./Listing/components/ProductCard/ProductDetail/BenefitsTab.js")),ye=e(require("./Listing/components/ProductCard/ProductDetail/CreditCouponRedeem/index.js")),Se=e(require("./Listing/components/PaidShipping/index.js")),he=e(require("./Listing/components/CartActionButtons/index.js")),Pe=require("./NotifyMeDialog/index.js"),Ce=e(require("./Listing/components/ProductCard/ProductDetail/ProductServiceBenefits/index.js")),ge=e(require("./Listing/components/ProductCard/ProductPaidShipping/index.js")),Me=e(require("./GraphicMore/index.js")),ve=e(require("./Features/index.js")),Te=e(require("./AplusDesc/index.js")),Be=e(require("./GiftBox/index.js")),Ie=e(require("./SelectStore/index.js")),be=e(require("./DownLoad/index.js")),Ae=e(require("./FootCharger/index.js")),De=e(require("./BrandCardLink/index.js")),Bt=e(require("./IPRedirect/index.js")),je=e(require("./WheelLottery/index.js")),Fe=e(require("./ProductLottery/index.js")),Ge=e(require("./ProductCompare/index.js")),Oe=e(require("./Ksp/index.js")),we=e(require("./ImageTextFeature/index.js")),Ve=e(require("./FeatureCards/index.js")),Le=e(require("./FeaturedBlogPosts/index.js")),ke=e(require("./ImageWithText/index.js")),We=e(require("./VideoFeature/index.js")),Ne=e(require("./TabsWithMedia/index.js")),Ee=e(require("./TabWithImage/index.js")),Re=e(require("./FeatureShowcase/index.js")),qe=e(require("./ProductHero/index.js")),He=e(require("./SpecsComparison/index.js")),ze=e(require("./MediaSceneSwitcher/index.js")),Ke=e(require("./MediaSceneSwitcherV2/index.js")),Ue=e(require("./ThreeDCarousel/index.js")),_e=e(require("./ProductNav/index.js")),Ye=e(require("./AnchorNavigation/index.js")),Je=e(require("./PromotionalBar/index.js")),Qe=e(require("./EventSchedule/index.js")),Xe=e(require("./SecondaryBanner/index.js")),Ze=e(require("./BuyOneGetOneShelf/index.js")),$e=e(require("./ActiveShelf/index.js")),et=e(require("./MediaShelf/index.js")),n=e(require("./CreditsShelf/index.js")),u=e(require("./SceneShelf/index.js")),l=e(require("./SceneShelfV2/index.js")),tt=e(require("./SceneShelfV3/index.js")),rt=e(require("./MediaEndorsement/index.js")),ot=e(require("./MediaTextOverlay/index.js")),at=e(require("./ImageOverlayShelf/index.js")),m=e(require("./AccessoriesShelf/components/AccessoryShelf/index.js")),it=e(require("./ImageTextOverlay/index.js")),st=e(require("./MiniCart/index.js")),pt=e(require("./MiniCart/CircleProgress.js")),x=e(require("./MiniCart/MiniCartDialog.js")),ft=e(require("./WebPushPopup/index.js")),dt=require("../hooks/useEmarsysWebPush.js"),r=require("./CartDetail/index.js"),ct=require("./AiuiProvider/index.js"),nt=e(require("./ModalRegisterSubscribe/index.js")),ut=e(require("./ModalSubscribeConfirm/index.js")),lt=e(require("./ModalCoupon/index.js")),mt=e(require("./ModalSmsSubscribe/index.js")),xt=e(require("./ModalVerify/index.js"));const vt={ActivityMechanism:"ActivityMechanism",ActivitySchedule:"ActivitySchedule",AnchorNavigation:"AnchorNavigation",EventSchedule:"EventSchedule",FeatureCards:"FeatureCards",GiftShelf:"GiftShelf",GiftTierShelf:"GiftTierShelf",ImageTextFeature:"ImageTextFeature",ImageTextOverlay:"ImageTextOverlay",ImageWithText:"ImageWithText",MarqueeReview:"MarqueeReview",MediaSceneSwitcher:"MediaSceneSwitcher",ProductCompare:"ProductCompare",ProductHero:"ProductHero",ProductNav:"ProductNav",PromotionalBar:"PromotionalBar",TabsWithMedia:"TabsWithMedia",ThreeDCarousel:"ThreeDCarousel",VideoFeature:"VideoFeature","ipc-accordioncards":"AccordionCards","ipc-active-shelf":"ActiveShelf","ipc-add-to-cart-success-popover":"AddToCartSuccessPopover","ipc-aplusdesc":"AplusDesc","ipc-banner":"HeroBanner","ipc-bogo-shelf":"BuyOneGetOneShelf","ipc-brand-card-link":"BrandCardLink","ipc-brand-equity":"BrandEquity","ipc-category":"Category","ipc-creativemodule":"CreativeModule","ipc-credits-shelf":"CreditsShelf","ipc-download":"DownLoad","ipc-evaluate":"Evaluate","ipc-faq":"Faq","ipc-features":"Features","ipc-featured-blog-posts":"FeaturedBlogPosts","ipc-footcharger":"FootCharger","ipc-ga-block":"GraphicAttractionBlock","ipc-giftbox":"GiftBox","ipc-graphic":"Graphic","ipc-graphicmore":"GraphicMore","ipc-graphicoverlay":"GraphicOverlay","ipc-image-overlay-shelf":"ImageOverlayShelf","ipc-marquee":"Marquee","ipc-media-endorsement":"MediaEndorsement","ipc-media-shelf":"MediaShelf","ipc-media-scene-switcher-v2":"MediaSceneSwitcherV2","ipc-media-text-overlay":"MediaTextOverlay","ipc-mediaplayerbase":"MediaPlayerBase","ipc-mediaplayermulti":"MediaPlayerMulti","ipc-mediaplayersticky":"MediaPlayerSticky","ipc-member-equity":"MemberEquity","ipc-mini-cart":"MiniCart","ipc-mlg-block":"MultiLayoutGraphicBlock","ipc-notify-me-dialog":"NotifyMeDialog","ipc-product-lottery":"ProductLottery","ipc-scene-shelf":"SceneShelf","ipc-scene-shelf-v2":"SceneShelfV2","ipc-scene-shelf-v3":"SceneShelfV3","ipc-search-page":"SearchPage","ipc-search-page-tabs":"SearchPage","ipc-secondary-banner":"SecondaryBanner","ipc-selectstore":"SelectStore","ipc-shelfdisplay":"ShelfDisplay","ipc-shelfdisplay-horizontal":"ShelfDisplayHorizontal","ipc-slogan":"Slogan","ipc-spacer":"Spacer","ipc-specs":"Specs","ipc-tabs":"Tabs","ipc-title":"Title","ipc-wheel-lottery":"WheelLottery","ipc-whychoose":"WhyChoose",ksp:"Ksp",modalCoupon:"ModalCoupon",modalRegisterSubscribe:"ModalRegisterSubscribe",modalSmsSubscribe:"ModalSmsSubscribe",modalSubscribeConfirm:"ModalSubscribeConfirm",modalVerify:"ModalVerify"};
|
|
1
|
+
"use strict";var yt=Object.create;var d=Object.defineProperty;var St=Object.getOwnPropertyDescriptor;var ht=Object.getOwnPropertyNames;var Pt=Object.getPrototypeOf,Ct=Object.prototype.hasOwnProperty;var gt=(t,o)=>{for(var i in o)d(t,i,{get:o[i],enumerable:!0})},S=(t,o,i,y)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of ht(o))!Ct.call(t,p)&&p!==i&&d(t,p,{get:()=>o[p],enumerable:!(y=St(o,p))||y.enumerable});return t};var e=(t,o,i)=>(i=t!=null?yt(Pt(t)):{},S(o||!t||!t.__esModule?d(i,"default",{value:t,enumerable:!0}):i,t)),Mt=t=>S(d({},"__esModule",{value:!0}),t);var Tt={};gt(Tt,{AccessoriesProductGrid:()=>a.AccessoriesProductGrid,AccessoryProductCard:()=>m.AccessoryProductCard,AccessoryShelf:()=>m.default,AccordionCards:()=>G.default,ActiveShelf:()=>$e.default,ActivityMechanism:()=>g.default,ActivitySchedule:()=>h.default,AddToCartSuccessPopover:()=>a.AddToCartSuccessPopover,AiuiProvider:()=>_.default,AnchorNavigation:()=>Ye.default,AplusDesc:()=>Te.default,BenefitsTab:()=>xe.default,BizProductProvider:()=>c.default,BrandCardLink:()=>De.default,BrandEquity:()=>M.default,BuyOneGetOneShelf:()=>Ze.default,CartActionButtons:()=>he.default,CartGiftSection:()=>r.CartGiftSection,CartItemRow:()=>r.CartItemRow,CartPerksSection:()=>r.CartPerksSection,CartPriceSummary:()=>r.CartPriceSummary,CartSummaryHeader:()=>r.CartSummaryHeader,CartThirdPartyBanner:()=>r.CartThirdPartyBanner,Category:()=>F.default,CreativeModule:()=>X.default,CreditCouponRedeem:()=>ye.default,CreditsProductCard:()=>n.CreditsProductCard,CreditsShelf:()=>n.default,DownLoad:()=>be.default,Evaluate:()=>D.default,EventSchedule:()=>Qe.default,Faq:()=>E.default,FeatureCards:()=>Le.default,FeatureShowcase:()=>He.default,FeaturedBlogPosts:()=>Ve.default,Features:()=>Be.default,FootCharger:()=>Ae.default,FooterNavigation:()=>z.default,GiftBox:()=>ve.default,GiftShelf:()=>P.default,GiftTierShelf:()=>C.default,Graphic:()=>O.default,GraphicAttractionBlock:()=>R.default,GraphicMore:()=>Me.default,GraphicOverlay:()=>Z.default,HeaderNavigation:()=>q.default,HeroBanner:()=>j.default,IPC_SEARCH_PAGE:()=>f.IPC_SEARCH_PAGE,IPRedirect:()=>vt,ImageOverlayShelf:()=>at.default,ImageTextFeature:()=>we.default,ImageTextOverlay:()=>it.default,ImageWithText:()=>ke.default,Ksp:()=>Oe.default,MainProductArea:()=>a.MainProductArea,Marquee:()=>k.default,MarqueeImageContent:()=>s.MarqueeImageContent,MarqueeItem:()=>s.MarqueeItem,MarqueeReview:()=>W.default,MarqueeTextContent:()=>s.MarqueeTextContent,MediaEndorsement:()=>rt.default,MediaPlayerBase:()=>w.default,MediaPlayerMulti:()=>V.default,MediaPlayerSticky:()=>L.default,MediaSceneSwitcher:()=>ze.default,MediaSceneSwitcherV2:()=>Ke.default,MediaShelf:()=>et.default,MediaTextOverlay:()=>ot.default,MemberEquity:()=>B.default,MiniCart:()=>st.default,MiniCartCircleProgress:()=>pt.default,MiniCartDialog:()=>x.default,MiniCartDialogComponent:()=>x.MiniCartDialog,ModalCoupon:()=>ut.default,ModalRegisterSubscribe:()=>nt.default,ModalSmsSubscribe:()=>mt.default,ModalSubscribeConfirm:()=>lt.default,ModalVerify:()=>xt.default,MultiLayoutGraphicBlock:()=>H.default,NotifyMeDialog:()=>Pe.NotifyMeDialog,PAYLOAD_COMPONENT_MAP:()=>Bt,PaidShipping:()=>Se.default,ProductActions:()=>re.default,ProductBanner:()=>ne.default,ProductBenefits:()=>ae.default,ProductBenefitsTabs:()=>oe.default,ProductBundle:()=>fe.default,ProductCompare:()=>Ge.default,ProductCoupon:()=>ce.default,ProductFreeGift:()=>se.default,ProductFunctionFreeGift:()=>pe.default,ProductGallery:()=>ue.default,ProductGridBox:()=>le.default,ProductHero:()=>Re.default,ProductHighlight:()=>ie.default,ProductLottery:()=>je.default,ProductNav:()=>_e.default,ProductOptions:()=>de.default,ProductPaidShipping:()=>ge.default,ProductServiceBenefits:()=>Ce.default,ProductSummary:()=>me.default,PromoBanner:()=>a.PromoBanner,PromotionalBar:()=>Je.default,PurchaseBar:()=>te.default,SceneProductCard:()=>l.SceneProductCard,SceneShelf:()=>l.default,SceneShelfV2:()=>u.default,SceneShelfV2ProductCard:()=>u.SceneShelfV2ProductCard,SceneShelfV3:()=>tt.default,SearchPage:()=>K.default,SearchPageTabType:()=>f.SearchPageTabType,SecondaryBanner:()=>Xe.default,SectionHeader:()=>a.SectionHeader,SelectStore:()=>Ie.default,ShelfDisplay:()=>b.default,ShelfDisplayHorizontal:()=>A.default,Slogan:()=>T.default,Spacer:()=>I.default,Specs:()=>$.default,SpecsComparison:()=>qe.default,SwiperBox:()=>J.default,TabGroup:()=>ee.default,TabWithImage:()=>Ee.default,Tabs:()=>Y.default,TabsWithMedia:()=>Ne.default,ThreeDCarousel:()=>Ue.default,Title:()=>v.default,VideoFeature:()=>We.default,VideoModal:()=>Q.VideoModal,WebPushPopup:()=>dt.default,WheelLottery:()=>Fe.default,WhyChoose:()=>N.default,useAiuiContext:()=>ct.useAiuiContext,useBizProductContext:()=>c.useBizProductContext,useEmarsysWebPush:()=>ft.useEmarsysWebPush,withLayout:()=>U.withLayout});module.exports=Mt(Tt);var a=require("./AccessoriesShelf/index.js"),h=e(require("./ActivitySchedule/index.js")),P=e(require("./GiftShelf/index.js")),C=e(require("./GiftTierShelf/index.js")),g=e(require("./ActivityMechanism/index.js")),M=e(require("./BrandEquity/index.js")),B=e(require("./MemberEquity/index.js")),T=e(require("./Slogan/index.js")),v=e(require("./Title/index.js")),I=e(require("./Spacer/index.js")),b=e(require("./ShelfDisplay/index.js")),A=e(require("./ShelfDisplayHorizontal/index.js")),D=e(require("./Evaluate/index.js")),F=e(require("./Category/index.js")),j=e(require("./HeroBanner/index.js")),G=e(require("./AccordionCards/index.js")),O=e(require("./Graphic/index.js")),w=e(require("./MediaPlayerBase/index.js")),L=e(require("./MediaPlayerSticky/index.js")),V=e(require("./MediaPlayerMulti/index.js")),k=e(require("./Marquee/index.js")),W=e(require("./MarqueeReview/index.js")),N=e(require("./WhyChoose/index.js")),E=e(require("./Faq/index.js")),s=require("./Marquee/index.js"),H=e(require("./MultiLayoutGraphicBlock/index.js")),R=e(require("./GraphicAttractionBlock/index.js")),q=e(require("./HeaderNavigation/index.js")),z=e(require("./FooterNavigation/index.js")),K=e(require("./SearchPage/index.js")),f=require("./SearchPage/types.js"),U=require("../shared/Styles.js"),_=e(require("./AiuiProvider/index.js")),Y=e(require("./Tabs/index.js")),J=e(require("./SwiperBox/index.js")),Q=require("./VideoModal/index.js"),X=e(require("./CreativeModule/index.js")),Z=e(require("./GraphicOverlay/index.js")),$=e(require("./Specs/index.js")),ee=e(require("./TabsGroup/index.js")),c=e(require("./Listing/BizProductProvider.js")),te=e(require("./Listing/components/PurchaseBar/index.js")),re=e(require("./Listing/components/PurchaseBar/ProductActions/index.js")),oe=e(require("./Listing/components/ProductCard/ProductDetail/ProductBenefitsTabs/index.js")),ae=e(require("./Listing/components/ProductCard/ProductDetail/ProductBenefits/index.js")),ie=e(require("./Listing/components/ProductCard/ProductDetail/ProductHighlight/index.js")),se=e(require("./Listing/components/ProductCard/ProductDetail/ProductFreeGift/index.js")),pe=e(require("./Listing/components/ProductCard/ProductDetail/ProductFunctionFreeGift/index.js")),de=e(require("./Listing/components/ProductCard/ProductDetail/ProductOptions/index.js")),fe=e(require("./Listing/components/ProductCard/ProductDetail/ProductBundle/index.js")),ce=e(require("./Listing/components/ProductCard/ProductDetail/ProductCoupon/index.js")),ne=e(require("./Listing/components/ProductCard/ProductDetail/ProductBanner/index.js")),le=e(require("./Listing/components/ProductCard/ProductGridBox.js")),ue=e(require("./Listing/components/ProductCard/ProductGallery/index.js")),me=e(require("./Listing/components/ProductCard/ProductSummary/index.js")),xe=e(require("./Listing/components/ProductCard/ProductDetail/BenefitsTab.js")),ye=e(require("./Listing/components/ProductCard/ProductDetail/CreditCouponRedeem/index.js")),Se=e(require("./Listing/components/PaidShipping/index.js")),he=e(require("./Listing/components/CartActionButtons/index.js")),Pe=require("./NotifyMeDialog/index.js"),Ce=e(require("./Listing/components/ProductCard/ProductDetail/ProductServiceBenefits/index.js")),ge=e(require("./Listing/components/ProductCard/ProductPaidShipping/index.js")),Me=e(require("./GraphicMore/index.js")),Be=e(require("./Features/index.js")),Te=e(require("./AplusDesc/index.js")),ve=e(require("./GiftBox/index.js")),Ie=e(require("./SelectStore/index.js")),be=e(require("./DownLoad/index.js")),Ae=e(require("./FootCharger/index.js")),De=e(require("./BrandCardLink/index.js")),vt=e(require("./IPRedirect/index.js")),Fe=e(require("./WheelLottery/index.js")),je=e(require("./ProductLottery/index.js")),Ge=e(require("./ProductCompare/index.js")),Oe=e(require("./Ksp/index.js")),we=e(require("./ImageTextFeature/index.js")),Le=e(require("./FeatureCards/index.js")),Ve=e(require("./FeaturedBlogPosts/index.js")),ke=e(require("./ImageWithText/index.js")),We=e(require("./VideoFeature/index.js")),Ne=e(require("./TabsWithMedia/index.js")),Ee=e(require("./TabWithImage/index.js")),He=e(require("./FeatureShowcase/index.js")),Re=e(require("./ProductHero/index.js")),qe=e(require("./SpecsComparison/index.js")),ze=e(require("./MediaSceneSwitcher/index.js")),Ke=e(require("./MediaSceneSwitcherV2/index.js")),Ue=e(require("./ThreeDCarousel/index.js")),_e=e(require("./ProductNav/index.js")),Ye=e(require("./AnchorNavigation/index.js")),Je=e(require("./PromotionalBar/index.js")),Qe=e(require("./EventSchedule/index.js")),Xe=e(require("./SecondaryBanner/index.js")),Ze=e(require("./BuyOneGetOneShelf/index.js")),$e=e(require("./ActiveShelf/index.js")),et=e(require("./MediaShelf/index.js")),n=e(require("./CreditsShelf/index.js")),l=e(require("./SceneShelf/index.js")),u=e(require("./SceneShelfV2/index.js")),tt=e(require("./SceneShelfV3/index.js")),rt=e(require("./MediaEndorsement/index.js")),ot=e(require("./MediaTextOverlay/index.js")),at=e(require("./ImageOverlayShelf/index.js")),m=e(require("./AccessoriesShelf/components/AccessoryShelf/index.js")),it=e(require("./ImageTextOverlay/index.js")),st=e(require("./MiniCart/index.js")),pt=e(require("./MiniCart/CircleProgress.js")),x=e(require("./MiniCart/MiniCartDialog.js")),dt=e(require("./WebPushPopup/index.js")),ft=require("../hooks/useEmarsysWebPush.js"),r=require("./CartDetail/index.js"),ct=require("./AiuiProvider/index.js"),nt=e(require("./ModalRegisterSubscribe/index.js")),lt=e(require("./ModalSubscribeConfirm/index.js")),ut=e(require("./ModalCoupon/index.js")),mt=e(require("./ModalSmsSubscribe/index.js")),xt=e(require("./ModalVerify/index.js"));const Bt={ActivityMechanism:"ActivityMechanism",ActivitySchedule:"ActivitySchedule",AnchorNavigation:"AnchorNavigation",EventSchedule:"EventSchedule",FeatureCards:"FeatureCards",GiftShelf:"GiftShelf",GiftTierShelf:"GiftTierShelf",ImageTextFeature:"ImageTextFeature",ImageTextOverlay:"ImageTextOverlay",ImageWithText:"ImageWithText",MarqueeReview:"MarqueeReview",MediaSceneSwitcher:"MediaSceneSwitcher",ProductCompare:"ProductCompare",ProductHero:"ProductHero",ProductNav:"ProductNav",PromotionalBar:"PromotionalBar",TabsWithMedia:"TabsWithMedia",ThreeDCarousel:"ThreeDCarousel",VideoFeature:"VideoFeature","ipc-accordioncards":"AccordionCards","ipc-active-shelf":"ActiveShelf","ipc-add-to-cart-success-popover":"AddToCartSuccessPopover","ipc-aplusdesc":"AplusDesc","ipc-banner":"HeroBanner","ipc-bogo-shelf":"BuyOneGetOneShelf","ipc-brand-card-link":"BrandCardLink","ipc-brand-equity":"BrandEquity","ipc-category":"Category","ipc-creativemodule":"CreativeModule","ipc-credits-shelf":"CreditsShelf","ipc-download":"DownLoad","ipc-evaluate":"Evaluate","ipc-faq":"Faq","ipc-features":"Features","ipc-featured-blog-posts":"FeaturedBlogPosts","ipc-footcharger":"FootCharger","ipc-ga-block":"GraphicAttractionBlock","ipc-giftbox":"GiftBox","ipc-graphic":"Graphic","ipc-graphicmore":"GraphicMore","ipc-graphicoverlay":"GraphicOverlay","ipc-image-overlay-shelf":"ImageOverlayShelf","ipc-marquee":"Marquee","ipc-media-endorsement":"MediaEndorsement","ipc-media-shelf":"MediaShelf","ipc-media-scene-switcher-v2":"MediaSceneSwitcherV2","ipc-media-text-overlay":"MediaTextOverlay","ipc-mediaplayerbase":"MediaPlayerBase","ipc-mediaplayermulti":"MediaPlayerMulti","ipc-mediaplayersticky":"MediaPlayerSticky","ipc-member-equity":"MemberEquity","ipc-mini-cart":"MiniCart","ipc-mlg-block":"MultiLayoutGraphicBlock","ipc-notify-me-dialog":"NotifyMeDialog","ipc-product-lottery":"ProductLottery","ipc-scene-shelf":"SceneShelf","ipc-scene-shelf-v2":"SceneShelfV2","ipc-scene-shelf-v3":"SceneShelfV3","ipc-search-page":"SearchPage","ipc-search-page-tabs":"SearchPage","ipc-secondary-banner":"SecondaryBanner","ipc-selectstore":"SelectStore","ipc-shelfdisplay":"ShelfDisplay","ipc-shelfdisplay-horizontal":"ShelfDisplayHorizontal","ipc-slogan":"Slogan","ipc-spacer":"Spacer","ipc-specs":"Specs","ipc-tabs":"Tabs","ipc-title":"Title","ipc-wheel-lottery":"WheelLottery","ipc-whychoose":"WhyChoose",ksp:"Ksp",modalCoupon:"ModalCoupon",modalRegisterSubscribe:"ModalRegisterSubscribe",modalSmsSubscribe:"ModalSmsSubscribe",modalSubscribeConfirm:"ModalSubscribeConfirm",modalVerify:"ModalVerify"};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var v=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var O=Object.prototype.hasOwnProperty;var x=(s,r)=>{for(var c in r)v(s,c,{get:r[c],enumerable:!0})},z=(s,r,c,u)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of H(r))!O.call(s,a)&&a!==c&&v(s,a,{get:()=>r[a],enumerable:!(u=T(r,a))||u.enumerable});return s};var C=s=>z(v({},"__esModule",{value:!0}),s);var q={};x(q,{default:()=>D});module.exports=C(q);var b=require("react/jsx-runtime"),o=require("react"),m=require("../helpers/utils.js");const j=({src:s,poster:r,eagerPoster:c=!1,className:u="",videoClassName:a="",autoplay:g=!0,muted:L=!0,loop:i=!0,controls:E=!1,playsInline:R=!0,videoRef:P,intersectionObserverConfig:M={threshold:0,rootMargin:"200px"},...V})=>{const[l,w]=(0,o.useState)(!1),I=(0,o.useRef)(null),p=(0,o.useRef)(null),d=(0,o.useRef)(!1),n=P||I,{threshold:h,rootMargin:y}=M;return(0,o.useEffect)(()=>{const e=n.current;if(!e||i)return;const t=()=>{d.current=!0};return e.addEventListener("ended",t),()=>{e.removeEventListener("ended",t)}},[n,i,l]),(0,o.useEffect)(()=>{const e=n.current;if(!e||!l)return;const t=()=>{!e.paused||e.ended||!i&&d.current||(e.muted=!0,e.play().catch(()=>{}))};return e.addEventListener("canplay",t),()=>e.removeEventListener("canplay",t)},[n,l,i]),(0,o.useEffect)(()=>{const e=new IntersectionObserver(S=>{S.forEach(k=>{if(k.isIntersecting){if(l||w(!0),n.current){const f=n.current;if(!i&&d.current)return;f.muted=!0,f.currentTime=0,f.play().catch(N=>{console.warn("\u89C6\u9891\u81EA\u52A8\u64AD\u653E\u5931\u8D25:",N)})}}else n.current&&n.current.pause()})},{threshold:h,rootMargin:y}),t=p.current;return t&&e.observe(t),()=>{t&&e.unobserve(t)}},[n,i,y,l,h]),(0,b.jsx)("div",{ref:p,className:(0,m.cn)("relative size-full",u),children:(0,b.jsx)("video",{ref:n,src:l?s:void 0,poster:c||l?r:void 0,className:(0,m.cn)("size-full object-cover",a),loop:i,muted:L,controls:E,playsInline:R,preload:"metadata",disablePictureInPicture:!0,"webkit-playsinline":!0,autoPlay:g,...V})})};var D=j;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { type MutableRefObject } from 'react';
|
|
2
|
+
import type { Swiper as SwiperType } from 'swiper';
|
|
3
|
+
/**
|
|
4
|
+
* 2-state carousel playback machine (final interaction matrix 2026-10-12):
|
|
5
|
+
* - AUTOPLAYING: the hook's own countdown timer drives slideNext; progress fill runs
|
|
6
|
+
* - STOPPED: manual pause via the ⏸/▶ button; resumed via ▶ — OR implicitly
|
|
7
|
+
* reset to AUTOPLAYING by ANY manual navigation (arrow / swipe / replay)
|
|
8
|
+
* PC hover has NO effect on the carousel (removed in the interaction-matrix revision).
|
|
9
|
+
*
|
|
10
|
+
* 2026-10-10 beta-bugfix round: the countdown timer is SELF-OWNED
|
|
11
|
+
* (setTimeout + remaining-ms bookkeeping) instead of delegating to Swiper's
|
|
12
|
+
* Autoplay module, whose internal transitionend/touchEnd resume() resurrected
|
|
13
|
+
* stopped carousels (CODING #1452/#1460) and fell back to the module default
|
|
14
|
+
* delay on frames without data-swiper-autoplay (#1453). Keyboard focus within
|
|
15
|
+
* the carousel freezes the countdown until focus leaves (WCAG 2.2.2, #1461).
|
|
16
|
+
*
|
|
17
|
+
* 2026-10-12 final matrix: navigation no longer stops autoplay — the earlier
|
|
18
|
+
* swipe→STOPPED (D4) / arrow-keeps-STOPPED semantics were superseded by the
|
|
19
|
+
* product matrix (arrow/swipe/replay all reset to AUTOPLAYING + fresh budget).
|
|
20
|
+
*/
|
|
21
|
+
export type CarouselPlaybackState = 'AUTOPLAYING' | 'STOPPED';
|
|
22
|
+
/**
|
|
23
|
+
* What caused a slide change. `initial` is reserved for the consumer's mount
|
|
24
|
+
* emission; the hook itself only produces autoplay / arrow / swipe.
|
|
25
|
+
*/
|
|
26
|
+
export type CarouselSlideTrigger = 'initial' | 'autoplay' | 'arrow' | 'swipe';
|
|
27
|
+
export interface UseCarouselPlaybackOptions {
|
|
28
|
+
/** Total slide count */
|
|
29
|
+
frameCount: number;
|
|
30
|
+
/** Resolve the effective autoplay interval (seconds) for a frame; undefined = the frame holds */
|
|
31
|
+
resolveFrameIntervalSec: (index: number) => number | undefined;
|
|
32
|
+
/** Master gate: autoplay runs only when true (valid intervals AND frameCount > 1) */
|
|
33
|
+
isAutoplayEnabled: boolean;
|
|
34
|
+
/** Ref holding the live Swiper instance (populated via handleSwiperInit) */
|
|
35
|
+
swiperRef: MutableRefObject<SwiperType | null>;
|
|
36
|
+
/** Noun used in the aria-live announcement: `${slideStatusLabel} ${n} / ${total}` */
|
|
37
|
+
slideStatusLabel: string;
|
|
38
|
+
/**
|
|
39
|
+
* Optional media choreography on slide change (e.g. pause outgoing videos,
|
|
40
|
+
* play the incoming one). Image-only carousels omit this.
|
|
41
|
+
*/
|
|
42
|
+
onSlideMediaSync?: (newIndex: number) => void;
|
|
43
|
+
/** Fired when the active slide changes, with the cause of the change */
|
|
44
|
+
onSlideChange?: (newIndex: number, trigger: CarouselSlideTrigger) => void;
|
|
45
|
+
/** Fired on arrow navigation, before Swiper confirms the transition */
|
|
46
|
+
onArrowNavigate?: (direction: 'prev' | 'next', fromIndex: number, toIndex: number) => void;
|
|
47
|
+
/** Fired when the pause/play button toggles playback (paused = entered STOPPED) */
|
|
48
|
+
onPauseToggle?: (paused: boolean, activeIndex: number) => void;
|
|
49
|
+
/**
|
|
50
|
+
* 1488: per-frame gate — video frames return true so the countdown RESTARTS
|
|
51
|
+
* with a fresh full budget when the frame's video actually starts playing
|
|
52
|
+
* (slow networks: the poster window no longer eats the frame's interval).
|
|
53
|
+
* If the video never plays, the activation-time budget still ticks away as
|
|
54
|
+
* the fallback deadline, so the frame can never stall forever.
|
|
55
|
+
*/
|
|
56
|
+
delaysCountdownForVideo?: (index: number) => boolean;
|
|
57
|
+
}
|
|
58
|
+
export interface UseCarouselPlaybackResult {
|
|
59
|
+
/** Attach to the carousel root element (merge with any forwarded ref) */
|
|
60
|
+
rootRef: MutableRefObject<Element | null>;
|
|
61
|
+
activeIndex: number;
|
|
62
|
+
playbackState: CarouselPlaybackState;
|
|
63
|
+
/** Bump-key for the progress-fill CSS animation; changes restart the fill */
|
|
64
|
+
resetNonce: number;
|
|
65
|
+
/** aria-live announcement text for manual slide switches (D16) */
|
|
66
|
+
announcement: string;
|
|
67
|
+
/** Effective autoplay interval (seconds) of the active frame; undefined = hold */
|
|
68
|
+
activeFrameIntervalSec: number | undefined;
|
|
69
|
+
/**
|
|
70
|
+
* True while the frame countdown is actually ticking. Drives the progress
|
|
71
|
+
* fill's animationPlayState so the visual fill and the real timer can never
|
|
72
|
+
* desync (unlike the old Swiper-module design).
|
|
73
|
+
*/
|
|
74
|
+
isTimerRunning: boolean;
|
|
75
|
+
/** Wire to Swiper's onSwiper — stores the instance and syncs slide a11y */
|
|
76
|
+
handleSwiperInit: (swiper: SwiperType) => void;
|
|
77
|
+
handleSlideChange: (swiper: SwiperType) => void;
|
|
78
|
+
/** Wire to Swiper's onSlideChangeTransitionEnd — re-syncs inert/aria-hidden after loopFix */
|
|
79
|
+
handleTransitionEnd: (swiper: SwiperType) => void;
|
|
80
|
+
handleSliderFirstMove: (swiper: SwiperType, event: TouchEvent) => void;
|
|
81
|
+
goToSlide: (direction: 'prev' | 'next') => void;
|
|
82
|
+
/** Jump to an arbitrary frame (progress-segment click). Same reset semantics as arrows. */
|
|
83
|
+
goToSlideIndex: (index: number) => void;
|
|
84
|
+
handlePausePlayClick: () => void;
|
|
85
|
+
/**
|
|
86
|
+
* Replay path (final matrix): reset to AUTOPLAYING and restart the current
|
|
87
|
+
* frame with a fresh full countdown (进度圆点从0重新填充).
|
|
88
|
+
*/
|
|
89
|
+
resumeWithFreshCountdown: () => void;
|
|
90
|
+
/** 1488: 视频帧开始真实播放时调用——重启该帧倒计时(每次进场仅生效一次) */
|
|
91
|
+
notifyVideoPlaying: (index: number) => void;
|
|
92
|
+
/** Attach to the carousel root: keyboard focus freezes the countdown (#1461) */
|
|
93
|
+
handleFocus: () => void;
|
|
94
|
+
handleBlur: (e: React.FocusEvent<HTMLElement>) => void;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* useCarouselPlayback — shared carousel interaction state machine + countdown.
|
|
98
|
+
*
|
|
99
|
+
* Owns: playback state machine, self-managed countdown timer (with true
|
|
100
|
+
* freeze/resume), pause/play toggle, IntersectionObserver viewport gating
|
|
101
|
+
* (D17), keyboard-focus gating (WCAG 2.2.2), touch-swipe detection (D4),
|
|
102
|
+
* aria-live announcements (D16), slide inert/aria-hidden sync (#1461) and the
|
|
103
|
+
* progress-fill restart nonce.
|
|
104
|
+
*
|
|
105
|
+
* Video-specific behavior (play-once on STOPPED, replay button, multi-theme)
|
|
106
|
+
* is intentionally NOT here — consumers wire it off the returned
|
|
107
|
+
* playbackState/activeIndex so image-only carousels get a clean subset.
|
|
108
|
+
*/
|
|
109
|
+
export declare const useCarouselPlayback: (options: UseCarouselPlaybackOptions) => UseCarouselPlaybackResult;
|
|
110
|
+
export default useCarouselPlayback;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";"use client";var U=Object.defineProperty;var ie=Object.getOwnPropertyDescriptor;var ue=Object.getOwnPropertyNames;var se=Object.prototype.hasOwnProperty;var ce=(s,i)=>{for(var v in i)U(s,v,{get:i[v],enumerable:!0})},ae=(s,i,v,p)=>{if(i&&typeof i=="object"||typeof i=="function")for(let o of ue(i))!se.call(s,o)&&o!==v&&U(s,o,{get:()=>i[o],enumerable:!(p=ie(i,o))||p.enumerable});return s};var le=s=>ae(U({},"__esModule",{value:!0}),s);var fe={};ce(fe,{default:()=>de,useCarouselPlayback:()=>j});module.exports=le(fe);var e=require("react");const j=s=>{const{frameCount:i,resolveFrameIntervalSec:v,isAutoplayEnabled:p,swiperRef:o,slideStatusLabel:G}=s,x=(0,e.useRef)(null),R=(0,e.useRef)(!1),T=(0,e.useRef)(!1),[c,C]=(0,e.useState)(0),[Y,g]=(0,e.useState)(0),[B,E]=(0,e.useState)(""),[S,m]=(0,e.useState)(p?"AUTOPLAYING":"STOPPED"),[H,q]=(0,e.useState)(!0),[K,$]=(0,e.useState)(!1),L=(0,e.useRef)(S);(0,e.useEffect)(()=>{L.current=S},[S]);const a=(0,e.useRef)(c);(0,e.useEffect)(()=>{a.current=c},[c]);const h=(0,e.useRef)(i);(0,e.useEffect)(()=>{h.current=i});const b=(0,e.useRef)(p);(0,e.useEffect)(()=>{b.current=p});const I=(0,e.useRef)(G);(0,e.useEffect)(()=>{I.current=G});const l=(0,e.useRef)(s);(0,e.useEffect)(()=>{l.current=s});const d=v(c),k=p&&i>1&&S==="AUTOPLAYING"&&H&&!K&&d!==void 0,y=(0,e.useRef)(null),D=(0,e.useRef)(0),V=(0,e.useRef)(0),O=(0,e.useRef)(null),w=(0,e.useRef)({index:c,interval:d}),N=(0,e.useRef)(null),z=(0,e.useCallback)(n=>{l.current.delaysCountdownForVideo?.(n)&&n===a.current&&N.current!==n&&(N.current=n,w.current={index:-1,interval:void 0},g(r=>r+1))},[]),A=(0,e.useCallback)(()=>{y.current!=null&&(clearTimeout(y.current),y.current=null)},[]),F=(0,e.useCallback)(()=>{if(y.current!=null){const n=Date.now()-D.current;O.current=Math.max(0,V.current-n),A()}},[A]),W=(0,e.useCallback)(()=>{y.current=null;const n=o.current;!n||n.destroyed||n.slideNext()},[o]);(0,e.useEffect)(()=>{const n=w.current.index===-1;if((w.current.index!==c||w.current.interval!==d)&&(w.current={index:c,interval:d},O.current=null,n||(N.current=null)),!k||d===void 0){F();return}const r=O.current??d*1e3;return V.current=r,D.current=Date.now(),y.current=setTimeout(W,r),F},[k,c,d,Y,W,F]),(0,e.useEffect)(()=>A,[A]),(0,e.useEffect)(()=>{const n=x.current;if(!n||typeof IntersectionObserver>"u")return;const r=new IntersectionObserver(t=>{const u=t[0];u&&q(u.isIntersecting)},{threshold:.1});return r.observe(n),()=>r.disconnect()},[]);const f=(0,e.useCallback)(()=>{const n=x.current;if(!n||typeof n.querySelectorAll!="function")return;const r=n.querySelectorAll(".swiper-slide");!r.length||!Array.from(r).some(u=>u.classList.contains("swiper-slide-active"))||r.forEach(u=>{const P=u.classList.contains("swiper-slide-active");u.toggleAttribute("inert",!P),P?u.removeAttribute("aria-hidden"):u.setAttribute("aria-hidden","true")})},[]),_=(0,e.useCallback)(n=>{o.current=n,f()},[o,f]);(0,e.useEffect)(()=>{f()},[f]);const J=(0,e.useCallback)(()=>{f()},[f]),Q=(0,e.useCallback)(n=>{const r=n.realIndex;l.current.onSlideMediaSync?.(r);let t=null;R.current?(R.current=!1,E(`${I.current} ${r+1} / ${h.current}`),b.current&&m("AUTOPLAYING"),t="swipe"):T.current?(T.current=!1,t="arrow"):L.current==="AUTOPLAYING"&&(t="autoplay"),C(r),t&&l.current.onSlideChange?.(r,t),f()},[f]),X=(0,e.useCallback)(n=>{const r=h.current;if(r<2)return;const t=a.current,u=n==="next"?(t+1)%r:(t-1+r)%r;E(`${I.current} ${u+1} / ${r}`),C(u),T.current=!0,n==="next"?o.current?.slideNext():o.current?.slidePrev(),b.current&&(m("AUTOPLAYING"),g(P=>P+1)),l.current.onArrowNavigate?.(n,t,u)},[o]),Z=(0,e.useCallback)(n=>{const r=h.current;r<2||n===a.current||n<0||n>=r||(E(`${I.current} ${n+1} / ${r}`),C(n),T.current=!0,o.current?.slideToLoop(n),b.current&&(m("AUTOPLAYING"),g(t=>t+1)),l.current.onArrowNavigate?.(n>a.current?"next":"prev",a.current,n))},[o]),ee=(0,e.useCallback)(()=>{b.current&&(w.current={index:-1,interval:void 0},m("AUTOPLAYING"),g(n=>n+1))},[]),ne=(0,e.useCallback)(()=>{b.current&&(L.current==="STOPPED"?(m("AUTOPLAYING"),l.current.onPauseToggle?.(!1,a.current)):(m("STOPPED"),l.current.onPauseToggle?.(!0,a.current)))},[]),re=(0,e.useCallback)((n,r)=>{const t=r.pointerType;R.current=t!=="mouse"},[]),M=(0,e.useRef)(!1);(0,e.useEffect)(()=>{const n=t=>{t.key==="Tab"&&(M.current=!0)},r=()=>{M.current=!1};return window.addEventListener("keydown",n),window.addEventListener("pointerdown",r),()=>{window.removeEventListener("keydown",n),window.removeEventListener("pointerdown",r)}},[]);const te=(0,e.useCallback)(()=>{M.current&&$(!0)},[]),oe=(0,e.useCallback)(n=>{n.currentTarget.contains(n.relatedTarget)||$(!1)},[]);return{rootRef:x,activeIndex:c,playbackState:S,resetNonce:Y,announcement:B,activeFrameIntervalSec:d,isTimerRunning:k,handleSwiperInit:_,handleSlideChange:Q,handleTransitionEnd:J,handleSliderFirstMove:re,goToSlide:X,goToSlideIndex:Z,handlePausePlayClick:ne,resumeWithFreshCountdown:ee,notifyVideoPlaying:z,handleFocus:te,handleBlur:oe}};var de=j;
|
package/dist/cjs/index.d.ts
CHANGED
|
@@ -10,6 +10,10 @@ export { useGridRowCount } from './hooks/useGridRowCount.js';
|
|
|
10
10
|
export { useIntersectionObserverDelay } from './hooks/useIntersectionObserver.js';
|
|
11
11
|
export { useRollout } from './hooks/useRollout.js';
|
|
12
12
|
export { useViewItemList } from './hooks/useViewItemList.js';
|
|
13
|
+
export { useCarouselPlayback } from './hooks/useCarouselPlayback.js';
|
|
14
|
+
export type { CarouselPlaybackState, CarouselSlideTrigger, UseCarouselPlaybackOptions, UseCarouselPlaybackResult, } from './hooks/useCarouselPlayback.js';
|
|
13
15
|
export { cn, getLocalizedPath, noop } from './helpers/index.js';
|
|
14
16
|
export { formatPrice, languageTerritory, PRICE_SYMBOL } from './helpers/index.js';
|
|
15
17
|
export { LocalizedLink, type LocalizedLinkProps } from './shared/LocalizedLink.js';
|
|
18
|
+
export { CarouselArrows, CarouselProgressControls } from './shared/CarouselControls.js';
|
|
19
|
+
export type { CarouselArrowsProps, CarouselProgressControlsProps } from './shared/CarouselControls.js';
|
package/dist/cjs/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var
|
|
1
|
+
"use strict";var R=Object.create;var l=Object.defineProperty;var T=Object.getOwnPropertyDescriptor;var h=Object.getOwnPropertyNames;var w=Object.getPrototypeOf,S=Object.prototype.hasOwnProperty;var j=(o,r)=>{for(var e in r)l(o,e,{get:r[e],enumerable:!0})},p=(o,r,e,f)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of h(r))!S.call(o,t)&&t!==e&&l(o,t,{get:()=>r[t],enumerable:!(f=T(r,t))||f.enumerable});return o},n=(o,r,e)=>(p(o,r,"default"),e&&p(e,r,"default")),z=(o,r,e)=>(e=o!=null?R(w(o)):{},p(r||!o||!o.__esModule?l(e,"default",{value:o,enumerable:!0}):e,o)),A=o=>p(l({},"__esModule",{value:!0}),o);var u={};j(u,{CarouselArrows:()=>m.CarouselArrows,CarouselProgressControls:()=>m.CarouselProgressControls,LocalizedLink:()=>L.LocalizedLink,PRICE_SYMBOL:()=>a.PRICE_SYMBOL,buildTrackingRef:()=>i.buildTrackingRef,cn:()=>s.cn,formatPrice:()=>a.formatPrice,gaTrack:()=>x.gaTrack,getLocalizedPath:()=>s.getLocalizedPath,languageTerritory:()=>a.languageTerritory,noop:()=>s.noop,trackUrlRef:()=>i.trackUrlRef,useCarouselPlayback:()=>b.useCarouselPlayback,useCountDown:()=>C.default,useDraggableScroll:()=>c.useDraggableScroll,useExposure:()=>P.useExposure,useGridRowCount:()=>y.useGridRowCount,useIntersectionObserverDelay:()=>d.useIntersectionObserverDelay,useRollout:()=>g.useRollout,useViewItemList:()=>k.useViewItemList});module.exports=A(u);n(u,require("./components/index.js"),module.exports);var x=require("./shared/track.js"),i=require("./shared/trackUrlRef.js"),C=z(require("./hooks/useCountDown.js")),c=require("./hooks/useDraggableScroll.js"),P=require("./hooks/useExposure.js"),y=require("./hooks/useGridRowCount.js"),d=require("./hooks/useIntersectionObserver.js"),g=require("./hooks/useRollout.js"),k=require("./hooks/useViewItemList.js"),b=require("./hooks/useCarouselPlayback.js"),s=require("./helpers/index.js"),a=require("./helpers/index.js"),L=require("./shared/LocalizedLink.js"),m=require("./shared/CarouselControls.js");
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
export declare const CarouselChevronLeft: () => import("react/jsx-runtime").JSX.Element;
|
|
2
|
+
export declare const CarouselChevronRight: () => import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare const PauseIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare const PlayIcon: () => import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
export interface CarouselArrowsProps {
|
|
6
|
+
onPrev: () => void;
|
|
7
|
+
onNext: () => void;
|
|
8
|
+
prevLabel: string;
|
|
9
|
+
nextLabel: string;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Prev/next arrow overlay. Visible ≥1025 only (D12): hidden below laptop,
|
|
13
|
+
* revealed on group hover / focus-within above it. Rendered at z-20, above
|
|
14
|
+
* any blockLink overlay (z-10).
|
|
15
|
+
*/
|
|
16
|
+
export declare const CarouselArrows: ({ onPrev, onNext, prevLabel, nextLabel }: CarouselArrowsProps) => import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export interface CarouselCornerToggleProps {
|
|
18
|
+
isPaused: boolean;
|
|
19
|
+
onToggle: () => void;
|
|
20
|
+
/** aria-label while paused (shows ▶) */
|
|
21
|
+
pausedLabel: string;
|
|
22
|
+
/** aria-label while playing (shows ⏸) */
|
|
23
|
+
playingLabel: string;
|
|
24
|
+
/** Class prefix, e.g. 'hero-banner' / 'secondary-banner' */
|
|
25
|
+
classPrefix: string;
|
|
26
|
+
/** Same theme axis as the progress controls; defaults to 'light' */
|
|
27
|
+
theme?: 'light' | 'dark';
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* 合并后的暂停/播放按钮(交互收敛 2026-10):轮播与视频共用一个右下角
|
|
31
|
+
* 圆钮——尺寸与样式与原 dots 区 ⏸ 完全一致(size-8 玻璃材质)。调用方按
|
|
32
|
+
* 当前帧语义决定 isPaused 的状态源(轮播状态机 或 视频真实状态)与点击
|
|
33
|
+
* 行为(同停同播 或 纯视频直控)。
|
|
34
|
+
*/
|
|
35
|
+
export declare const CarouselCornerToggle: ({ isPaused, onToggle, pausedLabel, playingLabel, classPrefix, theme, }: CarouselCornerToggleProps) => import("react/jsx-runtime").JSX.Element;
|
|
36
|
+
export interface CarouselProgressControlsProps {
|
|
37
|
+
frameCount: number;
|
|
38
|
+
activeIndex: number;
|
|
39
|
+
/** Change restarts the active segment's fill animation */
|
|
40
|
+
resetNonce: number;
|
|
41
|
+
/** Active frame interval (seconds); undefined = static full segment */
|
|
42
|
+
activeFrameIntervalSec: number | undefined;
|
|
43
|
+
isAutoplayEnabled: boolean;
|
|
44
|
+
/** True while the countdown timer is actually ticking (drives fill playState) */
|
|
45
|
+
isTimerRunning: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Optional segment click-to-jump handler (1467): when provided, progress
|
|
48
|
+
* segments become focusable buttons that jump to the frame (SecondaryBanner
|
|
49
|
+
* legacy behavior). Omit to keep segments display-only (HeroBanner).
|
|
50
|
+
*/
|
|
51
|
+
onSegmentClick?: (index: number) => void;
|
|
52
|
+
/** Accessible label per segment, e.g. (i) => `Go to slide ${i + 1}` */
|
|
53
|
+
segmentLabel?: (index: number) => string;
|
|
54
|
+
/** Class/keyframes prefix, e.g. 'hero-banner' / 'secondary-banner' */
|
|
55
|
+
classPrefix: string;
|
|
56
|
+
/**
|
|
57
|
+
* Frame theme (same axis as the banner content): 'light' = dark text over
|
|
58
|
+
* light media → dark-glass controls; 'dark' = white text over dark media
|
|
59
|
+
* → light-glass controls. Defaults to 'light'.
|
|
60
|
+
*/
|
|
61
|
+
theme?: 'light' | 'dark';
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Segmented progress capsule, centered at the bottom (Figma 6349:5115:
|
|
65
|
+
* capsule 144×32 with an inset 112×8 indicator row, 8px gap). Material
|
|
66
|
+
* follows the frame theme: black-20% mask + dark icon on light media,
|
|
67
|
+
* white-20% mask + white icon on dark media. The active segment is a
|
|
68
|
+
* stretched white bar whose fill is a CSS animation keyed by
|
|
69
|
+
* `${activeIndex}-${resetNonce}`; animationPlayState freezes it outside
|
|
70
|
+
* AUTOPLAYING so the fill and the Swiper timer stay in sync — resume paths
|
|
71
|
+
* never bump resetNonce, so progress is never lost.
|
|
72
|
+
* 暂停/播放按钮已迁移至右下角 CarouselCornerToggle(交互收敛 2026-10)。
|
|
73
|
+
*/
|
|
74
|
+
export declare const CarouselProgressControls: ({ frameCount, activeIndex, resetNonce, activeFrameIntervalSec, isAutoplayEnabled, isTimerRunning, onSegmentClick, segmentLabel, classPrefix, theme, }: CarouselProgressControlsProps) => import("react/jsx-runtime").JSX.Element;
|
|
75
|
+
export default CarouselProgressControls;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";"use client";var b=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var z=Object.prototype.hasOwnProperty;var P=(o,t)=>{for(var s in t)b(o,s,{get:t[s],enumerable:!0})},j=(o,t,s,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of $(t))!z.call(o,r)&&r!==s&&b(o,r,{get:()=>t[r],enumerable:!(i=L(t,r))||i.enumerable});return o};var A=o=>j(b({},"__esModule",{value:!0}),o);var I={};P(I,{CarouselArrows:()=>M,CarouselChevronLeft:()=>v,CarouselChevronRight:()=>m,CarouselCornerToggle:()=>T,CarouselProgressControls:()=>k,PauseIcon:()=>w,PlayIcon:()=>y,default:()=>B});module.exports=A(I);var e=require("react/jsx-runtime"),c=require("../helpers/index.js");const v=()=>(0,e.jsxs)("svg",{className:"lg-desktop:size-14 size-10",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,e.jsx)("circle",{cx:"20",cy:"20",r:"20",fill:"black",fillOpacity:"0.5"}),(0,e.jsx)("path",{d:"M23 14L17 19.5L23 25",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),m=()=>(0,e.jsxs)("svg",{className:"lg-desktop:size-14 size-10",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,e.jsx)("circle",{cx:"20",cy:"20",r:"20",fill:"black",fillOpacity:"0.5"}),(0,e.jsx)("path",{d:"M17 14L23 19.5L17 25",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),w=()=>(0,e.jsxs)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[(0,e.jsx)("rect",{x:"4",y:"3",width:"2.6",height:"10",rx:"1",fill:"currentColor"}),(0,e.jsx)("rect",{x:"9.4",y:"3",width:"2.6",height:"10",rx:"1",fill:"currentColor"})]}),y=()=>(0,e.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:(0,e.jsx)("path",{d:"M5 3.5v9c0 .8.9 1.3 1.6.9l7-4.5c.6-.4.6-1.4 0-1.8l-7-4.5c-.7-.4-1.6.1-1.6.9Z",fill:"currentColor"})}),M=({onPrev:o,onNext:t,prevLabel:s,nextLabel:i})=>(0,e.jsxs)("div",{className:"lg-desktop:px-8 pointer-events-none absolute inset-0 z-20 flex items-center justify-between px-4",children:[(0,e.jsx)("button",{type:"button",className:"laptop:flex pointer-events-auto hidden scale-95 items-center justify-center opacity-0 transition-all duration-300 ease-out hover:scale-105 focus-visible:scale-105 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/80 active:scale-95 group-focus-within:scale-100 group-focus-within:opacity-100 group-hover:scale-100 group-hover:opacity-100",onClick:o,"aria-label":s,children:(0,e.jsx)(v,{})}),(0,e.jsx)("button",{type:"button",className:"laptop:flex pointer-events-auto hidden scale-95 items-center justify-center opacity-0 transition-all duration-300 ease-out hover:scale-105 focus-visible:scale-105 focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/80 active:scale-95 group-focus-within:scale-100 group-focus-within:opacity-100 group-hover:scale-100 group-hover:opacity-100",onClick:t,"aria-label":i,children:(0,e.jsx)(m,{})})]}),T=({isPaused:o,onToggle:t,pausedLabel:s,playingLabel:i,classPrefix:r,theme:u="light"})=>{const n=u==="light";return(0,e.jsx)("button",{type:"button",className:(0,c.cn)(`${r}-corner-toggle lg-desktop:bottom-6 lg-desktop:right-8 absolute bottom-4 right-4 z-20 flex size-8 items-center justify-center rounded-full transition-colors duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/80`,n?"bg-black/20 text-black/60 hover:bg-black/30 active:bg-black/40":"bg-white/20 text-white hover:bg-white/30 active:bg-white/40"),"aria-label":o?s:i,onClick:t,children:o?(0,e.jsx)(y,{}):(0,e.jsx)(w,{})})},k=({frameCount:o,activeIndex:t,resetNonce:s,activeFrameIntervalSec:i,isAutoplayEnabled:r,isTimerRunning:u,onSegmentClick:n,segmentLabel:x,classPrefix:l,theme:C="light"})=>{const N=`@keyframes ${l}-progress-fill{from{transform:scaleX(0)}to{transform:scaleX(1)}}`,g=C==="light";return(0,e.jsxs)("div",{className:(0,c.cn)(`${l}-controls lg-desktop:bottom-6 absolute bottom-4 left-1/2 z-20 flex -translate-x-1/2 items-center gap-2`),children:[(0,e.jsx)("style",{children:N}),(0,e.jsx)("div",{className:(0,c.cn)(`${l}-progress flex h-8 items-center gap-2 rounded-full px-4`,g?"bg-black/20":"bg-white/20"),"aria-hidden":n?void 0:"true",role:n?"group":void 0,"aria-label":n?"Slides":void 0,children:Array.from({length:o}).map((O,a)=>{const p=a===t,d=(0,c.cn)(`${l}-progress-segment block size-2 rounded-full`,g?"bg-black/40":"bg-white/40"),f=(0,c.cn)(`${l}-progress-segment block h-2 w-8 overflow-hidden rounded-full`,g?"bg-black/40":"bg-white/40"),h=r&&i!==void 0?(0,e.jsx)("span",{className:`${l}-progress-fill block size-full origin-left rounded-full bg-white`,style:{animation:`${l}-progress-fill ${i*1e3}ms linear forwards`,animationPlayState:u?"running":"paused"}},`${t}-${s}`):(0,e.jsx)("span",{className:`${l}-progress-fill block size-full rounded-full bg-white`});return n?(0,e.jsx)("button",{type:"button","aria-label":x?.(a)??`Go to slide ${a+1}`,"aria-current":p?"true":void 0,onClick:()=>n(a),className:"flex items-center justify-center focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-white/80",children:p?(0,e.jsx)("span",{className:f,children:h}):(0,e.jsx)("span",{className:d})},a):p?(0,e.jsx)("span",{className:f,children:h},a):(0,e.jsx)("span",{className:d},a)})})]})};var B=k;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{Fragment as _e,jsx as e,jsxs as d}from"react/jsx-runtime";import re,{useImperativeHandle as
|
|
1
|
+
"use client";import{Fragment as _e,jsx as e,jsxs as d}from"react/jsx-runtime";import re,{useImperativeHandle as he,useRef as h,useState as ve,useEffect as ke}from"react";import w from"gsap";import{ScrollTrigger as B}from"gsap/dist/ScrollTrigger";import E from"jump.js";import{buildPictureSource as we,resolveTierMedia as I,useMediaTier as Be}from"./mediaResolver.js";import{useInView as Te}from"react-intersection-observer";import $e from"../../helpers/ScrollLoadVideo.js";import{Button as T,Heading as Ne,Picture as M,Text as D,Countdown as He}from"../../components/index.js";import{cn as p}from"../../helpers/index.js";import{cva as $}from"class-variance-authority";import{withLayout as Ce}from"../../shared/Styles.js";import{useExposure as Ve}from"../../hooks/useExposure.js";import{trackUrlRef as N}from"../../shared/trackUrlRef.js";import{getLocalizedPath as ze}from"../../helpers/utils.js";import{useAiuiContext as Le}from"../AiuiProvider/index.js";import{sizeMap as Se}from"../../components/button.js";import{VideoModal as Pe}from"../VideoModal/index.js";import Ee from"./HeroBannerCarousel.js";const c="image",m="hero_banner",Ie=$("hero-banner-content lg-desktop:gap-[32px] pointer-events-none absolute top-24 z-10 flex w-full flex-col gap-[24px]",{variants:{align:{left:"tablet:px-[32px] laptop:top-1/2 laptop:px-[64px] lg-desktop:px-[calc(50%-832px)] laptop:-translate-y-1/2 left-0 px-[16px]",center:"tablet:top-[84px] laptop:top-[76px] desktop:top-[176px] lg-desktop:top-[192px] left-1/2 top-[84px] -translate-x-1/2 translate-y-0 items-center text-center"}},defaultVariants:{align:"left"}}),Me=$("hero-banner-wrap-text lg-desktop:max-w-[824px] desktop:max-w-[648px] laptop:max-w-[440px] tablet:max-w-[704px] max-w-[358px]",{variants:{align:{left:"laptop:text-left",center:"text-center"}},defaultVariants:{align:"left"}}),De=$("hero-banner-button-group lg-desktop:gap-x-3 pointer-events-auto flex flex-wrap items-center gap-x-2 gap-y-3",{variants:{align:{left:"laptop:justify-start",center:"justify-center"}},defaultVariants:{align:"left"}}),Re=$("hero-banner-icon-group flex items-center gap-2",{variants:{align:{left:"justify-start",center:"justify-center"}},defaultVariants:{align:"left"}}),je=({size:o="base"})=>{const{width:v,height:u}=Se[o];return e("svg",{width:v,height:u,viewBox:"0 0 20 20",fill:"currentcolor",xmlns:"http://www.w3.org/2000/svg",children:e("path",{d:"M13.9599 9.30662C14.4547 9.63647 14.4547 10.3635 13.9599 10.6934L6.29558 15.8029C5.74179 16.1721 5 15.7751 5 15.1096V4.89042C5 4.22484 5.74179 3.82785 6.29558 4.19705L13.9599 9.30662Z",fill:"currentcolor"})})},oe=re.forwardRef(({data:o,className:v,classNames:u={},onSecondaryClick:R,onPrimaryClick:j,onTertiaryClick:_,jumpOptions:ne={},a11yLabels:le,...A},O)=>{const{locale:U}=Le(),G=o.mode!=="single"&&!!o.items&&o.items.length>0,H={...{duration:500,offset:0},...ne},k=t=>!t||!U?t:ze(t,U),{label:J,title:n,subtitle:r,endDate:q,endDate_tz:se,dateFormat:ie,pcImage:F,isShowVideo:pe,isVideoLoop:ue=!0,primaryButton:l,secondaryButton:a,tertiaryButton:s,theme:ce="light",size:C="default",titleSize:V,caption:W=[],blockLink:Y,iconArray:Z,align:g="left",enableParallax:K=!0}=o,z=Array.isArray(W)?W:[],me=Array.isArray(Z)?Z:void 0,de=Be(),Q=we(o),fe=I(o,de,"video")?.url||"",[X,ee]=ve(!1),{ref:ge,inView:te}=Te(),L=h(null),S=h(null),P=h(null),b=h(null),f=h(null),be=n?.trim()||r?.trim()||F?.alt?.trim()||void 0,xe=n!==void 0?n?.trim()||r?.trim()||F?.alt?.trim()||void 0:r&&r.trim()||"",ye=r&&r.trim()||"";return Ve(f,{componentType:c,componentName:m,componentTitle:xe,componentDescription:ye}),he(O,()=>f.current),ke(()=>{if(G||!K)return;w.registerPlugin(B);function t(){if(!b.current)return;const i=f.current?.clientHeight||100;window.innerHeight<=i?L.current=B.create({trigger:f.current,start:"top bottom",end:"bottom top",scrub:!0,onUpdate:x=>{const y=x.progress*40-20;w.set(b.current,{yPercent:y})}}):(P.current=B.create({trigger:f.current,start:"top bottom",end:"bottom bottom",scrub:!0,onUpdate:x=>{const y=x.progress*20-20;w.set(b.current,{yPercent:y})}}),S.current=B.create({trigger:f.current,start:"top top",end:"bottom top",scrub:!0,onUpdate:x=>{const y=x.progress*20;w.set(b.current,{yPercent:y})}}))}return te&&t(),()=>{L.current&&L.current.kill(),P.current&&P.current.kill(),S.current&&S.current.kill()}},[te,o.items,K]),G?e(Ee,{data:o,className:v,classNames:u,onPrimaryClick:j,onSecondaryClick:R,onTertiaryClick:_,a11yLabels:le,ref:O,...A}):e("div",{...A,ref:ge,"data-ui-component-id":"HeroBanner",className:p(u.root),children:d("div",{ref:f,className:p(ce==="dark"?"aiui-dark":"","text-info-primary relative w-full overflow-hidden",{"tablet:aspect-[768/560] laptop:aspect-[1024/400] desktop:aspect-[1440/560] lg-desktop:aspect-[1920/800] aspect-[390/560]":C==="default","lg-desktop:aspect-[1920/800] desktop:aspect-[1440/640] laptop:aspect-[1024/480] tablet:aspect-[768/560] aspect-[390/560]":C==="sm"},v),children:[Y&&e("a",{className:"absolute inset-0 z-10",href:N(k(Y),`${c}_${m}`),"data-headless-type-name":`${c}#${m}`,"data-headless-title-desc-button":`${n}#${r}`,tabIndex:-1,"aria-hidden":"true","aria-label":be}),e("div",{ref:b,className:p("absolute left-0 top-0 size-full"),children:pe?d(_e,{children:[e($e,{poster:void 0,src:fe,className:"laptop:w-full absolute inset-0 h-full",videoClassName:"h-full object-cover",muted:!0,loop:ue,playsInline:!0,onPlaying:t=>{t.currentTarget.closest('[data-ui-component-id="HeroBanner"]')?.querySelector('[data-video-poster="true"]')?.classList.add("opacity-0")}}),e("div",{"data-video-poster":"true",className:"laptop:w-full pointer-events-none absolute inset-0 h-full transition-opacity duration-500",children:e(M,{className:"absolute inset-0 size-full",imgClassName:"size-full object-cover",loading:"eager",fetchPriority:"high",alt:I(o,"lgDesktop","image")?.alt||"",source:Q})})]}):e(M,{className:"laptop:w-full h-full",imgClassName:"h-full object-cover",loading:"eager",fetchPriority:"high",alt:I(o,"lgDesktop","image")?.alt||"",source:Q})}),d("div",{className:Ie({align:g}),children:[d("div",{className:Me({align:g}),children:[J&&e(D,{size:2,as:"p",className:p("hero-banner-label font-heading lg-desktop:text-[18px] desktop:text-base text-sm"),html:J}),n&&e(Ne,{as:V==="4"?"h1":"h2",html:n,className:p("hero-banner-title",u.title),size:V?Number(V||"5"):C==="sm"?4:5}),r&&e(D,{as:"p",size:2,className:p("hero-banner-subtitle font-heading lg-desktop:text-[18px] desktop:text-base laptop:mt-2 lg-desktop:mt-4 mt-1 text-sm",u.subtitle),html:r}),q&&e("div",{className:"mt-3",children:e(He,{endDate:q,endDate_tz:se,dateFormat:ie,variant:"spacious",align:g})})]}),d("div",{className:p(De({align:g}),u.buttonGroup),children:[d("div",{className:"lg-desktop:gap-3 flex items-center gap-2",children:[a?.isShowPlayVideoButton&&a?.playVideoButtonText?d(T,{onClick:()=>ee(!0),size:"lg",variant:"secondary",className:"hero-banner-play-video-button","data-headless-type-name":`${c}#${m}`,"data-headless-title-desc-button":`${n}#${r}#${a?.playVideoButtonText}`,children:[a?.playVideoButtonText," ",e(je,{size:"lg"})]}):a?.text?d(T,{"aria-label":n??r,size:"lg",variant:"secondary",className:p("hero-banner-secondary-button",u.secondaryButton),as:a?.isCustomSecondaryButton?"button":"a",href:N(k(a?.link),`${c}_${m}`),target:a?.target,rel:a?.target==="_blank"?a?.rel??"noopener noreferrer":a?.rel,onClick:t=>{if(a.link?.startsWith("#")){t.preventDefault();const i=document.querySelector(a.link);i&&E(i,H)}a?.isCustomSecondaryButton&&R?.(o,t,a?.customSecondaryEventId)},"data-headless-type-name":`${c}#${m}`,"data-headless-title-desc-button":`${n}#${r}#${a?.text}`,children:[a?.text,e("span",{className:"sr-only",children:n??r})]}):null,l&&l.text&&e(T,{"aria-label":n??r,size:"lg",variant:"primary",className:p("hero-banner-primary-button",u.primaryButton),as:l?.isCustomPrimaryButton?"button":"a",href:N(k(l.link),`${c}_${m}`),target:l?.target,rel:l?.target==="_blank"?l?.rel??"noopener noreferrer":l?.rel,onClick:t=>{if(l.link?.startsWith("#")){t.preventDefault();const i=document.querySelector(l.link);i&&E(i,H)}l?.isCustomPrimaryButton&&j?.(o,t,l?.customPrimaryEventId)},"data-headless-type-name":`${c}#${m}`,"data-headless-title-desc-button":`${n}#${r}#${l?.text}`,children:l.text})]}),s&&s.text&&d(T,{"aria-label":n??r,size:"lg",variant:"link",className:p("hero-banner-tertiary-button w-auto p-0",u.tertiaryButton),as:s?.isCustomTertiaryButton?"button":"a",href:N(k(s.link),`${c}_${m}`),target:s?.target,rel:s?.target==="_blank"?s?.rel??"noopener noreferrer":s?.rel,onClick:t=>{if(s.link?.startsWith("#")){t.preventDefault();const i=document.querySelector(s.link);i&&E(i,H)}s?.isCustomTertiaryButton&&_?.(o,t,s?.customTertiaryEventId)},"data-headless-type-name":`${c}#${m}`,"data-headless-title-desc-button":`${n}#${r}#${s?.text}`,children:[s.text,e("span",{className:"sr-only",children:n??r})]})]}),e("div",{className:Re({align:g}),children:me?.map(t=>e("div",{className:"h-12",children:e(M,{className:"!inline-block h-full !w-auto",imgClassName:"!w-auto h-full object-contain",loading:"eager",alt:t?.pcImage?.alt||"",source:t?.pcImage?.url})},t?.pcImage?.url||t?.pcImage?.alt))})]}),z.length>0&&e("div",{className:p("hero-banner-caption-group laptop:gap-3 tablet:px-[32px] laptop:px-[64px] lg-desktop:px-[calc(50%-832px)] desktop:pb-[24px] pointer-events-none absolute bottom-0 z-10 flex items-stretch gap-2 px-[16px] pb-[16px]",u.captionGroup),children:z.map((t,i)=>d(re.Fragment,{children:[e(D,{size:2,className:p("hero-banner-product-text tablet:w-[108px] loptop:w-[150px] desktop:w-[156px] lg-desktop:w-[180px] laptop:text-[14px] flex-1 text-[12px]"),html:t.title}),i<z.length-1&&e("div",{className:p("bg-info-primary w-px")})]},t.title))}),X&&e(Pe,{visible:X,videoUrl:a?.isYoutubeVideo?void 0:a?.videoUrl?.url,youTubeId:a?.isYoutubeVideo?a?.youtubeId:void 0,onCloseModal:()=>ee(!1)})]})})});oe.displayName="HeroBanner";var st=Ce(oe);export{st as default};
|
|
@@ -1,24 +1,23 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { HeroBannerProps } from './types.js';
|
|
2
|
+
import type { HeroBannerA11yLabels, HeroBannerProps } from './types.js';
|
|
3
3
|
import 'swiper/css';
|
|
4
|
-
import 'swiper/css/navigation';
|
|
5
|
-
import 'swiper/css/pagination';
|
|
6
4
|
interface HeroBannerCarouselProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
5
|
data: HeroBannerProps['data'];
|
|
8
6
|
classNames?: Record<string, string>;
|
|
7
|
+
a11yLabels?: HeroBannerA11yLabels;
|
|
9
8
|
onPrimaryClick?: (data: any, e: any, id?: string) => void;
|
|
10
9
|
onSecondaryClick?: (data: any, e: any, id?: string) => void;
|
|
11
10
|
onTertiaryClick?: (data: any, e: any, id?: string) => void;
|
|
12
11
|
}
|
|
13
12
|
/**
|
|
14
|
-
* HeroBannerCarousel —
|
|
13
|
+
* HeroBannerCarousel — Swiper carousel driven by the shared useCarouselPlayback
|
|
14
|
+
* 2-state machine (AUTOPLAYING / STOPPED; hover interactions removed 2026-09-23).
|
|
15
15
|
*
|
|
16
|
-
*
|
|
17
|
-
* - DECISION-
|
|
18
|
-
* -
|
|
19
|
-
* -
|
|
20
|
-
* -
|
|
21
|
-
* - ISSUE-017: post-mount pause wins over IO rootMargin='200px' race
|
|
16
|
+
* HeroBanner-specific layers kept here on top of the hook:
|
|
17
|
+
* - DECISION-A003: ScrollLoadVideo videoRef as imperative pause/play channel
|
|
18
|
+
* - 右下角三态视频按钮(暂停/播放/重播,>5s 门控),与轮播控制解耦(2026-10 交互重构)
|
|
19
|
+
* - D19 multi-theme playhead switching
|
|
20
|
+
* - hero_banner_* GA events (plan §8) fired off the hook's callbacks
|
|
22
21
|
*/
|
|
23
22
|
declare const HeroBannerCarousel: React.ForwardRefExoticComponent<HeroBannerCarouselProps & React.RefAttributes<HTMLDivElement>>;
|
|
24
23
|
export default HeroBannerCarousel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use client";import{Fragment as ne,jsx as e,jsxs as o}from"react/jsx-runtime";import E,{useRef as A,useEffect as $,useCallback as U,useState as O}from"react";import{Swiper as X,SwiperSlide as Y}from"swiper/react";import{Navigation as q,Pagination as F,Autoplay as Z}from"swiper/modules";import{useMediaQuery as W}from"react-responsive";import ee from"../../helpers/ScrollLoadVideo.js";import{cn as p}from"../../helpers/index.js";import{Button as I,Heading as te,Text as M,Countdown as ae,Picture as j}from"../../components/index.js";import"swiper/css";import"swiper/css/navigation";import"swiper/css/pagination";const re=()=>o("svg",{className:"lg-desktop:size-14 size-10",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[e("circle",{cx:"20",cy:"20",r:"20",fill:"currentColor",fillOpacity:"0.2"}),e("path",{d:"M23 13L16 20L23 27",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),ie=()=>o("svg",{className:"lg-desktop:size-14 size-10",viewBox:"0 0 40 40",fill:"none",xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true",children:[e("circle",{cx:"20",cy:"20",r:"20",fill:"currentColor",fillOpacity:"0.2"}),e("path",{d:"M17 13L24 20L17 27",stroke:"white",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"})]}),oe=({data:l,isActive:R,videoRef:D,slideIndex:k,containerSize:w="default",onPrimaryClick:B,onSecondaryClick:T,onTertiaryClick:H})=>{const{pcVideo:n,padVideo:x,mobileVideo:m,pcImage:s,padImage:v,mobileImage:g,isVideoLoop:f=!0,isShowVideo:P,title:L,subtitle:C,label:c,endDate:S,endDate_tz:N,dateFormat:d,iconArray:h,caption:b,blockLink:z,primaryButton:t,secondaryButton:a,tertiaryButton:r,theme:y="light",align:u="left",titleSize:_}=l,G=W({query:"(max-width: 768px)"}),J=W({query:"(max-width: 1024px)"}),K=G?m?.url||n?.url||"":J?x?.url||n?.url||m?.url||"":n?.url||m?.url||"";return o("div",{"data-ui-component-id":"HeroBannerSlide",className:p("text-info-primary relative w-full overflow-hidden",y==="dark"?"aiui-dark":"",w==="default"?"lg-desktop:aspect-[1920/930] desktop:aspect-[1440/700] laptop:aspect-[1024/520] tablet:aspect-[768/660] aspect-[390/660]":"lg-desktop:aspect-[1920/800] desktop:aspect-[1440/640] laptop:aspect-[1024/480] tablet:aspect-[768/560] aspect-[390/560]"),children:[z&&e("a",{className:"absolute inset-0 z-10",href:z,tabIndex:-1,"aria-hidden":"true"}),P?o(ne,{children:[e("div",{"data-video-poster":"true",className:"absolute inset-0 size-full transition-opacity duration-500",children:e(j,{className:"absolute inset-0 size-full",imgClassName:"size-full object-cover",loading:k===0?"eager":"lazy",fetchPriority:k===0?"high":"auto",alt:s?.alt||"",source:`${s?.url||""} , ${v?.url??(g?.url||"")} 1024, ${g?.url||""} 767`})}),e(ee,{videoRef:D,src:K,poster:void 0,className:"absolute inset-0 size-full",videoClassName:"size-full object-cover",muted:!0,loop:f,playsInline:!0,onPlaying:i=>{i.currentTarget.closest('[data-ui-component-id="HeroBannerSlide"]')?.querySelector('[data-video-poster="true"]')?.classList.add("opacity-0")}})]}):e(j,{className:"absolute inset-0 size-full",imgClassName:"size-full object-cover",loading:"eager",fetchPriority:"high",alt:s?.alt||"",source:`${s?.url||""} , ${v?.url??(g?.url||"")} 1024, ${g?.url||""} 767`}),o("div",{className:p("laptop:top-1/2 laptop:-translate-y-1/2 lg-desktop:gap-[32px] absolute top-24 z-10 flex w-full flex-col gap-[24px]",u==="center"?"left-1/2 -translate-x-1/2 items-center text-center":"tablet:px-[32px] laptop:px-[64px] lg-desktop:px-[calc(50%-832px)] left-0 px-[16px]"),children:[o("div",{className:p("tablet:max-w-[704px] laptop:max-w-[440px] desktop:max-w-[648px] lg-desktop:max-w-[824px] max-w-[358px]",u==="center"?"text-center":"laptop:text-left"),children:[c&&e(M,{size:2,as:"p",className:p("hero-banner-label font-heading lg-desktop:text-[18px] desktop:text-base text-sm"),html:c}),L&&e(te,{as:_==="4"?"h1":"h2",html:L,size:_?Number(_||"5"):w==="sm"?4:5}),C&&e(M,{as:"p",size:2,className:"font-heading lg-desktop:text-[18px] desktop:text-base laptop:mt-2 lg-desktop:mt-4 mt-1 text-sm",html:C}),S&&e("div",{className:"mt-3",children:e(ae,{endDate:S,endDate_tz:N,dateFormat:d,variant:"spacious",align:u})})]}),(t?.text||a?.text||r?.text)&&o("div",{className:p("lg-desktop:gap-3 flex flex-wrap items-center gap-2",u==="center"?"justify-center":"laptop:justify-start"),children:[a?.text&&e(I,{size:"lg",variant:"secondary",as:a?.isCustomSecondaryButton?"button":"a",href:a.link,target:a?.target,rel:a?.target==="_blank"?a?.rel??"noopener noreferrer":a?.rel,onClick:i=>a?.isCustomSecondaryButton&&T?.(l,i,a?.customSecondaryEventId),children:a.text}),t?.text&&e(I,{size:"lg",variant:"primary",as:t?.isCustomPrimaryButton?"button":"a",href:t.link,target:t?.target,rel:t?.target==="_blank"?t?.rel??"noopener noreferrer":t?.rel,onClick:i=>t?.isCustomPrimaryButton&&B?.(l,i,t?.customPrimaryEventId),children:t.text}),r?.text&&e(I,{size:"lg",variant:"link",className:"tablet:basis-auto basis-full",as:r?.isCustomTertiaryButton?"button":"a",href:r.link,target:r?.target,rel:r?.target==="_blank"?r?.rel??"noopener noreferrer":r?.rel,onClick:i=>r?.isCustomTertiaryButton&&H?.(l,i,r?.customTertiaryEventId),children:r.text})]}),h&&h.length>0&&e("div",{className:p("flex items-center gap-2",u==="center"?"justify-center":"justify-start"),children:h.map(i=>e("div",{className:"h-12",children:e(j,{className:"laptop:w-full h-full",imgClassName:"h-full object-cover",loading:"eager",alt:i?.pcImage?.alt||"",source:i?.pcImage?.url})},i?.pcImage?.url||i?.pcImage?.alt))})]}),b&&b.length>0&&e("div",{className:"hero-banner-caption-group laptop:gap-3 tablet:px-[32px] laptop:px-[64px] lg-desktop:px-[calc(50%-832px)] desktop:pb-[24px] absolute bottom-0 z-10 flex items-stretch gap-2 px-[16px] pb-[16px]",children:b.map((i,V)=>o(E.Fragment,{children:[e(M,{size:2,className:"hero-banner-product-text tablet:w-[108px] desktop:w-[156px] lg-desktop:w-[180px] laptop:text-[14px] flex-1 text-[12px]",html:i.title}),V<b.length-1&&e("div",{className:"bg-info-primary w-px"})]},i.title))})]})},Q=E.forwardRef(({data:l,className:R,classNames:D={},onPrimaryClick:k,onSecondaryClick:w,onTertiaryClick:B,...T},H)=>{const n=l.items||[],x=l.carousel,m=l.size??"default",s=A(null),[v,g]=O(0),[f,P]=O(null),C=(n[v]?.theme??"light")==="dark";$(()=>{const t=s.current;!t||!f||t.pagination&&(t.pagination.el=f,t.pagination.init(),t.pagination.render(),t.pagination.update())},[f]);const c=A(n.map(()=>E.createRef())),S=(x?.showArrows??!0)&&n.length>1,N=x?.showDots??!0,d=x?.autoplaySeconds,h=d!==void 0&&d>0?[q,F,Z]:[q,F],b=d!==void 0&&d>0?{delay:Math.max(d*1e3,3e3),disableOnInteraction:!1}:!1;$(()=>{c.current.forEach((t,a)=>{a!==0&&t.current&&(t.current.pause(),t.current.currentTime=0)})},[]);const z=U(t=>{const a=t.realIndex;c.current.forEach((y,u)=>{u!==a&&y.current&&(y.current.pause(),y.current.currentTime=0)});const r=c.current[a];r?.current&&r.current.paused&&r.current.play()?.catch(()=>{}),g(a)},[]);return o("div",{ref:H,className:p("hero-banner-carousel group relative w-full overflow-hidden",m==="default"?"lg-desktop:aspect-[1920/930] desktop:aspect-[1440/700] laptop:aspect-[1024/520] tablet:aspect-[768/660] aspect-[390/660]":"lg-desktop:aspect-[1920/800] desktop:aspect-[1440/640] laptop:aspect-[1024/480] tablet:aspect-[768/560] aspect-[390/560]",{"aiui-dark":n[v]?.theme==="dark"},R),...T,children:[e(X,{onSwiper:t=>s.current=t,onSlideChange:z,modules:h,slidesPerView:1,loop:!0,initialSlide:0,allowTouchMove:!0,autoplay:b,pagination:N?{clickable:!0,el:f,renderBullet:(t,a)=>`<span class="${a} banner-dot"></span>`}:!1,children:n.map((t,a)=>e(Y,{children:({isActive:r})=>e(oe,{data:t,isActive:r,slideIndex:a,videoRef:c.current[a],containerSize:m,onPrimaryClick:k,onSecondaryClick:w,onTertiaryClick:B})},a))}),S&&o("div",{className:"pointer-events-none absolute inset-0 z-20 flex items-center justify-between px-4",children:[e("button",{type:"button",className:"tablet:flex pointer-events-auto hidden scale-95 items-center justify-center opacity-0 transition-all duration-300 ease-out hover:scale-105 focus-visible:scale-105 group-focus-within:scale-100 group-focus-within:opacity-100 group-hover:scale-100 group-hover:opacity-100",onClick:()=>s.current?.slidePrev(),"aria-label":"Previous banner",children:e(re,{})}),e("button",{type:"button",className:"tablet:flex pointer-events-auto hidden scale-95 items-center justify-center opacity-0 transition-all duration-300 ease-out hover:scale-105 focus-visible:scale-105 group-focus-within:scale-100 group-focus-within:opacity-100 group-hover:scale-100 group-hover:opacity-100",onClick:()=>s.current?.slideNext(),"aria-label":"Next banner",children:e(ie,{})})]}),N&&e("div",{ref:P,style:{"--swiper-pagination-bottom":"0px"},className:p("hero-banner-pagination swiper-pagination lg-desktop:!bottom-6 [&_.banner-dot.swiper-pagination-bullet-active]:bg-info-primary [&_.banner-dot]:bg-info-quaternary absolute !bottom-4 !left-1/2 z-20 flex !w-auto !-translate-x-1/2 items-center justify-center gap-2 [&_.banner-dot.swiper-pagination-bullet-active]:h-2 [&_.banner-dot.swiper-pagination-bullet-active]:w-8 [&_.banner-dot.swiper-pagination-bullet-active]:rounded-full [&_.banner-dot]:size-2 [&_.banner-dot]:rounded-full [&_.banner-dot]:transition-all [&_.banner-dot]:duration-300 [&_.banner-dot]:ease-out [&_.swiper-pagination-bullet]:m-0 [&_.swiper-pagination-bullet]:shrink-0 [&_.swiper-pagination-bullet]:opacity-100",{"aiui-dark":C})})]})});Q.displayName="HeroBannerCarousel";var ye=Q;export{ye as default};
|
|
1
|
+
"use client";import{Fragment as Ze,jsx as n,jsxs as w}from"react/jsx-runtime";import re,{useRef as ae,useEffect as R,useCallback as k,useState as oe}from"react";import{Swiper as Me,SwiperSlide as De}from"swiper/react";import Ie from"../../helpers/ScrollLoadVideo.js";import{cn as C}from"../../helpers/index.js";import{buildPictureSource as je,resolveTierMedia as be,useMediaTier as qe}from"./mediaResolver.js";import{Button as ie,Heading as Oe,Text as se,Countdown as $e,Picture as le}from"../../components/index.js";import{useCarouselPlayback as Ue}from"../../hooks/useCarouselPlayback.js";import{CarouselArrows as We,CarouselCornerToggle as Ge,CarouselProgressControls as Ye}from"../../shared/CarouselControls.js";import{gaTrack as Je}from"../../shared/track.js";import{trackUrlRef as G}from"../../shared/trackUrlRef.js";import{useExposure as Ke}from"../../hooks/useExposure.js";import"swiper/css";const Qe=({data:o,isActive:ce,videoRef:Y,slideIndex:M,containerSize:D="default",theme:J="light",slideLabel:K,linkRefId:y,onPrimaryClick:T,onSecondaryClick:l,onTertiaryClick:_})=>{const{pcImage:I,isVideoLoop:g=!0,isShowVideo:Q,title:L,subtitle:V,label:P,endDate:N,endDate_tz:x,dateFormat:j,iconArray:m,caption:E,blockLink:B,primaryButton:c,secondaryButton:d,tertiaryButton:i,align:p="left",titleSize:H}=o,f=qe(),b=je(o),q=be(o,"lgDesktop","image")?.alt||I?.alt||"",X=be(o,f,"video")?.url||"",Z=!!b&&!/\.(mp4|mov|webm|m4v)(\?|$)/i.test(b);return w("div",{"data-ui-component-id":"HeroBannerSlide",role:"group","aria-roledescription":"slide","aria-label":K,className:C("text-info-primary relative w-full overflow-hidden transition-colors duration-500",J==="dark"&&"aiui-dark",D==="default"?"tablet:aspect-[768/560] laptop:aspect-[1024/400] desktop:aspect-[1440/560] lg-desktop:aspect-[1920/800] aspect-[390/560]":"lg-desktop:aspect-[1920/800] desktop:aspect-[1440/640] laptop:aspect-[1024/480] tablet:aspect-[768/560] aspect-[390/560]"),children:[B&&n("a",{className:"absolute inset-0 z-10",href:y?G(B,y):B,tabIndex:-1,"aria-hidden":"true"}),Q?w(Ze,{children:[n(Ie,{videoRef:Y,src:X,poster:void 0,className:"absolute inset-0 size-full",videoClassName:"size-full object-cover",muted:!0,loop:g,playsInline:!0,onPlaying:a=>{a.currentTarget.closest('[data-ui-component-id="HeroBannerSlide"]')?.querySelector('[data-video-poster="true"]')?.classList.add("opacity-0")},onWaiting:a=>{const h=a.currentTarget;if(h.currentTime>=.5)return;h.closest('[data-ui-component-id="HeroBannerSlide"]')?.querySelector('[data-video-poster="true"]')?.classList.remove("opacity-0")}}),Z&&n("div",{"data-video-poster":"true",className:"pointer-events-none absolute inset-0 size-full transition-opacity duration-500",children:n(le,{className:"absolute inset-0 size-full",imgClassName:"size-full object-cover",loading:M===0?"eager":"lazy",fetchPriority:M===0?"high":"auto",alt:q,source:b})})]}):n(le,{className:"absolute inset-0 size-full",imgClassName:"size-full object-cover",loading:"eager",fetchPriority:"high",alt:q,source:b}),w("div",{className:C("laptop:top-1/2 laptop:-translate-y-1/2 lg-desktop:gap-[32px] pointer-events-none absolute top-24 z-10 flex w-full flex-col gap-[24px] transition-colors duration-500",p==="center"?"left-1/2 -translate-x-1/2 items-center text-center":"tablet:px-[32px] laptop:px-[64px] lg-desktop:px-[calc(50%-832px)] left-0 px-[16px]"),children:[w("div",{className:C("tablet:max-w-[704px] laptop:max-w-[440px] desktop:max-w-[648px] lg-desktop:max-w-[824px] max-w-[358px] transition-colors duration-500",p==="center"?"text-center":"laptop:text-left"),children:[P&&n(se,{size:2,as:"p",className:C("hero-banner-label font-heading lg-desktop:text-[18px] desktop:text-base text-sm"),html:P}),L&&n(Oe,{as:H==="4"?"h1":"h2",html:L,size:H?Number(H||"5"):D==="sm"?4:5}),V&&n(se,{as:"p",size:2,className:"font-heading lg-desktop:text-[18px] desktop:text-base laptop:mt-2 lg-desktop:mt-4 mt-1 text-sm",html:V}),N&&n("div",{className:"mt-3",children:n($e,{endDate:N,endDate_tz:x,dateFormat:j,variant:"spacious",align:p})})]}),(c?.text||d?.text||i?.text)&&w("div",{className:C("lg-desktop:gap-3 pointer-events-auto flex flex-wrap items-center gap-2",p==="center"?"justify-center":"laptop:justify-start"),children:[d?.text&&n(ie,{size:"lg",variant:"secondary",as:d?.isCustomSecondaryButton?"button":"a",href:y?G(d.link,y):d.link,target:d?.target,rel:d?.target==="_blank"?d?.rel??"noopener noreferrer":d?.rel,onClick:a=>d?.isCustomSecondaryButton&&l?.(o,a,d?.customSecondaryEventId),children:d.text}),c?.text&&n(ie,{size:"lg",variant:"primary",as:c?.isCustomPrimaryButton?"button":"a",href:y?G(c.link,y):c.link,target:c?.target,rel:c?.target==="_blank"?c?.rel??"noopener noreferrer":c?.rel,onClick:a=>c?.isCustomPrimaryButton&&T?.(o,a,c?.customPrimaryEventId),children:c.text}),i?.text&&n(ie,{size:"lg",variant:"link",className:"tablet:basis-auto basis-full",as:i?.isCustomTertiaryButton?"button":"a",href:y?G(i.link,y):i.link,target:i?.target,rel:i?.target==="_blank"?i?.rel??"noopener noreferrer":i?.rel,onClick:a=>i?.isCustomTertiaryButton&&_?.(o,a,i?.customTertiaryEventId),children:i.text})]}),m&&m.length>0&&n("div",{className:C("flex items-center gap-2",p==="center"?"justify-center":"justify-start"),children:m.map(a=>n("div",{className:"h-12",children:n(le,{className:"laptop:w-full h-full",imgClassName:"h-full object-cover",loading:"eager",alt:a?.pcImage?.alt||"",source:a?.pcImage?.url})},a?.pcImage?.url||a?.pcImage?.alt))})]}),E&&E.length>0&&n("div",{className:"hero-banner-caption-group laptop:gap-3 tablet:px-[32px] laptop:px-[64px] lg-desktop:px-[calc(50%-832px)] desktop:pb-[24px] pointer-events-none absolute bottom-0 z-10 flex items-stretch gap-2 px-[16px] pb-[16px]",children:E.map((a,h)=>w(re.Fragment,{children:[n(se,{size:2,className:"hero-banner-product-text tablet:w-[108px] desktop:w-[156px] lg-desktop:w-[180px] laptop:text-[14px] flex-1 text-[12px]",html:a.title}),h<E.length-1&&n("div",{className:"bg-info-primary w-px"})]},a.title))})]})},Xe={prevSlide:"Previous slide",nextSlide:"Next slide",pauseAutoplay:"Pause autoplay",playAutoplay:"Play autoplay",pauseVideo:"Pause video",playVideo:"Play video",slideStatus:"Slide",carouselLabel:"Banner carousel"},ye=re.forwardRef(({data:o,className:ce,classNames:Y={},a11yLabels:M,onPrimaryClick:D,onSecondaryClick:J,onTertiaryClick:K,...y},T)=>{const l=o.items||[],_=o.carousel,I=_?.size??o.size??"default",g={...Xe,...M},Q=ae(null),[L,V]=oe(null),[P,N]=oe(null),[x,j]=oe(null),m=ae(l);R(()=>{m.current=l});const E=e=>e!==void 0&&e!==999&&e>=5,B=e=>e!==void 0&&e!==999&&e>=1&&e<=30,c=_?.autoplaySeconds,d=e=>{const t=e?.autoplaySeconds;return B(t)?t:E(c)?c:void 0},i=l.length>1&&l.some(e=>d(e)!==void 0),p=ae(l.map(()=>re.createRef())),H=(_?.showArrows??!0)&&l.length>1,f=k((e,t)=>{Je({event:"ga4Event",event_name:e,event_parameters:t})},[]),b=k(e=>m.current[e]?.isShowVideo?"video":"image",[]),q=k((e,t)=>{t==="swipe"&&f("hero_banner_swipe",{to_index:e}),f("hero_banner_slide_view",{index:e,total:m.current.length,media_type:b(e),trigger:t})},[f,b]),X=k((e,t,r)=>{f("hero_banner_arrow_click",{direction:e,from_index:t,to_index:r})},[f]),Z=k((e,t)=>{f(e?"hero_banner_pause":"hero_banner_resume",{index:t,media_type:b(t)})},[f,b]),a=k(e=>{p.current.forEach((r,v)=>{v!==e&&r.current&&(r.current.pause(),r.current.currentTime=0)});const t=p.current[e];t?.current&&(t.current.currentTime=0,t.current.play()?.catch(()=>{}))},[]),{rootRef:h,activeIndex:s,playbackState:he,resetNonce:xe,announcement:Se,activeFrameIntervalSec:de,isTimerRunning:Te,handleSwiperInit:ke,handleSlideChange:Ce,handleTransitionEnd:we,handleSliderFirstMove:Le,goToSlide:ue,handlePausePlayClick:Ee,notifyVideoPlaying:pe,handleFocus:_e,handleBlur:Ve}=Ue({frameCount:l.length,resolveFrameIntervalSec:e=>d(l[e]),isAutoplayEnabled:i,swiperRef:Q,slideStatusLabel:g.slideStatus,onSlideMediaSync:a,onSlideChange:q,onArrowNavigate:X,delaysCountdownForVideo:e=>!!m.current[e]?.isShowVideo,onPauseToggle:(e,t)=>{Z(e,t);const r=p.current[t]?.current;r&&(e?r.pause():r.ended||r.play()?.catch(()=>{}))}}),Pe=k(e=>{h.current=e,typeof T=="function"?T(e):T&&(T.current=e)},[T,h]),Ne=o.title?.trim()||o.subtitle?.trim()||o.pcImage?.alt?.trim()||void 0,Be=o.subtitle&&o.subtitle.trim()||"";Ke(h,{componentType:"image",componentName:"hero_banner",componentTitle:Ne,componentDescription:Be}),R(()=>{V(null),N(null);const e=m.current[s],t=p.current[s]?.current;if(!e?.isShowVideo||!t)return;const r=()=>V(t.ended?"ended":t.paused?"paused":"playing"),v=()=>N(Number.isFinite(t.duration)?t.duration:null),O=()=>{r(),pe(s)};return r(),v(),t.addEventListener("playing",O),t.addEventListener("pause",r),t.addEventListener("ended",r),t.addEventListener("loadedmetadata",v),()=>{t.removeEventListener("playing",O),t.removeEventListener("pause",r),t.removeEventListener("ended",r),t.removeEventListener("loadedmetadata",v)}},[s,pe]),R(()=>{const e=m.current[s];if(!e?.isShowVideo||!e?.isMultiThemeEnabled)return;const t=p.current[s]?.current;if(!t)return;const r=(u,S,W,ne)=>{if(!(!u||typeof S!="number"||typeof W!="number"||typeof ne!="number"))return ne>=S&&ne<W?u:void 0};let v=null;const O=u=>{v=u,j(S=>S&&S.index===s&&S.theme===u?S:{index:s,theme:u})},ge=u=>{O(r(e.theme_1,e.star_time_1,e.end_time_1,u)??r(e.theme_2,e.star_time_2,e.end_time_2,u)??e.theme??"light")},$=t;let F=0,z=0;const ee=typeof $.requestVideoFrameCallback=="function",Re=()=>ee?z!==0:F!==0,te=()=>{if(!Re())if(ee){const u=(S,W)=>{ge(W.mediaTime),z=$.requestVideoFrameCallback(u)};z=$.requestVideoFrameCallback(u)}else{const u=()=>{ge(t.currentTime),F=requestAnimationFrame(u)};F=requestAnimationFrame(u)}},U=()=>{ee?($.cancelVideoFrameCallback?.(z),z=0):(cancelAnimationFrame(F),F=0)},fe=()=>{U(),v&&j({index:s,theme:v})};return t.addEventListener("play",te),t.addEventListener("pause",U),t.addEventListener("ended",fe),!t.paused&&!t.ended&&te(),()=>{U(),t.removeEventListener("play",te),t.removeEventListener("pause",U),t.removeEventListener("ended",fe)}},[s]),R(()=>{p.current.forEach((e,t)=>{t!==0&&e.current&&(e.current.pause(),e.current.currentTime=0)})},[]),R(()=>{m.current.length!==0&&f("hero_banner_slide_view",{index:0,total:m.current.length,media_type:b(0),trigger:"initial"})},[f,b]);const He=!!l[s]?.isShowVideo,me=de!==void 0,A=!me&&He&&P!==null&&P>5&&L!=="ended"&&L!==null,Ae=me||A,Fe=A?L==="paused":he==="STOPPED",ze=()=>{if(!A){Ee();return}const e=p.current[s]?.current;e&&(e.paused?e.play()?.catch(()=>{}):e.pause())},ve=x&&x.index===s?x.theme:l[s]?.theme;return w("div",{ref:Pe,role:"region","aria-roledescription":"carousel","aria-label":g.carouselLabel,onFocus:_e,onBlur:Ve,className:C("hero-banner-carousel group relative w-full overflow-hidden",I==="default"?"tablet:aspect-[768/560] laptop:aspect-[1024/400] desktop:aspect-[1440/560] lg-desktop:aspect-[1920/800] aspect-[390/560]":"lg-desktop:aspect-[1920/800] desktop:aspect-[1440/640] laptop:aspect-[1024/480] tablet:aspect-[768/560] aspect-[390/560]",Y.root,ce),...y,children:[n(Me,{onSwiper:ke,onSlideChange:Ce,onSlideChangeTransitionEnd:we,onSliderFirstMove:Le,slidesPerView:1,loop:!0,initialSlide:0,allowTouchMove:!0,children:l.map((e,t)=>{const r=x&&x.index===t?x.theme:e.theme??"light";return n(De,{children:({isActive:v})=>n(Qe,{data:e,isActive:v,slideIndex:t,slideLabel:`${g.slideStatus} ${t+1} / ${l.length}`,videoRef:p.current[t],containerSize:I,theme:r,linkRefId:`image_hero_banner_${t+1}`,onPrimaryClick:D,onSecondaryClick:J,onTertiaryClick:K})},t)})}),H&&n(We,{onPrev:()=>ue("prev"),onNext:()=>ue("next"),prevLabel:g.prevSlide,nextLabel:g.nextSlide}),i&&n(Ye,{frameCount:l.length,activeIndex:s,resetNonce:xe,activeFrameIntervalSec:de,isAutoplayEnabled:i,isTimerRunning:Te,classPrefix:"hero-banner",theme:ve}),Ae&&n(Ge,{isPaused:Fe,onToggle:ze,pausedLabel:A?g.playVideo:g.playAutoplay,playingLabel:A?g.pauseVideo:g.pauseAutoplay,classPrefix:"hero-banner",theme:ve}),n("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only",children:Se})]})});ye.displayName="HeroBannerCarousel";var pt=ye;export{pt as default};
|
|
@@ -1,2 +1,5 @@
|
|
|
1
1
|
export { default } from './HeroBanner.js';
|
|
2
2
|
export type { JumpOptions } from './HeroBanner.js';
|
|
3
|
+
export type { HeroBannerProps, HeroBannerSlideData, HeroBannerCarouselConfig, HeroBannerA11yLabels, HeroBannerMediaTier, HeroBannerTieredMedia, HeroBannerTieredMediaFields, HeroBannerMultiThemeFields, } from './types.js';
|
|
4
|
+
export { resolveTierMedia, buildPictureSource } from './mediaResolver.js';
|
|
5
|
+
export type { MediaTier, MediaKind, TieredMediaFields, TieredMediaSources } from './mediaResolver.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{default as
|
|
1
|
+
import{default as o}from"./HeroBanner.js";import{resolveTierMedia as a,buildPictureSource as n}from"./mediaResolver.js";export{n as buildPictureSource,o as default,a as resolveTierMedia};
|