{"version":3,"file":"CRT.CEdKrRDt.mjs","names":["useRef","useState","useMemo"],"sources":["https:/framerusercontent.com/modules/FU4R2H0KQcUuA5REMVXz/iKjx32EQV8oLX1i1yc2S/CRT.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useRef,useEffect,useLayoutEffect,useMemo,useState}from\"react\";// --- High-Quality Static Noise Generator ---\nconst getStaticNoiseTexture=(()=>{let _cachedTexture=null;return()=>{if(_cachedTexture)return _cachedTexture;if(typeof document===\"undefined\")return\"\";const size=128;const canvas=document.createElement(\"canvas\");canvas.width=size;canvas.height=size;const ctx=canvas.getContext(\"2d\");if(!ctx)return\"\";const imgData=ctx.createImageData(size,size);const d=imgData.data;for(let i=0;i<d.length;i+=4){const v=Math.random()*255;d[i]=v;d[i+1]=v;d[i+2]=v;d[i+3]=v*.15// Base opacity\n;}ctx.putImageData(imgData,0,0);_cachedTexture=canvas.toDataURL(\"image/png\");return _cachedTexture;};})();// --- Radial Displacement Map (Inner Warp) ---\nfunction buildDisplacementMap(size=256){if(typeof document===\"undefined\")return\"\";const canvas=document.createElement(\"canvas\");canvas.width=size;canvas.height=size;const ctx=canvas.getContext(\"2d\");const imgData=ctx.createImageData(size,size);const d=imgData.data;const half=size/2;for(let y=0;y<size;y++){for(let x=0;x<size;x++){const nx=(x-half)/half;const ny=(y-half)/half;const r=Math.sqrt(nx*nx+ny*ny);const warp=Math.min(r,1)**2;const dx=r>.001?nx/r:0;const dy=r>.001?ny/r:0;const idx=(y*size+x)*4;d[idx+0]=Math.round(128+dx*warp*127);d[idx+1]=Math.round(128+dy*warp*127);d[idx+2]=0;d[idx+3]=255;}}ctx.putImageData(imgData,0,0);return canvas.toDataURL(\"image/png\");}let _cachedMap=null;function getDisplacementMap(){if(!_cachedMap)_cachedMap=buildDisplacementMap(256);return _cachedMap;}export default function CRT({imageUrl,sensitivity=.4,smoothing=.07,fov=60,concavity=.6,borderThickness=40,frameColor=\"#000000\",scanlineIntensity=.08,noiseIntensity=.15,flickerIntensity=.03,vignetteEnabled=true,vignetteIntensity=.8,vignetteColor=\"#000000\",width=\"100%\",height=\"100%\",style}){const containerRef=useRef(null);const innerRef=useRef(null);const feDispRef=useRef(null);// THE FIX: Added 'ready' boolean to hide the component until it's measured\nconst[dims,setDims]=useState({w:0,h:0,ready:false});const mouse=useRef({x:.5,y:.5});const current=useRef({x:.5,y:.5});const rafRef=useRef(0);const filterId=useRef(`pano-${Math.random().toString(36).slice(2,8)}`).current;const imageScale=.5+fov/120*2;const dispMapUrl=useMemo(()=>getDisplacementMap(),[]);const noiseTexture=useMemo(()=>getStaticNoiseTexture(),[]);// 1. Resize Observer & Synchronous Initial Measurement\nuseLayoutEffect(()=>{if(!containerRef.current)return;// Eagerly grab the actual size BEFORE revealing the component\nconst initialRect=containerRef.current.getBoundingClientRect();setDims({w:initialRect.width,h:initialRect.height,ready:true});// Keep observing for window resizes\nconst observer=new ResizeObserver(entries=>{setDims({w:entries[0].contentRect.width,h:entries[0].contentRect.height,ready:true});});observer.observe(containerRef.current);return()=>observer.disconnect();},[]);// 2. Sync inner warp\nuseEffect(()=>{if(!feDispRef.current)return;feDispRef.current.setAttribute(\"scale\",String(concavity*150));},[concavity]);// 3. Mouse tracking + RAF\nuseEffect(()=>{const onMouseMove=e=>{mouse.current={x:e.clientX/window.innerWidth,y:e.clientY/window.innerHeight};};window.addEventListener(\"mousemove\",onMouseMove);const tick=()=>{const s=Math.min(Math.max(smoothing,.01),.5);current.current.x+=(mouse.current.x-current.current.x)*s;current.current.y+=(mouse.current.y-current.current.y)*s;const offsetX=(current.current.x-.5)*sensitivity*100;const offsetY=(current.current.y-.5)*sensitivity*100;if(innerRef.current){innerRef.current.style.transform=`scale(${imageScale}) translate(${-offsetX}%, ${-offsetY}%)`;}rafRef.current=requestAnimationFrame(tick);};rafRef.current=requestAnimationFrame(tick);return()=>{cancelAnimationFrame(rafRef.current);window.removeEventListener(\"mousemove\",onMouseMove);};},[sensitivity,smoothing,imageScale]);// --- MATHEMATICALLY PERFECT BEZIER FRAME ---\nconst b=borderThickness;const bend=Math.max(0,concavity*80)// Corner push-in amount\n;const c=b+bend// Thickness at the corners\n;const{w,h}=dims;// This path draws the outer rectangle, then punches a smooth, symmetric, curved hole in the center.\nconst bezelPath=`\n        M 0 0 L ${w} 0 L ${w} ${h} L 0 ${h} Z\n        M ${c} ${c}\n        Q ${w/2} ${b} ${w-c} ${c}\n        Q ${w-b} ${h/2} ${w-c} ${h-c}\n        Q ${w/2} ${h-b} ${c} ${h-c}\n        Q ${b} ${h/2} ${c} ${c}\n        Z\n    `;// Vignette\nconst hex=vignetteColor||\"#000000\";const toHex2=v=>Math.round(Math.max(0,Math.min(1,v))*255).toString(16).padStart(2,\"0\");const vigGradient=`radial-gradient(ellipse at 50% 50%, transparent 30%, ${hex}${toHex2(vignetteIntensity*.4)} 75%, ${hex}${toHex2(vignetteIntensity)} 100%)`;// Premium Noise Animations\nconst crtNoiseKeyframes=`\n        @keyframes crtFlicker {\n            0% { opacity: 1; } 5% { opacity: 0.95; } 10% { opacity: 1; }\n            15% { opacity: 0.98; } 50% { opacity: 1; } 55% { opacity: 0.96; }\n            100% { opacity: 1; }\n        }\n    `;return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,style:{position:\"relative\",width,height,overflow:\"hidden\",background:\"transparent\",pointerEvents:\"none\",opacity:dims.ready?1:0,transition:\"opacity 0.1s ease-out\",...style},children:[/*#__PURE__*/_jsx(\"style\",{children:crtNoiseKeyframes}),/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",width:0,height:0,pointerEvents:\"none\"},\"aria-hidden\":\"true\",children:/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"filter\",{id:filterId,colorInterpolationFilters:\"sRGB\",children:[/*#__PURE__*/_jsx(\"feImage\",{href:dispMapUrl,result:\"dispMap\",preserveAspectRatio:\"xMidYMid slice\"}),/*#__PURE__*/_jsx(\"feDisplacementMap\",{ref:feDispRef,in:\"SourceGraphic\",in2:\"dispMap\",scale:concavity*150,xChannelSelector:\"R\",yChannelSelector:\"G\"})]})})}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:borderThickness/2,perspective:\"900px\",overflow:\"hidden\",filter:concavity!==0?`url(#${filterId})`:undefined},children:[/*#__PURE__*/_jsx(\"div\",{ref:innerRef,style:{position:\"absolute\",inset:\"-25%\",transformOrigin:\"50% 50%\",willChange:\"transform\",opacity:imageUrl?1:0,...imageUrl&&{backgroundImage:`url(\"${imageUrl}\")`,backgroundSize:\"cover\",backgroundPosition:\"center\"}}}),/*#__PURE__*/_jsxs(\"div\",{style:{position:\"absolute\",inset:\"-10%\",pointerEvents:\"none\",animation:flickerIntensity>0?`crtFlicker ${1/flickerIntensity}s infinite step-end`:\"none\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,opacity:noiseIntensity,backgroundImage:`url(${noiseTexture})`,backgroundSize:\"128px\",mixBlendMode:\"overlay\"}}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,opacity:scanlineIntensity,background:`repeating-linear-gradient(to bottom, transparent 0px, transparent 2px, rgba(0,0,0,0.8) 2px, rgba(0,0,0,0.8) 4px)`}})]})]}),/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",inset:0,width:\"100%\",height:\"100%\",zIndex:20,pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:bezelPath,fill:frameColor,fillRule:\"evenodd\"})}),vignetteEnabled&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:borderThickness/2,background:vigGradient,pointerEvents:\"none\",zIndex:10,filter:concavity!==0?`url(#${filterId})`:undefined}})]});}addPropertyControls(CRT,{imageUrl:{type:ControlType.Image,title:\"Pano Background\",description:\"Leave empty for clear glass over your journal.\"},borderThickness:{type:ControlType.Number,title:\"Frame Width\",min:0,max:200,step:1,defaultValue:40},frameColor:{type:ControlType.Color,title:\"Frame Color\",defaultValue:\"#050505\"},concavity:{type:ControlType.Number,title:\"Symmetric Bend\",description:\"Controls the perfect Bezier curve of the frame\",min:0,max:1.5,step:.1,defaultValue:.6},// Interaction\nsensitivity:{type:ControlType.Number,title:\"Mouse Sensitivity\",min:0,max:1,step:.01,defaultValue:.4},smoothing:{type:ControlType.Number,title:\"Movement Smoothing\",min:.01,max:.3,step:.01,defaultValue:.07},fov:{type:ControlType.Number,title:\"Field of View\",min:0,max:120,step:1,defaultValue:60},// Premium Noise\nscanlineIntensity:{type:ControlType.Number,title:\"Scanlines\",min:0,max:.3,step:.01,defaultValue:.08},noiseIntensity:{type:ControlType.Number,title:\"Static Grain\",min:0,max:.5,step:.01,defaultValue:.15},flickerIntensity:{type:ControlType.Number,title:\"Flicker\",min:0,max:.2,step:.01,defaultValue:.03},// Vignette\nvignetteEnabled:{type:ControlType.Boolean,title:\"Vignette\",defaultValue:true},vignetteIntensity:{type:ControlType.Number,title:\"Vignette Intensity\",min:0,max:1,step:.01,defaultValue:.8,hidden(props){return!props.vignetteEnabled;}},vignetteColor:{type:ControlType.Color,title:\"Vignette Color\",defaultValue:\"#000000\",hidden(props){return!props.vignetteEnabled;}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CRT\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CRT.map"],"mappings":"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"}