(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{1402:(e,t,a)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(t,{default:function(){return b},handleClientScriptLoad:function(){return h},initScriptLoader:function(){return f}});let r=a(8140),o=a(9417),n=a(5155),s=r._(a(7650)),i=o._(a(2115)),l=a(2073),c=a(4681),d=a(4853),u=new Map,g=new Set,p=e=>{let{src:t,id:a,onLoad:r=()=>{},onReady:o=null,dangerouslySetInnerHTML:n,children:i="",strategy:l="afterInteractive",onError:d,stylesheets:p}=e,h=a||t;if(h&&g.has(h))return;if(u.has(t)){g.add(h),u.get(t).then(r,d);return}let f=()=>{o&&o(),g.add(h)},w=document.createElement("script"),b=new Promise((e,t)=>{w.addEventListener("load",function(t){e(),r&&r.call(this,t),f()}),w.addEventListener("error",function(e){t(e)})}).catch(function(e){d&&d(e)});n?(w.innerHTML=n.__html||"",f()):i?(w.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):"",f()):t&&(w.src=t,u.set(t,b)),(0,c.setAttributesFromProps)(w,e),"worker"===l&&w.setAttribute("type","text/partytown"),w.setAttribute("data-nscript",l),p&&(e=>{if(s.default.preinit)return e.forEach(e=>{s.default.preinit(e,{as:"style"})});{let t=document.head;e.forEach(e=>{let a=document.createElement("link");a.type="text/css",a.rel="stylesheet",a.href=e,t.appendChild(a)})}})(p),document.body.appendChild(w)};function h(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,d.requestIdleCallback)(()=>p(e))}):p(e)}function f(e){e.forEach(h),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");g.add(t)})}function w(e){let{id:t,src:a="",onLoad:r=()=>{},onReady:o=null,strategy:c="afterInteractive",onError:u,stylesheets:h,...f}=e,{updateScripts:w,scripts:b,getIsSsr:m,appDir:y,nonce:v}=(0,i.useContext)(l.HeadManagerContext);v=f.nonce||v;let k=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=t||a;k.current||(o&&e&&g.has(e)&&o(),k.current=!0)},[o,t,a]);let x=(0,i.useRef)(!1);if((0,i.useEffect)(()=>{if(!x.current){if("afterInteractive"===c)p(e);else"lazyOnload"===c&&("complete"===document.readyState?(0,d.requestIdleCallback)(()=>p(e)):window.addEventListener("load",()=>{(0,d.requestIdleCallback)(()=>p(e))}));x.current=!0}},[e,c]),("beforeInteractive"===c||"worker"===c)&&(w?(b[c]=(b[c]||[]).concat([{id:t,src:a,onLoad:r,onReady:o,onError:u,...f,nonce:v}]),w(b)):m&&m()?g.add(t||a):m&&!m()&&p({...e,nonce:v})),y){if(h&&h.forEach(e=>{s.default.preinit(e,{as:"style"})}),"beforeInteractive"===c)if(!a)return f.dangerouslySetInnerHTML&&(f.children=f.dangerouslySetInnerHTML.__html,delete f.dangerouslySetInnerHTML),(0,n.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([0,{...f,id:t}])+")"}});else return s.default.preload(a,f.integrity?{as:"script",integrity:f.integrity,nonce:v,crossOrigin:f.crossOrigin}:{as:"script",nonce:v,crossOrigin:f.crossOrigin}),(0,n.jsx)("script",{nonce:v,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([a,{...f,id:t}])+")"}});"afterInteractive"===c&&a&&s.default.preload(a,f.integrity?{as:"script",integrity:f.integrity,nonce:v,crossOrigin:f.crossOrigin}:{as:"script",nonce:v,crossOrigin:f.crossOrigin})}return null}Object.defineProperty(w,"__nextScript",{value:!0});let b=w;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2501:(e,t,a)=>{"use strict";a.d(t,{QuoteProvider:()=>i,o:()=>s});var r=a(5155),o=a(2115);let n=(0,o.createContext)(null);function s(){let e=(0,o.useContext)(n);if(!e)throw Error("useQuote must be used within QuoteProvider");return e}function i(e){let{children:t}=e,[a,s]=(0,o.useState)(!1),i=(0,o.useCallback)(()=>s(!0),[]),l=(0,o.useCallback)(()=>s(!1),[]);return(0,r.jsx)(n.Provider,{value:{isOpen:a,open:i,close:l},children:t})}},2818:(e,t,a)=>{"use strict";a.d(t,{U:()=>r});let r={name:"Strux Garage of Idaho",tagline:"Transforming Spaces",description:"Custom powder-coated garage cabinets, overhead storage racks, and slatwall solutions in Treasure Valley, Idaho.",phone:"(208) 779-4560",phoneAlt:"(208) 484-0689",email:"sales@ungerpowdercoating.com",location:"Treasure Valley, Idaho",facebook:"https://business.facebook.com/ungerpowdercoating",url:"https://struxgarageofidaho.com",logo:"/logo.png",icon:"/images/logo.webp",heroImage:"/images/hero.webp",strux:{name:"Strux Garage Cabinets",url:"https://www.struxgarage.com",tagline:"Engineered for Your Garage",taglineSecondary:"Engineered Strength. Style Refined.",supportingStack:["Custom Sized","Built for Strength","Fully Powder Coated"],logos:{horizontalBoxed:"https://cdn.struxgarage.com/public/images-lg/logos/horizontal/color/png/strux-horizontal-logo_boxed.webp",horizontalTransparent:"https://cdn.struxgarage.com/public/images-lg/logos/horizontal/color/png/transparent.webp",stackedBoxed:"https://cdn.struxgarage.com/public/images-lg/logos/stacked/color/png/strux-stacked-logo_boxed.webp",wordmarkBoxed:"https://cdn.struxgarage.com/public/images-lg/logos/wordmark/color/png/strux-wordmark-logo_boxed.webp"}},images:{cabinetShowcase:"/images/cabinet-showcase.webp",garageCabinets:"/images/garage-cabinets.webp",slatwall:"/images/slatwall.webp",powderCoating:"/images/powder-coating.webp",warranty:"/images/garden-storage.webp"},nav:[{title:"Home",href:"/"},{title:"Garage Cabinets",href:"/garage-cabinets"},{title:"Storage Racks",href:"/storage-racks"},{title:"Slatwall",href:"/garage-slatwall"},{title:"Why Powder Coat?",href:"/why-powder-coat"},{title:"Gallery",href:"/showcase"},{title:"3D Designer",href:"/3d-showcase"},{title:"Garage Storage Solutions",href:"/garage-storage-systems"},{title:"Contact",href:"/contact"}],services:[{title:"Custom Garage Cabinets",href:"/garage-cabinets",description:"Custom garage storage cabinets built to your exact dimensions. Powder-coated finish, dado joinery, and full back panel enclosures. The foundation of any organized garage storage system.",image:"https://cdn.struxgarage.com/public/images-sm/installs/wagner/wagner-dogs-3.webp"},{title:"Garage Wall Storage",href:"/garage-slatwall",description:"Slatwall garage wall storage systems with bike racks, tool hooks, and sports gear storage. Get everything off the floor and onto the wall with customizable panels and accessories.",image:"https://cdn.struxgarage.com/public/images-sm/installs/burton/burton-12.webp"},{title:"Overhead Ceiling Storage",href:"/storage-racks",description:"Heavy-duty overhead garage ceiling storage racks to maximize vertical space. Keep seasonal items, bins, and bulky gear safely overhead and out of the way.",image:"/images/cabinet-showcase.webp"}],showcaseImages:[{src:"/images/cabinet-showcase.webp",alt:"Custom multi-drawer powder-coated workbench with overhead storage in a Treasure Valley garage"},{src:"/images/garage-cabinets.webp",alt:"Red powder-coated garage cabinet workspace with integrated workbench and tool storage"},{src:"/images/slatwall.webp",alt:"Powder-coated storage bench with slatwall panel system in an organized garage"},{src:"/images/powder-coating.webp",alt:"Full garage transformation with powder-coated cabinets and overhead storage racks by Strux Garage of Idaho"},{src:"/images/garden-storage.webp",alt:"Outdoor garden storage solution with powder-coated finish for weather resistance"}]}},2904:(e,t,a)=>{"use strict";a.d(t,{PhoneLink:()=>n});var r=a(5155),o=a(2818);function n(e){let{phone:t=o.U.phone,label:a,className:n=""}=e,s="tel:".concat(t.replace(/[^+\d]/g,""));return(0,r.jsx)("a",{href:s,className:n,"data-tracking":"cta-phone",onClick:()=>{"dataLayer"in window&&window.dataLayer.push({event:"cta_click_phone",phone_number:t,page_location:window.location.pathname})},children:null!=a?a:"Call ".concat(t)})}},4853:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),!function(e,t){for(var a in t)Object.defineProperty(e,a,{enumerable:!0,get:t[a]})}(t,{cancelIdleCallback:function(){return r},requestIdleCallback:function(){return a}});let a="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},r="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5215:(e,t,a)=>{"use strict";a.d(t,{HeroVideo:()=>s});var r=a(5155),o=a(2115);let n=[640,960,1280,1920].map(e=>"/images/hero-".concat(e,".webp ").concat(e,"w")).join(", ");function s(){let[e,t]=(0,o.useState)(!1),[a,s]=(0,o.useState)(!1);return(0,o.useEffect)(()=>{var e,t;let a=null!=(e=window.requestIdleCallback)?e:e=>window.setTimeout(e,1),r=null!=(t=window.cancelIdleCallback)?t:window.clearTimeout,o=a(()=>s(!0));return()=>r(o)},[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:"/images/hero-1920.webp",srcSet:n,sizes:"100vw",alt:"Custom powder coated garage cabinets by Strux Garage of Idaho",decoding:"async",fetchPriority:"high",className:"absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ".concat(e?"opacity-0":"opacity-100")}),(0,r.jsx)("div",{"aria-hidden":!0,className:"absolute inset-0 bg-brand-dark transition-opacity duration-700 ".concat(e?"opacity-0":"opacity-[0.45]")}),a&&(0,r.jsx)("video",{src:"/videos/hero-yoyo.mp4",autoPlay:!0,loop:!0,muted:!0,playsInline:!0,preload:"metadata",onLoadedData:e=>{e.target.playbackRate=.75,t(!0)},className:"absolute inset-0 h-full w-full object-cover transition-opacity duration-700",style:{opacity:.55*!!e}})]})}},5932:(e,t,a)=>{"use strict";a.d(t,{ErrorBoundary:()=>o});var r=a(2115);class o extends r.Component{static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e,t){if("dataLayer"in window){var a;window.dataLayer.push({event:"client_error",error_boundary:null!=(a=this.props.label)?a:"unknown",error_message:e.message,error_stack:e.stack,component_stack:t.componentStack,page_location:window.location.pathname})}}render(){var e;return this.state.hasError?null!=(e=this.props.fallback)?e:null:this.props.children}constructor(...e){super(...e),this.state={hasError:!1}}}},6376:(e,t,a)=>{"use strict";a.d(t,{QuoteButton:()=>s});var r=a(5155),o=a(2501);let n={primary:"rounded-md bg-brand-red px-10 py-4 text-center text-sm font-bold uppercase tracking-wider text-white transition hover:bg-brand-red-dark hover:shadow-[0_0_20px_rgba(232,117,26,0.4)]",white:"rounded-md bg-white px-8 py-3 text-sm font-semibold uppercase tracking-wider text-brand-blue transition hover:bg-gray-100",outline:"rounded-md border-2 border-white/30 px-10 py-4 text-center text-sm font-semibold uppercase tracking-wider text-white transition hover:border-white hover:bg-white/10"};function s(e){let{label:t="Get A Quote",className:a="",variant:s="primary"}=e,{open:i}=(0,o.o)();return(0,r.jsx)("button",{onClick:()=>{"dataLayer"in window&&window.dataLayer.push({event:"cta_click_quote",cta_text:t,page_location:window.location.pathname}),i()},"data-tracking":"cta-quote",className:"".concat(n[s]," ").concat(a),children:t})}},6769:(e,t,a)=>{Promise.resolve().then(a.t.bind(a,2619,23)),Promise.resolve().then(a.t.bind(a,1356,23)),Promise.resolve().then(a.t.bind(a,1402,23)),Promise.resolve().then(a.bind(a,5932)),Promise.resolve().then(a.bind(a,5215)),Promise.resolve().then(a.bind(a,2904)),Promise.resolve().then(a.bind(a,6376))}},e=>{e.O(0,[356,619,441,255,358],()=>e(e.s=6769)),_N_E=e.O()}]);