{"version":3,"file":"DynamicCaseStudies.CBq_PSWS.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/JviNm7loMddtCqlw0IlD/kN1ILCs08befnptz1EZ4/DynamicCaseStudies.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useEffect,useRef}from\"react\";// Apply to a full, unfiltered Case Studies collection list in manual CMS order.\n// Framer supplies the CMS records and excludes drafts when the site is published.\n// Existing card components, links, media, hover effects, and typography are retained.\nconst normal=s=>s.trim().replace(/\\s+/g,\" \").toLowerCase();const setText=(el,value)=>{if(el&&el.textContent!==value)el.textContent=value;};function numeric(scope){return scope?Array.from(scope.querySelectorAll(\"p\")).find(p=>/^\\d+$/.test(p.textContent?.trim()||\"\"))||null:null;}function title(card){return Array.from(card.querySelectorAll(\"p\")).find(p=>{const s=p.textContent?.trim()||\"\";return s&&!/^\\d+$/.test(s)&&s!==\"/\"&&normal(s)!==\"view project\";})?.textContent||\"\";}function wrap(Component,navigation){return /*#__PURE__*/forwardRef((props,forwardedRef)=>{const node=useRef(null);useEffect(()=>{const root=node.current;if(!root)return;const originals=new Map;const originalRoot={flexDirection:root.style.flexDirection,height:root.style.height,flex:root.style.flex,width:root.style.width};let frame=0;const update=()=>{// Count CMS items, not variant names: hover can rename or replace a card.\nconst entries=Array.from(root.children).filter(item=>item instanceof HTMLElement).map(item=>{const links=item.matches(\"a[href]\")?[item]:Array.from(item.querySelectorAll(\"a[href]\"));return{item,card:links[0],links};}).filter(entry=>entry.card);const cards=entries.map(entry=>entry.card);if(!cards.length)return;entries.forEach((entry,i)=>entry.links.forEach(card=>setText(numeric(card.querySelector('[data-framer-name=\"Title Wrapper\"]')||card),String(i+1))));const main=root.closest('[data-framer-name=\"Main\"]')||document;if(!navigation){// Preserve the count's existing parentheses and styles.\nmain.querySelectorAll('[data-framer-name=\"Number\"] p').forEach(p=>{if(/^\\d+$/.test(p.textContent?.trim()||\"\"))setText(p,String(cards.length));else if(/^\\(\\s*\\d+\\s*\\)$/.test(p.textContent?.trim()||\"\"))setText(p,\"( \"+cards.length+\" )\");});return;}const heading=main.querySelector('[data-framer-name=\"Section Header\"] h1');const slug=path=>decodeURIComponent(path.split(\"/\").filter(Boolean).pop()||\"\");const currentSlug=slug(window.location.pathname);let current=cards.findIndex(card=>slug(new URL(card.href).pathname)===currentSlug);if(current<0)current=cards.findIndex(card=>normal(title(card))===normal(heading?.textContent||\"\"));if(current<0)return;setText(numeric(main.querySelector('[data-framer-name=\"Section Header\"] [data-framer-name=\"Number\"]')),String(current+1));const phone=window.innerWidth<810;root.style.flexDirection=phone?\"column\":\"row\";root.style.height=\"auto\";root.style.flex=\"0 0 auto\";root.style.width=\"100%\";const next=Array.from({length:Math.min(3,cards.length-1)},(_,i)=>(current+i+1)%cards.length);entries.forEach(({item},i)=>{if(!originals.has(item))originals.set(item,{display:item.style.display,order:item.style.order,flex:item.style.flex,width:item.style.width});const position=next.indexOf(i);item.style.display=position<0?\"none\":originals.get(item).display;item.style.order=String(position<0?cards.length:position);item.style.flex=phone?\"0 0 auto\":\"1 1 0px\";item.style.width=phone?\"100%\":originals.get(item).width;});};const schedule=()=>{cancelAnimationFrame(frame);frame=requestAnimationFrame(update);};const observer=new MutationObserver(schedule);observer.observe(root,{childList:true,subtree:true,characterData:true});const heading=(root.closest('[data-framer-name=\"Main\"]')||document).querySelector('[data-framer-name=\"Section Header\"] h1');if(heading)observer.observe(heading,{childList:true,subtree:true,characterData:true});window.addEventListener(\"resize\",schedule);schedule();return()=>{cancelAnimationFrame(frame);observer.disconnect();Object.assign(root.style,originalRoot);window.removeEventListener(\"resize\",schedule);originals.forEach((value,item)=>Object.assign(item.style,value));};},[]);return /*#__PURE__*/_jsx(Component,{...props,ref:value=>{node.current=value;if(typeof forwardedRef===\"function\")forwardedRef(value);else if(forwardedRef)forwardedRef.current=value;}});});}export function withDynamicMoreWork(Component){return wrap(Component,true);}export function withDynamicWorkIndex(Component){return wrap(Component,false);}\nexport const __FramerMetadata__ = {\"exports\":{\"withDynamicMoreWork\":{\"type\":\"reactHoc\",\"name\":\"withDynamicMoreWork\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withDynamicWorkIndex\":{\"type\":\"reactHoc\",\"name\":\"withDynamicWorkIndex\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DynamicCaseStudies.map"],"mappings":"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"}