{"version":3,"file":"SmartMedia.DN0rOtUX.mjs","names":["useRef","useState","useCallback","useMemo","usesMeasuredHeight"],"sources":["https:/framerusercontent.com/modules/M2ykbEQOuwqqH43va65c/CtghADHRJUISHSQyGeXB/SmartMedia.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget,useIsStaticRenderer}from\"framer\";import{motion,useInView,useReducedMotion}from\"framer-motion\";import{useMemo,useState,useEffect,useLayoutEffect,useRef,useCallback}from\"react\";const VIDEO_EXTENSIONS=[\"mp4\",\"webm\"];const IMAGE_EXTENSIONS=[\"png\",\"webp\",\"jpg\",\"jpeg\",\"gif\",\"svg\",\"avif\"];const MAX_IMAGE_RETRIES=2;const IMAGE_RETRY_DELAYS=[1500,4e3];/**\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 300\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function SmartMedia(props){const{fileAsset,customUrl,alt=\"\",forceType,sizingMode,horizontalAlignment=\"left\",verticalAlignment=\"top\",objectFit,radius,playbackMode,playing=true,imageLoading=\"lazy\",autoPlay,loop,muted,showControls,poster,loadingBackground=\"rgba(0, 0, 0, 0)\",spinnerColor,spinnerTrack,spinnerSize,spinnerThickness,style}=props;const src=customUrl||fileAsset;const containerRef=useRef(null);const imageRef=useRef(null);const videoRef=useRef(null);const isInView=useInView(containerRef,{amount:.15});const shouldReduceMotion=useReducedMotion();const isStaticRenderer=useIsStaticRenderer();const[aspectRatio,setAspectRatio]=useState(16/9);const[intrinsicSize,setIntrinsicSize]=useState(null);const[frameBoundSize,setFrameBoundSize]=useState(null);const[isLoaded,setIsLoaded]=useState(false);const[hasError,setHasError]=useState(false);const[fallbackToVideo,setFallbackToVideo]=useState(false);const[imageRetryAttempt,setImageRetryAttempt]=useState(0);const[imageRetryVersion,setImageRetryVersion]=useState(0);const imageRetryTimerRef=useRef(null);const clearImageRetryTimer=useCallback(()=>{if(imageRetryTimerRef.current!==null&&typeof window!==\"undefined\"){window.clearTimeout(imageRetryTimerRef.current);imageRetryTimerRef.current=null;}},[]);useEffect(()=>{clearImageRetryTimer();setIsLoaded(false);setHasError(false);setFallbackToVideo(false);setAspectRatio(16/9);setIntrinsicSize(null);setImageRetryAttempt(0);setImageRetryVersion(0);return clearImageRetryTimer;},[src,forceType,clearImageRetryTimer]);const mediaType=useMemo(()=>{if(!src)return\"empty\";if(forceType!==\"auto\")return forceType;if(fallbackToVideo)return\"video\";const extension=getSourceExtension(src);if(extension&&VIDEO_EXTENSIONS.includes(extension))return\"video\";if(extension&&IMAGE_EXTENSIONS.includes(extension))return\"image\";return\"image\";},[src,forceType,fallbackToVideo]);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const resolvedPlaybackMode=playbackMode||(autoPlay===false?\"inView\":\"autoplay\");const posterSrc=typeof poster===\"string\"?poster:poster?.src;const resolvedSizingMode=sizingMode===\"auto\"?\"autoHeight\":sizingMode||\"fill\";const isFillSizing=resolvedSizingMode===\"fill\";const isAutoHeightSizing=resolvedSizingMode===\"autoHeight\";const isAutoWidthSizing=resolvedSizingMode===\"autoWidth\";const isFitBoundsSizing=resolvedSizingMode===\"fitBounds\";const usesMeasuredWidth=isAutoHeightSizing||isFitBoundsSizing;const usesMeasuredHeight=isAutoWidthSizing;const usesMeasuredSize=usesMeasuredWidth||usesMeasuredHeight;const usesIntrinsicRatio=!isFillSizing;const updateIntrinsicDimensions=useCallback((width,height)=>{if(!usesIntrinsicRatio||!width||!height)return;setAspectRatio(width/height);setIntrinsicSize({width,height});},[usesIntrinsicRatio]);useLayoutEffect(()=>{if(!usesMeasuredSize){setFrameBoundSize(null);return;}if(typeof window===\"undefined\"||!intrinsicSize)return;const container=containerRef.current;const frame=container?.parentElement;if(!container||!frame)return;const updateFrameBoundSize=()=>{const frameStyle=window.getComputedStyle(frame);const horizontalPadding=Number.parseFloat(frameStyle.paddingLeft)+Number.parseFloat(frameStyle.paddingRight);const verticalPadding=Number.parseFloat(frameStyle.paddingTop)+Number.parseFloat(frameStyle.paddingBottom);const frameWidth=Math.max(0,frame.clientWidth-(Number.isFinite(horizontalPadding)?horizontalPadding:0));const frameHeight=Math.max(0,frame.clientHeight-(Number.isFinite(verticalPadding)?verticalPadding:0));const maxWidth=getPixelLength(frameStyle.maxWidth);const maxHeight=getPixelLength(frameStyle.maxHeight);const fillsFrameWidth=style?.width===\"100%\";const fillsFrameHeight=style?.height===\"100%\";const naturalWidth=intrinsicSize.width;const naturalHeight=intrinsicSize.height;let width;let height;if(isAutoWidthSizing){// Height is the driving axis. When Framer height is auto/Fit,\n// start from the media's natural height instead of the static\n// component fallback, then apply the frame constraints.\nheight=fillsFrameHeight?frameHeight:naturalHeight;height=Math.min(height,maxHeight??Number.POSITIVE_INFINITY);width=height*aspectRatio;const availableWidth=Math.min(frameWidth,maxWidth??Number.POSITIVE_INFINITY);if(availableWidth&&width>availableWidth){width=availableWidth;height=width/aspectRatio;}}else if(isAutoHeightSizing){// Width is the driving axis; height follows the natural ratio.\nwidth=fillsFrameWidth?frameWidth:naturalWidth;width=Math.min(width,maxWidth??Number.POSITIVE_INFINITY);height=width/aspectRatio;if(maxHeight!==undefined&&height>maxHeight){height=maxHeight;width=height*aspectRatio;}}else{// Fit uses both axes as bounds and scales proportionally until\n// the whole media fits inside them.\nconst widthBound=Math.min(fillsFrameWidth?frameWidth:maxWidth??naturalWidth,maxWidth??Number.POSITIVE_INFINITY);const heightBound=Math.min(fillsFrameHeight?frameHeight:maxHeight??naturalHeight,maxHeight??Number.POSITIVE_INFINITY);if(!widthBound||!heightBound)return;const scale=Math.min(widthBound/naturalWidth,heightBound/naturalHeight);width=naturalWidth*scale;height=naturalHeight*scale;}if(!width||!height)return;setFrameBoundSize(current=>{if(current&&Math.abs(current.width-width)<.5&&Math.abs(current.height-height)<.5){return current;}return{width,height};});};updateFrameBoundSize();const observer=typeof ResizeObserver!==\"undefined\"?new ResizeObserver(updateFrameBoundSize):null;observer?.observe(frame);window.addEventListener(\"resize\",updateFrameBoundSize);return()=>{observer?.disconnect();window.removeEventListener(\"resize\",updateFrameBoundSize);};},[aspectRatio,intrinsicSize,isAutoHeightSizing,isAutoWidthSizing,src,style?.height,style?.width,usesMeasuredSize]);useEffect(()=>{const video=videoRef.current;if(!video||mediaType!==\"video\")return;video.muted=muted;video.defaultMuted=muted;},[muted,mediaType,src]);useEffect(()=>{const video=videoRef.current;if(!video||mediaType!==\"video\"||isStaticRenderer)return;const shouldPlay=playing&&!shouldReduceMotion&&(resolvedPlaybackMode===\"autoplay\"||isInView);if(shouldPlay){const playPromise=video.play();playPromise?.catch(()=>{// Browsers may block autoplay when sound is enabled.\n});}else{video.pause();}},[isInView,isStaticRenderer,mediaType,playing,resolvedPlaybackMode,shouldReduceMotion,src]);useEffect(()=>{if(mediaType===\"image\"){const image=imageRef.current;if(!image||!image.complete)return;if(image.naturalWidth&&image.naturalHeight){updateIntrinsicDimensions(image.naturalWidth,image.naturalHeight);setIsLoaded(true);}}if(mediaType===\"video\"){const video=videoRef.current;if(!video)return;if(video.readyState>=1){updateIntrinsicDimensions(video.videoWidth,video.videoHeight);}if(video.readyState>=3)setIsLoaded(true);}},[src,mediaType,updateIntrinsicDimensions]);useEffect(()=>{if(!usesIntrinsicRatio||mediaType!==\"image\"||intrinsicSize||typeof window===\"undefined\"){return;}let animationFrame=0;let isActive=true;const readIntrinsicSize=()=>{if(!isActive)return;const image=imageRef.current;if(image?.naturalWidth&&image.naturalHeight){updateIntrinsicDimensions(image.naturalWidth,image.naturalHeight);return;}if(!image?.complete){animationFrame=window.requestAnimationFrame(readIntrinsicSize);}};readIntrinsicSize();return()=>{isActive=false;window.cancelAnimationFrame(animationFrame);};},[intrinsicSize,mediaType,src,updateIntrinsicDimensions,usesIntrinsicRatio]);const handleImageLoad=event=>{clearImageRetryTimer();setImageRetryAttempt(0);updateIntrinsicDimensions(event.currentTarget.naturalWidth,event.currentTarget.naturalHeight);setIsLoaded(true);setHasError(false);};const handleVideoMetadata=event=>{updateIntrinsicDimensions(event.currentTarget.videoWidth,event.currentTarget.videoHeight);};const handleImageError=()=>{setIsLoaded(false);const extension=getSourceExtension(src);const isRecognizedImage=Boolean(extension&&IMAGE_EXTENSIONS.includes(extension));const canFallbackToVideo=forceType===\"auto\"&&!fallbackToVideo&&!isRecognizedImage;if(canFallbackToVideo){clearImageRetryTimer();setAspectRatio(16/9);setIntrinsicSize(null);setFallbackToVideo(true);return;}if(imageRetryAttempt<MAX_IMAGE_RETRIES&&typeof window!==\"undefined\"){const nextAttempt=imageRetryAttempt+1;const retryDelay=IMAGE_RETRY_DELAYS[nextAttempt-1]??IMAGE_RETRY_DELAYS[IMAGE_RETRY_DELAYS.length-1];clearImageRetryTimer();setImageRetryAttempt(nextAttempt);imageRetryTimerRef.current=window.setTimeout(()=>{setHasError(false);setImageRetryVersion(version=>version+1);imageRetryTimerRef.current=null;},retryDelay);return;}clearImageRetryTimer();setHasError(true);};const handleManualImageRetry=()=>{clearImageRetryTimer();setHasError(false);setIsLoaded(false);setImageRetryAttempt(0);setImageRetryVersion(version=>version+1);};const hasVideoPoster=mediaType===\"video\"&&Boolean(posterSrc);const isVideoPlaybackDisabled=mediaType===\"video\"&&!playing;const isWaitingForIntrinsicSize=usesIntrinsicRatio&&intrinsicSize===null;const horizontalMargin=horizontalAlignment===\"center\"?\"auto\":horizontalAlignment===\"right\"?\"auto 0\":\"0 auto\";const verticalMargin=verticalAlignment===\"center\"?\"auto\":verticalAlignment===\"bottom\"?\"auto 0\":\"0 auto\";const containerStyle={...style,position:\"relative\",width:isWaitingForIntrinsicSize?\"100%\":usesMeasuredSize&&frameBoundSize?frameBoundSize.width:isFillSizing||isAutoHeightSizing||isFitBoundsSizing?\"100%\":\"auto\",height:isWaitingForIntrinsicSize?\"100%\":usesMeasuredSize&&frameBoundSize?frameBoundSize.height:isFillSizing||isAutoWidthSizing?\"100%\":\"auto\",maxWidth:usesMeasuredSize?undefined:style?.maxWidth,marginInline:usesIntrinsicRatio?horizontalMargin:style?.marginInline,marginBlock:usesIntrinsicRatio?verticalMargin:style?.marginBlock,aspectRatio:usesIntrinsicRatio&&intrinsicSize?aspectRatio:undefined,backgroundColor:loadingBackground,borderRadius:radius};const mediaStyle={width:\"100%\",height:\"100%\",objectFit,borderRadius:radius,display:\"block\"};const videoMediaStyle={...mediaStyle,opacity:isLoaded||hasVideoPoster?1:0,transition:\"opacity 0.3s ease\"};if(mediaType===\"empty\"||!src){if(isCanvas){return /*#__PURE__*/_jsxs(\"div\",{style:{...style,...placeholderStyle(radius)},children:[/*#__PURE__*/_jsx(\"span\",{children:\"Upload File\"}),/*#__PURE__*/_jsx(\"span\",{style:{fontSize:12,opacity:.7},children:\"or paste URL\"})]});}return /*#__PURE__*/_jsx(\"div\",{style:style});}return /*#__PURE__*/_jsxs(motion.div,{ref:containerRef,style:containerStyle,children:[!isLoaded&&!hasError&&!hasVideoPoster&&!isVideoPlaybackDisabled&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",zIndex:1},children:/*#__PURE__*/_jsx(motion.div,{style:{width:spinnerSize,height:spinnerSize,borderRadius:\"50%\",border:`${spinnerThickness}px solid ${spinnerTrack}`,borderTop:`${spinnerThickness}px solid ${spinnerColor}`},animate:{rotate:360},transition:{duration:1,repeat:Infinity,ease:\"linear\"}})}),hasError&&mediaType===\"image\"&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",zIndex:2},children:/*#__PURE__*/_jsx(\"button\",{type:\"button\",onClick:handleManualImageRetry,\"aria-label\":\"Retry loading image\",style:{appearance:\"none\",background:\"transparent\",color:spinnerColor,border:`1px solid ${spinnerTrack}`,borderRadius:999,padding:\"8px 14px\",font:\"inherit\",cursor:\"pointer\"},children:\"Retry\"})}),mediaType===\"video\"?/*#__PURE__*/_jsx(\"video\",{ref:videoRef,src:src,poster:posterSrc||undefined,style:videoMediaStyle,autoPlay:playing&&!isStaticRenderer&&!shouldReduceMotion&&resolvedPlaybackMode===\"autoplay\",preload:!playing?usesIntrinsicRatio?\"metadata\":\"none\":resolvedPlaybackMode===\"inView\"?usesIntrinsicRatio?\"metadata\":\"none\":\"auto\",loop:loop,muted:muted,controls:playing&&showControls,playsInline:true,onPlay:event=>{if(!playing)event.currentTarget.pause();},onLoadedMetadata:handleVideoMetadata,onCanPlay:()=>setIsLoaded(true),onError:()=>setHasError(true)}):/*#__PURE__*/_jsx(\"img\",{ref:imageRef,src:src,alt:alt,loading:imageLoading,style:mediaStyle,onLoad:handleImageLoad,onError:handleImageError},`${src}-${imageRetryVersion}`)]});}function getSourceExtension(source){if(!source)return undefined;try{const pathname=new URL(source,\"https://smart-media.local\").pathname;const fileName=pathname.split(\"/\").pop()??\"\";const extension=fileName.includes(\".\")?fileName.split(\".\").pop()?.toLowerCase():undefined;return extension||undefined;}catch{const cleanSource=source.split(/[?#]/)[0];const fileName=cleanSource.split(\"/\").pop()??\"\";return fileName.includes(\".\")?fileName.split(\".\").pop()?.toLowerCase():undefined;}}function getPixelLength(value){if(typeof value===\"number\"){return Number.isFinite(value)&&value>=0?value:undefined;}if(typeof value!==\"string\")return undefined;const normalized=value.trim();if(!/^(?:\\d+|\\d*\\.\\d+)(?:px)?$/.test(normalized)){return undefined;}const pixels=Number.parseFloat(normalized);return Number.isFinite(pixels)?pixels:undefined;}function placeholderStyle(radius){return{display:\"flex\",flexDirection:\"column\",alignItems:\"center\",justifyContent:\"center\",backgroundColor:\"rgba(136, 85, 255, 0.1)\",border:\"1px dashed #85F\",color:\"#85F\",borderRadius:radius,fontSize:14,fontWeight:600,padding:20,textAlign:\"center\",gap:8};}function shouldShowVideoControls(props){return props.forceType!==\"image\";}addPropertyControls(SmartMedia,{fileAsset:{type:ControlType.File,title:\"File\",allowedFileTypes:[\"mp4\",\"webm\",\"png\",\"webp\",\"jpeg\",\"jpg\",\"gif\",\"svg\"]},customUrl:{type:ControlType.String,title:\"URL\",defaultValue:\"\",placeholder:\"https://example.com/file\",description:\"Overrides uploaded file.\"},alt:{type:ControlType.String,title:\"Alt Text\",defaultValue:\"\",placeholder:\"Describe the image\"},forceType:{type:ControlType.Enum,title:\"Type\",options:[\"auto\",\"video\",\"image\"],optionTitles:[\"Auto Detect\",\"Force Video\",\"Force Image\"],defaultValue:\"auto\"},sizingMode:{type:ControlType.Enum,title:\"Sizing\",options:[\"fill\",\"autoHeight\",\"autoWidth\",\"fitBounds\"],optionTitles:[\"Fill Container\",\"Auto Height\",\"Auto Width\",\"Fit\"],defaultValue:\"fill\"},horizontalAlignment:{type:ControlType.Enum,title:\"Horizontal\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",description:\"Positions media when horizontal space remains.\"},verticalAlignment:{type:ControlType.Enum,title:\"Vertical\",options:[\"top\",\"center\",\"bottom\"],optionTitles:[\"Top\",\"Center\",\"Bottom\"],defaultValue:\"top\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",description:\"Positions media when vertical space remains.\"},objectFit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\",\"fill\"],optionTitles:[\"Cover\",\"Contain\",\"Fill\"],defaultValue:\"cover\",hidden:props=>props.sizingMode===\"auto\"||props.sizingMode===\"autoHeight\"||props.sizingMode===\"autoWidth\"||props.sizingMode===\"fitBounds\"},imageLoading:{type:ControlType.Enum,title:\"Loading\",options:[\"lazy\",\"eager\"],optionTitles:[\"Lazy\",\"Eager\"],defaultValue:\"lazy\",displaySegmentedControl:true,hidden:props=>props.forceType===\"video\",description:\"Lazy defers off-screen images. Use Eager for above-the-fold media.\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:500,unit:\"px\"},poster:{type:ControlType.ResponsiveImage,title:\"Poster\",hidden:props=>!shouldShowVideoControls(props),description:\"Shown before the video starts and while it is idle.\"},playing:{type:ControlType.Boolean,title:\"Playing\",defaultValue:true,hidden:props=>!shouldShowVideoControls(props),description:\"No keeps the video paused and shows its poster.\"},playbackMode:{type:ControlType.Enum,title:\"Playback\",options:[\"autoplay\",\"inView\"],optionTitles:[\"Autoplay\",\"When In View\"],defaultValue:\"autoplay\",displaySegmentedControl:true,hidden:props=>!shouldShowVideoControls(props)||props.playing===false,description:\"In View plays on entry and pauses on exit.\"},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true,hidden:props=>!shouldShowVideoControls(props)||props.playing===false},muted:{type:ControlType.Boolean,title:\"Muted\",defaultValue:true,hidden:props=>!shouldShowVideoControls(props)||props.playing===false},showControls:{type:ControlType.Boolean,title:\"Controls\",defaultValue:false,hidden:props=>!shouldShowVideoControls(props)||props.playing===false},loadingBackground:{type:ControlType.Color,title:\"Load Background\",defaultValue:\"rgba(0, 0, 0, 0)\",description:\"Shown behind media while it loads and if loading fails.\"},spinnerColor:{type:ControlType.Color,title:\"Spin Color\",defaultValue:\"#8855FF\"},spinnerTrack:{type:ControlType.Color,title:\"Spin Track\",defaultValue:\"rgba(136, 85, 255, 0.2)\"},spinnerSize:{type:ControlType.Number,title:\"Spin Size\",defaultValue:32,min:10,max:200,step:1},spinnerThickness:{type:ControlType.Number,title:\"Thickness\",defaultValue:3,min:1,max:20,step:1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SmartMedia\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"300\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SmartMedia.map"],"mappings":"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"}