{"version":3,"file":"LoadingScreen.C4LdgFWS.mjs","names":["useState","useRef","__esmMin","init_npm_react_18_3_1","init_ssg_sandbox_shims","te","window","_e","p","c","init_jsx_runtime","ce","de","motion","AnimatePresence","init_framer_motion_DhsWWWsN","addPropertyControls","init_framer_BWFVvmND","useIsStaticRenderer","ControlType","LoadingScreen","defaultBgImage","props","count","setCount","loading","setLoading","swipe","setSwipe","isStatic","timerRef","scrollBlockedRef","preventScroll","scrollBlock","swipeDuration","countSpeed","pos","positionMap","countPosition","swipeVariants","countStyles","countFont","countColor","countStyle","style","useImage","backgroundImage","backgroundColor","countPrefix","showPercent","countSuffix","init_LoadingScreen"],"sources":["https:/framerusercontent.com/modules/evNfnCDTo6cAsEUtr5sq/9vYlSXAyOMmEqmifeZCE/LoadingScreen.js"],"sourcesContent":["// Customizable Loading Animation Screen\n// Features: Animated count 1-100, swipe-up reveal, full customizability (background, count, animation, text, position)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState,startTransition}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,AnimatePresence}from\"framer-motion\";const defaultBgImage={src:\"https://framerusercontent.com/images/GfGkADagM4KEibNcIiRUWlfrR0.jpg\",alt:\"Gradient 1 - Blue\"};const positionMap={\"bottom-right\":{justifyContent:\"flex-end\",alignItems:\"flex-end\"},\"bottom-left\":{justifyContent:\"flex-end\",alignItems:\"flex-start\"},\"top-right\":{justifyContent:\"flex-start\",alignItems:\"flex-end\"},\"top-left\":{justifyContent:\"flex-start\",alignItems:\"flex-start\"},center:{justifyContent:\"center\",alignItems:\"center\"}};/**\n * Customizable Loading Animation Screen\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 400\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function LoadingScreen(props){const{backgroundColor,backgroundImage=defaultBgImage,useImage,countFont,countColor,countSpeed,countStyle,countPrefix,countSuffix,countPosition,showPercent,swipeDuration,style,scrollBlock=true}=props;const[count,setCount]=useState(1);const[loading,setLoading]=useState(true);const[swipe,setSwipe]=useState(false);const isStatic=useIsStaticRenderer();const timerRef=useRef(null);const scrollBlockedRef=useRef(false);// Block scroll when loading\nuseEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;function preventScroll(e){e.preventDefault();}if(loading&&scrollBlock&&!scrollBlockedRef.current){document.body.style.overflow=\"hidden\";window.addEventListener(\"wheel\",preventScroll,false);window.addEventListener(\"touchmove\",preventScroll,false);scrollBlockedRef.current=true;}else if((!loading||scrollBlock===false)&&scrollBlockedRef.current){document.body.style.overflow=\"\";window.removeEventListener(\"wheel\",preventScroll,false);window.removeEventListener(\"touchmove\",preventScroll,false);scrollBlockedRef.current=false;}return()=>{if(scrollBlockedRef.current){document.body.style.overflow=\"\";window.removeEventListener(\"wheel\",preventScroll,false);window.removeEventListener(\"touchmove\",preventScroll,false);scrollBlockedRef.current=false;}};},[loading,scrollBlock]);// Counting logic\nuseEffect(()=>{if(!loading||isStatic)return;if(count>=30){timerRef.current=setTimeout(()=>{startTransition(()=>setSwipe(true));timerRef.current=setTimeout(()=>{startTransition(()=>setLoading(false));},swipeDuration);},400);return;}timerRef.current=setTimeout(()=>{startTransition(()=>setCount(c=>c+1));},countSpeed);return()=>{if(timerRef.current)clearTimeout(timerRef.current);};},[count,loading,isStatic,countSpeed,swipeDuration]);// Clean up\nuseEffect(()=>{return()=>{if(timerRef.current)clearTimeout(timerRef.current);};},[]);// Positioning\nconst pos=positionMap[countPosition]||positionMap[\"bottom-right\"];// Animation variants\nconst swipeVariants={initial:{y:0},animate:{y:\"-100%\",transition:{duration:swipeDuration/1e3,ease:[.4,0,.2,1]}},exit:{y:\"-100%\"}};// Count style\nconst countStyles={...countFont,color:countColor,fontVariantNumeric:countStyle===\"monospace\"?\"tabular-nums\":undefined,fontFamily:countStyle===\"monospace\"?\"monospace\":countFont?.fontFamily,fontWeight:countFont?.fontWeight,fontSize:countFont?.fontSize,letterSpacing:countFont?.letterSpacing,lineHeight:countFont?.lineHeight,textAlign:\"right\",margin:0,userSelect:\"none\",transition:\"color 0.3s, font-size 0.3s\"};// Loading screen\nreturn /*#__PURE__*/_jsx(\"div\",{style:{...style,width:\"100%\",height:\"100%\",position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(AnimatePresence,{children:loading&&/*#__PURE__*/_jsx(motion.div,{initial:\"initial\",animate:swipe?\"animate\":\"initial\",exit:\"exit\",variants:swipeVariants,style:{position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",zIndex:10,background:useImage&&backgroundImage?.src?`url(${backgroundImage.src}) center/cover no-repeat`:backgroundColor,display:\"flex\",flexDirection:\"column\",justifyContent:pos.justifyContent,alignItems:pos.alignItems,transition:\"background 0.3s\"},\"aria-label\":\"Loading screen\",role:\"dialog\",\"aria-modal\":\"true\",tabIndex:0,\"aria-live\":\"polite\",\"aria-busy\":loading,onKeyDown:e=>{if(e.key===\"Escape\"&&loading){startTransition(()=>setLoading(false));}},children:/*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",flexDirection:\"column\",justifyContent:pos.justifyContent,alignItems:pos.alignItems,pointerEvents:\"none\"},children:/*#__PURE__*/_jsxs(\"span\",{style:{...countStyles},\"aria-live\":\"polite\",\"aria-atomic\":\"true\",tabIndex:0,children:[countPrefix,count,showPercent?\"%\":null,countSuffix]})})},\"loader\")})});}addPropertyControls(LoadingScreen,{backgroundColor:{type:ControlType.Color,title:\"Background\",defaultValue:\"#FFFFFF\"},useImage:{type:ControlType.Boolean,title:\"Use Image\",defaultValue:false,enabledTitle:\"Image\",disabledTitle:\"Color\"},backgroundImage:{type:ControlType.ResponsiveImage,title:\"Image\",hidden:({useImage})=>!useImage},countFont:{type:ControlType.Font,title:\"Count Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"48px\",variant:\"Bold\",letterSpacing:\"-0.03em\",lineHeight:\"1em\"}},countColor:{type:ControlType.Color,title:\"Count Color\",defaultValue:\"#000000\"},countSpeed:{type:ControlType.Number,title:\"Count Speed (ms)\",defaultValue:18,min:5,max:200,step:1,displayStepper:true},countStyle:{type:ControlType.Enum,title:\"Count Style\",options:[\"default\",\"monospace\"],optionTitles:[\"Default\",\"Monospace\"],defaultValue:\"default\",displaySegmentedControl:true},countPrefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},countSuffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},showPercent:{type:ControlType.Boolean,title:\"Show %\",defaultValue:true},countPosition:{type:ControlType.Enum,title:\"Count Position\",options:[\"bottom-right\",\"bottom-left\",\"top-right\",\"top-left\",\"center\"],optionTitles:[\"Bottom Right\",\"Bottom Left\",\"Top Right\",\"Top Left\",\"Center\"],defaultValue:\"bottom-right\",displaySegmentedControl:false},swipeDuration:{type:ControlType.Number,title:\"Swipe Duration (ms)\",defaultValue:700,min:200,max:2e3,step:10,displayStepper:true},scrollBlock:{type:ControlType.Boolean,title:\"Block Scroll\",defaultValue:true,enabledTitle:\"Block\",disabledTitle:\"Allow\"}})// Documentation:\n// - Background: Use 'Background' color or enable 'Use Image' and select an image.\n// - Counting: Adjust 'Count Speed (ms)', 'Count Font', 'Count Color', 'Count Style', 'Prefix', 'Suffix', and 'Show %'.\n// - Animation: 'Swipe Duration (ms)' controls the reveal speed. All transitions are smooth and use Framer Motion.\n// - Text Position: Use 'Count Position' to place the number (bottom-right, bottom-left, top-right, top-left, center).\n// - Content: Place your page content in the 'Content' slot. It will be revealed after loading.\n// - Optimized for performance: Animations are paused in static/preview mode, and timers are cleaned up properly.\n;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"LoadingScreen\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"600\",\"framerIntrinsicHeight\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./LoadingScreen.map"],"mappings":"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"}