@nuskin/react-mysite-elements 1.1.6 → 1.1.8-td-3969.1
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/common/headers/MysiteHero.styled.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["/gitlab-runner-data/builds/nextgen-development/mysite/npm/react-mysite-elements/dist/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../src/index.ts","../src/common/card/NsProductCard.tsx","../src/common/card/styles/NsProductCard.Styled.tsx","../src/common/carousel/NsProductCarousel.tsx","../src/common/carousel/NsProductCarousel.styled.ts","../src/common/carousel/ProductTabCarousel.tsx","../src/common/Nav-Category-Navigation/NsCategoryNavigation.tsx","../src/common/Nav-Category-Navigation/NsCategoryNavigation.styled.tsx","../src/common/carousel/ProductTabCarousel.styled.tsx","../src/common/headers/MysiteHero.tsx","../src/common/headers/MysiteHero.styled.tsx","../src/common/icon/icons/PlaceholderImage.tsx","../src/common/icon/icons/ArrowDownIcon.tsx"],"names":["Pt","Object","create","J","defineProperty","Bt","getOwnPropertyDescriptor","It","getOwnPropertyNames","Ft","getPrototypeOf","Nt","prototype","hasOwnProperty","ae","e","t","exports","Rt","o","get","enumerable","he","i","r","call","z","__esModule","value","Et","require_ReactPropTypesSecret","__commonJSMin","module","ReactPropTypesSecret","require_factoryWithThrowingShims","emptyFunction","emptyFunctionWithReset","Ve","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","isRequired","getShim","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require_prop_types","Ye","ReactIs","throwOnDirectAccess","index_exports","__export","MysiteHero","NsCategoryNavigation","NsProductCard","NsProductCard_default","ProductCarousel","ProductCardCarousel","ProductTabCarousel","ProductTabCarousel_default","__toCommonJS","import_react","require","import_foundation_ui_components","import_foundation_theme","PriceComponent","R","styled","ProductCardContainer","isMobile","ImageContainer","bgColor","DefaultImage","ProductTitle","ProductBadgeContainer","AddToCartButton","disabled","isHovered","CartIcon","import_material","import_jsx_runtime","productTitle","imageDetails","className","button","onCardClick","productStatusBadge","directSellerBadge","mySitePriceComponent","testId","ke","useState","isButtonHovered","setIsButtonHovered","Te","useMediaQuery","handleImageError","target","noImageFallback","fallbackImage","src","y","jsxs","onClick","tabIndex","children","jsx","onError","imageSrc","Se","NsImage","alt","imageAlt","areaLabel","width","title","showButton","buttonText","stopPropagation","onMouseEnter","onMouseLeave","height","viewBox","fill","xmlns","fillRule","clipRule","d","import_react_slick","import_useMediaQuery","import_Box","SlickContainer","k","W","Box","ScrollableContainer","CardList","ControlsContainer","ViewAllWrapper","ProductCountWrapper","ArrowsWrapper","$isDisabled","Scrollablewrapper","CustomTypography","Pe","NsTypography","ViewAllLink","EmptyProductCategories","entries","renderEntry","settings","showControlButtons","allEntryLabel","allEntryLink","categoryName","emptyProductMessage","productsCountLabel","isInitialDataLoading","sliderRef","O","useRef","Ae","prev","useCallback","current","slickPrev","next","slickNext","renderProductEntry","entry","index","f","directSeller","sliderSettings","dots","infinite","speed","slidesToShow","Math","min","length","slidesToScroll","swipe","draggable","arrows","responsive","breakpoint","shouldShowNavigation","renderCarouselContent","map","De","Slider","ref","style","display","alignItems","justifyContent","flex","minWidth","variant","fontFamily","fontWeight","fontSize","marginLeft","whiteSpace","overflow","textOverflow","maxWidth","marginRight","href","We","NsCarouselControl","viewAllLabel","viewAllUrl","React","import_Tabs","import_Tab","import_prop_types","Ze","NsCategoryNavigationContainer","Ue","div","TabPanel","other","E","role","hidden","id","ne","propTypes","ee","itemArray","controlledValue","onChange","Ke","internalValue","setInternalValue","Xe","Ge","Tabs","orientation","event","newValue","item","Je","Tab","label","categoryId","findIndex","content","ProductTabCarouselContainer","H","TabsContainer","ContentContainer","LoadingContainer","NoTabsContainer","SpinnerContainer","fetchCategories","fetchProducts","showCustomCategory","emptyProductTabs","categories","nt","w","isLoadingInitialData","setIsLoadingInitialData","setCategories","selectedTab","setSelectedTab","products","setProducts","loading","setLoading","shouldShowSpinner","setShouldShowSpinner","checkForExistingSpinners","existingSpinners","document","querySelectorAll","useEffect","then","finally","cat","I","_","lt","NsSpinner","MysiteHeroContainer","$","le","j","bannerProps","isCircularImage","backgroundClip","background","backgroundColor","position","flexDirection","transition","willChange","transform","backfaceVisibility","top","left","right","boxShadow","paddingTop","lineHeight","marginBottom","fontStyle","headlineFont","padding","boxSizing","color","paddingLeft","paragraphFont","WebkitBoxOrient","WebkitLineClamp","opacity","letterSpacing","textDecoration","textTransform","gap","paddingBottom","MysiteHeroContainerMobile","paddingRight","objectFit","maxHeight","bottom","pointerEvents","wordBreak","overflowWrap","BadgeContainer","Badge","backdropFilter","borderRadius","border","ToggleButtonMobile","cursor","margin","PlaceholderImage","F","xt","sx","ArrowDownIcon","se","StyledSpan","l","outline","borderColor","renderImageContent","placeholderClass","includes","a","Y","renderBadges","showBadges","expirationDate","renderMobileContent","isScrolled","renderSocialMediaIcons","shopTitle","socialTitleText","email","Typography","Fragment","renderDesktopContent","shopDescription","Tooltip","arrow","onKeyDown","key","preventDefault","globalThis","checkIfImageIsCircular","url","Promise","resolve","reject","imageContext","Image","crossOrigin","onload","canvas","createElement","context","getContext","drawImage","isCircular","getImageData","data","every","corner","Array","slice","onerror","socialIcons","L","setIsScrolled","isDescriptionExpanded","setIsDescriptionExpanded","isImageCircular","setIsImageCircular","toggleDescription","debounceTimeout","lastScrollY","window","scrollY","currentScrollState","lastExternalHeaderState","getExternalHeaderContainer","querySelector","getMysiteHeroPosition","container","isCompact","classList","contains","isFullView","getExternalHeaderState","updateScrollState","newState","clearTimeout","setTimeout","handleScroll","currentScrollY","scrollDelta","abs","minScrollDelta","scrollingDown","scrollingUp","externalHeaderState","mysiteHeroTop","externalIsCompact","baseScrollDownThreshold","baseScrollUpThreshold","scrollDownThreshold","scrollUpThreshold","initializeState","initialScrollY","scrollThreshold","shouldStartCompact","ticking","throttledScrollHandler","requestAnimationFrame","addEventListener","passive","removeEventListener","useMemo","icon","NsLink","type","containerClass","getCharacterLimit","innerWidth","shouldShowToggle"],"mappings":"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","sourcesContent":["\"use strict\";var Pt=Object.create;var J=Object.defineProperty;var Bt=Object.getOwnPropertyDescriptor;var It=Object.getOwnPropertyNames;var Ft=Object.getPrototypeOf,Nt=Object.prototype.hasOwnProperty;var ae=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Rt=(e,t)=>{for(var o in t)J(e,o,{get:t[o],enumerable:!0})},he=(e,t,o,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let r of It(t))!Nt.call(e,r)&&r!==o&&J(e,r,{get:()=>t[r],enumerable:!(i=Bt(t,r))||i.enumerable});return e};var z=(e,t,o)=>(o=e!=null?Pt(Ft(e)):{},he(t||!e||!e.__esModule?J(o,\"default\",{value:e,enumerable:!0}):o,e)),Et=e=>he(J({},\"__esModule\",{value:!0}),e);var Ve=ae((co,$e)=>{\"use strict\";var Mt=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";$e.exports=Mt});var Ye=ae((mo,je)=>{\"use strict\";var zt=Ve();function Oe(){}function _e(){}_e.resetWarningCache=Oe;je.exports=function(){function e(i,r,d,p,g,s){if(s!==zt){var x=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw x.name=\"Invariant Violation\",x}}e.isRequired=e;function t(){return e}var o={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:_e,resetWarningCache:Oe};return o.PropTypes=o,o}});var Ze=ae((ho,qe)=>{\"use strict\";qe.exports=Ye()();var go,xo});var Vt={};Rt(Vt,{MysiteHero:()=>de,NsCategoryNavigation:()=>te,NsProductCard:()=>X,ProductCarousel:()=>_,ProductTabCarousel:()=>st});module.exports=Et(Vt);var ke=require(\"react\"),Se=require(\"@nuskin/foundation-ui-components\");var R=require(\"@nuskin/foundation-theme\"),fe=(0,R.styled)(\"div\")`\n width: 200px;\n text-align: left;\n margin-bottom: 5px;\n`,be=(0,R.styled)(\"button\")`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 240px;\n height: ${e=>e.isMobile?\"410px\":\"513px\"};\n overflow: hidden;\n cursor: pointer;\n border: 1px solid #ededed;\n background: var(--color-primary-n-10-primary-white, #fff);\n`,ue=(0,R.styled)(\"div\")`\n width: '240px';\n height: '240px';\n background: ${e=>e.bgColor??\"#f5f5f5\"};\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 0;\n display: flex;\n align-items: normal;\n justify-content: center;\n position: relative;\n @media (max-width: 560px) {\n width: 200px;\n height: 200px;\n align-items: unset;\n }\n`,ye=(0,R.styled)(\"img\")`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n display: block;\n`,we=(0,R.styled)(\"div\")`\n width: 200px;\n margin-top: 16px;\n max-height: 66px;\n text-align: left;\n font-size: 16px;\n font-family: 'Inter', sans-serif;\n font-weight: 400;\n line-height: 22px;\n overflow: hidden;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n @media (max-width: 560px) {\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n margin-top: 5px;\n max-height: 54px;\n line-height: 18px;\n }\n`,re=(0,R.styled)(\"div\")`\n width: 200px;\n text-align: left;\n margin-bottom: 12px;\n @media (max-width: 560px) {\n margin-bottom: 8px;\n }\n`,Ce=(0,R.styled)(\"button\")`\n width: 200px;\n height: 40px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n font-family: 'Inter', sans-serif;\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n letter-spacing: 0.14px;\n text-transform: none;\n justify-content: flex-start;\n padding-left: 31px;\n overflow: hidden;\n white-space: normal;\n word-break: break-word;\n overflow-wrap: break-word;\n text-overflow: ellipsis;\n margin-top: 8px;\n margin-bottom: 10px;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n\n color: ${e=>e.disabled?\"#999\":\"#fff\"};\n background-color: ${e=>e.disabled?\"#e0e0e0\":!e.isMobile&&e.isHovered?\"#888\":\"#000\"};\n border: ${e=>e.disabled?\"1px solid #ccc\":\"none\"};\n cursor: ${e=>e.disabled?\"not-allowed\":\"pointer\"};\n opacity: ${e=>e.disabled?.6:1};\n transition: ${e=>e.isMobile?\"none\":\"all 0.3s ease\"};\n\n @media (max-width: 560px) {\n margin: 5px 0;\n }\n`,ve=(0,R.styled)(\"span\")`\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n display: inline-block;\n background: none;\n transition: all 0.3s ease;\n opacity: ${e=>e.disabled?.5:1};\n`;var Te=require(\"@mui/material\"),y=require(\"react/jsx-runtime\"),Lt=({productTitle:e,imageDetails:t,className:o,button:i,onCardClick:r,productStatusBadge:d,directSellerBadge:p,mySitePriceComponent:g,testId:s})=>{let[x,c]=(0,ke.useState)(!1),h=(0,Te.useMediaQuery)(\"(max-width: 560px)\"),M=S=>{let u=S.target,T=t?.fallbackImage;T&&u.src!==T&&(u.src=T)};return(0,y.jsxs)(be,{className:o,onClick:r,tabIndex:0,\"data-testid\":\"product-card\",isMobile:h,children:[(0,y.jsx)(ue,{bgColor:t?.bgColor,onError:M,children:t?.imageSrc?(0,y.jsx)(Se.NsImage,{\"data-testid\":s??\"test-product-image\",className:t.className??\"\",src:t.imageSrc,alt:t.imageAlt,\"aria-label\":t.areaLabel??t.imageAlt,width:\"100%\"}):(0,y.jsx)(ye,{alt:\"\"})}),(0,y.jsx)(we,{title:e,\"data-testid\":\"product-title\",children:e}),p&&(0,y.jsx)(re,{children:p}),(0,y.jsx)(re,{children:d}),(0,y.jsx)(fe,{children:g}),i?.showButton&&(0,y.jsxs)(Ce,{tabIndex:0,\"aria-roledescription\":\":\",\"aria-label\":i.buttonText||\"ADD TO CART\",\"data-testid\":\"add-to-cart-button\",disabled:i?.disabled??!1,isMobile:h,isHovered:x,onClick:S=>{S.stopPropagation(),i?.disabled||i.onClick?.()},onMouseEnter:()=>{!h&&!i?.disabled&&c(!0)},onMouseLeave:()=>{h||c(!1)},children:[(0,y.jsx)(ve,{className:\"cart-icon\",disabled:i?.disabled,children:(0,y.jsx)(\"svg\",{width:\"24\",height:\"22\",viewBox:\"0 0 24 22\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M0 1.86358C0 1.26109 0.488416 0.772675 1.09091 0.772675H3.48173C4.51054 0.772675 5.39955 1.49136 5.61511 2.49733L5.71309 2.95456H22.9091C23.245 2.95456 23.5622 3.10933 23.7689 3.37411C23.9757 3.63889 24.0489 3.98415 23.9674 4.31005L22.4053 10.5583C21.9197 12.5009 20.1743 13.8636 18.172 13.8636H8.05068L8.28444 14.9546H20.7273C21.3298 14.9546 21.8182 15.443 21.8182 16.0455C21.8182 16.648 21.3298 17.1364 20.7273 17.1364H19.6364H8.18182H7.40252C6.88811 17.1364 6.4436 16.777 6.33582 16.274L3.76449 4.27405L3.48173 2.95449H1.09091C0.488416 2.95449 0 2.46608 0 1.86358ZM8.18182 17.1364C6.97683 17.1364 6 18.1132 6 19.3182C6 20.5232 6.97683 21.5 8.18182 21.5C9.3868 21.5 10.3636 20.5232 10.3636 19.3182C10.3636 18.1132 9.3868 17.1364 8.18182 17.1364ZM19.6364 17.1364C18.4314 17.1364 17.4545 18.1132 17.4545 19.3182C17.4545 20.5232 18.4314 21.5 19.6364 21.5C20.8413 21.5 21.8182 20.5232 21.8182 19.3182C21.8182 18.1132 20.8413 17.1364 19.6364 17.1364ZM7.58317 11.6818H18.172C19.1732 11.6818 20.0459 11.0005 20.2887 10.0292L21.5119 5.13638H6.18062L7.58317 11.6818Z\",fill:i?.disabled?\"#999\":\"#ffffff\"})})}),i.buttonText||\"ADD TO CART\"]})]})},X=Lt;var O=require(\"react\"),De=z(require(\"react-slick\")),Ae=z(require(\"@mui/material/useMediaQuery\"));var We=require(\"@nuskin/foundation-ui-components\");var k=require(\"@nuskin/foundation-theme\"),W=z(require(\"@mui/material/Box\")),Pe=require(\"@nuskin/foundation-ui-components\"),Be=(0,k.styled)(W.default)`\n padding: 30px 0 60px;\n width: 100%;\n margin: auto;\n margin-top: 50px;\n position: relative;\n\n .slick-list {\n padding-left: 24px;\n padding-right: 24px;\n }\n .slick-slide {\n display: flex;\n justify-content: center;\n padding: 0 12px;\n box-sizing: border-box;\n }\n .slick-prev,\n .slick-next {\n display: none !important;\n }\n\n @media (max-width: 1200px) {\n max-width: 1024px;\n .slick-list {\n padding-left: 12px;\n padding-right: 12px;\n }\n .slick-slide {\n padding: 0 6px;\n }\n }\n @media (max-width: 700px) {\n max-width: 100vw;\n padding: 10px 0 50px;\n .slick-list {\n padding-left: 4px;\n padding-right: 4px;\n }\n .slick-slide {\n padding: 0 2px;\n }\n }\n @media (max-width: 560px) {\n padding: 10px 0 10px;\n margin-top: 25px;\n }\n`,Ie=(0,k.styled)(\"div\")`\n overflow-x: auto;\n display: flex;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n gap: 16px;\n padding: 0 8px 16px;\n width: 100%;\n box-sizing: border-box;\n\n &::-webkit-scrollbar {\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #007bff;\n border-radius: 10px;\n }\n`,Fe=(0,k.styled)(\"div\")`\n display: flex;\n scroll-snap-align: start;\n justify-content: center;\n gap: 15px;\n`,Ne=(0,k.styled)(W.default)`\n position: absolute;\n bottom: calc(100% + 1px);\n right: 1px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n`,Re=(0,k.styled)(W.default)`\n display: flex;\n align-items: center;\n margin-left: 576px;\n\n @media (max-width: 560px) {\n margin-left: 0;\n order: 2;\n }\n`,Ee=(0,k.styled)(W.default)`\n display: none;\n\n @media (max-width: 560px) {\n color: #666666;\n font-family: Inter;\n font-size: 14px !important;\n font-style: normal;\n font-weight: 600;\n line-height: 18px;\n display: flex;\n align-items: center;\n order: 1;\n }\n`,Le=(0,k.styled)(W.default)`\n display: flex;\n align-items: center;\n opacity: ${({$isDisabled:e})=>e?.3:1};\n pointer-events: ${({$isDisabled:e})=>e?\"none\":\"auto\"};\n transition: opacity 0.3s ease;\n\n .carousal-prev-button,\n .carousal-next-button {\n transition: all 0.3s ease;\n border: 2px solid #000000;\n border-radius: 3px;\n padding: 9px;\n cursor: pointer;\n\n svg {\n transition: all 0.3s ease;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n\n &:hover {\n background-color: #f5f5f5;\n border: 2px solid #ddd;\n\n svg {\n opacity: 0.5;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n }\n }\n\n @media (max-width: 560px) {\n display: none;\n }\n`,eo=(0,k.styled)(\"div\")`\n @media (max-width: 560px) {\n overflow-y: hidden;\n scrollbar-width: thin;\n scrollbar-color: #007bff #eee;\n &::-webkit-scrollbar {\n width: 8px;\n }\n &::-webkit-scrollbar-track {\n background: #eee;\n }\n &::-webkit-scrollbar-thumb {\n background-color: red;\n border-radius: 8px;\n border: 2px solid #eee;\n }\n }\n`,Me=(0,k.styled)(Pe.NsTypography)`\n color: #666666;\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 22px;\n @media (max-width: 560px) {\n margin: 0 3px;\n }\n`,ze=(0,k.styled)(\"a\")`\n color: #000000;\n font-family: Inter, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 22px;\n text-decoration: none;\n border-bottom: 1px solid #000000;\n padding-bottom: 4px;\n transition: all 0.3s ease;\n\n @media (max-width: 560px) {\n font-size: 14px !important;\n line-height: 18px;\n }\n\n &:hover {\n color: #666666;\n border-bottom: 1px solid #666666;\n }\n`,He=(0,k.styled)(\"div\")`\n padding-top: 20px;\n font-size: 20px;\n text-align: center;\n`;var f=require(\"react/jsx-runtime\");function _({entries:e,renderEntry:t,settings:o={},showControlButtons:i=!0,allEntryLabel:r=\"View All\",allEntryLink:d=\"\",categoryName:p,emptyProductMessage:g=\"No Products Available For The Selected Category\",productsCountLabel:s=\"Products\",isInitialDataLoading:x}){let c=(0,O.useRef)(null),h=(0,Ae.default)(\"(max-width: 560px)\"),M=(0,O.useCallback)(()=>{c.current?.slickPrev()},[]),S=(0,O.useCallback)(()=>{c.current?.slickNext()},[]),u=t??((m,P)=>(0,f.jsx)(X,{productTitle:m.productTitle,imageDetails:m.imageDetails,button:m.button,onCardClick:m.onCardClick,productStatusBadge:m.productStatusBadge,directSellerBadge:m.directSeller,mySitePriceComponent:m.mySitePriceComponent},`${m.productTitle}-${P}`)),T={dots:!0,infinite:!0,speed:500,slidesToShow:Math.min(e?.length??0,4),slidesToScroll:4,swipe:!0,draggable:!0,arrows:!0,responsive:[{breakpoint:1320,settings:{slidesToShow:Math.min(e?.length??0,3),slidesToScroll:3}},{breakpoint:900,settings:{slidesToShow:Math.min(e?.length??0,2),slidesToScroll:2}},{breakpoint:600,settings:{slidesToShow:1,slidesToScroll:1,arrows:!1}}],...o},N=(e?.length??0)>T.slidesToShow,V=()=>e?.length===0&&!x?(0,f.jsx)(He,{children:g}):h?(0,f.jsx)(Ie,{children:(0,f.jsx)(Fe,{children:e.map((m,P)=>m&&u(m,P))})}):(0,f.jsx)(De.default,{...T,ref:c,children:e.map((m,P)=>m&&u(m,P))});return(0,f.jsxs)(Be,{children:[i&&(0,f.jsxs)(Ne,{children:[(0,f.jsxs)(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",width:\"100%\"},children:[(0,f.jsxs)(\"div\",{style:{display:\"flex\",alignItems:\"center\",flex:1,minWidth:0},children:[(0,f.jsx)(Ee,{children:(0,f.jsxs)(Me,{variant:\"body-m\",children:[e?.length??0,\" \",s]})}),!h&&p&&(0,f.jsx)(\"div\",{style:{fontFamily:\"Lora\",fontWeight:400,fontSize:22,marginLeft:16,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",maxWidth:\"300px\"},children:p})]}),(0,f.jsx)(Re,{style:{marginLeft:\"auto\",marginRight:h?0:24},children:(0,f.jsx)(ze,{href:d,children:r})})]}),!h&&(0,f.jsx)(Le,{$isDisabled:!N,children:(0,f.jsx)(We.NsCarouselControl,{prev:M,next:S,viewAllLabel:\"\",viewAllUrl:\"\"})})]}),V()]})}var w=require(\"react\"),nt=require(\"@mui/material\");var Ke=z(require(\"react\")),Ge=z(require(\"@mui/material/Tabs\")),Je=z(require(\"@mui/material/Tab\")),ne=z(require(\"@mui/material/Box\")),ee=z(Ze());var Ue=require(\"@nuskin/foundation-theme\"),Qe=Ue.styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n background-color: #fff;\n .tabsStyle {\n display: flex;\n padding-top: 8.533px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12.8px;\n border-right: 1px;\n border-color: divider;\n width: 200px;\n & .Mui-selected {\n font-weight: 700;\n font-size: 14px;\n font-family: 'inter', sans-serif;\n font-style: normal;\n font-height: 20px;\n border-radius: 4px;\n }\n & .MuiTabs-indicator {\n left: 0;\n background-color: #5b81a5;\n color: #5b81a5;\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .tabContainer {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n min-width: 100%;\n background-color: #fff;\n @media (max-width: 768px) {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n }\n\n .tabStyle {\n align-items: flex-start;\n display: flex;\n text-align: left;\n font-size: 14px;\n font-family: 'inter' sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n min-height: 20px;\n padding: 1px;\n padding-left: 10px;\n margin-bottom: 10px;\n cursor: pointer;\n text-transform: none;\n }\n @media (max-width: 768px) {\n flex-direction: row;\n\n .tabsStyle {\n width: 100%;\n border-right: none;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding-top: 0px;\n }\n\n .tabStyle {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n border: 1px solid #ccc;\n border-radius: 70px;\n padding: 8px 16px;\n text-align: center;\n margin: 4px;\n background-color: #fff;\n cursor: pointer;\n color: black;\n font-family: Inter;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n .tabStyle.Mui-selected {\n background-color: #5b81a5;\n color: #ffffff !important;\n font-weight: 700;\n border-radius: 70px;\n }\n }\n .tabPanel {\n padding: 8px;\n text-align: left;\n }\n`;var Xe=require(\"@mui/material\"),E=require(\"react/jsx-runtime\");function et(e){let{children:t,value:o,index:i,...r}=e;return(0,E.jsx)(\"div\",{role:\"tabpanel\",hidden:o!==i,id:`vertical-tabpanel-${i}`,\"aria-labelledby\":`vertical-tab-${i}`,...r,children:o===i&&(0,E.jsx)(ne.default,{className:\"tabPanel\",children:t})})}et.propTypes={children:ee.default.node,index:ee.default.number.isRequired,value:ee.default.number.isRequired};var te=({itemArray:e,value:t,onChange:o})=>{let[i,r]=Ke.useState(0),d=(0,Xe.useMediaQuery)(\"(max-width:768px)\"),p=t??i;return(0,E.jsx)(Qe,{children:(0,E.jsxs)(ne.default,{className:\"tabContainer\",children:[(0,E.jsx)(Ge.default,{orientation:d?\"horizontal\":\"vertical\",variant:\"scrollable\",value:p,onChange:(s,x)=>{o?o(s,x):r(x)},\"aria-label\":\"Vertical tabs example\",className:\"tabsStyle\",children:e.map(s=>(0,E.jsx)(Je.default,{label:s.label,className:\"tabStyle\"},s.categoryId))}),e.map(s=>(0,E.jsx)(et,{value:p,index:e.findIndex(x=>x.categoryId===s.categoryId),children:s.content},s.categoryId))]})})};var lt=require(\"@nuskin/foundation-ui-components\");var H=require(\"@nuskin/foundation-theme\"),tt=(0,H.styled)(\"div\")`\n display: flex;\n flex-direction: ${({isMobile:e})=>e?\"column\":\"row\"};\n align-items: ${({isMobile:e})=>e?\"stretch\":\"flex-start\"};\n width: 100%;\n max-width: 1920px;\n min-height: ${({isMobile:e})=>e?\"auto\":\"500px\"};\n margin: 0 auto;\n box-sizing: border-box;\n overflow: visible;\n background: #fff;\n padding: ${({isMobile:e})=>e?\"10px 16px 0px 16px\":\"50px 60px 0px 60px\"};\n\n @media (max-width: 768px) {\n padding: 10px 16px 0px 16px;\n min-height: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n padding: 30px 40px 0px 40px;\n gap: 20px;\n }\n\n transform: translateZ(0);\n will-change: auto;\n`,ot=(0,H.styled)(\"div\")`\n min-width: ${({isMobile:e})=>e?\"100%\":\"auto\"};\n height: ${({isMobile:e})=>e?\"auto\":\"100%\"};\n flex-shrink: 0;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n\n overflow-x: auto;\n overflow-y: visible;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-width: 200px;\n margin-right: 20px;\n }\n`,it=(0,H.styled)(\"div\")`\n flex: 1;\n min-width: 0;\n height: ${({isMobile:e})=>e?\"auto\":\"100%\"};\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n min-height: 300px;\n\n -webkit-overflow-scrolling: touch;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-height: 400px;\n }\n\n contain: layout style paint;\n transform: translateZ(0);\n`,Co=(0,H.styled)(\"div\")`\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px;\n padding: 20px;\n\n @media (max-width: 768px) {\n min-height: 150px;\n padding: 16px;\n }\n`,at=(0,H.styled)(\"div\")`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 40px 20px;\n color: #666;\n font-size: 16px;\n\n @media (max-width: 768px) {\n padding: 20px 16px;\n font-size: 14px;\n }\n`,rt=(0,H.styled)(\"div\")`\n padding: 10px;\n display: flex;\n justify-content: center;\n`;var I=require(\"react/jsx-runtime\"),Ht=({allEntryLabel:e,allEntryLink:t,renderEntry:o,settings:i,showControlButtons:r=!0,fetchCategories:d,fetchProducts:p,showCustomCategory:g=!1,emptyProductTabs:s=\"No tabs available\",emptyProductMessage:x,productsCountLabel:c})=>{let h=(0,nt.useMediaQuery)(\"(max-width:768px)\"),[M,S]=(0,w.useState)(!0),[u,T]=(0,w.useState)([]),[N,V]=(0,w.useState)(0),[m,P]=(0,w.useState)([]),[D,q]=(0,w.useState)(!1),[Z,C]=(0,w.useState)(!0),b=(0,w.useCallback)(()=>{let v=document.querySelectorAll('[data-testid*=\"spinner\"], .ns-spinner, [class*=\"spinner\"]');C(v.length===0)},[]);(0,w.useEffect)(()=>{D&&b()},[D,b]),(0,w.useEffect)(()=>{d().then(T)},[d]),(0,w.useEffect)(()=>{u.length>0&&(q(!0),p(u[N].categoryId).then(P).finally(()=>{q(!1),S(!1)}))},[u,N,p]);let B=u.map(v=>({label:v.label,content:\"\",categoryId:v.categoryId}));return(0,I.jsxs)(tt,{isMobile:h,children:[g&&(B.length>0?(0,I.jsx)(ot,{isMobile:h,children:(0,I.jsx)(te,{itemArray:B,value:N,onChange:(v,U)=>V(U)})}):(0,I.jsx)(at,{children:s})),(0,I.jsx)(it,{isMobile:h,children:D?(0,I.jsx)(rt,{children:Z&&(0,I.jsx)(lt.NsSpinner,{})}):(0,I.jsx)(_,{isInitialDataLoading:M,entries:m,allEntryLabel:e,allEntryLink:t,renderEntry:o?v=>o({...v,productStatusBadge:v.productStatusBadge}):void 0,settings:i,showControlButtons:r,categoryName:u[N]?.label,emptyProductMessage:x,productsCountLabel:c})})]})},st=Ht;var L=require(\"react\"),l=require(\"@mui/material\"),Y=require(\"@nuskin/foundation-ui-components\");var $=require(\"@nuskin/foundation-theme\"),j=require(\"@mui/material\"),le=require(\"react/jsx-runtime\"),dt=(0,$.styled)(e=>(0,le.jsx)(j.Box,{...e}))(({bannerProps:e,isCircularImage:t})=>({backgroundClip:\"border-box\",display:\"flex\",background:e?.backgroundColor??\"#383838\",position:\"relative\",overflow:\"hidden\",width:\"100%\",height:\"auto\",flexDirection:\"row\",alignItems:\"center\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"transform, opacity\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\",\"&.scrolled\":{top:0,left:0,right:0,boxShadow:\"0 2px 8px rgba(0,0,0,0.2)\",\".content\":{paddingTop:\"0\",justifyContent:\"center\"},\".body-title\":{fontSize:\"26px\",lineHeight:\"34px\",marginBottom:\"0\",fontStyle:\"normal\",fontWeight:\"400\",fontFamily:e?.headlineFont??\"Lora\"},\".bg-image\":{width:\"90px !important\",height:\"90px !important\",padding:t?\"2px\":\"0px\"},\".placeholder-image\":{\"& > div\":{width:\"90px !important\",height:\"90px !important\"}}},\".content\":{width:\"70%\",height:\"100%\",marginLeft:\"2%\",marginRight:\"auto\",paddingTop:\"32px\",display:\"flex\",flexDirection:\"column\",position:\"relative\",boxSizing:\"border-box\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\"},\".bg-image\":{width:\"252px\",height:\"252px\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",padding:t?\"3px\":\"0px\"},\".placeholder-image\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",\"& > div\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\"}},\".body-title\":{fontSize:\"32px\",lineHeight:\"38px\",marginBottom:\"15px\",fontWeight:\"400\",color:\"#FFFFFF\",overflow:\"hidden\",whiteSpace:\"nowrap\",textOverflow:\"ellipsis\",fontFamily:e?.headlineFont??\"Lora\",paddingLeft:\"5px\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\"},\".body-text\":{fontSize:\"16px\",marginBottom:\"15px\",fontStyle:\"normal\",fontWeight:\"400\",lineHeight:\"22px\",color:\"#FFFFFF\",fontFamily:e?.paragraphFont??\"inherit\",display:\"-webkit-box\",WebkitBoxOrient:\"vertical\",overflow:\"hidden\",WebkitLineClamp:3,textOverflow:\"ellipsis\",paddingLeft:\"5px\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\"},\".social-media\":{display:\"flex\",flexDirection:\"column\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\"},\".email-text\":{fontSize:\"12px\",fontStyle:\"normal\",fontWeight:\"600\",lineHeight:\"16px\",letterSpacing:\"0.12px\",color:\"#FFFFFF\",\"& a\":{color:\"inherit\",textDecoration:\"none\",\"&:hover\":{textDecoration:\"underline\"}}},\".social-title-text\":{fontSize:\"12px\",marginBottom:\"16px\",fontStyle:\"normal\",fontWeight:\"700\",lineHeight:\"16px\",letterSpacing:\"0.48px\",color:\"#FFFFFF\",textTransform:\"uppercase\",paddingLeft:\"5px\"},\".social-icons\":{display:\"flex\",flexDirection:\"row\",gap:\"10px\",paddingBottom:\"15px\",alignItems:\"center\"}})),pt=(0,$.styled)(e=>(0,le.jsx)(j.Box,{...e}))(({bannerProps:e,isCircularImage:t})=>({backgroundClip:\"border-box\",display:\"flex\",background:e?.backgroundColor??\"#383838\",position:\"relative\",overflow:\"hidden\",width:\"100%\",flexDirection:\"column\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"transform, opacity\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\",\"&.scrolled\":{top:0,left:0,right:0,boxShadow:\"0 2px 8px rgba(0,0,0,0.2)\",\".content-mobile\":{paddingTop:\"5px\",width:\"60%\"},\".body-title-mobile\":{fontSize:\"18px\",lineHeight:\"28px\",marginBottom:\"0\",fontStyle:\"normal\",fontWeight:\"400\",fontFamily:e?.headlineFont??\"Lora\"},\".bg-image-mobile\":{width:\"75px !important\",height:\"75px !important\",padding:t?\"2px\":\"0px\"},\".placeholder-image-mobile\":{\"& > div\":{width:\"75px !important\",height:\"75px !important\"}}},\".image-content-mobile\":{display:\"flex\",flexDirection:\"row\",width:\"100%\",justifyContent:\"center\",alignItems:\"center\"},\".content-mobile\":{width:\"55%\",height:\"100%\",paddingTop:\"10px\",paddingRight:\"10px\",marginLeft:\"8px\",marginRight:\"auto\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",position:\"relative\",boxSizing:\"border-box\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",\"@media (max-width: 420px)\":{paddingTop:\"8px\",width:\"100%\"},\"@media (max-width: 400px)\":{paddingTop:\"6px\",width:\"100%\",height:\"100%\"},\"@media (max-width: 375px)\":{paddingTop:\"4px\",width:\"100%\",height:\"100%\"}},\".bg-image-mobile\":{width:\"144px\",height:\"144px\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",objectFit:\"cover\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",padding:t?\"2px\":\"0px\",\"@media (max-width: 420px)\":{width:\"120px\",height:\"120px\"},\"@media (max-width: 400px)\":{width:\"112px\",height:\"112px\"},\"@media (max-width: 375px)\":{width:\"90px\",height:\"90px\"}},\".placeholder-image-mobile\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",\"& > div\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",width:\"144px !important\",height:\"144px !important\",\"@media (max-width: 420px)\":{width:\"120px !important\",height:\"120px !important\"},\"@media (max-width: 400px)\":{width:\"110px !important\",height:\"110px !important\"},\"@media (max-width: 375px)\":{width:\"90px !important\",height:\"90px !important\"}}},\".body-title-mobile\":{fontSize:\"22px\",lineHeight:\"28px\",marginBottom:\"13px\",fontWeight:\"400\",color:\"#FFFFFF\",fontStyle:\"normal\",overflow:\"hidden\",whiteSpace:\"nowrap\",textOverflow:\"ellipsis\",fontFamily:e?.headlineFont??\"Lora\",paddingLeft:\"5px\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",\"@media (max-width: 420px)\":{fontSize:\"16px\",lineHeight:\"24px\",marginBottom:\"8px\"},\"@media (max-width: 400px)\":{fontSize:\"16px\",lineHeight:\"22px\",marginBottom:\"6px\"},\"@media (max-width: 375px)\":{fontSize:\"14px\",lineHeight:\"20px\",marginBottom:\"4px\"}},\".body-text-mobile\":{fontSize:\"14px\",padding:\"20px 25px 20px 25px\",fontStyle:\"normal\",fontWeight:\"400\",lineHeight:\"20px\",color:\"#252525\",backgroundColor:\"#E0E0E0\",fontFamily:e?.paragraphFont??\"inherit\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",opacity:1,transform:\"translateY(0)\"},\".expandable-description-mobile\":{backgroundColor:\"#E0E0E0\",position:\"relative\"},\".description-content-mobile\":{fontSize:\"14px\",padding:\"10px 15px\",fontStyle:\"normal\",fontWeight:\"400\",lineHeight:\"20px\",color:\"#252525\",fontFamily:e?.paragraphFont??\"inherit\",transition:\"max-height 0.3s ease-in-out, opacity 0.3s ease-in-out\",overflow:\"hidden\",position:\"relative\",\"&.collapsed\":{maxHeight:\"50px\",display:\"-webkit-box\",WebkitLineClamp:2,WebkitBoxOrient:\"vertical\",\"&::after\":{content:'\"\"',position:\"absolute\",bottom:0,left:0,right:0,height:\"20px\",background:\"linear-gradient(transparent, rgba(224, 224, 224, 0.8), #E0E0E0)\",pointerEvents:\"none\"}},\"&.expanded\":{maxHeight:\"none\",whiteSpace:\"normal\",display:\"block\",\"&::after\":{display:\"none\"}}},\".email-text-mobile\":{fontSize:\"12px\",paddingBottom:\"11px\",fontStyle:\"normal\",fontWeight:\"600\",lineHeight:\"16px\",letterSpacing:\"0.12px\",color:\"#FFFFFF\",wordBreak:\"break-all\",overflowWrap:\"break-word\",paddingLeft:\"5px\",\"@media (max-width: 420px)\":{fontSize:\"11px\",lineHeight:\"15px\",paddingBottom:\"8px\"},\"@media (max-width: 400px)\":{fontSize:\"10px\",lineHeight:\"14px\",paddingBottom:\"6px\"},\"@media (max-width: 375px)\":{fontSize:\"8px\",lineHeight:\"12px\",paddingBottom:\"4px\"}},\".social-title-text-mobile\":{fontSize:\"12px\",marginBottom:\"11px\",fontStyle:\"normal\",fontWeight:\"700\",lineHeight:\"16px\",letterSpacing:\"0.48px\",color:\"#FFFFFF\",textTransform:\"uppercase\",paddingLeft:\"5px\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\",\"@media (max-width: 420px)\":{fontSize:\"11px\",lineHeight:\"14px\",marginBottom:\"8px\"},\"@media (max-width: 400px)\":{fontSize:\"10px\",lineHeight:\"12px\",marginBottom:\"5px\"},\"@media (max-width: 375px)\":{fontSize:\"8px\",lineHeight:\"11px\",marginBottom:\"4px\"}},\".social-icons-mobile\":{display:\"flex\",flexDirection:\"row\",gap:\"10px\",paddingBottom:\"10px\",alignItems:\"center\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\",\"& img\":{width:\"24px\",height:\"24px\",\"@media (max-width: 400px)\":{width:\"20px\",height:\"20px\"},\"@media (max-width: 375px)\":{width:\"18px\",height:\"18px\"}},\"@media (max-width: 420px)\":{paddingBottom:\"8px\"},\"@media (max-width: 400px)\":{paddingBottom:\"4px\"},\"@media (max-width: 375px)\":{paddingBottom:\"3px\"}}})),ct=(0,$.styled)(j.Box)({display:\"flex\",gap:\"12px\",marginBottom:\"16px\",paddingLeft:\"5px\",\"&.mobile-badges\":{flexDirection:\"column\",gap:\"8px\",marginBottom:\"12px\"},\"&.tablet-badges\":{flexDirection:\"row\",gap:\"12px\",marginBottom:\"16px\"}}),mt=(0,$.styled)(j.Box)({backgroundColor:\"rgba(255, 255, 255, 0.2)\",backdropFilter:\"blur(10px)\",borderRadius:\"20px\",padding:\"8px 16px\",display:\"flex\",alignItems:\"center\",gap:\"4px\",border:\"1px solid rgba(255, 255, 255, 0.3)\",transition:\"all 0.3s ease\",\"&.mobile-badge\":{padding:\"6px 12px\",borderRadius:\"16px\",fontSize:\"12px\"},\"&.tablet-badge\":{padding:\"8px 16px\",borderRadius:\"20px\",fontSize:\"14px\"},\"&:hover\":{backgroundColor:\"rgba(255, 255, 255, 0.3)\",transform:\"translateY(-1px)\",boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.1)\"},\".badge-text\":{color:\"#FFFFFF\",fontWeight:\"400\",opacity:.9},\".badge-value\":{color:\"#FFFFFF\",fontWeight:\"600\"}}),gt=(0,$.styled)(\"button\")({backgroundColor:\"#E0E0E0\",border:\"1px solid #252525\",borderRadius:\"10px\",cursor:\"pointer\",width:\"40px\",height:\"20px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",margin:\"10px auto 5px auto\",transition:\"all 0.2s ease\",\"& .arrow-icon-mobile\":{transition:\"transform 0.3s ease\",\"&.expanded\":{transform:\"rotate(180deg)\"}}});var xt=require(\"@mui/material\"),F=require(\"react/jsx-runtime\"),ht=({width:e,height:t,backgroundColor:o})=>(0,F.jsx)(xt.Box,{sx:{width:e,height:t,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",backgroundColor:o},\"data-testid\":\"placeholder-image\",children:(0,F.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"128\",height:\"129\",viewBox:\"0 0 128 129\",fill:\"none\",children:(0,F.jsxs)(\"g\",{id:\"ns_logomark\",children:[(0,F.jsx)(\"path\",{id:\"Vector\",d:\"M127.495 52.1946C125.663 47.9538 122.999 44.1171 119.661 40.9073C112.565 34.2835 102.562 31.7037 93.1175 34.0622C83.6733 36.4206 76.0882 43.3926 72.991 52.5619C71.4142 56.8414 70.6063 61.3627 70.6039 65.9196C70.6039 85.8227 70.6039 105.737 70.6039 125.662C70.6039 129.001 70.6039 129.001 66.9051 128.834C66.9051 128.2 66.9051 127.499 66.9051 126.831C66.9051 104.323 66.9051 81.8263 66.9051 59.3409C66.3415 45.3064 74.9302 32.5039 88.1888 27.6164C89.79 27.0612 91.4307 26.6259 93.0981 26.314C94.7114 25.98 96.4605 25.8465 98.0738 25.6461C96.0231 16.3291 78.9419 5.60953 65.0889 4.97504C50.3084 4.62252 36.6074 12.6365 29.7509 25.6461C31.331 25.8465 32.8779 25.9466 34.3569 26.2138C48.0999 28.544 58.7086 39.4998 60.5168 53.2298C60.8904 55.7285 61.0812 58.2508 61.0877 60.7769C61.0877 82.7507 61.0877 104.724 61.0877 126.697C61.0877 128.434 60.6842 129.169 58.8016 128.968C56.9183 128.768 57.1204 128.2 57.1204 126.965C57.1204 119.985 57.1204 113.006 57.1204 105.993C57.1204 92.1674 57.1204 78.3423 57.1204 64.5171C57.2385 56.3928 54.2457 48.5271 48.7477 42.5103C42.2429 35.5282 32.6539 32.2371 23.1959 33.7401C13.7379 35.243 5.66194 41.3411 1.67448 49.9906C1.23781 50.8254 0.867444 51.6937 0.262573 52.9293C5.79294 22.3996 32.4752 0.139867 63.7085 0.000656323C94.9411 -0.138555 121.824 21.8824 127.629 52.3616\",fill:\"#252525\"}),(0,F.jsx)(\"path\",{id:\"Vector_2\",d:\"M86.0995 124.927C86.0995 124.293 86.0995 123.858 86.0995 123.425C86.0995 111.669 86.0995 100.049 86.0995 88.1269C85.8836 82.4231 88.0775 76.89 92.1523 72.8653C97.3131 67.9567 104.984 66.7091 111.452 69.7263C117.892 72.1185 122.166 78.225 122.178 85.0541C122.372 92.1747 119.781 99.0921 114.949 104.356C107.882 113.237 98.6134 120.141 88.05 124.392C87.4217 124.616 86.782 124.805 86.1335 124.96\",fill:\"#252525\"}),(0,F.jsx)(\"path\",{id:\"Vector_3\",d:\"M41.8183 125.395C37.6149 123.224 33.6477 121.487 29.9828 119.25C21.5405 114.299 14.4778 107.331 9.43828 98.9796C6.53442 94.3985 5.34408 88.9493 6.07591 83.5852C7.056 75.2882 13.8859 68.8841 22.2829 68.3905C31.1231 67.2473 39.3527 73.0751 41.1455 81.7484C41.76 84.263 42.0762 86.8411 42.0868 89.4287C42.0868 100.516 42.0868 111.636 42.0868 122.823C42.0868 123.457 42.0867 124.059 41.8854 125.294\",fill:\"#252525\"}),(0,F.jsx)(\"path\",{id:\"Vector_4\",d:\"M51.3337 127.431C47.9713 127.431 47.6681 127.198 47.6681 124.326V76.6386C48.1096 67.937 42.9747 59.906 34.8574 56.602C25.8992 52.8557 15.5485 54.8615 8.66523 61.6779C4.28638 66.6086 1.89197 72.9696 1.94049 79.5438C1.95423 80.2444 1.78037 80.9357 1.43588 81.5476C1.06552 79.9446 0.62885 78.2081 0.426687 76.7387C-0.724024 70.4463 0.471163 63.9529 3.78906 58.472C6.09291 54.6111 9.65016 51.6434 13.8762 50.0567C22.8587 46.555 32.9393 47.1785 41.4148 51.7598C47.6592 54.8694 51.5262 61.2882 51.3337 68.2232C51.5019 87.6249 51.3337 107.027 51.3337 126.396C51.3337 126.797 51.3337 127.164 51.3337 127.532\",fill:\"#252525\"}),(0,F.jsx)(\"path\",{id:\"Vector_5\",d:\"M76.287 127.499V125.094C76.287 107.196 76.4883 89.2963 76.287 71.3966C76.0848 56.9034 84.2554 50.6588 95.7553 48.3545C101.535 47.2005 107.524 47.6393 113.071 49.6235C122.914 53.3319 128.994 63.1725 127.866 73.5672C127.631 76.2831 127.17 78.975 126.487 81.6151C125.916 78.2758 125.68 74.9364 124.772 71.597C122.808 64.3002 117.377 58.4174 110.228 55.8421C103.078 53.2668 95.1132 54.3239 88.8955 58.6734C83.0441 62.6207 79.7011 69.3237 80.086 76.3389C80.086 92.2349 80.086 108.131 80.086 124.026C80.086 127.366 80.086 127.366 76.2198 127.366\",fill:\"#252525\"})]})})});var se=require(\"react/jsx-runtime\"),ft=({width:e=16,height:t=16,className:o=\"\"})=>(0,se.jsx)(\"svg\",{width:e,height:t,viewBox:\"0 0 24 24\",fill:\"currentColor\",className:o,\"data-testid\":\"arrow-down-icon\",children:(0,se.jsx)(\"path\",{d:\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"})});var a=require(\"react/jsx-runtime\"),Dt=(0,l.styled)(l.Box)({background:\"none\",border:\"2px solid transparent\",cursor:\"pointer\",padding:\"2px\",display:\"flex\",alignItems:\"center\",borderRadius:\"8px\",transition:\"all 0.3s ease\",\"&:hover\":{transform:\"scale(1.1)\",boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.15)\"},\"&:focus, &:focus-within\":{outline:\"none\",borderColor:\"#007bff\",boxShadow:\"0 0 0 2px rgba(0, 123, 255, 0.25)\"},\"&:hover svg\":{fill:\"#ffffff !important\"}}),bt=(e,t,o)=>{let i=o.includes(\"mobile\")?\"placeholder-image-mobile\":\"placeholder-image\";return e?.imageSrc?(0,a.jsx)(Y.NsImage,{className:o,src:e.imageSrc,alt:e.imageAlt}):(0,a.jsx)(l.Box,{className:i,children:(0,a.jsx)(ht,{width:o.includes(\"mobile\")?\"144px\":\"246px\",height:o.includes(\"mobile\")?\"144px\":\"246px\",backgroundColor:t?.backgroundColor??\"#5F5F5F\"})})},ut=(e,t,o)=>!e||!t?null:(0,a.jsx)(ct,{className:o?\"mobile-badges\":\"tablet-badges\",children:t&&(0,a.jsx)(mt,{className:o?\"mobile-badge\":\"tablet-badge\",children:(0,a.jsx)(\"span\",{className:\"badge-value\",children:t})})}),At=(e,t,o,i)=>{let{shopTitle:r,socialTitleText:d,email:p,showBadges:g,expirationDate:s}=e;return(0,a.jsxs)(l.Box,{className:\"content-mobile\",children:[(0,a.jsx)(l.Typography,{tabIndex:0,className:\"body-title-mobile\",children:r}),!t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.Typography,{tabIndex:0,className:\"social-title-text-mobile\",children:d}),(0,a.jsx)(l.Typography,{tabIndex:0,className:\"email-text-mobile\",children:p}),(0,a.jsx)(l.Box,{className:\"social-icons-mobile\",children:o}),ut(g,s??\"\",i)]})]})},Wt=(e,t,o,i)=>{let{shopTitle:r,shopDescription:d,socialTitleText:p,email:g,showBadges:s,expirationDate:x}=e;return(0,a.jsxs)(l.Box,{className:\"content\",children:[(0,a.jsx)(l.Typography,{tabIndex:0,className:\"body-title\",children:r}),!t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(l.Tooltip,{title:d,arrow:!0,children:(0,a.jsx)(l.Typography,{tabIndex:0,className:\"body-text\",children:d})}),(0,a.jsxs)(l.Box,{className:\"social-media\",children:[(0,a.jsx)(l.Typography,{tabIndex:0,className:\"social-title-text\",children:p}),(0,a.jsxs)(l.Box,{className:\"social-icons\",children:[o,(0,a.jsx)(l.Typography,{className:\"email-text\",children:(0,a.jsx)(\"a\",{href:`mailto:${g}`,onKeyDown:c=>{(c.key===\"Enter\"||c.key===\" \")&&(c.preventDefault(),globalThis.location.href=`mailto:${g}`)},children:g})})]})]}),ut(s,x??\"\",i)]})]})},$t=e=>new Promise((t,o)=>{let i=new Image;i.crossOrigin=\"anonymous\",i.src=e,i.onload=()=>{let r=document.createElement(\"canvas\"),d=r.getContext(\"2d\");if(!d)return o(new Error(\"Canvas not supported\"));r.width=i.width,r.height=i.height,d.drawImage(i,0,0);let g=[d.getImageData(0,0,1,1).data,d.getImageData(i.width-1,0,1,1).data,d.getImageData(0,i.height-1,1,1).data,d.getImageData(i.width-1,i.height-1,1,1).data].every(s=>Array.prototype.slice.call(s)[3]<10);t(g)},i.onerror=()=>o(new Error(\"Failed to load image\"))});function de({className:e,shopTitle:t,shopDescription:o,socialTitleText:i,imageDetails:r,email:d,bannerProps:p,socialIcons:g,expirationDate:s,showBadges:x=!1}){let c=(0,l.useMediaQuery)(\"(max-width: 560px)\"),[h,M]=(0,L.useState)(!1),[S,u]=(0,L.useState)(!1),[T,N]=(0,L.useState)(!1),V=()=>{u(!S)};(0,L.useEffect)(()=>{(async()=>{if(r?.imageSrc){let b=await $t(r.imageSrc);N(b)}else N(!1)})()},[r?.imageSrc]),(0,L.useEffect)(()=>{let C,b=window.scrollY,B=!1,v=\"\",U=()=>document.querySelector(\".nu-header-container\"),pe=()=>{let n=U();if(!n)return{top:35,isCompact:!1};let A=n.classList.contains(\"compact\")||n.classList.contains(\"compact-view\"),K=n.classList.contains(\"full-view\");return A?{top:85,isCompact:!0}:K?{top:110,isCompact:!1}:{top:35,isCompact:!1}},ce=()=>{let n=U();return n?n.classList.contains(\"compact\")||n.classList.contains(\"compact-view\")?\"compact\":n.classList.contains(\"full-view\")?\"full-view\":\"default\":\"none\"},Q=n=>{B!==n&&(B=n,n&&u(!1),clearTimeout(C),C=setTimeout(()=>{M(n)},n?100:50))},yt=()=>{let n=window.scrollY,A=Math.abs(n-b),K=n<100?1:3;if(A<K){b=n;return}let ie=n>b,G=n<b,ge=ce(),{top:Ct,isCompact:xe}=pe();if(v!==ge){v=ge,xe&&!B?Q(!0):!xe&&B&&n<80&&Q(!1),b=n;return}let vt=c?120:150,kt=c?50:80,St=vt+Ct,Tt=kt;ie&&n>St&&!B?Q(!0):G&&n<Tt&&B&&Q(!1),b=n},wt=()=>{let n=window.scrollY,{top:A}=pe();v=ce();let ie=(c?120:150)+A,G=n>ie;B=G,M(G),b=n},oe=!1,me=()=>{oe||(requestAnimationFrame(()=>{yt(),oe=!1}),oe=!0)};return wt(),window.addEventListener(\"scroll\",me,{passive:!0}),()=>{window.removeEventListener(\"scroll\",me),clearTimeout(C)}},[c]);let m=(0,L.useMemo)(()=>g?.map((C,b)=>(0,a.jsx)(Dt,{children:(0,a.jsx)(Y.NsLink,{href:C.url,target:\"_blank\",children:(0,a.jsx)(Y.NsImage,{src:`https://www.google.com/s2/favicons?domain=${C?.url}&sz=24`,alt:`${C.type} icon`,width:\"24\",height:\"24\"},C?.type+b)})},C?.type+b)),[g]),P=`${e} ${h?\"scrolled\":\"\"}`,D={shopTitle:t,shopDescription:o,socialTitleText:i,email:d,showBadges:x,expirationDate:s},q=()=>window.innerWidth<=380?50:window.innerWidth<=415?56:window.innerWidth<=460?62:80,Z=c&&o&&o.length>q();return c?(0,a.jsxs)(pt,{className:P,\"data-testid\":\"my-site-shop-header\",bannerProps:p,isCircularImage:T,children:[(0,a.jsxs)(l.Box,{className:\"image-content-mobile\",children:[bt(r,p??{},\"bg-image-mobile\"),At(D,h,m,c)]}),!h&&(0,a.jsxs)(l.Box,{className:\"expandable-description-mobile\",children:[(0,a.jsx)(l.Typography,{className:`description-content-mobile ${S||!Z?\"expanded\":\"collapsed\"}`,children:o}),Z&&(0,a.jsx)(gt,{onClick:V,children:(0,a.jsx)(ft,{width:16,height:16,className:`arrow-icon-mobile ${S?\"expanded\":\"\"}`})})]})]}):(0,a.jsxs)(dt,{className:P,\"data-testid\":\"my-site-shop-header\",bannerProps:p,isCircularImage:T,children:[bt(r,p??{},\"bg-image\"),Wt(D,h,m,c)]})}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export * from './common';\n","import React, { ReactElement, useState } from 'react';\nimport { NsImage } from '@nuskin/foundation-ui-components';\nimport { ProductImageType } from '../types/image';\nimport {\n PriceComponent,\n ProductCardContainer,\n ImageContainer,\n DefaultImage,\n ProductTitle,\n ProductBadgeContainer,\n AddToCartButton,\n CartIcon,\n} from './styles/NsProductCard.Styled';\nimport { useMediaQuery } from '@mui/material';\nimport { NsCardButton } from './types';\n\ntype NsProductCardProps = {\n readonly productTitle: string;\n readonly imageDetails?: ProductImageType;\n readonly className?: string;\n readonly button?: NsCardButton & { disabled?: boolean };\n readonly onCardClick?: () => void;\n readonly productStatusBadge?: React.ReactNode;\n readonly directSellerBadge?: React.ReactNode;\n readonly mySitePriceComponent?: React.ReactNode;\n readonly testId?: string;\n};\n\nconst NsProductCard = ({\n productTitle,\n imageDetails,\n className,\n button,\n onCardClick,\n productStatusBadge,\n directSellerBadge,\n mySitePriceComponent,\n testId,\n}: NsProductCardProps): ReactElement => {\n const [isButtonHovered, setIsButtonHovered] = useState(false);\n const isMobile = useMediaQuery('(max-width: 560px)');\n\n const handleImageError = (e: React.SyntheticEvent<HTMLImageElement, Event>) => {\n const target = e.target as HTMLImageElement;\n const noImageFallback = imageDetails?.fallbackImage;\n if (noImageFallback && target.src !== noImageFallback) {\n target.src = noImageFallback;\n }\n };\n\n return (\n <ProductCardContainer\n className={className}\n onClick={onCardClick}\n tabIndex={0}\n data-testid=\"product-card\"\n isMobile={isMobile}\n >\n <ImageContainer bgColor={imageDetails?.bgColor} onError={handleImageError}>\n {imageDetails?.imageSrc ? (\n <NsImage\n data-testid={testId ?? 'test-product-image'}\n className={imageDetails.className ?? ''}\n src={imageDetails.imageSrc}\n alt={imageDetails.imageAlt}\n aria-label={imageDetails.areaLabel ?? imageDetails.imageAlt}\n width={'100%'}\n />\n ) : (\n <DefaultImage alt=\"\" />\n )}\n </ImageContainer>\n <ProductTitle title={productTitle} data-testid=\"product-title\">\n {productTitle}\n </ProductTitle>\n {directSellerBadge && <ProductBadgeContainer>{directSellerBadge}</ProductBadgeContainer>}\n <ProductBadgeContainer>{productStatusBadge}</ProductBadgeContainer>\n <PriceComponent>{mySitePriceComponent}</PriceComponent>\n {button?.showButton && (\n <AddToCartButton\n tabIndex={0}\n aria-roledescription=\":\"\n aria-label={button.buttonText || 'ADD TO CART'}\n data-testid=\"add-to-cart-button\"\n disabled={button?.disabled ?? false}\n isMobile={isMobile}\n isHovered={isButtonHovered}\n onClick={(e) => {\n e.stopPropagation();\n if (!button?.disabled) {\n button.onClick?.();\n }\n }}\n onMouseEnter={() => {\n if (!isMobile && !button?.disabled) {\n setIsButtonHovered(true);\n }\n }}\n onMouseLeave={() => {\n if (!isMobile) {\n setIsButtonHovered(false);\n }\n }}\n >\n <CartIcon className=\"cart-icon\" disabled={button?.disabled}>\n <svg width=\"24\" height=\"22\" viewBox=\"0 0 24 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.86358C0 1.26109 0.488416 0.772675 1.09091 0.772675H3.48173C4.51054 0.772675 5.39955 1.49136 5.61511 2.49733L5.71309 2.95456H22.9091C23.245 2.95456 23.5622 3.10933 23.7689 3.37411C23.9757 3.63889 24.0489 3.98415 23.9674 4.31005L22.4053 10.5583C21.9197 12.5009 20.1743 13.8636 18.172 13.8636H8.05068L8.28444 14.9546H20.7273C21.3298 14.9546 21.8182 15.443 21.8182 16.0455C21.8182 16.648 21.3298 17.1364 20.7273 17.1364H19.6364H8.18182H7.40252C6.88811 17.1364 6.4436 16.777 6.33582 16.274L3.76449 4.27405L3.48173 2.95449H1.09091C0.488416 2.95449 0 2.46608 0 1.86358ZM8.18182 17.1364C6.97683 17.1364 6 18.1132 6 19.3182C6 20.5232 6.97683 21.5 8.18182 21.5C9.3868 21.5 10.3636 20.5232 10.3636 19.3182C10.3636 18.1132 9.3868 17.1364 8.18182 17.1364ZM19.6364 17.1364C18.4314 17.1364 17.4545 18.1132 17.4545 19.3182C17.4545 20.5232 18.4314 21.5 19.6364 21.5C20.8413 21.5 21.8182 20.5232 21.8182 19.3182C21.8182 18.1132 20.8413 17.1364 19.6364 17.1364ZM7.58317 11.6818H18.172C19.1732 11.6818 20.0459 11.0005 20.2887 10.0292L21.5119 5.13638H6.18062L7.58317 11.6818Z\"\n fill={button?.disabled ? '#999' : '#ffffff'}\n />\n </svg>\n </CartIcon>\n {button.buttonText || 'ADD TO CART'}\n </AddToCartButton>\n )}\n </ProductCardContainer>\n );\n};\n\nexport default NsProductCard;\n","import { styled } from '@nuskin/foundation-theme';\n\nexport const PriceComponent = styled('div')`\n width: 200px;\n text-align: left;\n margin-bottom: 5px;\n`;\n\nexport const ProductCardContainer = styled('button')<{ isMobile: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 240px;\n height: ${(props) => (props.isMobile ? '410px' : '513px')};\n overflow: hidden;\n cursor: pointer;\n border: 1px solid #ededed;\n background: var(--color-primary-n-10-primary-white, #fff);\n`;\n\nexport const ImageContainer = styled('div')<{\n bgColor?: string;\n}>`\n width: '240px';\n height: '240px';\n background: ${(props) => props.bgColor ?? '#f5f5f5'};\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 0;\n display: flex;\n align-items: normal;\n justify-content: center;\n position: relative;\n @media (max-width: 560px) {\n width: 200px;\n height: 200px;\n align-items: unset;\n }\n`;\n\nexport const DefaultImage = styled('img')`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n display: block;\n`;\n\nexport const ProductTitle = styled('div')`\n width: 200px;\n margin-top: 16px;\n max-height: 66px;\n text-align: left;\n font-size: 16px;\n font-family: 'Inter', sans-serif;\n font-weight: 400;\n line-height: 22px;\n overflow: hidden;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n @media (max-width: 560px) {\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n margin-top: 5px;\n max-height: 54px;\n line-height: 18px;\n }\n`;\n\nexport const ProductBadgeContainer = styled('div')`\n width: 200px;\n text-align: left;\n margin-bottom: 12px;\n @media (max-width: 560px) {\n margin-bottom: 8px;\n }\n`;\n\nexport const AddToCartButton = styled('button')<{\n disabled?: boolean;\n isMobile: boolean;\n isHovered: boolean;\n}>`\n width: 200px;\n height: 40px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n font-family: 'Inter', sans-serif;\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n letter-spacing: 0.14px;\n text-transform: none;\n justify-content: flex-start;\n padding-left: 31px;\n overflow: hidden;\n white-space: normal;\n word-break: break-word;\n overflow-wrap: break-word;\n text-overflow: ellipsis;\n margin-top: 8px;\n margin-bottom: 10px;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n\n color: ${(props) => (props.disabled ? '#999' : '#fff')};\n background-color: ${(props) => {\n if (props.disabled) return '#e0e0e0';\n if (!props.isMobile && props.isHovered) return '#888';\n return '#000';\n }};\n border: ${(props) => (props.disabled ? '1px solid #ccc' : 'none')};\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n opacity: ${(props) => (props.disabled ? 0.6 : 1)};\n transition: ${(props) => (props.isMobile ? 'none' : 'all 0.3s ease')};\n\n @media (max-width: 560px) {\n margin: 5px 0;\n }\n`;\n\nexport const CartIcon = styled('span')<{ disabled?: boolean }>`\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n display: inline-block;\n background: none;\n transition: all 0.3s ease;\n opacity: ${(props) => (props.disabled ? 0.5 : 1)};\n`;\n","import React, { ReactElement, useCallback, ReactNode, useRef } from 'react';\nimport Slider from 'react-slick';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport 'slick-carousel/slick/slick.css';\nimport { NsCardButton, NsCarouselControl } from '@nuskin/foundation-ui-components';\nimport { ProductImageType } from '../types/image';\nimport NsProductCard from '../card/NsProductCard';\nimport {\n SlickContainer,\n ControlsContainer,\n ScrollableContainer,\n CardList,\n ViewAllWrapper,\n ProductCountWrapper,\n ArrowsWrapper,\n CustomTypography,\n ViewAllLink,\n EmptyProductCategories,\n} from './NsProductCarousel.styled';\n\nexport type ProductCardEntry = {\n readonly productTitle: string;\n readonly imageDetails?: ProductImageType;\n readonly button?: NsCardButton;\n readonly onCardClick?: () => void;\n readonly productStatusBadge?: React.ReactNode;\n readonly directSeller?: React.ReactNode;\n readonly mySitePriceComponent?: React.ReactNode;\n};\n\ninterface SlickSettings {\n dots?: boolean;\n infinite?: boolean;\n speed?: number;\n slidesToShow?: number;\n slidesToScroll?: number;\n swipe?: boolean;\n draggable?: boolean;\n arrows?: boolean;\n responsive?: Array<{\n breakpoint: number;\n settings: {\n slidesToShow?: number;\n slidesToScroll?: number;\n arrows?: boolean;\n };\n }>;\n}\n\ninterface ProductCardCarouselProps<T = ProductCardEntry> {\n readonly entries: T[];\n readonly settings?: SlickSettings;\n readonly showControlButtons?: boolean;\n readonly renderEntry?: (entry: T, index: number) => ReactNode;\n readonly allEntryLabel?: string;\n readonly allEntryLink?: string;\n readonly categoryName?: string;\n readonly emptyProductMessage?: string;\n readonly productsCountLabel?: string;\n readonly isInitialDataLoading?: boolean;\n}\n\nexport default function ProductCardCarousel({\n entries,\n renderEntry,\n settings = {},\n showControlButtons = true,\n allEntryLabel = 'View All',\n allEntryLink = '',\n categoryName,\n emptyProductMessage = 'No Products Available For The Selected Category',\n productsCountLabel = 'Products',\n isInitialDataLoading,\n}: ProductCardCarouselProps): ReactElement {\n const sliderRef = useRef<Slider>(null);\n const isMobile = useMediaQuery('(max-width: 560px)');\n\n const prev = useCallback(() => {\n sliderRef.current?.slickPrev();\n }, []);\n\n const next = useCallback(() => {\n sliderRef.current?.slickNext();\n }, []);\n\n const renderProductEntry =\n renderEntry ??\n ((entry: ProductCardEntry, index: number) => (\n <NsProductCard\n key={`${entry.productTitle}-${index}`}\n productTitle={entry.productTitle}\n imageDetails={entry.imageDetails}\n button={entry.button}\n onCardClick={entry.onCardClick}\n productStatusBadge={entry.productStatusBadge}\n directSellerBadge={entry.directSeller}\n mySitePriceComponent={entry.mySitePriceComponent}\n />\n ));\n\n const sliderSettings = {\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: Math.min(entries?.length ?? 0, 4),\n slidesToScroll: 4,\n swipe: true,\n draggable: true,\n arrows: true,\n responsive: [\n {\n breakpoint: 1320,\n settings: {\n slidesToShow: Math.min(entries?.length ?? 0, 3),\n slidesToScroll: 3,\n },\n },\n {\n breakpoint: 900,\n settings: {\n slidesToShow: Math.min(entries?.length ?? 0, 2),\n slidesToScroll: 2,\n },\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: false,\n },\n },\n ],\n ...settings,\n };\n\n const shouldShowNavigation = (entries?.length ?? 0) > sliderSettings.slidesToShow;\n\n const renderCarouselContent = () => {\n if (entries?.length === 0 && !isInitialDataLoading) {\n return <EmptyProductCategories>{emptyProductMessage}</EmptyProductCategories>;\n }\n\n if (isMobile) {\n return (\n <ScrollableContainer>\n <CardList>{entries.map((entry, index) => entry && renderProductEntry(entry, index))}</CardList>\n </ScrollableContainer>\n );\n }\n\n return (\n <Slider {...sliderSettings} ref={sliderRef}>\n {entries.map((entry, index) => entry && renderProductEntry(entry, index))}\n </Slider>\n );\n };\n\n return (\n <SlickContainer>\n {showControlButtons && (\n <ControlsContainer>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', flex: 1, minWidth: 0 }}>\n <ProductCountWrapper>\n <CustomTypography variant=\"body-m\">\n {entries?.length ?? 0} {productsCountLabel}\n </CustomTypography>\n </ProductCountWrapper>\n {!isMobile && categoryName && (\n <div\n style={{\n fontFamily: 'Lora',\n fontWeight: 400,\n fontSize: 22,\n marginLeft: 16,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n maxWidth: '300px',\n }}\n >\n {categoryName}\n </div>\n )}\n </div>\n <ViewAllWrapper style={{ marginLeft: 'auto', marginRight: isMobile ? 0 : 24 }}>\n <ViewAllLink href={allEntryLink}>{allEntryLabel}</ViewAllLink>\n </ViewAllWrapper>\n </div>\n {!isMobile && (\n <ArrowsWrapper $isDisabled={!shouldShowNavigation}>\n <NsCarouselControl prev={prev} next={next} viewAllLabel={''} viewAllUrl={''} />\n </ArrowsWrapper>\n )}\n </ControlsContainer>\n )}\n {renderCarouselContent()}\n </SlickContainer>\n );\n}\n","import React from 'react';\nimport { styled } from '@nuskin/foundation-theme';\nimport Box, { BoxProps } from '@mui/material/Box';\nimport { NsTypography } from '@nuskin/foundation-ui-components';\n\nexport const SlickContainer: React.ComponentType<BoxProps> = styled(Box)`\n padding: 30px 0 60px;\n width: 100%;\n margin: auto;\n margin-top: 50px;\n position: relative;\n\n .slick-list {\n padding-left: 24px;\n padding-right: 24px;\n }\n .slick-slide {\n display: flex;\n justify-content: center;\n padding: 0 12px;\n box-sizing: border-box;\n }\n .slick-prev,\n .slick-next {\n display: none !important;\n }\n\n @media (max-width: 1200px) {\n max-width: 1024px;\n .slick-list {\n padding-left: 12px;\n padding-right: 12px;\n }\n .slick-slide {\n padding: 0 6px;\n }\n }\n @media (max-width: 700px) {\n max-width: 100vw;\n padding: 10px 0 50px;\n .slick-list {\n padding-left: 4px;\n padding-right: 4px;\n }\n .slick-slide {\n padding: 0 2px;\n }\n }\n @media (max-width: 560px) {\n padding: 10px 0 10px;\n margin-top: 25px;\n }\n`;\nexport const ScrollableContainer = styled('div')`\n overflow-x: auto;\n display: flex;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n gap: 16px;\n padding: 0 8px 16px;\n width: 100%;\n box-sizing: border-box;\n\n &::-webkit-scrollbar {\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #007bff;\n border-radius: 10px;\n }\n`;\n\nexport const CardList = styled('div')`\n display: flex;\n scroll-snap-align: start;\n justify-content: center;\n gap: 15px;\n`;\n\nexport const ControlsContainer: React.ComponentType<BoxProps> = styled(Box)`\n position: absolute;\n bottom: calc(100% + 1px);\n right: 1px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n`;\n\nexport const ViewAllWrapper: React.ComponentType<BoxProps> = styled(Box)`\n display: flex;\n align-items: center;\n margin-left: 576px;\n\n @media (max-width: 560px) {\n margin-left: 0;\n order: 2;\n }\n`;\n\nexport const ProductCountWrapper: React.ComponentType<BoxProps> = styled(Box)`\n display: none;\n\n @media (max-width: 560px) {\n color: #666666;\n font-family: Inter;\n font-size: 14px !important;\n font-style: normal;\n font-weight: 600;\n line-height: 18px;\n display: flex;\n align-items: center;\n order: 1;\n }\n`;\n\nexport const ArrowsWrapper: React.ComponentType<BoxProps & { $isDisabled?: boolean }> = styled(Box)<{\n $isDisabled?: boolean;\n}>`\n display: flex;\n align-items: center;\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.3 : 1)};\n pointer-events: ${({ $isDisabled }) => ($isDisabled ? 'none' : 'auto')};\n transition: opacity 0.3s ease;\n\n .carousal-prev-button,\n .carousal-next-button {\n transition: all 0.3s ease;\n border: 2px solid #000000;\n border-radius: 3px;\n padding: 9px;\n cursor: pointer;\n\n svg {\n transition: all 0.3s ease;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n\n &:hover {\n background-color: #f5f5f5;\n border: 2px solid #ddd;\n\n svg {\n opacity: 0.5;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n }\n }\n\n @media (max-width: 560px) {\n display: none;\n }\n`;\nexport const Scrollablewrapper = styled('div')`\n @media (max-width: 560px) {\n overflow-y: hidden;\n scrollbar-width: thin;\n scrollbar-color: #007bff #eee;\n &::-webkit-scrollbar {\n width: 8px;\n }\n &::-webkit-scrollbar-track {\n background: #eee;\n }\n &::-webkit-scrollbar-thumb {\n background-color: red;\n border-radius: 8px;\n border: 2px solid #eee;\n }\n }\n`;\nexport const CustomTypography = styled(NsTypography)`\n color: #666666;\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 22px;\n @media (max-width: 560px) {\n margin: 0 3px;\n }\n`;\n\nexport const ViewAllLink = styled('a')`\n color: #000000;\n font-family: Inter, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 22px;\n text-decoration: none;\n border-bottom: 1px solid #000000;\n padding-bottom: 4px;\n transition: all 0.3s ease;\n\n @media (max-width: 560px) {\n font-size: 14px !important;\n line-height: 18px;\n }\n\n &:hover {\n color: #666666;\n border-bottom: 1px solid #666666;\n }\n`;\n\nexport const EmptyProductCategories = styled('div')`\n padding-top: 20px;\n font-size: 20px;\n text-align: center;\n`;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { useMediaQuery } from '@mui/material';\n\nimport { NsCategoryNavigation } from '../Nav-Category-Navigation';\nimport { NsSpinner } from '@nuskin/foundation-ui-components';\nimport ProductCardCarousel, { ProductCardEntry } from './NsProductCarousel';\nimport {\n ProductTabCarouselContainer,\n TabsContainer,\n ContentContainer,\n NoTabsContainer,\n SpinnerContainer,\n} from './ProductTabCarousel.styled';\n\ninterface Category {\n label: string;\n categoryId: string;\n}\n\ninterface SlickSettings {\n dots?: boolean;\n infinite?: boolean;\n speed?: number;\n slidesToShow?: number;\n slidesToScroll?: number;\n swipe?: boolean;\n draggable?: boolean;\n arrows?: boolean;\n responsive?: Array<{\n breakpoint: number;\n settings: {\n slidesToShow?: number;\n slidesToScroll?: number;\n arrows?: boolean;\n };\n }>;\n}\n\ninterface ProductTabCarouselProps {\n readonly allEntryLabel?: string;\n readonly allEntryLink?: string;\n readonly renderEntry?: (entry: ProductCardEntry) => React.ReactNode;\n readonly settings?: SlickSettings;\n readonly showControlButtons?: boolean;\n readonly fetchCategories: () => Promise<Category[]>;\n readonly fetchProducts: (categoryId: string) => Promise<ProductCardEntry[]>;\n readonly emptyProductTabs?: string;\n readonly emptyProductMessage?: string;\n readonly showCustomCategory?: boolean;\n readonly productsCountLabel?: string;\n}\n\nconst ProductTabCarousel: React.FC<ProductTabCarouselProps> = ({\n allEntryLabel,\n allEntryLink,\n renderEntry,\n settings,\n showControlButtons = true,\n fetchCategories,\n fetchProducts,\n showCustomCategory = false,\n emptyProductTabs = 'No tabs available',\n emptyProductMessage,\n productsCountLabel,\n}) => {\n const isMobile = useMediaQuery('(max-width:768px)');\n const [isLoadingInitialData, setIsLoadingInitialData] = useState(true);\n const [categories, setCategories] = useState<Category[]>([]);\n const [selectedTab, setSelectedTab] = useState(0);\n const [products, setProducts] = useState<ProductCardEntry[]>([]);\n const [loading, setLoading] = useState(false);\n const [shouldShowSpinner, setShouldShowSpinner] = useState(true);\n\n const checkForExistingSpinners = useCallback(() => {\n const existingSpinners = document.querySelectorAll('[data-testid*=\"spinner\"], .ns-spinner, [class*=\"spinner\"]');\n setShouldShowSpinner(existingSpinners.length === 0);\n }, []);\n\n useEffect(() => {\n if (loading) {\n checkForExistingSpinners();\n }\n }, [loading, checkForExistingSpinners]);\n\n useEffect(() => {\n fetchCategories().then(setCategories);\n }, [fetchCategories]);\n\n useEffect(() => {\n if (categories.length > 0) {\n setLoading(true);\n fetchProducts(categories[selectedTab].categoryId)\n .then(setProducts)\n .finally(() => {\n setLoading(false);\n setIsLoadingInitialData(false);\n });\n }\n }, [categories, selectedTab, fetchProducts]);\n\n const itemArray = categories.map((cat) => ({\n label: cat.label,\n content: '',\n categoryId: cat.categoryId,\n }));\n\n return (\n <ProductTabCarouselContainer isMobile={isMobile}>\n {showCustomCategory &&\n (itemArray.length > 0 ? (\n <TabsContainer isMobile={isMobile}>\n <NsCategoryNavigation\n itemArray={itemArray}\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n />\n </TabsContainer>\n ) : (\n <NoTabsContainer>{emptyProductTabs}</NoTabsContainer>\n ))}\n <ContentContainer isMobile={isMobile}>\n {loading ? (\n <SpinnerContainer>{shouldShowSpinner && <NsSpinner />}</SpinnerContainer>\n ) : (\n <ProductCardCarousel\n isInitialDataLoading={isLoadingInitialData}\n entries={products}\n allEntryLabel={allEntryLabel}\n allEntryLink={allEntryLink}\n renderEntry={\n renderEntry\n ? (entry) => renderEntry({ ...entry, productStatusBadge: entry.productStatusBadge })\n : undefined\n }\n settings={settings}\n showControlButtons={showControlButtons}\n categoryName={categories[selectedTab]?.label}\n emptyProductMessage={emptyProductMessage}\n productsCountLabel={productsCountLabel}\n />\n )}\n </ContentContainer>\n </ProductTabCarouselContainer>\n );\n};\n\nexport default ProductTabCarousel;\n","import * as React from 'react';\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport Box from '@mui/material/Box';\nimport PropTypes from 'prop-types';\nimport { NsCategoryNavigationContainer } from './NsCategoryNavigation.styled';\nimport { useMediaQuery } from '@mui/material';\n\nfunction TabPanel(\n props: Readonly<{\n children?: React.ReactNode;\n value: number;\n index: number;\n [key: string]: unknown;\n }>,\n) {\n const { children, value, index, ...other } = props;\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`vertical-tabpanel-${index}`}\n aria-labelledby={`vertical-tab-${index}`}\n {...other}\n >\n {value === index && <Box className=\"tabPanel\">{children}</Box>}\n </div>\n );\n}\nTabPanel.propTypes = {\n children: PropTypes.node,\n index: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n};\n\ninterface NsCategoryNavigationProps {\n itemArray: { label: string; content: React.ReactNode; categoryId: string }[];\n value?: number;\n onChange?: (event: React.SyntheticEvent, newValue: number) => void;\n}\n\nexport const NsCategoryNavigation: React.FC<Readonly<NsCategoryNavigationProps>> = ({\n itemArray,\n value: controlledValue,\n onChange,\n}) => {\n const [internalValue, setInternalValue] = React.useState(0);\n const isMobile = useMediaQuery('(max-width:768px)');\n const value = controlledValue ?? internalValue;\n const handleChange = (event: React.SyntheticEvent, newValue: number) => {\n if (onChange) {\n onChange(event, newValue);\n } else {\n setInternalValue(newValue);\n }\n };\n\n return (\n <NsCategoryNavigationContainer>\n <Box className=\"tabContainer\">\n <Tabs\n orientation={isMobile ? 'horizontal' : 'vertical'}\n variant=\"scrollable\"\n value={value}\n onChange={handleChange}\n aria-label=\"Vertical tabs example\"\n className=\"tabsStyle\"\n >\n {itemArray.map((item) => (\n <Tab key={item.categoryId} label={item.label} className=\"tabStyle\" />\n ))}\n </Tabs>\n {itemArray.map((item) => (\n <TabPanel\n key={item.categoryId}\n value={value}\n index={itemArray.findIndex((i) => i.categoryId === item.categoryId)}\n >\n {item.content}\n </TabPanel>\n ))}\n </Box>\n </NsCategoryNavigationContainer>\n );\n};\n","import { styled } from '@nuskin/foundation-theme';\nexport const NsCategoryNavigationContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n background-color: #fff;\n .tabsStyle {\n display: flex;\n padding-top: 8.533px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12.8px;\n border-right: 1px;\n border-color: divider;\n width: 200px;\n & .Mui-selected {\n font-weight: 700;\n font-size: 14px;\n font-family: 'inter', sans-serif;\n font-style: normal;\n font-height: 20px;\n border-radius: 4px;\n }\n & .MuiTabs-indicator {\n left: 0;\n background-color: #5b81a5;\n color: #5b81a5;\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .tabContainer {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n min-width: 100%;\n background-color: #fff;\n @media (max-width: 768px) {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n }\n\n .tabStyle {\n align-items: flex-start;\n display: flex;\n text-align: left;\n font-size: 14px;\n font-family: 'inter' sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n min-height: 20px;\n padding: 1px;\n padding-left: 10px;\n margin-bottom: 10px;\n cursor: pointer;\n text-transform: none;\n }\n @media (max-width: 768px) {\n flex-direction: row;\n\n .tabsStyle {\n width: 100%;\n border-right: none;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding-top: 0px;\n }\n\n .tabStyle {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n border: 1px solid #ccc;\n border-radius: 70px;\n padding: 8px 16px;\n text-align: center;\n margin: 4px;\n background-color: #fff;\n cursor: pointer;\n color: black;\n font-family: Inter;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n .tabStyle.Mui-selected {\n background-color: #5b81a5;\n color: #ffffff !important;\n font-weight: 700;\n border-radius: 70px;\n }\n }\n .tabPanel {\n padding: 8px;\n text-align: left;\n }\n`;\n","import { styled } from '@nuskin/foundation-theme';\n\nexport const ProductTabCarouselContainer = styled('div')<{ isMobile?: boolean }>`\n display: flex;\n flex-direction: ${({ isMobile }) => (isMobile ? 'column' : 'row')};\n align-items: ${({ isMobile }) => (isMobile ? 'stretch' : 'flex-start')};\n width: 100%;\n max-width: 1920px;\n min-height: ${({ isMobile }) => (isMobile ? 'auto' : '500px')};\n margin: 0 auto;\n box-sizing: border-box;\n overflow: visible;\n background: #fff;\n padding: ${({ isMobile }) => (isMobile ? '10px 16px 0px 16px' : '50px 60px 0px 60px')};\n\n @media (max-width: 768px) {\n padding: 10px 16px 0px 16px;\n min-height: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n padding: 30px 40px 0px 40px;\n gap: 20px;\n }\n\n transform: translateZ(0);\n will-change: auto;\n`;\n\nexport const TabsContainer = styled('div')<{ isMobile?: boolean }>`\n min-width: ${({ isMobile }) => (isMobile ? '100%' : 'auto')};\n height: ${({ isMobile }) => (isMobile ? 'auto' : '100%')};\n flex-shrink: 0;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n\n overflow-x: auto;\n overflow-y: visible;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-width: 200px;\n margin-right: 20px;\n }\n`;\n\nexport const ContentContainer = styled('div')<{ isMobile?: boolean }>`\n flex: 1;\n min-width: 0;\n height: ${({ isMobile }) => (isMobile ? 'auto' : '100%')};\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n min-height: 300px;\n\n -webkit-overflow-scrolling: touch;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-height: 400px;\n }\n\n contain: layout style paint;\n transform: translateZ(0);\n`;\n\nexport const LoadingContainer = styled('div')`\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px;\n padding: 20px;\n\n @media (max-width: 768px) {\n min-height: 150px;\n padding: 16px;\n }\n`;\n\nexport const NoTabsContainer = styled('div')`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 40px 20px;\n color: #666;\n font-size: 16px;\n\n @media (max-width: 768px) {\n padding: 20px 16px;\n font-size: 14px;\n }\n`;\nexport const SpinnerContainer = styled('div')`\n padding: 10px;\n display: flex;\n justify-content: center;\n`;\n","import React, { ReactElement, useState, useEffect, useMemo } from 'react';\nimport { Typography, Box, useMediaQuery, styled, Tooltip } from '@mui/material';\nimport { NsLink, NsImage } from '@nuskin/foundation-ui-components';\nimport {\n MysiteHeroContainer,\n MysiteHeroContainerMobile,\n BadgeContainer,\n Badge,\n ToggleButtonMobile,\n} from '@/common/headers/MysiteHero.styled';\nimport { PlaceholderImage } from '../icon/icons/PlaceholderImage';\nimport { ArrowDownIcon } from '../icon/icons/ArrowDownIcon';\n\nconst StyledSpan = styled(Box)({\n background: 'none',\n border: '2px solid transparent',\n cursor: 'pointer',\n padding: '2px',\n display: 'flex',\n alignItems: 'center',\n borderRadius: '8px',\n transition: 'all 0.3s ease',\n '&:hover': {\n transform: 'scale(1.1)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',\n },\n '&:focus, &:focus-within': {\n outline: 'none',\n borderColor: '#007bff',\n boxShadow: '0 0 0 2px rgba(0, 123, 255, 0.25)',\n },\n '&:hover svg': {\n fill: '#ffffff !important',\n },\n});\n\ntype MysiteHeroProps = {\n readonly imageDetails?: {\n imageSrc: string;\n imageAlt: string;\n bgColor: string;\n };\n readonly shopTitle: string;\n readonly shopDescription: string;\n readonly socialTitleText: string;\n readonly email: string;\n readonly className?: string;\n readonly bannerProps?: {\n backgroundColor?: string;\n headlineFont?: string;\n paragraphFont?: string;\n };\n readonly socialIcons?: {\n type: string;\n url: string;\n }[];\n readonly expirationDate?: string;\n readonly showBadges?: boolean;\n};\n\ntype ImageDetails = {\n imageSrc: string;\n imageAlt: string;\n bgColor: string;\n};\n\ntype BannerProps = {\n backgroundColor?: string;\n headlineFont?: string;\n paragraphFont?: string;\n};\n\ntype ContentProps = {\n shopTitle: string;\n shopDescription: string;\n socialTitleText: string;\n email: string;\n showBadges: boolean;\n expirationDate?: string;\n};\n\nconst renderImageContent = (imageDetails: ImageDetails | undefined, bannerProps: BannerProps, className: string) => {\n const placeholderClass = className.includes('mobile') ? 'placeholder-image-mobile' : 'placeholder-image';\n return imageDetails?.imageSrc ? (\n <NsImage className={className} src={imageDetails.imageSrc} alt={imageDetails.imageAlt} />\n ) : (\n <Box className={placeholderClass}>\n <PlaceholderImage\n width={className.includes('mobile') ? '144px' : '246px'}\n height={className.includes('mobile') ? '144px' : '246px'}\n backgroundColor={bannerProps?.backgroundColor ?? '#5F5F5F'}\n />\n </Box>\n );\n};\n\nconst renderBadges = (showBadges: boolean, expirationDate: string, isMobile: boolean) => {\n if (!showBadges || !expirationDate) return null;\n\n const badgeClass = isMobile ? 'mobile-badge' : 'tablet-badge';\n const containerClass = isMobile ? 'mobile-badges' : 'tablet-badges';\n\n return (\n <BadgeContainer className={containerClass}>\n {expirationDate && (\n <Badge className={badgeClass}>\n <span className=\"badge-value\">{expirationDate}</span>\n </Badge>\n )}\n </BadgeContainer>\n );\n};\n\nconst renderMobileContent = (\n props: ContentProps,\n isScrolled: boolean,\n renderSocialMediaIcons: React.ReactNode,\n isMobile: boolean,\n) => {\n const { shopTitle, socialTitleText, email, showBadges, expirationDate } = props;\n\n return (\n <Box className=\"content-mobile\">\n <Typography tabIndex={0} className=\"body-title-mobile\">\n {shopTitle}\n </Typography>\n {!isScrolled && (\n <>\n <Typography tabIndex={0} className=\"social-title-text-mobile\">\n {socialTitleText}\n </Typography>\n <Typography tabIndex={0} className=\"email-text-mobile\">\n {email}\n </Typography>\n <Box className=\"social-icons-mobile\">{renderSocialMediaIcons}</Box>\n {renderBadges(showBadges, expirationDate ?? '', isMobile)}\n </>\n )}\n </Box>\n );\n};\n\nconst renderDesktopContent = (\n props: ContentProps,\n isScrolled: boolean,\n renderSocialMediaIcons: React.ReactNode,\n isMobile: boolean,\n) => {\n const { shopTitle, shopDescription, socialTitleText, email, showBadges, expirationDate } = props;\n\n return (\n <Box className=\"content\">\n <Typography tabIndex={0} className=\"body-title\">\n {shopTitle}\n </Typography>\n {!isScrolled && (\n <>\n <Tooltip title={shopDescription} arrow>\n <Typography tabIndex={0} className=\"body-text\">\n {shopDescription}\n </Typography>\n </Tooltip>\n <Box className=\"social-media\">\n <Typography tabIndex={0} className=\"social-title-text\">\n {socialTitleText}\n </Typography>\n <Box className=\"social-icons\">\n {renderSocialMediaIcons}\n <Typography className=\"email-text\">\n <a\n href={`mailto:${email}`}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n globalThis.location.href = `mailto:${email}`;\n }\n }}\n >\n {email}\n </a>\n </Typography>\n </Box>\n </Box>\n {renderBadges(showBadges, expirationDate ?? '', isMobile)}\n </>\n )}\n </Box>\n );\n};\n\nconst checkIfImageIsCircular = (url: string): Promise<boolean> => {\n return new Promise((resolve, reject) => {\n const imageContext = new Image();\n imageContext.crossOrigin = 'anonymous';\n imageContext.src = url;\n\n imageContext.onload = () => {\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n if (!context) return reject(new Error('Canvas not supported'));\n\n canvas.width = imageContext.width;\n canvas.height = imageContext.height;\n\n context.drawImage(imageContext, 0, 0);\n\n const corners = [\n context.getImageData(0, 0, 1, 1).data,\n context.getImageData(imageContext.width - 1, 0, 1, 1).data,\n context.getImageData(0, imageContext.height - 1, 1, 1).data,\n context.getImageData(imageContext.width - 1, imageContext.height - 1, 1, 1).data,\n ];\n\n const isCircular = corners.every((corner) => {\n const imageArray = Array.prototype.slice.call(corner);\n const alpha = imageArray[3];\n return alpha < 10;\n });\n resolve(isCircular);\n };\n imageContext.onerror = () => reject(new Error('Failed to load image'));\n });\n};\n\nexport default function MysiteHero({\n className,\n shopTitle,\n shopDescription,\n socialTitleText,\n imageDetails,\n email,\n bannerProps,\n socialIcons,\n expirationDate,\n showBadges = false,\n}: MysiteHeroProps): ReactElement {\n const isMobile = useMediaQuery('(max-width: 560px)');\n const [isScrolled, setIsScrolled] = useState(false);\n const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);\n const [isImageCircular, setIsImageCircular] = useState(false);\n\n const toggleDescription = () => {\n setIsDescriptionExpanded(!isDescriptionExpanded);\n };\n\n useEffect(() => {\n const checkImage = async () => {\n if (imageDetails?.imageSrc) {\n const isCircular = await checkIfImageIsCircular(imageDetails.imageSrc);\n setIsImageCircular(isCircular);\n } else {\n setIsImageCircular(false);\n }\n };\n\n checkImage();\n }, [imageDetails?.imageSrc]);\n\n useEffect(() => {\n let debounceTimeout: ReturnType<typeof setTimeout>;\n let lastScrollY = window.scrollY;\n let currentScrollState = false;\n let lastExternalHeaderState = '';\n\n const getExternalHeaderContainer = (): HTMLElement | null => document.querySelector('.nu-header-container');\n\n const getMysiteHeroPosition = () => {\n const container = getExternalHeaderContainer();\n if (!container) return { top: 35, isCompact: false };\n\n const isCompact = container.classList.contains('compact') || container.classList.contains('compact-view');\n const isFullView = container.classList.contains('full-view');\n\n if (isCompact) return { top: 85, isCompact: true };\n if (isFullView) return { top: 110, isCompact: false };\n\n return { top: 35, isCompact: false };\n };\n\n const getExternalHeaderState = () => {\n const container = getExternalHeaderContainer();\n if (!container) return 'none';\n\n if (container.classList.contains('compact') || container.classList.contains('compact-view')) {\n return 'compact';\n }\n if (container.classList.contains('full-view')) {\n return 'full-view';\n }\n return 'default';\n };\n\n const updateScrollState = (newState: boolean) => {\n if (currentScrollState !== newState) {\n currentScrollState = newState;\n\n if (newState) {\n setIsDescriptionExpanded(false);\n }\n\n clearTimeout(debounceTimeout);\n\n const debounceDelay = newState ? 100 : 50;\n debounceTimeout = setTimeout(() => {\n setIsScrolled(newState);\n }, debounceDelay);\n }\n };\n\n const handleScroll = () => {\n const currentScrollY = window.scrollY;\n const scrollDelta = Math.abs(currentScrollY - lastScrollY);\n\n const minScrollDelta = currentScrollY < 100 ? 1 : 3;\n if (scrollDelta < minScrollDelta) {\n lastScrollY = currentScrollY;\n return;\n }\n\n const scrollingDown = currentScrollY > lastScrollY;\n const scrollingUp = currentScrollY < lastScrollY;\n\n const externalHeaderState = getExternalHeaderState();\n const { top: mysiteHeroTop, isCompact: externalIsCompact } = getMysiteHeroPosition();\n\n const externalHeaderChanged = lastExternalHeaderState !== externalHeaderState;\n\n if (externalHeaderChanged) {\n lastExternalHeaderState = externalHeaderState;\n\n if (externalIsCompact && !currentScrollState) {\n updateScrollState(true);\n } else if (!externalIsCompact && currentScrollState && currentScrollY < 80) {\n updateScrollState(false);\n }\n\n lastScrollY = currentScrollY;\n return;\n }\n\n const baseScrollDownThreshold = isMobile ? 120 : 150;\n const baseScrollUpThreshold = isMobile ? 50 : 80;\n\n const scrollDownThreshold = baseScrollDownThreshold + mysiteHeroTop;\n const scrollUpThreshold = baseScrollUpThreshold;\n\n if (scrollingDown && currentScrollY > scrollDownThreshold && !currentScrollState) {\n updateScrollState(true);\n } else if (scrollingUp && currentScrollY < scrollUpThreshold && currentScrollState) {\n updateScrollState(false);\n }\n\n lastScrollY = currentScrollY;\n };\n\n const initializeState = () => {\n const initialScrollY = window.scrollY;\n const { top: mysiteHeroTop } = getMysiteHeroPosition();\n const externalHeaderState = getExternalHeaderState();\n\n lastExternalHeaderState = externalHeaderState;\n\n const scrollThreshold = (isMobile ? 120 : 150) + mysiteHeroTop;\n const shouldStartCompact = initialScrollY > scrollThreshold;\n\n currentScrollState = shouldStartCompact;\n setIsScrolled(shouldStartCompact);\n lastScrollY = initialScrollY;\n };\n\n let ticking = false;\n const throttledScrollHandler = () => {\n if (!ticking) {\n requestAnimationFrame(() => {\n handleScroll();\n ticking = false;\n });\n ticking = true;\n }\n };\n\n initializeState();\n window.addEventListener('scroll', throttledScrollHandler, { passive: true });\n\n return () => {\n window.removeEventListener('scroll', throttledScrollHandler);\n clearTimeout(debounceTimeout);\n };\n }, [isMobile]);\n\n const renderSocialMediaIcons = useMemo(() => {\n return socialIcons?.map((icon, index) => {\n return (\n <StyledSpan key={icon?.type + index}>\n <NsLink href={icon.url} target=\"_blank\">\n <NsImage\n key={icon?.type + index}\n src={`https://www.google.com/s2/favicons?domain=${icon?.url}&sz=24`}\n alt={`${icon.type} icon`}\n width=\"24\"\n height=\"24\"\n />\n </NsLink>\n </StyledSpan>\n );\n });\n }, [socialIcons]);\n\n const containerClass = `${className} ${isScrolled ? 'scrolled' : ''}`;\n const props = { shopTitle, shopDescription, socialTitleText, email, showBadges, expirationDate };\n\n const getCharacterLimit = () => {\n if (window.innerWidth <= 380) return 50;\n if (window.innerWidth <= 415) return 56;\n if (window.innerWidth <= 460) return 62;\n return 80;\n };\n\n const shouldShowToggle = isMobile && shopDescription && shopDescription.length > getCharacterLimit();\n\n return isMobile ? (\n <MysiteHeroContainerMobile\n className={containerClass}\n data-testid=\"my-site-shop-header\"\n bannerProps={bannerProps}\n isCircularImage={isImageCircular}\n >\n <Box className=\"image-content-mobile\">\n {renderImageContent(imageDetails, bannerProps ?? {}, 'bg-image-mobile')}\n {renderMobileContent(props, isScrolled, renderSocialMediaIcons, isMobile)}\n </Box>\n {!isScrolled && (\n <Box className=\"expandable-description-mobile\">\n <Typography\n className={`description-content-mobile ${isDescriptionExpanded || !shouldShowToggle ? 'expanded' : 'collapsed'}`}\n >\n {shopDescription}\n </Typography>\n {shouldShowToggle && (\n <ToggleButtonMobile onClick={toggleDescription}>\n <ArrowDownIcon\n width={16}\n height={16}\n className={`arrow-icon-mobile ${isDescriptionExpanded ? 'expanded' : ''}`}\n />\n </ToggleButtonMobile>\n )}\n </Box>\n )}\n </MysiteHeroContainerMobile>\n ) : (\n <MysiteHeroContainer\n className={containerClass}\n data-testid=\"my-site-shop-header\"\n bannerProps={bannerProps}\n isCircularImage={isImageCircular}\n >\n {renderImageContent(imageDetails, bannerProps ?? {}, 'bg-image')}\n {renderDesktopContent(props, isScrolled, renderSocialMediaIcons, isMobile)}\n </MysiteHeroContainer>\n );\n}\n","import React from 'react';\nimport { styled } from '@nuskin/foundation-theme';\nimport { Box, BoxProps } from '@mui/material';\n\ninterface StyledBoxProps extends BoxProps {\n bannerProps?: {\n backgroundColor?: string;\n headlineFont?: string;\n paragraphFont?: string;\n };\n isCircularImage?: boolean;\n}\n\nexport const MysiteHeroContainer = styled((props: StyledBoxProps) => <Box {...props} />)(\n ({ bannerProps, isCircularImage }) => ({\n backgroundClip: 'border-box',\n display: 'flex',\n background: bannerProps?.backgroundColor ?? '#383838',\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n height: 'auto',\n flexDirection: 'row',\n alignItems: 'center',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'transform, opacity',\n transform: 'translateZ(0)',\n backfaceVisibility: 'hidden',\n '&.scrolled': {\n top: 0,\n left: 0,\n right: 0,\n boxShadow: '0 2px 8px rgba(0,0,0,0.2)',\n '.content': {\n paddingTop: '0',\n justifyContent: 'center',\n },\n '.body-title': {\n fontSize: '26px',\n lineHeight: '34px',\n marginBottom: '0',\n fontStyle: 'normal',\n fontWeight: '400',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n },\n\n '.bg-image': {\n width: '90px !important',\n height: '90px !important',\n padding: isCircularImage ? '2px' : '0px',\n },\n '.placeholder-image': {\n '& > div': {\n width: '90px !important',\n height: '90px !important',\n },\n },\n },\n '.content': {\n width: '70%',\n height: '100%',\n marginLeft: '2%',\n marginRight: 'auto',\n paddingTop: '32px',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n boxSizing: 'border-box',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n },\n '.bg-image': {\n width: '252px',\n height: '252px',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n padding: isCircularImage ? '3px' : '0px',\n },\n '.placeholder-image': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n '& > div': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n },\n },\n '.body-title': {\n fontSize: '32px',\n lineHeight: '38px',\n marginBottom: '15px',\n fontWeight: '400',\n color: '#FFFFFF',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n paddingLeft: '5px',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n },\n '.body-text': {\n fontSize: '16px',\n marginBottom: '15px',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: '22px',\n color: '#FFFFFF',\n fontFamily: bannerProps?.paragraphFont ?? 'inherit',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n WebkitLineClamp: 3,\n textOverflow: 'ellipsis',\n paddingLeft: '5px',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n },\n '.social-media': {\n display: 'flex',\n flexDirection: 'column',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n },\n '.email-text': {\n fontSize: '12px',\n fontStyle: 'normal',\n fontWeight: '600',\n lineHeight: '16px',\n letterSpacing: '0.12px',\n color: '#FFFFFF',\n '& a': {\n color: 'inherit',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n },\n '.social-title-text': {\n fontSize: '12px',\n marginBottom: '16px',\n fontStyle: 'normal',\n fontWeight: '700',\n lineHeight: '16px',\n letterSpacing: '0.48px',\n color: '#FFFFFF',\n textTransform: 'uppercase',\n paddingLeft: '5px',\n },\n '.social-icons': {\n display: 'flex',\n flexDirection: 'row',\n gap: '10px',\n paddingBottom: '15px',\n alignItems: 'center',\n },\n }),\n);\n\nexport const MysiteHeroContainerMobile = styled((props: StyledBoxProps) => <Box {...props} />)(\n ({ bannerProps, isCircularImage }) => ({\n backgroundClip: 'border-box',\n display: 'flex',\n background: bannerProps?.backgroundColor ?? '#383838',\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n flexDirection: 'column',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'transform, opacity',\n transform: 'translateZ(0)',\n backfaceVisibility: 'hidden',\n '&.scrolled': {\n top: 0,\n left: 0,\n right: 0,\n boxShadow: '0 2px 8px rgba(0,0,0,0.2)',\n '.content-mobile': {\n paddingTop: '5px',\n width: '60%',\n },\n '.body-title-mobile': {\n fontSize: '18px',\n lineHeight: '28px',\n marginBottom: '0',\n fontStyle: 'normal',\n fontWeight: '400',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n },\n '.bg-image-mobile': {\n width: '75px !important',\n height: '75px !important',\n padding: isCircularImage ? '2px' : '0px',\n },\n '.placeholder-image-mobile': {\n '& > div': {\n width: '75px !important',\n height: '75px !important',\n },\n },\n },\n '.image-content-mobile': {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n '.content-mobile': {\n width: '55%',\n height: '100%',\n paddingTop: '10px',\n paddingRight: '10px',\n marginLeft: '8px',\n marginRight: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n '@media (max-width: 420px)': {\n paddingTop: '8px',\n width: '100%',\n },\n '@media (max-width: 400px)': {\n paddingTop: '6px',\n width: '100%',\n height: '100%',\n },\n '@media (max-width: 375px)': {\n paddingTop: '4px',\n width: '100%',\n height: '100%',\n },\n },\n '.bg-image-mobile': {\n width: '144px',\n height: '144px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n objectFit: 'cover',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n padding: isCircularImage ? '2px' : '0px',\n '@media (max-width: 420px)': {\n width: '120px',\n height: '120px',\n },\n '@media (max-width: 400px)': {\n width: '112px',\n height: '112px',\n },\n '@media (max-width: 375px)': {\n width: '90px',\n height: '90px',\n },\n },\n '.placeholder-image-mobile': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n '& > div': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n width: '144px !important',\n height: '144px !important',\n '@media (max-width: 420px)': {\n width: '120px !important',\n height: '120px !important',\n },\n '@media (max-width: 400px)': {\n width: '110px !important',\n height: '110px !important',\n },\n '@media (max-width: 375px)': {\n width: '90px !important',\n height: '90px !important',\n },\n },\n },\n '.body-title-mobile': {\n fontSize: '22px',\n lineHeight: '28px',\n marginBottom: '13px',\n fontWeight: '400',\n color: '#FFFFFF',\n fontStyle: 'normal',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n paddingLeft: '5px',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n '@media (max-width: 420px)': {\n fontSize: '16px',\n lineHeight: '24px',\n marginBottom: '8px',\n },\n '@media (max-width: 400px)': {\n fontSize: '16px',\n lineHeight: '22px',\n marginBottom: '6px',\n },\n '@media (max-width: 375px)': {\n fontSize: '14px',\n lineHeight: '20px',\n marginBottom: '4px',\n },\n },\n '.body-text-mobile': {\n fontSize: '14px',\n padding: '20px 25px 20px 25px',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: '20px',\n color: '#252525',\n backgroundColor: '#E0E0E0',\n fontFamily: bannerProps?.paragraphFont ?? 'inherit',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n opacity: 1,\n transform: 'translateY(0)',\n },\n '.expandable-description-mobile': {\n backgroundColor: '#E0E0E0',\n position: 'relative',\n },\n '.description-content-mobile': {\n fontSize: '14px',\n padding: '10px 15px',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: '20px',\n color: '#252525',\n fontFamily: bannerProps?.paragraphFont ?? 'inherit',\n transition: 'max-height 0.3s ease-in-out, opacity 0.3s ease-in-out',\n overflow: 'hidden',\n position: 'relative',\n '&.collapsed': {\n maxHeight: '50px',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '20px',\n background: 'linear-gradient(transparent, rgba(224, 224, 224, 0.8), #E0E0E0)',\n pointerEvents: 'none',\n },\n },\n '&.expanded': {\n maxHeight: 'none',\n whiteSpace: 'normal',\n display: 'block',\n '&::after': {\n display: 'none',\n },\n },\n },\n '.email-text-mobile': {\n fontSize: '12px',\n paddingBottom: '11px',\n fontStyle: 'normal',\n fontWeight: '600',\n lineHeight: '16px',\n letterSpacing: '0.12px',\n color: '#FFFFFF',\n wordBreak: 'break-all',\n overflowWrap: 'break-word',\n paddingLeft: '5px',\n '@media (max-width: 420px)': {\n fontSize: '11px',\n lineHeight: '15px',\n paddingBottom: '8px',\n },\n '@media (max-width: 400px)': {\n fontSize: '10px',\n lineHeight: '14px',\n paddingBottom: '6px',\n },\n '@media (max-width: 375px)': {\n fontSize: '8px',\n lineHeight: '12px',\n paddingBottom: '4px',\n },\n },\n '.social-title-text-mobile': {\n fontSize: '12px',\n marginBottom: '11px',\n fontStyle: 'normal',\n fontWeight: '700',\n lineHeight: '16px',\n letterSpacing: '0.48px',\n color: '#FFFFFF',\n textTransform: 'uppercase',\n paddingLeft: '5px',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n '@media (max-width: 420px)': {\n fontSize: '11px',\n lineHeight: '14px',\n marginBottom: '8px',\n },\n '@media (max-width: 400px)': {\n fontSize: '10px',\n lineHeight: '12px',\n marginBottom: '5px',\n },\n '@media (max-width: 375px)': {\n fontSize: '8px',\n lineHeight: '11px',\n marginBottom: '4px',\n },\n },\n '.social-icons-mobile': {\n display: 'flex',\n flexDirection: 'row',\n gap: '10px',\n paddingBottom: '10px',\n alignItems: 'center',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n '& img': {\n width: '24px',\n height: '24px',\n '@media (max-width: 400px)': {\n width: '20px',\n height: '20px',\n },\n '@media (max-width: 375px)': {\n width: '18px',\n height: '18px',\n },\n },\n '@media (max-width: 420px)': {\n paddingBottom: '8px',\n },\n '@media (max-width: 400px)': {\n paddingBottom: '4px',\n },\n '@media (max-width: 375px)': {\n paddingBottom: '3px',\n },\n },\n }),\n);\n\nexport const BadgeContainer = styled(Box)({\n display: 'flex',\n gap: '12px',\n marginBottom: '16px',\n paddingLeft: '5px',\n\n '&.mobile-badges': {\n flexDirection: 'column',\n gap: '8px',\n marginBottom: '12px',\n },\n\n '&.tablet-badges': {\n flexDirection: 'row',\n gap: '12px',\n marginBottom: '16px',\n },\n});\n\nexport const Badge = styled(Box)({\n backgroundColor: 'rgba(255, 255, 255, 0.2)',\n backdropFilter: 'blur(10px)',\n borderRadius: '20px',\n padding: '8px 16px',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n border: '1px solid rgba(255, 255, 255, 0.3)',\n transition: 'all 0.3s ease',\n\n '&.mobile-badge': {\n padding: '6px 12px',\n borderRadius: '16px',\n fontSize: '12px',\n },\n\n '&.tablet-badge': {\n padding: '8px 16px',\n borderRadius: '20px',\n fontSize: '14px',\n },\n\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.3)',\n transform: 'translateY(-1px)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.1)',\n },\n\n '.badge-text': {\n color: '#FFFFFF',\n fontWeight: '400',\n opacity: 0.9,\n },\n\n '.badge-value': {\n color: '#FFFFFF',\n fontWeight: '600',\n },\n});\nexport const ToggleButtonMobile = styled('button')({\n backgroundColor: '#E0E0E0',\n border: '1px solid #252525',\n borderRadius: '10px',\n cursor: 'pointer',\n width: '40px',\n height: '20px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: '10px auto 5px auto',\n transition: 'all 0.2s ease',\n '& .arrow-icon-mobile': {\n transition: 'transform 0.3s ease',\n '&.expanded': {\n transform: 'rotate(180deg)',\n },\n },\n});\n","import React from 'react';\nimport { Box } from '@mui/material';\n\ntype PlaceholderImageProps = {\n readonly width: string | number;\n readonly height: string | number;\n readonly backgroundColor: string;\n};\n\nexport const PlaceholderImage: React.FC<PlaceholderImageProps> = ({ width, height, backgroundColor }) => {\n return (\n <Box\n sx={{\n width,\n height,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor,\n }}\n data-testid=\"placeholder-image\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"128\" height=\"129\" viewBox=\"0 0 128 129\" fill=\"none\">\n <g id=\"ns_logomark\">\n <path\n id=\"Vector\"\n d=\"M127.495 52.1946C125.663 47.9538 122.999 44.1171 119.661 40.9073C112.565 34.2835 102.562 31.7037 93.1175 34.0622C83.6733 36.4206 76.0882 43.3926 72.991 52.5619C71.4142 56.8414 70.6063 61.3627 70.6039 65.9196C70.6039 85.8227 70.6039 105.737 70.6039 125.662C70.6039 129.001 70.6039 129.001 66.9051 128.834C66.9051 128.2 66.9051 127.499 66.9051 126.831C66.9051 104.323 66.9051 81.8263 66.9051 59.3409C66.3415 45.3064 74.9302 32.5039 88.1888 27.6164C89.79 27.0612 91.4307 26.6259 93.0981 26.314C94.7114 25.98 96.4605 25.8465 98.0738 25.6461C96.0231 16.3291 78.9419 5.60953 65.0889 4.97504C50.3084 4.62252 36.6074 12.6365 29.7509 25.6461C31.331 25.8465 32.8779 25.9466 34.3569 26.2138C48.0999 28.544 58.7086 39.4998 60.5168 53.2298C60.8904 55.7285 61.0812 58.2508 61.0877 60.7769C61.0877 82.7507 61.0877 104.724 61.0877 126.697C61.0877 128.434 60.6842 129.169 58.8016 128.968C56.9183 128.768 57.1204 128.2 57.1204 126.965C57.1204 119.985 57.1204 113.006 57.1204 105.993C57.1204 92.1674 57.1204 78.3423 57.1204 64.5171C57.2385 56.3928 54.2457 48.5271 48.7477 42.5103C42.2429 35.5282 32.6539 32.2371 23.1959 33.7401C13.7379 35.243 5.66194 41.3411 1.67448 49.9906C1.23781 50.8254 0.867444 51.6937 0.262573 52.9293C5.79294 22.3996 32.4752 0.139867 63.7085 0.000656323C94.9411 -0.138555 121.824 21.8824 127.629 52.3616\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_2\"\n d=\"M86.0995 124.927C86.0995 124.293 86.0995 123.858 86.0995 123.425C86.0995 111.669 86.0995 100.049 86.0995 88.1269C85.8836 82.4231 88.0775 76.89 92.1523 72.8653C97.3131 67.9567 104.984 66.7091 111.452 69.7263C117.892 72.1185 122.166 78.225 122.178 85.0541C122.372 92.1747 119.781 99.0921 114.949 104.356C107.882 113.237 98.6134 120.141 88.05 124.392C87.4217 124.616 86.782 124.805 86.1335 124.96\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_3\"\n d=\"M41.8183 125.395C37.6149 123.224 33.6477 121.487 29.9828 119.25C21.5405 114.299 14.4778 107.331 9.43828 98.9796C6.53442 94.3985 5.34408 88.9493 6.07591 83.5852C7.056 75.2882 13.8859 68.8841 22.2829 68.3905C31.1231 67.2473 39.3527 73.0751 41.1455 81.7484C41.76 84.263 42.0762 86.8411 42.0868 89.4287C42.0868 100.516 42.0868 111.636 42.0868 122.823C42.0868 123.457 42.0867 124.059 41.8854 125.294\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_4\"\n d=\"M51.3337 127.431C47.9713 127.431 47.6681 127.198 47.6681 124.326V76.6386C48.1096 67.937 42.9747 59.906 34.8574 56.602C25.8992 52.8557 15.5485 54.8615 8.66523 61.6779C4.28638 66.6086 1.89197 72.9696 1.94049 79.5438C1.95423 80.2444 1.78037 80.9357 1.43588 81.5476C1.06552 79.9446 0.62885 78.2081 0.426687 76.7387C-0.724024 70.4463 0.471163 63.9529 3.78906 58.472C6.09291 54.6111 9.65016 51.6434 13.8762 50.0567C22.8587 46.555 32.9393 47.1785 41.4148 51.7598C47.6592 54.8694 51.5262 61.2882 51.3337 68.2232C51.5019 87.6249 51.3337 107.027 51.3337 126.396C51.3337 126.797 51.3337 127.164 51.3337 127.532\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_5\"\n d=\"M76.287 127.499V125.094C76.287 107.196 76.4883 89.2963 76.287 71.3966C76.0848 56.9034 84.2554 50.6588 95.7553 48.3545C101.535 47.2005 107.524 47.6393 113.071 49.6235C122.914 53.3319 128.994 63.1725 127.866 73.5672C127.631 76.2831 127.17 78.975 126.487 81.6151C125.916 78.2758 125.68 74.9364 124.772 71.597C122.808 64.3002 117.377 58.4174 110.228 55.8421C103.078 53.2668 95.1132 54.3239 88.8955 58.6734C83.0441 62.6207 79.7011 69.3237 80.086 76.3389C80.086 92.2349 80.086 108.131 80.086 124.026C80.086 127.366 80.086 127.366 76.2198 127.366\"\n fill=\"#252525\"\n />\n </g>\n </svg>\n </Box>\n );\n};\n","import React from 'react';\n\ntype ArrowDownIconProps = {\n readonly width?: string | number;\n readonly height?: string | number;\n readonly className?: string;\n};\n\nexport const ArrowDownIcon: React.FC<ArrowDownIconProps> = ({ width = 16, height = 16, className = '' }) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={className}\n data-testid=\"arrow-down-icon\"\n >\n <path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\" />\n </svg>\n );\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["/gitlab-runner-data/builds/nextgen-development/mysite/npm/react-mysite-elements/dist/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../src/index.ts","../src/common/card/NsProductCard.tsx","../src/common/card/styles/NsProductCard.Styled.tsx","../src/common/carousel/NsProductCarousel.tsx","../src/common/carousel/NsProductCarousel.styled.ts","../src/common/carousel/ProductTabCarousel.tsx","../src/common/Nav-Category-Navigation/NsCategoryNavigation.tsx","../src/common/Nav-Category-Navigation/NsCategoryNavigation.styled.tsx","../src/common/carousel/ProductTabCarousel.styled.tsx","../src/common/headers/MysiteHero.tsx","../src/common/headers/MysiteHero.styled.tsx","../src/common/icon/icons/PlaceholderImage.tsx","../src/common/icon/icons/ArrowDownIcon.tsx"],"names":["Bt","Object","create","G","defineProperty","Nt","getOwnPropertyDescriptor","Ft","getOwnPropertyNames","Rt","getPrototypeOf","Et","prototype","hasOwnProperty","re","e","t","exports","Lt","o","get","enumerable","be","i","r","call","M","__esModule","value","Mt","require_ReactPropTypesSecret","__commonJSMin","module","ReactPropTypesSecret","require_factoryWithThrowingShims","emptyFunction","emptyFunctionWithReset","_e","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","err","Error","name","isRequired","getShim","ReactPropTypes","array","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","require_prop_types","Ze","ReactIs","throwOnDirectAccess","index_exports","__export","MysiteHero","NsCategoryNavigation","NsProductCard","NsProductCard_default","ProductCarousel","ProductCardCarousel","ProductTabCarousel","ProductTabCarousel_default","__toCommonJS","import_react","require","import_foundation_ui_components","import_foundation_theme","PriceComponent","F","styled","ProductCardContainer","isMobile","ImageContainer","bgColor","DefaultImage","ProductTitle","ProductBadgeContainer","AddToCartButton","disabled","isHovered","CartIcon","import_material","import_jsx_runtime","productTitle","imageDetails","className","button","onCardClick","productStatusBadge","directSellerBadge","mySitePriceComponent","testId","Te","useState","isButtonHovered","setIsButtonHovered","Ie","useMediaQuery","handleImageError","target","noImageFallback","fallbackImage","src","y","jsxs","onClick","tabIndex","children","jsx","onError","imageSrc","Pe","NsImage","alt","imageAlt","areaLabel","width","title","showButton","buttonText","stopPropagation","onMouseEnter","onMouseLeave","height","viewBox","fill","xmlns","fillRule","clipRule","d","import_react_slick","import_useMediaQuery","import_Box","SlickContainer","v","W","Box","ScrollableContainer","CardList","ControlsContainer","ViewAllWrapper","ProductCountWrapper","ArrowsWrapper","$isDisabled","Scrollablewrapper","CustomTypography","Be","NsTypography","ViewAllLink","EmptyProductCategories","entries","renderEntry","settings","showControlButtons","allEntryLabel","allEntryLink","categoryName","emptyProductMessage","productsCountLabel","isInitialDataLoading","sliderRef","_","useRef","$e","prev","useCallback","current","slickPrev","next","slickNext","renderProductEntry","entry","index","b","directSeller","sliderSettings","dots","infinite","speed","slidesToShow","Math","min","length","slidesToScroll","swipe","draggable","arrows","responsive","breakpoint","shouldShowNavigation","renderCarouselContent","map","We","Slider","ref","style","display","alignItems","justifyContent","flex","minWidth","variant","fontFamily","fontWeight","fontSize","marginLeft","whiteSpace","overflow","textOverflow","marginBottom","marginRight","href","Oe","NsCarouselControl","viewAllLabel","viewAllUrl","React","import_Tabs","import_Tab","import_prop_types","Qe","NsCategoryNavigationContainer","Ke","div","TabPanel","other","R","role","hidden","id","le","propTypes","X","itemArray","controlledValue","onChange","Je","internalValue","setInternalValue","tt","Xe","Tabs","orientation","event","newValue","item","et","Tab","label","categoryId","findIndex","content","ProductTabCarouselContainer","H","TabsContainer","ContentContainer","LoadingContainer","NoTabsContainer","SpinnerContainer","fetchCategories","fetchProducts","showCustomCategory","emptyProductTabs","categories","st","C","isLoadingInitialData","setIsLoadingInitialData","setCategories","selectedTab","setSelectedTab","products","setProducts","loading","setLoading","shouldShowSpinner","setShouldShowSpinner","checkForExistingSpinners","existingSpinners","document","querySelectorAll","useEffect","then","finally","cat","P","dt","NsSpinner","MysiteHeroContainer","$","se","Y","bannerProps","isCircularImage","hasWhiteBackground","backgroundClip","background","backgroundColor","position","flexDirection","transition","willChange","transform","backfaceVisibility","top","left","right","boxShadow","paddingTop","lineHeight","fontStyle","headlineFont","padding","boxSizing","color","paddingLeft","paragraphFont","WebkitBoxOrient","WebkitLineClamp","opacity","letterSpacing","textDecoration","textTransform","gap","paddingBottom","MysiteHeroContainerMobile","paddingRight","objectFit","maxHeight","bottom","pointerEvents","wordBreak","overflowWrap","BadgeContainer","Badge","backdropFilter","borderRadius","border","ToggleButtonMobile","cursor","margin","PlaceholderImage","I","ft","sx","ArrowDownIcon","de","StyledSpan","outline","borderColor","renderImageContent","placeholderClass","includes","a","q","renderBadges","showBadges","expirationDate","renderMobileContent","isScrolled","renderSocialMediaIcons","shopTitle","socialTitleText","email","Typography","Fragment","renderDesktopContent","shopDescription","Tooltip","arrow","onKeyDown","key","preventDefault","globalThis","checkIfImageIsCircular","url","Promise","resolve","reject","imageContext","Image","crossOrigin","onload","canvas","createElement","context","getContext","drawImage","isCircular","getImageData","data","every","corner","Array","slice","onerror","isWhiteOrNearWhite","hex","replace","toLowerCase","test","fullHex","split","char","join","Number","parseInt","substring","g","threshold","socialIcons","T","setIsScrolled","isDescriptionExpanded","setIsDescriptionExpanded","setHasWhiteBackground","isImageCircular","setIsImageCircular","toggleDescription","debounceTimeout","lastScrollY","window","scrollY","currentScrollState","lastExternalHeaderState","getExternalHeaderContainer","querySelector","getMysiteHeroPosition","container","isCompact","classList","contains","isFullView","getExternalHeaderState","updateScrollState","newState","clearTimeout","setTimeout","handleScroll","currentScrollY","scrollDelta","abs","minScrollDelta","scrollingDown","scrollingUp","externalHeaderState","mysiteHeroTop","externalIsCompact","baseScrollDownThreshold","baseScrollUpThreshold","scrollDownThreshold","scrollUpThreshold","initializeState","initialScrollY","scrollThreshold","shouldStartCompact","ticking","throttledScrollHandler","requestAnimationFrame","addEventListener","passive","removeEventListener","useMemo","icon","NsLink","type","containerClass","getCharacterLimit","innerWidth","shouldShowToggle"],"mappings":"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","sourcesContent":["\"use strict\";var Bt=Object.create;var G=Object.defineProperty;var Nt=Object.getOwnPropertyDescriptor;var Ft=Object.getOwnPropertyNames;var Rt=Object.getPrototypeOf,Et=Object.prototype.hasOwnProperty;var re=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Lt=(e,t)=>{for(var o in t)G(e,o,{get:t[o],enumerable:!0})},be=(e,t,o,i)=>{if(t&&typeof t==\"object\"||typeof t==\"function\")for(let r of Ft(t))!Et.call(e,r)&&r!==o&&G(e,r,{get:()=>t[r],enumerable:!(i=Nt(t,r))||i.enumerable});return e};var M=(e,t,o)=>(o=e!=null?Bt(Rt(e)):{},be(t||!e||!e.__esModule?G(o,\"default\",{value:e,enumerable:!0}):o,e)),Mt=e=>be(G({},\"__esModule\",{value:!0}),e);var _e=re((xo,Ve)=>{\"use strict\";var zt=\"SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED\";Ve.exports=zt});var Ze=re((ho,qe)=>{\"use strict\";var Dt=_e();function je(){}function Ye(){}Ye.resetWarningCache=je;qe.exports=function(){function e(i,r,s,l,m,p){if(p!==Dt){var h=new Error(\"Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types\");throw h.name=\"Invariant Violation\",h}}e.isRequired=e;function t(){return e}var o={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:Ye,resetWarningCache:je};return o.PropTypes=o,o}});var Qe=re((uo,Ue)=>{\"use strict\";Ue.exports=Ze()();var fo,bo});var jt={};Lt(jt,{MysiteHero:()=>pe,NsCategoryNavigation:()=>ee,NsProductCard:()=>J,ProductCarousel:()=>j,ProductTabCarousel:()=>pt});module.exports=Mt(jt);var Te=require(\"react\"),Pe=require(\"@nuskin/foundation-ui-components\");var F=require(\"@nuskin/foundation-theme\"),ue=(0,F.styled)(\"div\")`\n width: 200px;\n text-align: left;\n margin-bottom: 5px;\n`,ye=(0,F.styled)(\"button\")`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 240px;\n height: ${e=>e.isMobile?\"410px\":\"513px\"};\n overflow: hidden;\n cursor: pointer;\n border: 1px solid #ededed;\n background: var(--color-primary-n-10-primary-white, #fff);\n`,we=(0,F.styled)(\"div\")`\n width: '240px';\n height: '240px';\n background: ${e=>e.bgColor??\"#f5f5f5\"};\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 0;\n display: flex;\n align-items: normal;\n justify-content: center;\n position: relative;\n @media (max-width: 560px) {\n width: 200px;\n height: 200px;\n align-items: unset;\n }\n`,Ce=(0,F.styled)(\"img\")`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n display: block;\n`,ve=(0,F.styled)(\"div\")`\n width: 200px;\n margin-top: 16px;\n max-height: 66px;\n text-align: left;\n font-size: 16px;\n font-family: 'Inter', sans-serif;\n font-weight: 400;\n line-height: 22px;\n overflow: hidden;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n @media (max-width: 560px) {\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n margin-top: 5px;\n max-height: 54px;\n line-height: 18px;\n }\n`,ne=(0,F.styled)(\"div\")`\n width: 200px;\n text-align: left;\n margin-bottom: 12px;\n @media (max-width: 560px) {\n margin-bottom: 8px;\n }\n`,ke=(0,F.styled)(\"button\")`\n width: 200px;\n height: 40px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n font-family: 'Inter', sans-serif;\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n letter-spacing: 0.14px;\n text-transform: none;\n justify-content: flex-start;\n padding-left: 31px;\n overflow: hidden;\n white-space: normal;\n word-break: break-word;\n overflow-wrap: break-word;\n text-overflow: ellipsis;\n margin-top: 8px;\n margin-bottom: 10px;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n\n color: ${e=>e.disabled?\"#999\":\"#fff\"};\n background-color: ${e=>e.disabled?\"#e0e0e0\":!e.isMobile&&e.isHovered?\"#888\":\"#000\"};\n border: ${e=>e.disabled?\"1px solid #ccc\":\"none\"};\n cursor: ${e=>e.disabled?\"not-allowed\":\"pointer\"};\n opacity: ${e=>e.disabled?.6:1};\n transition: ${e=>e.isMobile?\"none\":\"all 0.3s ease\"};\n\n @media (max-width: 560px) {\n margin: 5px 0;\n }\n`,Se=(0,F.styled)(\"span\")`\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n display: inline-block;\n background: none;\n transition: all 0.3s ease;\n opacity: ${e=>e.disabled?.5:1};\n`;var Ie=require(\"@mui/material\"),y=require(\"react/jsx-runtime\"),Ht=({productTitle:e,imageDetails:t,className:o,button:i,onCardClick:r,productStatusBadge:s,directSellerBadge:l,mySitePriceComponent:m,testId:p})=>{let[h,c]=(0,Te.useState)(!1),f=(0,Ie.useMediaQuery)(\"(max-width: 560px)\"),E=k=>{let u=k.target,S=t?.fallbackImage;S&&u.src!==S&&(u.src=S)};return(0,y.jsxs)(ye,{className:o,onClick:r,tabIndex:0,\"data-testid\":\"product-card\",isMobile:f,children:[(0,y.jsx)(we,{bgColor:t?.bgColor,onError:E,children:t?.imageSrc?(0,y.jsx)(Pe.NsImage,{\"data-testid\":p??\"test-product-image\",className:t.className??\"\",src:t.imageSrc,alt:t.imageAlt,\"aria-label\":t.areaLabel??t.imageAlt,width:\"100%\"}):(0,y.jsx)(Ce,{alt:\"\"})}),(0,y.jsx)(ve,{title:e,\"data-testid\":\"product-title\",children:e}),l&&(0,y.jsx)(ne,{children:l}),(0,y.jsx)(ne,{children:s}),(0,y.jsx)(ue,{children:m}),i?.showButton&&(0,y.jsxs)(ke,{tabIndex:0,\"aria-roledescription\":\":\",\"aria-label\":i.buttonText||\"ADD TO CART\",\"data-testid\":\"add-to-cart-button\",disabled:i?.disabled??!1,isMobile:f,isHovered:h,onClick:k=>{k.stopPropagation(),i?.disabled||i.onClick?.()},onMouseEnter:()=>{!f&&!i?.disabled&&c(!0)},onMouseLeave:()=>{f||c(!1)},children:[(0,y.jsx)(Se,{className:\"cart-icon\",disabled:i?.disabled,children:(0,y.jsx)(\"svg\",{width:\"24\",height:\"22\",viewBox:\"0 0 24 22\",fill:\"none\",xmlns:\"http://www.w3.org/2000/svg\",children:(0,y.jsx)(\"path\",{fillRule:\"evenodd\",clipRule:\"evenodd\",d:\"M0 1.86358C0 1.26109 0.488416 0.772675 1.09091 0.772675H3.48173C4.51054 0.772675 5.39955 1.49136 5.61511 2.49733L5.71309 2.95456H22.9091C23.245 2.95456 23.5622 3.10933 23.7689 3.37411C23.9757 3.63889 24.0489 3.98415 23.9674 4.31005L22.4053 10.5583C21.9197 12.5009 20.1743 13.8636 18.172 13.8636H8.05068L8.28444 14.9546H20.7273C21.3298 14.9546 21.8182 15.443 21.8182 16.0455C21.8182 16.648 21.3298 17.1364 20.7273 17.1364H19.6364H8.18182H7.40252C6.88811 17.1364 6.4436 16.777 6.33582 16.274L3.76449 4.27405L3.48173 2.95449H1.09091C0.488416 2.95449 0 2.46608 0 1.86358ZM8.18182 17.1364C6.97683 17.1364 6 18.1132 6 19.3182C6 20.5232 6.97683 21.5 8.18182 21.5C9.3868 21.5 10.3636 20.5232 10.3636 19.3182C10.3636 18.1132 9.3868 17.1364 8.18182 17.1364ZM19.6364 17.1364C18.4314 17.1364 17.4545 18.1132 17.4545 19.3182C17.4545 20.5232 18.4314 21.5 19.6364 21.5C20.8413 21.5 21.8182 20.5232 21.8182 19.3182C21.8182 18.1132 20.8413 17.1364 19.6364 17.1364ZM7.58317 11.6818H18.172C19.1732 11.6818 20.0459 11.0005 20.2887 10.0292L21.5119 5.13638H6.18062L7.58317 11.6818Z\",fill:i?.disabled?\"#999\":\"#ffffff\"})})}),i.buttonText||\"ADD TO CART\"]})]})},J=Ht;var _=require(\"react\"),We=M(require(\"react-slick\")),$e=M(require(\"@mui/material/useMediaQuery\"));var Oe=require(\"@nuskin/foundation-ui-components\");var v=require(\"@nuskin/foundation-theme\"),W=M(require(\"@mui/material/Box\")),Be=require(\"@nuskin/foundation-ui-components\"),Ne=(0,v.styled)(W.default)`\n padding: 30px 0 60px;\n width: 100%;\n margin: auto;\n margin-top: 50px;\n position: relative;\n\n .slick-list {\n padding-left: 24px;\n padding-right: 24px;\n }\n .slick-slide {\n display: flex;\n justify-content: center;\n padding: 0 12px;\n box-sizing: border-box;\n }\n .slick-prev,\n .slick-next {\n display: none !important;\n }\n\n @media (max-width: 1200px) {\n max-width: 1024px;\n .slick-list {\n padding-left: 12px;\n padding-right: 12px;\n }\n .slick-slide {\n padding: 0 6px;\n }\n }\n @media (max-width: 700px) {\n max-width: 100vw;\n padding: 10px 0 50px;\n .slick-list {\n padding-left: 4px;\n padding-right: 4px;\n }\n .slick-slide {\n padding: 0 2px;\n }\n }\n @media (max-width: 560px) {\n padding: 10px 0 10px;\n margin-top: 25px;\n }\n`,Fe=(0,v.styled)(\"div\")`\n overflow-x: auto;\n display: flex;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n gap: 16px;\n padding: 0 8px 16px;\n width: 100%;\n box-sizing: border-box;\n\n &::-webkit-scrollbar {\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #007bff;\n border-radius: 10px;\n }\n`,Re=(0,v.styled)(\"div\")`\n display: flex;\n scroll-snap-align: start;\n justify-content: center;\n gap: 15px;\n`,Ee=(0,v.styled)(W.default)`\n position: absolute;\n bottom: calc(100% + 1px);\n right: 1px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n`,Le=(0,v.styled)(W.default)`\n display: flex;\n align-items: center;\n margin-left: 576px;\n\n @media (max-width: 560px) {\n margin-left: 0;\n order: 2;\n }\n`,Me=(0,v.styled)(W.default)`\n display: none;\n\n @media (max-width: 560px) {\n color: #666666;\n font-family: Inter;\n font-size: 14px !important;\n font-style: normal;\n font-weight: 600;\n line-height: 18px;\n display: flex;\n align-items: center;\n order: 1;\n }\n`,He=(0,v.styled)(W.default)`\n display: flex;\n align-items: center;\n opacity: ${({$isDisabled:e})=>e?.3:1};\n pointer-events: ${({$isDisabled:e})=>e?\"none\":\"auto\"};\n transition: opacity 0.3s ease;\n\n .carousal-prev-button,\n .carousal-next-button {\n transition: all 0.3s ease;\n border: 2px solid #000000;\n border-radius: 3px;\n padding: 9px;\n cursor: pointer;\n\n svg {\n transition: all 0.3s ease;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n\n &:hover {\n background-color: #f5f5f5;\n border: 2px solid #ddd;\n\n svg {\n opacity: 0.5;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n }\n }\n\n @media (max-width: 560px) {\n display: none;\n }\n`,io=(0,v.styled)(\"div\")`\n @media (max-width: 560px) {\n overflow-y: hidden;\n scrollbar-width: thin;\n scrollbar-color: #007bff #eee;\n &::-webkit-scrollbar {\n width: 8px;\n }\n &::-webkit-scrollbar-track {\n background: #eee;\n }\n &::-webkit-scrollbar-thumb {\n background-color: red;\n border-radius: 8px;\n border: 2px solid #eee;\n }\n }\n`,ze=(0,v.styled)(Be.NsTypography)`\n color: #666666;\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 22px;\n @media (max-width: 560px) {\n margin: 0 3px;\n }\n`,De=(0,v.styled)(\"a\")`\n color: #000000;\n font-family: Inter, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 22px;\n text-decoration: none;\n border-bottom: 1px solid #000000;\n padding-bottom: 4px;\n transition: all 0.3s ease;\n\n @media (max-width: 560px) {\n font-size: 14px !important;\n line-height: 18px;\n }\n\n &:hover {\n color: #666666;\n border-bottom: 1px solid #666666;\n }\n`,Ae=(0,v.styled)(\"div\")`\n padding-top: 20px;\n font-size: 20px;\n text-align: center;\n`;var b=require(\"react/jsx-runtime\");function j({entries:e,renderEntry:t,settings:o={},showControlButtons:i=!0,allEntryLabel:r=\"View All\",allEntryLink:s=\"\",categoryName:l,emptyProductMessage:m=\"No Products Available For The Selected Category\",productsCountLabel:p=\"Products\",isInitialDataLoading:h}){let c=(0,_.useRef)(null),f=(0,$e.default)(\"(max-width: 560px)\"),E=(0,_.useCallback)(()=>{c.current?.slickPrev()},[]),k=(0,_.useCallback)(()=>{c.current?.slickNext()},[]),u=t??((x,B)=>(0,b.jsx)(J,{productTitle:x.productTitle,imageDetails:x.imageDetails,button:x.button,onCardClick:x.onCardClick,productStatusBadge:x.productStatusBadge,directSellerBadge:x.directSeller,mySitePriceComponent:x.mySitePriceComponent},`${x.productTitle}-${B}`)),S={dots:!0,infinite:!0,speed:500,slidesToShow:Math.min(e?.length??0,4),slidesToScroll:4,swipe:!0,draggable:!0,arrows:!0,responsive:[{breakpoint:1320,settings:{slidesToShow:Math.min(e?.length??0,3),slidesToScroll:3}},{breakpoint:900,settings:{slidesToShow:Math.min(e?.length??0,2),slidesToScroll:2}},{breakpoint:600,settings:{slidesToShow:1,slidesToScroll:1,arrows:!1}}],...o},L=(e?.length??0)>S.slidesToShow,z=()=>e?.length===0&&!h?(0,b.jsx)(Ae,{children:m}):f?(0,b.jsx)(Fe,{children:(0,b.jsx)(Re,{children:e.map((x,B)=>x&&u(x,B))})}):(0,b.jsx)(We.default,{...S,ref:c,children:e.map((x,B)=>x&&u(x,B))});return(0,b.jsxs)(Ne,{children:[i&&(0,b.jsxs)(Ee,{children:[(0,b.jsxs)(\"div\",{style:{display:\"flex\",alignItems:\"center\",justifyContent:\"space-between\",width:\"100%\"},children:[(0,b.jsxs)(\"div\",{style:{display:\"flex\",alignItems:\"center\",flex:1,minWidth:0},children:[(0,b.jsx)(Me,{children:(0,b.jsxs)(ze,{variant:\"body-m\",children:[e?.length??0,\" \",p]})}),!f&&l&&(0,b.jsx)(\"div\",{style:{fontFamily:\"Lora\",fontWeight:400,fontSize:22,marginLeft:16,whiteSpace:\"nowrap\",overflow:\"hidden\",textOverflow:\"ellipsis\",marginBottom:\"13px\"},children:l})]}),(0,b.jsx)(Le,{style:{marginLeft:\"auto\",marginRight:f?0:24},children:(0,b.jsx)(De,{href:s,children:r})})]}),!f&&(0,b.jsx)(He,{$isDisabled:!L,children:(0,b.jsx)(Oe.NsCarouselControl,{prev:E,next:k,viewAllLabel:\"\",viewAllUrl:\"\"})})]}),z()]})}var C=require(\"react\"),st=require(\"@mui/material\");var Je=M(require(\"react\")),Xe=M(require(\"@mui/material/Tabs\")),et=M(require(\"@mui/material/Tab\")),le=M(require(\"@mui/material/Box\")),X=M(Qe());var Ke=require(\"@nuskin/foundation-theme\"),Ge=Ke.styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n background-color: #fff;\n .tabsStyle {\n display: flex;\n padding-top: 8.533px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12.8px;\n border-right: 1px;\n border-color: divider;\n width: 200px;\n & .Mui-selected {\n font-weight: 700;\n font-size: 14px;\n font-family: 'inter', sans-serif;\n font-style: normal;\n font-height: 20px;\n border-radius: 4px;\n }\n & .MuiTabs-indicator {\n left: 0;\n background-color: #5b81a5;\n color: #5b81a5;\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .tabContainer {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n min-width: 100%;\n background-color: #fff;\n @media (max-width: 768px) {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n }\n\n .tabStyle {\n align-items: flex-start;\n display: flex;\n text-align: left;\n font-size: 14px;\n font-family: 'inter' sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n min-height: 20px;\n padding: 1px;\n padding-left: 10px;\n margin-bottom: 10px;\n cursor: pointer;\n text-transform: none;\n }\n @media (max-width: 768px) {\n flex-direction: row;\n\n .tabsStyle {\n width: 100%;\n border-right: none;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding-top: 0px;\n }\n\n .tabStyle {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n border: 1px solid #ccc;\n border-radius: 70px;\n padding: 8px 16px;\n text-align: center;\n margin: 4px;\n background-color: #fff;\n cursor: pointer;\n color: black;\n font-family: Inter;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n .tabStyle.Mui-selected {\n background-color: #5b81a5;\n color: #ffffff !important;\n font-weight: 700;\n border-radius: 70px;\n }\n }\n .tabPanel {\n padding: 8px;\n text-align: left;\n }\n`;var tt=require(\"@mui/material\"),R=require(\"react/jsx-runtime\");function ot(e){let{children:t,value:o,index:i,...r}=e;return(0,R.jsx)(\"div\",{role:\"tabpanel\",hidden:o!==i,id:`vertical-tabpanel-${i}`,\"aria-labelledby\":`vertical-tab-${i}`,...r,children:o===i&&(0,R.jsx)(le.default,{className:\"tabPanel\",children:t})})}ot.propTypes={children:X.default.node,index:X.default.number.isRequired,value:X.default.number.isRequired};var ee=({itemArray:e,value:t,onChange:o})=>{let[i,r]=Je.useState(0),s=(0,tt.useMediaQuery)(\"(max-width:768px)\"),l=t??i;return(0,R.jsx)(Ge,{children:(0,R.jsxs)(le.default,{className:\"tabContainer\",children:[(0,R.jsx)(Xe.default,{orientation:s?\"horizontal\":\"vertical\",variant:\"scrollable\",value:l,onChange:(p,h)=>{o?o(p,h):r(h)},\"aria-label\":\"Vertical tabs example\",className:\"tabsStyle\",children:e.map(p=>(0,R.jsx)(et.default,{label:p.label,className:\"tabStyle\"},p.categoryId))}),e.map(p=>(0,R.jsx)(ot,{value:l,index:e.findIndex(h=>h.categoryId===p.categoryId),children:p.content},p.categoryId))]})})};var dt=require(\"@nuskin/foundation-ui-components\");var H=require(\"@nuskin/foundation-theme\"),it=(0,H.styled)(\"div\")`\n display: flex;\n flex-direction: ${({isMobile:e})=>e?\"column\":\"row\"};\n align-items: ${({isMobile:e})=>e?\"stretch\":\"flex-start\"};\n width: 100%;\n max-width: 1920px;\n min-height: ${({isMobile:e})=>e?\"auto\":\"500px\"};\n margin: 0 auto;\n box-sizing: border-box;\n overflow: visible;\n background: #fff;\n padding: ${({isMobile:e})=>e?\"10px 16px 0px 16px\":\"50px 60px 0px 60px\"};\n\n @media (max-width: 768px) {\n padding: 10px 16px 0px 16px;\n min-height: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n padding: 30px 40px 0px 40px;\n gap: 20px;\n }\n\n transform: translateZ(0);\n will-change: auto;\n`,at=(0,H.styled)(\"div\")`\n min-width: ${({isMobile:e})=>e?\"100%\":\"auto\"};\n height: ${({isMobile:e})=>e?\"auto\":\"100%\"};\n flex-shrink: 0;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n\n overflow-x: auto;\n overflow-y: visible;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-width: 200px;\n margin-right: 20px;\n }\n`,rt=(0,H.styled)(\"div\")`\n flex: 1;\n min-width: 0;\n height: ${({isMobile:e})=>e?\"auto\":\"100%\"};\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n min-height: 300px;\n\n -webkit-overflow-scrolling: touch;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-height: 400px;\n }\n\n contain: layout style paint;\n transform: translateZ(0);\n`,So=(0,H.styled)(\"div\")`\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px;\n padding: 20px;\n\n @media (max-width: 768px) {\n min-height: 150px;\n padding: 16px;\n }\n`,nt=(0,H.styled)(\"div\")`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 40px 20px;\n color: #666;\n font-size: 16px;\n\n @media (max-width: 768px) {\n padding: 20px 16px;\n font-size: 14px;\n }\n`,lt=(0,H.styled)(\"div\")`\n padding: 10px;\n display: flex;\n justify-content: center;\n`;var P=require(\"react/jsx-runtime\"),At=({allEntryLabel:e,allEntryLink:t,renderEntry:o,settings:i,showControlButtons:r=!0,fetchCategories:s,fetchProducts:l,showCustomCategory:m=!1,emptyProductTabs:p=\"No tabs available\",emptyProductMessage:h,productsCountLabel:c})=>{let f=(0,st.useMediaQuery)(\"(max-width:768px)\"),[E,k]=(0,C.useState)(!0),[u,S]=(0,C.useState)([]),[L,z]=(0,C.useState)(0),[x,B]=(0,C.useState)([]),[D,O]=(0,C.useState)(!1),[Z,te]=(0,C.useState)(!0),V=(0,C.useCallback)(()=>{let g=document.querySelectorAll('[data-testid*=\"spinner\"], .ns-spinner, [class*=\"spinner\"]');te(g.length===0)},[]);(0,C.useEffect)(()=>{D&&V()},[D,V]),(0,C.useEffect)(()=>{s().then(S)},[s]),(0,C.useEffect)(()=>{u.length>0&&(O(!0),l(u[L].categoryId).then(B).finally(()=>{O(!1),k(!1)}))},[u,L,l]);let w=u.map(g=>({label:g.label,content:\"\",categoryId:g.categoryId}));return(0,P.jsxs)(it,{isMobile:f,children:[m&&(w.length>0?(0,P.jsx)(at,{isMobile:f,children:(0,P.jsx)(ee,{itemArray:w,value:L,onChange:(g,N)=>z(N)})}):(0,P.jsx)(nt,{children:p})),(0,P.jsx)(rt,{isMobile:f,children:D?(0,P.jsx)(lt,{children:Z&&(0,P.jsx)(dt.NsSpinner,{})}):(0,P.jsx)(j,{isInitialDataLoading:E,entries:x,allEntryLabel:e,allEntryLink:t,renderEntry:o?g=>o({...g,productStatusBadge:g.productStatusBadge}):void 0,settings:i,showControlButtons:r,categoryName:u[L]?.label,emptyProductMessage:h,productsCountLabel:c})})]})},pt=At;var T=require(\"react\"),d=require(\"@mui/material\"),q=require(\"@nuskin/foundation-ui-components\");var $=require(\"@nuskin/foundation-theme\"),Y=require(\"@mui/material\"),se=require(\"react/jsx-runtime\"),ct=(0,$.styled)(e=>(0,se.jsx)(Y.Box,{...e}))(({bannerProps:e,isCircularImage:t,hasWhiteBackground:o})=>({backgroundClip:\"border-box\",display:\"flex\",background:e?.backgroundColor??\"#383838\",position:\"relative\",overflow:\"hidden\",width:\"100%\",height:\"auto\",flexDirection:\"row\",alignItems:\"center\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"transform, opacity\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\",\"&.scrolled\":{top:0,left:0,right:0,boxShadow:\"0 2px 8px rgba(0,0,0,0.2)\",\".content\":{paddingTop:\"0\",justifyContent:\"center\"},\".body-title\":{fontSize:\"26px\",lineHeight:\"34px\",marginBottom:\"0\",fontStyle:\"normal\",fontWeight:\"400\",fontFamily:e?.headlineFont??\"Lora\"},\".bg-image\":{width:\"90px !important\",height:\"90px !important\",padding:t?\"2px\":\"0px\"},\".placeholder-image\":{\"& > div\":{width:\"90px !important\",height:\"90px !important\"}}},\".content\":{width:\"70%\",height:\"100%\",marginLeft:\"2%\",marginRight:\"auto\",paddingTop:\"32px\",display:\"flex\",flexDirection:\"column\",position:\"relative\",boxSizing:\"border-box\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\"},\".bg-image\":{width:\"252px\",height:\"252px\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",padding:t?\"3px\":\"0px\"},\".placeholder-image\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",\"& > div\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\"}},\".body-title\":{fontSize:\"32px\",lineHeight:\"38px\",marginBottom:\"15px\",fontWeight:\"400\",color:o?\"#000000\":\"#FFFFFF\",overflow:\"hidden\",whiteSpace:\"nowrap\",textOverflow:\"ellipsis\",fontFamily:e?.headlineFont??\"Lora\",paddingLeft:\"5px\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\"},\".body-text\":{fontSize:\"16px\",marginBottom:\"15px\",fontStyle:\"normal\",fontWeight:\"400\",lineHeight:\"22px\",color:o?\"#000000\":\"#FFFFFF\",fontFamily:e?.paragraphFont??\"inherit\",display:\"-webkit-box\",WebkitBoxOrient:\"vertical\",overflow:\"hidden\",WebkitLineClamp:3,textOverflow:\"ellipsis\",paddingLeft:\"5px\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\"},\".social-media\":{display:\"flex\",flexDirection:\"column\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\"},\".email-text\":{fontSize:\"12px\",fontStyle:\"normal\",fontWeight:\"600\",lineHeight:\"16px\",letterSpacing:\"0.12px\",color:o?\"#000000\":\"#FFFFFF\",\"& a\":{color:\"inherit\",textDecoration:\"none\",\"&:hover\":{textDecoration:\"underline\"}}},\".social-title-text\":{fontSize:\"12px\",marginBottom:\"16px\",fontStyle:\"normal\",fontWeight:\"700\",lineHeight:\"16px\",letterSpacing:\"0.48px\",color:o?\"#000000\":\"#FFFFFF\",textTransform:\"uppercase\",paddingLeft:\"5px\"},\".social-icons\":{display:\"flex\",flexDirection:\"row\",gap:\"10px\",paddingBottom:\"15px\",alignItems:\"center\"}})),mt=(0,$.styled)(e=>(0,se.jsx)(Y.Box,{...e}))(({bannerProps:e,isCircularImage:t,hasWhiteBackground:o})=>({backgroundClip:\"border-box\",display:\"flex\",background:e?.backgroundColor??\"#383838\",position:\"relative\",overflow:\"hidden\",width:\"100%\",flexDirection:\"column\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"transform, opacity\",transform:\"translateZ(0)\",backfaceVisibility:\"hidden\",\"&.scrolled\":{top:0,left:0,right:0,boxShadow:\"0 2px 8px rgba(0,0,0,0.2)\",\".content-mobile\":{paddingTop:\"5px\",width:\"60%\"},\".body-title-mobile\":{fontSize:\"18px\",lineHeight:\"28px\",marginBottom:\"0\",fontStyle:\"normal\",fontWeight:\"400\",fontFamily:e?.headlineFont??\"Lora\"},\".bg-image-mobile\":{width:\"75px !important\",height:\"75px !important\",padding:t?\"2px\":\"0px\"},\".placeholder-image-mobile\":{\"& > div\":{width:\"75px !important\",height:\"75px !important\"}}},\".image-content-mobile\":{display:\"flex\",flexDirection:\"row\",width:\"100%\",justifyContent:\"center\",alignItems:\"center\"},\".content-mobile\":{width:\"55%\",height:\"100%\",paddingTop:\"10px\",paddingRight:\"10px\",marginLeft:\"8px\",marginRight:\"auto\",display:\"flex\",flexDirection:\"column\",justifyContent:\"center\",position:\"relative\",boxSizing:\"border-box\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",\"@media (max-width: 420px)\":{paddingTop:\"8px\",width:\"100%\"},\"@media (max-width: 400px)\":{paddingTop:\"6px\",width:\"100%\",height:\"100%\"},\"@media (max-width: 375px)\":{paddingTop:\"4px\",width:\"100%\",height:\"100%\"}},\".bg-image-mobile\":{width:\"144px\",height:\"144px\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",objectFit:\"cover\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",padding:t?\"2px\":\"0px\",\"@media (max-width: 420px)\":{width:\"120px\",height:\"120px\"},\"@media (max-width: 400px)\":{width:\"112px\",height:\"112px\"},\"@media (max-width: 375px)\":{width:\"90px\",height:\"90px\"}},\".placeholder-image-mobile\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",willChange:\"width, height, transform\",\"& > div\":{transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",width:\"144px !important\",height:\"144px !important\",\"@media (max-width: 420px)\":{width:\"120px !important\",height:\"120px !important\"},\"@media (max-width: 400px)\":{width:\"110px !important\",height:\"110px !important\"},\"@media (max-width: 375px)\":{width:\"90px !important\",height:\"90px !important\"}}},\".body-title-mobile\":{fontSize:\"22px\",lineHeight:\"28px\",marginBottom:\"13px\",fontWeight:\"400\",color:o?\"#000000\":\"#FFFFFF\",fontStyle:\"normal\",overflow:\"hidden\",whiteSpace:\"nowrap\",textOverflow:\"ellipsis\",fontFamily:e?.headlineFont??\"Lora\",paddingLeft:\"5px\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",\"@media (max-width: 420px)\":{fontSize:\"16px\",lineHeight:\"24px\",marginBottom:\"8px\"},\"@media (max-width: 400px)\":{fontSize:\"16px\",lineHeight:\"22px\",marginBottom:\"6px\"},\"@media (max-width: 375px)\":{fontSize:\"14px\",lineHeight:\"20px\",marginBottom:\"4px\"}},\".body-text-mobile\":{fontSize:\"14px\",padding:\"20px 25px 20px 25px\",fontStyle:\"normal\",fontWeight:\"400\",lineHeight:\"20px\",color:\"#252525\",backgroundColor:\"#E0E0E0\",fontFamily:e?.paragraphFont??\"inherit\",transition:\"all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)\",opacity:1,transform:\"translateY(0)\"},\".expandable-description-mobile\":{backgroundColor:\"#E0E0E0\",position:\"relative\"},\".description-content-mobile\":{fontSize:\"14px\",padding:\"10px 15px\",fontStyle:\"normal\",fontWeight:\"400\",lineHeight:\"20px\",color:\"#252525\",fontFamily:e?.paragraphFont??\"inherit\",transition:\"max-height 0.3s ease-in-out, opacity 0.3s ease-in-out\",overflow:\"hidden\",position:\"relative\",\"&.collapsed\":{maxHeight:\"50px\",display:\"-webkit-box\",WebkitLineClamp:2,WebkitBoxOrient:\"vertical\",\"&::after\":{content:'\"\"',position:\"absolute\",bottom:0,left:0,right:0,height:\"20px\",background:\"linear-gradient(transparent, rgba(224, 224, 224, 0.8), #E0E0E0)\",pointerEvents:\"none\"}},\"&.expanded\":{maxHeight:\"none\",whiteSpace:\"normal\",display:\"block\",\"&::after\":{display:\"none\"}}},\".email-text-mobile\":{fontSize:\"12px\",paddingBottom:\"11px\",fontStyle:\"normal\",fontWeight:\"600\",lineHeight:\"16px\",letterSpacing:\"0.12px\",color:o?\"#000000\":\"#FFFFFF\",wordBreak:\"break-all\",overflowWrap:\"break-word\",paddingLeft:\"5px\",\"@media (max-width: 420px)\":{fontSize:\"11px\",lineHeight:\"15px\",paddingBottom:\"8px\"},\"@media (max-width: 400px)\":{fontSize:\"10px\",lineHeight:\"14px\",paddingBottom:\"6px\"},\"@media (max-width: 375px)\":{fontSize:\"8px\",lineHeight:\"12px\",paddingBottom:\"4px\"}},\".social-title-text-mobile\":{fontSize:\"12px\",marginBottom:\"11px\",fontStyle:\"normal\",fontWeight:\"700\",lineHeight:\"16px\",letterSpacing:\"0.48px\",color:o?\"#000000\":\"#FFFFFF\",textTransform:\"uppercase\",paddingLeft:\"5px\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\",\"@media (max-width: 420px)\":{fontSize:\"11px\",lineHeight:\"14px\",marginBottom:\"8px\"},\"@media (max-width: 400px)\":{fontSize:\"10px\",lineHeight:\"12px\",marginBottom:\"5px\"},\"@media (max-width: 375px)\":{fontSize:\"8px\",lineHeight:\"11px\",marginBottom:\"4px\"}},\".social-icons-mobile\":{display:\"flex\",flexDirection:\"row\",gap:\"10px\",paddingBottom:\"10px\",alignItems:\"center\",transition:\"opacity 0.3s ease-out, transform 0.3s ease-out\",opacity:1,transform:\"translateY(0)\",\"& img\":{width:\"24px\",height:\"24px\",\"@media (max-width: 400px)\":{width:\"20px\",height:\"20px\"},\"@media (max-width: 375px)\":{width:\"18px\",height:\"18px\"}},\"@media (max-width: 420px)\":{paddingBottom:\"8px\"},\"@media (max-width: 400px)\":{paddingBottom:\"4px\"},\"@media (max-width: 375px)\":{paddingBottom:\"3px\"}}})),gt=(0,$.styled)(Y.Box)({display:\"flex\",gap:\"12px\",marginBottom:\"16px\",paddingLeft:\"5px\",\"&.mobile-badges\":{flexDirection:\"column\",gap:\"8px\",marginBottom:\"12px\"},\"&.tablet-badges\":{flexDirection:\"row\",gap:\"12px\",marginBottom:\"16px\"}}),xt=(0,$.styled)(Y.Box)({backgroundColor:\"rgba(255, 255, 255, 0.2)\",backdropFilter:\"blur(10px)\",borderRadius:\"20px\",padding:\"8px 16px\",display:\"flex\",alignItems:\"center\",gap:\"4px\",border:\"1px solid rgba(255, 255, 255, 0.3)\",transition:\"all 0.3s ease\",\"&.mobile-badge\":{padding:\"6px 12px\",borderRadius:\"16px\",fontSize:\"12px\"},\"&.tablet-badge\":{padding:\"8px 16px\",borderRadius:\"20px\",fontSize:\"14px\"},\"&:hover\":{backgroundColor:\"rgba(255, 255, 255, 0.3)\",transform:\"translateY(-1px)\",boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.1)\"},\".badge-text\":{color:\"#FFFFFF\",fontWeight:\"400\",opacity:.9},\".badge-value\":{color:\"#FFFFFF\",fontWeight:\"600\"}}),ht=(0,$.styled)(\"button\")({backgroundColor:\"#E0E0E0\",border:\"1px solid #252525\",borderRadius:\"10px\",cursor:\"pointer\",width:\"40px\",height:\"20px\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",margin:\"10px auto 5px auto\",transition:\"all 0.2s ease\",\"& .arrow-icon-mobile\":{transition:\"transform 0.3s ease\",\"&.expanded\":{transform:\"rotate(180deg)\"}}});var ft=require(\"@mui/material\"),I=require(\"react/jsx-runtime\"),bt=({width:e,height:t,backgroundColor:o})=>(0,I.jsx)(ft.Box,{sx:{width:e,height:t,display:\"flex\",justifyContent:\"center\",alignItems:\"center\",backgroundColor:o},\"data-testid\":\"placeholder-image\",children:(0,I.jsx)(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"128\",height:\"129\",viewBox:\"0 0 128 129\",fill:\"none\",children:(0,I.jsxs)(\"g\",{id:\"ns_logomark\",children:[(0,I.jsx)(\"path\",{id:\"Vector\",d:\"M127.495 52.1946C125.663 47.9538 122.999 44.1171 119.661 40.9073C112.565 34.2835 102.562 31.7037 93.1175 34.0622C83.6733 36.4206 76.0882 43.3926 72.991 52.5619C71.4142 56.8414 70.6063 61.3627 70.6039 65.9196C70.6039 85.8227 70.6039 105.737 70.6039 125.662C70.6039 129.001 70.6039 129.001 66.9051 128.834C66.9051 128.2 66.9051 127.499 66.9051 126.831C66.9051 104.323 66.9051 81.8263 66.9051 59.3409C66.3415 45.3064 74.9302 32.5039 88.1888 27.6164C89.79 27.0612 91.4307 26.6259 93.0981 26.314C94.7114 25.98 96.4605 25.8465 98.0738 25.6461C96.0231 16.3291 78.9419 5.60953 65.0889 4.97504C50.3084 4.62252 36.6074 12.6365 29.7509 25.6461C31.331 25.8465 32.8779 25.9466 34.3569 26.2138C48.0999 28.544 58.7086 39.4998 60.5168 53.2298C60.8904 55.7285 61.0812 58.2508 61.0877 60.7769C61.0877 82.7507 61.0877 104.724 61.0877 126.697C61.0877 128.434 60.6842 129.169 58.8016 128.968C56.9183 128.768 57.1204 128.2 57.1204 126.965C57.1204 119.985 57.1204 113.006 57.1204 105.993C57.1204 92.1674 57.1204 78.3423 57.1204 64.5171C57.2385 56.3928 54.2457 48.5271 48.7477 42.5103C42.2429 35.5282 32.6539 32.2371 23.1959 33.7401C13.7379 35.243 5.66194 41.3411 1.67448 49.9906C1.23781 50.8254 0.867444 51.6937 0.262573 52.9293C5.79294 22.3996 32.4752 0.139867 63.7085 0.000656323C94.9411 -0.138555 121.824 21.8824 127.629 52.3616\",fill:\"#252525\"}),(0,I.jsx)(\"path\",{id:\"Vector_2\",d:\"M86.0995 124.927C86.0995 124.293 86.0995 123.858 86.0995 123.425C86.0995 111.669 86.0995 100.049 86.0995 88.1269C85.8836 82.4231 88.0775 76.89 92.1523 72.8653C97.3131 67.9567 104.984 66.7091 111.452 69.7263C117.892 72.1185 122.166 78.225 122.178 85.0541C122.372 92.1747 119.781 99.0921 114.949 104.356C107.882 113.237 98.6134 120.141 88.05 124.392C87.4217 124.616 86.782 124.805 86.1335 124.96\",fill:\"#252525\"}),(0,I.jsx)(\"path\",{id:\"Vector_3\",d:\"M41.8183 125.395C37.6149 123.224 33.6477 121.487 29.9828 119.25C21.5405 114.299 14.4778 107.331 9.43828 98.9796C6.53442 94.3985 5.34408 88.9493 6.07591 83.5852C7.056 75.2882 13.8859 68.8841 22.2829 68.3905C31.1231 67.2473 39.3527 73.0751 41.1455 81.7484C41.76 84.263 42.0762 86.8411 42.0868 89.4287C42.0868 100.516 42.0868 111.636 42.0868 122.823C42.0868 123.457 42.0867 124.059 41.8854 125.294\",fill:\"#252525\"}),(0,I.jsx)(\"path\",{id:\"Vector_4\",d:\"M51.3337 127.431C47.9713 127.431 47.6681 127.198 47.6681 124.326V76.6386C48.1096 67.937 42.9747 59.906 34.8574 56.602C25.8992 52.8557 15.5485 54.8615 8.66523 61.6779C4.28638 66.6086 1.89197 72.9696 1.94049 79.5438C1.95423 80.2444 1.78037 80.9357 1.43588 81.5476C1.06552 79.9446 0.62885 78.2081 0.426687 76.7387C-0.724024 70.4463 0.471163 63.9529 3.78906 58.472C6.09291 54.6111 9.65016 51.6434 13.8762 50.0567C22.8587 46.555 32.9393 47.1785 41.4148 51.7598C47.6592 54.8694 51.5262 61.2882 51.3337 68.2232C51.5019 87.6249 51.3337 107.027 51.3337 126.396C51.3337 126.797 51.3337 127.164 51.3337 127.532\",fill:\"#252525\"}),(0,I.jsx)(\"path\",{id:\"Vector_5\",d:\"M76.287 127.499V125.094C76.287 107.196 76.4883 89.2963 76.287 71.3966C76.0848 56.9034 84.2554 50.6588 95.7553 48.3545C101.535 47.2005 107.524 47.6393 113.071 49.6235C122.914 53.3319 128.994 63.1725 127.866 73.5672C127.631 76.2831 127.17 78.975 126.487 81.6151C125.916 78.2758 125.68 74.9364 124.772 71.597C122.808 64.3002 117.377 58.4174 110.228 55.8421C103.078 53.2668 95.1132 54.3239 88.8955 58.6734C83.0441 62.6207 79.7011 69.3237 80.086 76.3389C80.086 92.2349 80.086 108.131 80.086 124.026C80.086 127.366 80.086 127.366 76.2198 127.366\",fill:\"#252525\"})]})})});var de=require(\"react/jsx-runtime\"),ut=({width:e=16,height:t=16,className:o=\"\"})=>(0,de.jsx)(\"svg\",{width:e,height:t,viewBox:\"0 0 24 24\",fill:\"currentColor\",className:o,\"data-testid\":\"arrow-down-icon\",children:(0,de.jsx)(\"path\",{d:\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\"})});var a=require(\"react/jsx-runtime\"),Wt=(0,d.styled)(d.Box)({background:\"none\",border:\"2px solid transparent\",cursor:\"pointer\",padding:\"2px\",display:\"flex\",alignItems:\"center\",borderRadius:\"8px\",transition:\"all 0.3s ease\",\"&:hover\":{transform:\"scale(1.1)\",boxShadow:\"0 4px 12px rgba(0, 0, 0, 0.15)\"},\"&:focus, &:focus-within\":{outline:\"none\",borderColor:\"#007bff\",boxShadow:\"0 0 0 2px rgba(0, 123, 255, 0.25)\"},\"&:hover svg\":{fill:\"#ffffff !important\"}}),yt=(e,t,o)=>{let i=o.includes(\"mobile\")?\"placeholder-image-mobile\":\"placeholder-image\";return e?.imageSrc?(0,a.jsx)(q.NsImage,{className:o,src:e.imageSrc,alt:e.imageAlt}):(0,a.jsx)(d.Box,{className:i,children:(0,a.jsx)(bt,{width:o.includes(\"mobile\")?\"144px\":\"246px\",height:o.includes(\"mobile\")?\"144px\":\"246px\",backgroundColor:t?.backgroundColor??\"#5F5F5F\"})})},wt=(e,t,o)=>!e||!t?null:(0,a.jsx)(gt,{className:o?\"mobile-badges\":\"tablet-badges\",children:t&&(0,a.jsx)(xt,{className:o?\"mobile-badge\":\"tablet-badge\",children:(0,a.jsx)(\"span\",{className:\"badge-value\",children:t})})}),$t=(e,t,o,i)=>{let{shopTitle:r,socialTitleText:s,email:l,showBadges:m,expirationDate:p}=e;return(0,a.jsxs)(d.Box,{className:\"content-mobile\",children:[(0,a.jsx)(d.Typography,{tabIndex:0,className:\"body-title-mobile\",children:r}),!t&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(d.Typography,{tabIndex:0,className:\"social-title-text-mobile\",children:s}),(0,a.jsx)(d.Typography,{tabIndex:0,className:\"email-text-mobile\",children:l}),(0,a.jsx)(d.Box,{className:\"social-icons-mobile\",children:o}),wt(m,p??\"\",i)]})]})},Ot=(e,t,o,i)=>{let{shopTitle:r,shopDescription:s,socialTitleText:l,email:m,showBadges:p,expirationDate:h}=e;return(0,a.jsxs)(d.Box,{className:\"content\",children:[(0,a.jsx)(d.Typography,{tabIndex:0,className:\"body-title\",children:r}),!t&&(0,a.jsxs)(a.Fragment,{children:[s?.length>480?(0,a.jsx)(d.Tooltip,{title:s,arrow:!0,children:(0,a.jsx)(d.Typography,{tabIndex:0,className:\"body-text\",children:s})}):(0,a.jsx)(d.Typography,{tabIndex:0,className:\"body-text\",children:s}),(0,a.jsxs)(d.Box,{className:\"social-media\",children:[(0,a.jsx)(d.Typography,{tabIndex:0,className:\"social-title-text\",children:l}),(0,a.jsxs)(d.Box,{className:\"social-icons\",children:[o,(0,a.jsx)(d.Typography,{className:\"email-text\",children:(0,a.jsx)(\"a\",{href:`mailto:${m}`,onKeyDown:c=>{(c.key===\"Enter\"||c.key===\" \")&&(c.preventDefault(),globalThis.location.href=`mailto:${m}`)},children:m})})]})]}),wt(p,h??\"\",i)]})]})},Vt=e=>new Promise((t,o)=>{let i=new Image;i.crossOrigin=\"anonymous\",i.src=e,i.onload=()=>{let r=document.createElement(\"canvas\"),s=r.getContext(\"2d\");if(!s)return o(new Error(\"Canvas not supported\"));r.width=i.width,r.height=i.height,s.drawImage(i,0,0);let m=[s.getImageData(0,0,1,1).data,s.getImageData(i.width-1,0,1,1).data,s.getImageData(0,i.height-1,1,1).data,s.getImageData(i.width-1,i.height-1,1,1).data].every(p=>Array.prototype.slice.call(p)[3]<10);t(m)},i.onerror=()=>o(new Error(\"Failed to load image\"))}),_t=e=>{if(!e)return!1;let t=e.replace(\"#\",\"\").toLowerCase();if(!/^[0-9a-f]{3,4}$|^[0-9a-f]{6}$|^[0-9a-f]{8}$/i.test(t))return!1;let o=t;(t.length===3||t.length===4)&&(o=t.split(\"\").map(m=>m+m).join(\"\"));let i=Number.parseInt(o.substring(0,2),16),r=Number.parseInt(o.substring(2,4),16),s=Number.parseInt(o.substring(4,6),16),l=220;return i>=l&&r>=l&&s>=l};function pe({className:e,shopTitle:t,shopDescription:o,socialTitleText:i,imageDetails:r,email:s,bannerProps:l,socialIcons:m,expirationDate:p,showBadges:h=!1}){let c=(0,d.useMediaQuery)(\"(max-width: 560px)\"),[f,E]=(0,T.useState)(!1),[k,u]=(0,T.useState)(!1),[S,L]=(0,T.useState)(!1),[z,x]=(0,T.useState)(!1),B=()=>{u(!k)};(0,T.useEffect)(()=>{(async()=>{if(r?.imageSrc){let g=await Vt(r.imageSrc);x(g)}else x(!1)})()},[r?.imageSrc]),(0,T.useEffect)(()=>{L(_t(l?.backgroundColor))},[l?.backgroundColor]),(0,T.useEffect)(()=>{let w,g=window.scrollY,N=!1,oe=\"\",ce=()=>document.querySelector(\".nu-header-container\"),me=()=>{let n=ce();if(!n)return{top:35,isCompact:!1};let A=n.classList.contains(\"compact\")||n.classList.contains(\"compact-view\"),Q=n.classList.contains(\"full-view\");return A?{top:85,isCompact:!0}:Q?{top:110,isCompact:!1}:{top:35,isCompact:!1}},ge=()=>{let n=ce();return n?n.classList.contains(\"compact\")||n.classList.contains(\"compact-view\")?\"compact\":n.classList.contains(\"full-view\")?\"full-view\":\"default\":\"none\"},U=n=>{N!==n&&(N=n,n&&u(!1),clearTimeout(w),w=setTimeout(()=>{E(n)},n?100:50))},Ct=()=>{let n=window.scrollY,A=Math.abs(n-g),Q=n<100?1:3;if(A<Q){g=n;return}let ae=n>g,K=n<g,he=ge(),{top:kt,isCompact:fe}=me();if(oe!==he){oe=he,fe&&!N?U(!0):!fe&&N&&n<80&&U(!1),g=n;return}let St=c?120:150,Tt=c?50:80,Pt=St+kt,It=Tt;ae&&n>Pt&&!N?U(!0):K&&n<It&&N&&U(!1),g=n},vt=()=>{let n=window.scrollY,{top:A}=me();oe=ge();let ae=(c?120:150)+A,K=n>ae;N=K,E(K),g=n},ie=!1,xe=()=>{ie||(requestAnimationFrame(()=>{Ct(),ie=!1}),ie=!0)};return vt(),window.addEventListener(\"scroll\",xe,{passive:!0}),()=>{window.removeEventListener(\"scroll\",xe),clearTimeout(w)}},[c]);let D=(0,T.useMemo)(()=>m?.map((w,g)=>(0,a.jsx)(Wt,{children:(0,a.jsx)(q.NsLink,{href:w.url,target:\"_blank\",children:(0,a.jsx)(q.NsImage,{src:`https://www.google.com/s2/favicons?domain=${w?.url}&sz=24`,alt:`${w.type} icon`,width:\"24\",height:\"24\"},w?.type+g)})},w?.type+g)),[m]),O=`${e} ${f?\"scrolled\":\"\"}`,Z={shopTitle:t,shopDescription:o,socialTitleText:i,email:s,showBadges:h,expirationDate:p},te=()=>window.innerWidth<=380?50:window.innerWidth<=415?56:window.innerWidth<=460?62:80,V=c&&o&&o.length>te();return c?(0,a.jsxs)(mt,{className:O,\"data-testid\":\"my-site-shop-header\",bannerProps:l,isCircularImage:z,hasWhiteBackground:S,children:[(0,a.jsxs)(d.Box,{className:\"image-content-mobile\",children:[yt(r,l??{},\"bg-image-mobile\"),$t(Z,f,D,c)]}),!f&&(0,a.jsxs)(d.Box,{className:\"expandable-description-mobile\",children:[(0,a.jsx)(d.Typography,{className:`description-content-mobile ${k||!V?\"expanded\":\"collapsed\"}`,children:o}),V&&(0,a.jsx)(ht,{onClick:B,children:(0,a.jsx)(ut,{width:16,height:16,className:`arrow-icon-mobile ${k?\"expanded\":\"\"}`})})]})]}):(0,a.jsxs)(ct,{className:O,\"data-testid\":\"my-site-shop-header\",bannerProps:l,isCircularImage:z,hasWhiteBackground:S,children:[yt(r,l??{},\"bg-image\"),Ot(Z,f,D,c)]})}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","export * from './common';\n","import React, { ReactElement, useState } from 'react';\nimport { NsImage } from '@nuskin/foundation-ui-components';\nimport { ProductImageType } from '../types/image';\nimport {\n PriceComponent,\n ProductCardContainer,\n ImageContainer,\n DefaultImage,\n ProductTitle,\n ProductBadgeContainer,\n AddToCartButton,\n CartIcon,\n} from './styles/NsProductCard.Styled';\nimport { useMediaQuery } from '@mui/material';\nimport { NsCardButton } from './types';\n\ntype NsProductCardProps = {\n readonly productTitle: string;\n readonly imageDetails?: ProductImageType;\n readonly className?: string;\n readonly button?: NsCardButton & { disabled?: boolean };\n readonly onCardClick?: () => void;\n readonly productStatusBadge?: React.ReactNode;\n readonly directSellerBadge?: React.ReactNode;\n readonly mySitePriceComponent?: React.ReactNode;\n readonly testId?: string;\n};\n\nconst NsProductCard = ({\n productTitle,\n imageDetails,\n className,\n button,\n onCardClick,\n productStatusBadge,\n directSellerBadge,\n mySitePriceComponent,\n testId,\n}: NsProductCardProps): ReactElement => {\n const [isButtonHovered, setIsButtonHovered] = useState(false);\n const isMobile = useMediaQuery('(max-width: 560px)');\n\n const handleImageError = (e: React.SyntheticEvent<HTMLImageElement, Event>) => {\n const target = e.target as HTMLImageElement;\n const noImageFallback = imageDetails?.fallbackImage;\n if (noImageFallback && target.src !== noImageFallback) {\n target.src = noImageFallback;\n }\n };\n\n return (\n <ProductCardContainer\n className={className}\n onClick={onCardClick}\n tabIndex={0}\n data-testid=\"product-card\"\n isMobile={isMobile}\n >\n <ImageContainer bgColor={imageDetails?.bgColor} onError={handleImageError}>\n {imageDetails?.imageSrc ? (\n <NsImage\n data-testid={testId ?? 'test-product-image'}\n className={imageDetails.className ?? ''}\n src={imageDetails.imageSrc}\n alt={imageDetails.imageAlt}\n aria-label={imageDetails.areaLabel ?? imageDetails.imageAlt}\n width={'100%'}\n />\n ) : (\n <DefaultImage alt=\"\" />\n )}\n </ImageContainer>\n <ProductTitle title={productTitle} data-testid=\"product-title\">\n {productTitle}\n </ProductTitle>\n {directSellerBadge && <ProductBadgeContainer>{directSellerBadge}</ProductBadgeContainer>}\n <ProductBadgeContainer>{productStatusBadge}</ProductBadgeContainer>\n <PriceComponent>{mySitePriceComponent}</PriceComponent>\n {button?.showButton && (\n <AddToCartButton\n tabIndex={0}\n aria-roledescription=\":\"\n aria-label={button.buttonText || 'ADD TO CART'}\n data-testid=\"add-to-cart-button\"\n disabled={button?.disabled ?? false}\n isMobile={isMobile}\n isHovered={isButtonHovered}\n onClick={(e) => {\n e.stopPropagation();\n if (!button?.disabled) {\n button.onClick?.();\n }\n }}\n onMouseEnter={() => {\n if (!isMobile && !button?.disabled) {\n setIsButtonHovered(true);\n }\n }}\n onMouseLeave={() => {\n if (!isMobile) {\n setIsButtonHovered(false);\n }\n }}\n >\n <CartIcon className=\"cart-icon\" disabled={button?.disabled}>\n <svg width=\"24\" height=\"22\" viewBox=\"0 0 24 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M0 1.86358C0 1.26109 0.488416 0.772675 1.09091 0.772675H3.48173C4.51054 0.772675 5.39955 1.49136 5.61511 2.49733L5.71309 2.95456H22.9091C23.245 2.95456 23.5622 3.10933 23.7689 3.37411C23.9757 3.63889 24.0489 3.98415 23.9674 4.31005L22.4053 10.5583C21.9197 12.5009 20.1743 13.8636 18.172 13.8636H8.05068L8.28444 14.9546H20.7273C21.3298 14.9546 21.8182 15.443 21.8182 16.0455C21.8182 16.648 21.3298 17.1364 20.7273 17.1364H19.6364H8.18182H7.40252C6.88811 17.1364 6.4436 16.777 6.33582 16.274L3.76449 4.27405L3.48173 2.95449H1.09091C0.488416 2.95449 0 2.46608 0 1.86358ZM8.18182 17.1364C6.97683 17.1364 6 18.1132 6 19.3182C6 20.5232 6.97683 21.5 8.18182 21.5C9.3868 21.5 10.3636 20.5232 10.3636 19.3182C10.3636 18.1132 9.3868 17.1364 8.18182 17.1364ZM19.6364 17.1364C18.4314 17.1364 17.4545 18.1132 17.4545 19.3182C17.4545 20.5232 18.4314 21.5 19.6364 21.5C20.8413 21.5 21.8182 20.5232 21.8182 19.3182C21.8182 18.1132 20.8413 17.1364 19.6364 17.1364ZM7.58317 11.6818H18.172C19.1732 11.6818 20.0459 11.0005 20.2887 10.0292L21.5119 5.13638H6.18062L7.58317 11.6818Z\"\n fill={button?.disabled ? '#999' : '#ffffff'}\n />\n </svg>\n </CartIcon>\n {button.buttonText || 'ADD TO CART'}\n </AddToCartButton>\n )}\n </ProductCardContainer>\n );\n};\n\nexport default NsProductCard;\n","import { styled } from '@nuskin/foundation-theme';\n\nexport const PriceComponent = styled('div')`\n width: 200px;\n text-align: left;\n margin-bottom: 5px;\n`;\n\nexport const ProductCardContainer = styled('button')<{ isMobile: boolean }>`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n width: 240px;\n height: ${(props) => (props.isMobile ? '410px' : '513px')};\n overflow: hidden;\n cursor: pointer;\n border: 1px solid #ededed;\n background: var(--color-primary-n-10-primary-white, #fff);\n`;\n\nexport const ImageContainer = styled('div')<{\n bgColor?: string;\n}>`\n width: '240px';\n height: '240px';\n background: ${(props) => props.bgColor ?? '#f5f5f5'};\n border-radius: 8px;\n overflow: hidden;\n margin-bottom: 0;\n display: flex;\n align-items: normal;\n justify-content: center;\n position: relative;\n @media (max-width: 560px) {\n width: 200px;\n height: 200px;\n align-items: unset;\n }\n`;\n\nexport const DefaultImage = styled('img')`\n width: 100%;\n height: 100%;\n object-fit: cover;\n border-radius: 8px;\n display: block;\n`;\n\nexport const ProductTitle = styled('div')`\n width: 200px;\n margin-top: 16px;\n max-height: 66px;\n text-align: left;\n font-size: 16px;\n font-family: 'Inter', sans-serif;\n font-weight: 400;\n line-height: 22px;\n overflow: hidden;\n color: #666;\n display: -webkit-box;\n -webkit-line-clamp: 3;\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n @media (max-width: 560px) {\n font-size: 14px;\n font-style: normal;\n font-weight: 600;\n margin-top: 5px;\n max-height: 54px;\n line-height: 18px;\n }\n`;\n\nexport const ProductBadgeContainer = styled('div')`\n width: 200px;\n text-align: left;\n margin-bottom: 12px;\n @media (max-width: 560px) {\n margin-bottom: 8px;\n }\n`;\n\nexport const AddToCartButton = styled('button')<{\n disabled?: boolean;\n isMobile: boolean;\n isHovered: boolean;\n}>`\n width: 200px;\n height: 40px;\n border-radius: 4px;\n display: flex;\n align-items: center;\n gap: 10px;\n font-family: 'Inter', sans-serif;\n font-size: 14px;\n font-weight: 600;\n line-height: 20px;\n letter-spacing: 0.14px;\n text-transform: none;\n justify-content: flex-start;\n padding-left: 31px;\n overflow: hidden;\n white-space: normal;\n word-break: break-word;\n overflow-wrap: break-word;\n text-overflow: ellipsis;\n margin-top: 8px;\n margin-bottom: 10px;\n -webkit-appearance: none;\n -webkit-tap-highlight-color: transparent;\n\n color: ${(props) => (props.disabled ? '#999' : '#fff')};\n background-color: ${(props) => {\n if (props.disabled) return '#e0e0e0';\n if (!props.isMobile && props.isHovered) return '#888';\n return '#000';\n }};\n border: ${(props) => (props.disabled ? '1px solid #ccc' : 'none')};\n cursor: ${(props) => (props.disabled ? 'not-allowed' : 'pointer')};\n opacity: ${(props) => (props.disabled ? 0.6 : 1)};\n transition: ${(props) => (props.isMobile ? 'none' : 'all 0.3s ease')};\n\n @media (max-width: 560px) {\n margin: 5px 0;\n }\n`;\n\nexport const CartIcon = styled('span')<{ disabled?: boolean }>`\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n display: inline-block;\n background: none;\n transition: all 0.3s ease;\n opacity: ${(props) => (props.disabled ? 0.5 : 1)};\n`;\n","import React, { ReactElement, useCallback, ReactNode, useRef } from 'react';\nimport Slider from 'react-slick';\nimport useMediaQuery from '@mui/material/useMediaQuery';\nimport 'slick-carousel/slick/slick.css';\nimport { NsCardButton, NsCarouselControl } from '@nuskin/foundation-ui-components';\nimport { ProductImageType } from '../types/image';\nimport NsProductCard from '../card/NsProductCard';\nimport {\n SlickContainer,\n ControlsContainer,\n ScrollableContainer,\n CardList,\n ViewAllWrapper,\n ProductCountWrapper,\n ArrowsWrapper,\n CustomTypography,\n ViewAllLink,\n EmptyProductCategories,\n} from './NsProductCarousel.styled';\n\nexport type ProductCardEntry = {\n readonly productTitle: string;\n readonly imageDetails?: ProductImageType;\n readonly button?: NsCardButton;\n readonly onCardClick?: () => void;\n readonly productStatusBadge?: React.ReactNode;\n readonly directSeller?: React.ReactNode;\n readonly mySitePriceComponent?: React.ReactNode;\n};\n\ninterface SlickSettings {\n dots?: boolean;\n infinite?: boolean;\n speed?: number;\n slidesToShow?: number;\n slidesToScroll?: number;\n swipe?: boolean;\n draggable?: boolean;\n arrows?: boolean;\n responsive?: Array<{\n breakpoint: number;\n settings: {\n slidesToShow?: number;\n slidesToScroll?: number;\n arrows?: boolean;\n };\n }>;\n}\n\ninterface ProductCardCarouselProps<T = ProductCardEntry> {\n readonly entries: T[];\n readonly settings?: SlickSettings;\n readonly showControlButtons?: boolean;\n readonly renderEntry?: (entry: T, index: number) => ReactNode;\n readonly allEntryLabel?: string;\n readonly allEntryLink?: string;\n readonly categoryName?: string;\n readonly emptyProductMessage?: string;\n readonly productsCountLabel?: string;\n readonly isInitialDataLoading?: boolean;\n}\n\nexport default function ProductCardCarousel({\n entries,\n renderEntry,\n settings = {},\n showControlButtons = true,\n allEntryLabel = 'View All',\n allEntryLink = '',\n categoryName,\n emptyProductMessage = 'No Products Available For The Selected Category',\n productsCountLabel = 'Products',\n isInitialDataLoading,\n}: ProductCardCarouselProps): ReactElement {\n const sliderRef = useRef<Slider>(null);\n const isMobile = useMediaQuery('(max-width: 560px)');\n\n const prev = useCallback(() => {\n sliderRef.current?.slickPrev();\n }, []);\n\n const next = useCallback(() => {\n sliderRef.current?.slickNext();\n }, []);\n\n const renderProductEntry =\n renderEntry ??\n ((entry: ProductCardEntry, index: number) => (\n <NsProductCard\n key={`${entry.productTitle}-${index}`}\n productTitle={entry.productTitle}\n imageDetails={entry.imageDetails}\n button={entry.button}\n onCardClick={entry.onCardClick}\n productStatusBadge={entry.productStatusBadge}\n directSellerBadge={entry.directSeller}\n mySitePriceComponent={entry.mySitePriceComponent}\n />\n ));\n\n const sliderSettings = {\n dots: true,\n infinite: true,\n speed: 500,\n slidesToShow: Math.min(entries?.length ?? 0, 4),\n slidesToScroll: 4,\n swipe: true,\n draggable: true,\n arrows: true,\n responsive: [\n {\n breakpoint: 1320,\n settings: {\n slidesToShow: Math.min(entries?.length ?? 0, 3),\n slidesToScroll: 3,\n },\n },\n {\n breakpoint: 900,\n settings: {\n slidesToShow: Math.min(entries?.length ?? 0, 2),\n slidesToScroll: 2,\n },\n },\n {\n breakpoint: 600,\n settings: {\n slidesToShow: 1,\n slidesToScroll: 1,\n arrows: false,\n },\n },\n ],\n ...settings,\n };\n\n const shouldShowNavigation = (entries?.length ?? 0) > sliderSettings.slidesToShow;\n\n const renderCarouselContent = () => {\n if (entries?.length === 0 && !isInitialDataLoading) {\n return <EmptyProductCategories>{emptyProductMessage}</EmptyProductCategories>;\n }\n\n if (isMobile) {\n return (\n <ScrollableContainer>\n <CardList>{entries.map((entry, index) => entry && renderProductEntry(entry, index))}</CardList>\n </ScrollableContainer>\n );\n }\n\n return (\n <Slider {...sliderSettings} ref={sliderRef}>\n {entries.map((entry, index) => entry && renderProductEntry(entry, index))}\n </Slider>\n );\n };\n\n return (\n <SlickContainer>\n {showControlButtons && (\n <ControlsContainer>\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', flex: 1, minWidth: 0 }}>\n <ProductCountWrapper>\n <CustomTypography variant=\"body-m\">\n {entries?.length ?? 0} {productsCountLabel}\n </CustomTypography>\n </ProductCountWrapper>\n {!isMobile && categoryName && (\n <div\n style={{\n fontFamily: 'Lora',\n fontWeight: 400,\n fontSize: 22,\n marginLeft: 16,\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginBottom: '13px',\n }}\n >\n {categoryName}\n </div>\n )}\n </div>\n <ViewAllWrapper style={{ marginLeft: 'auto', marginRight: isMobile ? 0 : 24 }}>\n <ViewAllLink href={allEntryLink}>{allEntryLabel}</ViewAllLink>\n </ViewAllWrapper>\n </div>\n {!isMobile && (\n <ArrowsWrapper $isDisabled={!shouldShowNavigation}>\n <NsCarouselControl prev={prev} next={next} viewAllLabel={''} viewAllUrl={''} />\n </ArrowsWrapper>\n )}\n </ControlsContainer>\n )}\n {renderCarouselContent()}\n </SlickContainer>\n );\n}\n","import React from 'react';\nimport { styled } from '@nuskin/foundation-theme';\nimport Box, { BoxProps } from '@mui/material/Box';\nimport { NsTypography } from '@nuskin/foundation-ui-components';\n\nexport const SlickContainer: React.ComponentType<BoxProps> = styled(Box)`\n padding: 30px 0 60px;\n width: 100%;\n margin: auto;\n margin-top: 50px;\n position: relative;\n\n .slick-list {\n padding-left: 24px;\n padding-right: 24px;\n }\n .slick-slide {\n display: flex;\n justify-content: center;\n padding: 0 12px;\n box-sizing: border-box;\n }\n .slick-prev,\n .slick-next {\n display: none !important;\n }\n\n @media (max-width: 1200px) {\n max-width: 1024px;\n .slick-list {\n padding-left: 12px;\n padding-right: 12px;\n }\n .slick-slide {\n padding: 0 6px;\n }\n }\n @media (max-width: 700px) {\n max-width: 100vw;\n padding: 10px 0 50px;\n .slick-list {\n padding-left: 4px;\n padding-right: 4px;\n }\n .slick-slide {\n padding: 0 2px;\n }\n }\n @media (max-width: 560px) {\n padding: 10px 0 10px;\n margin-top: 25px;\n }\n`;\nexport const ScrollableContainer = styled('div')`\n overflow-x: auto;\n display: flex;\n scroll-snap-type: x mandatory;\n -webkit-overflow-scrolling: touch;\n gap: 16px;\n padding: 0 8px 16px;\n width: 100%;\n box-sizing: border-box;\n\n &::-webkit-scrollbar {\n height: 6px;\n }\n\n &::-webkit-scrollbar-thumb {\n background: #007bff;\n border-radius: 10px;\n }\n`;\n\nexport const CardList = styled('div')`\n display: flex;\n scroll-snap-align: start;\n justify-content: center;\n gap: 15px;\n`;\n\nexport const ControlsContainer: React.ComponentType<BoxProps> = styled(Box)`\n position: absolute;\n bottom: calc(100% + 1px);\n right: 1px;\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n box-sizing: border-box;\n`;\n\nexport const ViewAllWrapper: React.ComponentType<BoxProps> = styled(Box)`\n display: flex;\n align-items: center;\n margin-left: 576px;\n\n @media (max-width: 560px) {\n margin-left: 0;\n order: 2;\n }\n`;\n\nexport const ProductCountWrapper: React.ComponentType<BoxProps> = styled(Box)`\n display: none;\n\n @media (max-width: 560px) {\n color: #666666;\n font-family: Inter;\n font-size: 14px !important;\n font-style: normal;\n font-weight: 600;\n line-height: 18px;\n display: flex;\n align-items: center;\n order: 1;\n }\n`;\n\nexport const ArrowsWrapper: React.ComponentType<BoxProps & { $isDisabled?: boolean }> = styled(Box)<{\n $isDisabled?: boolean;\n}>`\n display: flex;\n align-items: center;\n opacity: ${({ $isDisabled }) => ($isDisabled ? 0.3 : 1)};\n pointer-events: ${({ $isDisabled }) => ($isDisabled ? 'none' : 'auto')};\n transition: opacity 0.3s ease;\n\n .carousal-prev-button,\n .carousal-next-button {\n transition: all 0.3s ease;\n border: 2px solid #000000;\n border-radius: 3px;\n padding: 9px;\n cursor: pointer;\n\n svg {\n transition: all 0.3s ease;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n\n &:hover {\n background-color: #f5f5f5;\n border: 2px solid #ddd;\n\n svg {\n opacity: 0.5;\n }\n\n svg polyline {\n stroke: #000000;\n fill: none;\n }\n }\n }\n\n @media (max-width: 560px) {\n display: none;\n }\n`;\nexport const Scrollablewrapper = styled('div')`\n @media (max-width: 560px) {\n overflow-y: hidden;\n scrollbar-width: thin;\n scrollbar-color: #007bff #eee;\n &::-webkit-scrollbar {\n width: 8px;\n }\n &::-webkit-scrollbar-track {\n background: #eee;\n }\n &::-webkit-scrollbar-thumb {\n background-color: red;\n border-radius: 8px;\n border: 2px solid #eee;\n }\n }\n`;\nexport const CustomTypography = styled(NsTypography)`\n color: #666666;\n font-family: Inter;\n font-size: 16px;\n font-style: normal;\n font-weight: 600;\n line-height: 22px;\n @media (max-width: 560px) {\n margin: 0 3px;\n }\n`;\n\nexport const ViewAllLink = styled('a')`\n color: #000000;\n font-family: Inter, sans-serif;\n font-size: 16px;\n font-style: normal;\n font-weight: 400;\n line-height: 22px;\n text-decoration: none;\n border-bottom: 1px solid #000000;\n padding-bottom: 4px;\n transition: all 0.3s ease;\n\n @media (max-width: 560px) {\n font-size: 14px !important;\n line-height: 18px;\n }\n\n &:hover {\n color: #666666;\n border-bottom: 1px solid #666666;\n }\n`;\n\nexport const EmptyProductCategories = styled('div')`\n padding-top: 20px;\n font-size: 20px;\n text-align: center;\n`;\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { useMediaQuery } from '@mui/material';\n\nimport { NsCategoryNavigation } from '../Nav-Category-Navigation';\nimport { NsSpinner } from '@nuskin/foundation-ui-components';\nimport ProductCardCarousel, { ProductCardEntry } from './NsProductCarousel';\nimport {\n ProductTabCarouselContainer,\n TabsContainer,\n ContentContainer,\n NoTabsContainer,\n SpinnerContainer,\n} from './ProductTabCarousel.styled';\n\ninterface Category {\n label: string;\n categoryId: string;\n}\n\ninterface SlickSettings {\n dots?: boolean;\n infinite?: boolean;\n speed?: number;\n slidesToShow?: number;\n slidesToScroll?: number;\n swipe?: boolean;\n draggable?: boolean;\n arrows?: boolean;\n responsive?: Array<{\n breakpoint: number;\n settings: {\n slidesToShow?: number;\n slidesToScroll?: number;\n arrows?: boolean;\n };\n }>;\n}\n\ninterface ProductTabCarouselProps {\n readonly allEntryLabel?: string;\n readonly allEntryLink?: string;\n readonly renderEntry?: (entry: ProductCardEntry) => React.ReactNode;\n readonly settings?: SlickSettings;\n readonly showControlButtons?: boolean;\n readonly fetchCategories: () => Promise<Category[]>;\n readonly fetchProducts: (categoryId: string) => Promise<ProductCardEntry[]>;\n readonly emptyProductTabs?: string;\n readonly emptyProductMessage?: string;\n readonly showCustomCategory?: boolean;\n readonly productsCountLabel?: string;\n}\n\nconst ProductTabCarousel: React.FC<ProductTabCarouselProps> = ({\n allEntryLabel,\n allEntryLink,\n renderEntry,\n settings,\n showControlButtons = true,\n fetchCategories,\n fetchProducts,\n showCustomCategory = false,\n emptyProductTabs = 'No tabs available',\n emptyProductMessage,\n productsCountLabel,\n}) => {\n const isMobile = useMediaQuery('(max-width:768px)');\n const [isLoadingInitialData, setIsLoadingInitialData] = useState(true);\n const [categories, setCategories] = useState<Category[]>([]);\n const [selectedTab, setSelectedTab] = useState(0);\n const [products, setProducts] = useState<ProductCardEntry[]>([]);\n const [loading, setLoading] = useState(false);\n const [shouldShowSpinner, setShouldShowSpinner] = useState(true);\n\n const checkForExistingSpinners = useCallback(() => {\n const existingSpinners = document.querySelectorAll('[data-testid*=\"spinner\"], .ns-spinner, [class*=\"spinner\"]');\n setShouldShowSpinner(existingSpinners.length === 0);\n }, []);\n\n useEffect(() => {\n if (loading) {\n checkForExistingSpinners();\n }\n }, [loading, checkForExistingSpinners]);\n\n useEffect(() => {\n fetchCategories().then(setCategories);\n }, [fetchCategories]);\n\n useEffect(() => {\n if (categories.length > 0) {\n setLoading(true);\n fetchProducts(categories[selectedTab].categoryId)\n .then(setProducts)\n .finally(() => {\n setLoading(false);\n setIsLoadingInitialData(false);\n });\n }\n }, [categories, selectedTab, fetchProducts]);\n\n const itemArray = categories.map((cat) => ({\n label: cat.label,\n content: '',\n categoryId: cat.categoryId,\n }));\n\n return (\n <ProductTabCarouselContainer isMobile={isMobile}>\n {showCustomCategory &&\n (itemArray.length > 0 ? (\n <TabsContainer isMobile={isMobile}>\n <NsCategoryNavigation\n itemArray={itemArray}\n value={selectedTab}\n onChange={(_, newValue) => setSelectedTab(newValue)}\n />\n </TabsContainer>\n ) : (\n <NoTabsContainer>{emptyProductTabs}</NoTabsContainer>\n ))}\n <ContentContainer isMobile={isMobile}>\n {loading ? (\n <SpinnerContainer>{shouldShowSpinner && <NsSpinner />}</SpinnerContainer>\n ) : (\n <ProductCardCarousel\n isInitialDataLoading={isLoadingInitialData}\n entries={products}\n allEntryLabel={allEntryLabel}\n allEntryLink={allEntryLink}\n renderEntry={\n renderEntry\n ? (entry) => renderEntry({ ...entry, productStatusBadge: entry.productStatusBadge })\n : undefined\n }\n settings={settings}\n showControlButtons={showControlButtons}\n categoryName={categories[selectedTab]?.label}\n emptyProductMessage={emptyProductMessage}\n productsCountLabel={productsCountLabel}\n />\n )}\n </ContentContainer>\n </ProductTabCarouselContainer>\n );\n};\n\nexport default ProductTabCarousel;\n","import * as React from 'react';\nimport Tabs from '@mui/material/Tabs';\nimport Tab from '@mui/material/Tab';\nimport Box from '@mui/material/Box';\nimport PropTypes from 'prop-types';\nimport { NsCategoryNavigationContainer } from './NsCategoryNavigation.styled';\nimport { useMediaQuery } from '@mui/material';\n\nfunction TabPanel(\n props: Readonly<{\n children?: React.ReactNode;\n value: number;\n index: number;\n [key: string]: unknown;\n }>,\n) {\n const { children, value, index, ...other } = props;\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`vertical-tabpanel-${index}`}\n aria-labelledby={`vertical-tab-${index}`}\n {...other}\n >\n {value === index && <Box className=\"tabPanel\">{children}</Box>}\n </div>\n );\n}\nTabPanel.propTypes = {\n children: PropTypes.node,\n index: PropTypes.number.isRequired,\n value: PropTypes.number.isRequired,\n};\n\ninterface NsCategoryNavigationProps {\n itemArray: { label: string; content: React.ReactNode; categoryId: string }[];\n value?: number;\n onChange?: (event: React.SyntheticEvent, newValue: number) => void;\n}\n\nexport const NsCategoryNavigation: React.FC<Readonly<NsCategoryNavigationProps>> = ({\n itemArray,\n value: controlledValue,\n onChange,\n}) => {\n const [internalValue, setInternalValue] = React.useState(0);\n const isMobile = useMediaQuery('(max-width:768px)');\n const value = controlledValue ?? internalValue;\n const handleChange = (event: React.SyntheticEvent, newValue: number) => {\n if (onChange) {\n onChange(event, newValue);\n } else {\n setInternalValue(newValue);\n }\n };\n\n return (\n <NsCategoryNavigationContainer>\n <Box className=\"tabContainer\">\n <Tabs\n orientation={isMobile ? 'horizontal' : 'vertical'}\n variant=\"scrollable\"\n value={value}\n onChange={handleChange}\n aria-label=\"Vertical tabs example\"\n className=\"tabsStyle\"\n >\n {itemArray.map((item) => (\n <Tab key={item.categoryId} label={item.label} className=\"tabStyle\" />\n ))}\n </Tabs>\n {itemArray.map((item) => (\n <TabPanel\n key={item.categoryId}\n value={value}\n index={itemArray.findIndex((i) => i.categoryId === item.categoryId)}\n >\n {item.content}\n </TabPanel>\n ))}\n </Box>\n </NsCategoryNavigationContainer>\n );\n};\n","import { styled } from '@nuskin/foundation-theme';\nexport const NsCategoryNavigationContainer = styled.div`\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n width: 100%;\n height: 100%;\n background-color: #fff;\n .tabsStyle {\n display: flex;\n padding-top: 8.533px;\n flex-direction: column;\n align-items: flex-start;\n gap: 12.8px;\n border-right: 1px;\n border-color: divider;\n width: 200px;\n & .Mui-selected {\n font-weight: 700;\n font-size: 14px;\n font-family: 'inter', sans-serif;\n font-style: normal;\n font-height: 20px;\n border-radius: 4px;\n }\n & .MuiTabs-indicator {\n left: 0;\n background-color: #5b81a5;\n color: #5b81a5;\n\n @media (max-width: 768px) {\n display: none;\n }\n }\n }\n\n .tabContainer {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n align-items: flex-start;\n min-width: 100%;\n background-color: #fff;\n @media (max-width: 768px) {\n flex-direction: column;\n justify-content: center;\n align-items: center;\n }\n }\n\n .tabStyle {\n align-items: flex-start;\n display: flex;\n text-align: left;\n font-size: 14px;\n font-family: 'inter' sans-serif;\n font-style: normal;\n font-weight: 400;\n line-height: 20px;\n min-height: 20px;\n padding: 1px;\n padding-left: 10px;\n margin-bottom: 10px;\n cursor: pointer;\n text-transform: none;\n }\n @media (max-width: 768px) {\n flex-direction: row;\n\n .tabsStyle {\n width: 100%;\n border-right: none;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n padding-top: 0px;\n }\n\n .tabStyle {\n display: flex;\n align-items: center;\n gap: 10px;\n font-size: 14px;\n border: 1px solid #ccc;\n border-radius: 70px;\n padding: 8px 16px;\n text-align: center;\n margin: 4px;\n background-color: #fff;\n cursor: pointer;\n color: black;\n font-family: Inter;\n font-style: normal;\n font-weight: 600;\n line-height: 20px;\n }\n\n .tabStyle.Mui-selected {\n background-color: #5b81a5;\n color: #ffffff !important;\n font-weight: 700;\n border-radius: 70px;\n }\n }\n .tabPanel {\n padding: 8px;\n text-align: left;\n }\n`;\n","import { styled } from '@nuskin/foundation-theme';\n\nexport const ProductTabCarouselContainer = styled('div')<{ isMobile?: boolean }>`\n display: flex;\n flex-direction: ${({ isMobile }) => (isMobile ? 'column' : 'row')};\n align-items: ${({ isMobile }) => (isMobile ? 'stretch' : 'flex-start')};\n width: 100%;\n max-width: 1920px;\n min-height: ${({ isMobile }) => (isMobile ? 'auto' : '500px')};\n margin: 0 auto;\n box-sizing: border-box;\n overflow: visible;\n background: #fff;\n padding: ${({ isMobile }) => (isMobile ? '10px 16px 0px 16px' : '50px 60px 0px 60px')};\n\n @media (max-width: 768px) {\n padding: 10px 16px 0px 16px;\n min-height: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n padding: 30px 40px 0px 40px;\n gap: 20px;\n }\n\n transform: translateZ(0);\n will-change: auto;\n`;\n\nexport const TabsContainer = styled('div')<{ isMobile?: boolean }>`\n min-width: ${({ isMobile }) => (isMobile ? '100%' : 'auto')};\n height: ${({ isMobile }) => (isMobile ? 'auto' : '100%')};\n flex-shrink: 0;\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n\n overflow-x: auto;\n overflow-y: visible;\n -webkit-overflow-scrolling: touch;\n scrollbar-width: none;\n -ms-overflow-style: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-width: 200px;\n margin-right: 20px;\n }\n`;\n\nexport const ContentContainer = styled('div')<{ isMobile?: boolean }>`\n flex: 1;\n min-width: 0;\n height: ${({ isMobile }) => (isMobile ? 'auto' : '100%')};\n\n @media (max-width: 768px) {\n width: 100%;\n height: auto;\n min-height: 300px;\n\n -webkit-overflow-scrolling: touch;\n overflow-x: hidden;\n overflow-y: auto;\n }\n\n @media (min-width: 769px) and (max-width: 1024px) {\n min-height: 400px;\n }\n\n contain: layout style paint;\n transform: translateZ(0);\n`;\n\nexport const LoadingContainer = styled('div')`\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 200px;\n padding: 20px;\n\n @media (max-width: 768px) {\n min-height: 150px;\n padding: 16px;\n }\n`;\n\nexport const NoTabsContainer = styled('div')`\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 40px 20px;\n color: #666;\n font-size: 16px;\n\n @media (max-width: 768px) {\n padding: 20px 16px;\n font-size: 14px;\n }\n`;\nexport const SpinnerContainer = styled('div')`\n padding: 10px;\n display: flex;\n justify-content: center;\n`;\n","import React, { ReactElement, useState, useEffect, useMemo } from 'react';\nimport { Typography, Box, useMediaQuery, styled, Tooltip } from '@mui/material';\nimport { NsLink, NsImage } from '@nuskin/foundation-ui-components';\nimport {\n MysiteHeroContainer,\n MysiteHeroContainerMobile,\n BadgeContainer,\n Badge,\n ToggleButtonMobile,\n} from '@/common/headers/MysiteHero.styled';\nimport { PlaceholderImage } from '../icon/icons/PlaceholderImage';\nimport { ArrowDownIcon } from '../icon/icons/ArrowDownIcon';\n\nconst StyledSpan = styled(Box)({\n background: 'none',\n border: '2px solid transparent',\n cursor: 'pointer',\n padding: '2px',\n display: 'flex',\n alignItems: 'center',\n borderRadius: '8px',\n transition: 'all 0.3s ease',\n '&:hover': {\n transform: 'scale(1.1)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.15)',\n },\n '&:focus, &:focus-within': {\n outline: 'none',\n borderColor: '#007bff',\n boxShadow: '0 0 0 2px rgba(0, 123, 255, 0.25)',\n },\n '&:hover svg': {\n fill: '#ffffff !important',\n },\n});\n\ntype MysiteHeroProps = {\n readonly imageDetails?: {\n imageSrc: string;\n imageAlt: string;\n bgColor: string;\n };\n readonly shopTitle: string;\n readonly shopDescription: string;\n readonly socialTitleText: string;\n readonly email: string;\n readonly className?: string;\n readonly bannerProps?: {\n backgroundColor?: string;\n headlineFont?: string;\n paragraphFont?: string;\n };\n readonly socialIcons?: {\n type: string;\n url: string;\n }[];\n readonly expirationDate?: string;\n readonly showBadges?: boolean;\n};\n\ntype ImageDetails = {\n imageSrc: string;\n imageAlt: string;\n bgColor: string;\n};\n\ntype BannerProps = {\n backgroundColor?: string;\n headlineFont?: string;\n paragraphFont?: string;\n};\n\ntype ContentProps = {\n shopTitle: string;\n shopDescription: string;\n socialTitleText: string;\n email: string;\n showBadges: boolean;\n expirationDate?: string;\n};\n\nconst renderImageContent = (imageDetails: ImageDetails | undefined, bannerProps: BannerProps, className: string) => {\n const placeholderClass = className.includes('mobile') ? 'placeholder-image-mobile' : 'placeholder-image';\n return imageDetails?.imageSrc ? (\n <NsImage className={className} src={imageDetails.imageSrc} alt={imageDetails.imageAlt} />\n ) : (\n <Box className={placeholderClass}>\n <PlaceholderImage\n width={className.includes('mobile') ? '144px' : '246px'}\n height={className.includes('mobile') ? '144px' : '246px'}\n backgroundColor={bannerProps?.backgroundColor ?? '#5F5F5F'}\n />\n </Box>\n );\n};\n\nconst renderBadges = (showBadges: boolean, expirationDate: string, isMobile: boolean) => {\n if (!showBadges || !expirationDate) return null;\n\n const badgeClass = isMobile ? 'mobile-badge' : 'tablet-badge';\n const containerClass = isMobile ? 'mobile-badges' : 'tablet-badges';\n\n return (\n <BadgeContainer className={containerClass}>\n {expirationDate && (\n <Badge className={badgeClass}>\n <span className=\"badge-value\">{expirationDate}</span>\n </Badge>\n )}\n </BadgeContainer>\n );\n};\n\nconst renderMobileContent = (\n props: ContentProps,\n isScrolled: boolean,\n renderSocialMediaIcons: React.ReactNode,\n isMobile: boolean,\n) => {\n const { shopTitle, socialTitleText, email, showBadges, expirationDate } = props;\n\n return (\n <Box className=\"content-mobile\">\n <Typography tabIndex={0} className=\"body-title-mobile\">\n {shopTitle}\n </Typography>\n {!isScrolled && (\n <>\n <Typography tabIndex={0} className=\"social-title-text-mobile\">\n {socialTitleText}\n </Typography>\n <Typography tabIndex={0} className=\"email-text-mobile\">\n {email}\n </Typography>\n <Box className=\"social-icons-mobile\">{renderSocialMediaIcons}</Box>\n {renderBadges(showBadges, expirationDate ?? '', isMobile)}\n </>\n )}\n </Box>\n );\n};\n\nconst renderDesktopContent = (\n props: ContentProps,\n isScrolled: boolean,\n renderSocialMediaIcons: React.ReactNode,\n isMobile: boolean,\n) => {\n const { shopTitle, shopDescription, socialTitleText, email, showBadges, expirationDate } = props;\n\n return (\n <Box className=\"content\">\n <Typography tabIndex={0} className=\"body-title\">\n {shopTitle}\n </Typography>\n {!isScrolled && (\n <>\n {shopDescription?.length > 480 ? (\n <Tooltip title={shopDescription} arrow>\n <Typography tabIndex={0} className=\"body-text\">\n {shopDescription}\n </Typography>\n </Tooltip>\n ) : (\n <Typography tabIndex={0} className=\"body-text\">\n {shopDescription}\n </Typography>\n )}\n <Box className=\"social-media\">\n <Typography tabIndex={0} className=\"social-title-text\">\n {socialTitleText}\n </Typography>\n <Box className=\"social-icons\">\n {renderSocialMediaIcons}\n <Typography className=\"email-text\">\n <a\n href={`mailto:${email}`}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n globalThis.location.href = `mailto:${email}`;\n }\n }}\n >\n {email}\n </a>\n </Typography>\n </Box>\n </Box>\n {renderBadges(showBadges, expirationDate ?? '', isMobile)}\n </>\n )}\n </Box>\n );\n};\n\nconst checkIfImageIsCircular = (url: string): Promise<boolean> => {\n return new Promise((resolve, reject) => {\n const imageContext = new Image();\n imageContext.crossOrigin = 'anonymous';\n imageContext.src = url;\n\n imageContext.onload = () => {\n const canvas = document.createElement('canvas');\n const context = canvas.getContext('2d');\n if (!context) return reject(new Error('Canvas not supported'));\n\n canvas.width = imageContext.width;\n canvas.height = imageContext.height;\n\n context.drawImage(imageContext, 0, 0);\n\n const corners = [\n context.getImageData(0, 0, 1, 1).data,\n context.getImageData(imageContext.width - 1, 0, 1, 1).data,\n context.getImageData(0, imageContext.height - 1, 1, 1).data,\n context.getImageData(imageContext.width - 1, imageContext.height - 1, 1, 1).data,\n ];\n\n const isCircular = corners.every((corner) => {\n const imageArray = Array.prototype.slice.call(corner);\n const alpha = imageArray[3];\n return alpha < 10;\n });\n resolve(isCircular);\n };\n imageContext.onerror = () => reject(new Error('Failed to load image'));\n });\n};\n\nconst isWhiteOrNearWhite = (color: string | undefined): boolean => {\n if (!color) return false;\n\n const hex = color.replace('#', '').toLowerCase();\n\n /* regex pattern for hex color format: 3 chars (#fff), 4 chars (#ffff), 6 chars (#ffffff), or 8 chars (#ffffffff)*/\n if (!/^[0-9a-f]{3,4}$|^[0-9a-f]{6}$|^[0-9a-f]{8}$/i.test(hex)) return false;\n\n let fullHex = hex;\n if (hex.length === 3 || hex.length === 4) {\n fullHex = hex\n .split('')\n .map((char) => char + char)\n .join('');\n }\n\n const r = Number.parseInt(fullHex.substring(0, 2), 16);\n const g = Number.parseInt(fullHex.substring(2, 4), 16);\n const b = Number.parseInt(fullHex.substring(4, 6), 16);\n\n const threshold = 220;\n return r >= threshold && g >= threshold && b >= threshold;\n};\nexport default function MysiteHero({\n className,\n shopTitle,\n shopDescription,\n socialTitleText,\n imageDetails,\n email,\n bannerProps,\n socialIcons,\n expirationDate,\n showBadges = false,\n}: MysiteHeroProps): ReactElement {\n const isMobile = useMediaQuery('(max-width: 560px)');\n const [isScrolled, setIsScrolled] = useState(false);\n const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false);\n const [hasWhiteBackground, setHasWhiteBackground] = useState(false);\n const [isImageCircular, setIsImageCircular] = useState(false);\n\n const toggleDescription = () => {\n setIsDescriptionExpanded(!isDescriptionExpanded);\n };\n\n useEffect(() => {\n const checkImage = async () => {\n if (imageDetails?.imageSrc) {\n const isCircular = await checkIfImageIsCircular(imageDetails.imageSrc);\n setIsImageCircular(isCircular);\n } else {\n setIsImageCircular(false);\n }\n };\n\n checkImage();\n }, [imageDetails?.imageSrc]);\n\n useEffect(() => {\n setHasWhiteBackground(isWhiteOrNearWhite(bannerProps?.backgroundColor));\n }, [bannerProps?.backgroundColor]);\n\n useEffect(() => {\n let debounceTimeout: ReturnType<typeof setTimeout>;\n let lastScrollY = window.scrollY;\n let currentScrollState = false;\n let lastExternalHeaderState = '';\n\n const getExternalHeaderContainer = (): HTMLElement | null => document.querySelector('.nu-header-container');\n\n const getMysiteHeroPosition = () => {\n const container = getExternalHeaderContainer();\n if (!container) return { top: 35, isCompact: false };\n\n const isCompact = container.classList.contains('compact') || container.classList.contains('compact-view');\n const isFullView = container.classList.contains('full-view');\n\n if (isCompact) return { top: 85, isCompact: true };\n if (isFullView) return { top: 110, isCompact: false };\n\n return { top: 35, isCompact: false };\n };\n\n const getExternalHeaderState = () => {\n const container = getExternalHeaderContainer();\n if (!container) return 'none';\n\n if (container.classList.contains('compact') || container.classList.contains('compact-view')) {\n return 'compact';\n }\n if (container.classList.contains('full-view')) {\n return 'full-view';\n }\n return 'default';\n };\n\n const updateScrollState = (newState: boolean) => {\n if (currentScrollState !== newState) {\n currentScrollState = newState;\n\n if (newState) {\n setIsDescriptionExpanded(false);\n }\n\n clearTimeout(debounceTimeout);\n\n const debounceDelay = newState ? 100 : 50;\n debounceTimeout = setTimeout(() => {\n setIsScrolled(newState);\n }, debounceDelay);\n }\n };\n\n const handleScroll = () => {\n const currentScrollY = window.scrollY;\n const scrollDelta = Math.abs(currentScrollY - lastScrollY);\n\n const minScrollDelta = currentScrollY < 100 ? 1 : 3;\n if (scrollDelta < minScrollDelta) {\n lastScrollY = currentScrollY;\n return;\n }\n\n const scrollingDown = currentScrollY > lastScrollY;\n const scrollingUp = currentScrollY < lastScrollY;\n\n const externalHeaderState = getExternalHeaderState();\n const { top: mysiteHeroTop, isCompact: externalIsCompact } = getMysiteHeroPosition();\n\n const externalHeaderChanged = lastExternalHeaderState !== externalHeaderState;\n\n if (externalHeaderChanged) {\n lastExternalHeaderState = externalHeaderState;\n\n if (externalIsCompact && !currentScrollState) {\n updateScrollState(true);\n } else if (!externalIsCompact && currentScrollState && currentScrollY < 80) {\n updateScrollState(false);\n }\n\n lastScrollY = currentScrollY;\n return;\n }\n\n const baseScrollDownThreshold = isMobile ? 120 : 150;\n const baseScrollUpThreshold = isMobile ? 50 : 80;\n\n const scrollDownThreshold = baseScrollDownThreshold + mysiteHeroTop;\n const scrollUpThreshold = baseScrollUpThreshold;\n\n if (scrollingDown && currentScrollY > scrollDownThreshold && !currentScrollState) {\n updateScrollState(true);\n } else if (scrollingUp && currentScrollY < scrollUpThreshold && currentScrollState) {\n updateScrollState(false);\n }\n\n lastScrollY = currentScrollY;\n };\n\n const initializeState = () => {\n const initialScrollY = window.scrollY;\n const { top: mysiteHeroTop } = getMysiteHeroPosition();\n const externalHeaderState = getExternalHeaderState();\n\n lastExternalHeaderState = externalHeaderState;\n\n const scrollThreshold = (isMobile ? 120 : 150) + mysiteHeroTop;\n const shouldStartCompact = initialScrollY > scrollThreshold;\n\n currentScrollState = shouldStartCompact;\n setIsScrolled(shouldStartCompact);\n lastScrollY = initialScrollY;\n };\n\n let ticking = false;\n const throttledScrollHandler = () => {\n if (!ticking) {\n requestAnimationFrame(() => {\n handleScroll();\n ticking = false;\n });\n ticking = true;\n }\n };\n\n initializeState();\n window.addEventListener('scroll', throttledScrollHandler, { passive: true });\n\n return () => {\n window.removeEventListener('scroll', throttledScrollHandler);\n clearTimeout(debounceTimeout);\n };\n }, [isMobile]);\n\n const renderSocialMediaIcons = useMemo(() => {\n return socialIcons?.map((icon, index) => {\n return (\n <StyledSpan key={icon?.type + index}>\n <NsLink href={icon.url} target=\"_blank\">\n <NsImage\n key={icon?.type + index}\n src={`https://www.google.com/s2/favicons?domain=${icon?.url}&sz=24`}\n alt={`${icon.type} icon`}\n width=\"24\"\n height=\"24\"\n />\n </NsLink>\n </StyledSpan>\n );\n });\n }, [socialIcons]);\n\n const containerClass = `${className} ${isScrolled ? 'scrolled' : ''}`;\n const props = { shopTitle, shopDescription, socialTitleText, email, showBadges, expirationDate };\n\n const getCharacterLimit = () => {\n if (window.innerWidth <= 380) return 50;\n if (window.innerWidth <= 415) return 56;\n if (window.innerWidth <= 460) return 62;\n return 80;\n };\n\n const shouldShowToggle = isMobile && shopDescription && shopDescription.length > getCharacterLimit();\n\n return isMobile ? (\n <MysiteHeroContainerMobile\n className={containerClass}\n data-testid=\"my-site-shop-header\"\n bannerProps={bannerProps}\n isCircularImage={isImageCircular}\n hasWhiteBackground={hasWhiteBackground}\n >\n <Box className=\"image-content-mobile\">\n {renderImageContent(imageDetails, bannerProps ?? {}, 'bg-image-mobile')}\n {renderMobileContent(props, isScrolled, renderSocialMediaIcons, isMobile)}\n </Box>\n {!isScrolled && (\n <Box className=\"expandable-description-mobile\">\n <Typography\n className={`description-content-mobile ${isDescriptionExpanded || !shouldShowToggle ? 'expanded' : 'collapsed'}`}\n >\n {shopDescription}\n </Typography>\n {shouldShowToggle && (\n <ToggleButtonMobile onClick={toggleDescription}>\n <ArrowDownIcon\n width={16}\n height={16}\n className={`arrow-icon-mobile ${isDescriptionExpanded ? 'expanded' : ''}`}\n />\n </ToggleButtonMobile>\n )}\n </Box>\n )}\n </MysiteHeroContainerMobile>\n ) : (\n <MysiteHeroContainer\n className={containerClass}\n data-testid=\"my-site-shop-header\"\n bannerProps={bannerProps}\n isCircularImage={isImageCircular}\n hasWhiteBackground={hasWhiteBackground}\n >\n {renderImageContent(imageDetails, bannerProps ?? {}, 'bg-image')}\n {renderDesktopContent(props, isScrolled, renderSocialMediaIcons, isMobile)}\n </MysiteHeroContainer>\n );\n}\n","import React from 'react';\nimport { styled } from '@nuskin/foundation-theme';\nimport { Box, BoxProps } from '@mui/material';\n\ninterface StyledBoxProps extends BoxProps {\n bannerProps?: {\n backgroundColor?: string;\n headlineFont?: string;\n paragraphFont?: string;\n };\n isCircularImage?: boolean;\n hasWhiteBackground?: boolean;\n}\n\nexport const MysiteHeroContainer = styled((props: StyledBoxProps) => <Box {...props} />)(\n ({ bannerProps, isCircularImage, hasWhiteBackground }) => ({\n backgroundClip: 'border-box',\n display: 'flex',\n background: bannerProps?.backgroundColor ?? '#383838',\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n height: 'auto',\n flexDirection: 'row',\n alignItems: 'center',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'transform, opacity',\n transform: 'translateZ(0)',\n backfaceVisibility: 'hidden',\n '&.scrolled': {\n top: 0,\n left: 0,\n right: 0,\n boxShadow: '0 2px 8px rgba(0,0,0,0.2)',\n '.content': {\n paddingTop: '0',\n justifyContent: 'center',\n },\n '.body-title': {\n fontSize: '26px',\n lineHeight: '34px',\n marginBottom: '0',\n fontStyle: 'normal',\n fontWeight: '400',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n },\n\n '.bg-image': {\n width: '90px !important',\n height: '90px !important',\n padding: isCircularImage ? '2px' : '0px',\n },\n '.placeholder-image': {\n '& > div': {\n width: '90px !important',\n height: '90px !important',\n },\n },\n },\n '.content': {\n width: '70%',\n height: '100%',\n marginLeft: '2%',\n marginRight: 'auto',\n paddingTop: '32px',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n boxSizing: 'border-box',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n },\n '.bg-image': {\n width: '252px',\n height: '252px',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n padding: isCircularImage ? '3px' : '0px',\n },\n '.placeholder-image': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n '& > div': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n },\n },\n '.body-title': {\n fontSize: '32px',\n lineHeight: '38px',\n marginBottom: '15px',\n fontWeight: '400',\n color: hasWhiteBackground ? '#000000' : '#FFFFFF',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n paddingLeft: '5px',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n },\n '.body-text': {\n fontSize: '16px',\n marginBottom: '15px',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: '22px',\n color: hasWhiteBackground ? '#000000' : '#FFFFFF',\n fontFamily: bannerProps?.paragraphFont ?? 'inherit',\n display: '-webkit-box',\n WebkitBoxOrient: 'vertical',\n overflow: 'hidden',\n WebkitLineClamp: 3,\n textOverflow: 'ellipsis',\n paddingLeft: '5px',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n },\n '.social-media': {\n display: 'flex',\n flexDirection: 'column',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n },\n '.email-text': {\n fontSize: '12px',\n fontStyle: 'normal',\n fontWeight: '600',\n lineHeight: '16px',\n letterSpacing: '0.12px',\n color: hasWhiteBackground ? '#000000' : '#FFFFFF',\n '& a': {\n color: 'inherit',\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline',\n },\n },\n },\n '.social-title-text': {\n fontSize: '12px',\n marginBottom: '16px',\n fontStyle: 'normal',\n fontWeight: '700',\n lineHeight: '16px',\n letterSpacing: '0.48px',\n color: hasWhiteBackground ? '#000000' : '#FFFFFF',\n textTransform: 'uppercase',\n paddingLeft: '5px',\n },\n '.social-icons': {\n display: 'flex',\n flexDirection: 'row',\n gap: '10px',\n paddingBottom: '15px',\n alignItems: 'center',\n },\n }),\n);\n\nexport const MysiteHeroContainerMobile = styled((props: StyledBoxProps) => <Box {...props} />)(\n ({ bannerProps, isCircularImage, hasWhiteBackground }) => ({\n backgroundClip: 'border-box',\n display: 'flex',\n background: bannerProps?.backgroundColor ?? '#383838',\n position: 'relative',\n overflow: 'hidden',\n width: '100%',\n flexDirection: 'column',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'transform, opacity',\n transform: 'translateZ(0)',\n backfaceVisibility: 'hidden',\n '&.scrolled': {\n top: 0,\n left: 0,\n right: 0,\n boxShadow: '0 2px 8px rgba(0,0,0,0.2)',\n '.content-mobile': {\n paddingTop: '5px',\n width: '60%',\n },\n '.body-title-mobile': {\n fontSize: '18px',\n lineHeight: '28px',\n marginBottom: '0',\n fontStyle: 'normal',\n fontWeight: '400',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n },\n '.bg-image-mobile': {\n width: '75px !important',\n height: '75px !important',\n padding: isCircularImage ? '2px' : '0px',\n },\n '.placeholder-image-mobile': {\n '& > div': {\n width: '75px !important',\n height: '75px !important',\n },\n },\n },\n '.image-content-mobile': {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'center',\n alignItems: 'center',\n },\n '.content-mobile': {\n width: '55%',\n height: '100%',\n paddingTop: '10px',\n paddingRight: '10px',\n marginLeft: '8px',\n marginRight: 'auto',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n position: 'relative',\n boxSizing: 'border-box',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n '@media (max-width: 420px)': {\n paddingTop: '8px',\n width: '100%',\n },\n '@media (max-width: 400px)': {\n paddingTop: '6px',\n width: '100%',\n height: '100%',\n },\n '@media (max-width: 375px)': {\n paddingTop: '4px',\n width: '100%',\n height: '100%',\n },\n },\n '.bg-image-mobile': {\n width: '144px',\n height: '144px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n objectFit: 'cover',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n padding: isCircularImage ? '2px' : '0px',\n '@media (max-width: 420px)': {\n width: '120px',\n height: '120px',\n },\n '@media (max-width: 400px)': {\n width: '112px',\n height: '112px',\n },\n '@media (max-width: 375px)': {\n width: '90px',\n height: '90px',\n },\n },\n '.placeholder-image-mobile': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n willChange: 'width, height, transform',\n '& > div': {\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n width: '144px !important',\n height: '144px !important',\n '@media (max-width: 420px)': {\n width: '120px !important',\n height: '120px !important',\n },\n '@media (max-width: 400px)': {\n width: '110px !important',\n height: '110px !important',\n },\n '@media (max-width: 375px)': {\n width: '90px !important',\n height: '90px !important',\n },\n },\n },\n '.body-title-mobile': {\n fontSize: '22px',\n lineHeight: '28px',\n marginBottom: '13px',\n fontWeight: '400',\n color: hasWhiteBackground ? '#000000' : '#FFFFFF',\n fontStyle: 'normal',\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n fontFamily: bannerProps?.headlineFont ?? 'Lora',\n paddingLeft: '5px',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n '@media (max-width: 420px)': {\n fontSize: '16px',\n lineHeight: '24px',\n marginBottom: '8px',\n },\n '@media (max-width: 400px)': {\n fontSize: '16px',\n lineHeight: '22px',\n marginBottom: '6px',\n },\n '@media (max-width: 375px)': {\n fontSize: '14px',\n lineHeight: '20px',\n marginBottom: '4px',\n },\n },\n '.body-text-mobile': {\n fontSize: '14px',\n padding: '20px 25px 20px 25px',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: '20px',\n color: '#252525',\n backgroundColor: '#E0E0E0',\n fontFamily: bannerProps?.paragraphFont ?? 'inherit',\n transition: 'all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1)',\n opacity: 1,\n transform: 'translateY(0)',\n },\n '.expandable-description-mobile': {\n backgroundColor: '#E0E0E0',\n position: 'relative',\n },\n '.description-content-mobile': {\n fontSize: '14px',\n padding: '10px 15px',\n fontStyle: 'normal',\n fontWeight: '400',\n lineHeight: '20px',\n color: '#252525',\n fontFamily: bannerProps?.paragraphFont ?? 'inherit',\n transition: 'max-height 0.3s ease-in-out, opacity 0.3s ease-in-out',\n overflow: 'hidden',\n position: 'relative',\n '&.collapsed': {\n maxHeight: '50px',\n display: '-webkit-box',\n WebkitLineClamp: 2,\n WebkitBoxOrient: 'vertical',\n '&::after': {\n content: '\"\"',\n position: 'absolute',\n bottom: 0,\n left: 0,\n right: 0,\n height: '20px',\n background: 'linear-gradient(transparent, rgba(224, 224, 224, 0.8), #E0E0E0)',\n pointerEvents: 'none',\n },\n },\n '&.expanded': {\n maxHeight: 'none',\n whiteSpace: 'normal',\n display: 'block',\n '&::after': {\n display: 'none',\n },\n },\n },\n '.email-text-mobile': {\n fontSize: '12px',\n paddingBottom: '11px',\n fontStyle: 'normal',\n fontWeight: '600',\n lineHeight: '16px',\n letterSpacing: '0.12px',\n color: hasWhiteBackground ? '#000000' : '#FFFFFF',\n wordBreak: 'break-all',\n overflowWrap: 'break-word',\n paddingLeft: '5px',\n '@media (max-width: 420px)': {\n fontSize: '11px',\n lineHeight: '15px',\n paddingBottom: '8px',\n },\n '@media (max-width: 400px)': {\n fontSize: '10px',\n lineHeight: '14px',\n paddingBottom: '6px',\n },\n '@media (max-width: 375px)': {\n fontSize: '8px',\n lineHeight: '12px',\n paddingBottom: '4px',\n },\n },\n '.social-title-text-mobile': {\n fontSize: '12px',\n marginBottom: '11px',\n fontStyle: 'normal',\n fontWeight: '700',\n lineHeight: '16px',\n letterSpacing: '0.48px',\n color: hasWhiteBackground ? '#000000' : '#FFFFFF',\n textTransform: 'uppercase',\n paddingLeft: '5px',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n '@media (max-width: 420px)': {\n fontSize: '11px',\n lineHeight: '14px',\n marginBottom: '8px',\n },\n '@media (max-width: 400px)': {\n fontSize: '10px',\n lineHeight: '12px',\n marginBottom: '5px',\n },\n '@media (max-width: 375px)': {\n fontSize: '8px',\n lineHeight: '11px',\n marginBottom: '4px',\n },\n },\n '.social-icons-mobile': {\n display: 'flex',\n flexDirection: 'row',\n gap: '10px',\n paddingBottom: '10px',\n alignItems: 'center',\n transition: 'opacity 0.3s ease-out, transform 0.3s ease-out',\n opacity: 1,\n transform: 'translateY(0)',\n '& img': {\n width: '24px',\n height: '24px',\n '@media (max-width: 400px)': {\n width: '20px',\n height: '20px',\n },\n '@media (max-width: 375px)': {\n width: '18px',\n height: '18px',\n },\n },\n '@media (max-width: 420px)': {\n paddingBottom: '8px',\n },\n '@media (max-width: 400px)': {\n paddingBottom: '4px',\n },\n '@media (max-width: 375px)': {\n paddingBottom: '3px',\n },\n },\n }),\n);\n\nexport const BadgeContainer = styled(Box)({\n display: 'flex',\n gap: '12px',\n marginBottom: '16px',\n paddingLeft: '5px',\n\n '&.mobile-badges': {\n flexDirection: 'column',\n gap: '8px',\n marginBottom: '12px',\n },\n\n '&.tablet-badges': {\n flexDirection: 'row',\n gap: '12px',\n marginBottom: '16px',\n },\n});\n\nexport const Badge = styled(Box)({\n backgroundColor: 'rgba(255, 255, 255, 0.2)',\n backdropFilter: 'blur(10px)',\n borderRadius: '20px',\n padding: '8px 16px',\n display: 'flex',\n alignItems: 'center',\n gap: '4px',\n border: '1px solid rgba(255, 255, 255, 0.3)',\n transition: 'all 0.3s ease',\n\n '&.mobile-badge': {\n padding: '6px 12px',\n borderRadius: '16px',\n fontSize: '12px',\n },\n\n '&.tablet-badge': {\n padding: '8px 16px',\n borderRadius: '20px',\n fontSize: '14px',\n },\n\n '&:hover': {\n backgroundColor: 'rgba(255, 255, 255, 0.3)',\n transform: 'translateY(-1px)',\n boxShadow: '0 4px 12px rgba(0, 0, 0, 0.1)',\n },\n\n '.badge-text': {\n color: '#FFFFFF',\n fontWeight: '400',\n opacity: 0.9,\n },\n\n '.badge-value': {\n color: '#FFFFFF',\n fontWeight: '600',\n },\n});\nexport const ToggleButtonMobile = styled('button')({\n backgroundColor: '#E0E0E0',\n border: '1px solid #252525',\n borderRadius: '10px',\n cursor: 'pointer',\n width: '40px',\n height: '20px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n margin: '10px auto 5px auto',\n transition: 'all 0.2s ease',\n '& .arrow-icon-mobile': {\n transition: 'transform 0.3s ease',\n '&.expanded': {\n transform: 'rotate(180deg)',\n },\n },\n});\n","import React from 'react';\nimport { Box } from '@mui/material';\n\ntype PlaceholderImageProps = {\n readonly width: string | number;\n readonly height: string | number;\n readonly backgroundColor: string;\n};\n\nexport const PlaceholderImage: React.FC<PlaceholderImageProps> = ({ width, height, backgroundColor }) => {\n return (\n <Box\n sx={{\n width,\n height,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor,\n }}\n data-testid=\"placeholder-image\"\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"128\" height=\"129\" viewBox=\"0 0 128 129\" fill=\"none\">\n <g id=\"ns_logomark\">\n <path\n id=\"Vector\"\n d=\"M127.495 52.1946C125.663 47.9538 122.999 44.1171 119.661 40.9073C112.565 34.2835 102.562 31.7037 93.1175 34.0622C83.6733 36.4206 76.0882 43.3926 72.991 52.5619C71.4142 56.8414 70.6063 61.3627 70.6039 65.9196C70.6039 85.8227 70.6039 105.737 70.6039 125.662C70.6039 129.001 70.6039 129.001 66.9051 128.834C66.9051 128.2 66.9051 127.499 66.9051 126.831C66.9051 104.323 66.9051 81.8263 66.9051 59.3409C66.3415 45.3064 74.9302 32.5039 88.1888 27.6164C89.79 27.0612 91.4307 26.6259 93.0981 26.314C94.7114 25.98 96.4605 25.8465 98.0738 25.6461C96.0231 16.3291 78.9419 5.60953 65.0889 4.97504C50.3084 4.62252 36.6074 12.6365 29.7509 25.6461C31.331 25.8465 32.8779 25.9466 34.3569 26.2138C48.0999 28.544 58.7086 39.4998 60.5168 53.2298C60.8904 55.7285 61.0812 58.2508 61.0877 60.7769C61.0877 82.7507 61.0877 104.724 61.0877 126.697C61.0877 128.434 60.6842 129.169 58.8016 128.968C56.9183 128.768 57.1204 128.2 57.1204 126.965C57.1204 119.985 57.1204 113.006 57.1204 105.993C57.1204 92.1674 57.1204 78.3423 57.1204 64.5171C57.2385 56.3928 54.2457 48.5271 48.7477 42.5103C42.2429 35.5282 32.6539 32.2371 23.1959 33.7401C13.7379 35.243 5.66194 41.3411 1.67448 49.9906C1.23781 50.8254 0.867444 51.6937 0.262573 52.9293C5.79294 22.3996 32.4752 0.139867 63.7085 0.000656323C94.9411 -0.138555 121.824 21.8824 127.629 52.3616\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_2\"\n d=\"M86.0995 124.927C86.0995 124.293 86.0995 123.858 86.0995 123.425C86.0995 111.669 86.0995 100.049 86.0995 88.1269C85.8836 82.4231 88.0775 76.89 92.1523 72.8653C97.3131 67.9567 104.984 66.7091 111.452 69.7263C117.892 72.1185 122.166 78.225 122.178 85.0541C122.372 92.1747 119.781 99.0921 114.949 104.356C107.882 113.237 98.6134 120.141 88.05 124.392C87.4217 124.616 86.782 124.805 86.1335 124.96\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_3\"\n d=\"M41.8183 125.395C37.6149 123.224 33.6477 121.487 29.9828 119.25C21.5405 114.299 14.4778 107.331 9.43828 98.9796C6.53442 94.3985 5.34408 88.9493 6.07591 83.5852C7.056 75.2882 13.8859 68.8841 22.2829 68.3905C31.1231 67.2473 39.3527 73.0751 41.1455 81.7484C41.76 84.263 42.0762 86.8411 42.0868 89.4287C42.0868 100.516 42.0868 111.636 42.0868 122.823C42.0868 123.457 42.0867 124.059 41.8854 125.294\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_4\"\n d=\"M51.3337 127.431C47.9713 127.431 47.6681 127.198 47.6681 124.326V76.6386C48.1096 67.937 42.9747 59.906 34.8574 56.602C25.8992 52.8557 15.5485 54.8615 8.66523 61.6779C4.28638 66.6086 1.89197 72.9696 1.94049 79.5438C1.95423 80.2444 1.78037 80.9357 1.43588 81.5476C1.06552 79.9446 0.62885 78.2081 0.426687 76.7387C-0.724024 70.4463 0.471163 63.9529 3.78906 58.472C6.09291 54.6111 9.65016 51.6434 13.8762 50.0567C22.8587 46.555 32.9393 47.1785 41.4148 51.7598C47.6592 54.8694 51.5262 61.2882 51.3337 68.2232C51.5019 87.6249 51.3337 107.027 51.3337 126.396C51.3337 126.797 51.3337 127.164 51.3337 127.532\"\n fill=\"#252525\"\n />\n <path\n id=\"Vector_5\"\n d=\"M76.287 127.499V125.094C76.287 107.196 76.4883 89.2963 76.287 71.3966C76.0848 56.9034 84.2554 50.6588 95.7553 48.3545C101.535 47.2005 107.524 47.6393 113.071 49.6235C122.914 53.3319 128.994 63.1725 127.866 73.5672C127.631 76.2831 127.17 78.975 126.487 81.6151C125.916 78.2758 125.68 74.9364 124.772 71.597C122.808 64.3002 117.377 58.4174 110.228 55.8421C103.078 53.2668 95.1132 54.3239 88.8955 58.6734C83.0441 62.6207 79.7011 69.3237 80.086 76.3389C80.086 92.2349 80.086 108.131 80.086 124.026C80.086 127.366 80.086 127.366 76.2198 127.366\"\n fill=\"#252525\"\n />\n </g>\n </svg>\n </Box>\n );\n};\n","import React from 'react';\n\ntype ArrowDownIconProps = {\n readonly width?: string | number;\n readonly height?: string | number;\n readonly className?: string;\n};\n\nexport const ArrowDownIcon: React.FC<ArrowDownIconProps> = ({ width = 16, height = 16, className = '' }) => {\n return (\n <svg\n width={width}\n height={height}\n viewBox=\"0 0 24 24\"\n fill=\"currentColor\"\n className={className}\n data-testid=\"arrow-down-icon\"\n >\n <path d=\"M7.41 8.59L12 13.17l4.59-4.58L18 10l-6 6-6-6 1.41-1.41z\" />\n </svg>\n );\n};\n"]}
|