1/* 2@license 3 Concept by RoarTheme (https://roartheme.co) 4 Access unminified JS in assets/theme.js 5 6 Use this event listener to run your own JS outside of this file. 7 Documentation - https://roartheme.co/blogs/concept/javascript-events-for-developers 8 9 document.addEventListener('page:loaded', function() { 10 // Page has loaded and theme assets are ready 11 }); 12*/window.theme=window.theme||{},window.Shopify=window.Shopify||{},theme.config={hasSessionStorage:!0,hasLocalStorage:!0,mqlSmall:!1,mediaQuerySmall:"screen and (max-width: 767px)",motionReduced:window.matchMedia("(prefers-reduced-motion: reduce)").matches,isTouch:"ontouchstart"in window||navigator.MaxTouchPoints>0||navigator.msMaxTouchPoints>0,rtl:document.documentElement.getAttribute("dir")==="rtl"},theme.supportsPassive=!1;try{const opts=Object.defineProperty({},"passive",{get:function(){theme.supportsPassive=!0}});window.addEventListener("testPassive",null,opts),window.removeEventListener("testPassive",null,opts)}catch{}document.documentElement.classList.add(theme.config.isTouch?"touch":"no-touch"),console.log(theme.settings.themeName+" theme ("+theme.settings.themeVersion+") by RoarTheme | Learn more at https://roartheme.co"),(function(){theme.DOMready=function(callback){document.readyState!="loading"?callback():document.addEventListener("DOMContentLoaded",callback)},theme.a11y={trapFocusHandlers:{},getFocusableElements:container=>Array.from(container.querySelectorAll('summary, a[href], button:enabled, [tabindex]:not([tabindex^="-"]), [draggable], area, input:not([type=hidden]):enabled, select:enabled, textarea:enabled, object, iframe')),trapFocus:(container,elementToFocus=container)=>{const elements=theme.a11y.getFocusableElements(container),first=elements[0],last=elements[elements.length-1];theme.a11y.removeTrapFocus(),theme.a11y.trapFocusHandlers.focusin=event=>{event.target!==container&&event.target!==last&&event.target!==first||document.addEventListener("keydown",theme.a11y.trapFocusHandlers.keydown)},theme.a11y.trapFocusHandlers.focusout=function(){document.removeEventListener("keydown",theme.a11y.trapFocusHandlers.keydown)},theme.a11y.trapFocusHandlers.keydown=function(event){event.code.toUpperCase()==="TAB"&&(event.target===last&&!event.shiftKey&&(event.preventDefault(),first.focus()),(event.target===container||event.target===first)&&event.shiftKey&&(event.preventDefault(),last.focus()))},document.addEventListener("focusout",theme.a11y.trapFocusHandlers.focusout),document.addEventListener("focusin",theme.a11y.trapFocusHandlers.focusin),elementToFocus.focus(),elementToFocus.tagName==="INPUT"&&["search","text","email","url"].includes(elementToFocus.type)&&elementToFocus.value&&elementToFocus.setSelectionRange(0,elementToFocus.value.length)},removeTrapFocus:(elementToFocus=null)=>{document.removeEventListener("focusin",theme.a11y.trapFocusHandlers.focusin),document.removeEventListener("focusout",theme.a11y.trapFocusHandlers.focusout),document.removeEventListener("keydown",theme.a11y.trapFocusHandlers.keydown),elementToFocus&&typeof elementToFocus.focus=="function"&&elementToFocus.focus()}},theme.utils={throttle:callback=>{let requestId=null,lastArgs;const later=context=>()=>{requestId=null,callback.apply(context,lastArgs)},throttled=(...args)=>{lastArgs=args,requestId===null&&(requestId=requestAnimationFrame(later(this)))};return throttled.cancel=()=>{cancelAnimationFrame(requestId),requestId=null},throttled},debounce:(fn,wait)=>{let timer;return(...args)=>{clearTimeout(timer),timer=setTimeout(()=>fn.apply(this,args),wait)}},waitForEvent:(element,eventName)=>new Promise(resolve=>{const done=event=>{event.target===element&&(element.removeEventListener(eventName,done),resolve(event))};element.addEventListener(eventName,done)}),fetchConfig:(type="json")=>({method:"POST",headers:{"Content-Type":"application/json",Accept:`application/${type}`}}),postLink:(path,options)=>{options=options||{};const method=options.method||"post",params=options.parameters||{},form=document.createElement("form");form.setAttribute("method",method),form.setAttribute("action",path);for(const key in params){const hiddenField=document.createElement("input");hiddenField.setAttribute("type","hidden"),hiddenField.setAttribute("name",key),hiddenField.setAttribute("value",params[key]),form.appendChild(hiddenField)}document.body.appendChild(form),form.submit(),document.body.removeChild(form)},sectionId:element=>element.hasAttribute("data-section-id")?element.dataset.sectionId:(element=element.classList.contains("shopify-section")?element:element.closest(".shopify-section"),element.i
12d.replace("shopify-section-","")),imageLoaded:imageOrArray=>imageOrArray?(imageOrArray=imageOrArray instanceof Element?[imageOrArray]:Array.from(imageOrArray),Promise.all(imageOrArray.map(image=>new Promise(resolve=>{image.tagName==="IMG"&&image.complete||!image.offsetParent?resolve():image.onload=()=>resolve()})))):Promise.resolve(),visibleMedia:media=>Array.from(media).find(item=>window.getComputedStyle(item).display!=="none"),setScrollbarWidth:()=>{const scrollbarWidth=window.innerWidth-document.body.clientWidth;scrollbarWidth>0&&document.documentElement.style.setProperty("--scrollbar-width",`${scrollbarWidth}px`)}},theme.pubsub={PUB_SUB_EVENTS:{cartUpdate:"cartUpdate",quantityUpdate:"quantityUpdate",variantChange:"variantChange",cartError:"cartError",facetUpdate:"facetUpdate"},subscribers:{},subscribe:(eventName,callback)=>(theme.pubsub.subscribers[eventName]===void 0&&(theme.pubsub.subscribers[eventName]=[]),theme.pubsub.subscribers[eventName]=[...theme.pubsub.subscribers[eventName],callback],function(){theme.pubsub.subscribers[eventName]=theme.pubsub.subscribers[eventName].filter(cb=>cb!==callback)}),publish:(eventName,data)=>{theme.pubsub.subscribers[eventName]&&theme.pubsub.subscribers[eventName].forEach(callback=>{callback(data)})}},theme.scrollShadow={Updater:(function(){class Updater{constructor(targetElement){this.cb=()=>this.update(targetElement),this.rO=new ResizeObserver(this.cb),this.mO=new MutationObserver(()=>this.on(this.el))}on(element){this.el&&(this.el.removeEventListener("scroll",this.cb),this.rO.disconnect(),this.mO.disconnect()),element&&(element.nodeName==="TABLE"&&!/scroll|auto/.test(getComputedStyle(element).getPropertyValue("overflow"))&&(this.rO.observe(element),element=element.tBodies[0]),element.addEventListener("scroll",this.cb),[element,...element.children].forEach(el=>this.rO.observe(el)),this.mO.observe(element,{childList:!0}),this.el=element)}update(targetElement){const scrollTop=this.el.scrollTop,scrollBottom=this.el.scrollHeight-this.el.offsetHeight-this.el.scrollTop,scrollLeft=this.el.scrollLeft,scrollRight=this.el.scrollWidth-this.el.offsetWidth-this.el.scrollLeft*(theme.config.rtl?-1:1);let cssText=`--t: ${scrollTop>0?1:0}; --b: ${scrollBottom>0?1:0}; --l: ${scrollLeft>0?1:0}; --r: ${scrollRight>0?1:0};`;if(this.el.nodeName==="TBODY"){const clientRect=this.el.getBoundingClientRect(),rootClientRect=this.el.parentElement.getBoundingClientRect();cssText+=`top: ${clientRect.top-rootClientRect.top}px; bottom: ${rootClientRect.bottom-clientRect.bottom}px; left: ${clientRect.left-rootClientRect.left}px; right: ${rootClientRect.right-clientRect.right}px;`}requestAnimationFrame(()=>{targetElement.style.cssText=cssText})}}return Updater})()},theme.cookiesEnabled=function(){let cookieEnabled=navigator.cookieEnabled;return cookieEnabled||(document.cookie="testcookie",cookieEnabled=document.cookie.indexOf("testcookie")!==-1),cookieEnabled},theme.isStorageSupported=function(type){if(window.self!==window.top)return!1;const testKey="test";let storage;type==="session"&&(storage=window.sessionStorage),type==="local"&&(storage=window.localStorage);try{return storage.setItem(testKey,"1"),storage.removeItem(testKey),!0}catch{return!1}},theme.getElementWidth=function(element,value){const style=window.getComputedStyle(element),text=document.createElement("span");text.style.fontFamily=style.fontFamily,text.style.fontSize=style.fontSize,text.style.fontWeight=style.fontWeight,text.style.visibility="hidden",text.style.position="absolute",text.innerHTML=value,document.body.appendChild(text);const width=text.getBoundingClientRect().width;return text.remove(),width},theme.HoverButton=(function(){class HoverButton2{constructor(container){this.container=container}load(){theme.config.isTouch||document.body.getAttribute("data-button_hover")==="none"||(this.container.addEventListener("mouseenter",this.onEnterHandler.bind(this)),this.container.addEventListener("mouseleave",this.onLeaveHandler.bind(this)))}onEnterHandler(event){const btnFill=event.currentTarget.querySelector("[data-fill]");btnFill&&Motion.animate(btnFill,{y:["76%","0%"]},{duration:.6})}onLeaveHandler(event){const btnFill=event.currentTarget.querySelector("[data-fill]");btnFill&&Motion.animate(btnFill,{y:"-76%"},{duration:.6})}unload(){}}return HoverButton2})(),theme.MagnetButton=(function(){const config={magnet:10};class MagnetButton2{constructor(container){this.container=container,this.magnet=container.dataset.magnet?parseInt(container.dataset.magnet):config.magnet}load(){theme.config.isTouch||document.body.getAttribute("data-button_hover")==="none"||(this.container.addEventListener("mousemove",this.onMoveHandler.bind(this)),this.container.addEventListener("mouseleave",this.onLeaveHandler.bind(this)))}onMoveHandler(event){if(theme.config.motionReduced||this.magnet===0)return;const target=event.currentTarget,btnText=target.querySelector("[data-text]"),bounding=target.getBoundingClientRect();btnText?Motion.animate(btnText,{x:((event.clientX-bounding.left)/target.offsetWidth-.5)*this.magnet,y:((event.clientY-bounding.top)/target.offsetHeight-.5)*this.magnet},{duration:1.5,easing:Motion.spring()}):Motion.animate(target,{x:((event.clientX-bounding.left)/target.offsetWidth-.5)*this.magnet,y:((event.clientY-bounding.top)/target.offsetHeight-.5)*this.magnet},{duration:1.5,easing:Motion.spring()})}onLeaveHandler(event){if(theme.config.motionReduced||this.magnet===0)return;const target=event.currentTarget,btnText=target.querySelector("[data-text]");btnText?Motion.animate(btnText,{x:0,y:0},{duration:1.5,easing:Motion.spring()}):Motion.animate(target,{x:0,y:0},{duration:1.5,easing:Motion.spring()})}unload(){}}return MagnetButton2})(),theme.RevealButton=(function(){const config={magnet:25};class RevealButton{constructor(container){this.container=container,this.magnet=container.dataset.magnet?parseInt(container.dataset.magnet):config.magnet}load(){theme.config.isTouch||(this.container.addEventListener("mousemove",this.onMoveHandler.bind(this)),this.container.addEventListener("mouseleave",this.onLeaveHandler.bind(this)))}onMoveHandler(event){const target=event.currentTarget,bounding=target.getBoundingClientRect(),btnReveal=target.querySelector("[data-reveal]");btnReveal&&Motion.animate(btnReveal,{opacity:1,x:((event.clientX-bounding.left)/target.offsetWidth-.5)*this.magnet,y:((event.clientY-bounding.top)/target.offsetHeight-.5)*this.magnet},{duration:.2,easing:"steps(2, start)"})}onLeaveHandler(event){const btnReveal=event.currentTarget.querySelector("[data-reveal]");btnReveal&&Motion.animate(btnReveal,{x:0,y:0,opacity:0}
12,{duration:.2,easing:[.61,1,.88,1]})}unload(){}}return RevealButton})(),theme.Carousel=(function(){class Carousel{constructor(container,options,navigation){this.container=container,this.options=options,this.prevButton=navigation.previous,this.nextButton=navigation.next}load(){this.slider=new Flickity(this.container,this.options),this.prevButton.addEventListener("click",this.onPrevButtonClick.bind(this)),this.nextButton.addEventListener("click",this.onNextButtonClick.bind(this)),this.slider.on("dragStart",this.onDragStartHandler.bind(this)),this.slider.on("select",this.onSelectHandler.bind(this))}onDragStartHandler(){this.prevRemoveTransform(),this.nextRemoveTransform()}onSelectHandler(){this.slider.slides[this.slider.selectedIndex-1]?this.slider.slides[this.slider.selectedIndex+1]?(this.prevButton.disabled=!1,this.nextButton.disabled=!1):(this.prevButton.disabled=!1,this.nextButton.disabled=!0):(this.prevButton.disabled=!0,this.nextButton.disabled=!1)}onPrevButtonClick(event){event.preventDefault(),this.slider.previous(),this.nextRemoveTransform()}onNextButtonClick(event){event.preventDefault(),this.slider.next(),this.prevRemoveTransform()}prevRemoveTransform(){this.prevButton.style.transform=null,this.prevButton.querySelector("[data-fill]").style.transform=null}nextRemoveTransform(){this.nextButton.style.transform=null,this.nextButton.querySelector("[data-fill]").style.transform=null}unload(){}}return Carousel})(),theme.initWhenVisible=(function(){class ScriptLoader{constructor(callback,delay=5e3){this.loadScriptTimer=setTimeout(callback,delay),this.userInteractionEvents=["mouseover","mousemove","keydown","touchstart","touchend","touchmove","wheel"],this.onScriptLoader=this.triggerScriptLoader.bind(this,callback),this.userInteractionEvents.forEach(event=>{window.addEventListener(event,this.onScriptLoader,{passive:!0})})}triggerScriptLoader(callback){callback(),clearTimeout(this.loadScriptTimer),this.userInteractionEvents.forEach(event=>{window.removeEventListener(event,this.onScriptLoader,{passive:!0})})}}return ScriptLoader})(),new theme.initWhenVisible(()=>{document.body.removeAttribute("data-page-rendering")}),theme.DOMready(theme.utils.setScrollbarWidth),window.addEventListener("resize",theme.utils.throttle(theme.utils.setScrollbarWidth)),theme.config.hasSessionStorage=theme.isStorageSupported("session"),theme.config.hasLocalStorage=theme.isStorageSupported("local");const mql=window.matchMedia(theme.config.mediaQuerySmall);theme.config.mqlSmall=mql.matches,mql.onchange=mql2=>{mql2.matches?(theme.config.mqlSmall=!0,document.dispatchEvent(new CustomEvent("matchSmall"))):(theme.config.mqlSmall=!1,document.dispatchEvent(new CustomEvent("unmatchSmall")))}})(),new theme.initWhenVisible(()=>{var e=!1,t;document.body.addEventListener("touchstart",function(i){if(!i.target.closest(".flickity-slider"))return e=!1;e=!0,t={x:i.touches[0].pageX,y:i.touches[0].pageY}},theme.supportsPassive?{passive:!0}:!1),document.body.addEventListener("touchmove",function(i){if(e&&i.cancelable){var n={x:i.touches[0].pageX-t.x,y:i.touches[0].pageY-t.y};Math.abs(n.x)>Flickity.defaults.dragThreshold&&i.preventDefault()}},theme.supportsPassive?{passive:!1}:!1)});class LoadingBar extends HTMLElement{constructor(){super(),window.addEventListener("beforeunload",()=>{document.body.classList.add("unloading")}),window.addEventListener("DOMContentLoaded",()=>{Motion.animate(this,{opacity:0,visibility:"hidden"},{duration:1}),document.body.classList.add("loaded"),document.dispatchEvent(new CustomEvent("page:loaded"))}),window.addEventListener("pageshow",event=>{event.persisted&&document.body.classList.remove("unloading")})}}customElements.define("loading-bar",LoadingBar);class MouseCursor extends HTMLElement{constructor(){super(),!theme.config.isTouch&&(this.config={posX:0,posY:0},document.addEventListener("mousemove",event=>{this.config.posX+=(event.clientX-this.config.posX)/4,this.config.posY+=(event.clientY-this.config.posY)/4,this.style.setProperty("--x",`${this.config.posX}px`),this.style.setProperty("--y",`${this.config.posY}px`)}))}}customElements.define("mouse-cursor",MouseCursor);class CustomHeader extends HTMLElement{constructor(){super()}
12get allowTransparent(){return!!document.querySelector(".shopify-section:first-child [allow-transparent-header]")}get headerSection(){return document.querySelector(".header-section")}connectedCallback(){if(this.init(),window.ResizeObserver&&new ResizeObserver(this.setHeight.bind(this)).observe(this),Shopify.designMode){const section=this.closest(".shopify-section");section.addEventListener("shopify:section:load",this.init.bind(this)),section.addEventListener("shopify:section:unload",this.init.bind(this)),section.addEventListener("shopify:section:reorder",this.init.bind(this))}}init(){new theme.initWhenVisible(this.setHeight.bind(this)),this.allowTransparent?(this.headerSection.classList.add("header-transparent"),this.headerSection.classList.add("no-animate"),setTimeout(()=>{this.headerSection.classList.remove("no-animate")},500)):this.headerSection.classList.remove("header-transparent")}setHeight(){requestAnimationFrame(()=>{document.documentElement.style.setProperty("--header-height",Math.round(this.clientHeight)+"px"),this.classList.contains("header--center")&&document.documentElement.style.setProperty("--header-nav-height",Math.round(this.getElementById("MenuToggle").clientHeight)+"px")})}}customElements.define("custom-header",CustomHeader,{extends:"header"});class StickyHeader extends CustomHeader{constructor(){super()}get isAlwaysSticky(){return this.dataset.stickyType==="always"}connectedCallback(){super.connectedCallback(),this.currentScrollTop=0,this.firstScrollTop=window.scrollY,this.headerBounds=this.headerSection.getBoundingClientRect(),this.beforeInit()}beforeInit(){this.headerSection.classList.add("header-sticky"),this.headerSection.dataset.stickyType=this.dataset.stickyType,this.isAlwaysSticky&&this.headerSection.classList.add("header-sticky"),window.addEventListener("scroll",theme.utils.throttle(this.onScrollHandler.bind(this)),!1)}onScrollHandler(){const scrollTop=window.scrollY;scrollTop>this.headerBounds.top+this.firstScrollTop?(this.headerSection.classList.add("header-scrolled"),document.documentElement.style.setProperty("--sticky-header-height",Math.round(this.clientHeight)+"px")):this.headerSection.classList.remove("header-scrolled"),scrollTop>this.headerBounds.bottom+this.firstScrollTop+100?scrollTop>this.currentScrollTop?this.headerSection.classList.add("header-hidden"):this.headerSection.classList.remove("header-hidden"):this.headerSection.classList.remove("header-hidden"),this.currentScrollTop=scrollTop}}customElements.define("sticky-header",StickyHeader,{extends:"header"});class RevealLink extends HTMLAnchorElement{constructor(){super(),this.revealButton=new theme.RevealButton(this),this.revealButton.load()}}customElements.define("reveal-link",RevealLink,{extends:"a"});class HoverLink extends HTMLAnchorElement{constructor(){super(),this.hoverButton=new theme.HoverButton(this),this.hoverButton.load()}}customElements.define("hover-link",HoverLink,{extends:"a"});class MagnetLink extends HoverLink{constructor(){super(),this.magnetButton=new theme.MagnetButton(this),this.magnetButton.load()}}customElements.define("magnet-link",MagnetLink,{extends:"a"});class HoverButton extends HTMLButtonElement{constructor(){super(),this.hoverButton=new theme.HoverButton(this),this.hoverButton.load(),this.type==="submit"&&this.form&&this.form.addEventListener("submit",()=>this.setAttribute("aria-busy","true")),document.addEventListener("rebuy:smartcart.show",()=>this.removeAttribute("aria-busy")),window.addEventListener("pageshow",()=>this.removeAttribute("aria-busy")),this.append(this.animationElement)}static get observedAttributes(){return["aria-busy"]}get contentElement(){return this._contentElement=this._contentElement||this.querySelector(".btn-text")}get animationElement(){return this._animationElement=this._animationElement||document.createRange().createContextualFragment(`
13 <span class="btn-loader"> 14 <span></span> 15 <span></span> 16 <span></span> 17 </span> 18 `).firstElementChild}async attributeChangedCallback(name,oldValue,newValue){newValue==="true"?(Motion.timeline([[this.contentElement,{opacity:0},{duration:.15}],[this.animationElement,{opacity:1},{duration:.15}]]),Motion.animate(this.animationElement.children,{transform:["scale(1.6)","scale(0.6)"]},{duration:.35,delay:Motion.stagger(.35/2),direction:"alternate",repeat:1/0})):Motion.timeline([[this.animationElement,{opacity:0},{duration:.15}],[this.contentElement,{opacity:1},{duration:.15}]])}}customElements.define("hover-button",HoverButton,{extends:"button"});class MagnetButton extends HoverButton{constructor(){super(),this.magnetButton=new theme.MagnetButton(this),this.magnetButton.load()}}customElements.define("magnet-button",MagnetButton,{extends:"button"});class HoverElement extends HTMLElement{constructor(){super(),this.hoverButton=new theme.HoverButton(this),this.hoverButton.load()}}customElements.define("hover-element",HoverElement);class MagnetElement extends HoverElement{constructor(){super(),this.magnetButton=new theme.MagnetButton(this),this.magnetButton.load()}}customElements.define("magnet-element",MagnetElement);class AnnouncementBar extends HTMLElement{constructor(){super(),theme.config.isTouch?new theme.initWhenVisible(this.init.bind(this)):Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get items(){return this._items=this._items||Array.from(this.children)}get autoplay(){return this.hasAttribute("autoplay")}get speed(){return this.hasAttribute("autoplay")?parseInt(this.getAttribute("autoplay-speed"))*1e3:5e3}init(){this.items.length>1&&(this.slider=new Flickity(this,{accessibility:!1,fade:!0,pageDots:!1,prevNextButtons:!1,wrapAround:!0,rightToLeft:theme.config.rtl,autoPlay:this.autoplay?this.speed:!1,on:{ready:function(){setTimeout(()=>this.element.setAttribute("loaded",""))}}}),this.slider.on("change",this.onChange.bind(this)),this.addEventListener("slider:previous",()=>this.slider.previous()),this.addEventListener("slider:next",()=>this.slider.next()),this.addEventListener("slider:play",()=>this.slider.playPlayer()),this.addEventListener("slider:pause",()=>this.slider.pausePlayer()),Shopify.designMode&&this.addEventListener("shopify:block:select",event=>this.slider.select(this.items.indexOf(event.target))))}disconnectedCallback(){this.slider&&this.slider.destroy()}onChange(){this.dispatchEvent(new CustomEvent("slider:change",{bubbles:!0,detail:{currentPage:this.slider.selectedIndex}}))}}customElements.define("announcement-bar",AnnouncementBar);class AccordionsDetails extends HTMLElement{constructor(){super(),this.addEventListener("toggle",this.onToggle)}get items(){return this._items=this._items||Array.from(this.querySelectorAll('details[is="accordion-details"]'))}onToggle(event){this.items.forEach(item=>{item!==event.detail.current&&item.close()})}}customElements.define("accordions-details",AccordionsDetails);class AccordionDetails extends HTMLDetailsElement{constructor(){super(),this._open=this.hasAttribute("open"),this.summaryElement=this.querySelector("summary"),this.contentElement=this.querySelector("summary + *"),this.setAttribute("aria-expanded",this._open?"true":"false"),this.summaryElement.addEventListener("click",this.onSummaryClick.bind(this)),Shopify.designMode&&(this.addEventListener("shopify:block:select",()=>{this.designModeActive&&(this.open=!0)}),this.addEventListener("shopify:block:deselect",()=>{this.designModeActive&&(this.open=!1)}))}get designModeActive(){return!0}get controlledElement(){return this.closest("accordions-details")}static get observedAttributes(){return["open"]}attributeChangedCallback(name,oldValue,newValue){name==="open"&&this.setAttribute("aria-expanded",newValue===""?"true":"false")}get open(){return this._open}set open(value){value!==this._open&&(this._open=value,this.isConnected?this.transition(value):value?this.setAttribute("open",""):this.removeAttribute("open")),this.setAttribute("aria-expanded",value?"true":"false"),this.dispatchEventHandler()}onSummaryClick(event){event.preventDefault(),this.open=!this.open}close(){this._open=!1,this.transition(!1)}async transition(value){this.style.overflow="hidden",value?(this.setAttribute("open",""),await Motion.timeline([[this,{height:[`${this.summaryElement.clientHeight}px`,`${this.scrollHeight}px`]},{duration:.25,easing:"ease"}],[this.contentElement,{opacity:[0,1],transform:["translateY(10px)","translateY(0)"]},{duration:.15,at:"-0.1"}]]).finished):(await Motion.timeline([[this.contentElement,{opacity:0}
18,{duration:.15}],[this,{height:[`${this.clientHeight}px`,`${this.summaryElement.clientHeight}px`]},{duration:.25,at:"<",easing:"ease"}]]).finished,this.removeAttribute("open")),this.style.height="auto",this.style.overflow="visible"}dispatchEventHandler(){(this.controlledElement??this).dispatchEvent(new CustomEvent("toggle",{bubbles:!0,detail:{current:this}}))}}customElements.define("accordion-details",AccordionDetails,{extends:"details"});class FooterDetails extends AccordionDetails{constructor(){super(),this.load(),window.addEventListener("resize",this.load.bind(this)),document.addEventListener("unmatchSmall",this.load.bind(this))}get designModeActive(){return theme.config.mqlSmall}load(){theme.config.mqlSmall?this.open&&!this.getAttribute("default-open")&&(this._open=!1,this.removeAttribute("open"),this.setAttribute("aria-expanded","false"),this.classList.remove("active")):(this._open=!0,this.setAttribute("open",""),this.setAttribute("aria-expanded","true"),this.classList.add("active"))}}customElements.define("footer-details",FooterDetails,{extends:"details"});class GestureElement extends HTMLElement{constructor(){super(),this.config={thresholdY:Math.max(25,Math.floor(.15*window.innerHeight)),velocityThreshold:10,disregardVelocityThresholdY:Math.floor(.5*this.clientHeight),pressThreshold:8,diagonalSwipes:!1,diagonalLimit:Math.tan(45*1.5/180*Math.PI),longPressTime:500},this.handlers={panstart:[],panmove:[],panend:[],swipeup:[],swipedown:[],longpress:[]},this.addEventListener("touchstart",this.onTouchStart.bind(this),theme.supportsPassive?{passive:!0}:!1),this.addEventListener("touchmove",this.onTouchMove.bind(this),theme.supportsPassive?{passive:!0}:!1),this.addEventListener("touchend",this.onTouchEnd.bind(this),theme.supportsPassive?{passive:!0}:!1)}on(type,fn){if(this.handlers[type])return this.handlers[type].push(fn),{type,fn,cancel:()=>this.off(type,fn)}}off(type,fn){if(this.handlers[type]){const idx=this.handlers[type].indexOf(fn);idx!==-1&&this.handlers[type].splice(idx,1)}}fire(type,event){for(let i=0;i<this.handlers[type].length;i++)this.handlers[type][i](event)}onTouchStart(event){this.thresholdY=this.config.thresholdY,this.disregardVelocityThresholdY=this.config.disregardVelocityThresholdY,this.touchStartY=event.changedTouches[0].screenY,this.touchMoveY=null,this.touchEndY=null,this.swipingDirection=null,this.longPressTimer=setTimeout(()=>this.fire("longpress",event),this.config.longPressTime),this.fire("panstart",event)}onTouchMove(event){const touchMoveY=event.changedTouches[0].screenY-(this.touchStartY??0);this.velocityY=touchMoveY-(this.touchMoveY??0),this.touchMoveY=touchMoveY;const absTouchMoveY=Math.abs(this.touchMoveY);this.swipingVertical=absTouchMoveY>this.thresholdY,this.swipingDirection=this.swipingVertical?"vertical":"pre-vertical",absTouchMoveY>this.config.pressThreshold&&clearTimeout(this.longPressTimer??void 0),this.fire("panmove",event)}onTouchEnd(event){this.touchEndY=event.changedTouches[0].screenY,this.fire("panend",event),clearTimeout(this.longPressTimer??void 0);const y=this.touchEndY-(this.touchStartY??0),absY=Math.abs(y);absY>this.thresholdY&&(this.swipedVertical=this.config.diagonalSwipes?y<=this.config.diagonalLimit:absY>this.thresholdY,this.swipedVertical&&(y<0?((this.velocityY??0)<-this.config.velocityThreshold||y<-this.disregardVelocityThresholdY)&&this.fire("swipeup",event):((this.velocityY??0)>this.config.velocityThreshold||y>this.disregardVelocityThresholdY)&&this.fire("swipedown",event)))}}customElements.define("gesture-element",GestureElement);class OverlayElement extends HTMLElement{constructor(){super(),this.addEventListener("mousemove",this.onMouseMove),this.addEventListener("mouseleave",this.onMouseLeave),this.addEventListener("mousedown",this.onMouseDown),this.addEventListener("mouseup",this.onMouseUp)}get cursor(){return document.querySelector("mouse-cursor")}onMouseMove(){this.cursor.classList.add("active")}onMouseLeave(){this.cursor.classList.remove("active")}onMouseDown(){this.cursor.classList.add("pressed")}onMouseUp(){this.cursor.classList.remove("pressed")}}customElements.define("overlay-element",OverlayElement);const lockLayerCount=new WeakMap;class ModalElement extends HTMLElement{constructor(){super(),this.events={afterHide:"modal:
18afterHide",afterShow:"modal:afterShow"},this.classes={open:"has-modal-open",opening:"has-modal-opening"}}static get observedAttributes(){return["id","open"]}get shouldLock(){return!1}get shouldAppendToBody(){return!1}get open(){return this.hasAttribute("open")}get controls(){return Array.from(document.querySelectorAll(`[aria-controls="${this.id}"]`))}get overlay(){return this._overlay=this._overlay||this.querySelector(".fixed-modal")}get gesture(){return this._gesture=this._gesture||this.querySelector("gesture-element")}get designMode(){return this.hasAttribute("shopify-design-mode")}get focusElement(){return this.querySelector("button")}connectedCallback(){if(this.abortController=new AbortController,this.controls.forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this),{signal:this.abortController.signal})),document.addEventListener("keyup",event=>event.code==="Escape"&&this.hide(),{signal:this.abortController.signal}),this.gesture&&(this.gestureConfig={animationFrame:null,moveY:0,maxGestureDistance:0,endPoint:0,layerHeight:null},this.gestureWrap=this.gesture.parentElement,setTimeout(()=>{this.gesture.on("panstart",this.onPanStart.bind(this)),this.gesture.on("panmove",this.onPanMove.bind(this)),this.gesture.on("panend",this.onPanEnd.bind(this))},75)),Shopify.designMode&&this.designMode){const section=this.closest(".shopify-section");section.addEventListener("shopify:section:select",event=>this.show(null,!event.detail.load),{signal:this.abortController.signal}),section.addEventListener("shopify:section:deselect",this.hide.bind(this),{signal:this.abortController.signal})}}disconnectedCallback(){this.abortController?.abort()}attributeChangedCallback(name,oldValue,newValue){name==="open"&&(this.controls.forEach(button=>button.setAttribute("aria-expanded",newValue===null?"false":"true")),oldValue===null&&(newValue===""||newValue==="immediate")?(this.hidden=!1,this.removeAttribute("inert"),this.originalParentBeforeAppend=null,this.shouldAppendToBody&&this.parentElement!==document.body&&(this.originalParentBeforeAppend=this.parentElement,document.body.append(this)),(this.showTransition(newValue!=="immediate")||Promise.resolve()).then(()=>{this.afterShow(),this.dispatchEvent(new CustomEvent(this.events.afterShow,{bubbles:!0}))})):oldValue!==null&&newValue===null&&(this.setAttribute("inert",""),(this.hideTransition()||Promise.resolve()).then(()=>{this.afterHide(),this.hasAttribute("inert")&&(this.parentElement===document.body&&this.originalParentBeforeAppend&&(this.originalParentBeforeAppend.appendChild(this),this.originalParentBeforeAppend=null),this.dispatchEvent(new CustomEvent(this.events.afterHide,{bubbles:!0})),this.hidden=!0)})),this.dispatchEvent(new CustomEvent("toggle",{bubbles:!0})))}onButtonClick(event){event.preventDefault(),this.open?this.hide():this.show(event.currentTarget)}hide(){if(this.open)return this.beforeHide(),this.resetGesture(),this.removeAttribute("open"),theme.utils.waitForEvent(this,this.events.afterHide)}show(activeElement=null,animate=!0){if(!this.open)return this.beforeShow(),this.activeElement=activeElement,this.setAttribute("open",animate?"":"immediate"),this.shouldLock&&document.body.classList.add(this.classes.opening),theme.utils.waitForEvent(this,this.events.afterShow)}beforeHide(){}beforeShow(){}afterHide(){setTimeout(()=>{theme.a11y.removeTrapFocus(this.activeElement),this.shouldLock&&(lockLayerCount.set(ModalElement,lockLayerCount.get(ModalElement)-1),document.body.classList.toggle(this.classes.open,lockLayerCount.get(ModalElement)>0))})}afterShow(){theme.a11y.trapFocus(this,this.focusElement),this.shouldLock&&(lockLayerCount.set(ModalElement,lockLayerCount.get(ModalElement)+1),document.body.classList.remove(this.classes.opening),document.body.classList.add(this.classes.open))}showTransition(){return setTimeout(()=>{this.setAttribute("active","")},75),new Promise(resolve=>{this.overlay.addEventListener("transitionend",resolve,{once:!0})})}hideTransition(){return this.removeAttribute("active"),new Promise(resolve=>{this.overlay.addEventListener("transitionend",resolve,{once:!0})})}resetGesture(){this.gesture&&(this.gestureWrap.style.transform="",this.gestureWrap.style.transition="",this.overlay.style.opacity="",this.overlay.style.transition="")}onPanStart(){this.removeTransition(this.gestureWrap,"transform"),this.hasAttribute("open")&&(this.gestureConfig.layerHeight===null&&(this.gestureConfig.layerHeight=this.gestureWrap.getBoundingClientRect().height),this.gestureConfig.maxGestureDistance=this.gestureConfig.layerHeight-50,this.gestureConfig.endPoint=this.gestureConfig.layerHeight*.3)}onPanMove(){this.gestureConfig.animationFrame||(this.gestureConfig.animationFrame=requestAnimationFrame(()=>{const clamp=(a,min=0,max=1)=>Math.min(max,Math.max(min,a)),invlerp=(x,y,a)=>clamp((a-x)/(y-x));this.gestureWrap.style.transition="transform .1s linear",this.overlay.style.transition="opacity .1s linear",this.hasAttribute("open")&&(this.gestureConfig.layerHeight===null&&(this.gestureConfig.layerHeight=this.gestureWrap.getBoundingClientRect().height),this.gestureConfig.moveY=this.gesture.touchMoveY,this.gestureConfig.maxGestureDistance=this.gestureConfig.layerHeight-50,this.gestureConfig.moveY>=0?(this.gestureWrap.style.transform=`translateY(${Math.min(this.gestureConfig.moveY,this.gestureConfig.maxGestureDistance)}px)`,this.overlay.style.opacity=invlerp(this.gestureConfig.layerHeight,0,this.gestureConfig.moveY)):(this.gestureWrap.style.transform="translateY(0)",this.gestureWrap.style.transition="",this.overlay.style.opacity="1")),this.gestureConfig.animationFrame=null}))}onPanEnd(){this.gestureConfig.animationFrame===null||cancelAnimationFrame(this.gestureConfig.animationFrame),this.gestureConfig.animationFrame=null,this.gestureWrap.style.transition="transform .1s linear",this.gestureConfig.layerHeight===null&&(this.gestureConfig.layerHeight=this.gestureWrap.getBoundingClientRect().height),this.gestureConfig.endPoint=this.gestureConfig.layerHeight*.3,this.hasAttribute("open")&&(this.gestureConfig.moveY=this.gesture.touchMoveY,this.gestureConfig.moveY<this.gestureConfig.endPoint?this.gestureWrap.style.transform="translateY(0)":(this.gestureWrap.style.transform=`translateY(${this.gestureConfig.layerHeight}px)`,this.gestureWrap.addEventListener(this.whichTransitionEvent(),()=>{this.hide()},{once:!0})))}removeTransition(node,transition){const match=node.style.transition.match(new RegExp("(?:^|,)\\s*"+transition+"(?:$|\\s|,)[^,]*","i"));if(match){const transitionArray=node.style.transition.split("");transitionArray.splice(match.index,match[0].length),node.style.transition=transitionArray.join("")}}whichTransitionEvent(){let t;const el=document.createElement("fakeelement"),transitions={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",MSTransition:"msTransitionEnd",OTransition:"oTransitionEnd",transition:"transitionEnd"};for(t in transitions)if(el.style[t]!==void 0)return transitions[t]}}customElements.define("modal-element",ModalElement),lockLayerCount.set(Mo
18dalElement,0);class DrawerElement extends ModalElement{constructor(){super(),this.events={afterHide:"drawer:afterHide",afterShow:"drawer:afterShow"}}get shouldLock(){return!0}get shouldAppendToBody(){return!0}}customElements.define("drawer-element",DrawerElement);class MenuDrawer extends DrawerElement{constructor(){super()}get menuItems(){return this._menuItems=this._menuItems||this.querySelectorAll(".drawer__menu:not(.active)>li")}beforeShow(){super.beforeShow(),setTimeout(()=>{Motion.animate(this.menuItems,{transform:["translateX(-20px)","translateX(0)"],opacity:[0,1]},{duration:.6,easing:[.075,.82,.165,1],delay:Motion.stagger(.1)}).finished.then(()=>{this.menuItems.forEach(item=>item.removeAttribute("style"))})},300)}afterHide(){super.afterHide(),setTimeout(()=>{this.querySelectorAll("details[is=menu-details]").forEach(subMenu=>{subMenu.onCloseButtonClick()})})}}customElements.define("menu-drawer",MenuDrawer);class ShareDrawer extends DrawerElement{constructor(){super()}get menuItems(){return this._menuItems=this._menuItems||this.querySelectorAll(".share-buttons>li")}get urlToShare(){const urlInput=this.querySelector("input[type=hidden]");return urlInput?urlInput.value:document.location.href}connectedCallback(){navigator.share?this.controls.forEach(button=>button.addEventListener("click",this.shareTo.bind(this))):super.connectedCallback()}shareTo(event){event.preventDefault(),navigator.share({url:this.urlToShare,title:document.title})}beforeShow(){super.beforeShow(),setTimeout(()=>{Motion.animate(this.menuItems,{transform:["translateY(2.5rem)","translateY(0)"],opacity:[0,1]},{duration:.6,easing:[.075,.82,.165,1],delay:Motion.stagger(.1)}).finished.then(()=>{this.menuItems.forEach(item=>item.removeAttribute("style"))})},300)}}customElements.define("share-drawer",ShareDrawer);class MenuDetails extends HTMLDetailsElement{constructor(){super(),this.summary.addEventListener("click",this.onSummaryClick.bind(this)),this.closeButton.addEventListener("click",this.onCloseButtonClick.bind(this))}get parent(){return this.closest("[data-parent]")}get summary(){return this.querySelector("summary")}get closeButton(){return this.querySelector("button")}onSummaryClick(){setTimeout(()=>{this.parent.classList.add("active"),this.classList.add("active"),this.summary.setAttribute("aria-expanded",!0)},100)}onCloseButtonClick(){this.parent.classList.remove("active"),this.classList.remove("active"),this.summary.setAttribute("aria-expanded",!1),this.closeAnimation()}closeAnimation(){let animationStart;const handleAnimation=time=>{animationStart===void 0&&(animationStart=time),time-animationStart<400?requestAnimationFrame(handleAnimation):this.removeAttribute("open")};requestAnimationFrame(handleAnimation)}}customElements.define("menu-details",MenuDetails,{extends:"details"});class QuantitySelector extends HTMLElement{constructor(){super()}connectedCallback(){this.abortController=new AbortController,this.input=this.querySelector("input"),this.buttons=Array.from(this.querySelectorAll("button")),this.changeEvent=ne
18w Event("change",{bubbles:!0}),this.buttons.forEach(button=>button.addEventListener("click",this.onButtonClick.bind(this)),{signal:this.abortController.signal})}disconnectedCallback(){this.abortController.abort()}onButtonClick(event){event.preventDefault();const previousValue=this.input.value;event.currentTarget.name==="plus"?this.input.quantity=this.input.quantity+1:this.input.quantity=this.input.quantity-1,previousValue!==this.input.value&&this.input.dispatchEvent(this.changeEvent)}}customElements.define("quantity-selector",QuantitySelector);class QuantityInput extends HTMLInputElement{constructor(){super(),this.addEventListener("input",this.onValueInput),this.addEventListener("change",this.onValueChanged),this.addEventListener("keydown",this.onKeyDown),this.addEventListener("focus",this.select)}get quantity(){return parseInt(this.value)}set quantity(quantity){const isNumeric=(typeof quantity=="number"||typeof quantity=="string"&&quantity.trim()!=="")&&!isNaN(quantity);quantity!==""&&((!isNumeric||quantity<0)&&(quantity=parseInt(quantity)||1),this.value=Math.max(this.min||1,Math.min(quantity,this.max||Number.MAX_VALUE)).toString(),this.size=Math.max(this.value.length+1,2))}onValueInput(){this.quantity=this.value}onValueChanged(){this.value===""&&(this.quantity=1)}onKeyDown(event){event.stopPropagation();const quantity=this.quantity;event.key==="ArrowUp"?this.quantity=this.quantity+1:event.key==="ArrowDown"&&(this.quantity=this.quantity-1)}}customElements.define("quantity-input",QuantityInput,{extends:"input"});class CartCount extends HTMLElement{constructor(){super()}cartUpdateUnsubscriber=void 0;connectedCallback(){this.cartUpdateUnsubscriber=theme.pubsub.subscribe(theme.pubsub.PUB_SUB_EVENTS.cartUpdate,this.onCartUpdate.bind(this))}disconnectedCallback(){this.cartUpdateUnsubscriber&&this.cartUpdateUnsubscriber()}get itemCount(){return parseInt(this.innerText)}onCartUpdate(event){event.cart.errors||(this.innerText=event.cart.item_count,this.hidden=this.itemCount===0)}}customElements.define("cart-count",CartCount);class RecentlyViewed extends HTMLElement{constructor(){if(super(),theme.config.hasLocalStorage===!1){this.hidden=!0;return}"requestIdleCallback"in window?requestIdleCallback(this.init.bind(this),{timeout:1500}):Motion.inView(this,this.init.bind(this),{margin:"600px 0px 600px 0px"})}init(){fetch(this.dataset.url+this.getQueryString()).then(response=>response.text()).then(responseText=>{const recommendations=new DOMParser().parseFromString(responseText,"text/html").querySelector(".shopify-section").querySelector("recently-viewed");recommendations&&recommendations.innerHTML.trim().length?(this.innerHTML=recommendations.innerHTML,StampedFn.loadBadges(),this.dispatchEvent(new CustomEvent("recentlyViewed:loaded"))):(this.closest(".recently-section")?.remove(),this.dispatchEvent(new CustomEvent("is-empty")))}).catch(e=>{console.error(e)})}getQueryString(){const items=new Set(JSON.parse(window.localStorage.getItem(`${theme.settings.themeName}:recently-viewed`)||"[]"));return this.dataset.productId&&items.delete(parseInt(this.dataset.productId)),Array.from(items.values(),item=>`id:${item}`).slice(0,parseInt(this.dataset.limit||4)).join(" OR ")}}customElements.define("recently-viewed",RecentlyViewed);class ProductRecommendations extends HTMLElement{constructor(){super(),"requestIdleCallback"in window?requestIdleCallback(this.init.bind(this),{timeout:1500}):Motion.inView(this,this.init.bind(this),{margin:"600px 0px 600px 0px"})}init(){fetch(this.dataset.url).then(response=>response.text()).then(responseText=>{const sectionInnerHTML=new DOMParser().parseFromString(responseText,"text/html").querySelector(".shopify-section");if(sectionInnerHTML===null)return;const recommendations=sectionInnerHTML.querySelector("product-recommendations");recommendations&&recommendations.innerHTML.trim().length?(this.innerHTML=recommendations.innerHTML,this.dispatchEvent(new CustomEvent("recommendations:loaded"))):(this.closest(".shopify-section").remove(),this.dispatchEvent(new CustomEvent("is-empty")))}).catch(e=>{console.error(e)})}}customElements.define("product-recommendations",ProductRecommendations);class ProductComplementary extends HTMLElement{constructor(){super()}get container(){return this.closest("product-recommendations")}get prevButton(){return this.container.querySelector("[data-prev-button]")}get nextButton(){return this.container.querySelector("[data-next-button]")}connectedCallback(){this.innerHTML.trim().length?this.classList.contains("flickity")&&(this.carousel=new theme.Carousel(this,{prevNextButtons:!1,adaptiveHeight:!0,pageDots:!1,contain:!0,cellAlign:"center",rightToLeft:theme.config.rtl},{previous:this.prevButton,next:this.nextButton}),this.carousel.load()):this.container.hidden=!0}disconnectedCallback(){this.carousel&&this.carousel.unload()}}customElements.define("product-complementary",ProductComplementary);class AnimateElement extends HTMLElement{constructor(){super()}connectedCallback(){theme.config.motionReduced||(this.beforeInit(),Motion.inView(this,async()=>{!this.immediate&&this.media&&await theme.utils.imageLoaded(this.media),this.init()}))}get immediate(){return this.hasAttribute("data-immediate")}get media(){return Array.from(this.querySelectorAll("img, iframe, svg, g-map"))}get type(){return this.dataset.animate||"fade-up"}get delay(){return parseInt(this.dataset.animateDelay||0)/1e3}get paused(){return this.hasAttribute("paused")}beforeInit(){if(!this.paused)switch(this.type){case"fade-in":Motion.animate(this,{opacity:0}
18,{duration:0});break;case"fade-up":Motion.animate(this,{transform:"translateY(min(2rem, 90%))",opacity:0},{duration:0});break;case"fade-up-large":Motion.animate(this,{transform:"translateY(90%)",opacity:0},{duration:0});break;case"zoom-out":Motion.animate(this,{transform:"scale(1.3)"},{duration:0});break}}async init(){if(!this.paused){switch(this.type){case"fade-in":await Motion.animate(this,{opacity:1},{duration:1.5,delay:this.delay,easing:[.16,1,.3,1]}).finished;break;case"fade-up":await Motion.animate(this,{transform:"translateY(0)",opacity:1},{duration:1.5,delay:this.delay,easing:[.16,1,.3,1]}).finished;break;case"fade-up-large":await Motion.animate(this,{transform:"translateY(0)",opacity:1},{duration:1,delay:this.delay,easing:[.16,1,.3,1]}).finished;break;case"zoom-out":await Motion.animate(this,{transform:"scale(1)"},{duration:1.3,delay:this.delay,easing:[.16,1,.3,1]}).finished;break}this.classList.add("animate")}}async reset(duration){switch(this.type){case"fade-in":await Motion.animate(this,{opacity:0},{duration:duration||1.5,delay:this.delay,easing:duration?"none":[.16,1,.3,1]}).finished;break;case"fade-up":await Motion.animate(this,{transform:"translateY(max(-2rem, -90%))",opacity:0},{duration:duration||1.5,delay:this.delay,easing:duration?"none":[.16,1,.3,1]}).finished;break;case"fade-up-large":await Motion.animate(this,{transform:"translateY(-90%)",opacity:0},{duration:duration||1,delay:this.delay,easing:duration?"none":[.16,1,.3,1]}).finished;break;case"zoom-out":await Motion.animate(this,{transform:"scale(0)"},{duration:duration||1.3,delay:this.delay,easing:duration?"none":[.16,1,.3,1]}).finished;break}this.classList.remove("animate")}refresh(){this.removeAttribute("paused"),this.beforeInit(),this.init()}}customElements.define("animate-element",AnimateElement);class MediaElement extends HTMLElement{constructor(){super()}get parallax(){return this.dataset.parallax?parseFloat(this.dataset.parallax):!1}get direction(){return this.dataset.parallaxDir||"vertical"}get media(){return Array.from(this.querySelectorAll("img, video, iframe, svg, video-media, g-map"))}connectedCallback(){theme.config.motionReduced||!this.parallax||this.setupParallax()}setupParallax(){const[scale,translate]=[1+this.parallax,this.parallax*100/(1+this.parallax)];this.direction==="vertical"?Motion.scroll(Motion.animate(this.media,{transform:[`scale(${scale}) translateY(0)`,`scale(${scale}) translateY(${translate}%)`],transformOrigin:["bottom","bottom"]},{easing:"linear"}),{target:this,offset:["start end","end start"]}):this.direction==="horizontal"?Motion.scroll(Motion.animate(this.media,{transform:[`scale(${scale}) translateX(0)`,`scale(${scale}) translateX(${translate}%)`],transformOrigin:["right","right"]},{easing:"linear"}),{target:this,offset:["start end","end start"]}):Motion.scroll(Motion.animate(this.media,{transform:["scale(1)",`scale(${scale})`],transformOrigin:["center","center"]},{easing:"linear"}),{target:this,offset:["start end","end start"]})}}customElements.define("media-element",MediaElement);class SplitWords extends HTMLElement{constructor(){super()}connectedCallback(){document.body.hasAttribute("data-title-animation")&&(new SplitType(this,{types:"words",wordClass:"single-word"}),Array.from(this.querySelectorAll(".single-word")).forEach((item,index)=>{const wrapper=document.createElement("animate-element");wrapper.className="block",wrapper.dataset.animate=this.dataset.animate,wrapper.dataset.animateDelay=parseInt(this.dataset.animateDelay||0)+index*30;for(const itemContent of item.childNodes)wrapper.appendChild(itemContent);item.appendChild(wrapper)}))}}customElements.define("split-words",SplitWords);class HighlightedText extends HTMLElement{constructor(){super(),Motion.inView(this,this.init.bind(this))}init(){this.classList.add("animate")}}customElements.define("highlighted-text",HighlightedText,{extends:"em"});class MarqueeElement extends HTMLElement{constructor(){super(),!theme.config.motionReduced&&Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get childElement(){return this.firstElementChild}get maximum(){return parseInt(this.dataset.maximum||10)}get direction(){return this.dataset.direction||"left"}get parallax(){return!theme.config.isTouch&&this.dataset.parallax?parseFloat(this.dataset.parallax):!1}init(){if(this.childElementCount===1){this.childElement.classList.add("animate");for(let index=0;
18index<this.maximum;index++)this.clone=this.childElement.cloneNode(!0),this.clone.setAttribute("aria-hidden",!0),this.appendChild(this.clone),this.clone.querySelectorAll(".media").forEach(media=>media.classList.remove("loading"));this.style.setProperty("--duration",`${33-parseInt(this.dataset.speed||16)}s`)}if(this.parallax){let translate=this.parallax*100/(1+this.parallax);this.direction==="right"&&(translate=translate*-1),theme.config.rtl&&(translate=translate*-1),Motion.scroll(Motion.animate(this,{transform:[`translateX(${translate}%)`,"translateX(0)"]},{easing:"linear"}),{target:this,offset:["start end","end start"]})}else new IntersectionObserver((entries,_observer)=>{entries.forEach(entry=>{entry.isIntersecting?this.classList.remove("paused"):this.classList.add("paused")})},{rootMargin:"0px 0px 50px 0px"}).observe(this)}}customElements.define("marquee-element",MarqueeElement);class ScrolledImages extends HTMLElement{constructor(){super(),Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get parallax(){return this.dataset.parallax?parseFloat(this.dataset.parallax):!1}get template(){return this.querySelector("template")}get images(){return Array.from(this.template.content.querySelectorAll(".scrolled-images__item"))}init(){this.beforeInit(),!(theme.config.motionReduced||!this.parallax)&&this.setupParallax()}beforeInit(){const main=this.querySelector(".scrolled-images__main");for(let i=0;i<3;i++){let images=this.shuffle(this.images);if(images.length<8){let start=0;for(;images.length<8;)images.push(images[start].cloneNode(!0)),start++}const row=document.createElement("div");row.classList="scrolled-images__row",images.forEach(item=>row.appendChild(item.cloneNode(!0))),main.appendChild(row)}}setupParallax(){Array.from(this.querySelectorAll(".scrolled-images__row")).forEach((element,index)=>{let translate=-1*this.parallax*100/(1+this.parallax);theme.config.rtl&&(translate=translate*-1),index%2===0?Motion.scroll(Motion.animate(element,{transform:[`translateX(${translate}%)`,"translateX(0)"]},{easing:"linear"}),{target:this,offset:Motion.ScrollOffset.Any}):Motion.scroll(Motion.animate(element,{transform:["translateX(0)",`translateX(${translate}%)`]},{easing:"linear"}),{target:this,offset:Motion.ScrollOffset.Any})})}shuffle(arr){return arr.sort(()=>Math.random()-.5)}}customElements.define("scrolled-images",ScrolledImages);class DropdownElement extends HTMLElement{constructor(){super(),this.classes={bodyClass:"has-dropdown"},this.events={afterHide:"dropdown:afterHide",afterShow:"dropdown:afterShow"},this.controls.forEach(button=>{button.addEventListener("click",this.onToggleClicked.bind(this)),button.addEventListener("mouseenter",this.show.bind(this)),button.addEventListener("mouseleave",this.hide.bind(this))}),this.detectClickOutsideListener=this.detectClickOutside.bind(this),this.detectEscKeyboardListener=this.detectEscKeyboard.bind(this),this.detectFocusOutListener=this.detectFocusOut.bind(this)}static get observedAttributes(){return["id","open"]}get open(){return this.hasAttribute("open")}get controls(){return Array.from(document.querySelectorAll(`[aria-controls="${this.id}"]`))}get container(){return this.querySelector("*:first-child")}attributeChangedCallback(name,oldValue,newValue){name==="open"&&this.controls.forEach(button=>button.setAttribute("aria-expanded",newValue===null?"false":"true"))}show(){return document.body.classList.add(this.classes.bodyClass),this.setAttribute("open",""),document.addEventListener("click",this.detectClickOutsideListener),document.addEventListener("keydown",this.detectEscKeyboardListener),document.addEventListener("focusout",this.detectFocusOutListener),this.afterShow(),theme.utils.waitForEvent(this,this.events.afterShow)}hide(){return document.body.classList.remove(this.classes.bodyClass),this.removeAttribute("open"),document.removeEventListener("click",this.detectClickOutsideListener),document.removeEventListener("keydown",this.detectEscKeyboardListener),document.removeEventListener("focusout",this.detectFocusOutListener),this.afterHide(),theme.utils.waitForEvent(this,this.events.afterHide)}onToggleClicked(event){event?.preventDefault(),this.open?this.hide():this.show()}afterShow(){Motion.animate(this,{opacity:[0,1],visibility:"visible"},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1]}),Motion.animate(this.container,{transform:["translateY(-105%)","translateY(0)"]},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1]})}afterHide(){Motion.animate(this,{opacity:0,visibility:"hidden"},{duration:theme.config.motionReduced?0:.3,easing:[.7,0,.2,1]}),Motion.animate(this.container,{transform:"translateY(-105%)"},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1]})}detectClickOutside(event){this.parentElement.contains(event.target)||this.hide()}detectEscKeyboard(event){event.code==="Escape"&&this.hide()}detectFocusOut(event){event.relatedTarget&&!this.contains(event.relatedTarget)&&this.hide()}}customElements.define("dropdown-element",DropdownElement);class DropdownLanguage extends DropdownElement{constructor(){super()}afterHide(){super.afterHide(),this.timer=setTimeout(()=>{document.body.classList.remove("has-language-open")},600)}afterShow(){super.afterShow(),this.timer&&clearInterval(this.timer),document.body.classList.add("has-language-open")}}customElements.define("dropdown-language",DropdownLanguage);class DropdownCurrency extends DropdownElement{constructor(){super()}afterHide(){super.afterHide(),this.timer=setTimeout(()=>{document.body.classList.remove("has-currency-open")},600)}afterShow(){super.afterShow(),this.timer&&clearInterval(this.timer),document.body.classList.add("has-currency-open")}}customElements.define("dropdown-currency",DropdownCurrency);const lockDropdownCount=new WeakMap;class DetailsDropdown extends HTMLDetailsElement{constructor(){super(),this.classes={bodyClass:"has-dropdown-menu"},this.events={afterHide:"menu:afterHide",afterShow:"menu:afterShow"},this.summaryElement=this.firstElementChild,this.contentElement=this.lastElementChild,this._open=this.hasAttribute("open"),this.summaryElement.addEventListener("click",this.onSummaryClicked.bind(this)),this.detectClickOutsideListener=this.detectClickOutside.bind(this),this.detectEscKeyboardListener=this.detectEscKeyboard.bind(this),this.detectFocusOutListener=this.detectFocusOut.bind(this),this.hoverTimer=null,this.detectHoverListener=this.detectHover.bind(this),this.addEventListener("mouseenter",this.detectHoverListener.bind(this)),this.addEventListener("mouseleave",this.detectHoverListener.bind(this))}set open(value){value!==this._open&&(this._open=value,this.isConnected?this.transition(value):value?this.setAttribute("open",""):this.removeAttribute("open"))}get open(){return this._open}get trigger(){return this.hasAttribute("trigger")?this.getAttribute("trigger"):"click"}get level(){return this.hasAttribute("level")?this.getAttribute("level"):"top"}onSummaryClicked(event){event.preventDefault(),!theme.config.isTouch&&this.trigger==="hover"&&this.summaryElement.hasAttribute("data-link")?window.location.href=this.summaryElement.getAttribute("data-link"):this.open=!this.open}async transition(value){return value?(lockDropdownCount.set(DetailsDropdown,lockDropdownCount.get(DetailsDropdown)+1),document.body.classList.add(this.classes.bodyClass),this.setAttribute("open",""),this.summaryElement.setAttribute("open",""),setTimeout(()=>this.contentElement.setAttribute("open",""),100),document.addEventListener("click",this.detectClickOutsideListener),document.addEventListener("keydown",this.detectEscKeyboardListener),document.addEventListener("focusout",this.detectFocusOutListener),await this.transitionIn(),this.shouldReverse(),theme.utils.waitForEvent(this,this.events.afterShow)):(lockDropdownCount.set(DetailsDropdown,lockDropdownCount.get(DetailsDropdown)-1),document.body.classList.toggle(this.classes.bodyClass,lockDropdownCount.get(DetailsDropdown)>0),this.summaryElement.removeAttribute("open"),this.contentElement.removeAttribute("open"),document.removeEventListener("click",this.detectClickOutsideListener),document.removeEventListener("keydown",this.detectEscKeyboardListener),document.removeEventListener("focusout",this.detectFocusOutListener),await this.transitionOut(),this.open||this.removeAttribute("open"),theme.utils.waitForEvent(this,this.events.afterHide))}async transitionIn(){Motion.animate(this.contentElement,{opacity:[0,1],visibility:"visible"},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1],delay:theme.config.motionReduced?0:.2});const translateY=this.level==="top"?"-105%":"2rem";return Motion.animate(this.contentElement.firstElementChild,{transform:[`translateY(${translateY})`,"translateY(0)"]},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1]}).finished}async transitionOut(){Motion.animate(this.contentElement,{opacity:0,visibility:"hidden"},{duration:theme.config.motionReduced?0:.3,easing:[.7,0,.2,1]});const translateY=this.level==="top"?"-105%":"2rem";return Motion.animate(this.contentElement.firstElementChild,{transform:`translateY(${translateY})`},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1]}).finished}detectClickOutside(event){!this.contains(event.target)&&!(event.target.closest("details")instanceof DetailsDropdown)&&(this.open=!1)}detectEscKeyboard(event){if(event.code==="Escape"){const targetMenu=event.target.closest("details[open]");targetMenu&&(targetMenu.open=!1)}}detectFocusOut(event){event.relatedTarget&&!this.contains(event.relatedTarget)&&(this.open=!1)}detectHover(event){this.trigger==="hover"&&(event.type==="mouseenter"?this.open=!0:this.open=!1)}shouldReverse(){this.contentElement.offsetLeft+this.contentElement.clientWidth*2>window.innerWidth&&this.contentElement.classList.add("should-reverse")}}customElements.define("details-dropdown",DetailsDropdown,{extends:"details"}),lockDropdownCount.set(DetailsDropdown,0);class DetailsMega extends DetailsDropdown{constructor(){super(),Shopify.designMode&&(this.addEventListener("shopify:block:select",()=>this.open=!0),this.addEventListener("shopify:block:deselect",()=>this.open=!1))}async transitionIn(){return document.body.classList.add("with-mega"),Motion.animate(this.contentElement.firstElementChild,{visibility:"visible",transform:["translateY(-105%)","translateY(0)"]},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1]}).finished}async transitionOut(){return document.body.classList.remove("with-mega"),Motion.animate(this.contentElement.firstElementChild,{visibility:"hidden",transform:"translateY(-105%)"},{duration:theme.config.motionReduced?0:.6,easing:[.7,0,.2,1]}).finished}}customElements.define("details-mega",DetailsMega,{extends:"details"});class LocalizationListbox extends HTMLFormElement{constructor(){super(),this.items.forEac
18h(item=>item.addEventListener("click",this.onItemClick.bind(this)))}get items(){return this._items=this._items||Array.from(this.querySelectorAll("a"))}get input(){return this.querySelector('input[name="locale_code"], input[name="country_code"]')}onItemClick(event){event.preventDefault(),this.input.value=event.currentTarget.dataset.value,this.submit()}}customElements.define("localization-listbox",LocalizationListbox,{extends:"form"});class LocalizationForm extends HTMLFormElement{constructor(){super(),theme.config.isTouch?new theme.initWhenVisible(this.init.bind(this)):Motion.inView(this,this.init.bind(this))}get select(){return this.querySelector("select")}beforeInit(){const value=this.select.options[this.select.selectedIndex].text,width=theme.getElementWidth(this.select,value);this.select.style.setProperty("--width",`${width}px`)}init(){this.beforeInit(),this.addEventListener("change",this.submit)}}customElements.define("localization-form",LocalizationForm,{extends:"form"});class StickyElement extends HTMLElement{constructor(){super(),this.endScroll=window.innerHeight-this.offsetHeight-500,this.currPos=window.scrollY,this.screenHeight=window.innerHeight,this.stickyElementHeight=this.offsetHeight,this.bottomGap=20,window.addEventListener("scroll",theme.utils.throttle(this.onScrollHandler.bind(this)),{capture:!0,passive:!0})}get headerHeight(){const header=document.querySelector('.header-section header[is="sticky-header"]');return header?Math.round(header.clientHeight)+20:20}onScrollHandler(){this.screenHeight=window.innerHeight,this.stickyElementHeight=this.offsetHeight,this.positionStickySidebar()}positionStickySidebar(){this.endScroll=window.innerHeight-this.offsetHeight-this.bottomGap;const style=window.getComputedStyle(this),stickyElementTop=parseInt(style.insetBlockStart.replace("px",""));this.stickyElementHeight+this.headerHeight+this.bottomGap>this.screenHeight?window.scrollY<this.currPos?stickyElementTop<this.headerHeight?(this.style.insetBlockStart=`${stickyElementTop+this.currPos-window.scrollY}px`,this.style.setProperty("--inset",`${stickyElementTop+this.currPos-window.scrollY}px`)):stickyElementTop>=this.headerHeight&&stickyElementTop!==this.headerHeight&&(this.style.insetBlockStart=`${this.headerHeight}px`,this.style.setProperty("--inset",`${this.headerHeight}px`)):stickyElementTop>this.endScroll?(this.style.insetBlockStart=`${stickyElementTop+this.currPos-window.scrollY}px`,this.style.setProperty("--inset",`${stickyElementTop+this.currPos-window.scrollY}px`)):stickyElementTop<this.endScroll&&stickyElementTop!==this.endScroll&&(this.style.insetBlockStart=`${this.endScroll}px`,this.style.setProperty("--inset",`${this.endScroll}px`)):(this.style.insetBlockStart=`${this.headerHeight}px`,this.style.setProperty("--inset",`${this.headerHeight}px`)),this.currPos=window.scrollY}}customElements.define("sticky-element",StickyElement);class ParallaxElement extends HTMLDivElement{constructor(){super(),this.load()}get mobileDisabled(){return!1}load(){theme.config.motionReduced||this.mobileDisabled&&(theme.config.isTouch||theme.config.mqlSmall)||this.motion()}motion(){this.animation=Motion.scroll(Motion.animate(this,{transform:[`translateY(${this.dataset.start})`,`translateY(${this.dataset.stop})`]}),{target:this,offset:Motion.ScrollOffset.Any})}}customElements.define("parallax-element",ParallaxElement,{extends:"div"});class ParallaxOverlay extends HTMLElement{constructor(){super(),this.load(),Shopify.designMode&&document.addEventListener("shopify:section:unload",this.refresh.bind(this))}refresh(){let options={};options[this.dataset.target]=this.dataset.stop,Motion.animate(this,options,{duration:0})}load(){let options={};options[this.dataset.target]=[this.dataset.start,this.dataset.stop],this.animation=Motion.scroll(Motion.animate(this,options),{target:this.parentElement,offset:Motion.ScrollOffset.Enter})}}customElements.define("parallax-overlay",ParallaxOverlay);class FooterParallax extends ParallaxElement{constructor(){super(),document.addEventListener("matchSmall",this.unload.bind(this)),document.addEventListener("unmatchSmall",this.load.bind(this)),Shopify.designMode&&document.addEventListener("shopify:section:unload",this.refresh.bind(this))}get mobileDisabled(){return!0}motion(){this.animation=Motion.scroll(Motion.animate(this,{transform:["translateY(-50%)","translateY(0)"]}),{target:this,offset:Motion.ScrollOffset.Enter})}refresh(){theme.config.motionReduced||this.mobileDisabled&&(theme.config.isTouch||theme.config.mqlSmall)||setTimeout(()=>{Motion.animate(this,{transform:"translateY(0)"},{duration:0})})}unload(){this.animation&&(this.animation(),this.style.transform=null)}}customElements.define("footer-parallax",FooterParallax,{extends:"div"});class FooterGroup extends HTMLElement{constructor(){super(),this.init(),Shopify.designMode&&document.addEventListener("shopify:section:load",this.init.bind(this))}get rounded(){return Array.from(this.querySelectorAll(".section--rounded"))}get sections(){return Array.from(this.querySelectorAll(".shopify-section"))}init(){this.sections.forEach((shopifySection,index)=>{const section=shopifySection.querySelector(".section");section&&(section.classList.remove("section--next-rounded"),section.style.zIndex=this.sections.length-index)}),this.rounded.forEach(section=>{let previousShopifySection=section.closest(".shopify-section").previousElementSibling;if(previousShopifySection===null&&(previousShopifySection=document.querySelector(".main-content .shopify-section:last-child")),previousShopifySection){const previousSection=previousShopifySection.querySelector(".section");previousSection&&previousSection.classList.add("section--next-rounded")}})}}customElements.define("footer-group",FooterGroup);class CarouselElement extends HTMLElement{constructor(){super(),Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get items(){return this._items=this._items||Array.from(this.children)}get watchCSS(){return this.hasAttribute("watch-css")}get initialIndex(){return parseInt(this.getAttribute("initial-index")||0)}init(){this.items.length>1&&(this.carousel=new Flickity(this,{watchCSS:this.watchCSS,prevNextButtons:!1,adaptiveHeight:!0,wrapAround:!0,rightToLeft:theme.config.rtl,initialIndex:this.initialIndex}),this.addEventListener("control:select",event=>this.select(event.detail.index)),this.carousel.on("change",this.onChange.bind(this)),Shopify.designMode&&this.addEventListener("shopify:block:select",event=>this.carousel.select(this.items.indexOf(event.target))))}disconnectedCallback(){this.carousel&&this.carousel.destroy()}select(index=0,immediate=!1){if(!immediate){const{selectedIndex,slides}=this.carousel;immediate=Math.abs(index-selectedIndex)>
183,index===0&&selectedIndex===slides.length-1&&(immediate=!1),index===slides.length-1&&selectedIndex===0&&(immediate=!1)}this.carousel.select(index,!1,immediate)}onChange(index){this.dispatchEvent(new CustomEvent("carousel:change",{bubbles:!0,detail:{index}}))}}customElements.define("carousel-element",CarouselElement);class TestimonialsElement extends CarouselElement{constructor(){super(),Motion.inView(this,()=>{setTimeout(()=>this.update(),600)})}update(){this.carousel&&this.carousel.select(0)}}customElements.define("testimonials-element",TestimonialsElement);class SecondaryMedia extends HTMLElement{constructor(){super(),Motion.inView(this,()=>{setTimeout(()=>this.init())},{margin:"200px 0px 200px 0px"})}get template(){return this.previousElementSibling}disconnectedCallback(){this.carousel&&this.carousel.destroy()}init(){this.appendChild(this.template.content.cloneNode(!0)),this.mediaCount=this.querySelectorAll(".media").length,this.mediaCount>1&&(this.carousel=new Flickity(this,{accessibility:!1,draggable:!1,pageDots:!0,prevNextButtons:!1,wrapAround:!0,rightToLeft:theme.config.rtl}),this.mediaCount===2&&this.classList.add("without-dots"),this.addEventListener("mousemove",this.onMoveHandler),this.addEventListener("mouseleave",this.onLeaveHandler))}onMoveHandler(event){if(this.mediaCount===2)return this.carousel.select(1);const{width}=this.carousel.size,mouseX=event.clientX-this.getBoundingClientRect().left;if(this.mediaCount===3)return mouseX<width/2?this.carousel.select(1):this.carousel.select(2);if(this.mediaCount===4)return mouseX<width/3?this.carousel.select(1):mouseX<2*width/3?this.carousel.select(2):this.carousel.select(3)}onLeaveHandler(){this.carousel.select(0)}}customElements.define("secondary-media",SecondaryMedia);class MotionList extends HTMLElement{constructor(){super(),!(theme.config.motionReduced||this.hasAttribute("motion-reduced"))&&(this.unload(),Motion.inView(this,this.load.bind(this)))}get items(){return this.querySelectorAll(".card")}get itemsToShow(){return this.querySelectorAll(".card:not([style])")}unload(){Motion.animate(this.items,{y:50,opacity:0,visibility:"hidden"},{duration:0})}load(){Motion.animate(this.items,{y:[50,0],opacity:[0,1],visibility:["hidden","visible"]},{duration:.5,delay:theme.config.motionReduced?0:Motion.stagger(.1)})}reload(){Motion.animate(this.itemsToShow,{y:[50,0],opacity:[0,1],visibility:["hidden","visible"]},{duration:.5,delay:theme.config.motionReduced?0:Motion.stagger(.1)})}}customElements.define("motion-list",MotionList);class LazyBackground extends HTMLElement{constructor(){super(),this.init()}get image(){const style=window.getComputedStyle(this);return style.backgroundImage?style.backgroundImage.slice(5,-2).replace("width=1","width=720"):!1}
18async init(){if(!this.image)return;const img=document.createElement("img");img.src=this.image,img.style.visibility="hidden",img.style.position="absolute",await theme.utils.imageLoaded(img),this.style.backgroundImage=`url(${this.image})`,img.remove()}}customElements.define("lazy-background",LazyBackground);class MenuToggle extends MagnetButton{constructor(){super(),this.addEventListener("click",this.onClick)}get controlledElement(){return this.hasAttribute("aria-controls")?document.getElementById(this.getAttribute("aria-controls")):null}get expanded(){return this.getAttribute("aria-expanded")==="true"}onClick(){this.setAttribute("aria-expanded",this.expanded?"false":"true"),this.controlledElement&&this.controlledElement.classList.toggle("active")}}customElements.define("menu-toogle",MenuToggle,{extends:"button"});class ScrollShadow extends HTMLElement{constructor(){super(),theme.config.isTouch?new theme.initWhenVisible(this.init.bind(this)):Motion.inView(this,this.init.bind(this))}get template(){return this.querySelector("template")}init(){this.attachShadow({mode:"open"}),this.shadowRoot.appendChild(this.template.content.cloneNode(!0)),this.shadowRoot.addEventListener("slotchange",()=>this.load()),this.updater=new theme.scrollShadow.Updater(this.shadowRoot.children[1]),this.load()}load(){this.updater.on(this.children[0])}disconnectedCallback(){this.updater?.on()}}customElements.define("scroll-shadow",ScrollShadow);class CustomSelect extends HTMLSelectElement{constructor(){super(),this.onChange(),this.addEventListener("change",this.onChange)}onChange(){this.value!==""||this.selectedIndex===-1?this.setAttribute("selected",""):this.removeAttribute("selected")}}customElements.define("custom-select",CustomSelect,{extends:"select"});class GMap extends HTMLElement{constructor(){super(),!(!this.dataset.apiKey||!this.dataset.mapAddress)&&(Motion.inView(this,this.prepMapApi.bind(this),{margin:"600px 0px 600px 0px"}),window.gm_authFailure=()=>{Shopify.designMode&&window.mapError(theme.strings.authError)},window.mapError=(error,element)=>{const container=element?element.closest(".shopify-section"):document;container.querySelectorAll(".gmap--error").forEach(error2=>{error2.remove()}),container.querySelectorAll("g-map").forEach(map=>{const message=document.createElement("div");message.classList.add("rte","alert","alert--error","gmap--error"),message.innerHTML=error,map.closest(".with-map").prepend(message)})},window.gmNoop=()=>{})}prepMapApi(){this.loadScript().then(this.initMap.bind(this)).then(()=>{setTimeout(()=>{const container=this.closest(".banner__map");container&&container.previousElementSibling&&container.previousElementSibling.classList.remove("opacity-0")},1e3)})}loadScript(){return new Promise((resolve,reject)=>{const script=document.createElement("script");document.body.appendChild(script),script.onload=resolve,script.onerror=reject,script.async=!0,script.src=`https://maps.googleapis.com/maps/api/js?key=${this.dataset.apiKey}&callback=gmNoop`})}initMap(){new google.maps.Geocoder().geocode({address:this.dataset.mapAddress},(results,status)=>{if(status!==google.maps.GeocoderStatus.OK){if(Shopify.designMode){let errorMessage;switch(status){case"ZERO_RESULTS":errorMessage=theme.strings.addressNoResults;break;case"OVER_QUERY_LIMIT":errorMessage=theme.strings.addressQueryLimit;break;case"REQUEST_DENIED":errorMessage=theme.strings.authError;break;default:errorMessage=theme.strings.addressError;break}window.mapError(errorMessage,this)}}else{const mapOptions={zoom:parseInt(this.dataset.zoom),center:results[0].geometry.location,draggable:!0,clickableIcons:!1,scrollwheel:!1,disableDoubleClickZoom:!0,disableDefaultUI:!0},map=new google.maps.Map(this,mapOptions),center=map.getCenter();map.setCenter(center);const icon={path:"M22.6746 0C10.2174 0 0 8.79169 0 21.5118C0 31.2116 4.33864 38.333 9.26606 42.998C11.7232 45.3243 14.3387 47.0534 16.6674 48.2077C18.9384 49.3333 21.1148 50 22.6746 50C24.2345 50 26.4108 49.3333 28.6818 48.2077C31.0105 47.0534 33.626 45.3243 36.0832 42.998C41.0106 38.333 45.3492 31.2116 45.3492 21.5118C45.3492 8.79169 35.1318 0 22.6746 0ZM29.6514 22.6746C29.6514 26.5278 26.5278 29.6514 22.6746 29.6514C18.8214 29.6514 15.6978 26.5278 15.6978 22.6746C15.6978 18.8214 18.8214 15.6978 22.6746 15.6978C26.5278 15.6978 29.6514 18.8214 29.6514 22.6746Z",fillColor:this.dataset.markerColor,fillOpacity:1,anchor:new google.maps.Point(15,55),strokeWeight:0,scale:.7};new google.maps.Marker({map,position:map.getCenter(),icon});const styledMapType=new google.maps.StyledMapType(JSON.parse(this.parentNode.querySelector("[data-gmap-style]").innerHTML));map.mapTypes.set("styled_map",styledMapType),map.setMapTypeId("styled_map"),window.addEventListener("resize",()=>{google.maps.event.trigger(map,"resize"),map.setCenter(center)})}})}}customElements.define("g-map",GMap);class PreviousButton extends HoverButton{constructor(){super(),this.addEventListener("click",this.onClick),this.controlledElement&&this.controlledElement.addEventListener("slider:previousStatus",this.updateStatus.bind(this))}get controlledElement(){return this.hasAttribute("aria-controls")?document.getElementById(this.getAttribute("aria-controls")):null}
18onClick(){(this.controlledElement??this).dispatchEvent(new CustomEvent("slider:previous",{bubbles:!0,cancelable:!0}))}updateStatus(event){switch(event.detail.status){case"hidden":this.hidden=!0;break;case"disabled":this.disabled=!0;break;default:this.hidden=!1,this.disabled=!1}}}customElements.define("previous-button",PreviousButton,{extends:"button"});class NextButton extends HoverButton{constructor(){super(),this.addEventListener("click",this.onClick),this.controlledElement&&this.controlledElement.addEventListener("slider:nextStatus",this.updateStatus.bind(this))}get controlledElement(){return this.hasAttribute("aria-controls")?document.getElementById(this.getAttribute("aria-controls")):null}onClick(){(this.controlledElement??this).dispatchEvent(new CustomEvent("slider:next",{bubbles:!0,cancelable:!0}))}updateStatus(event){switch(event.detail.status){case"hidden":this.hidden=!0;break;case"disabled":this.disabled=!0;break;default:this.hidden=!1,this.disabled=!1}}}customElements.define("next-button",NextButton,{extends:"button"});class SliderElement extends HTMLElement{constructor(){super(),Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get looping(){return!1}get items(){return this._items=this._items||Array.from(this.hasAttribute("selector")?this.querySelectorAll(this.getAttribute("selector")):this.children)}get itemsToShow(){return Array.from(this.items).filter(element=>element.clientWidth>0)}get itemOffset(){return this.itemsToShow.length>1?this.itemsToShow[1].offsetLeft-this.itemsToShow[0].offsetLeft:0}get perPage(){return Math.floor(this.clientWidth/this.itemOffset)}get totalPages(){return this.itemsToShow.length-this.perPage+1}reset(){this._items=Array.from(this.hasAttribute("selector")?this.querySelectorAll(this.getAttribute("selector")):this.children)}init(){this.hasPendingOnScroll=!1,this.currentPage=1,this.updateButtons(),this.addEventListener("scroll",theme.utils.throttle(this.update.bind(this))),this.addEventListener("scrollend",this.scrollend),this.addEventListener("slider:previous",this.previous),this.addEventListener("slider:next",this.next),Shopify.designMode&&this.addEventListener("shopify:block:select",event=>event.target.scrollIntoView({behavior:"smooth"}))}previous(){this.scrollPosition=this.scrollLeft-this.perPage*this.itemOffset,this.scrollToPosition(this.scrollPosition)}next(){this.scrollPosition=this.scrollLeft+this.perPage*this.itemOffset,this.scrollToPosition(this.scrollPosition)}select(selectedIndex,immediate=!1){this.scrollPosition=this.scrollLeft-(this.currentPage-selectedIndex)*this.itemOffset,this.scrollToPosition(this.scrollPosition,immediate)}selected(selectedIndex){return this.itemsToShow[selectedIndex]}scrollend(){this.hasPendingOnScroll=!1,this.dispatchEventHandler()}update(){window.onscrollend===void 0&&clearTimeout(this.scrollendTimeout);const previousPage=this.currentPage;this.currentPage=Math.round(this.scrollLeft/this.itemOffset)+1,this.currentPage!==previousPage&&(this.hasPendingOnScroll||this.dispatchEventHandler(),this.itemsToShow.forEach((sliderItem,index)=>{sliderItem.classList.toggle("selected",index+1===this.currentPage)})),window.onscrollend===void 0&&(this.scrollendTimeout=setTimeout(()=>{this.dispatchEvent(new CustomEvent("scrollend",{bubbles:!0,composed:!0}))},75)),!this.looping&&this.updateButtons()}updateButtons(){const isFirstSlide=this.currentPage===1,isLastSlide=this.currentPage===this.itemsToShow.length,previousDisabled=isFirstSlide||this.itemsToShow.length>0&&this.isVisible(this.itemsToShow[0])&&this.scrollLeft===0,nextDisabled=isLastSlide||this.itemsToShow.length>0&&this.isVisible(this.itemsToShow[this.itemsToShow.length-1]);this.dispatchEvent(new CustomEvent("slider:previousStatus",{bubbles:!0,detail:{status:previousDisabled?nextDisabled?"hidden":"disabled":"visible"}})),this.dispatchEvent(new CustomEvent("slider:nextStatus",{bubbles:!0,detail:{status:nextDisabled?previousDisabled?"hidden":"disabled":"visible"}}))}isVisible(element,offset=0){const lastVisibleSlide=this.clientWidth+this.scrollLeft-offset;return element.offsetLeft+element.clientWidth<=lastVisibleSlide&&element.offsetLeft>=this.scrollLeft}scrollToPosition(position,immediate=!1){this.hasPendingOnScroll=!immediate,theme.config.rtl&&(position=position*-1),this.scrollTo({left:position,behavior:immediate?"instant":theme.config.motionReduced?"auto":"smooth"})}dispatchEventHandler(){this.dispatchEvent(new CustomEvent("slider:change",{detail:{currentPage:this.currentPage,currentElement:this.itemsToShow[this.currentPage-1]}}))}}customElements.define("slider-element",SliderElement);class SliderDots extends HTMLElement{constructor(){super(),new theme.initWhenVisible(()=>{this.controlledElement&&(this.controlledElement.addEventListener("slider:change",this.onChange.bind(this)),this.items.forEac
18h(item=>{item.addEventListener("click",this.onButtonClick.bind(this))}))})}get controlledElement(){return this.hasAttribute("aria-controls")?document.getElementById(this.getAttribute("aria-controls")):null}get items(){return this._items=this._items||Array.from(this.children)}get itemsToShow(){return Array.from(this.items).filter(element=>element.clientWidth>0)}reset(){this._items=Array.from(this.children)}onChange(event){this.transitionTo(parseInt(event.detail.currentPage)-1),this.itemsToShow.forEach(item=>{item.setAttribute("aria-current",parseInt(item.getAttribute("data-index"))===parseInt(event.detail.currentPage)?"true":"false")})}transitionTo(selectedIndex,immediate=!1){this.itemsToShow[selectedIndex]&&this.scrollTo({left:this.itemsToShow[selectedIndex].offsetLeft-this.clientWidth/2+this.itemsToShow[selectedIndex].clientWidth/2,top:this.itemsToShow[selectedIndex].offsetTop-this.clientHeight/2-this.itemsToShow[selectedIndex].clientHeight/2,behavior:immediate?"instant":theme.config.motionReduced?"auto":"smooth"})}onButtonClick(event){event.preventDefault();const target=event.currentTarget;this.itemsToShow.forEach(item=>{item.setAttribute("aria-current",item.getAttribute("data-index")===target.getAttribute("data-index")?"true":"false")}),this.controlledElement.select(parseInt(target.getAttribute("data-index")))}}customElements.define("slider-dots",SliderDots);class ProgressBar extends HTMLElement{constructor(){super(),!this.hasAttribute("style")&&Motion.inView(this,this.init.bind(this))}init(){this.style.setProperty("--progress",`${parseInt(this.dataset.value)*.75*100/parseInt(this.dataset.max)}%`)}}customElements.define("progress-bar",ProgressBar);const onYouTubePromise=new Promise(resolve=>{window.onYouTubeIframeAPIReady=()=>resolve()});class DeferredMedia extends HTMLElement{constructor(){super(),this.posterElement&&this.posterElement.addEventListener("click",this.onPosterClick.bind(this)),this.autoplay&&Motion.inView(this,()=>(this.paused||this.play(),()=>{this.pause()}))}get posterElement(){return this.querySelector('[id^="DeferredPoster-"]')}get controlledElement(){return this.hasAttribute("aria-controls")?document.getElementById(this.getAttribute("aria-controls")):null}get autoplay(){return this.hasAttribute("autoplay")}get playing(){return this.hasAttribute("playing")}get player(){return this.playerProxy=this.playerProxy||new Proxy(this.playerTarget(),{get:(target,prop)=>async()=>{target=await target,this.playerHandler(target,prop)}})}static get observedAttributes(){return["playing"]}onPosterClick(event){event.preventDefault(),event.stopPropagation(),this.playing?(this.paused=!0,this.pause()):(this.paused=!1,this.play())}play(){this.playing||this.player.play()}pause(){this.playing&&this.player.pause()}attributeChangedCallback(name,oldValue,newValue){if(name==="playing"){if(oldValue===null&&newValue==="")return this.dispatchEvent(new CustomEvent("video:play",{bubbles:!0}));if(newValue===null)return this.dispatchEvent(new CustomEvent("video:pause",{bubbles:!0}))}}}class VideoMedia extends DeferredMedia{constructor(){super()}playerTarget(){if(this.hasAttribute("host"))return this.setAttribute("loaded",""),this.closest(".media")?.classList.remove("loading"),new Promise(async resolve=>{const templateElement=this.querySelector("template");templateElement&&templateElement.replaceWith(templateElement.content.firstElementChild.cloneNode(!0));const muteVideo=this.hasAttribute("autoplay")||window.matchMedia("screen and (max-width: 1023px)").matches,script=document.createElement("script");if(script.type="text/javascript",this.getAttribute("host")==="youtube"){(!window.YT||!window.YT.Player)&&(script.src="https://www.youtube.com/iframe_api",document.head.appendChild(script),await new Promise(resolve2=>{script.onload=resolve2})),await onYouTubePromise;const player=new YT.Player(this.querySelector("iframe"),{events:{onReady:()=>{muteVideo&&player.mute(),resolve(player)},onStateChange:event=>{event.data===YT.PlayerState.PLAYING?this.setAttribute("playing",""):(event.data===YT.PlayerState.ENDED||event.data===YT.PlayerState.PAUSED)&&this.removeAttribute("playing")}}})}if(this.getAttribute("host")==="vimeo"){(!window.Vimeo||!window.Vimeo.Player)&&(script.src="https://player.vimeo.com/api/player.js",document.head.appendChild(script),await new Promise(resolve2=>{script.onload=resolve2}));const player=new Vimeo.Player(this.querySelector("iframe"));muteVideo&&player.setMuted(!0),player.on("play",()=>{this.setAttribute("playing","")}),player.on("pause",()=>this.removeAttribute("playing")),player.on("ended",()=>this.removeAttribute("playing")),resolve(player)}});{this.querySelector("template")&&this.appendChild(this.querySelector("template").content.firstElementChild.cloneNode(!0)),this.setAttribute("loaded",""),this.closest(".media")?.classList.remove("loading");const player=this.querySelector("video");return player.addEventListener("play",()=>{this.setAttribute("playing",""),this.removeAttribute("suspended")}),player.addEventListener("pause",()=>{!player.seeking&&player.paused&&this.removeAttribute("playing")}),player}}playerHandler(target,prop){this.getAttribute("host")==="youtube"?prop==="play"?target.playVideo():target.pauseVideo():prop==="play"&&!this.hasAttribute("host")?target.play().catch(error=>{if(error.name==="NotAllowedError"){this.setAttribute("suspended",""),target.controls=!0;const replacementImageSrc=target.previousElementSibling?.currentSrc;replacementImageSrc&&(target.poster=replacementImageSrc)}}):target[prop]()}}customElements.define("video-media",VideoMedia);class ModelMedia extends DeferredMedia{constructor(){super(),this.player,this.closeElement&&this.closeElement.addEventListener("click",this.onCloseClick.bind(this))}get closeElement(){return this.querySelector('[id^="DeferredPosterClose-"]')}onCloseClick(event){event.preventDefault(),event.stopPropagation(),this.modelViewerUI&&this.modelViewerUI.pause()}playerTarget(){return new Promise(()=>{this.setAttribute("loaded",""),Shopify.loadFeatures([{name:"shopify-xr",version:"1.0",onLoad:this.setupShopifyXR.bind(this)}
18,{name:"model-viewer-ui",version:"1.0",onLoad:this.setupModelViewerUI.bind(this)}])})}playerHandler(target,prop){target[prop]()}async setupShopifyXR(){if(!window.ShopifyXR){document.addEventListener("shopify_xr_initialized",this.setupShopifyXR.bind(this));return}document.querySelectorAll('[id^="ProductJSON-"]').forEach(modelJSON=>{window.ShopifyXR.addModels(JSON.parse(modelJSON.textContent)),modelJSON.remove()}),window.ShopifyXR.setupXRElements()}setupModelViewerUI(errors){if(errors)return;const modelViewer=this.querySelector("model-viewer");modelViewer&&!modelViewer.hasAttribute("loaded")&&(modelViewer.setAttribute("loaded",""),modelViewer.addEventListener("shopify_model_viewer_ui_toggle_play",this.modelViewerPlayed.bind(this)),modelViewer.addEventListener("shopify_model_viewer_ui_toggle_pause",this.modelViewerPaused.bind(this)),this.modelViewerUI=new Shopify.ModelViewerUI(modelViewer))}modelViewerPlayed(){this.setAttribute("playing",""),this.closeElement.removeAttribute("hidden"),(this.controlledElement??this).dispatchEvent(new CustomEvent("modelViewer:play",{bubbles:!0}))}modelViewerPaused(){this.removeAttribute("playing"),this.closeElement.setAttribute("hidden",""),(this.controlledElement??this).dispatchEvent(new CustomEvent("modelViewer:pause",{bubbles:!0}))}}customElements.define("model-media",ModelMedia);class VariantSelects extends HTMLElement{constructor(){super(),this.addEventListener("change",this.onVariantChange),this.updateOptions(),this.updateMasterId(),this.setAvailability()}get productForm(){return document.forms[this.getAttribute("form")]}onVariantChange(event){this.updateOptions(),this.updateMasterId(),this.toggleBuyButton(!0,"",!1),this.updatePickupAvailability(),this.removeErrorMessage(),this.currentVariant?(this.updateURL(),this.updateVariantInput(),this.updateOptionValue(),this.renderProductInfo(),this.setAvailability(),(this.productForm??document).dispatchEvent(new CustomEvent("variant:change",{detail:{variant:this.currentVariant}}))):(this.toggleBuyButton(!0,"",!0),this.setUnavailable(),this.setAvailabilityInUnavailable())}updateOptions(){this.options=Array.from(this.querySelectorAll("select"),select=>select.value)}updateMasterId(){this.currentVariant=this.getVariantData()?.find(variant=>!variant.options.map((option,index)=>this.options[index]===option).includes(!1))}getSlug(someString){return someString.toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/-$/,"").replace(/^-/,"")}updateURL(){!this.currentVariant||this.dataset.updateUrl==="false"||window.history.replaceState({},"",`${this.dataset.url}?variant=${this.currentVariant.id}`)}updateVariantInput(){document.querySelectorAll(`#ProductForm-${this.dataset.section}, #ProductFormInstallment-${this.dataset.section}`).forEach(productForm=>{const input=productForm.querySelector('input[name="id"]');input.value=this.currentVariant.id,input.dispatchEvent(new Event("change",{bubbles:!0}))})}updatePickupAvailability(){const pickUpAvailability=document.querySelector("pickup-availability");pickUpAvailability&&(this.currentVariant?pickUpAvailability.fetchAvailability(this.currentVariant.id):(pickUpAvailability.setAttribute("hidden",""),pickUpAvailability.innerHTML=""))}updateOptionValue(){for(let index=1;index<=3;index++){const option=`option${index}`,id=`${this.dataset.section}-${option}`,destination=document.getElementById(id),source=this.currentVariant[option];source&&destination&&(destination.innerHTML=source)}}removeErrorMessage(){const section=this.closest("section");if(!section)return;const productForm=section.querySelector('form[is="product-form"]');productForm&&productForm.handleErrorMessage()}renderProductInfo(){fetch(`${this.dataset.url}?variant=${this.currentVariant.id}§ion_id=${this.dataset.section}`).then(response=>response.text()).then(responseText=>{this.updateSKU(responseText),this.updatePrice(responseText),this.updateStickyPrice(responseText),this.updateInventoryStatus(responseText),this.currentVariant&&this.toggleBuyButton(theme.isVariantSoldOut(this.currentVariant),theme.variantStrings.soldOut),document.dispatchEvent(new CustomEvent("productInfo:loaded"))}).catch(e=>{console.error(e)})}updateSKU(responseText){const id=`Sku-${this.dataset.section}`,parsedHTML=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=parsedHTML.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),destination&&destination.classList.remove("invisible")}updatePrice(responseText){const id=`Price-${this.dataset.section}`,parsedHTML=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=parsedHTML.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),destination&&destination.classList.remove("invisible")}updateStickyPrice(responseText){const id=`StickyPrice-${this.dataset.section}`,parsedHTML=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=parsedHTML.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),destination&&destination.classList.remove("invisible")}updateInventoryStatus(responseText){const id=`Inventory-${this.dataset.section}`,parsedHTML=new DOMParser().parseFromString(responseText,"text/html"),destination=document.getElementById(id),source=parsedHTML.getElementById(id);source&&destination&&(destination.innerHTML=source.innerHTML),destination&&destination.classList.remove("invisible")}toggleBuyButton(disable=!0,text,modifyClass=!0){document.querySelectorAll(`#ProductForm-${this.dataset.section}, #StickyProductForm-${this.dataset.section}`).forEach(productForm=>{const buyButton=productForm.querySelector('[name="add"]'),buyButtonText=productForm.querySelector('[name="add"] > .btn-text'),buyButtonTextChild=productForm.querySelector('[name="add"] > .btn-text span'),maxLimit=buyButton.dataset.maxlimit;buyButton&&(maxLimit||(disable?(buyButton.setAttribute("disabled",""),text&&((buyButtonTextChild||buyButtonText).innerText=text)):(buyButton.removeAttribute("disabled"),(buyButtonTextChild||buyButtonText).innerText=buyButton.dataset.preOrder==="true"?theme.variantStrings.preOrder:theme.variantStrings.addToCart)))})}setUnavailable(){document.querySelectorAll(`#ProductForm-${this.dataset.section}`,`#StickyProductForm-${this.dataset.section}`).forEach(productForm=>{const buyButton=productForm.querySelector('[name="add"]'),buyButtonText=buyButton.querySelector('[name="add"] > .btn-text'),buyButtonTextChild=productForm.querySelector('[name="add"] > .btn-text span');if(!buyButton)return;(buyButtonTextChild||buyButtonText).innerText=theme.variantStrings.unavailable;const price=document.getElementById(`Price-${this.dataset.section}`);price&&price.classList.add("invisible");const stickyPrice=document.getElementById(`StickyPrice-${this.dataset.section}`);stickyPrice&&stickyPrice.classList.add("invisible");const inventory=document.getElementById(`Inventory-${this.dataset.section}`);inventory&&inventory.classList.add("invisible")})}getVariantData(){if(!this.variantData){this.variantData=JSON.parse(this.querySelector('[type="application/json"]').textContent);const invNode=this.querySelector(".oos-inventory-data");if(invNode)try{const inv=JSON.parse(invNode.textContent);this.variantData.forEach(v=>{const d=inv[v.id];d&&(v.inventory_quantity=d.q,v.inventory_management=d.m,v.inventory_policy=d.p)})}catch{}}return this.variantData}setAvailability(){if(!this.currentVariant)return;this.querySelectorAll(".variant-input-wrapper").forEach(group=>{this.disableVariantGroup(group)});const currentlySelectedValues=this.currentVariant.options.map((value,index)=>({value,index:`option${index+1}`})),initialOptions=this.createAvailableOptionsTree(this.variantData,currentlySelectedValues,this.currentVariant);for(var[option,values]of Object.entries(initialOptions))this.manageOptionState(option,values)}setAvailabilityInUnavailable(){this.querySelectorAll(".variant-input-wrapper").forEach(group=>{this.disableVariantGroup(group)});const currentlySelectedValues=this.options.map((value,index)=>({value,index:`option${index+1}`})),initialOptions=this.createAvailableOptionsTree(this.variantData,currentlySelectedValues,this.currentVariant);for(var[option,values]of Object.entries(initialOptions))this.manageOptionState(option,values)}enableVariantOption(group,obj){const value=obj.value.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,"\\$1");group.querySelector('option[value="'+value+'"]').disabled=!1}disableVariantGroup(group){group.querySelectorAll("option").forEach(option=>{option.disabled=!0})}manageOptionState(option,values){const group=this.querySelector('.variant-input-wrapper[data-option-index="'+option+'"]');
18values.forEach(obj=>{this.enableVariantOption(group,obj)})}createAvailableOptionsTree(variants,currentlySelectedValues){return variants.reduce((options,variant)=>(Object.keys(options).forEach(index=>{if(variant[index]===null)return;let entry=options[index].find(option=>option.value===variant[index]);typeof entry>"u"&&(entry={value:variant[index],soldOut:!0},options[index].push(entry));const currentOption1=currentlySelectedValues.find(({value,index:index2})=>index2==="option1"),currentOption2=currentlySelectedValues.find(({value,index:index2})=>index2==="option2");switch(index){case"option1":entry.soldOut=entry.soldOut&&!theme.isVariantSoldOut(variant)?!1:entry.soldOut;break;case"option2":currentOption1&&variant.option1===currentOption1.value&&(entry.soldOut=entry.soldOut&&!theme.isVariantSoldOut(variant)?!1:entry.soldOut);case"option3":currentOption1&&variant.option1===currentOption1.value&¤tOption2&&variant.option2===currentOption2.value&&(entry.soldOut=entry.soldOut&&!theme.isVariantSoldOut(variant)?!1:entry.soldOut)}}),options),{option1:[],option2:[],option3:[]})}}customElements.define("variant-selects",VariantSelects);class VariantRadios extends VariantSelects{constructor(){super()}updateOptions(){const fieldsets=Array.from(this.querySelectorAll("fieldset"));this.options=fieldsets.map(fieldset=>Array.from(fieldset.querySelectorAll("input")).find(radio=>radio.checked).value)}enableVariantOption(group,obj){const value=obj.value.replace(/([ #;&,.+*~\':"!^$[\]()=>|\/@])/g,"\\$1"),input=group.querySelector('input[data-option-value="'+value+'"]');input.classList.remove("disabled"),obj.soldOut&&input.classList.add("disabled")}disableVariantGroup(group){group.querySelectorAll("input").forEach(input=>{input.classList.add("disabled")})}}customElements.define("variant-radios",VariantRadios);class ProductForm extends HTMLFormElement{constructor(){super(),this.querySelector("[name=id]").disabled=!1,this.addEventListener("submit",this.onSubmitHandler)}get cartDrawer(){return document.querySelector("cart-drawer")}get submitButton(){return this._submitButton=this._submitButton||this.querySelector('[type="submit"]')}get submitButtons(){return this._submitButtons=this._submitButtons||document.querySelectorAll(`[type="submit"][form="${this.getAttribute("id")}"]`)}get hideErrors(){return this.dataset.hideErrors==="true"}onSubmitHandler(event){if(document.body.classList.contains("template-cart")||theme.settings.cartType==="page"||(event.preventDefault(),this.submitButton.hasAttribute("aria-disabled")))return;this.activeElement=event.submitter||event.currentTarget,this.handleErrorMessage();let sectionsToBundle=[];document.documentElement.dispatchEvent(new CustomEvent("cart:bundled-sections",{bubbles:!0,detail:{sections:sectionsToBundle}}));const config=theme.utils.fetchConfig("javascript");config.headers["X-Requested-With"]="XMLHttpRequest",delete config.headers["Content-Type"];const formData=new FormData(this);formData.append("sections",sectionsToBundle),formData.append("sections_url",window.location.pathname),config.body=formData,this.submitButton.setAttribute("aria-disabled","true"),this.submitButton.setAttribute("aria-busy","true"),fetch(`${theme.routes.cart_add_url}`,config).then(response=>response.json()).then(async parsedState=>{if(parsedState.status){theme.pubsub.publish(theme.pubsub.PUB_SUB_EVENTS.cartError,{source:"product-form",productVariantId:formData.get("id"),errors:parsedState.errors||parsedState.description,message:parsedState.message}),this.handleErrorMessage(parsedState.description),document.dispatchEvent(new CustomEvent("ajaxProduct:error",{detail:{errorMessage:parsedState.description}}));const submitButtonText=this.submitButton.querySelector(".btn-text span");if(!submitButtonText||!submitButtonText.hasAttribute("data-sold-out"))return;submitButtonText.innerText=submitButtonText.getAttribute("data-sold-out"),this.submitButton.setAttribute("aria-disabled","true"),this.error=!0;return}const cartJson=await(await fetch(`${theme.routes.cart_url}`,{...theme.utils.fetchConfig()})).json();cartJson.sections=parsedState.sections,theme.pubsub.publish(theme.pubsub.PUB_SUB_EVENTS.cartUpdate,{cart:cartJson}),document.dispatchEvent(new CustomEvent("ajaxProduct:added",{detail:{product:parsedState}}));const quickViewModal=this.closest("quick-view");
18quickViewModal?(document.body.addEventListener("modal:afterHide",()=>{setTimeout(()=>{this.cartDrawer?.show(this.activeElement)})},{once:!0}),quickViewModal.hide(!0)):this.cartDrawer?.show(this.activeElement)}).catch(error=>{console.log(error)}).finally(()=>{this.submitButton.removeAttribute("aria-busy"),this.submitButtons.forEach(submitButton=>submitButton.removeAttribute("aria-busy")),this.error||(this.submitButton.removeAttribute("aria-disabled"),this.submitButtons.forEach(submitButton=>submitButton.removeAttribute("aria-disabled")))})}handleErrorMessage(errorMessage=!1){this.hideErrors||(this.errorMessage=this.errorMessage||this.querySelector(".product-form__error-message"),this.errorMessage&&(this.errorMessage.toggleAttribute("hidden",!errorMessage),this.errorMessage.innerText=errorMessage))}}customElements.define("product-form",ProductForm,{extends:"form"});class MediaGallery extends HTMLElement{constructor(){super(),Motion.inView(this,()=>{setTimeout(()=>this.pauseAllMedia(),500)}),(this.productForm??document).addEventListener("variant:change",this.onVariantChanged.bind(this)),this&&typeof this.addEventListener=="function"&&this.addEventListener("lightbox:open",event=>this.openZoom(event.detail.index)),this.sliderGallery&&typeof this.sliderGallery.addEventListener=="function"&&this.sliderGallery.addEventListener("slider:change",this.onSlideChange.bind(this)),this&&this.countMediaGallery()}get viewInSpaceButton(){return this.querySelector("[data-shopify-xr]")}get productForm(){return document.forms[this.getAttribute("form")]}get sliderGallery(){return this.querySelector("slider-element")}get sliderDots(){return this.querySelector("media-dots")}get mediaPreview(){return this.querySelector(".product__preview .product__media")}get hideVariants(){return this._hideVariants=this._hideVariants||this.querySelectorAll(".product__media--variant").length>0}get gangOption(){if(this._gangOption)return this._gangOption;const mediaItemWithGang=this.sliderGallery.querySelector("[data-gang-option]");return mediaItemWithGang?this._gangOption=mediaItemWithGang.dataset.gangOption:!1}get photoswipe(){if(this._photoswipe)return this._photoswipe;const lightbox=new PhotoSwipeLightbox({arrowPrevSVG:'<svg class="pswp__icn icon" stroke="currentColor" fill="none" viewBox="0 0 30 30"><path d="M17.5 7.5L10 15L17.5 22.5"/></svg>',arrowNextSVG:'<svg class="pswp__icn icon" stroke="currentColor" fill="none" viewBox="0 0 30 30"><path d="M17.5 7.5L10 15L17.5 22.5"/></svg>',closeSVG:'<svg class="pswp__icn icon" stroke="currentColor" fill="none" viewBox="0 0 30 30"><path d="m7.5 22.5 15-15m-15 0 15 15"/></svg>',bgOpacity:1,pswpModule:()=>import(theme.settings.pswpModule),arrowPrevTitle:theme.strings.previous,arrowNextTitle:theme.strings.next,closeTitle:theme.strings.close,allowPanToNext:!1,allowMouseDrag:!0,wheelToZoom:!1,returnFocus:!0,zoom:!1});return lightbox.addFilter("thumbEl",(_thumbEl,data)=>data.thumbnailElement),lightbox.on("contentLoad",event=>{const{content}=event;(content.type==="video"||content.type==="external_video"||content.type==="model")&&(event.preventDefault(),content.element=document.createElement("div"),content.element.className="pswp__video-container",content.element.appendChild(content.data.domElement.cloneNode(!0)))}),lightbox.on("change",()=>{this.sliderGallery.select(lightbox.pswp.currIndex+1,!0)}),lightbox.on("close",()=>{const slideSelected=this.sliderGallery.selected(lightbox.pswp.currIndex);lightbox.pswp._lastActiveElement=slideSelected?slideSelected.querySelector("button"):document.activeElement}),lightbox.init(),this._photoswipe=lightbox}onVariantChanged(event){const currentVariant=event.detail.variant;if(currentVariant.featured_media&&this.sliderGallery){const newMedia=this.sliderGallery.querySelector(`[data-media-id="${currentVariant.featured_media.id}"]`);if(newMedia===null)return;this.gangOption&&(this.sliderGallery.items.forEach(item=>item.hidden=item.dataset.gangConnect!==newMedia.dataset.gangConnect),this.sliderGallery.reset(),this.sliderDots&&(this.sliderDots.items.forEach(item=>item.hidden=item.dataset.gangConnect!==newMedia.dataset.gangConnect),this.sliderDots.reset(),this.sliderDots.resetIndexe
18s(),this.sliderDots.transitionTo(1,!0))),this.setActiveMedia(currentVariant.featured_media.id,this.hideVariants),this.mediaPreview&&(this.sliderGallery.querySelectorAll("[data-media-id]").forEach(media=>media.classList.remove("xl:hidden")),this.mediaPreview.parentNode.replaceChild(newMedia.cloneNode(!0),this.mediaPreview),newMedia.classList.add("xl:hidden")),this.countMediaGallery()}}onSlideChange(event){const activeMedia=event.detail.currentElement;this.playActiveMedia(activeMedia),this.viewInSpaceButton&&(activeMedia.getAttribute("data-media-type")==="model"?this.viewInSpaceButton.setAttribute("data-shopify-model3d-id",activeMedia.getAttribute("data-media-id")):this.viewInSpaceButton.setAttribute("data-shopify-model3d-id",this.viewInSpaceButton.getAttribute("data-shopify-model3d-default-id")))}setActiveMedia(mediaId,prepend){const activeMedia=this.sliderGallery.querySelector(`[data-media-id="${mediaId}"]`);if(prepend){if(activeMedia.parentElement.prepend(activeMedia),this.sliderGallery.reset(),this.sliderDots){const activeThumbnail=this.sliderDots.querySelector(`[data-media-id="${mediaId}"]`);activeThumbnail.parentElement.prepend(activeThumbnail),this.sliderDots.reset(),this.sliderDots.resetIndexes()}this.sliderGallery.select(0,!0)}else this.sliderGallery.select(this.sliderGallery.itemsToShow.indexOf(activeMedia)+1,!0);if(this.gangOption&&this.sliderGallery.select(1,!0),theme.config.mqlSmall){const quickViewModal=this.closest("quick-view");quickViewModal?quickViewModal.querySelector(".quick-view__content").scrollTo({top:activeMedia.getBoundingClientRect().top,behavior:theme.config.motionReduced?"auto":"smooth"}):window.scrollTo({top:activeMedia.getBoundingClientRect().top+window.scrollY-95,behavior:theme.config.motionReduced?"auto":"smooth"})}}playActiveMedia(activeMedia){if(typeof activeMedia>"u")return;const deferredMedia=activeMedia.querySelector(".deferred-media");this.sliderGallery.querySelectorAll(".deferred-media").forEach(media=>{deferredMedia===media?media.play():media.pause()})}pauseAllMedia(){this.sliderGallery&&this.sliderGallery.querySelectorAll("[data-media-id]").forEach((media,index)=>{if(index>0){const deferredMedia=media.querySelector(".deferred-media");deferredMedia&&typeof deferredMedia.pause=="function"&&deferredMedia.pause()}})}openZoom(index=0){let dataSource=this.sliderGallery.itemsToShow.map(media=>{const image=media.querySelector("img");if(media.dataset.mediaType==="image")return{thumbnailElement:image,src:image.src,srcset:image.srcset,msrc:image.currentSrc||image.src,width:parseInt(image.getAttribute("width")),height:parseInt(image.getAttribute("height")),alt:image.alt,thumbCropped:!0};if(media.dataset.mediaType==="video"||media.dataset.mediaType==="external_video"||media.dataset.mediaType==="model"){const video=media.querySelector(".deferred-media");return{thumbnailElement:image,domElement:video,type:media.dataset.mediaType,src:image.src,srcset:image.srcset,msrc:image.currentSrc||image.src,width:800,height:800/video.dataset.aspectRatio,alt:image.alt,thumbCropped:!0}}});if(this.mediaPreview&&this.mediaPreview.offsetParent&&this.mediaPreview.dataset.mediaType==="image"){const image=this.mediaPreview.querySelector("img");dataSource.push({thumbnailElement:image,src:image.src,srcset:image.srcset,msrc:image.currentSrc||image.src,width:parseInt(image.getAttribute("width")),height:parseInt(image.getAttribute("height")),alt:image.alt,thumbCropped:!0}),index===-1&&(index=dataSource.length-1)}this.photoswipe.loadAndOpen(index,dataSource)}countMediaGallery(){let mediaCount=0;this.sliderGallery&&(this.sliderGallery.querySelectorAll("[data-media-id]").forEach(media=>{!media.classList.contains("xl:hidden")&&!media.hasAttribute("hidden")&&mediaCount++}),this.mediaPreview&&mediaCount++,mediaCount>1?this.classList.remove("with-only1"):this.classList.add("with-only1"))}}customElements&&customElements.define("media-gallery",MediaGallery);class MediaLightboxButton extends HTMLButtonElement{constructor(){super(),this.addEventListener("click",this.onButtonClick)}onButtonClick(){const media=this.closest("[data-media-id]"),sliderGallery=this.closest("slider-element"),openIndex=sli
18derGallery?sliderGallery.itemsToShow.indexOf(media):-1;this.dispatchEvent(new CustomEvent("lightbox:open",{bubbles:!0,detail:{index:openIndex}}))}}customElements.define("media-lightbox-button",MediaLightboxButton,{extends:"button"});class MediaHoverButton extends HTMLButtonElement{constructor(){super(),this.addEventListener("click",this.onButtonClick)}get zoomRatio(){return 2}onButtonClick(event){const media=this.closest('[data-media-type="image"]');if(media){const image=media.querySelector("img");this.gallery=this.closest("slider-element"),this.magnify(image),this.moveWithHover(image,event)}}createOverlay(image){const overlayImage=document.createElement("img");overlayImage.setAttribute("src",`${image.src}`);const overlay=document.createElement("media-hover-overlay");return this.prepareOverlay(overlay,overlayImage),this.toggleLoadingSpinner(image),overlayImage.onload=()=>{this.toggleLoadingSpinner(image),image.parentElement.insertBefore(overlay,image)},this.gallery&&this.gallery.classList.add("magnify"),overlay}prepareOverlay(container,image){container.setAttribute("class","media z-10 absolute top-0 left-0 w-full h-full"),container.setAttribute("aria-hidden","true"),container.style.backgroundImage=`url('${image.src}')`,container.style.cursor="zoom-out"}toggleLoadingSpinner(image){const loadingSpinner=image.parentElement;loadingSpinner.classList.toggle("loading"),loadingSpinner.classList.toggle("pointer-events-none")}moveWithHover(image,event){const ratio=image.height/image.width,container=event.target.getBoundingClientRect(),xPosition=event.clientX-container.left,yPosition=event.clientY-container.top,xPercent=`${xPosition/(image.clientWidth/100)}%`,yPercent=`${yPosition/(image.clientWidth*ratio/100)}%`;this.overlay.style.backgroundPosition=`${xPercent} ${yPercent}`,this.overlay.style.backgroundSize=`${image.width*this.zoomRatio}px`}magnify(image){this.overlay=this.createOverlay(image),this.overlay.onclick=()=>this.reset(),this.overlay.onmousemove=event=>this.moveWithHover(image,event),this.overlay.onmouseleave=()=>this.reset()}reset(){this.overlay.remove(),this.gallery&&this.gallery.classList.remove("magnify")}}customElements.define("media-hover-button",MediaHoverButton,{extends:"button"});class MediaDots extends SliderDots{constructor(){super(),theme.config.isTouch?new theme.initWhenVisible(this.resetIndexes.bind(this)):Motion.inView(this,this.resetIndexes.bind(this))}resetIndexes(){let newIndex=1;this.itemsToShow.forEach((item,index)=>{item.setAttribute("data-index",newIndex),item.setAttribute("aria-current",index===0?"true":"false"),newIndex++})}}customElements.define("media-dots",MediaDots);class XModal extends ModalElement{constructor(){super()}get shouldLock(){return!0}get shouldAppendToBody(){return!0}}customElements.define("x-modal",XModal);class LogoList extends HTMLElement{constructor(){super(),Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get childElement(){return this.firstElementChild}get maximum(){return parseInt(this.dataset.maximum||10)}get direction(){return this.dataset.direction||"left"}disconnectedCallback(){this.marquee&&(this.pause(),this.marquee.destroy())}init(){if(this.childElementCount===1){this.childElement.classList.add("animate");for(let index=0;index<this.maximum;index++)this.clone=this.childElement.cloneNode(!0),this.clone.setAttribute("aria-hidden",!0),this.appendChild(this.clone),this.clone.querySelectorAll(".media").forEach(media=>media.classList.remove("loading"));theme.config.isTouch?this.style.setProperty("--duration",`${33-parseInt(this.dataset.speed||16)}s`):(this.marquee=new Flickity(this,{prevNextButtons:!1,pageDots:!1,wrapAround:!0,freeScroll:!0,rightToLeft:this.direction==="right"}),this.marquee.x=0,this.play(),this.addEventListener("mouseenter",this.pause),this.addEventListener("mouseleave",this.play))}}play(){this.marquee.x-=parseInt(this.dataset.speed||16)*.1,this.marquee.settle(this.marquee.x),this.requestId=requestAnimationFrame(this.play.bind(this))}pause(){this.requestId&&(cancelAnimationFrame(this.requestId),this.requestId=void 0)}}customElements.define("logo-list",LogoList);class TextScrolling extends HTMLElement{constructor(){super(),this.items.forEac
18h(item=>{const header=item.querySelector(".heading");Motion.scroll(Motion.animate(header,{opacity:[0,0,1,1,1,0,0]}),{target:header,offsets:["33vh","66vh"]})})}get items(){return this._items=this._items||Array.from(this.children)}}customElements.define("text-scrolling",TextScrolling);class TabsElement extends HTMLElement{constructor(){super(),this.selectedIndex=this.selectedIndex,this.buttons.forEach((button,index)=>button.addEventListener("click",()=>this.selectedIndex=index)),Shopify.designMode&&this.addEventListener("shopify:block:select",event=>this.selectedIndex=this.buttons.indexOf(event.target))}static get observedAttributes(){return["selected-index"]}get selectedIndex(){return parseInt(this.getAttribute("selected-index"))||0}set selectedIndex(index){this.setAttribute("selected-index",Math.min(Math.max(index,0),this.buttons.length-1).toString())}get buttons(){return this._buttons=this._buttons||Array.from(this.querySelectorAll('button[role="tab"]'))}get indicators(){return this._indicators=this._indicators||Array.from(this.querySelectorAll(".indicators"))}attributeChangedCallback(name,oldValue,newValue){if(this.buttons.forEach((button,index)=>{button.classList.toggle("button--primary",index===parseInt(newValue)),button.classList.toggle("button--secondary",index!==parseInt(newValue)),button.disabled=index===parseInt(newValue)}),this.indicators.forEach((button,index)=>{button.hidden=index!==parseInt(newValue)}),name==="selected-index"&&oldValue!==null&&oldValue!==newValue){const fromButton=this.buttons[parseInt(oldValue)],toButton=this.buttons[parseInt(newValue)];this.transition(document.getElementById(fromButton.getAttribute("aria-controls")),document.getElementById(toButton.getAttribute("aria-controls")))}}async transition(fromPanel,toPanel){await Motion.animate(fromPanel,{transform:["translateY(0)","translateY(2rem)"],opacity:[1,0]},{duration:.15}).finished,fromPanel.hidden=!0,toPanel.hidden=!1,Motion.animate(toPanel,{transform:["translateY(2rem)","translateY(0)"],opacity:[0,1]},{duration:.15}).finished,toPanel.querySelector("motion-list")?.load()}}customElements.define("tabs-element",TabsElement);class CountdownTimer extends HTMLElement{constructor(){super(),Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get date(){return this._date=this._date||new Date(`${this.dataset.month}/${this.dataset.day}/${this.dataset.year} ${this.dataset.hour}:${this.dataset.minute}:00`)}get isCompact(){return this.dataset.compact==="true"||this.dataset.compact==="mobile"&&theme.config.mqlSmall}init(){this.calculate(),this.timerInterval=setInterval(this.calculate.bind(this),1e3)}calculate(){const now=new Date,countTo=new Date(this.date),timeDifference=countTo-now;if(timeDifference<0){this.complete();return}const secondsInADay=3600*1e3*24,secondsInAHour=3600*1e3,days=Math.floor(timeDifference/secondsInADay*1),hours=Math.floor(timeDifference%secondsInADay/secondsInAHour*1),mins=Math.floor(timeDifference%secondsInADay%secondsInAHour/(60*1e3)*1),secs=Math.floor(timeDifference%secondsInADay%secondsInAHour%(60*1e3)/1e3*1);if(this.isCompact){const dayHTML=days>0?`<div class="countdown__item"><p>${days}${theme.dateStrings.d}</p></div>`:"",hourHTML=`<div class="countdown__item"><p>${hours}${theme.dateStrings.h}</p></div>`,minHTML=`<div class="countdown__item"><p>${mins}${theme.dateStrings.m}</p></div>`,secHTML=`<div class="countdown__item"><p>${secs}${theme.dateStrings.s}</p></div>`;this.innerHTML=dayHTML+hourHTML+minHTML+secHTML}else{const dayHTML=days>0?`<div class="countdown__item"><p>${days}</p><span>${days===1?theme.dateStrings.day:theme.dateStrings.days}</span></div>`:"",hourHTML=`<div class="countdown__item"><p>${hours}</p><span>${hours===1?theme.dateStrings.hour:theme.dateStrings.hours}</span></div>`,minHTML=`<div class="countdown__item"><p>${mins}</p><span>${mins===1?theme.dateStrings.minute:theme.dateStrings.minutes}</span></div>`,secHTML=`<div class="countdown__item"><p>${secs}</p><span>${secs===1?theme.dateStrings.second:theme.dateStrings.seconds}</span></div>`;this.innerHTML=dayHTML+hourHTML+minHTML+secHTML}}complete(){this.timerInterval&&clearInterval(this.timerInterval),this.hidden=!0}}customElements.define("countdown-timer",CountdownTimer);class ImageComparison extends HTMLElement{constructor(){super(),Motion.inView(this,async()=>{await theme.utils.imageLoaded(this.media),this.init()})}get button(){return this.querySelector("button")}get bounding(){return this.getBoundingClientRect()}get horizontal(){return this.dataset.layout==="horizontal"}get media(){return Array.from(this.querySelectorAll("img, svg"))}init(){this.active=!1,this.button.addEventListener("touchstart",this.startHandler.bind(this),theme.supportsPassive?{passive:!0}:!1),document.body.addEventListener("touchend",this.endHandler.bind(this),theme.supportsPassive?{passive:!0}:!1),document.body.addEventListener("touchmove",this.onHandler.bind(this),theme.supportsPassive?{passive:!0}:!1),this.button.addEventListener("mousedown",this.startHandler.bind(this)),document.body.addEventListener("mouseup",this.endHandler.bind(this)),document.body.addEventListener("mousemove",this.onHandler.bind(this)),setTimeout(()=>this.animate(),1e3)}animate(){this.setAttribute("animate",""),this.classList.add("animating"),setTimeout(()=>{this.classList.remove("animating")},1e3)}startHandler(){this.active=!0,this.classList.add("scrolling")}endHandler(){this.active=!1,this.classList.remove("scrolling")}onHandler(e){if(!this.active)return;const event=e.touches&&e.touches[0]||e;let x=this.horizontal?event.pageX-(this.bounding.left+window.scrollX):event.pageY-(this.bounding.top+window.scrollY);this.scrollIt(x)}scrollIt(x){const distance=this.horizontal?this.clientWidth:this.clientHeight,max=distance-20,mousePercent=Math.max(20,Math.min(x,max))*100/distance;this.style.setProperty("--percent",mousePercent+"%")}}customElements.define("image-comparison",ImageComparison);class LookbookElement extends HTMLElement{constructor(){super(),Motion.inView(this,async()=>{await theme.utils.imageLoaded(this.media),this.init()})}get media(){return Array.from(this.querySelectorAll("img, svg"))}get items(){return this._items=this._items||Array.from(this.querySelectorAll(".hotspot"))}
18init(){if(this.items.forEach(item=>item.addEventListener("mouseenter",event=>this.select(this.items.indexOf(event.target)))),Shopify.designMode){const section=this.closest(".shopify-section");section.addEventListener("shopify:section:select",this.animate.bind(this)),section.addEventListener("shopify:section:deselect",this.closeAll.bind(this)),this.addEventListener("shopify:block:select",event=>this.open(this.items.indexOf(event.target)))}setTimeout(()=>this.animate(),1e3)}animate(){this.openAll(),setTimeout(()=>this.closeAll(),3e3)}open(selectedIndex){this.items.forEach((item,index)=>item.classList.toggle("active",selectedIndex===index))}openAll(){this.items.forEach(item=>item.classList.add("active"))}closeAll(){this.items.forEach(item=>item.classList.remove("active"))}select(selectedIndex){this.items.forEach((item,index)=>item.setAttribute("aria-current",selectedIndex===index?"true":"false")),this.dispatchEvent(new CustomEvent("lookbook:change",{bubbles:!0,detail:{index:selectedIndex}}))}}customElements.define("lookbook-element",LookbookElement);class ShopTheLook extends HTMLElement{constructor(){super(),this.lookbook.addEventListener("lookbook:change",event=>this.carousel.select(event.detail.index)),this.carousel.addEventListener("carousel:change",event=>this.lookbook.select(event.detail.index))}get lookbook(){return this.querySelector("lookbook-element")}get carousel(){return this.querySelector("carousel-element")}}customElements.define("shop-the-look",ShopTheLook);class SpinningText extends HTMLElement{constructor(){super(),theme.config.isTouch?new theme.initWhenVisible(this.init.bind(this)):Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}get string(){let string=this.dataset.string;return string=string.replace(/ +/g," "),"\u2022"+string.replace(/ +/g,"\u2022")}init(){const canTrig=CSS.supports("(top: calc(sin(1) * 1px))"),OPTIONS={TEXT:this.string,SIZE:2,SPACING:2},HEADING=document.createElement("div"),chars=OPTIONS.TEXT.split("");this.style.setProperty("--char-count",chars.length);for(let c=0;c<chars.length;c++)HEADING.innerHTML+=`<span aria-hidden="true" class="split-char" style="--char-index: ${c};">${chars[c]}</span>`;HEADING.innerHTML+=`<span class="sr-only">${OPTIONS.TEXT}</span>`,HEADING.classList="split-chars",this.style.setProperty("--font-size",OPTIONS.SIZE),this.style.setProperty("--character-width",OPTIONS.SPACING),this.style.setProperty("--radius",canTrig?"calc((var(--character-width) / sin(var(--inner-angle))) * -1ch)":`calc( 19 (${OPTIONS.SPACING} / ${Math.sin(360/this.children.length/(180/Math.PI))}) 20 * -1ch 21 )`),this.appendChild(HEADING)}}customElements.define("spinning-text",SpinningText);class SlideshowElement extends HTMLElement{constructor(){super(),this.selectedIndex=this.selectedIndex,theme.config.isTouch?new theme.initWhenVisible(this.init.bind(this)):Motion.inView(this,this.init.bind(this),{margin:"200px 0px 200px 0px"})}static get observedAttributes(){return["selected-index"]}get selectedIndex(){return parseInt(this.getAttribute("selected-index"))||0}set selectedIndex(index){this.setAttribute("selected-index",Math.min(Math.max(index,0),this.items.length-1).toString())}get items(){return this._items=this._items||Array.from(this.children)}get autoplay(){return this.hasAttribute("autoplay")}get speed(){return this.hasAttribute("autoplay")?parseInt(this.getAttribute("autoplay-speed"))*1e3:5e3}init(){const that=this;if(this.items.length>1)this.slider=new Flickity(this,{accessibility:!1,pageDots:!1,prevNextButtons:!1,wrapAround:!0,rightToLeft:theme.config.rtl,autoPlay:this.autoplay?this.speed:!1,on:{ready:function(){const{selectedElement}=this;that.onReady(selectedElement)}}}),this.slider.on("change",this.onChange.bind(this)),this.addEventListener("slider:previous",()=>this.slider.previous()),this.addEventListener("slider:next",()=>this.slider.next()),this.addEventListener("slider:play",()=>this.slider.playPlayer()),this.addEventListener("slider:pause",()=>this.slider.pausePlayer()),Shopify.designMode&&this.addEventListener("shopify:block:select",event=>this.slider.select(this.items.indexOf(event.target)));else if(this.items.length===1){const selectedElement=this.firstChild;that.onReady(selectedElement)}}disconnectedCallback(){this.slider&&this.slider.destroy()}attributeChangedCallback(name,oldValue,newValue){if(name==="selected-index"&&oldValue!==null&&oldValue!==newValue){const fromElement=this.items[parseInt(oldValue)],toElement=this.items[parseInt(newValue)];fromElement.dataset.type==="video"&&theme.utils.visibleMedia(fromElement.querySelectorAll("video-media"))?.pause(),toElement.dataset.type==="image"?toElement.querySelector("animate-element")?.refresh():theme.utils.visibleMedia(toElement.querySelectorAll("video-media"))?.play()}}onChange(){this.selectedIndex=this.slider.selectedIndex,this.dispatchEvent(new CustomEvent("slider:change",{bubbles:!0,detail:{currentPage:this.slider.selectedIndex}}))}select(selectedIndex){this.slider.select(selectedIndex)}onReady(selectedElement){selectedElement.dataset.type==="video"&&theme.utils.visibleMedia(selectedElement.querySelectorAll("video-media"))?.play(),theme.config.isTouch||selectedElement.querySelector("animate-element")?.refresh()}}customElements.define("slideshow-element",SlideshowElement);class SlideshowWords extends HTMLElement{constructor(){super(),this.selectedIndex=this.selectedIndex,this.controlledElement&&this.controlledElement.addEventListener("slider:change",event=>this.selectedIndex=event.detail.currentPage)}static get observedAttributes(){return["selected-index"]}get selectedIndex(){return parseInt(this.getAttribute("selected-index"))||0}set selectedIndex(index){this.setAttribute("selected-index",Math.min(Math.max(index,0),this.items.length-1).toString())}get controlledElement(){return this.hasAttribute("aria-controls")?document.getElementById(this.getAttribute("aria-controls")):null}get items(){return this._items=this._items||Array.from(this.children)}attributeChangedCallback(name,oldValue,newValue){name==="selected-index"&&oldValue!==null&&oldValue!==newValue&&this.transition(this.items[parseInt(oldValue)],this.items[parseInt(newValue)])}transition(fromElement,toElement){const fromWords=Array.from(fromElement.querySelectorAll("animate-element")),toWords=Array.from(toElement.querySelectorAll("animate-element"));fromWords.forEach(element=>element.reset()),setTimeout(()=>
21{this.items.forEach(item=>{item.setAttribute("aria-current",parseInt(item.dataset.index)===parseInt(this.selectedIndex)?"true":"false")}),toWords.forEach(element=>element.refresh())},500+30*fromWords.length)}}customElements.define("slideshow-words",SlideshowWords);class ControlButton extends HTMLButtonElement{constructor(){super(),this.addEventListener("click",this.onClick)}get controlledElement(){return this.hasAttribute("aria-controls")?document.getElementById(this.getAttribute("aria-controls")):null}get paused(){return this.hasAttribute("paused")}static get observedAttributes(){return["paused"]}attributeChangedCallback(name,oldValue,newValue){if(name==="paused"){if(oldValue===null&&newValue==="")return(this.controlledElement??this).dispatchEvent(new CustomEvent("slider:pause",{bubbles:!0}));if(newValue===null)return(this.controlledElement??this).dispatchEvent(new CustomEvent("slider:play",{bubbles:!0}))}}onClick(){this.paused?this.removeAttribute("paused"):this.setAttribute("paused","")}}customElements.define("control-button",ControlButton,{extends:"button"});class QuickView extends XModal{constructor(){super()}get selector(){return".quick-view__content"}beforeShow(){super.beforeShow(),this.quickview()}afterShow(){super.afterShow(),document.dispatchEvent(new CustomEvent("quickview:open",{detail:{productUrl:this.dataset.productUrl}}))}afterHide(){super.afterHide();const drawerContent=this.querySelector(this.selector);drawerContent.innerHTML=""}quickview(){const drawerContent=this.querySelector(this.selector),sectionUrl=`${this.dataset.productUrl.split("?")[0]}?view=modal`;fetch(sectionUrl).then(response=>response.text()).then(responseText=>{setTimeout(()=>{const productElement=new DOMParser().parseFromString(responseText,"text/html").querySelector(this.selector);this.setInnerHTML(drawerContent,productElement.innerHTML),theme.a11y.trapFocus(this,this.focusElement),window.Shopify&&Shopify.PaymentButton&&Shopify.PaymentButton.init(),document.dispatchEvent(new CustomEvent("quickview:loaded",{detail:{productUrl:this.dataset.productUrl}}))},200)}).catch(e=>{console.error(e)})}setInnerHTML(element,innerHTML){element.innerHTML=innerHTML,element.querySelectorAll("script").forEach(oldScriptTag=>{const newScriptTag=document.createElement("script");Array.from(oldScriptTag.attributes).forEach(attribute=>{newScriptTag.setAttribute(attribute.name,attribute.value)}),newScriptTag.appendChild(document.createTextNode(oldScriptTag.innerHTML)),oldScriptTag.parentNode.replaceChild(newScriptTag,oldScriptTag)})}}customElements.define("quick-view",QuickView);class StickyBuyButton extends HTMLElement{constructor(){if(super(),this.scopeFrom=document.getElementById(this.getAttribute("form")),this.scopeTo=document.querySelector(".footer-group"),!this.scopeFrom||!this.scopeTo)return;const intersectionObserver=new IntersectionObserver(this.handleIntersection.bind(this));intersectionObserver.observe(this.scopeFrom),intersectionObserver.observe(this.scopeTo)}handleIntersection(entries){entries.forEach(entry=>{entry.target===this.scopeFrom&&(this.scopeFromPassed=entry.boundingClientRect.bottom<0),entry.target===this.scopeTo&&(this.scopeToReached=entry.isIntersecting)}),this.scopeFromPassed&&!this.scopeToReached?Motion.animate(this,{opacity:1,visibility:"visible",transform:["translateY(15px)","translateY(0)"]},{duration:1,easing:[.16,1,.3,1]}):Motion.animate(this,{opacity:0,visibility:"hidden",transform:["translateY(0)","translateY(15px)"]},{duration:1,easing:[.16,1,.3,1]})}}customElements.define("sticky-buy-button",StickyBuyButton);class StickyVariantMedia extends HTMLElement{constructor(){super(),this.onVariantChangedListener=this.onVariantChanged.bind(this)}get productForm(){return document.forms[this.getAttribute("form")]}get image(){return this._image=this._image||this.querySelector("img")}get widths(){return this.getAttribute("widths").split(",").map(width=>parseInt(width))}connectedCallback(){(this.productForm??document).addEventListener("variant:change",this.onVariantChangedListener)}disconnectedCallback(){(this.productForm??document).removeEventListener("variant:change",this.onVariantChangedListener)}onVariantChanged(event){const currentVariant=event.detail.variant;if(!currentVariant.featured_media)return;const image=new Image(currentVariant.featured_media.preview_image.width,currentVariant.featured_media.preview_image.height);image.alt=currentVariant.featured_media.alt,image.src=currentVariant.featured_media.preview_image.src,image.srcset=this.generateSrcset(currentVariant.featured_media.preview_image),image.sizes=this.image.sizes,this.replaceChildren(image)}generateSrcset(image){return this.widths.filter(width=>width<=image.width).map(width=>`${image.src}&width=${width} ${width}w`).join(", ")}}customElements.define("sticky-variant-media",StickyVariantMedia);class StickyVariantTitle extends HTMLElement{constructor(){super(),this.onVariantChangedListener=this.onVariantChanged.bind(this)}
21get productForm(){return document.forms[this.getAttribute("form")]}connectedCallback(){(this.productForm??document).addEventListener("variant:change",this.onVariantChangedListener)}disconnectedCallback(){(this.productForm??document).removeEventListener("variant:change",this.onVariantChangedListener)}onVariantChanged(event){const currentVariant=event.detail.variant;this.innerText=currentVariant.title}}customElements.define("sticky-variant-title",StickyVariantTitle),document.addEventListener("DOMContentLoaded",function(){var toggleLinks=document.querySelectorAll(".toggle-pd");toggleLinks.forEach(function(link){link.addEventListener("click",function(event){event.preventDefault();var container=this.closest(".product__description");if(container){var preview=container.querySelector(".pdWrapper-preview"),full=container.querySelector(".pdWrapper-full");window.getComputedStyle(preview).display!=="none"?(preview.style.display="none",full.style.display="block"):(preview.style.display="block",full.style.display="none")}})})}),document.addEventListener("DOMContentLoaded",()=>{const slider=document.querySelector(".new-slider");if(!slider)return;const slides=Array.from(slider.querySelectorAll(".main-new-slider .product__media"));let currentIndex=slides.findIndex(slide=>getComputedStyle(slide).display!=="none");currentIndex===-1&&(currentIndex=0);const showSlide=i=>{slides.forEach((slide,idx)=>{const isCurrent=idx===i;slide.style.display=isCurrent?"":"none",slide.classList.toggle("active",isCurrent),slide.classList.toggle("inactive",!isCurrent)})},getFilteredIndices=()=>slides.map((s,idx)=>idx).filter(idx=>slides[idx].classList.contains("active-variant"));showSlide(currentIndex);const nextBtn=slider.querySelector('[data-direction="next"]'),prevBtn=slider.querySelector('[data-direction="prev"]');nextBtn.addEventListener("click",()=>{const filtered=getFilteredIndices();if(!filtered.length)return;const pos=filtered.indexOf(currentIndex),nextPos=pos===-1?0:(pos+1)%filtered.length;currentIndex=filtered[nextPos],showSlide(currentIndex)}),prevBtn.addEventListener("click",()=>{const filtered=getFilteredIndices();if(!filtered.length)return;const pos=filtered.indexOf(currentIndex),prevPos=pos===-1?filtered.length-1:(pos-1+filtered.length)%filtered.length;currentIndex=filtered[prevPos],showSlide(currentIndex)}),document.querySelectorAll(".product_thumbnail[data-index]").forEach(thumb=>{thumb.addEventListener("click",()=>{const idx=parseInt(thumb.dataset.index,10)-1;!isNaN(idx)&&idx>=0&&idx<slides.length&&(currentIndex=idx,showSlide(currentIndex))})})}),document.addEventListener("DOMContentLoaded",()=>{const slides=Array.from(document.querySelectorAll(".main-new-slider .product__media")),thumbs=Array.from(document.querySelectorAll(".thumbnail-slider .product_thumbnail")),variantMediaMap={};document.querySelectorAll(".filter_image").forEach(el=>{const vid=String(el.dataset.varid),mid=String(el.dataset.img);variantMediaMap[vid]||(variantMediaMap[vid]=[]),variantMediaMap[vid].push(mid)}
21),slides.forEach(slide=>{const handle=String(slide.dataset.mediaHandle);let tag="common";for(const vid in variantMediaMap)if(variantMediaMap[vid].includes(handle)){tag=vid;break}slide.dataset.varid=tag}),thumbs.forEach(thumb=>{const idx=parseInt(thumb.dataset.index,10)-1;slides[idx]&&(thumb.dataset.varid=slides[idx].dataset.varid)});function updateProductMediaForVariant(variantId){slides.forEach(slide=>{const v=slide.dataset.varid,isMatch=v===variantId||v==="common";slide.style.display=isMatch?"":"none",slide.classList.toggle("active-variant",isMatch)})}function updateThumbnailsForVariant(variantId){thumbs.forEach(thumb=>{thumb.style.display=thumb.dataset.varid===variantId||thumb.dataset.varid==="common"?"":"none";const firstVariantThumb=thumbs.find(thumb2=>thumb2.style.display!=="none"&&thumb2.dataset.varid===variantId);if(firstVariantThumb)firstVariantThumb.click();else{const firstCommonThumb=thumbs.find(thumb2=>thumb2.style.display!=="none"&&thumb2.dataset.varid==="common");firstCommonThumb&&firstCommonThumb.click()}})}document.querySelectorAll('input[name="id"]').forEach(input=>{input.addEventListener("change",e=>{const v=e.target.value;updateProductMediaForVariant(v),updateThumbnailsForVariant(v)})}),setTimeout(()=>{const initial=document.querySelector('input[name="id"]:checked')||document.querySelector('input[name="id"]');initial&&(updateProductMediaForVariant(initial.value),updateThumbnailsForVariant(initial.value))},500)});function showSupplementFacts(variantId){const container=document.querySelector(".nutrition_facts_variant_based");if(!container)return;container.innerHTML="";const factDiv=document.querySelector(`.suppliment_fact_html[data-varid="${variantId}"]`);factDiv&&(container.innerHTML=factDiv.innerHTML)}document.querySelectorAll('input[name="id"]').forEach(input=>{input.addEventListener("change",e=>{showSupplementFacts(e.target.value)})});const preselected=document.querySelector('input[name="id"]:checked');preselected&&showSupplementFacts(preselected.value);function addProductToCart(variantId,quantity=1,properties={},onSuccess,onError){const payload={id:variantId,quantity};Object.keys(properties).length>0&&(payload.properties=properties),fetch("/cart/add.js",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(payload)}).then(res=>res.ok?res.json():res.json().then(err=>Promise.reject(err))).then(data=>{typeof onSuccess=="function"&&onSuccess(data);const cartDrawerBtn=document.querySelector(".cart-drawer-button");cartDrawerBtn&&cartDrawerBtn.click()}).catch(error=>{console.error("Add to cart failed:",error),typeof onError=="function"&&onError(error)})}document.addEventListener("click",function(e){if(e.target&&e.target.classList.contains("add-to-cart-button")){e.preventDefault();const form=e.target.closest("form");if(!form)return;const variantSelect=form.querySelector(".product-variant-select"),quantityInput=form.querySelector('input[name="quantity"]'),variantId=variantSelect?.value,quantity=parseInt(quantityInput?.value||"1",10);if(!variantId){console.error("Variant ID is missing");return}addProductToCart(variantId,quantity,{},null,err=>console.log("Failed to add product to cart."))}}),(function(){const $$=(sel,ctx=document)=>Array.from((ctx||document).querySelectorAll(sel)),$=(sel,ctx=document)=>(ctx||document).querySelector(sel),text=el=>el?el.textContent.trim():"",escapeHtml=s=>String(s).replace(/[&<>"']/g,m=>({"&":"&","<":"<",">":">",'"':""","'":"'"})[m]),norm=s=>(s||"").toLowerCase().normalize("NFD").replace(/[\u0300-\u036f]/g,""),debounce=(fn,ms=140)=>{let t;return(...a)=>{clearTimeout(t),t=setTimeout(()=>fn(...a),ms)}},ID_ALIASES={},homeEl=$(".support-main-home")||$(".support-main"),allSections=()=>$$(".support-main-question");function hide(el){el&&(el.style.display="none")}function show(el){el&&(el.style.display="")}function hideAllSections(){allSections().forEach(sec=>{hide(sec),sec.classList.remove("is-active","answers-only");const qCol=$(".support-question-block",sec);qCol&&show(qCol),$$(".main-answer",sec).forEach(a=>{hide(a),a.classList.remove("is-open")}
21),$$(".main-question",sec).forEach(q=>{q.classList.remove("is-open"),q.setAttribute("aria-expanded","false")})})}function resolveSectionId(rawId){return ID_ALIASES[rawId]||rawId}function getSectionById(rawId){const id=resolveSectionId(rawId);return document.getElementById(id)||$(`.support-main-question[id*="${CSS.escape(id)}"]`)}function showSection(rawId){const sec=getSectionById(rawId);return sec?(hide(homeEl),hideAllSections(),show(sec),sec.classList.add("is-active"),showBreadcrumb(),sec):null}function showHome(){hideAllSections(),show(homeEl),hideBreadcrumb()}function sectionLabelFrom(blockOrSection){const blockText=$(".support-content-text",blockOrSection);if(blockText)return text(blockText).toUpperCase();const h2=$(".main-question-title h2",blockOrSection);return(text(h2)||"SECTION").toUpperCase()}function openAnswer(sectionEl,questionEl){const key=questionEl.getAttribute("data-question");if(!key)return;const ans=$(`.main-answer[data-answer="${key}"]`,sectionEl);if(!ans)return;$$(".main-answer",sectionEl).forEach(a=>{hide(a),a.classList.remove("is-open")}),$$(".main-question",sectionEl).forEach(q=>{q.classList.remove("is-open"),q.setAttribute("aria-expanded","false")}),show(ans),ans.classList.add("is-open"),questionEl.classList.add("is-open"),questionEl.setAttribute("aria-expanded","true");const qCol=$(".support-question-block",sectionEl);qCol&&hide(qCol),sectionEl.classList.add("answers-only"),ans.scrollIntoView({behavior:"smooth",block:"start"})}function ensureCrumb(){let bc=$(".support-breadcrumb");if(!bc){bc=document.createElement("nav"),bc.className="support-breadcrumb",bc.setAttribute("aria-label","Breadcrumb"),bc.innerHTML='<ol class="crumbs" role="list"></ol>';const anchor=homeEl||allSections()[0];anchor&&anchor.parentNode?anchor.parentNode.insertBefore(bc,anchor):document.body.insertBefore(bc,document.body.firstChild)}return bc}function hideBreadcrumb(){const bc=$(".support-breadcrumb");bc&&hide(bc)}function showBreadcrumb(){const bc=$(".support-breadcrumb");bc&&show(bc)}function renderBreadcrumb({sectionKey=null,sectionLabel=null,questionLabel=null}){const bc=ensureCrumb(),parts=[];showBreadcrumb(),parts.push('<li><a href="#" data-bc="home" class="crumb-link">HOME</a></li>'),sectionKey&§ionLabel&&parts.push(`<li><a href="#" data-bc="section" data-id="${encodeURIComponent(sectionKey)}" class="crumb-link">${escapeHtml(sectionLabel)}</a></li>`),questionLabel&&parts.push(`<li aria-current="page">${escapeHtml(questionLabel)}</li>`),$(".crumbs",bc).innerHTML=parts.join("")}function setHash(sectionKey,questionKey=""){const safeSection=encodeURIComponent(sectionKey||""),safeQuestion=questionKey?"/"+encodeURIComponent(questionKey):"",next="#"+safeSection+safeQuestion;location.hash!==next&&history.replaceState(null,"",next)}function parseHash(hashStr=location.hash){const raw=(hashStr||"").replace(/^#/,"");if(!raw)return{sectionKey:"",questionKey:""};const[secRaw,qRaw=""]=raw.split("/");return{sectionKey:decodeURIComponent(secRaw||""),questionKey:decodeURIComponent(qRaw||"")}}function openFromHash(){const{sectionKey,questionKey}=parseHash();
21if(!sectionKey){showHome(),hideBreadcrumb();return}const sec=showSection(sectionKey);if(!sec)return;const secLabel=sectionLabelFrom(sec)||sectionKey.toUpperCase();if(questionKey){const qEl=$(`.main-question[data-question="${CSS.escape(questionKey)}"]`,sec);if(qEl){openAnswer(sec,qEl);const qLabel=text($("h3",qEl))||"QUESTION";renderBreadcrumb({sectionKey,sectionLabel:secLabel,questionLabel:qLabel});return}}const qCol=$(".support-question-block",sec);qCol&&show(qCol),renderBreadcrumb({sectionKey,sectionLabel:secLabel})}function deAlias(id){for(const k in ID_ALIASES)if(ID_ALIASES[k]===id)return k;return id}document.addEventListener("click",e=>{const block=e.target.closest(".support-block");if(!block)return;const sectionKey=block.getAttribute("data-id");if(!sectionKey||!showSection(sectionKey))return;const label=sectionLabelFrom(block)||sectionKey.toUpperCase();renderBreadcrumb({sectionKey,sectionLabel:label}),setHash(sectionKey)}),document.addEventListener("click",e=>{const q=e.target.closest(".main-question");if(!q)return;const sec=q.closest(".support-main-question");if(!sec||!sec.classList.contains("is-active"))return;openAnswer(sec,q);const secLabel=sectionLabelFrom(sec),qLabel=text($("h3",q))||"QUESTION",secId=deAlias(sec.getAttribute("id")),qKey=q.getAttribute("data-question")||"";renderBreadcrumb({sectionKey:secId,sectionLabel:secLabel,questionLabel:qLabel}),setHash(secId,qKey)}),document.addEventListener("click",e=>{const a=e.target.closest(".crumb-link");if(!a)return;const role=a.getAttribute("data-bc");if(role){if(e.preventDefault(),role==="home"){showHome(),hideBreadcrumb(),history.replaceState(null,"",location.pathname+location.search);return}if(role==="section"){const sectionKey=decodeURIComponent(a.getAttribute("data-id")||""),sec=showSection(sectionKey);if(!sec)return;const qCol=$(".support-question-block",sec);qCol&&show(qCol),$$(".main-answer",sec).forEach(a2=>{hide(a2),a2.classList.remove("is-open")});const secLabel=sectionLabelFrom(sec)||sectionKey.toUpperCase();renderBreadcrumb({sectionKey,sectionLabel:secLabel}),setHash(sectionKey)}}}),$$(".main-question").forEach(q=>{q.setAttribute("role","button"),q.setAttribute("tabindex","0"),q.setAttribute("aria-expanded","false")}),document.addEventListener("keydown",e=>{if((e.key==="Enter"||e.key===" ")&&e.target.classList?.contains("main-question")){e.preventDefault();const sec=e.target.closest(".support-main-question");if(!sec||!sec.classList.contains("is-active"))return;openAnswer(sec,e.target);const secLabel=sectionLabelFrom(sec),qLabel=text($("h3",e.target))||"QUESTION",secId=deAlias(sec.id),qKey=e.target.getAttribute("data-question")||"";renderBreadcrumb({sectionKey:secId,sectionLabel:secLabel,questionLabel:qLabel}),setHash(secId,qKey)}}),window.addEventListener("hashchange",openFromHash);const heroInput=$('.hero .search input[type="search"]')||$('input[type="search"]');if(!heroInput)return;const INDEX=[];allSections().forEach(sec=>{const sectionId=sec.id||"",sectionName=text($(".main-question-title h2",sec))||sectionId;$$(".main-question",sec).forEach(q=>{const qKey=q.getAttribute("data-question")||"",qTitle=text($("h3",q)),ans=$(`.main-answer[data-answer="${qKey}"]`,sec),body=text($(".main-answer-content",ans))||text(ans);INDEX.push({sectionId,sectionName,qKey,title:qTitle,body})})});function tokenize(q){return norm(q).split(/[\s,./_-]+/).filter(Boolean)}function scoreRow(row,terms,phrase){const t=norm(row.title),b=norm(row.body);let s=0;phrase&&t.includes(phrase)&&(s+=6),phrase&&b.includes(phrase)&&(s+=2);for(const term of terms)term&&(t.includes(term)&&(s+=3),b.includes(term)&&(s+=1),t.startsWith(term)&&(s+=.5));return t===phrase&&(s+=4),s}function goToArticle(sectionId,qKey){const sec=showSection(sectionId);if(!sec)return;const qEl=$(`.main-question[data-question="${CSS.escape(qKey)}"]`,sec);if(!qEl)return;openAnswer(sec,qEl);const secLabel=sectionLabelFrom(sec)||sectionId.toUpperCase(),qLabel=text($("h3",qEl))||"QUESTION";renderBreadcrumb({sectionKey:sectionId,sectionLabel:secLabel,questionLabel:qLabel}),setHash(sectionId,qKey),hideDropdown()}const sug=document.createElement("div");sug.className="support-suggestions",Object.assign(sug.style,{position:"absolute",left:"0",right:"0",top:"100%",zIndex:"50",background:"#fff",border:"1px solid rgba(0,0,0,.12)",borderRadius:"12px",boxShadow:"0 12px 30px rgba(0,0,0,.12)",marginTop:"8px",padding:"6px",maxHeight:"340px",overflow:"auto",display:"none"});const wrap=heroInput.closest(".search")||heroInput.parentElement;wrap.style.position="relative",wrap.appendChild(sug);function hideDropdown(){sug.style.display="none",sug.innerHTML="",heroInput.setAttribute("aria-expanded","fal
21se")}function showDropdown(){sug.style.display="",heroInput.setAttribute("aria-expanded","true")}function renderSuggestions(items,terms){if(!items.length){hideDropdown();return}const mark=str=>{let out=str;return Array.from(new Set((terms||[]).filter(Boolean))).sort((a,b)=>b.length-a.length).forEach(w=>{const re=new RegExp(`(${w.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")})`,"ig");out=out.replace(re,"<mark>$1</mark>")}),out};sug.innerHTML=items.map((it,i)=>` 22 <button type="button" role="option" class="sug-item" data-sec="${escapeHtml(it.sectionId)}" data-q="${escapeHtml(it.qKey)}" 23 style="display:block; width:100%; text-align:left; background:#fff; border:none; border-radius:10px; padding:10px 12px; cursor:pointer;" 24 ${i===0?'aria-selected="true"':""}> 25 <div style="font-weight:800; margin-bottom:2px;" class="sug-title">${mark(escapeHtml(it.title))}</div> 26 <div style="font-size:12px; color:#5f6670;">${escapeHtml(it.sectionName)}</div> 27 </button> 28 `).join(""),showDropdown()}const onInput=debounce(val=>{const q=(val||"").trim();if(!q){hideDropdown();return}const phrase=norm(q),terms=tokenize(q),ranked=INDEX.map(r=>({r,s:scoreRow(r,terms,phrase)})).filter(x=>x.s>0).sort((a,b)=>b.s-a.s).slice(0,12).map(x=>x.r);renderSuggestions(ranked,terms)},120);heroInput.setAttribute("role","combobox"),heroInput.setAttribute("aria-autocomplete","list"),heroInput.setAttribute("aria-expanded","false"),heroInput.addEventListener("input",e=>onInput(e.target.value)),heroInput.addEventListener("keydown",e=>{const items=$$(".sug-item",sug);if(!items.length)return;const currentIndex=items.findIndex(el=>el.getAttribute("aria-selected")==="true"),setActive=idx=>{items.forEach(el=>el.removeAttribute("aria-selected")),items[idx]?.setAttribute("aria-selected","true"),items[idx]?.focus()};if(e.key==="ArrowDown")e.preventDefault(),setActive(Math.min(items.length-1,currentIndex<0?0:currentIndex+1));else if(e.key==="ArrowUp")e.preventDefault(),setActive(Math.max(0,currentIndex<0?items.length-1:currentIndex-1));else if(e.key==="Enter"){e.preventDefault();const active=items[currentIndex>=0?currentIndex:0];active&&goToArticle(active.dataset.sec,active.dataset.q)}else e.key==="Escape"&&hideDropdown()}),sug.addEventListener("click",e=>{const btn=e.target.closest(".sug-item");btn&&goToArticle(btn.dataset.sec,btn.dataset.q)}),document.addEventListener("click",evt=>{evt.target!==heroInput&&evt.target.closest(".support-suggestions")!==sug&&hideDropdown()}),heroInput.addEventListener("blur",()=>{setTimeout(()=>{(!document.activeElement||!document.activeElement.closest(".support-suggestions"))&&hideDropdown()},120)}),location.hash?openFromHash():(showHome(),hideBreadcrumb())})(); 29//# sourceMappingURL=/cdn/shop/t/168/assets/theme.js.map?v=94606045601239726681783495135
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.