PageSourceSearch

https://www.personalwine.com/cdn/shop/t/65/assets/custom.js?v=1999536664855955491788214101

js personalwine.com collected 2026-09-26 01:42:57 UTC 38,350 bytes, 31 lines download raw bytes

1(function(){const ROOT_SEL=".customily_option.accordion-design";function contrastText(rgb){const m=/rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(rgb||"");if(!m)return"#fff";const r=+m[1],g=+m[2],b=+m[3];return(.2126*r+.7152*g+.0722*b)/255>.6?"#111":"#fff"}function init(root){if(!root||root.dataset.ropeReady)return;root.dataset.ropeReady="1";const content=root.querySelector(".cl-option-content");if(!content)return;const bar=document.createElement("div");bar.className="rope-bar",bar.innerHTML=`
2      <div class="rope-left">
3        <span class="rope-value">Select Color</span>
4      </div>
5      <button type="button" class="rope-toggle" aria-expanded="false">
6        <img alt="eyedropper tool" src="https://cdn.shopify.com/s/files/1/0759/0582/7052/files/Frame_30.png?v=1751538761" width="15" height="15">
7        Change Color
8      </button>
9    `,root.insertBefore(bar,content);const btn=bar.querySelector(".rope-toggle"),valueEl=bar.querySelector(".rope-value");function applyFromChecked(){const checked=root.querySelector('input[type="radio"]:checked');if(!checked)return;const label=root.querySelector(`label[for="${checked.id}"]`);if(!label)return;valueEl.textContent=checked.value||"Color";const bg=label.style.backgroundColor;if(bg){const contrast=contrastText(bg);bar.style.backgroundColor=bg,bar.style.color=contrast,bar.style.borderColor=contrast==="#111"?"#ccc":"transparent"}}btn.addEventListener("click",()=>{root.classList.toggle("is-open"),btn.setAttribute("aria-expanded",String(root.classList.contains("is-open"))),applyFromChecked()}),root.addEventListener("change",e=>{e.target.matches('input[type="radio"]')&&requestAnimationFrame(applyFromChecked)}),root.addEventListener("click",e=>{const label=e.target.closest("label");if(!label)return;const id=label.getAttribute("for");id&&document.getElementById(id)&&setTimeout(applyFromChecked,0)}),root.classList.add("is-open"),btn.setAttribute("aria-expanded","true"),applyFromChecked()}
9function boot(){document.querySelectorAll(ROOT_SEL).forEach(init)}document.addEventListener("DOMContentLoaded",boot),document.addEventListener("shopify:section:load",boot),new MutationObserver(boot).observe(document.body,{subtree:!0,childList:!0})})(),window.customilyAccordionDefaults=window.customilyAccordionDefaults||{};const accordionDefaultObserver=new MutationObserver(()=>{document.querySelectorAll(".customily_option.accordion-design").forEach(root=>{const optId=root.getAttribute("opt-id");if(!optId||window.customilyAccordionDefaults[optId])return;const activeLabel=root.querySelector(".customily-swatch label.label-focus");if(!activeLabel)return;const inputId=activeLabel.getAttribute("for");if(!inputId)return;const input=root.querySelector(`input#${CSS.escape(inputId)}`);input&&(window.customilyAccordionDefaults[optId]=input.value,console.log("\u{1F3AF} Captured accordion default:",optId,input.value))})});accordionDefaultObserver.observe(document.body,{subtree:!0,childList:!0}),document.addEventListener("click",function(e){e.target.closest(".reset-suggestion-btn")&&setTimeout(()=>{document.querySelectorAll(".customily_option.accordion-design").forEach(root=>{const optId=root.getAttribute("opt-id"),defaultColor=window.customilyAccordionDefaults?.[optId];if(!defaultColor){console.warn("\u274C No accordion default stored for",optId);return}const radio=root.querySelector(`input[type="radio"][value="${CSS.escape(defaultColor)}"]`);radio&&(console.log("\u{1F3A8} Reset accordion to default:",optId,defaultColor),radio.click())})},200)}),window.addEventListener("customily-options-loaded",function(e){$("#cl_optionsapp .customily_option.category-swatch .swatch-container").find("label, img, .csh-image-container").removeAttr("style"),$("#cl_optionsapp .customily_option.category-option-class .swatch-container .customily-swatch  label").each(function(){$(this).css({height:"","min-height":"","max-height":"",padding:""})}),$("#cl_optionsapp .customily_option.category-swatch .swatch-container label").each(function(){$(this).css({width:"",height:"","max-width":"","min-height":"","min-width":"","max-height":""})}),$(".customily_option.liquor-engraving-color input.needsclick.needsfocus").each(function(){$(this).next("label").next("span.liq-label-txt").remove();var label_txt=$(this).val();$(this).next("label").after('<span class="liq-label-txt">'+label_txt+"</span>")}),$("body").on("click",".customily_option.category-option-class .swatch.customily-swatch",function(){setTimeout(function(){$("#cl_optionsapp .customily_option.category-swatch .swatch-container label").each(function(){$(this).css({width:"",height:"","max-width":"","min-height":"","min-width":"","max-height":""})}),$("#cl_optionsapp .customily_option.category-swatch .swatch-container").find("label, img, .csh-image-container").removeAttr("style")},50)}),$("body").on("click change",'variant-selects input[type="radio"], variant-selects label.swatch-block',function(){setTimeout(function(){$("#cl_optionsapp .customily_option.category-option-class .swatch-container .customily-swatch  label").each(function(){$(this).css({height:"","min-height":"","max-height":"",padding:""})}),$("#cl_optionsapp .customily_option.category-swatch .swatch-container label").each(function(){$(this).css({width:"",height:"","max-width":"","min-height":"","min-width":"","max-height":""})}),$("#cl_optionsapp .customily_option.category-swatch .swatch-container label, #cl_optionsapp img").each(function(){$(this).attr("style","")})},50)})}),$("body").on("click change",'variant-selects input[type="radio"], variant-selects label.swatch-block',function(){setTimeout(function(){$(".customily_option.liquor-engraving-color input.needsclick.needsfocus").each(function(){$(this).next("label").next("span.liq-label-txt").remove();var label_txt=$(this).val();$(this).next("label").after('<span class="liq-label-txt">'+label_txt+"</span>")})},50)}),$("body").on("click",".customily_option.liq-engraving-style .swatch.customily-swatch",function(){setTimeout(function(){$(".customily_option.liquor-engraving-color input.needsclick.needsfocus").each(function(){$(this).next("label").next("span.liq-label-txt").remove();var label_txt=$(this).val();$(this).next("label").after('<span class="liq-label-txt">'+label_txt+"</span>")})},50)}),window.addEventListener("customily-options-loaded",function(){function getRelatedFontBlocks(textStyleEl){const blocks=[];let next=textStyleEl.nextElementSibling;for(;next&&((next.classList.contains("custom-font-style")||next.classList.contains("font-block-1")||next.classList.contains("font-block-2"))&&blocks.push(next),!next.classList.contains("text-style"));)next=next.nextElementSibling;return blocks}function getDependentOptions(textStyleEl){const deps=[];let next=textStyleEl.nextElementSibling;for(;next&&!(next.classList.contains("customily_option")&&next.classList.contains("text-style"));){if(next.classList.contains("customily_option")&&(next.classList.contains("font-dependent-option")||next.classList.contains("custom-design-color")))deps.push(next);else break;next=next.nextElementSibling}return deps}
9function hideElements(els){els.forEach(el=>el&&(el.style.display="none"))}function showElements(els){els.forEach(el=>el&&(el.style.display=""))}function addSelectFontText(){document.querySelectorAll(".customily_option.font-dependent-option").forEach(option=>{const label=option.querySelector("label");if(label){if(!label.nextElementSibling?.classList.contains("select-font-text")){const fontHelper=document.createElement("div");fontHelper.className="select-font-text",fontHelper.innerHTML=`
10          <span class="select-font-label">Select your font</span>
11          <span class="reset-font-suggestion">
12            <span class="reset-icon">\u27F3</span>
13            <span class="reset-text">Reset font</span>
14          </span>
15        `,label.insertAdjacentElement("afterend",fontHelper)}if(option.classList.contains("custom-design-color")&&!label.parentElement.querySelector(".select-color-text")){const colorHelper=document.createElement("div");colorHelper.className="select-color-text",colorHelper.innerHTML=`
16          <span class="select-color-label">Select your color</span>
17          <span class="reset-color-suggestion">
18            <span class="reset-icon">\u27F3</span>
19            <span class="reset-text">Reset color</span>
20          </span>
21        `;const fontText=label.parentElement.querySelector(".select-font-text");fontText&&fontText.insertAdjacentElement("afterend",colorHelper)}}})}function setupEditButtons(){document.querySelectorAll(".customily_option.text-style").forEach(textStyle=>{const content=textStyle.querySelector(".cl-option-content");if(!content)return;const dependentOptions=getDependentOptions(textStyle);if(!dependentOptions.length){const oldBtn=content.querySelector(".customily-edit-btn");oldBtn&&oldBtn.remove();return}if(content.querySelector(".customily-edit-btn"))return;const fontBlocks=getRelatedFontBlocks(textStyle),hasColorOption=dependentOptions.some(opt=>opt.classList.contains("custom-design-color")),hasFontOption=dependentOptions.some(opt=>opt.classList.contains("font-dependent-option")&&!opt.classList.contains("custom-design-color"));let editText="Edit Font",saveText="Save Font";hasColorOption&&hasFontOption&&(editText="Edit Font & Color",saveText="Save Font & Color"),hasColorOption&&!hasFontOption&&(editText="Edit Color",saveText="Save Color");const button=document.createElement("button");button.type="button",button.className="customily-edit-btn",button.dataset.open="false",hasColorOption&&button.classList.add("edit-text-color-btn"),button.innerHTML=`
22          <span class="edit-icon"></span>
23          <span class="edit-text">${editText}</span>
24        `,button.addEventListener("click",function(){button.dataset.open==="true"?(hideElements(fontBlocks),hideElements(dependentOptions),button.querySelector(".edit-text").innerText=editText,button.dataset.open="false"):(showElements(fontBlocks),showElements(dependentOptions),button.querySelector(".edit-text").innerText=saveText,button.dataset.open="true")}),content.appendChild(button)})}function initialHide(){document.querySelectorAll(".customily_option.text-style").forEach(textStyle=>{hideElements(getRelatedFontBlocks(textStyle)),hideElements(getDependentOptions(textStyle))}),addSelectFontText()}new MutationObserver(()=>{setupEditButtons(),addSelectFontText()}).observe(document.body,{childList:!0,subtree:!0}),setupEditButtons(),initialHide(),document.addEventListener("change",function(e){const isLayoutChange=e.target.matches(".customily_option.category-swatch input[type='radio']"),isCategoryChange=e.target.matches(".customily_option.category-option-class input[type='radio']"),isVariantChange=e.target.closest("variant-selects");!isLayoutChange&&!isCategoryChange&&!isVariantChange||(document.querySelectorAll(".customily_option.text-style").forEach(textStyle=>{hideElements(getRelatedFontBlocks(textStyle)),hideElements(getDependentOptions(textStyle));const btn=textStyle.querySelector(".cl-option-content .customily-edit-btn");btn&&(btn.dataset.open="false")}),isVariantChange&&setTimeout(()=>{initialHide(),setupEditButtons()},50),document.querySelectorAll(".customily_option.text-style").forEach(textStyle=>{const btn=textStyle.querySelector(".cl-option-content")?.querySelector(".customily-edit-btn"),deps=getDependentOptions(textStyle),hasColorOption=deps.some(opt=>opt.classList.contains("custom-design-color")),hasFontOption=deps.some(opt=>opt.classList.contains("font-dependent-option")&&!opt.classList.contains("custom-design-color"));
24btn&&(btn.querySelector(".edit-text").innerText=hasColorOption&&hasFontOption?"Edit Font & Color":hasColorOption?"Edit Color":"Edit Font",btn.dataset.open="false"),hideElements(getRelatedFontBlocks(textStyle)),hideElements(deps)}),addSelectFontText())})}),window.customilyLayoutFontDefaults=window.customilyLayoutFontDefaults||{},window.customilyDefaultValues=window.customilyDefaultValues||{};function getCurrentLayoutValue(){const checked=document.querySelector(".customily_option.category-swatch input[type='radio']:checked");return checked?checked.value:window.currentProductType?.toLowerCase().includes("occasion")?"occasion-default":null}function captureDefaultFont(optionEl){const dropdown=optionEl.querySelector(".csh-dropdown-container");if(!dropdown)return;const vue=dropdown.__vue__||dropdown.__vueParentComponent;if(!vue||!vue.option||!vue.option.value)return;const optId=optionEl.getAttribute("opt-id");if(!optId)return;const layout=getCurrentLayoutValue();layout&&(window.customilyLayoutFontDefaults[layout]=window.customilyLayoutFontDefaults[layout]||{},window.customilyLayoutFontDefaults[layout][optId]||(window.customilyLayoutFontDefaults[layout][optId]=vue.option.value,console.log("\u{1F4CC} Captured default font:",layout,vue.option.value)))}window.addEventListener("customily-options-loaded",function(){let tries=0;const interval=setInterval(()=>{document.querySelectorAll(".customily_option.font-dependent-option").forEach(opt=>captureDefaultFont(opt)),tries++,tries>15&&clearInterval(interval)},400)}),document.addEventListener("click",function(e){const resetBtn=e.target.closest(".reset-font-suggestion");if(!resetBtn)return;const optionEl=resetBtn.closest(".customily_option.font-dependent-option");if(!optionEl)return;const optId=optionEl.getAttribute("opt-id"),layout=getCurrentLayoutValue();if(!layout)return;const defaultValue=window.customilyLayoutFontDefaults?.[layout]?.[optId];if(!defaultValue)return;const dropdown=optionEl.querySelector(".csh-dropdown-container"),vue=dropdown.__vue__||dropdown.__vueParentComponent;!vue||!vue.option||(vue.option.value=defaultValue,typeof vue.option.apply=="function"?vue.option.apply():typeof vue.applyOption=="function"?vue.applyOption():typeof vue.$emit=="function"&&vue.$emit("change"),typeof vue.$forceUpdate=="function"&&vue.$forceUpdate(),console.log("\u2705 Font reset + applied to design:",defaultValue))}),document.addEventListener("change",function(e){const isLayoutChange=e.target.matches(".customily_option.category-swatch input[type='radio']"),isCategoryChange=e.target.matches(".customily_option.category-option-class input[type='radio']");if(!isLayoutChange&&!isCategoryChange)return;window.customilyLayoutFontDefaults=window.customilyLayoutFontDefaults||{};let tries=0;const interval=setInterval(()=>{document.querySelectorAll(".customily_option.font-dependent-option").forEach(opt=>captureDefaultFont(opt)),tries++,tries>10&&clearInterval(interval)},300)}),window.customilyColorDefaults=window.customilyColorDefaults||{};const colorDefaultObserver=new MutationObserver(mutations=>{mutations.forEach(mutation=>{mutation.addedNodes.forEach(node=>{if(!(node instanceof HTMLElement))return;const colorOptions=node.matches?.(".customily_option.custom-design-color")?[node]:node.querySelectorAll?.(".customily_option.custom-design-color");colorOptions&&colorOptions.forEach(optionEl=>{const optId=optionEl.getAttribute("opt-id");if(!optId||window.customilyColorDefaults[optId])return;const activeLabel=optionEl.querySelector(".customily-swatch label.label-focus");if(!activeLabel)return;const inputId=activeLabel.getAttribute("for");if(!inputId)return;const input=optionEl.querySelector(`input#${CSS.escape(inputId)}`);input&&(window.customilyColorDefaults[optId]=input.value,console.log("\u{1F3AF} Captured TRUE default color (observer):",optId,input.value))})})})});colorDefaultObserver.observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("click",function(e){const btn=e.target.closest(".reset-color-suggestion");if(!btn)return;e.preventDefault(),e.stopPropagation();const optionEl=btn.closest(".customily_option.custom-design-color");
24if(!optionEl)return;const optId=optionEl.getAttribute("opt-id"),defaultColor=window.customilyColorDefaults?.[optId];if(!defaultColor){console.warn("\u274C No stored default color for",optId);return}const radio=optionEl.querySelector(`input[type="radio"][value="${CSS.escape(defaultColor)}"]`);radio&&(console.log("\u267B\uFE0F Reset color to default:",defaultColor),radio.click())}),window.customilyColorDefaults=window.customilyColorDefaults||{};const engravingObserver=new MutationObserver(()=>{document.querySelectorAll(".customily_option.liquor-engraving-color").forEach(optionEl=>{const optId=optionEl.getAttribute("opt-id");if(!optId||window.customilyColorDefaults[optId])return;const checked=optionEl.querySelector("input[type='radio']:checked");checked&&(window.customilyColorDefaults[optId]=checked.value.trim(),console.log("\u{1F943} Stored engraving default:",checked.value))})});engravingObserver.observe(document.body,{childList:!0,subtree:!0}),window.addEventListener("customily-options-loaded",function(){let layoutDefaults={},currentLayout=null,userChangedLayout=!1;function getSelectedLayout(){return document.querySelector(".customily_option.category-swatch input[type='radio']:checked")?.value||null}function getSelectedVariant(){return document.querySelector('variant-selects input[type="radio"]:checked')?.value||"default"}function getLayoutKey(){return getSelectedVariant()+"__"+currentLayout}function removeResetButton(){document.querySelector(".reset-suggestion-btn")?.remove()}function addResetButton(){const container=document.querySelector(".customily_sets-container");if(!container)return;const hasTextOption=document.querySelector(".customily_option.text-style"),hasColorOption=document.querySelector(".customily_option.custom-design-color"),hasEngravingOption=document.querySelector(".customily_option.liquor-engraving-color");if(!hasTextOption&&!hasColorOption&&!hasEngravingOption){removeResetButton();return}removeResetButton();const button=document.createElement("button");button.type="button",button.className="reset-suggestion-btn",button.innerHTML="\u27F3 Reset to suggestion",container.appendChild(button)}document.addEventListener("change",function(e){e.target.matches('variant-selects input[type="radio"]')&&(removeResetButton(),setTimeout(()=>{if(currentLayout=getSelectedLayout(),!currentLayout)return;const layoutKey=getLayoutKey();layoutDefaults[layoutKey]||(layoutDefaults[layoutKey]={text:{}}),document.querySelectorAll(".customily_option.text-style").forEach(optionEl=>{const optId=optionEl.getAttribute("opt-id");if(!optId)return;const input=optionEl.querySelector("input[type='text'], textarea");input&&(layoutDefaults[layoutKey].text[optId]===void 0&&(layoutDefaults[layoutKey].text[optId]=input.value.trim()),console.log("\u{1F7E2} Captured default text:",optId,input.value))}),addResetButton()},300))}),document.addEventListener("click",function(e){e.target.closest('.customily_option.category-swatch input[type="radio"]')&&(userChangedLayout=!0,console.log("\u{1F446} User manually clicked layout"))}),document.addEventListener("change",function(e){e.target.closest(".customily_option.category-option-class")&&(removeResetButton(),setTimeout(()=>{document.querySelector('.customily_option.category-swatch input[type="radio"]:checked')&&addResetButton()},500))}),document.addEventListener("change",function(e){e.target.matches('.customily_option.category-swatch input[type="radio"]')&&setTimeout(()=>{if(currentLayout=getSelectedLayout(),!currentLayout)return;const layoutKey=getLayoutKey();layoutDefaults[layoutKey]||(layoutDefaults[layoutKey]={text:{}}),document.querySelectorAll(".customily_option.text-style").forEach(optionEl=>{const optId=optionEl.getAttribute("opt-id");if(!optId)return;const input=optionEl.querySelector("input[type='text'], textarea");input&&(layoutDefaults[layoutKey].text[optId]===void 0&&(layoutDefaults[layoutKey].text[optId]=input.value.trim()),console.log("\u{1F7E2} Captured default text:",optId,input.value))}),addResetButton()},200)}),document.addEventListener("click",function(e){if(!e.target.closest(".reset-suggestion-btn")||!currentLayout)return;const layoutKey=getLayoutKey();layoutDefaults[layoutKey]&&(console.log("\u267B\uFE0F Reset triggered for:",layoutKey),document.querySelectorAll(".customily_option.text-style").forEach(optionEl=>{const optId=optionEl.getAttribute("opt-id");if(!optId)return;const input=optionEl.querySelector("input[type='text'], textarea");if(!input)return;const defaultVal=layoutDefaults[layoutKey]?.text?.[optId];defaultVal!==void 0&&(input.value=defaultVal,input.dispatchEvent(new Event("input",{bubbles:!0})),input.dispatchEvent(new Event("change",{bubbles:!0})),input.dispatchEvent(new Event("blur",{bubbles:!0})),console.log("\u270F\uFE0F Text reset:",optId))}),document.querySelectorAll(".customily_option.custom-design-color").forEach(optionEl=>{const optId=optionEl.getAttribute("opt-id");if(!optId)return;const defaultColor=window.customilyColorDefaults?.[optId];if(!defaultColor){console.warn("\u274C No stored default color for",optId);return}const radio=optionEl.querySelector(`input[type="radio"][value="${CSS.escape(defaultColor)}"]`);radio&&(radio.click(),console.log("\u{1F3A8} Color reset:",defaultColor))}),document.querySelectorAll(".customily_option.liquor-engraving-color").forEach(optionEl=>{const optId=optionEl.getAttribute("opt-id");if(!optId)return;const defaultColor=window.customilyColorDefaults?.[optId];if(!defaultColor){console.warn("\u274C No engraving default found for",optId);return}const radio=Array.from(optionEl.querySelectorAll("input[type='radio']")).find(r=>r.value.trim()===defaultColor);radio&&(radio.click(),console.log("\u{1F943} Engraving reset:",defaultColor))}),setTimeout(()=>{document.querySelectorAll(".reset-font-suggestion, .reset-font").forEach(btn=>btn.click())},150),console.log("\u2705 Reset completed"))})}),window.addEventListener("customily-options-loaded",function(){let OCCASION_INITIAL_STATE=null;function captureOccasionInitialState(){if(!window.currentProductType?.toLowerCase().includes("occasion")||OCCASION_INITIAL_STATE)return;const textFields=document.querySelectorAll(".customily_option.text-style input, .customily_option.text-style textarea"),
24colorFields=document.querySelectorAll(".customily_option.custom-design-color input[type='radio']:checked");textFields.length&&(OCCASION_INITIAL_STATE={text:{},colors:{}},textFields.forEach(input=>{const optId=input.closest(".customily_option")?.getAttribute("opt-id");optId&&(OCCASION_INITIAL_STATE.text[optId]=input.value)}),colorFields.forEach(radio=>{const optId=radio.closest(".customily_option")?.getAttribute("opt-id");optId&&(OCCASION_INITIAL_STATE.colors[optId]=radio.value)}),console.log("\u2705 Occasion defaults stored (once):",OCCASION_INITIAL_STATE))}function injectOccasionResetButton(){if(!window.currentProductType?.toLowerCase().includes("occasion")||document.querySelector(".reset-suggestion-btn"))return;const allOptions=document.querySelectorAll(".customily_option");if(!allOptions.length)return;const lastOption=allOptions[allOptions.length-1],button=document.createElement("button");button.type="button",button.className="reset-suggestion-btn",button.innerHTML="\u27F3 Reset to suggestion",lastOption.after(button),console.log("\u2705 Reset button inserted after last option")}setTimeout(()=>{injectOccasionResetButton(),captureOccasionInitialState()},1300),document.addEventListener("change",function(e){e.target.matches('variant-selects input[type="radio"]')&&setTimeout(()=>{injectOccasionResetButton()},1e3)}),document.addEventListener("click",function(e){if(e.target.closest(".reset-suggestion-btn")&&window.currentProductType?.toLowerCase().includes("occasion")){if(!OCCASION_INITIAL_STATE){console.log("\u274C No stored default state");return}console.log("\u267B\uFE0F RESET TRIGGERED"),document.querySelectorAll(".customily_option.text-style input, .customily_option.text-style textarea").forEach(input=>{const optId=input.closest(".customily_option")?.getAttribute("opt-id");if(!optId)return;const defaultVal=OCCASION_INITIAL_STATE.text[optId];defaultVal!==void 0&&(input.value=defaultVal,input.dispatchEvent(new Event("input",{bubbles:!0})),input.dispatchEvent(new Event("change",{bubbles:!0})))}),Object.keys(OCCASION_INITIAL_STATE.colors).forEach(optId=>{const defaultColor=OCCASION_INITIAL_STATE.colors[optId],optionEl=document.querySelector(`.customily_option[opt-id="${optId}"]`);if(!optionEl)return;const radio=optionEl.querySelector(`input[type="radio"][value="${CSS.escape(defaultColor)}"]`);radio&&radio.click()}),setTimeout(()=>{document.querySelectorAll(".reset-font-suggestion, .reset-font").forEach(btn=>btn.click())},200)}})}),document.addEventListener("DOMContentLoaded",function(){if(!window.isCustomilyProduct||!window.matchMedia("(max-width: 767px)").matches)return;const mediaWrapper=document.querySelector(".product__media-wrapper");if(!mediaWrapper)return;const formButtons=document.querySelector(".product-form__buttons");if(!formButtons)return;const miniPreview=document.createElement("div");miniPreview.className="mini-preview",miniPreview.innerHTML=`
25    <img class="mini-preview-img" src="" alt="Preview" />
26    <span class="mini-preview-text">
26Click To Expand</span>
27  `,document.body.appendChild(miniPreview);const miniPreviewImg=miniPreview.querySelector(".mini-preview-img"),overlay=document.createElement("div");overlay.className="preview-overlay",document.body.appendChild(overlay);const closeBtn=document.createElement("div");closeBtn.className="preview-close",closeBtn.innerHTML="\u2715",mediaWrapper.appendChild(closeBtn);function updateMiniPreview(){const clonedCanvas=document.getElementById("cloned-canvas");if(clonedCanvas&&miniPreviewImg)try{miniPreviewImg.src=clonedCanvas.toDataURL("image/png")}catch{}requestAnimationFrame(updateMiniPreview)}updateMiniPreview(),window.addEventListener("scroll",function(){const mediaRect=mediaWrapper.getBoundingClientRect(),formRect=formButtons.getBoundingClientRect(),imageAreaEnded=mediaRect.bottom<0,beforeFormButtons=formRect.top>0;imageAreaEnded&&beforeFormButtons?miniPreview.classList.add("show"):miniPreview.classList.remove("show")}),miniPreview.addEventListener("click",function(){mediaWrapper.classList.add("preview-expanded"),overlay.classList.add("show"),document.body.classList.add("no-scroll")}),closeBtn.addEventListener("click",function(){mediaWrapper.classList.remove("preview-expanded"),overlay.classList.remove("show"),document.body.classList.remove("no-scroll")}),overlay.addEventListener("click",function(){mediaWrapper.classList.remove("preview-expanded"),overlay.classList.remove("show"),document.body.classList.remove("no-scroll")})}),document.addEventListener("DOMContentLoaded",function(){window.addEventListener("customily-options-loaded",function(){setTimeout(()=>{cloneCanvasToDivs([{divId:"preview-canvas-popup",canvasId:"cloned-canvas"}])},100)});function updateClonedCanvas(originalCanvas,clonedCanvas,clonedContext){clonedCanvas.height=originalCanvas.height,clonedCanvas.width=originalCanvas.width,clonedContext.clearRect(0,0,clonedCanvas.width,clonedCanvas.height),clonedContext.drawImage(originalCanvas,0,0,clonedCanvas.width,clonedCanvas.height),requestAnimationFrame(()=>updateClonedCanvas(originalCanvas,clonedCanvas,clonedContext))}function cloneCanvasToDivs(items){const originalCanvas=document.getElementById("preview-canvas");originalCanvas&&items.forEach(({divId,canvasId})=>{const targetDiv=document.getElementById(divId);if(!targetDiv)return;const existing=targetDiv.querySelector(`#${canvasId}`);existing&&existing.remove();const clonedCanvas=document.createElement("canvas");clonedCanvas.id=canvasId,clonedCanvas.width=originalCanvas.width,clonedCanvas.height=originalCanvas.height;const clonedContext=clonedCanvas.getContext("2d");targetDiv.innerHTML="";const label=document.createElement("div");label.className="canvas-expand-label",label.textContent="Click To Expand",targetDiv.appendChild(clonedCanvas),targetDiv.appendChild(label),updateClonedCanvas(originalCanvas,clonedCanvas,clonedContext)})}const previewCanvasPopup=document.getElementById("preview-canvas-popup"),popupWrapper=document.createElement("div");popupWrapper.id="canvas-popup-wrapper",popupWrapper.style.position="fixed",popupWrapper.style.top="0",popupWrapper.style.left="0",popupWrapper.style.width="100vw",popupWrapper.style.height="100vh",popupWrapper.style.backgroundColor="rgba(0, 0, 0, 0.4)",popupWrapper.style.display="none",popupWrapper.style.alignItems="center",popupWrapper.style.justifyContent="center",popupWrapper.style.zIndex="9999",popupWrapper.style.flexDirection="column",popupWrapper.style.boxSizing="border-box";const canvasContainer=document.createElement("div");canvasContainer.style.position="relative",canvasContainer.style.display="inline-block";const popupCanvas=document.createElement("canvas");popupCanvas.id="popup-canvas",popupCanvas.style.maxWidth="80vw",popupCanvas.style.maxHeight="80vh",popupCanvas.style.boxShadow="0 4px 8px rgba(0, 0, 0, 0.2)",canvasContainer.appendChild(popupCanvas);const popupCloseBtn=document.createElement("button");popupCloseBtn.innerText="X",popupCloseBtn.style.position="absolute",popupCloseBtn.style.top="10px",popupCloseBtn.style.right="10px",popupCloseBtn.style.fontSize="24px",popupCloseBtn.style.color="white",popupCloseBtn.style.border="none",popupCloseBtn.style.borderRadius="50%",popupCloseBtn.style.cursor="pointer",popupCloseBtn.style.zIndex="10",canvasContainer.appendChild(p
27opupCloseBtn),popupWrapper.appendChild(canvasContainer),document.body.appendChild(popupWrapper),previewCanvasPopup&&previewCanvasPopup.addEventListener("click",function(){const clonedCanvas=document.getElementById("cloned-canvas");if(!clonedCanvas)return;popupCanvas.width=clonedCanvas.width,popupCanvas.height=clonedCanvas.height;const ctx=popupCanvas.getContext("2d");ctx.clearRect(0,0,popupCanvas.width,popupCanvas.height),ctx.drawImage(clonedCanvas,0,0),popupWrapper.style.display="flex"}),popupCloseBtn.addEventListener("click",function(){popupWrapper.style.display="none",document.body.style.overflow=""}),popupWrapper.addEventListener("click",function(e){e.target===popupWrapper&&(popupWrapper.style.display="none",document.body.style.overflow="")});const backdrop=document.createElement("div");backdrop.id="popup-backdrop",backdrop.style.position="fixed",backdrop.style.inset="0",backdrop.style.background="rgba(0, 0, 0, 0.4)",backdrop.style.zIndex="9997",backdrop.style.display="none",document.body.appendChild(backdrop);const closeBtn=document.querySelector(".customily-close-button");closeBtn&&mediaContainer&&closeBtn.addEventListener("click",function(){mediaContainer.classList.remove("popup-active"),backdrop.style.display="none",document.body.style.overflow=""}),backdrop.addEventListener("click",function(){mediaContainer.classList.remove("popup-active"),backdrop.style.display="none",document.body.style.overflow=""})}),(function(){if(typeof window.isCustomilyProduct>"u"||!window.isCustomilyProduct)return;const checkboxWrapper=document.querySelector(".main-preview-with-checkbox"),checkboxId="agree_checkbox",errorId="checkbox-error";function isVariantNone(){const styleFieldset=document.querySelector(".product-form__input input[name='Choose Style']:checked");return styleFieldset?styleFieldset.value.trim().toLowerCase()==="none":!1}function toggleCheckboxVisibility(){checkboxWrapper&&(isVariantNone()?checkboxWrapper.style.display="none":checkboxWrapper.style.display="block")}function showError(){const error=document.getElementById(errorId);error&&(error.style.display="block")}function hideError(){const error=document.getElementById(errorId);error&&(error.style.display="none")}document.addEventListener("DOMContentLoaded",toggleCheckboxVisibility),document.addEventListener("change",function(e){e.target.matches(".product-form__input input[type='radio']")&&toggleCheckboxVisibility(),e.target.id===checkboxId&&e.target.checked&&hideError()});const originalFetch=window.fetch;window.fetch=function(...args){const url=args[0];if(typeof url=="string"&&url.includes("/cart/add")){if(isVariantNone())return originalFetch.apply(this,args);const checkbox=document.getElementById(checkboxId);if(!checkbox||!checkbox.checked)return showError(),console.warn("\u{1F6D1} Add to cart blocked: checkbox not checked"),Promise.reject("Checkbox not checked")}return originalFetch.apply(this,args)}})(),(function(){const ICON_URL="https://cdn.shopify.com/s/files/1/0777/4601/2381/files/Frame_29.png?v=1767428094";function addUploadLabelAtTop(){document.querySelectorAll(".customily-file-input").forEach(wrapper=>{if(wrapper.querySelector(":scope > .upload-logo-inside"))return;const label=document.createElement("div");label.className="upload-logo-inside",label.innerHTML=`
28        <img src="${ICON_URL}" alt="Upload icon">
29        <span>Upload your Image</span>
30      `,label.addEventListener("click",()=>{const fileInput=wrapper.querySelector('input[type="file"]');fileInput&&fileInput.click()}),wrapper.insertBefore(label,wrapper.firstChild)})}addUploadLabelAtTop(),new MutationObserver(addUploadLabelAtTop).observe(document.body,{childList:!0,subtree:!0})})();function initMetaobjectFilters(){const currentHandle=window.currentCollectionHandle;document.querySelectorAll(".filter-group").forEach(group=>{const toggleBtn=group.querySelector(".filter-toggle"),groupHandle=group.dataset.groupHandle,items=group.querySelectorAll(".filter-item[data-handle]");toggleBtn&&toggleBtn.dataset.bound!=="true"&&(toggleBtn.dataset.bound="true",toggleBtn.addEventListener("click",e=>{e.preventDefault(),group.classList.toggle("open")})),groupHandle===currentHandle&&group.classList.add("open"),items.forEac
30h(item=>{item.dataset.handle===currentHandle&&(group.classList.add("open"),item.classList.add("active"))})})}document.addEventListener("DOMContentLoaded",initMetaobjectFilters),document.addEventListener("shopify:section:load",initMetaobjectFilters),(function(){function applyPaddingLogic(){const selected=document.querySelector('variant-selects input[name="Choose Style"]:checked'),customilyBox=document.getElementById("cl_optionsapp");!selected||!customilyBox||(selected.value==="None"?customilyBox.style.padding="0px":customilyBox.style.padding="")}new MutationObserver(()=>{document.getElementById("cl_optionsapp")&&applyPaddingLogic()}).observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("change",function(e){e.target.matches('variant-selects input[name="Choose Style"]')&&setTimeout(applyPaddingLogic,200)})})(),(function(){function isVariantNone(){const styleRadio=document.querySelector(".variant-picker input[name='Choose Style']:checked");return styleRadio&&styleRadio.value.trim()==="None"}const originalFetch=window.fetch;window.fetch=function(...args){const url=args[0];if(typeof url=="string"&&url.includes("/cart/add")&&isVariantNone()){let options=args[1];if(options&&options.body&&(options.body instanceof FormData&&options.body.delete("properties[_customily-thumb]"),typeof options.body=="string"))try{let parsed=JSON.parse(options.body);parsed.properties&&parsed.properties["_customily-thumb"]&&(delete parsed.properties["_customily-thumb"],options.body=JSON.stringify(parsed))}catch{console.warn("Body parse failed")}console.log("Customily thumb removed for None variant")}return originalFetch.apply(this,args)}})();function initWineSlider(){if(window.jQuery){var $slider=$(".tw-engraved-wine-slider");$slider.length&&!$slider.hasClass("slick-initialized")&&$slider.slick({slidesToShow:3.5,slidesToScroll:1,arrows:!0,infinite:!1,autoplay:!1,dots:!1,prevArrow:'<button type="button" class="left_arrow"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="m1.57 1.59 12.76 12.77L27.1 1.59" stroke-width="2" stroke="#fff" fill="none"></path></svg></button>',nextArrow:'<button type="button" class="next_arrow"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="m1.57 1.59 12.76 12.77L27.1 1.59" stroke-width="2" stroke="#fff" fill="none"></path></svg></button>',responsive:[{breakpoint:1025,settings:{slidesToShow:2.5}},{breakpoint:978,settings:{slidesToShow:1.5}},{breakpoint:768,settings:{slidesToShow:1.5}}]})}}document.addEventListener("DOMContentLoaded",function(){setTimeout(initWineSlider,200)}),document.addEventListener("shopify:section:load",function(){setTimeout(initWineSlider,200)});function initTestimonialSlider(){if(!(!window.jQuery||!$.fn.slick)){var $slider=$(".testimonials-sectionh .slides-wrapper .swiper");$slider.length&&!$slider.hasClass("slick-initialized")&&$slider.slick({slidesToShow:5,slidesToScroll:1,arrows:!0,infinite:!0,autoplay:!1,dots:!1,centerMode:!0,easing:"linear",speed:500,centerPadding:"90px",prevArrow:'<button type="button" class="left_arrow"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="m1.57 1.59 12.76 12.77L27.1 1.59" stroke-width="2" stroke="#fff" fill="none"></path></svg></button>',nextArrow:'<button type="button" class="next_arrow"><svg aria-hidden="true" focusable="false" role="presentation" class="icon icon--wide icon-chevron-down" viewBox="0 0 28 16"><path d="m1.57 1.59 12.76 12.77L27.1 1.59" stroke-width="2" stroke="#fff" fill="none"></path></svg></button>',responsive:[{breakpoint:1331,settings:{slidesToShow:3,centerPadding:"50px"}},{breakpoint:978,settings:{slidesToShow:2,centerPadding:"50px"}},{breakpoint:768,settings:{slidesToShow:1,centerPadding:"50px"}}]})}}document.addEventListener("DOMContentLoaded",function(){setTimeout(initTestimonialSlider,200)}),document.addEventListener("shopify:section:load",function(){setTimeout(initTestimonialSlider,200)}),(function(){if(!window.isCustomilyProduct)return;function fixCustomilyAlts(){document.querySelectorAll('img[src*="cdn.customily.com"]:not([alt])').forEach(img=>{const dropdownLabel=img.closest(".csh-dropdown-input-container")?.querySelector(".csh-dropdown-label");if(dropdownLabel){img.setAttribute("alt",dropdownLabel.textContent.trim());return}const swatchLabel=img.closest("label"),swatchInput=swatchLabel?.control||document.getElementById(swatchLabel?.getAttribute("for"));if(swatchInput?.value){img.setAttribute("alt",swatchInput.value.trim());return}img.setAttribute("alt","Design option")})}new MutationObserver(fixCustomilyAlts).observe(document.body,{childList:!0,subtree:!0}),document.addEventListener("DOMContentLoaded",fixCustomilyAlts)})();
31//# sourceMappingURL=/cdn/shop/t/65/assets/custom.js.map?v=1999536664855955491788214101

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.