{"version":3,"file":"ProjectGallery.B7kg5P-R.mjs","names":["React.useState","React.useRef","React.useCallback","_Fragment"],"sources":["https:/framerusercontent.com/modules/zIlRxrRMcz0X0nqdVqhg/znxWL9DryU8OMRI9bqfQ/ProjectGallery.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const galleries={structured:[\"https://framerusercontent.com/images/u0GgCUB0t7FQk0ePJCkSv13LF8.jpeg\",\"https://framerusercontent.com/images/ixoowG1fBNMvtKF8xS0FCauMBUE.jpeg\",\"https://framerusercontent.com/images/o4sxKY7TSVvwwGdlmVfg2Dm5xA.jpeg\"],network:[\"https://framerusercontent.com/images/btCJPnJgtAtpbg7oRlNPjNtBMBk.jpeg\",\"https://framerusercontent.com/images/hvJ915Vt4FtFTYCHd6ARxtGm8.jpeg\",\"https://framerusercontent.com/images/SFR3HSK0fX52uyNmrUlf2bgFEw.jpeg\",\"https://framerusercontent.com/images/IOctilUfYGnLKfmR7r7JlICJkwE.jpeg\"],industrial:[\"https://framerusercontent.com/images/CGB9WRYasjtz4D9gs4oSDZN2H4.jpeg\",\"https://framerusercontent.com/images/Ou6sX29fggASfeRisxapff3UaFc.jpeg\",\"https://framerusercontent.com/images/oqcCO1UzoiqmJxYyrCDKe7ONco.jpeg\",\"https://framerusercontent.com/images/YKZRx4zPhxu0QPL4CvrQVPir8Ww.jpeg\",\"https://framerusercontent.com/images/OPbHtcyhFtTtugPsiEjk01oMm7c.jpeg\",\"https://framerusercontent.com/images/M3qTrF0JYS2hOVC1n6GhhRzWbsU.jpeg\",\"https://framerusercontent.com/images/QC7w8aeLK5DnLze1yn16nGXM5sU.jpeg\",\"https://framerusercontent.com/images/YlzWSjtC3W4aGIgNbP6kTHDNns.jpeg\",\"https://framerusercontent.com/images/IILiBblSzNp3Smxoj4TX5v3pvMk.jpeg\",\"https://framerusercontent.com/images/pdNeOdGdYxTY5tuN8wOzanY0vzc.jpeg\"]};const Icon=({type})=>/*#__PURE__*/_jsx(\"svg\",{width:\"24\",height:\"24\",viewBox:\"0 0 24 24\",fill:\"none\",\"aria-hidden\":\"true\",children:type===\"close\"?/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"path\",{d:\"M6 6L18 18\"}),/*#__PURE__*/_jsx(\"path\",{d:\"M18 6L6 18\"})]}):type===\"prev\"?/*#__PURE__*/_jsx(\"path\",{d:\"M15 5L8 12L15 19\"}):/*#__PURE__*/_jsx(\"path\",{d:\"M9 5L16 12L9 19\"})});/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight fixed\n */export default function ProjectGallery({project=\"structured\",style}){const images=galleries[project]||galleries.structured;const[active,setActive]=React.useState(null);const touchX=React.useRef(0);const close=React.useCallback(()=>setActive(null),[]);const previous=React.useCallback(()=>setActive(i=>i===null?0:(i-1+images.length)%images.length),[images.length]);const next=React.useCallback(()=>setActive(i=>i===null?0:(i+1)%images.length),[images.length]);React.useEffect(()=>{if(active===null)return;const onKey=e=>{if(e.key===\"Escape\")close();if(e.key===\"ArrowLeft\")previous();if(e.key===\"ArrowRight\")next();};window.addEventListener(\"keydown\",onKey);return()=>window.removeEventListener(\"keydown\",onKey);},[active,close,previous,next]);return /*#__PURE__*/_jsxs(\"div\",{style:{...style,width:\"100%\",height:\"100%\",minHeight:360,position:\"relative\",display:\"flex\",flexDirection:\"column\",gap:12},children:[/*#__PURE__*/_jsx(\"style\",{children:`\n      .ow-back{align-self:flex-start;color:#a8a8a8;text-decoration:underline;text-underline-offset:4px;font:400 15px/1.3 system-ui;transition:color .2s ease}\n      .ow-back:hover{color:#fff}\n      .ow-gallery{display:grid;grid-template-columns:1.18fr 1fr;grid-template-rows:1fr 1fr;gap:10px;width:100%;flex:1;min-height:0;border-radius:18px;overflow:hidden;background:#0d0f12;padding:10px;box-sizing:border-box}\n      .ow-tile{position:relative;overflow:hidden;border-radius:12px;cursor:zoom-in;background:#171a1f;border:1px solid rgba(255,255,255,.08);padding:0;transition:transform .28s ease,box-shadow .28s ease,z-index .1s}\n      .ow-tile:first-child{grid-row:1 / span 2}\n      .ow-tile:hover{transform:scale(1.065);z-index:4;box-shadow:0 18px 50px rgba(0,0,0,.55)}\n      .ow-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease,filter .35s ease}\n      .ow-tile:hover img{transform:scale(1.12);filter:brightness(1.08)}\n      .ow-more{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.38);color:white;font:600 28px/1 system-ui;pointer-events:none}\n      .ow-viewer{position:fixed;inset:0;z-index:2147483647;background:rgba(5,7,10,.96);display:flex;align-items:center;justify-content:center;backdrop-filter:blur(12px)}\n      .ow-viewer>img{max-width:calc(100vw - 120px);max-height:calc(100vh - 100px);object-fit:contain;border-radius:8px;box-shadow:0 24px 90px rgba(0,0,0,.7);user-select:none}\n      .ow-control{position:absolute;width:48px;height:48px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(15,18,23,.78);color:white;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s,transform .2s;z-index:2;box-sizing:border-box}\n      .ow-control svg{display:block;width:24px;height:24px;overflow:visible}\n      .ow-control path{stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}\n      .ow-control:hover{background:#fff;color:#111;transform:scale(1.08)}\n      .ow-close{top:22px;right:22px}\n      .ow-prev{left:24px;top:50%;transform:translateY(-50%)}\n      .ow-next{right:24px;top:50%;transform:translateY(-50%)}\n      .ow-prev:hover,.ow-next:hover{transform:translateY(-50%) scale(1.08)}\n      .ow-count{position:absolute;bottom:22px;left:50%;transform:translateX(-50%);padding:8px 13px;border-radius:999px;background:rgba(15,18,23,.72);color:white;font:500 13px/1 system-ui;letter-spacing:.08em}\n      @media(max-width:600px){.ow-gallery{gap:6px;padding:6px;border-radius:14px}.ow-tile{border-radius:9px}.ow-viewer>img{max-width:calc(100vw - 28px);max-height:calc(100vh - 120px)}.ow-control{width:44px;height:44px}.ow-prev{left:12px}.ow-next{right:12px}.ow-close{top:14px;right:14px}}\n    `}),/*#__PURE__*/_jsx(\"a\",{className:\"ow-back\",href:\"/deployments\",children:\"← Back to Projects\"}),/*#__PURE__*/_jsx(\"div\",{className:\"ow-gallery\",\"aria-label\":\"Project photo gallery\",children:images.slice(0,3).map((src,i)=>/*#__PURE__*/_jsxs(\"button\",{className:\"ow-tile\",onClick:()=>setActive(i),\"aria-label\":`Open photo ${i+1} of ${images.length}`,children:[/*#__PURE__*/_jsx(\"img\",{src:src,alt:\"\",draggable:false}),i===2&&images.length>3&&/*#__PURE__*/_jsxs(\"span\",{className:\"ow-more\",children:[\"+\",images.length-3]})]},src))}),active!==null&&/*#__PURE__*/_jsxs(\"div\",{className:\"ow-viewer\",role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Full-size project gallery\",onClick:e=>{if(e.target===e.currentTarget)close();},onTouchStart:e=>touchX.current=e.touches[0].clientX,onTouchEnd:e=>{const d=e.changedTouches[0].clientX-touchX.current;if(Math.abs(d)>50)(d>0?previous:next)();},children:[/*#__PURE__*/_jsx(\"button\",{className:\"ow-control ow-close\",onClick:close,\"aria-label\":\"Close gallery\",children:/*#__PURE__*/_jsx(Icon,{type:\"close\"})}),/*#__PURE__*/_jsx(\"button\",{className:\"ow-control ow-prev\",onClick:previous,\"aria-label\":\"Previous photo\",children:/*#__PURE__*/_jsx(Icon,{type:\"prev\"})}),/*#__PURE__*/_jsx(\"img\",{src:images[active],alt:`Project photo ${active+1} of ${images.length}`}),/*#__PURE__*/_jsx(\"button\",{className:\"ow-control ow-next\",onClick:next,\"aria-label\":\"Next photo\",children:/*#__PURE__*/_jsx(Icon,{type:\"next\"})}),/*#__PURE__*/_jsxs(\"div\",{className:\"ow-count\",children:[active+1,\" / \",images.length]})]})]});}addPropertyControls(ProjectGallery,{project:{type:ControlType.Enum,title:\"Project\",options:[\"structured\",\"network\",\"industrial\"],optionTitles:[\"Structured Cabling\",\"Network Rack\",\"Industrial Takeover\"],defaultValue:\"structured\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ProjectGallery\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ProjectGallery.map"],"mappings":"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"}