{"version":3,"file":"Code.CGGY27UR.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/9jJuWSLNf3uusg805TGZ/F3dWYgj0r80XTqWKpwPX/Code.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion,useScroll,useTransform}from\"framer-motion\";import{useRef,useEffect}from\"react\";const TextRevealEffect=({char,start,end,progress,duration,easing,index,StartFrom,baseColor,revealColor})=>{const colorProgress=useTransform(progress,[start,end],[baseColor,revealColor]);const startColor=index<StartFrom?revealColor:baseColor;return /*#__PURE__*/_jsx(motion.span,{style:{color:index<StartFrom?startColor:colorProgress},transition:{duration,ease:easing},children:char});};const GenerateWord=({word,progress,starting,ending,duration,easing,StartFrom,componentStartIndex,baseColor,revealColor})=>{const characters=word.split(\"\");const amount=ending-starting;const step=amount/characters.length;return /*#__PURE__*/_jsxs(motion.span,{children:[characters.map((char,idx)=>{const charStart=starting+step*idx;const charEnd=starting+step*(idx+1);return /*#__PURE__*/_jsx(TextRevealEffect,{char:char,start:charStart,end:charEnd,progress:progress,duration:duration,easing:easing,index:componentStartIndex+idx,StartFrom:StartFrom,baseColor:baseColor,revealColor:revealColor},idx);}),\"\\xa0\"]});};const weightMap={Thin:\"100\",\"Thin Italic\":\"100italic\",\"Extra Light\":\"200\",\"Extra Light Italic\":\"200italic\",Light:\"300\",\"Light Italic\":\"300italic\",Regular:\"400\",\"Regular Italic\":\"400italic\",Medium:\"500\",\"Medium Italic\":\"500italic\",\"Semi Bold\":\"600\",\"Semi Bold Italic\":\"600italic\",Bold:\"700\",\"Bold Italic\":\"700italic\",\"Extra Bold\":\"800\",\"Extra Bold Italic\":\"800italic\",Black:\"900\",\"Black Italic\":\"900italic\"};export default function TextRevealOnScroll(props){const{text,duration,easing,fontSize,lineHeight,letterSpacing,paragraphAlign,StartFrom,fontFamily,fontWeight,baseColor,revealColor,wordSpacing,scrollStartPosition,scrollEndPosition}=props;const convertPercent=val=>{if(typeof val!==\"string\")return val;const num=parseFloat(val.replace(\"%\",\"\").trim());return isNaN(num)?0:num/100;};const startOffsetDecimal=convertPercent(scrollStartPosition);const endOffsetDecimal=convertPercent(scrollEndPosition);const googleValue=weightMap[fontWeight]||\"400\";const isItalic=googleValue.includes(\"italic\");const numericWeight=googleValue.replace(\"italic\",\"\");const words=text.split(\" \");const totalWords=words.length;const ref=useRef(null);const{scrollYProgress}=useScroll({target:ref,offset:[`start ${startOffsetDecimal}`,`start ${endOffsetDecimal}`]});useEffect(()=>{const style=document.createElement(\"style\");style.appendChild(document.createTextNode(`\n            @import url('https://fonts.googleapis.com/css2?family=${fontFamily.replace(/ /g,\"+\")}:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');\n        `));document.head.appendChild(style);return()=>document.head.removeChild(style);},[fontFamily,googleValue]);let componentStartIndex=0;return /*#__PURE__*/_jsx(\"p\",{ref:ref,style:{fontFamily:`${fontFamily}, sans-serif`,fontWeight:numericWeight,fontStyle:isItalic?\"italic\":\"normal\",fontSize:`${fontSize}px`,color:baseColor,display:\"flex\",flexWrap:\"wrap\",lineHeight:`${lineHeight}px`,letterSpacing:`${letterSpacing}px`,wordSpacing:`${wordSpacing}px`,justifyContent:paragraphAlign,margin:0},children:words.map((word,idx)=>{const starting=idx/totalWords;const ending=(idx+1)/totalWords;const startIdx=componentStartIndex;componentStartIndex+=word.length+1;return /*#__PURE__*/_jsx(GenerateWord,{word:word,progress:scrollYProgress,starting:starting,ending:ending,duration:duration,easing:easing,StartFrom:StartFrom,componentStartIndex:startIdx,baseColor:baseColor,revealColor:revealColor},idx);})});}addPropertyControls(TextRevealOnScroll,{text:{title:\"Text\",type:ControlType.String,defaultValue:\"Hello Text\"},fontFamily:{title:\"Font Family\",type:ControlType.String,defaultValue:\"Urbanist\"},fontWeight:{title:\"Font Weight\",type:ControlType.Enum,options:Object.keys(weightMap),optionTitles:Object.keys(weightMap),defaultValue:\"Regular\"},baseColor:{title:\"Base Color\",type:ControlType.Color,defaultValue:\"#666666\"},revealColor:{title:\"Reveal Color\",type:ControlType.Color,defaultValue:\"#FFFFFF\"},fontSize:{title:\"Font Size\",type:ControlType.Number,defaultValue:48,min:10,max:100},lineHeight:{title:\"Line Height\",type:ControlType.Number,defaultValue:60,min:10,max:100},letterSpacing:{title:\"Letter Spacing\",type:ControlType.Number,defaultValue:-3,min:-10,max:10},wordSpacing:{title:\"Word Spacing\",type:ControlType.Number,defaultValue:0,min:-10,max:50},scrollStartPosition:{title:\"Scroll Start Position\",type:ControlType.String,defaultValue:\"75%\"},scrollEndPosition:{title:\"Scroll End Position\",type:ControlType.String,defaultValue:\"15%\"},paragraphAlign:{title:\"Paragraph Align\",type:ControlType.Enum,options:[\"flex-start\",\"center\",\"flex-end\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\"},duration:{title:\"Duration\",type:ControlType.Number,defaultValue:.3,min:.1,max:3,step:.1},easing:{title:\"Easing\",type:ControlType.Enum,options:[\"easeInOut\",\"easeIn\",\"easeOut\",\"linear\"],optionTitles:[\"Ease In Out\",\"Ease In\",\"Ease Out\",\"Linear\"],defaultValue:\"easeInOut\"},StartFrom:{title:\"Start Point\",type:ControlType.Number,defaultValue:0,min:0,max:1e3}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextRevealOnScroll\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Code.map"],"mappings":"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"}