{"version":3,"file":"FrameScroll.CVCdIRsh.mjs","names":["React.useState","React.useMemo","React.useRef","React.useCallback","rootHeight"],"sources":["https:/framerusercontent.com/modules/TQxnFGqEQL91XZYpDfY4/JtlT7fArO1t9pEs6imGc/FrameScroll.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";const clamp=(value,min,max)=>Math.min(max,Math.max(min,value));const parseManifestFrameUrls=value=>{const normalize=item=>{if(typeof item===\"string\")return item.trim();if(item&&typeof item===\"object\"){const withUrl=item;if(typeof withUrl.url===\"string\")return withUrl.url.trim();if(typeof withUrl.src===\"string\")return withUrl.src.trim();}return\"\";};const pickArrayFromObject=input=>{const candidateKeys=[\"frames\",\"urls\",\"frameUrls\",\"images\"];for(const key of candidateKeys){const candidate=input[key];if(Array.isArray(candidate))return candidate;}const data=input.data;if(data&&typeof data===\"object\"){for(const key of candidateKeys){const candidate=data[key];if(Array.isArray(candidate))return candidate;}}return[];};if(Array.isArray(value)){return value.map(normalize).filter(Boolean);}if(value&&typeof value===\"object\"){return pickArrayFromObject(value).map(normalize).filter(Boolean);}return[];};const manifestRequestCache=new Map;const imageCache=new Map;const requestedImages=new WeakSet;const getCachedManifestFrames=manifestUrl=>{const key=manifestUrl.trim();if(!key)return Promise.resolve([]);const cached=manifestRequestCache.get(key);if(cached)return cached;const request=fetch(key).then(async response=>{if(!response.ok){const statusText=response.statusText?.trim();const label=statusText?`${response.status} ${statusText}`:String(response.status);throw new Error(`HTTP ${label}`);}try{return await response.json();}catch{throw new Error(\"Response was not valid JSON.\");}}).then(body=>parseManifestFrameUrls(body));request.catch(()=>{manifestRequestCache.delete(key);});manifestRequestCache.set(key,request);return request;};const getCachedImage=url=>{const key=url.trim();const cached=imageCache.get(key);if(cached)return cached;const image=new Image;image.decoding=\"async\";imageCache.set(key,image);return image;};const requestCachedImage=(image,url)=>{if(requestedImages.has(image))return;requestedImages.add(image);image.src=url.trim();};const buildProgressiveLoadOrder=count=>{if(count<=0)return[];const order=[];const seen=new Set;const add=index=>{if(index<0||index>=count||seen.has(index))return;seen.add(index);order.push(index);};// Prioritize edges so the sequence works immediately at common entry/exit points.\nadd(0);add(count-1);const targetStride=Math.max(1,Math.floor(count/12));const startStride=2**Math.floor(Math.log2(targetStride));for(let stride=startStride;stride>=1;stride=Math.floor(stride/2)){for(let index=0;index<count;index+=stride){add(index);}add(count-1);}return order;};const drawImageFitted=(ctx,image,width,height,fit)=>{const imageWidth=image.naturalWidth||image.width;const imageHeight=image.naturalHeight||image.height;if(!imageWidth||!imageHeight)return;const scale=fit===\"contain\"?Math.min(width/imageWidth,height/imageHeight):Math.max(width/imageWidth,height/imageHeight);const drawWidth=imageWidth*scale;const drawHeight=imageHeight*scale;const x=(width-drawWidth)*.5;const y=(height-drawHeight)*.5;ctx.drawImage(image,x,y,drawWidth,drawHeight);};export default function FrameSequenceScroller(props){const{sourceMode=\"manual\",frames=[],urlTemplate=\"\",startIndex=1,endIndex=180,padLength=4,urlList=\"\",manifestUrl=\"\",posterImage=\"\",scrollLengthVh=320,stickyHeightVh=100,stickyTop=0,fit=\"cover\",background=\"#000000\",direction=\"forward\",scrubSmoothing=.2,blendFrames=false,preloader,scrollLock=false,showLoading,progressiveLoading=true,fullBleedInFramer=true,style}=props;const renderTarget=RenderTarget.current();const renderTargetLookup=RenderTarget;const isFramerPreviewSurface=renderTarget===RenderTarget.canvas||renderTarget===RenderTarget.preview;const isFramerExportSurface=renderTarget===renderTargetLookup.export||renderTarget===renderTargetLookup.thumbnail||String(renderTarget).toLowerCase()===\"export\"||String(renderTarget).toLowerCase()===\"thumbnail\";const shouldUseFullBleed=fullBleedInFramer&&isFramerPreviewSurface;const[manifestFrames,setManifestFrames]=React.useState([]);const[manifestLoadError,setManifestLoadError]=React.useState(null);const[isManifestLoading,setIsManifestLoading]=React.useState(false);const[hasFetchedManifest,setHasFetchedManifest]=React.useState(false);React.useEffect(()=>{if(sourceMode!==\"manifest\"){setManifestFrames([]);setManifestLoadError(null);setIsManifestLoading(false);setHasFetchedManifest(false);return;}const manifest=manifestUrl.trim();setManifestLoadError(null);if(!manifest){setManifestFrames([]);setIsManifestLoading(false);setHasFetchedManifest(false);return;}setIsManifestLoading(true);let cancelled=false;getCachedManifestFrames(manifest).then(urls=>{if(cancelled)return;setManifestFrames(urls);setIsManifestLoading(false);setHasFetchedManifest(true);if(urls.length===0){setManifestLoadError(\"Manifest has no frame URLs.\");}}).catch(error=>{if(cancelled)return;setIsManifestLoading(false);setHasFetchedManifest(true);const reason=error instanceof Error&&error.message.trim()?error.message.trim():\"Unknown error\";setManifestLoadError(`Failed to load manifest URL (${reason}).`);});return()=>{cancelled=true;};},[manifestUrl,sourceMode]);const frameUrls=React.useMemo(()=>{if(sourceMode===\"template\"){const template=urlTemplate.trim();const start=Math.max(0,Math.floor(startIndex));const end=Math.max(start,Math.floor(endIndex));const padding=Math.max(0,Math.floor(padLength));if(!template)return[];const urls=[];for(let frame=start;frame<=end;frame++){const raw=String(frame);const index=raw.padStart(padding,\"0\");const resolved=template.replaceAll(\"{index}\",index).replaceAll(\"{raw}\",raw).trim();if(resolved)urls.push(resolved);}return urls;}if(sourceMode===\"list\"){return urlList.split(/[\\n,]/).map(url=>url.trim()).filter(Boolean);}if(sourceMode===\"manifest\"){return manifestFrames;}return frames.map(frame=>frame?.src?.trim()).filter(url=>Boolean(url));},[endIndex,frames,manifestFrames,padLength,sourceMode,startIndex,urlList,urlTemplate]);const totalFrames=frameUrls.length;const posterImageUrl=posterImage.trim();const manifestUrlValue=manifestUrl.trim();const isManifestPending=sourceMode===\"manifest\"&&Boolean(manifestUrlValue)&&(isManifestLoading||!hasFetchedManifest);const rootRef=React.useRef(null);const stickyRef=React.useRef(null);const canvasRef=React.useRef(null);const posterImageRef=React.useRef(null);const imagesRef=React.useRef([]);const frameLoadedRef=React.useRef([]);const targetProgressRef=React.useRef(0);const smoothProgressRef=React.useRef(0);const animationFrameRef=React.useRef(null);const lastRenderedFrameRef=React.useRef(-1);const hasDrawnSequenceFrameRef=React.useRef(false);const[resolvedFrames,setResolvedFrames]=React.useState(0);const shouldShowPreloader=preloader??showLoading??true;const getLoadedPosterImage=React.useCallback(()=>{const poster=posterImageRef.current;if(!poster?.complete)return null;const isLoaded=(poster.naturalWidth||poster.width)>0&&(poster.naturalHeight||poster.height)>0;return isLoaded?poster:null;},[]);const getNearestLoadedImage=React.useCallback(index=>{const images=imagesRef.current;if(!images.length)return null;if(images[index]?.complete&&frameLoadedRef.current[index]){return images[index];}for(let offset=1;offset<images.length;offset++){const previous=index-offset;const next=index+offset;if(previous>=0){const candidate=images[previous];if(candidate?.complete&&frameLoadedRef.current[previous]){return candidate;}}if(next<images.length){const candidate=images[next];if(candidate?.complete&&frameLoadedRef.current[next]){return candidate;}}}return null;},[]);const ensureCanvasSize=React.useCallback(()=>{const canvas=canvasRef.current;const stickyElement=stickyRef.current;if(!canvas||!stickyElement)return null;const rect=stickyElement.getBoundingClientRect();const cssWidth=Math.max(1,Math.round(rect.width));const cssHeight=Math.max(1,Math.round(rect.height));const dpr=Math.min(2,window.devicePixelRatio||1);const pixelWidth=Math.max(1,Math.round(cssWidth*dpr));const pixelHeight=Math.max(1,Math.round(cssHeight*dpr));if(canvas.width!==pixelWidth||canvas.height!==pixelHeight){canvas.width=pixelWidth;canvas.height=pixelHeight;canvas.style.width=`${cssWidth}px`;canvas.style.height=`${cssHeight}px`;}const context=canvas.getContext(\"2d\");if(!context)return null;context.setTransform(dpr,0,0,dpr,0,0);return{context,cssWidth,cssHeight};},[]);const drawAtProgress=React.useCallback((progress,force=false)=>{if(!totalFrames)return;const canvasMetrics=ensureCanvasSize();if(!canvasMetrics)return;const{context,cssWidth,cssHeight}=canvasMetrics;const bounded=clamp(progress,0,1);const directedProgress=direction===\"reverse\"?1-bounded:bounded;const position=directedProgress*(totalFrames-1);const drawPoster=()=>{// Avoid poster/frame oscillation once sequence rendering has started.\nif(hasDrawnSequenceFrameRef.current)return false;const poster=getLoadedPosterImage();if(!poster)return false;context.clearRect(0,0,cssWidth,cssHeight);if(background!==\"transparent\"){context.fillStyle=background;context.fillRect(0,0,cssWidth,cssHeight);}drawImageFitted(context,poster,cssWidth,cssHeight,fit);lastRenderedFrameRef.current=-1;return true;};if(blendFrames&&totalFrames>1){const frameA=Math.floor(position);const frameB=Math.min(totalFrames-1,frameA+1);const mix=position-frameA;const imageA=getNearestLoadedImage(frameA);const imageB=getNearestLoadedImage(frameB);if(!imageA&&!imageB){drawPoster();return;}context.clearRect(0,0,cssWidth,cssHeight);if(background!==\"transparent\"){context.fillStyle=background;context.fillRect(0,0,cssWidth,cssHeight);}context.globalAlpha=imageA?1:0;if(imageA){drawImageFitted(context,imageA,cssWidth,cssHeight,fit);}if(imageB&&mix>0){context.globalAlpha=clamp(mix,0,1);drawImageFitted(context,imageB,cssWidth,cssHeight,fit);}context.globalAlpha=1;hasDrawnSequenceFrameRef.current=true;return;}const frameIndex=Math.round(position);if(!force&&frameIndex===lastRenderedFrameRef.current)return;const image=getNearestLoadedImage(frameIndex);if(!image){drawPoster();return;}context.clearRect(0,0,cssWidth,cssHeight);if(background!==\"transparent\"){context.fillStyle=background;context.fillRect(0,0,cssWidth,cssHeight);}drawImageFitted(context,image,cssWidth,cssHeight,fit);lastRenderedFrameRef.current=frameIndex;hasDrawnSequenceFrameRef.current=true;},[background,blendFrames,direction,ensureCanvasSize,fit,getLoadedPosterImage,getNearestLoadedImage,totalFrames]);React.useEffect(()=>{if(typeof window===\"undefined\")return;posterImageRef.current=null;if(!posterImageUrl){drawAtProgress(smoothProgressRef.current,true);return;}const image=getCachedImage(posterImageUrl);posterImageRef.current=image;requestCachedImage(image,posterImageUrl);const redraw=()=>{if(posterImageRef.current!==image)return;drawAtProgress(smoothProgressRef.current,true);};if(image.complete){redraw();return;}image.addEventListener(\"load\",redraw);image.addEventListener(\"error\",redraw);return()=>{image.removeEventListener(\"load\",redraw);image.removeEventListener(\"error\",redraw);};},[drawAtProgress,posterImageUrl]);const stopAnimation=React.useCallback(()=>{if(animationFrameRef.current!==null){cancelAnimationFrame(animationFrameRef.current);animationFrameRef.current=null;}},[]);const animateToTarget=React.useCallback(()=>{if(animationFrameRef.current!==null)return;const step=()=>{const target=targetProgressRef.current;const current=smoothProgressRef.current;const lag=clamp(scrubSmoothing,0,.95);const lerpAmount=1-lag;if(lerpAmount>=1){smoothProgressRef.current=target;drawAtProgress(target);animationFrameRef.current=null;return;}const next=current+(target-current)*lerpAmount;if(Math.abs(target-next)<5e-4){smoothProgressRef.current=target;drawAtProgress(target);animationFrameRef.current=null;return;}smoothProgressRef.current=next;drawAtProgress(next);animationFrameRef.current=requestAnimationFrame(step);};animationFrameRef.current=requestAnimationFrame(step);},[drawAtProgress,scrubSmoothing]);const updateTargetProgress=React.useCallback(()=>{const rootElement=rootRef.current;const stickyElement=stickyRef.current;if(!rootElement||!stickyElement)return;const rootRect=rootElement.getBoundingClientRect();const rootHeight=rootElement.offsetHeight;const stickyHeight=stickyElement.offsetHeight;const scrollableDistance=Math.max(1,rootHeight-stickyHeight-stickyTop);const traveled=stickyTop-rootRect.top;targetProgressRef.current=clamp(traveled/scrollableDistance,0,1);},[stickyTop]);React.useEffect(()=>{if(typeof window===\"undefined\")return;let cancelled=false;const frameSettled=new Array(totalFrames).fill(false);const listeners=[];imagesRef.current=new Array(totalFrames).fill(null);frameLoadedRef.current=new Array(totalFrames).fill(false);lastRenderedFrameRef.current=-1;hasDrawnSequenceFrameRef.current=false;setResolvedFrames(0);if(!totalFrames){drawAtProgress(0,true);return;}const settleFrame=(index,loaded)=>{if(cancelled||frameSettled[index])return;frameSettled[index]=true;frameLoadedRef.current[index]=loaded;setResolvedFrames(count=>count+1);if(loaded){drawAtProgress(smoothProgressRef.current,true);}};const exportFrameIndex=direction===\"reverse\"?Math.max(0,totalFrames-1):0;const loadOrder=isFramerExportSurface?[exportFrameIndex]:progressiveLoading?buildProgressiveLoadOrder(totalFrames):Array.from({length:totalFrames},(_,index)=>index);let loadCursor=0;let activeLoads=0;const maxConcurrentLoads=isFramerExportSurface?1:progressiveLoading?8:Math.max(1,totalFrames);const pumpQueue=()=>{if(cancelled)return;while(activeLoads<maxConcurrentLoads&&loadCursor<loadOrder.length){const index=loadOrder[loadCursor];loadCursor+=1;const url=frameUrls[index];const image=getCachedImage(url);imagesRef.current[index]=image;requestCachedImage(image,url);const isLoaded=(image.naturalWidth||image.width)>0&&(image.naturalHeight||image.height)>0;if(image.complete){settleFrame(index,isLoaded);continue;}activeLoads+=1;const onLoad=()=>{activeLoads=Math.max(0,activeLoads-1);settleFrame(index,true);pumpQueue();};const onError=()=>{activeLoads=Math.max(0,activeLoads-1);settleFrame(index,false);pumpQueue();};image.addEventListener(\"load\",onLoad);image.addEventListener(\"error\",onError);listeners.push(()=>{image.removeEventListener(\"load\",onLoad);image.removeEventListener(\"error\",onError);});}};pumpQueue();return()=>{cancelled=true;listeners.forEach(remove=>remove());};},[direction,drawAtProgress,frameUrls,isFramerExportSurface,progressiveLoading,totalFrames]);React.useEffect(()=>{if(typeof window===\"undefined\")return;const resizeObserver=new ResizeObserver(()=>{drawAtProgress(smoothProgressRef.current,true);});if(stickyRef.current){resizeObserver.observe(stickyRef.current);}return()=>{resizeObserver.disconnect();};},[drawAtProgress]);React.useEffect(()=>{if(typeof window===\"undefined\")return;let ticking=false;const syncWithScroll=()=>{updateTargetProgress();animateToTarget();ticking=false;};const handleScroll=()=>{if(ticking)return;ticking=true;requestAnimationFrame(syncWithScroll);};const handleResize=()=>{updateTargetProgress();smoothProgressRef.current=targetProgressRef.current;drawAtProgress(smoothProgressRef.current,true);};handleResize();window.addEventListener(\"scroll\",handleScroll,{passive:true});window.addEventListener(\"resize\",handleResize);return()=>{window.removeEventListener(\"scroll\",handleScroll);window.removeEventListener(\"resize\",handleResize);stopAnimation();};},[animateToTarget,drawAtProgress,stopAnimation,updateTargetProgress]);React.useEffect(()=>{if(typeof document===\"undefined\")return;const shouldLockScroll=scrollLock&&(isManifestPending||totalFrames>0&&resolvedFrames<totalFrames);if(!shouldLockScroll)return;const html=document.documentElement;const body=document.body;const prevHtmlOverflow=html.style.overflow;const prevBodyOverflow=body.style.overflow;const prevHtmlOverscroll=html.style.overscrollBehavior;const prevBodyOverscroll=body.style.overscrollBehavior;html.style.overflow=\"hidden\";body.style.overflow=\"hidden\";html.style.overscrollBehavior=\"none\";body.style.overscrollBehavior=\"none\";return()=>{html.style.overflow=prevHtmlOverflow;body.style.overflow=prevBodyOverflow;html.style.overscrollBehavior=prevHtmlOverscroll;body.style.overscrollBehavior=prevBodyOverscroll;};},[isManifestPending,resolvedFrames,scrollLock,totalFrames]);const loadingPercent=totalFrames>0?Math.round(resolvedFrames/Math.max(1,totalFrames)*100):0;const isFrameSequenceLoading=totalFrames>0&&resolvedFrames<totalFrames;const shouldShowLoadingOverlay=shouldShowPreloader&&(isManifestPending||isFrameSequenceLoading);const shouldShowPosterOverlay=Boolean(posterImageUrl)&&(isManifestPending||isFrameSequenceLoading);const loadingBarWidth=isManifestPending?\"35%\":`${loadingPercent}%`;const rootHeight=`${Math.max(100,scrollLengthVh)}vh`;const emptyStateMessage=sourceMode===\"manifest\"?manifestUrlValue?isManifestPending?\"\":manifestLoadError||\"Manifest returned no frame URLs.\":\"Add a manifest URL to load frame images.\":\"Add frame images in the Frames control to start scrubbing.\";const showEmptyStateMessage=Boolean(emptyStateMessage);if(totalFrames===0&&!isManifestPending){return /*#__PURE__*/_jsx(\"div\",{style:{...style,width:\"100%\",height:rootHeight,display:showEmptyStateMessage?\"grid\":\"block\",placeItems:showEmptyStateMessage?\"center\":undefined,border:showEmptyStateMessage?\"1px dashed rgba(255,255,255,0.35)\":undefined,background,color:\"rgba(255,255,255,0.8)\",fontFamily:\"ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial\",fontSize:13,textAlign:\"center\",padding:showEmptyStateMessage?16:0},children:showEmptyStateMessage?emptyStateMessage:null});}return /*#__PURE__*/_jsx(\"div\",{ref:rootRef,style:{...style,position:\"relative\",width:shouldUseFullBleed?\"100vw\":\"100%\",maxWidth:shouldUseFullBleed?\"100vw\":undefined,left:undefined,marginLeft:shouldUseFullBleed?\"calc(50% - 50vw)\":undefined,height:rootHeight,background,overflow:\"clip\"},children:/*#__PURE__*/_jsxs(\"div\",{ref:stickyRef,style:{position:\"sticky\",top:stickyTop,height:`${stickyHeightVh}vh`,width:\"100%\",overflow:\"hidden\"},children:[/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}}),shouldShowPosterOverlay&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"img\",{src:posterImageUrl,alt:\"\",draggable:false,style:{width:\"100%\",height:\"100%\",objectFit:fit,display:\"block\"}})}),shouldShowLoadingOverlay&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,display:\"grid\",placeItems:\"center\",background:\"linear-gradient(to bottom, rgba(0,0,0,0.28), rgba(0,0,0,0.42))\",pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"min(300px, calc(100vw - 48px))\",height:6,borderRadius:999,background:\"rgba(255,255,255,0.3)\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"div\",{style:{width:loadingBarWidth,height:\"100%\",borderRadius:999,background:\"#ffffff\",transition:\"width 140ms linear\"}})})})]})});}addPropertyControls(FrameSequenceScroller,{sourceMode:{type:ControlType.Enum,title:\"Source\",options:[\"manual\",\"template\",\"list\",\"manifest\"],optionTitles:[\"Manual\",\"Template\",\"URL List\",\"Manifest URL\"],defaultValue:\"manual\"},frames:{type:ControlType.Array,title:\"Frames\",control:{type:ControlType.Object,controls:{src:{type:ControlType.File,title:\"Image\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"webp\",\"avif\"]}}},hidden(props){return props.sourceMode!==\"manual\";}},urlTemplate:{type:ControlType.String,title:\"Template\",placeholder:\"https://cdn.site/frames/frame_{index}.jpg\",defaultValue:\"\",hidden(props){return props.sourceMode!==\"template\";}},startIndex:{type:ControlType.Number,title:\"Start\",min:0,step:1,defaultValue:1,hidden(props){return props.sourceMode!==\"template\";}},endIndex:{type:ControlType.Number,title:\"End\",min:0,step:1,defaultValue:180,hidden(props){return props.sourceMode!==\"template\";}},padLength:{type:ControlType.Number,title:\"Pad\",min:0,max:8,step:1,defaultValue:4,hidden(props){return props.sourceMode!==\"template\";}},urlList:{type:ControlType.String,title:\"URLs\",defaultValue:\"\",displayTextArea:true,placeholder:\"https://cdn.site/frame_0001.jpg\\nhttps://cdn.site/frame_0002.jpg\",hidden(props){return props.sourceMode!==\"list\";}},manifestUrl:{type:ControlType.String,title:\"Manifest\",defaultValue:\"\",placeholder:\"https://<blob-domain>/sequences/walk/manifest.json\",hidden(props){return props.sourceMode!==\"manifest\";}},posterImage:{type:ControlType.File,title:\"Poster\",allowedFileTypes:[\"jpg\",\"jpeg\",\"png\",\"webp\",\"avif\"]},scrollLengthVh:{type:ControlType.Number,title:\"Scroll VH\",min:100,max:1500,step:10,defaultValue:320},stickyHeightVh:{type:ControlType.Number,title:\"Sticky VH\",min:20,max:100,step:1,defaultValue:100},stickyTop:{type:ControlType.Number,title:\"Sticky Top\",min:0,max:300,step:1,defaultValue:0},fit:{type:ControlType.Enum,title:\"Fit\",options:[\"cover\",\"contain\"],optionTitles:[\"Cover\",\"Contain\"],defaultValue:\"cover\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"forward\",\"reverse\"],optionTitles:[\"Forward\",\"Reverse\"],defaultValue:\"forward\"},scrubSmoothing:{type:ControlType.Number,title:\"Smoothing\",min:0,max:.95,step:.01,defaultValue:.2},blendFrames:{type:ControlType.Boolean,title:\"Blend Frames\",defaultValue:false},preloader:{type:ControlType.Boolean,title:\"Preloader\",defaultValue:true},scrollLock:{type:ControlType.Boolean,title:\"Scroll Lock\",defaultValue:false},progressiveLoading:{type:ControlType.Boolean,title:\"Progressive\",defaultValue:true},fullBleedInFramer:{type:ControlType.Boolean,title:\"Framer Full\",defaultValue:true},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FrameSequenceScroller\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FrameScroll.map"],"mappings":"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"}