{"version":3,"file":"ModelViewerFollow.BdeSbPyN.mjs","names":["React.useRef"],"sources":["https:/framerusercontent.com/modules/zykAbMd1m7e3T6NcP1eD/qGpMdQGp0UI0a3o301XP/ModelViewerFollow.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";const MV_URL=\"https://ajax.googleapis.com/ajax/libs/model-viewer/3.4.0/model-viewer.min.js\";function ensureModelViewerLoaded(){return new Promise((resolve,reject)=>{if(typeof window!==\"undefined\"&&window.customElements?.get(\"model-viewer\"))return resolve();const existing=document.querySelector(`script[data-mv-src=\"${MV_URL}\"]`);if(existing){existing.addEventListener(\"load\",()=>resolve());existing.addEventListener(\"error\",()=>reject(new Error(\"model-viewer load error\")));return;}const s=document.createElement(\"script\");s.type=\"module\";s.src=MV_URL;s.async=true;s.dataset.mvSrc=MV_URL;s.addEventListener(\"load\",()=>resolve());s.addEventListener(\"error\",()=>reject(new Error(\"Failed to load model-viewer\")));document.head.appendChild(s);});}const clamp=(v,a,b)=>Math.max(a,Math.min(b,v));const lerp=(a,b,t)=>a+(b-a)*t;export default function HoverFollowModel(props){const{// Sources\nmodelUrl,environmentUrl,skyboxUrl,// Scale (scene-graph)\nmodelScale,// Camera center (pitch)\ncameraVerticalAngleDeg,// Hover behavior\nhoverRangeHorizontalDeg,hoverRangeVerticalDeg,pointerSensitivity,hoverSmoothness,hoverResponsiveness,// Idle\nidleRotateDegPerSec,// Scroll → spin boost\nenableScrollBoost,scrollBoostSensitivity,scrollBoostDecayPerSec,// NEW: animation controls\nautoplay,animationName,animationCrossfade}=props;const hostRef=React.useRef(null);const mvRef=React.useRef(null);const rafRef=React.useRef(null);const lastTs=React.useRef(performance.now());const centerPolRef=React.useRef(cameraVerticalAngleDeg);React.useEffect(()=>{centerPolRef.current=cameraVerticalAngleDeg;},[cameraVerticalAngleDeg]);// animated orbit\nconst targetAz=React.useRef(0);const targetPol=React.useRef(cameraVerticalAngleDeg);const az=React.useRef(0);const pol=React.useRef(cameraVerticalAngleDeg);// visibility + scroll boost\nconst visibleRef=React.useRef(true);const spinBoostRef=React.useRef(0);React.useEffect(()=>{let cancelled=false;ensureModelViewerLoaded().then(()=>{if(cancelled||!hostRef.current)return;if(!document.getElementById(\"mv-global-style\")){const style=document.createElement(\"style\");style.id=\"mv-global-style\";style.textContent=`\n          model-viewer { cursor: default !important; }\n          model-viewer::part(interaction-prompt) { display: none !important; }\n        `;document.head.appendChild(style);}const mv=document.createElement(\"model-viewer\");mvRef.current=mv;mv.setAttribute(\"interaction-policy\",\"always-allow\");mv.setAttribute(\"interaction-prompt\",\"none\");mv.setAttribute(\"interaction-prompt-threshold\",\"0\");mv.setAttribute(\"tone-mapping\",\"aces\");mv.setAttribute(\"exposure\",\"1\");mv.setAttribute(\"poster\",\"\");mv.style.width=\"100%\";mv.style.height=\"100%\";mv.style.background=\"transparent\";mv.style.cursor=\"default\";mv.style.setProperty(\"--poster-color\",\"transparent\");mv.style.setProperty(\"--progress-bar-color\",\"transparent\");hostRef.current.innerHTML=\"\";hostRef.current.appendChild(mv);applyUrls(mv,{modelUrl,environmentUrl,skyboxUrl});const onLoad=()=>{try{const s=Number(modelScale)||1;if(mv.model?.scale)mv.model.scale.set(s,s,s);// ✅ Animation setup\nif(autoplay){mv.setAttribute(\"autoplay\",\"\");mv.play();}if(animationName){mv.animationName=animationName;}if(animationCrossfade>0){mv.animationCrossfadeDuration=animationCrossfade;}console.log(\"Available animations:\",mv.availableAnimations);az.current=0;pol.current=centerPolRef.current;targetAz.current=az.current;targetPol.current=pol.current;mv.cameraOrbit=`${az.current}deg ${pol.current}deg auto`;}catch{}start();};mv.addEventListener(\"load\",onLoad);// Hover-follow\nconst onMove=e=>{const rect=mv.getBoundingClientRect();let nx=(e.clientX-rect.left)/rect.width*2-1;let ny=(e.clientY-rect.top)/rect.height*2-1;const S=clamp(pointerSensitivity,.05,1);nx*=S;ny*=S;const curve=t=>Math.sign(t)*Math.pow(Math.abs(t),.75);const yaw=curve(nx)*(hoverRangeHorizontalDeg*.5);const pitch=centerPolRef.current-curve(ny)*(hoverRangeVerticalDeg*.5);targetAz.current=yaw;targetPol.current=clamp(pitch,2,178);};mv.addEventListener(\"pointermove\",onMove);// Visibility\nconst io=new IntersectionObserver(entries=>{visibleRef.current=entries[0]?.isIntersecting??true;},{root:null,threshold:.01});io.observe(hostRef.current);// Scroll boost\nconst onWheel=e=>{if(!enableScrollBoost||!visibleRef.current)return;let d=e.deltaY;if(e.deltaMode===1)d*=16;else if(e.deltaMode===2)d*=100;const k=Number(scrollBoostSensitivity)||.05;spinBoostRef.current+=d*k;spinBoostRef.current=clamp(spinBoostRef.current,-1080,1080);};window.addEventListener(\"wheel\",onWheel,{passive:true});return()=>{mv.removeEventListener(\"load\",onLoad);mv.removeEventListener(\"pointermove\",onMove);window.removeEventListener(\"wheel\",onWheel);io.disconnect();};});function start(){cancelAnimationFrame(rafRef.current);lastTs.current=performance.now();rafRef.current=requestAnimationFrame(tick);}function tick(ts){const mv=mvRef.current;if(!mv)return;const dt=Math.max(5e-4,(ts-lastTs.current)/1e3);lastTs.current=ts;let spin=idleRotateDegPerSec||0;spin+=spinBoostRef.current||0;if(spin!==0)targetAz.current=(targetAz.current+spin*dt)%360;const decay=Number(scrollBoostDecayPerSec)||1.5;const decayFactor=Math.exp(-decay*dt);spinBoostRef.current*=decayFactor;if(Math.abs(spinBoostRef.current)<.01)spinBoostRef.current=0;const resp=clamp(hoverResponsiveness,.05,1);const smooth=clamp(hoverSmoothness,0,.95);az.current=lerp(az.current,targetAz.current,resp*dt*60);pol.current=lerp(pol.current,targetPol.current,resp*dt*60);az.current=lerp(az.current,targetAz.current,smooth*.08);pol.current=lerp(pol.current,targetPol.current,smooth*.08);mv.cameraOrbit=`${az.current}deg ${pol.current}deg auto`;rafRef.current=requestAnimationFrame(tick);}return()=>{cancelled=true;cancelAnimationFrame(rafRef.current);};},[]);// React: sources\nReact.useEffect(()=>{const mv=mvRef.current;if(!mv)return;applyUrls(mv,{modelUrl,environmentUrl,skyboxUrl});},[modelUrl,environmentUrl,skyboxUrl]);// React: scale\nReact.useEffect(()=>{const mv=mvRef.current;if(!mv)return;const s=Number(modelScale)||1;if(mv.model?.scale)mv.model.scale.set(s,s,s);},[modelScale]);// React: camera center\nReact.useEffect(()=>{targetPol.current=clamp(cameraVerticalAngleDeg,2,178);},[cameraVerticalAngleDeg]);return /*#__PURE__*/_jsx(\"div\",{ref:hostRef,style:{width:\"100%\",height:\"100%\",background:\"transparent\"}});}function applyUrls(mv,{modelUrl,environmentUrl,skyboxUrl}){if(!mv)return;if(modelUrl)mv.setAttribute(\"src\",modelUrl);else mv.removeAttribute(\"src\");if(environmentUrl===\"neutral\")mv.setAttribute(\"environment-image\",\"neutral\");else if(typeof environmentUrl===\"string\"&&environmentUrl.match(/\\.(hdr|ktx2)(\\?|#|$)/i))mv.setAttribute(\"environment-image\",environmentUrl);else mv.removeAttribute(\"environment-image\");if(typeof skyboxUrl===\"string\"&&skyboxUrl.match(/\\.(hdr|ktx2|jpg|jpeg|png)(\\?|#|$)/i))mv.setAttribute(\"skybox-image\",skyboxUrl);else mv.removeAttribute(\"skybox-image\");}/* ---- Framer property panel ---- */addPropertyControls(HoverFollowModel,{modelUrl:{type:ControlType.String,title:\"Model URL\",defaultValue:\"https://modelviewer.dev/shared-assets/models/Astronaut.glb\"},environmentUrl:{type:ControlType.String,title:\"Environment (HDRI or 'neutral')\",defaultValue:\"neutral\"},skyboxUrl:{type:ControlType.String,title:\"Background Skybox (optional)\",defaultValue:\"\"},modelScale:{type:ControlType.Number,title:\"Model Scale\",defaultValue:1,min:.1,max:10,step:.1},cameraVerticalAngleDeg:{type:ControlType.Number,title:\"Camera Vertical Angle (\\xb0)\",defaultValue:60,min:0,max:180,step:1},hoverRangeHorizontalDeg:{type:ControlType.Number,title:\"Hover Range — Horizontal (\\xb0)\",defaultValue:120,min:30,max:360,step:1},hoverRangeVerticalDeg:{type:ControlType.Number,title:\"Hover Range — Vertical (\\xb0)\",defaultValue:80,min:30,max:170,step:1},pointerSensitivity:{type:ControlType.Number,title:\"Pointer Sensitivity (0–1)\",defaultValue:.5,min:.05,max:1,step:.05},hoverSmoothness:{type:ControlType.Number,title:\"Hover Smoothness\",defaultValue:.35,min:0,max:.95,step:.05},hoverResponsiveness:{type:ControlType.Number,title:\"Hover Responsiveness\",defaultValue:.3,min:.05,max:1,step:.05},idleRotateDegPerSec:{type:ControlType.Number,title:\"Idle Spin Speed (deg/s)\",defaultValue:1.5,min:0,max:30,step:.5},enableScrollBoost:{type:ControlType.Boolean,title:\"Scroll Boost\",defaultValue:true},scrollBoostSensitivity:{type:ControlType.Number,title:\"Boost Sensitivity\",defaultValue:.05,min:.005,max:.2,step:.005},scrollBoostDecayPerSec:{type:ControlType.Number,title:\"Boost Decay (/sec)\",defaultValue:1.5,min:.2,max:5,step:.1},autoplay:{type:ControlType.Boolean,title:\"Autoplay Animation\",defaultValue:true},animationName:{type:ControlType.String,title:\"Animation Name\",defaultValue:\"\"},animationCrossfade:{type:ControlType.Number,title:\"Crossfade (ms)\",defaultValue:300,min:0,max:2e3,step:50}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HoverFollowModel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ModelViewerFollow.map"],"mappings":"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"}