{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/ojGX1mKWQOZiuApZc10c/8w41RdlOgaeGecwz1UHM/CircleProgress.js", "ssg:https://framerusercontent.com/modules/RvKicf9Z21S5XVKcJb5d/FGwZUqgiWGKD649LDkyO/nIlpp0nX4.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{motion,useAnimation}from\"framer-motion\";const ScrollCounterCircle=()=>{const[scrollProgress,setScrollProgress]=useState(0);const[showText,setShowText]=useState(false);const controls=useAnimation();const handleScroll=()=>{const maxScroll=document.documentElement.scrollHeight-document.documentElement.clientHeight;const currentScroll=window.scrollY;const scrollPercentage=Math.min(Math.floor(currentScroll/maxScroll*100),100);setScrollProgress(scrollPercentage);// Si l'utilisateur commence \u00E0 scroller, afficher le texte\nif(!showText){setShowText(true);controls.start({opacity:1,transition:{duration:.2}});}// R\u00E9initialiser le d\u00E9lai pour cacher le texte apr\u00E8s 0.5s d'inactivit\u00E9\nclearTimeout(hideTimeout);hideTimeout=setTimeout(()=>hideText(),500);};let hideTimeout;useEffect(()=>{window.addEventListener(\"scroll\",handleScroll);return()=>{window.removeEventListener(\"scroll\",handleScroll);};},[]);const hideText=()=>{controls.start({opacity:0,transition:{duration:.5}});setShowText(false);};const circleDiameter=48;const strokeWidth=1.5;const radius=(circleDiameter-strokeWidth)/2;const circumference=2*Math.PI*radius;const offset=circumference-scrollProgress/100*circumference;return /*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"center\",alignItems:\"center\",width:`${circleDiameter}px`,height:`${circleDiameter}px`},children:[/*#__PURE__*/_jsxs(motion.svg,{width:circleDiameter,height:circleDiameter,viewBox:`0 0 ${circleDiameter} ${circleDiameter}`,style:{position:\"absolute\"},children:[/*#__PURE__*/_jsx(\"circle\",{cx:circleDiameter/2,cy:circleDiameter/2,r:radius,stroke:\"rgba(255, 255, 255, 0.3)\"// Couleur plus l\u00E9g\u00E8re pour le fond\n,strokeWidth:strokeWidth,fill:\"none\"}),/*#__PURE__*/_jsx(motion.circle,{cx:circleDiameter/2,cy:circleDiameter/2,r:radius,stroke:\"white\",strokeWidth:strokeWidth,fill:\"none\",strokeDasharray:circumference,strokeDashoffset:offset,initial:{strokeDashoffset:circumference},animate:{strokeDashoffset:offset},transition:{duration:.2},strokeLinecap:\"round\"})]}),/*#__PURE__*/_jsxs(motion.div,{animate:controls,initial:{opacity:0},style:{color:\"white\",fontSize:\"13px\",position:\"absolute\",textAlign:\"center\",fontFamily:\"Roobert, sans-serif\"},children:[scrollProgress,\"%\"]})]});};export default ScrollCounterCircle;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ScrollCounterCircle\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CircleProgress.map", "// Generated by Framer (38f2e7f)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addFonts,ComponentViewportProvider,cx,getFonts,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import ScrollCounterCircle from\"https://framerusercontent.com/modules/ojGX1mKWQOZiuApZc10c/8w41RdlOgaeGecwz1UHM/CircleProgress.js\";const ScrollCounterCircleFonts=getFonts(ScrollCounterCircle);const serializationHash=\"framer-FXxiE\";const variantClassNames={b8O1C8uNU:\"framer-v-1po0ovs\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const getProps=({height,id,width,...props})=>{return{...props};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"b8O1C8uNU\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(serializationHash,...sharedStyleClassNames,\"framer-1po0ovs\",className,classNames),\"data-framer-name\":\"Variant 1\",layoutDependency:layoutDependency,layoutId:\"b8O1C8uNU\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{...style},children:/*#__PURE__*/_jsx(ComponentViewportProvider,{children:/*#__PURE__*/_jsx(motion.div,{className:\"framer-1delcak-container\",layoutDependency:layoutDependency,layoutId:\"WF8dy8Owm-container\",children:/*#__PURE__*/_jsx(ScrollCounterCircle,{height:\"100%\",id:\"WF8dy8Owm\",layoutId:\"WF8dy8Owm\",width:\"100%\"})})})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-FXxiE.framer-fvf01x, .framer-FXxiE .framer-fvf01x { display: block; }\",\".framer-FXxiE.framer-1po0ovs { height: 48px; position: relative; width: 48px; }\",\".framer-FXxiE .framer-1delcak-container { flex: none; height: auto; left: 0px; position: absolute; top: 0px; width: auto; }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 48\n * @framerIntrinsicWidth 48\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramernIlpp0nX4=withCSS(Component,css,\"framer-FXxiE\");export default FramernIlpp0nX4;FramernIlpp0nX4.displayName=\"CircleProgress\";FramernIlpp0nX4.defaultProps={height:48,width:48};addFonts(FramernIlpp0nX4,[{explicitInter:true,fonts:[]},...ScrollCounterCircleFonts],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FramernIlpp0nX4\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerIntrinsicHeight\":\"48\",\"framerDisplayContentsDiv\":\"false\",\"framerIntrinsicWidth\":\"48\",\"framerContractVersion\":\"1\",\"framerImmutableVariables\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\"}},\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["ScrollCounterCircle", "scrollProgress", "setScrollProgress", "ye", "showText", "setShowText", "controls", "useAnimation", "handleScroll", "maxScroll", "currentScroll", "window", "scrollPercentage", "hideTimeout", "hideText", "ue", "circleDiameter", "strokeWidth", "radius", "circumference", "offset", "u", "motion", "p", "CircleProgress_default", "ScrollCounterCircleFonts", "getFonts", "CircleProgress_default", "serializationHash", "variantClassNames", "transition1", "Transition", "value", "children", "config", "re", "MotionConfigContext", "transition", "contextValue", "se", "p", "Variants", "motion", "x", "getProps", "height", "id", "width", "props", "createLayoutDependency", "variants", "Component", "Y", "ref", "activeLocale", "setLocale", "useLocaleInfo", "style", "className", "layoutId", "variant", "restProps", "baseVariant", "classNames", "clearLoadingGesture", "gestureHandlers", "gestureVariant", "isLoading", "setGestureState", "setVariant", "useVariantState", "variantClassNames", "layoutDependency", "ref1", "pe", "defaultLayoutId", "ae", "sharedStyleClassNames", "componentViewport", "useComponentViewport", "LayoutGroup", "cx", "serializationHash", "ComponentViewportProvider", "CircleProgress_default", "css", "FramernIlpp0nX4", "withCSS", "nIlpp0nX4_default", "addFonts", "ScrollCounterCircleFonts"]
}
