{"version":3,"file":"modelviewer3d.P9furLRf.mjs","names":["useRef","useState","useMemo","useCallback","startTransition","p"],"sources":["https:/framerusercontent.com/modules/NTSgHOmEqstOY6qPSNmi/KccRGKRPlvrjiCgrtAst/modelviewer3d.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer,Color}from\"framer\";import{useCallback,useEffect,useMemo,useRef,useState,startTransition}from\"react\";const MODEL_VIEWER_SRC=\"https://cdn.jsdelivr.net/npm/@google/model-viewer/dist/model-viewer.min.js\";function srgbToLinear(channel){const c=Math.max(0,Math.min(1,channel));return c<=.04045?c/12.92:Math.pow((c+.055)/1.055,2.4);}// Cache resolved CSS colors to avoid repeated DOM insertions\nconst cssColorCache=new Map;function hexToLinearRgba(color){try{const isSpecial=typeof document!==\"undefined\"&&(color.startsWith(\"var(\")||!color.startsWith(\"#\"));if(isSpecial){const cached=cssColorCache.get(color);if(cached)return cached;const div=document.createElement(\"div\");div.style.cssText=`color:${color};position:absolute;pointer-events:none;visibility:hidden`;document.body.appendChild(div);const computed=getComputedStyle(div).color;document.body.removeChild(div);if(computed){const match=computed.match(/rgba?\\((\\d+),\\s*(\\d+),\\s*(\\d+)(?:,\\s*([\\d.]+))?\\)/);if(match){const result=[srgbToLinear(parseInt(match[1])/255),srgbToLinear(parseInt(match[2])/255),srgbToLinear(parseInt(match[3])/255),match[4]?parseFloat(match[4]):1];// Only cache static values, not CSS vars that can change with theme\nif(!color.startsWith(\"var(\"))cssColorCache.set(color,result);return result;}}}const c=Color(color);if(!c)return[1,1,1,1];return[srgbToLinear(c.r/255),srgbToLinear(c.g/255),srgbToLinear(c.b/255),c.a];}catch{return[1,1,1,1];}}function applyMaterialToEl(mvEl,color,roughness,metalness,useCustom){if(!useCustom)return;const materials=mvEl?.model?.materials;if(!Array.isArray(materials)||materials.length===0){// Retry up to 20 times via rAF\nconst attempts=mvEl.__framerMaterialAttempts??0;if(typeof window!==\"undefined\"&&attempts<20){mvEl.__framerMaterialAttempts=attempts+1;window.requestAnimationFrame(()=>applyMaterialToEl(mvEl,color,roughness,metalness,useCustom));}return;}mvEl.__framerMaterialAttempts=0;const rgba=hexToLinearRgba(color);for(const mat of materials){mat?.pbrMetallicRoughness?.setBaseColorFactor?.(rgba);mat?.pbrMetallicRoughness?.setRoughnessFactor?.(roughness);mat?.pbrMetallicRoughness?.setMetallicFactor?.(metalness);}}let modelViewerLoadPromise=null;function ensureModelViewerLoaded(){if(typeof window===\"undefined\")return Promise.resolve();if(modelViewerLoadPromise)return modelViewerLoadPromise;if(customElements?.get(\"model-viewer\"))return Promise.resolve();modelViewerLoadPromise=new Promise(resolve=>{if(!document?.head){resolve();return;}const whenDefined=()=>customElements?.whenDefined?.(\"model-viewer\")?.then(resolve,resolve)??resolve();const existing=document.querySelector(`script[data-framer-model-viewer=\"true\"]`);if(existing){existing.addEventListener(\"load\",whenDefined,{once:true});existing.addEventListener(\"error\",()=>resolve(),{once:true});return;}const s=Object.assign(document.createElement(\"script\"),{type:\"module\",src:MODEL_VIEWER_SRC,async:true});s.dataset.framerModelViewer=\"true\";s.addEventListener(\"load\",whenDefined,{once:true});s.addEventListener(\"error\",()=>resolve(),{once:true});document.head.appendChild(s);});return modelViewerLoadPromise;}/**\n * @framerDisplayName 3D Model Preview\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function ModelViewer3D(props){const{modelFile=\"https://modelviewer.dev/shared-assets/models/Astronaut.glb\",fileType=\"glb\",backgroundColor=\"transparent\",backgroundImage=\"\",materialColor=\"#FFFFFF\",materialRoughness=.5,materialMetalness=.5,useCustomMaterial=true,showLoading=true,loadingText=\"Loading 3D…\",loadingFont,loadingTextColor=\"#000000\",enablePanRotateZoom=true,enableZoom=true,autoRotate=false,autoRotateDelayMs=0,autoRotateSpeed=30,autoRotateDirection=\"y+\",cameraOrbitAzimuth=0,cameraOrbitPolar=75,cameraOrbitRadius=105,minCameraOrbitRadius=10,maxCameraOrbitRadius=400,fieldOfView=45,modelScale=.8,modelRotationX=0,modelRotationY=0,modelRotationZ=0,exposure=1,showShadow=true,shadowIntensity=.6,shadowSoftness=.8,ar=false,style}=props;const effectiveShadowIntensity=showShadow?shadowIntensity:0;useIsStaticRenderer();const isRestricted=RenderTarget.current()===RenderTarget.thumbnail||RenderTarget.current()===RenderTarget.export;const mvRef=useRef(null);const lastAppliedKeyRef=useRef(\"\");const orientationRef=useRef({x:0,y:0,z:0});const rotateRafRef=useRef(0);const rotateLastTsRef=useRef(0);const[ready,setReady]=useState(()=>typeof window!==\"undefined\"&&typeof customElements!==\"undefined\"?!!customElements.get(\"model-viewer\"):false);const[status,setStatus]=useState(\"loading\");const src=useMemo(()=>(modelFile||\"\").trim(),[modelFile]);const iosSrc=useMemo(()=>fileType===\"usdz\"&&src?src:undefined,[fileType,src]);const showPlaceholder=isRestricted||!src;const showLoadingOverlay=showLoading&&(!ready||status===\"loading\");// --- Stable material applier ---\nconst applyMaterial=useCallback(()=>{const el=mvRef.current;if(!el||!useCustomMaterial)return;const key=`${materialColor}|${materialRoughness}|${materialMetalness}`;const materials=el?.model?.materials;const materialsReady=Array.isArray(materials)&&materials.length>0;// Skip if nothing changed and materials are already applied\nif(materialsReady&&lastAppliedKeyRef.current===key)return;applyMaterialToEl(el,materialColor,materialRoughness,materialMetalness,useCustomMaterial);if(materialsReady)lastAppliedKeyRef.current=key;},[materialColor,materialRoughness,materialMetalness,useCustomMaterial]);// Reset status when src changes\nuseEffect(()=>{startTransition(()=>setStatus(\"loading\"));lastAppliedKeyRef.current=\"\";},[src]);// Load model-viewer script\nuseEffect(()=>{if(showPlaceholder)return;let cancelled=false;ensureModelViewerLoaded().then(()=>{if(!cancelled)startTransition(()=>setReady(true));});return()=>{cancelled=true;};},[showPlaceholder]);// Re-apply material when props change\nuseEffect(()=>{if(!showPlaceholder)applyMaterial();},[applyMaterial,showPlaceholder]);// Watch for theme changes (dark mode toggle, CSS vars) and re-apply material\n// Only needed when using CSS variables for color\nuseEffect(()=>{if(showPlaceholder)return;if(!materialColor.startsWith(\"var(\"))return;// Only watch for CSS vars\nlet raf=0;const schedule=()=>{if(raf)return;raf=window.requestAnimationFrame(()=>{raf=0;applyMaterial();});};let observer=null;try{observer=new MutationObserver(schedule);const opts={attributes:true,attributeFilter:[\"class\",\"style\",\"data-theme\",\"data-framer-theme\"]};observer.observe(document.documentElement,opts);if(document.body)observer.observe(document.body,opts);}catch{observer=null;}let mql=null;try{mql=window.matchMedia?.(\"(prefers-color-scheme: dark)\")??null;mql?.addEventListener?.(\"change\",schedule);}catch{mql=null;}return()=>{if(raf)window.cancelAnimationFrame(raf);observer?.disconnect();try{mql?.removeEventListener?.(\"change\",schedule);}catch{}};},[applyMaterial,materialColor,showPlaceholder]);// Model-viewer event listeners for load/error\nuseEffect(()=>{if(showPlaceholder)return;const el=mvRef.current;if(!el?.addEventListener)return;const handleLoaded=()=>{startTransition(()=>setStatus(\"loaded\"));applyMaterial();};const handleError=()=>startTransition(()=>setStatus(\"error\"));el.addEventListener(\"load\",handleLoaded);el.addEventListener(\"error\",handleError);el.addEventListener(\"scene-graph-ready\",handleLoaded);// Fallback poll — fires only if events don't trigger (e.g. cached model)\nconst poll=setInterval(()=>{if(el?.loaded||el?.model){startTransition(()=>setStatus(\"loaded\"));applyMaterial();}},300);return()=>{clearInterval(poll);el.removeEventListener(\"load\",handleLoaded);el.removeEventListener(\"error\",handleError);el.removeEventListener(\"scene-graph-ready\",handleLoaded);};},[showPlaceholder,applyMaterial]);// Scale\nconst scaleString=useMemo(()=>{const s=Math.max(.001,Number(modelScale)||1);return`${s} ${s} ${s}`;},[modelScale]);useEffect(()=>{const el=mvRef.current;if(!el||showPlaceholder)return;try{el.setAttribute?.(\"scale\",scaleString);el.scale=scaleString;}catch{}},[scaleString,showPlaceholder]);// Base orientation (static, no auto-rotate)\nconst baseOrientation=useMemo(()=>{const x=isFinite(modelRotationX)?modelRotationX:0;const y=isFinite(modelRotationY)?modelRotationY:0;const z=isFinite(modelRotationZ)?modelRotationZ:0;return`${x}deg ${y}deg ${z}deg`;},[modelRotationX,modelRotationY,modelRotationZ]);// Auto-rotate values\nconst rotateAxis=useMemo(()=>autoRotateDirection.charAt(0),[autoRotateDirection]);const effectiveRotationPerSecond=useMemo(()=>{const n=Number(autoRotateSpeed);if(!isFinite(n)||n===0)return\"0deg\";return`${n*(autoRotateDirection.endsWith(\"-\")?-1:1)}deg`;},[autoRotateSpeed,autoRotateDirection]);const effectiveRotationPerSecondNumber=useMemo(()=>{const n=Number(autoRotateSpeed);if(!isFinite(n))return 0;return n*(autoRotateDirection.endsWith(\"-\")?-1:1);},[autoRotateSpeed,autoRotateDirection]);// Custom axis auto-rotate via rAF (model-viewer only natively supports y)\nuseEffect(()=>{if(!autoRotate||rotateAxis===\"y\"||isRestricted||showPlaceholder)return;const el=mvRef.current;if(!el)return;orientationRef.current={x:isFinite(modelRotationX)?modelRotationX:0,y:isFinite(modelRotationY)?modelRotationY:0,z:isFinite(modelRotationZ)?modelRotationZ:0};rotateLastTsRef.current=0;const setOrientation=()=>{const{x,y,z}=orientationRef.current;const value=`${x}deg ${y}deg ${z}deg`;try{el.setAttribute?.(\"orientation\",value);el.orientation=value;}catch{}};setOrientation();const tick=ts=>{const last=rotateLastTsRef.current;rotateLastTsRef.current=ts;const dt=last?Math.min(.1,(ts-last)/1e3):0;if(dt>0){const o=orientationRef.current;o[rotateAxis]=(o[rotateAxis]+effectiveRotationPerSecondNumber*dt)%360;setOrientation();}rotateRafRef.current=window.requestAnimationFrame(tick);};rotateRafRef.current=window.requestAnimationFrame(tick);return()=>{window.cancelAnimationFrame(rotateRafRef.current);rotateRafRef.current=0;};},[autoRotate,effectiveRotationPerSecondNumber,isRestricted,modelRotationX,modelRotationY,modelRotationZ,rotateAxis,showPlaceholder]);// Camera / rendering memos\nconst cameraOrbit=useMemo(()=>`${isFinite(cameraOrbitAzimuth)?cameraOrbitAzimuth:0}deg ${isFinite(cameraOrbitPolar)?cameraOrbitPolar:75}deg ${isFinite(cameraOrbitRadius)?cameraOrbitRadius:105}%`,[cameraOrbitAzimuth,cameraOrbitPolar,cameraOrbitRadius]);const minCameraOrbit=useMemo(()=>`auto auto ${Math.max(0,isFinite(minCameraOrbitRadius)?minCameraOrbitRadius:10)}%`,[minCameraOrbitRadius]);const maxCameraOrbit=useMemo(()=>`auto auto ${Math.max(0,isFinite(maxCameraOrbitRadius)?maxCameraOrbitRadius:400)}%`,[maxCameraOrbitRadius]);const fieldOfViewString=useMemo(()=>`${isFinite(fieldOfView)?fieldOfView:45}deg`,[fieldOfView]);const containerStyle=useMemo(()=>({...style||{},position:\"relative\",width:\"100%\",height:\"100%\",overflow:\"hidden\",background:backgroundImage?`url(${backgroundImage}) center / cover no-repeat`:backgroundColor,// @ts-ignore\n    \"--progress-bar-height\":\"0px\",\"--progress-bar-color\":\"transparent\"}),[style,backgroundImage,backgroundColor]);const placeholderStyle=useMemo(()=>({position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",background:backgroundColor,color:loadingTextColor,gap:10,padding:16,textAlign:\"center\"}),[backgroundColor,loadingTextColor]);const loadingTextStyle=useMemo(()=>({width:\"max-content\",maxWidth:\"100%\",...loadingFont}),[loadingFont]);const ModelViewerTag=\"model-viewer\";return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,\"aria-label\":\"3D model viewer\",children:[status===\"error\"&&/*#__PURE__*/_jsx(\"div\",{style:placeholderStyle,children:/*#__PURE__*/_jsx(\"div\",{style:loadingTextStyle,children:\"Failed to load 3D model.\"})}),showLoadingOverlay&&status!==\"error\"&&/*#__PURE__*/_jsx(\"div\",{style:placeholderStyle,children:/*#__PURE__*/_jsx(\"div\",{style:loadingTextStyle,children:loadingText})}),/*#__PURE__*/_jsx(ModelViewerTag,{ref:mvRef,onLoad:()=>{applyMaterial();const el=mvRef.current;if(!el)return;try{el.setAttribute?.(\"scale\",scaleString);el.scale=scaleString;}catch{}},src:src,scale:scaleString,\"ios-src\":iosSrc,\"camera-controls\":enablePanRotateZoom?\"\":undefined,\"disable-zoom\":enablePanRotateZoom&&!enableZoom||!enablePanRotateZoom?\"\":undefined,\"disable-pan\":enablePanRotateZoom?undefined:\"\",\"disable-tap\":\"\",\"interaction-prompt\":\"none\",\"shadow-intensity\":effectiveShadowIntensity,\"shadow-softness\":shadowSoftness,exposure:exposure,\"camera-orbit\":cameraOrbit,\"min-camera-orbit\":minCameraOrbit,\"max-camera-orbit\":maxCameraOrbit,\"field-of-view\":fieldOfViewString,\"auto-rotate\":autoRotate&&rotateAxis===\"y\"?\"\":undefined,\"auto-rotate-delay\":autoRotateDelayMs,\"rotation-per-second\":rotateAxis===\"y\"?effectiveRotationPerSecond:undefined,orientation:baseOrientation,ar:ar?\"\":undefined,\"ar-modes\":ar?\"webxr scene-viewer quick-look\":undefined,\"touch-action\":\"none\",alt:\"3D model\",style:{width:\"100%\",height:\"100%\",background:\"transparent\",display:\"block\"},role:\"application\",\"aria-label\":\"Interactive 3D model. Drag to rotate. Right-drag to pan. Scroll to zoom.\"})]});}addPropertyControls(ModelViewer3D,{modelFile:{type:ControlType.File,title:\"3D File\",allowedFileTypes:[\"glb\",\"gltf\",\"usdz\"]},fileType:{type:ControlType.Enum,title:\"Type\",options:[\"glb\",\"gltf\",\"usdz\"],optionTitles:[\"GLB\",\"GLTF\",\"USDZ\"],defaultValue:\"glb\",displaySegmentedControl:true},backgroundColor:{type:ControlType.Color,title:\"Bg Color\",defaultValue:\"transparent\"},backgroundImage:{type:ControlType.Image,title:\"Bg Image\"},useCustomMaterial:{type:ControlType.Boolean,title:\"Material\",defaultValue:true,enabledTitle:\"Custom\",disabledTitle:\"Original\"},materialColor:{type:ControlType.Color,title:\"Tint\",defaultValue:\"#FFFFFF\",hidden:p=>!p.useCustomMaterial},materialRoughness:{type:ControlType.Number,title:\"Roughness\",defaultValue:.5,min:0,max:1,step:.01,hidden:p=>!p.useCustomMaterial},materialMetalness:{type:ControlType.Number,title:\"Metalness\",defaultValue:.5,min:0,max:1,step:.01,hidden:p=>!p.useCustomMaterial},enablePanRotateZoom:{type:ControlType.Boolean,title:\"Controls\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},enableZoom:{type:ControlType.Boolean,title:\"Zoom\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:p=>!p.enablePanRotateZoom},autoRotate:{type:ControlType.Boolean,title:\"Auto Rotate\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},autoRotateDelayMs:{type:ControlType.Number,title:\"Rotate Delay\",defaultValue:0,min:0,max:1e4,step:50,unit:\"ms\",hidden:p=>!p.autoRotate},autoRotateSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:30,min:0,max:360,step:1,unit:\"dps\",hidden:p=>!p.autoRotate},autoRotateDirection:{type:ControlType.Enum,title:\"Direction\",options:[\"x+\",\"x-\",\"y+\",\"y-\",\"z+\",\"z-\"],optionTitles:[\"X+\",\"X-\",\"Y+\",\"Y-\",\"Z+\",\"Z-\"],defaultValue:\"y+\",hidden:p=>!p.autoRotate},modelRotationX:{type:ControlType.Number,title:\"Rotation X\",defaultValue:0,min:-180,max:180,step:1,unit:\"\\xb0\"},modelRotationY:{type:ControlType.Number,title:\"Rotation Y\",defaultValue:0,min:-180,max:180,step:1,unit:\"\\xb0\"},modelRotationZ:{type:ControlType.Number,title:\"Rotation Z\",defaultValue:0,min:-180,max:180,step:1,unit:\"\\xb0\"},cameraOrbitAzimuth:{type:ControlType.Number,title:\"Orbit Azimuth\",defaultValue:0,min:-180,max:180,step:1,unit:\"\\xb0\"},cameraOrbitPolar:{type:ControlType.Number,title:\"Orbit Polar\",defaultValue:75,min:0,max:180,step:1,unit:\"\\xb0\"},cameraOrbitRadius:{type:ControlType.Number,title:\"Orbit Radius\",defaultValue:105,min:1,max:400,step:1,unit:\"%\"},minCameraOrbitRadius:{type:ControlType.Number,title:\"Min Orbit\",defaultValue:10,min:0,max:400,step:1,unit:\"%\"},maxCameraOrbitRadius:{type:ControlType.Number,title:\"Max Orbit\",defaultValue:400,min:0,max:400,step:1,unit:\"%\"},fieldOfView:{type:ControlType.Number,title:\"FOV\",defaultValue:45,min:10,max:120,step:1,unit:\"\\xb0\"},modelScale:{type:ControlType.Number,title:\"Model Scale\",defaultValue:.8,min:.001,max:5,step:.001},exposure:{type:ControlType.Number,title:\"Exposure\",defaultValue:1,min:0,max:2,step:.05},showShadow:{type:ControlType.Boolean,title:\"Shadow\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},shadowIntensity:{type:ControlType.Number,title:\"Shadow Int.\",defaultValue:.6,min:0,max:2,step:.05,hidden:p=>!p.showShadow},shadowSoftness:{type:ControlType.Number,title:\"Softness\",defaultValue:.8,min:0,max:1,step:.02,hidden:p=>!p.showShadow},ar:{type:ControlType.Boolean,title:\"AR\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},showLoading:{type:ControlType.Boolean,title:\"Loading\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},loadingText:{type:ControlType.String,title:\"Loading Text\",defaultValue:\"Loading 3D…\",hidden:p=>!p.showLoading},loadingTextColor:{type:ControlType.Color,title:\"Loading Color\",defaultValue:\"#000000\",hidden:p=>!p.showLoading},loadingFont:{type:ControlType.Font,title:\"Loading Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"15px\",variant:\"Medium\",letterSpacing:\"-0.01em\",lineHeight:\"1.3em\"},hidden:p=>!p.showLoading,description:\"Component by Blue Jackson: [Get In Touch](https://www.jacksonvisualdesign.com/links)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ModelViewer3D\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"400\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerDisplayName\":\"3D Model Preview\",\"framerIntrinsicWidth\":\"600\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./modelviewer3d.map"],"mappings":"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"}