{"version":3,"file":"GradientText.A8fgiZec.mjs","names":["useMemo"],"sources":["https:/framerusercontent.com/modules/ykTjCPCXqcV4cUCSm75M/qhgOp3GL6ho4RXFznPpw/GradientText.js"],"sourcesContent":["// Gradient text between { } markers, with alignment + a per-word/character appear animation.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion}from\"framer-motion\";import{useMemo}from\"react\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function GradientText(props){const{content=\"This is normal text with {gradient text} in between.\",normalTextColor,gradientStartColor,gradientEndColor,gradientDirection,normalFont,gradientFont,textAlign,animate,trigger,tokenize,replay,threshold,startDelay,stagger,enterOpacity,enterScale,enterBlur,enterRotate,enterSkewX,enterSkewY,enterOffsetX,enterOffsetY,transitionType,stiffness,damping,mass,duration,ease}=props;// On the Framer canvas we render the final (visible) state so the text is\n// always editable and colors are easy to preview. Animation runs on the\n// published/preview site.\nconst onCanvas=RenderTarget.current()===RenderTarget.canvas;const isAnimated=animate&&!onCanvas;const enterTransition=useMemo(()=>transitionType===\"spring\"?{type:\"spring\",stiffness,damping,mass}:{type:\"tween\",duration,ease},[transitionType,stiffness,damping,mass,duration,ease]);const containerVariants=useMemo(()=>({hidden:{},visible:{transition:{delayChildren:startDelay,staggerChildren:stagger}}}),[startDelay,stagger]);const tokenVariants=useMemo(()=>({hidden:{opacity:enterOpacity,scale:enterScale,filter:`blur(${enterBlur}px)`,rotate:enterRotate,skewX:enterSkewX,skewY:enterSkewY,x:enterOffsetX,y:enterOffsetY},visible:{opacity:1,scale:1,filter:\"blur(0px)\",rotate:0,skewX:0,skewY:0,x:0,y:0,transition:enterTransition}}),[enterOpacity,enterScale,enterBlur,enterRotate,enterSkewX,enterSkewY,enterOffsetX,enterOffsetY,enterTransition]);const processedContent=useMemo(()=>{const normalStyle={...normalFont,color:normalTextColor,display:\"inline-block\"};// FIX: spread the font FIRST, then force the gradient-clip properties so\n// nothing can reset `background-clip` (which used to reveal a solid\n// gradient box over the text on the canvas). Using `backgroundImage`\n// instead of the `background` shorthand keeps the clip intact too.\nconst gradientStyle={...gradientFont,backgroundImage:`linear-gradient(${gradientDirection}, ${gradientStartColor}, ${gradientEndColor})`,WebkitBackgroundClip:\"text\",backgroundClip:\"text\",WebkitTextFillColor:\"transparent\",color:\"transparent\",display:\"inline-block\",// Italic glyphs (and glyphs like \"?\") slant past the box edges. The\n// gradient only paints inside the box, so overflowing ink loses its\n// fill and looks cropped. Pad the box so the gradient extends past\n// the ink, then cancel it with an equal negative margin so the\n// layout, spacing and baseline stay exactly the same.\npadding:\"0.25em\",margin:\"-0.25em\"};// Split into normal segments and {gradient} segments, preserving order.\nconst segments=content.split(/(\\{[^}]*\\})/g);const nodes=[];let key=0;const pushToken=(text,style)=>{const k=`t${key++}`;if(!isAnimated){nodes.push(/*#__PURE__*/_jsx(\"span\",{style:style,children:text},k));return;}nodes.push(/*#__PURE__*/_jsx(motion.span,{style:style,variants:tokenVariants,children:text},k));};// Spaces must carry the normal font so they scale with the text (a\n// space left at the default size looks tiny next to large headings).\n// Keep default (normal) white-space so a space at the start of a\n// wrapped line collapses instead of indenting the next line.\nconst spaceStyle={...normalFont,whiteSpace:\"normal\"};const pushSpace=text=>{nodes.push(/*#__PURE__*/_jsx(\"span\",{style:spaceStyle,children:text},`s${key++}`));};segments.forEach(segment=>{if(!segment)return;if(segment.startsWith(\"{\")&&segment.endsWith(\"}\")){// Gradient phrase: kept as a single token so the gradient stays\n// continuous across the whole phrase.\npushToken(segment.slice(1,-1),gradientStyle);return;}// Normal text: tokenize by word or character, keeping whitespace.\nif(tokenize===\"character\"){for(const ch of segment){if(/\\s/.test(ch))pushSpace(ch);else pushToken(ch,normalStyle);}}else{const parts=segment.split(/(\\s+)/g);parts.forEach(part=>{if(!part)return;if(/^\\s+$/.test(part))pushSpace(part);else pushToken(part,normalStyle);});}});return nodes;},[content,normalTextColor,gradientStartColor,gradientEndColor,gradientDirection,normalFont,gradientFont,tokenize,isAnimated,tokenVariants]);const isFixedWidth=props?.style&&props.style.width===\"100%\";const isFixedHeight=props?.style&&props.style.height===\"100%\";const outerStyle={...props.style,position:\"relative\",...isFixedWidth?{width:\"100%\"}:{width:\"max-content\"},...isFixedHeight?{height:\"100%\"}:{height:\"auto\"},display:\"inline-block\",textAlign,wordWrap:\"break-word\",overflowWrap:\"break-word\",maxWidth:isFixedWidth?\"100%\":\"none\"};if(!isAnimated){return /*#__PURE__*/_jsx(\"div\",{style:outerStyle,children:processedContent});}const motionProps=trigger===\"onMount\"?{initial:\"hidden\",animate:\"visible\"}:{initial:\"hidden\",whileInView:\"visible\",viewport:{once:!replay,amount:threshold}};return /*#__PURE__*/_jsx(motion.div,{style:outerStyle,variants:containerVariants,...motionProps,children:processedContent});}addPropertyControls(GradientText,{content:{type:ControlType.String,title:\"Content\",defaultValue:\"This is normal text with {gradient text} in between.\",displayTextArea:true},normalTextColor:{type:ControlType.Color,title:\"Normal Text Color\",defaultValue:\"#000000\"},gradientStartColor:{type:ControlType.Color,title:\"Gradient Start\",defaultValue:\"#563EE2\"},gradientEndColor:{type:ControlType.Color,title:\"Gradient End\",defaultValue:\"#02E3CA\"},gradientDirection:{type:ControlType.Enum,title:\"Gradient Direction\",options:[\"to right\",\"to left\",\"to bottom\",\"to top\",\"45deg\",\"135deg\",\"225deg\",\"315deg\"],optionTitles:[\"Right\",\"Left\",\"Bottom\",\"Top\",\"45\\xb0\",\"135\\xb0\",\"225\\xb0\",\"315\\xb0\"],defaultValue:\"to right\",displaySegmentedControl:false},textAlign:{type:ControlType.Enum,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},normalFont:{type:ControlType.Font,title:\"Normal Text Font\",defaultValue:{fontSize:\"16px\",variant:\"Regular\",letterSpacing:\"-0.01em\",lineHeight:\"1.6em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},gradientFont:{type:ControlType.Font,title:\"Gradient Text Font\",defaultValue:{fontSize:\"16px\",variant:\"Bold\",letterSpacing:\"-0.01em\",lineHeight:\"1.6em\"},controls:\"extended\",defaultFontType:\"sans-serif\"},animate:{type:ControlType.Boolean,title:\"Text Effect\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"onAppear\",\"onMount\"],optionTitles:[\"On Appear\",\"On Mount\"],defaultValue:\"onAppear\",displaySegmentedControl:true,hidden:({animate})=>!animate},tokenize:{type:ControlType.Enum,title:\"Per\",options:[\"word\",\"character\"],optionTitles:[\"Word\",\"Character\"],defaultValue:\"word\",displaySegmentedControl:true,hidden:({animate})=>!animate},replay:{type:ControlType.Boolean,title:\"Replay\",defaultValue:false,enabledTitle:\"Always\",disabledTitle:\"Once\",hidden:({animate,trigger})=>!animate||trigger!==\"onAppear\"},threshold:{type:ControlType.Number,title:\"Threshold\",defaultValue:.3,min:0,max:1,step:.05,hidden:({animate,trigger})=>!animate||trigger!==\"onAppear\"},startDelay:{type:ControlType.Number,title:\"Start Delay\",defaultValue:.5,min:0,max:10,step:.05,unit:\"s\",hidden:({animate})=>!animate},stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:.05,min:0,max:2,step:.01,unit:\"s\",hidden:({animate})=>!animate},enterOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,hidden:({animate})=>!animate},enterScale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:0,max:3,step:.01,hidden:({animate})=>!animate},enterBlur:{type:ControlType.Number,title:\"Blur\",defaultValue:10,min:0,max:50,step:1,unit:\"px\",hidden:({animate})=>!animate},enterRotate:{type:ControlType.Number,title:\"Rotate\",defaultValue:0,min:-360,max:360,step:1,unit:\"\\xb0\",hidden:({animate})=>!animate},enterSkewX:{type:ControlType.Number,title:\"Skew X\",defaultValue:0,min:-90,max:90,step:1,unit:\"\\xb0\",hidden:({animate})=>!animate},enterSkewY:{type:ControlType.Number,title:\"Skew Y\",defaultValue:0,min:-90,max:90,step:1,unit:\"\\xb0\",hidden:({animate})=>!animate},enterOffsetX:{type:ControlType.Number,title:\"Offset X\",defaultValue:0,min:-400,max:400,step:1,unit:\"px\",hidden:({animate})=>!animate},enterOffsetY:{type:ControlType.Number,title:\"Offset Y\",defaultValue:10,min:-400,max:400,step:1,unit:\"px\",hidden:({animate})=>!animate},transitionType:{type:ControlType.Enum,title:\"Transition\",options:[\"spring\",\"tween\"],optionTitles:[\"Spring\",\"Ease\"],defaultValue:\"spring\",displaySegmentedControl:true,hidden:({animate})=>!animate},stiffness:{type:ControlType.Number,title:\"Stiffness\",defaultValue:400,min:1,max:1e3,step:1,hidden:({animate,transitionType})=>!animate||transitionType!==\"spring\"},damping:{type:ControlType.Number,title:\"Damping\",defaultValue:100,min:0,max:100,step:1,hidden:({animate,transitionType})=>!animate||transitionType!==\"spring\"},mass:{type:ControlType.Number,title:\"Mass\",defaultValue:1,min:.1,max:10,step:.1,hidden:({animate,transitionType})=>!animate||transitionType!==\"spring\"},duration:{type:ControlType.Number,title:\"Duration\",defaultValue:.6,min:0,max:10,step:.1,unit:\"s\",hidden:({animate,transitionType})=>!animate||transitionType!==\"tween\"},ease:{type:ControlType.Enum,title:\"Easing\",options:[\"easeOut\",\"easeInOut\",\"easeIn\",\"linear\"],optionTitles:[\"Ease Out\",\"Ease In Out\",\"Ease In\",\"Linear\"],defaultValue:\"easeOut\",hidden:({animate,transitionType})=>!animate||transitionType!==\"tween\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientText.map"],"mappings":"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"}