{"version":3,"file":"ScrollText.DLnao7AV.mjs","names":["useRef","useState","React","useState","_Fragment","useRef","characters"],"sources":["https:/framerusercontent.com/modules/W5bVGd7Xkzj5pdlHdVI1/dBKJNqR7LVVymnyqLTcY/HorizontalScroller.js","https:/framerusercontent.com/modules/sAcxagCvQttDCZ5a1A2L/fI4BnipO2qqMvRl7P5eW/ScrollText.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useLayoutEffect,useRef,useState}from\"react\";import{motion,useScroll,useSpring,useTransform}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n *\n * @framerIntrinsicWidth 800\n * @framerIntrinsicHeight 400\n *\n * @framerDisableUnlink\n */export default function HorizontalScroller(props){const stickyTop=props.top;const containerOverflow=props.overflow;const containerRef=useRef(null);const scrollRef=useRef(null);const sizerRef=useRef(null);const[scrollRange,setScrollRange]=useState(0);const[contentWidth,setContentWidth]=useState(0);useLayoutEffect(()=>{setScrollRange(scrollRef.current.scrollWidth);const onResize=entries=>{for(let entry of entries){setContentWidth(entry.contentRect.width);setScrollRange(scrollRef.current.scrollWidth);}};const onStyleChange=entries=>{for(let entry of entries){setScrollRange(scrollRef.current.scrollWidth);}};const resizeObserver=new ResizeObserver(onResize);resizeObserver.observe(sizerRef.current);const mutationObserver=new MutationObserver(onStyleChange);mutationObserver.observe(scrollRef.current,{attributes:true,attributeFilter:[\"style\"]});return()=>{resizeObserver.disconnect();mutationObserver.disconnect();};},[]);const{scrollYProgress}=useScroll({target:containerRef});const transform=useTransform(scrollYProgress,[0,1],[0,-scrollRange+contentWidth]);const physics={damping:60,mass:1,stiffness:500};const spring=useSpring(transform,physics);return /*#__PURE__*/_jsxs(\"div\",{ref:containerRef,...props,children:[/*#__PURE__*/_jsx(\"div\",{style:{position:\"sticky\",top:stickyTop},children:/*#__PURE__*/_jsx(\"div\",{style:{overflow:containerOverflow},children:/*#__PURE__*/_jsx(motion.div,{ref:scrollRef,style:{x:spring},children:props.children})})}),/*#__PURE__*/_jsx(\"div\",{ref:sizerRef,\"aria-hidden\":\"true\",style:{width:\"100%\",height:scrollRange}})]});}HorizontalScroller.displayName=\"Horizontal Scroller\";addPropertyControls(HorizontalScroller,{branding:{type:ControlType.Enum,title:\"Developed By\",options:[\"artech\"],optionTitles:[\"artech\"],displaySegmentedControl:true,description:\"Live [demo](https://horizontalscroller.framer.website).\"},children:{type:ControlType.ComponentInstance,title:\"Frame\",description:\"Long, overflowing frame.\"},top:{type:ControlType.Number,title:\"Top\",description:\"Auto sticky.\\n\\n*Note*: Parent containers require their overflows set to clip for sticky to work.\",defaultValue:0,min:0,step:1,displayStepper:true},overflow:{type:ControlType.Enum,defaultValue:\"hidden\",displaySegmentedControl:true,segmentedControlDirection:\"horizontal\",options:[\"hidden\",\"visible\"],optionTitles:[\"Hidden\",\"Visible\"]}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"HorizontalScroller\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"800\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"400\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HorizontalScroller.map","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useRef,useState,useEffect}from\"react\";import{motion,useScroll,useTransform,useMotionValueEvent}from\"framer-motion\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import React from\"react\";function AnimatedElement({element,index,totalElements,scrollYProgress,effect,color,accentColor,visibleCount,fontLetterSpacing,isLastWord,isStatic,magicMixIntensity=50,handwriteSmoothness=50,kernTightSpacing=.15,scaleUpHeight=20,blurRevealIntensity=.6,smartTypeCaretSpeed=.8,smartTypeShowCaret=true,scrambleSpeed=30,typewriterCaretSpace=.05,typewriterCaretSpeed=.8,typewriterShowCaret=true}){const elementProgress=useTransform(scrollYProgress,[index/totalElements,(index+1)/totalElements],[0,1]);const opacity=useTransform(elementProgress,[0,1],[.2,1]);const y=useTransform(elementProgress,[0,1],[scaleUpHeight,0]);const blurValue=useTransform(elementProgress,[0,1],[4,0]);const blurOpacity=useTransform(elementProgress,[0,1],[.4,1]);const scaleValue=useTransform(elementProgress,[0,1],[.8,1]);const letterSpacingValue=useTransform(elementProgress,[0,1],[`${kernTightSpacing}em`,\"0em\"]);const translateY=useTransform(y,v=>`${v}px`);// 3D scale effect transforms\nconst rotateXValue=useTransform(elementProgress,[0,1],[45,0]);const rotateYValue=useTransform(elementProgress,[0,1],[0,0]);const translateZValue=useTransform(elementProgress,[0,1],[-100,0]);const shadowOpacity=useTransform(elementProgress,[0,1],[.3,0]);const textShadowValue=useTransform(shadowOpacity,v=>`0 ${4+v*10}px ${15+v*20}px rgba(0,0,0,${v*.4})`);const scale3DTransform=useTransform([scaleValue,rotateXValue,rotateYValue,translateZValue],values=>{const[latestScale,latestRotateX,latestRotateY,latestTranslateZ]=values;return`scale(${latestScale}) rotateX(${latestRotateX}deg) rotateY(${latestRotateY}deg) translateZ(${latestTranslateZ}px)`;});// Progressive depth blur for blur effect - uses blurRevealIntensity\nconst depthBlur=useTransform(scrollYProgress,[0,1],[index*blurRevealIntensity,0]);const depthOpacity=useTransform(scrollYProgress,[0,1],[.4+index/totalElements*.2,1]);const depthFilter=useTransform(depthBlur,v=>`blur(${Math.max(0,v)}px)`);// Random offset based on character index for consistent but varied starting positions\nconst randomOffset=React.useMemo(()=>({x:Math.sin(index*123.45)*magicMixIntensity+Math.cos(index*67.89)*magicMixIntensity*.6,y:Math.cos(index*234.56)*magicMixIntensity*.8+Math.sin(index*45.67)*magicMixIntensity*.7,rotate:Math.sin(index*89.01)*magicMixIntensity*.6}),[index,magicMixIntensity]);// Scramble effect state\nconst scrambleChars=\"!@#$%^&*()_+-=[]{}|;:,.<>?/~`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\";const[displayChar,setDisplayChar]=useState(element);const isVisibleScramble=index<visibleCount;useEffect(()=>{if(effect!==\"scramble\")return;if(!isVisibleScramble){setDisplayChar(scrambleChars[Math.floor(Math.random()*scrambleChars.length)]);return;}let iteration=0;const maxIterations=8;const interval=setInterval(()=>{if(iteration>=maxIterations){setDisplayChar(element);clearInterval(interval);return;}setDisplayChar(scrambleChars[Math.floor(Math.random()*scrambleChars.length)]);iteration++;},scrambleSpeed);return()=>clearInterval(interval);},[isVisibleScramble,element,effect]);// Magic effect state\nconst[isHovered,setIsHovered]=useState(false);const[hasBeenHovered,setHasBeenHovered]=useState(false);const isVisibleMagic=index<visibleCount;const handleMouseEnter=()=>{setIsHovered(true);setHasBeenHovered(true);};const handleMouseLeave=()=>{setIsHovered(false);};// In static renderer (canvas), show everything fully visible\nif(isStatic){return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",whiteSpace:\"pre\",color,letterSpacing:fontLetterSpacing||\"inherit\"},children:element});}if(effect===\"kerning\"){return /*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\",whiteSpace:\"pre\",color,letterSpacing:letterSpacingValue},children:element});}if(effect===\"blur\"){return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",whiteSpace:\"pre\",willChange:\"filter, opacity\"},children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\",color,filter:depthFilter,opacity:depthOpacity},children:element})});}if(effect===\"scale\"){return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",whiteSpace:\"pre\",perspective:\"1000px\",transformStyle:\"preserve-3d\"},children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\",color,opacity,transform:scale3DTransform,transformStyle:\"preserve-3d\",willChange:\"transform, opacity\"},children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\",textShadow:textShadowValue},children:element})})});}if(effect===\"typewriter\"){const isVisible=index<visibleCount;const isCaretPosition=index===visibleCount-1;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(motion.span,{initial:{opacity:0,y:3},animate:{opacity:isVisible?1:0,y:isVisible?0:3},transition:{duration:.15,ease:\"easeOut\"},style:{display:\"inline-block\",whiteSpace:\"pre\",color,letterSpacing:fontLetterSpacing||\"inherit\"},children:element}),isCaretPosition&&typewriterShowCaret&&/*#__PURE__*/_jsx(motion.span,{initial:{opacity:1},animate:{opacity:[1,0,1]},transition:{duration:typewriterCaretSpeed,repeat:Infinity,ease:\"easeInOut\"},style:{display:\"inline-block\",color,marginLeft:`-${typewriterCaretSpace}em`,fontWeight:\"100\",position:\"relative\"},children:\"|\"})]});}if(effect===\"smarttypewriter\"){const isVisible=index<visibleCount;const isCaretPosition=index===visibleCount-1;const textColor=isLastWord&&isVisible?accentColor:color;return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(motion.span,{initial:{opacity:0},animate:{opacity:isVisible?1:0},transition:{duration:.05},style:{display:\"inline-block\",whiteSpace:\"pre\",color:textColor,letterSpacing:fontLetterSpacing||\"inherit\"},children:element}),isCaretPosition&&smartTypeShowCaret&&/*#__PURE__*/_jsx(motion.span,{animate:{opacity:[1,.3,1]},transition:{duration:smartTypeCaretSpeed,repeat:Infinity,ease:\"easeInOut\"},style:{display:\"inline-block\",color:accentColor,marginLeft:\"0.02em\",fontWeight:\"300\",transform:\"translateY(0.05em)\"},children:\"_\"})]});}if(effect===\"handwrite\"){const isVisible=index<visibleCount;// Calculate spring parameters based on smoothness (0-100)\n// Higher smoothness = lower stiffness, higher damping for smoother/slower animation\n// Lower smoothness = higher stiffness, lower damping for snappier/faster animation\nconst stiffness=100+(100-handwriteSmoothness)*6// 100 to 700\n;const damping=10+handwriteSmoothness*.4// 10 to 50\n;return /*#__PURE__*/_jsx(motion.span,{initial:{opacity:0,x:-8,rotate:-5},animate:{opacity:isVisible?1:0,x:isVisible?0:-8,rotate:isVisible?0:-5},transition:{type:\"spring\",stiffness:stiffness,damping:damping,mass:.8},style:{display:\"inline-block\",whiteSpace:\"pre\",color,letterSpacing:fontLetterSpacing||\"inherit\",transformOrigin:\"left center\"},children:element});}if(effect===\"scramble\"){return /*#__PURE__*/_jsx(motion.span,{initial:{opacity:0},animate:{opacity:isVisibleScramble?1:.3},transition:{duration:.1},style:{display:\"inline-block\",whiteSpace:\"pre\",color,letterSpacing:fontLetterSpacing||\"inherit\"},children:displayChar});}if(effect===\"magic\"){return /*#__PURE__*/_jsx(motion.span,{initial:{opacity:0,x:randomOffset.x,y:randomOffset.y,rotate:randomOffset.rotate},animate:{opacity:isVisibleMagic?1:.2,x:isVisibleMagic?0:randomOffset.x,y:isVisibleMagic?0:randomOffset.y,rotate:isVisibleMagic?0:randomOffset.rotate,scale:isHovered?1.15:1},transition:{opacity:{duration:.5,ease:[.4,0,.2,1]},x:{type:\"spring\",stiffness:120,damping:25,mass:1.2},y:{type:\"spring\",stiffness:120,damping:25,mass:1.2},rotate:{type:\"spring\",stiffness:100,damping:20,mass:1.2},scale:{type:\"spring\",stiffness:300,damping:25}},onMouseEnter:handleMouseEnter,onMouseLeave:handleMouseLeave,style:{display:\"inline-block\",whiteSpace:\"pre\",color:hasBeenHovered?accentColor:color,letterSpacing:fontLetterSpacing||\"inherit\",cursor:\"default\"},children:element});}return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",whiteSpace:\"pre\"},children:/*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\",color,opacity,transform:translateY},children:element})});}/**\n * Text Scroll Effects Pack\n *\n * A text component that animates as you scroll through it.\n * Characters, words, or lines reveal progressively based on scroll position.\n *\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 100\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function TextScrollEffectsPack(props){const{text=\"Scroll to reveal this text animation\",font={fontSize:\"32px\",variant:\"Bold\",letterSpacing:\"-0.02em\",lineHeight:\"1.2em\"},effect=\"blur\",color=\"#000000\",accentColor=\"#FF5500\",magicMixIntensity=50,handwriteSmoothness=50,kernTightSpacing=.15,scaleUpHeight=20,blurRevealIntensity=.6,smartTypeCaretSpeed=.8,smartTypeShowCaret=true,scrambleSpeed=30,typewriterCaretSpace=.05,typewriterCaretSpeed=.8,typewriterShowCaret=true}=props;const containerRef=useRef(null);const[visibleCount,setVisibleCount]=useState(0);const isStatic=useIsStaticRenderer();const{scrollYProgress}=useScroll({target:containerRef,offset:[\"start end\",\"center center\"]});useMotionValueEvent(scrollYProgress,\"change\",latest=>{const characters=text.split(\"\");const newVisibleCount=Math.max(0,Math.ceil(latest*characters.length));setVisibleCount(newVisibleCount);});useEffect(()=>{setVisibleCount(0);},[effect,text]);const characters=text.split(\"\");// Group characters into words with their indices\nconst words=React.useMemo(()=>{const result=[];let currentWord=[];let wordStartIndex=0;characters.forEach((char,index)=>{if(char===\" \"){if(currentWord.length>0){result.push({chars:currentWord,startIndex:wordStartIndex,endIndex:index-1});currentWord=[];}// Add space as its own \"word\"\nresult.push({chars:[\" \"],startIndex:index,endIndex:index});wordStartIndex=index+1;}else{currentWord.push(char);}});// Add the last word if exists\nif(currentWord.length>0){result.push({chars:currentWord,startIndex:wordStartIndex,endIndex:characters.length-1});}return result;},[characters]);const wordBoundaries=React.useMemo(()=>{const boundaries=[];let wordStart=0;for(let i=0;i<=characters.length;i++){if(i===characters.length||characters[i]===\" \"){if(i>wordStart){boundaries.push({start:wordStart,end:i-1});}wordStart=i+1;}}return boundaries;},[characters]);const lastVisibleWord=React.useMemo(()=>{if(visibleCount===0)return{start:-1,end:-1};const lastVisibleCharIndex=visibleCount-1;for(const word of wordBoundaries){if(lastVisibleCharIndex>=word.start&&lastVisibleCharIndex<=word.end){return word;}}return{start:-1,end:-1};},[visibleCount,wordBoundaries]);return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",minHeight:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexWrap:\"wrap\",textAlign:\"center\",...font,lineHeight:\"1.4em\",cursor:effect===\"magic\"?\"pointer\":\"default\"},children:words.map((word,wordIndex)=>/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",whiteSpace:\"nowrap\"},children:word.chars.map((char,charIndexInWord)=>{const globalIndex=word.startIndex+charIndexInWord;return /*#__PURE__*/_jsx(AnimatedElement,{element:char,index:globalIndex,totalElements:characters.length,scrollYProgress:scrollYProgress,effect:effect,color:color,accentColor:accentColor,visibleCount:visibleCount,fontLetterSpacing:font?.letterSpacing,isLastWord:effect===\"smarttypewriter\"&&globalIndex>=lastVisibleWord.start&&globalIndex<=lastVisibleWord.end,isStatic:isStatic,magicMixIntensity:magicMixIntensity,handwriteSmoothness:handwriteSmoothness,kernTightSpacing:kernTightSpacing,scaleUpHeight:scaleUpHeight,blurRevealIntensity:blurRevealIntensity,smartTypeCaretSpeed:smartTypeCaretSpeed,smartTypeShowCaret:smartTypeShowCaret,scrambleSpeed:scrambleSpeed,typewriterCaretSpace:typewriterCaretSpace,typewriterCaretSpeed:typewriterCaretSpeed,typewriterShowCaret:typewriterShowCaret},globalIndex);})},wordIndex))});}addPropertyControls(TextScrollEffectsPack,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Scroll to reveal this text animation\",displayTextArea:true},font:{type:ControlType.Font,title:\"Font Style\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"32px\",variant:\"Bold\",letterSpacing:\"-0.02em\",lineHeight:\"1.2em\"}},effect:{type:ControlType.Enum,title:\"Effect\",options:[\"blur\",\"scale\",\"kerning\",\"typewriter\",\"smarttypewriter\",\"handwrite\",\"scramble\",\"magic\"],optionTitles:[\"Blur Reveal\",\"Scale Up\",\"Kern Tight\",\"Type Writer\",\"Smart Type\",\"Hand Write\",\"Scramble In\",\"Magic Text\"],defaultValue:\"blur\"},color:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"},accentColor:{type:ControlType.Color,title:\"Accent Color\",defaultValue:\"#FF5500\",hidden:({effect})=>effect!==\"smarttypewriter\"&&effect!==\"magic\"},magicMixIntensity:{type:ControlType.Number,title:\"Mix Intensity\",defaultValue:50,min:10,max:150,step:5,unit:\"px\",hidden:({effect})=>effect!==\"magic\"},handwriteSmoothness:{type:ControlType.Number,title:\"Smoothness\",defaultValue:50,min:0,max:100,step:5,unit:\"%\",hidden:({effect})=>effect!==\"handwrite\"},kernTightSpacing:{type:ControlType.Number,title:\"Start Spacing\",defaultValue:.15,min:.05,max:.5,step:.01,unit:\"em\",hidden:({effect})=>effect!==\"kerning\"},scaleUpHeight:{type:ControlType.Number,title:\"Height Offset\",defaultValue:20,min:0,max:100,step:5,unit:\"px\",hidden:({effect})=>effect!==\"scale\"},blurRevealIntensity:{type:ControlType.Number,title:\"Blur Intensity\",defaultValue:.6,min:.1,max:2,step:.1,unit:\"x\",hidden:({effect})=>effect!==\"blur\"},smartTypeCaretSpeed:{type:ControlType.Number,title:\"Caret Speed\",defaultValue:.8,min:.1,max:2,step:.1,unit:\"s\",hidden:({effect})=>effect!==\"smarttypewriter\"},smartTypeShowCaret:{type:ControlType.Boolean,title:\"Show Caret\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:({effect})=>effect!==\"smarttypewriter\"},scrambleSpeed:{type:ControlType.Number,title:\"Scramble Speed\",defaultValue:30,min:10,max:100,step:5,unit:\"ms\",hidden:({effect})=>effect!==\"scramble\"},typewriterCaretSpace:{type:ControlType.Number,title:\"Caret Space\",defaultValue:.05,min:0,max:.5,step:.01,unit:\"em\",hidden:({effect})=>effect!==\"typewriter\"},typewriterCaretSpeed:{type:ControlType.Number,title:\"Blink Speed\",defaultValue:.8,min:.1,max:2,step:.1,unit:\"s\",hidden:({effect})=>effect!==\"typewriter\"},typewriterShowCaret:{type:ControlType.Boolean,title:\"Show Caret\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden:({effect})=>effect!==\"typewriter\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextScrollEffectsPack\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"100\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ScrollText.map"],"mappings":"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"}