(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[974],{63:(e,t,a)=>{"use strict";var r=a(7260);a.o(r,"usePathname")&&a.d(t,{usePathname:function(){return r.usePathname}}),a.o(r,"useRouter")&&a.d(t,{useRouter:function(){return r.useRouter}})},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 m},handleClientScriptLoad:function(){return h},initScriptLoader:function(){return f}});let r=a(8140),n=a(9417),o=a(5155),s=r._(a(7650)),i=n._(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:n=null,dangerouslySetInnerHTML:o,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=()=>{n&&n(),g.add(h)},b=document.createElement("script"),m=new Promise((e,t)=>{b.addEventListener("load",function(t){e(),r&&r.call(this,t),f()}),b.addEventListener("error",function(e){t(e)})}).catch(function(e){d&&d(e)});o?(b.innerHTML=o.__html||"",f()):i?(b.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):"",f()):t&&(b.src=t,u.set(t,m)),(0,c.setAttributesFromProps)(b,e),"worker"===l&&b.setAttribute("type","text/partytown"),b.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(b)};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 b(e){let{id:t,src:a="",onLoad:r=()=>{},onReady:n=null,strategy:c="afterInteractive",onError:u,stylesheets:h,...f}=e,{updateScripts:b,scripts:m,getIsSsr:w,appDir:y,nonce:v}=(0,i.useContext)(l.HeadManagerContext);v=f.nonce||v;let x=(0,i.useRef)(!1);(0,i.useEffect)(()=>{let e=t||a;x.current||(n&&e&&g.has(e)&&n(),x.current=!0)},[n,t,a]);let k=(0,i.useRef)(!1);if((0,i.useEffect)(()=>{if(!k.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))}));k.current=!0}},[e,c]),("beforeInteractive"===c||"worker"===c)&&(b?(m[c]=(m[c]||[]).concat([{id:t,src:a,onLoad:r,onReady:n,onError:u,...f,nonce:v}]),b(m)):w&&w()?g.add(t||a):w&&!w()&&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,o.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,o.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(b,"__nextScript",{value:!0});let m=b;("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),n=a(2115);let o=(0,n.createContext)(null);function s(){let e=(0,n.useContext)(o);if(!e)throw Error("useQuote must be used within QuoteProvider");return e}function i(e){let{children:t}=e,[a,s]=(0,n.useState)(!1),i=(0,n.useCallback)(()=>s(!0),[]),l=(0,n.useCallback)(()=>s(!1),[]);return(0,r.jsx)(o.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:()=>o});var r=a(5155),n=a(2818);function o(e){let{phone:t=n.U.phone,label:a,className:o=""}=e,s="tel:".concat(t.replace(/[^+\d]/g,""));return(0,r.jsx)("a",{href:s,className:o,"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)})}},4454:(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)),Promise.resolve().then(a.bind(a,6891))},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),n=a(2115);let o=[640,960,1280,1920].map(e=>"/images/hero-".concat(e,".webp ").concat(e,"w")).join(", ");function s(){let[e,t]=(0,n.useState)(!1),[a,s]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{var e,t;let a=null!=(e=window.requestIdleCallback)?e:e=>window.setTimeout(e,1),r=null!=(t=window.cancelIdleCallback)?t:window.clearTimeout,n=a(()=>s(!0));return()=>r(n)},[]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("img",{src:"/images/hero-1920.webp",srcSet:o,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:()=>n});var r=a(2115);class n 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),n=a(2501);let o={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,n.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(o[s]," ").concat(a),children:t})}},6891:(e,t,a)=>{"use strict";a.d(t,{QuoteInline:()=>i});var r=a(5155),n=a(2115),o=a(63),s=a(5932);function i(e){return(0,r.jsx)(s.ErrorBoundary,{label:"quote-inline",children:(0,r.jsx)(l,{...e})})}function l(e){let{className:t="",widgetId:a="strux-gaq-inline-r56426",headerText:s="Get Your Free In-Home Design & Pricing",buttonText:i="Get My Free Design",categories:l="Cabinets|Slatwall|Storage Racks|Other",source:c="inline_form"}=e,d=(0,o.useRouter)(),u=(0,n.useRef)(null);return(0,n.useEffect)(()=>{let e="data-strux-inline-".concat(a);if(document.querySelector("script[".concat(e,"]")))return;let t="https://app.struxgarage.com/assets/widgets/v1/strux-get-a-quote-widget.js?target=".concat(a,"&businessId=business2&headerText=").concat(encodeURIComponent(s),"&buttonText=").concat(encodeURIComponent(i),"&categories=").concat(encodeURIComponent(l)),r=document.createElement("script");r.src=t,r.async=!0,r.setAttribute(e,"true"),document.body.appendChild(r)},[a,s,i,l]),(0,n.useEffect)(()=>{let e=u.current;if(!e)return;let t=e=>{let t=e.detail;"dataLayer"in window&&window.dataLayer.push({event:"quote_submitted",source:c,page_location:window.location.pathname,...t}),d.push("/thank-you")};return e.addEventListener("strux:quote-submitted",t),()=>e.removeEventListener("strux:quote-submitted",t)},[d,c]),(0,r.jsx)("div",{ref:u,id:a,className:t,"data-tracking":"quote-inline"})}}},e=>{e.O(0,[356,619,441,255,358],()=>e(e.s=4454)),_N_E=e.O()}]);