function h(i){return document.getElementById(i)}function s(i,t=document){return t.querySelectorAll(i)}function o(i,t,e,n={}){if(!i){console.warn("addEventListener: element is null");return}try{i.addEventListener(t,e,n)}catch(r){console.error("Error adding event listener:",r)}}function g(i,t){return i?i.classList.toggle(t):(console.warn("toggleClass: element is null"),!1)}function l(i,t){if(!i){console.warn("setDisplay: element is null");return}i.style.display=t}function c(i,t){return i?i.getAttribute(`data-${t}`):(console.warn("getDataAttribute: element is null"),null)}function m(i){document.readyState==="loading"?document.addEventListener("DOMContentLoaded",i):i()}var d=class{constructor(){this.navToggle=null,this.body=document.body,this.isInitialized=!1}init(){this.isInitialized||(this.navToggle=h("open-nav"),this.navToggle?(this.bindEvents(),this.isInitialized=!0):console.warn("Navigation: nav toggle element not found"))}bindEvents(){o(this.navToggle,"click",this.handleNavToggle.bind(this)),o(document,"keydown",this.handleKeyDown.bind(this)),o(document,"click",this.handleDocumentClick.bind(this))}handleNavToggle(t){t.preventDefault(),t.stopPropagation();let e=g(this.body,"nav-open");return this.navToggle.setAttribute("aria-expanded",e.toString()),!1}handleKeyDown(t){t.key==="Escape"&&this.body.classList.contains("nav-open")&&this.closeNavigation()}handleDocumentClick(t){if(this.body.classList.contains("nav-open")){let e=t.target.closest("nav"),n=t.target.closest("#open-nav");!e&&!n&&this.closeNavigation()}}closeNavigation(){this.body.classList.remove("nav-open"),this.navToggle.setAttribute("aria-expanded","false")}openNavigation(){this.body.classList.add("nav-open"),this.navToggle.setAttribute("aria-expanded","true")}isNavigationOpen(){return this.body.classList.contains("nav-open")}},L=new d,y=L;function w(i){return typeof i!="number"||isNaN(i)?"$0":new Intl.NumberFormat("es-CO",{style:"currency",currency:"COP",minimumFractionDigits:0,maximumFractionDigits:0}).format(i)}function v(i){let t=parseFloat(i);return w(t)}var u=class{constructor(){this.isInitialized=!1}init(){this.isInitialized||(this.formatPrices(),this.initializeStylePickers(),this.setupImageLoading(),this.setupProductActions(),this.isInitialized=!0)}formatPrices(){s(".js-product-price").forEach(e=>{let n=c(e,"raw-price");if(n){let r=v(n);e.textContent=r}})}initializeStylePickers(){s(".style-picker > div").forEach(e=>{o(e,"click",this.handleStylePickerClick.bind(this))})}handleStylePickerClick(t){t.preventDefault(),t.stopPropagation();let e=c(t.target,"item-id"),n=t.target.closest(".styles");if(!e||!n)return;s(".style",n).forEach(x=>{l(x,"none")});let a=n.querySelector(`[data-item-id="${e}"]`);a&&l(a,"block"),this.updatePickerVisualState(n,t.target)}updatePickerVisualState(t,e){s(".style-picker > div",t).forEach(r=>{r.style.borderWidth="2px",r.classList.remove("active")}),e&&(e.style.borderWidth="3px",e.classList.add("active"))}setupImageLoading(){s(".product-card img").forEach(e=>{o(e,"load",function(){this.style.opacity="1",this.classList.add("loaded")}),o(e,"error",function(){let n=this.closest(".product-image-container");n&&(n.style.backgroundColor="#e5e7eb",n.classList.add("image-error")),this.classList.add("error")}),e.style.opacity="0",e.classList.add("loading")})}setupProductActions(){s(".product-action-btn").forEach(e=>{o(e,"click",this.handleProductActionClick.bind(this))})}handleProductActionClick(t){t.preventDefault();let n=t.currentTarget.closest(".product-card");if(!n)return;let r=n.querySelector(".product-link");r&&r.href&&(window.location.href=r.href)}refresh(){this.formatPrices()}getProductData(t){var a;if(!t)return null;let e=t.querySelector(".product-title"),n=t.querySelector(".js-product-price"),r=t.querySelector(".product-link");return{name:((a=e==null?void 0:e.textContent)==null?void 0:a.trim())||"",price:c(n,"raw-price")||"0",url:(r==null?void 0:r.href)||""}}},P=new u,b=P;var k={},f=class{constructor(){this.modules={navigation:y,productGrid:b},this.isInitialized=!1}init(){this.isInitialized||(Object.values(this.modules).forEach(t=>{if(t&&typeof t.init=="function")try{t.init()}catch(e){console.error("Error initializing module:",e)}}),this.isInitialized=!0,this.logInitialization())}logInitialization(){var t;((t=k.env)==null?void 0:t.MODE)!=="production"&&console.log("Mimame website initialized successfully")}getModule(t){return this.modules[t]||null}refresh(){Object.values(this.modules).forEach(t=>{if(t&&typeof t.refresh=="function")try{t.refresh()}catch(e){console.error("Error refreshing module:",e)}})}},p=new f;m(()=>{p.init()});var M=p,E;((E=k.env)==null?void 0:E.MODE)!=="production"&&(window.MimameApp=p);export{M as default};