{"version":3,"file":"GradientTextSentence.BPIBgnuL.mjs","names":["useState","_Fragment"],"sources":["https:/framerusercontent.com/modules/w7GSYeymoRaMM84wzyvw/RnoR4HLQtuEygmCtLffT/GradientTextSentence.js"],"sourcesContent":["// SentenceWithGradientHighlight.tsx\nimport{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useState,useEffect,startTransition}from\"react\";import{addPropertyControls,ControlType}from\"framer\";export default function SentenceWithGradientHighlight(props){const{fullText=\"Start every day knowing what matters\",wordsToHighlight=\"matters\",font,fontSize=48,fontSizeUnit=\"px\",lineHeight=1.1,letterSpacing=0,align=\"left\",baseColor=\"#000000\",animationType=\"infinite\",direction=\"rightToLeft\",speed=8,gradientDirection=45,useThreeColors=false,color1=\"#FF6B6B\",color2=\"#4ECDC4\",color3=\"#45B7D1\"}=props;const[currentGradient,setCurrentGradient]=useState(0);const highlightWords=wordsToHighlight.split(\",\").map(w=>w.trim().toLowerCase()).filter(w=>w.length>0);// -------------------------------\n// Gradient logic\n// -------------------------------\nconst gradients=useThreeColors?[`linear-gradient(${gradientDirection}deg, ${color1}, ${color2})`,`linear-gradient(${gradientDirection}deg, ${color2}, ${color3})`,`linear-gradient(${gradientDirection}deg, ${color3}, ${color1})`]:[`linear-gradient(${gradientDirection}deg, ${color1}, ${color2})`,`linear-gradient(${gradientDirection}deg, ${color2}, ${color1})`];useEffect(()=>{if(animationType!==\"infinite\")return;const interval=setInterval(()=>{startTransition(()=>{setCurrentGradient(prev=>(prev+1)%gradients.length);});},speed*1e3);return()=>clearInterval(interval);},[animationType,speed,gradients.length]);const getActiveGradient=()=>{if(animationType===\"static\"||animationType===\"hover\")return gradients[0];return gradients[currentGradient];};const getAnimatedGradient=()=>{if(animationType===\"infinite\"||animationType===\"hover\"){const colors=useThreeColors?[color1,color2,color3]:[color1,color2];return`linear-gradient(${gradientDirection}deg, transparent, ${colors.join(\", \")}, transparent)`;}return getActiveGradient();};const getAnimationPositions=()=>direction===\"leftToRight\"?[\"-300% 50%\",\"100% 50%\"]:[\"100% 50%\",\"-300% 50%\"];// -------------------------------\n// Typography helpers\n// -------------------------------\nconst resolvedFontSize=fontSizeUnit===\"px\"?fontSize:`${fontSize}rem`;const sharedType={fontFamily:font?.fontFamily,fontSize:resolvedFontSize,lineHeight,letterSpacing:`${letterSpacing}em`};const gradientStyle={...sharedType,display:\"inline\",background:getAnimatedGradient(),WebkitBackgroundClip:\"text\",backgroundClip:\"text\",WebkitTextFillColor:\"transparent\",backgroundSize:animationType===\"static\"?\"100% 100%\":\"400% 100%\",fontWeight:font?.fontWeight??700,animation:animationType===\"infinite\"?`gradientMove ${speed}s linear infinite`:\"none\"};const plainStyle={...sharedType,fontWeight:font?.fontWeight??600,color:baseColor};// -------------------------------\n// Build segments\n// -------------------------------\nconst renderText=()=>{const lines=fullText.split(\"\\n\");return lines.map((line,lineIndex)=>{const parts=line.split(/(\\s+)/);const segments=[];let currentSegment={isHighlight:false,text:\"\"};parts.forEach(part=>{if(/^\\s+$/.test(part)){currentSegment.text+=part;}else{const wordOnly=part.replace(/[^\\w\\s]/g,\"\").toLowerCase();const shouldHighlight=highlightWords.includes(wordOnly);if(shouldHighlight===currentSegment.isHighlight){currentSegment.text+=part;}else{if(currentSegment.text)segments.push({...currentSegment});currentSegment={isHighlight:shouldHighlight,text:part};}}});if(currentSegment.text)segments.push(currentSegment);return /*#__PURE__*/_jsx(\"div\",{children:segments.map((segment,segIndex)=>segment.isHighlight?/*#__PURE__*/_jsx(\"span\",{style:gradientStyle,children:segment.text},segIndex):/*#__PURE__*/_jsx(\"span\",{style:plainStyle,children:segment.text},segIndex))},lineIndex);});};return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:`\n                @keyframes gradientMove {\n                    0% { background-position: ${getAnimationPositions()[0]}; }\n                    100% { background-position: ${getAnimationPositions()[1]}; }\n                }\n            `}),/*#__PURE__*/_jsx(\"div\",{style:{textAlign:align,whiteSpace:\"pre-wrap\"},children:renderText()})]});}// --------- Controls ----------\naddPropertyControls(SentenceWithGradientHighlight,{fullText:{type:ControlType.String,title:\"Full Text\",defaultValue:\"Start every day knowing what matters\",displayTextArea:true},wordsToHighlight:{type:ControlType.String,title:\"Highlight Words\",defaultValue:\"matters\",description:\"Comma-separated words to highlight\"},font:{type:ControlType.Font,title:\"Font\"},fontSize:{type:ControlType.Number,title:\"Font Size\",defaultValue:48,min:.1,max:200,step:.1},fontSizeUnit:{type:ControlType.SegmentedEnum,title:\"Unit\",options:[\"px\",\"rem\"],optionTitles:[\"px\",\"rem\"],defaultValue:\"px\"},lineHeight:{type:ControlType.Number,title:\"Line Height\",defaultValue:1.1,min:.5,max:3,step:.05},letterSpacing:{type:ControlType.Number,title:\"Letter Spacing (em)\",defaultValue:0,min:-.5,max:.5,step:.01},align:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\"},baseColor:{type:ControlType.Color,title:\"Base Color\",defaultValue:\"#000000\"},animationType:{type:ControlType.Enum,title:\"Animation Type\",options:[\"static\",\"hover\",\"infinite\"],optionTitles:[\"Static\",\"On Hover\",\"Infinite\"],defaultValue:\"infinite\"},direction:{type:ControlType.Enum,title:\"Direction\",options:[\"leftToRight\",\"rightToLeft\"],optionTitles:[\"Left to Right\",\"Right to Left\"],defaultValue:\"rightToLeft\"},speed:{type:ControlType.Number,title:\"Speed\",min:1,max:25,defaultValue:8},gradientDirection:{type:ControlType.Number,title:\"Gradient Angle\",min:0,max:360,defaultValue:45},useThreeColors:{type:ControlType.Boolean,title:\"Use Three Colors\",defaultValue:false},color1:{type:ControlType.Color,title:\"Color 1\",defaultValue:\"#FF6B6B\"},color2:{type:ControlType.Color,title:\"Color 2\",defaultValue:\"#4ECDC4\"},color3:{type:ControlType.Color,title:\"Color 3\",defaultValue:\"#45B7D1\",hidden(props){return!props.useThreeColors;}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SentenceWithGradientHighlight\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientTextSentence.map"],"mappings":"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"}