{"version":3,"file":"Text_Scroll.na31L7m1.mjs","names":["React.Fragment","React.useRef","React.useMemo"],"sources":["https:/framerusercontent.com/modules/Ey32GF495vsnzWaGo5Hq/HCWyZNCeyS9AEXx7u2o4/Text_Scroll.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{motion,useScroll,useTransform}from\"framer-motion\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";function clamp01(n){return Math.max(0,Math.min(1,n));}function normalizeFont(font){if(!font)return{};const s={};if(font.fontFamily)s.fontFamily=font.fontFamily;if(font.family)s.fontFamily=font.family;if(font.fontSize!=null)s.fontSize=font.fontSize;if(font.size!=null)s.fontSize=font.size;if(font.fontWeight!=null)s.fontWeight=font.fontWeight;if(font.weight!=null)s.fontWeight=font.weight;if(font.lineHeight!=null)s.lineHeight=font.lineHeight;if(font.letterSpacing!=null)s.letterSpacing=font.letterSpacing;// Native alignment from Font control (varies by Framer version)\nif(font.textAlign)s.textAlign=font.textAlign;if(font.align)s.textAlign=font.align;if(font.alignment)s.textAlign=font.alignment;return s;}function tokenizeWordsOrLetters(raw,unit){const lines=(raw??\"\").split(\"\\n\");const out=[];let animIndex=0;for(let li=0;li<lines.length;li++){const line=lines[li];if(unit===\"Words\"){const words=line.trim()?line.trim().split(/\\s+/):[];for(let i=0;i<words.length;i++){// animated word\nout.push({kind:\"token\",value:words[i],animIndex});animIndex++;// IMPORTANT: add a real space token so wrapping works\nif(i!==words.length-1){out.push({kind:\"token\",value:\" \",animIndex:null});}}if(!words.length)out.push({kind:\"token\",value:\"\\xa0\",animIndex:null});}else{for(const ch of line){if(ch===\" \"){out.push({kind:\"token\",value:ch,animIndex:null});}else{out.push({kind:\"token\",value:ch,animIndex});animIndex++;}}if(!line.length)out.push({kind:\"token\",value:\"\\xa0\",animIndex:null});}if(li!==lines.length-1)out.push({kind:\"br\"});}return out;}function tokenizeLines(raw){const lines=(raw??\"\").split(\"\\n\");return lines.map((line,idx)=>({kind:\"line\",value:line,animIndex:idx}));}function RevealToken({value,animIndex,totalAnimated,progress,unit}){// non-animated tokens (spaces / nbsp)\nif(animIndex===null||totalAnimated<=0){if(unit===\"Letters\"){return /*#__PURE__*/_jsx(\"span\",{children:value===\" \"?\"\\xa0\":value});}// Words: keep REAL spaces so wrapping works\nreturn /*#__PURE__*/_jsx(\"span\",{children:value});}const start=animIndex/totalAnimated;const end=start+1/totalAnimated;const opacity=useTransform(progress,[start,end],[0,1]);return unit===\"Letters\"?/*#__PURE__*/_jsx(motion.span,{style:{opacity,display:\"inline-block\"},children:value===\" \"?\"\\xa0\":value}):/*#__PURE__*/_jsx(motion.span,{style:{opacity,display:\"inline\"},children:value});}function RevealLine({line,animIndex,totalLines,progress}){const denom=Math.max(1,totalLines);const start=animIndex/denom;const end=start+1/denom;const opacity=useTransform(progress,[start,end],[0,1]);return /*#__PURE__*/_jsx(motion.div,{style:{opacity,display:\"block\"},children:line.length?line:\"\\xa0\"});}/** Ghost (fully revealed) layer */function GhostLayer({raw,unit,textColor,ghostColor,ghostOpacity,textAlign}){const color=ghostColor||textColor;const content=unit===\"Lines\"?raw.split(\"\\n\").map((line,i)=>/*#__PURE__*/_jsx(\"div\",{children:line.length?line:\"\\xa0\"},`g-l-${i}`)):raw.split(\"\\n\").map((line,li)=>{const safeLine=unit===\"Words\"?line.trim()?line.trim().split(/\\s+/).join(\" \"):\"\\xa0\":line.length?line:\"\\xa0\";return /*#__PURE__*/_jsxs(React.Fragment,{children:[li>0&&/*#__PURE__*/_jsx(\"br\",{}),unit===\"Letters\"?[...safeLine].map((ch,i)=>/*#__PURE__*/_jsx(\"span\",{children:ch===\" \"?\"\\xa0\":ch},`g-c-${li}-${i}`)):safeLine]},`g-ln-${li}`);});return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",pointerEvents:\"none\",opacity:ghostOpacity,color,whiteSpace:\"pre-wrap\",textAlign},children:content});}export default function StickyScrollRevealText(props){const{text,unit,font,textColor,sectionHeightVh,speed,alignY,stickyOffsetPx,maxWidth,paddingVw,wordGapEm,canvasPreview,canvasPreviewProgress,ghostEnabled,ghostOpacity,ghostColor}=props;const raw=typeof text===\"string\"?text:\"\";const containerRef=React.useRef(null);const{scrollYProgress}=useScroll({target:containerRef,offset:[\"start start\",\"end end\"]});const baseProgress=useTransform(scrollYProgress,v=>clamp01(v*(typeof speed===\"number\"?speed:1)));let isCanvas=false;try{isCanvas=RenderTarget.current()===RenderTarget.canvas;}catch(e){}const progress=useTransform(baseProgress,v=>{if(!isCanvas)return v;if(canvasPreview===\"Off\")return v;if(canvasPreview===\"Custom\")return clamp01(canvasPreviewProgress);return 1;});const fontStyles=React.useMemo(()=>normalizeFont(font),[font]);const resolvedTextAlign=fontStyles.textAlign||\"center\";const justifyContent=resolvedTextAlign===\"left\"?\"flex-start\":resolvedTextAlign===\"right\"?\"flex-end\":\"center\";const top=alignY===\"Top\"?`${stickyOffsetPx}px`:alignY===\"Bottom\"?`calc(100vh - ${stickyOffsetPx}px)`:`calc(50vh + ${stickyOffsetPx}px)`;const transform=alignY===\"Top\"?\"translateY(0)\":alignY===\"Bottom\"?\"translateY(-100%)\":\"translateY(-50%)\";const wordOrLetterTokens=React.useMemo(()=>{if(unit===\"Words\"||unit===\"Letters\")return tokenizeWordsOrLetters(raw,unit);return[];},[raw,unit]);const totalAnimated=React.useMemo(()=>{let max=-1;for(const t of wordOrLetterTokens){if(t.kind===\"token\"&&t.animIndex!==null)max=Math.max(max,t.animIndex);}return max+1;},[wordOrLetterTokens]);const lineTokens=React.useMemo(()=>{if(unit===\"Lines\")return tokenizeLines(raw);return[];},[raw,unit]);return /*#__PURE__*/_jsx(\"section\",{ref:containerRef,style:{position:\"relative\",height:`${sectionHeightVh}vh`,overflow:\"visible\"},children:/*#__PURE__*/_jsx(\"div\",{style:{position:\"sticky\",top,transform,padding:`0 ${paddingVw}vw`,display:\"flex\",justifyContent},children:/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",maxWidth,width:\"100%\",color:textColor,whiteSpace:\"pre-wrap\",textAlign:resolvedTextAlign,...unit===\"Words\"?{wordSpacing:`${wordGapEm}em`}// ✅ shared by ghost + animated\n:null,...fontStyles},children:[ghostEnabled&&/*#__PURE__*/_jsx(GhostLayer,{raw:raw,unit:unit,textColor:textColor,ghostColor:ghostColor,ghostOpacity:ghostOpacity,textAlign:resolvedTextAlign}),/*#__PURE__*/_jsx(\"div\",{style:{position:\"relative\"},children:unit===\"Lines\"?lineTokens.map((t,i)=>/*#__PURE__*/_jsx(RevealLine,{line:t.value,animIndex:t.animIndex,totalLines:lineTokens.length,progress:progress},`l-${i}`)):wordOrLetterTokens.map((t,i)=>t.kind===\"br\"?/*#__PURE__*/_jsx(\"br\",{},`br-${i}`):/*#__PURE__*/_jsx(RevealToken,{value:t.value,animIndex:t.animIndex,totalAnimated:totalAnimated,progress:progress,unit:unit},`t-${i}`))})]})})});}addPropertyControls(StickyScrollRevealText,{text:{type:ControlType.String,title:\"Text\",displayTextArea:true,defaultValue:`Scroll-synced text reveal.\nWords, letters, or lines.\nSticky layout + alignment.\nNative fonts, canvas preview, ghost layer.`},unit:{type:ControlType.Enum,title:\"Reveal\",options:[\"Words\",\"Letters\",\"Lines\"],defaultValue:\"Words\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\"},textColor:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},sectionHeightVh:{type:ControlType.Number,title:\"Section Height (vh)\",defaultValue:300,min:100,max:800,step:10},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.25,max:3,step:.05},alignY:{type:ControlType.Enum,title:\"V Align\",options:[\"Top\",\"Center\",\"Bottom\"],displaySegmentedControl:true,defaultValue:\"Center\"},stickyOffsetPx:{type:ControlType.Number,title:\"Sticky Offset (px)\",defaultValue:0,min:0,max:300,step:1},maxWidth:{type:ControlType.Number,title:\"Max Width\",defaultValue:900,min:320,max:1600,step:10},paddingVw:{type:ControlType.Number,title:\"Side Padding (vw)\",defaultValue:5,min:0,max:12,step:.5},wordGapEm:{type:ControlType.Number,title:\"Word Gap (em)\",defaultValue:.25,min:0,max:1,step:.01,hidden(props){return props.unit!==\"Words\";}},canvasPreview:{type:ControlType.Enum,title:\"Canvas Preview\",options:[\"Full\",\"Custom\",\"Off\"],defaultValue:\"Full\"},canvasPreviewProgress:{type:ControlType.Number,title:\"Preview Progress\",defaultValue:1,min:0,max:1,step:.01,hidden(props){return props.canvasPreview!==\"Custom\";}},ghostEnabled:{type:ControlType.Boolean,title:\"Ghost\",defaultValue:false},ghostOpacity:{type:ControlType.Number,title:\"Ghost Opacity\",defaultValue:.25,min:0,max:1,step:.01,hidden(props){return!props.ghostEnabled;}},ghostColor:{type:ControlType.Color,title:\"Ghost Color\",defaultValue:\"rgba(0,0,0,0.35)\",hidden(props){return!props.ghostEnabled;}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StickyScrollRevealText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Text_Scroll.map"],"mappings":"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"}