{"version":3,"file":"Gradient_Text.CsYmlIQ4.mjs","names":["useMemo"],"sources":["https:/framerusercontent.com/modules/qPzEPQMvUyCtZeGRzsGV/u3k8EdTWjl7bAaebU9pQ/Gradient_Text.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useMemo,createElement}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const htmlTagOptions=[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\",\"span\",\"div\"];const gradientTypes=[\"linear\",\"radial\"];// Predefined gradient presets\nconst gradientPresets={sunset:[{color:\"#FF6B6B\",name:\"Coral\"},{color:\"#FFE66D\",name:\"Yellow\"},{color:\"#FF8E53\",name:\"Orange\"}],ocean:[{color:\"#667eea\",name:\"Purple\"},{color:\"#764ba2\",name:\"Deep Purple\"}],rainbow:[{color:\"#FF0000\",name:\"Red\"},{color:\"#FF7F00\",name:\"Orange\"},{color:\"#FFFF00\",name:\"Yellow\"},{color:\"#00FF00\",name:\"Green\"},{color:\"#0000FF\",name:\"Blue\"},{color:\"#8B00FF\",name:\"Violet\"}],neon:[{color:\"#00FFFF\",name:\"Cyan\"},{color:\"#FF00FF\",name:\"Magenta\"},{color:\"#FFFF00\",name:\"Yellow\"}],forest:[{color:\"#134E5E\",name:\"Dark Teal\"},{color:\"#71B280\",name:\"Green\"}],fire:[{color:\"#FF416C\",name:\"Pink\"},{color:\"#FF4B2B\",name:\"Red\"}]};/**\n * Gradient Text Component\n *\n * Creates stunning gradient effects with multiple gradient types, presets,\n * custom positioning, text effects, and full accessibility support.\n * Features advanced SVG rendering for canvas compatibility.\n *\n * @framerDisableUnlink\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 60\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function GradientText({content=\"Create amazing gradient text effects\",htmlTag=\"h1\",targetWords=\"gradient\",colorStops=[{color:\"#3B82F6\",name:\"Blue\"},{color:\"#EF4444\",name:\"Red\"}],gradientType=\"linear\",colorSource=\"custom\",gradientPreset=\"sunset\",gradientDirection=135,textStyles={typography:{fontSize:\"42px\",variant:\"Bold\",letterSpacing:\"-0.02em\",lineHeight:\"1.1em\",textAlign:\"left\"},baseTextColor:\"#1F2937\"},style}){// Process target words into searchable array\nconst wordTargets=useMemo(()=>{if(!targetWords)return[];if(Array.isArray(targetWords))return targetWords;return targetWords.split(\",\").map(word=>word.trim()).filter(word=>word.length>0);},[targetWords]);// Use preset colors if selected, otherwise use custom colors\nconst activeColorStops=useMemo(()=>{if(colorSource===\"preset\"&&gradientPreset&&gradientPreset!==\"custom\"){return gradientPresets[gradientPreset]||colorStops||[];}return colorStops||[];},[colorSource,gradientPreset,colorStops]);// Create unique identifier for SVG gradient definition\nconst uniqueGradientId=useMemo(()=>`grad-${Math.random().toString(36).substring(2,11)}`,[]);// Transform gradient direction to SVG coordinates based on type\nconst calculateGradientVector=(degrees,type)=>{if(type===\"radial\"){return{cx:50,cy:50,r:50};}// Linear gradient (default)\nconst radianAngle=degrees*Math.PI/180;const startX=Math.round(50+50*Math.cos(radianAngle+Math.PI));const startY=Math.round(50+50*Math.sin(radianAngle+Math.PI));const endX=Math.round(50+50*Math.cos(radianAngle));const endY=Math.round(50+50*Math.sin(radianAngle));return{startX,startY,endX,endY};};const gradientVector=calculateGradientVector(gradientDirection,gradientType);// Build SVG gradient stops from color array - always evenly distributed\nconst buildSVGColorStops=colorArray=>{if(!colorArray?.length){return`<stop offset=\"0%\" stop-color=\"#3B82F6\" />\n                    <stop offset=\"100%\" stop-color=\"#EF4444\" />`;}if(colorArray.length===1){return`<stop offset=\"0%\" stop-color=\"${colorArray[0].color}\" />\n                    <stop offset=\"100%\" stop-color=\"${colorArray[0].color}\" />`;}return colorArray.map((colorStop,idx)=>{// Always distribute evenly\nconst position=Math.round(idx/(colorArray.length-1)*100);return`<stop offset=\"${position}%\" stop-color=\"${colorStop.color}\" />`;}).join(\"\\n                            \");};// Generate SVG gradient definition based on type\nconst generateSVGGradient=(colorArray,type,vector)=>{const stops=buildSVGColorStops(colorArray);switch(type){case\"radial\":return`<radialGradient id=\"${uniqueGradientId}\" cx=\"${vector.cx}%\" cy=\"${vector.cy}%\" r=\"${vector.r}%\">\n                            ${stops}\n                        </radialGradient>`;default:return`<linearGradient id=\"${uniqueGradientId}\" x1=\"${vector.startX}%\" y1=\"${vector.startY}%\" x2=\"${vector.endX}%\" y2=\"${vector.endY}%\">\n                            ${stops}\n                        </linearGradient>`;}};// Create CSS gradient fallback for older browsers - always evenly distributed\nconst buildCSSGradient=(colorArray,direction,type)=>{if(!colorArray?.length){return`linear-gradient(${direction}deg, #3B82F6, #EF4444)`;}if(colorArray.length===1){return colorArray[0].color;}const stops=colorArray.map((colorStop,idx)=>{// For 2 colors, don't specify positions (browser handles evenly)\n// For 3+ colors, specify even positions\nconst position=colorArray.length===2?undefined:Math.round(idx/(colorArray.length-1)*100);return position!==undefined?`${colorStop.color} ${position}%`:colorStop.color;});switch(type){case\"radial\":return`radial-gradient(circle, ${stops.join(\", \")})`;default:return`linear-gradient(${direction}deg, ${stops.join(\", \")})`;}};// Build text shadow CSS\nconst buildTextShadow=shadowConfig=>{if(!shadowConfig||!shadowConfig.enabled)return\"none\";const{offsetX=0,offsetY=0,blur=0,color=\"#000000\"}=shadowConfig;return`${offsetX}px ${offsetY}px ${blur}px ${color}`;};// Build text stroke CSS\nconst buildTextStroke=strokeConfig=>{if(!strokeConfig||!strokeConfig.enabled)return{};const{width=1,color=\"#000000\"}=strokeConfig;return{WebkitTextStroke:`${width}px ${color}`,textStroke:`${width}px ${color}`};};// Process and render text with gradient highlights\nconst processTextContent=()=>{if(!content)return\"\";if(!wordTargets.length){return content;}// Improved regex with lookahead for proper punctuation handling\nconst wordPattern=new RegExp(wordTargets.map(word=>{const escaped=word.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\");// Use lookahead to match word boundaries while preserving punctuation\nreturn`\\\\b${escaped}(?=[\\\\s,\\\\.!?;:]|$)`;}).join(\"|\"),\"gi\");// Split text while preserving matched words\nconst textSegments=content.split(wordPattern);const matchedWords=content.match(wordPattern)||[];const elements=[];let wordIndex=0;for(let i=0;i<textSegments.length;i++){// Add regular text segments\nif(textSegments[i]){elements.push(/*#__PURE__*/_jsx(\"span\",{children:textSegments[i]},`segment-${i}`));}// Add gradient-styled matched words\nif(wordIndex<matchedWords.length&&i<textSegments.length-1){const gradientStyles={background:`url(\"data:image/svg+xml;base64,${btoa(`\n                        <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"100\" height=\"100\" viewBox=\"0 0 100 100\">\n                            <defs>\n                                ${generateSVGGradient(activeColorStops,gradientType,gradientVector)}\n                            </defs>\n                            <rect width=\"100\" height=\"100\" fill=\"url(#${uniqueGradientId})\" />\n                        </svg>\n                    `)}\")`,WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\",backgroundClip:\"text\",color:\"transparent\",display:\"inline-block\",backgroundImage:buildCSSGradient(activeColorStops,gradientDirection,gradientType),textShadow:buildTextShadow(textStyles?.textShadow),...buildTextStroke(textStyles?.textStroke)};elements.push(/*#__PURE__*/_jsx(\"span\",{style:gradientStyles,\"aria-label\":`${matchedWords[wordIndex]} (highlighted)`,children:matchedWords[wordIndex]},`gradient-${wordIndex}`));wordIndex++;}}return elements;};// Select appropriate HTML element\nconst ElementTag=htmlTagOptions.includes(htmlTag)?htmlTag:\"h1\";// Determine layout mode\nconst isContainerWidth=style?.width===\"100%\";// Compile final element styles - FIXED: Spread entire typography object\nconst finalStyles={...textStyles?.typography,...style,margin:0,width:isContainerWidth?\"100%\":\"max-content\",minWidth:isContainerWidth?undefined:\"max-content\",display:isContainerWidth?\"block\":\"inline-block\",color:textStyles?.baseTextColor||\"#1F2937\",textShadow:buildTextShadow(textStyles?.textShadow),...buildTextStroke(textStyles?.textStroke)};// Add accessibility attributes automatically from content\nconst accessibilityProps={\"aria-label\":content?`${content} - Gradient text with highlighted terms`:undefined,\"aria-describedby\":content?`Text content with gradient highlights on: ${targetWords}`:undefined,role:\"text\"};return /*#__PURE__*/createElement(ElementTag,{style:finalStyles,...accessibilityProps},processTextContent());}// Component display name for Framer\nGradientText.displayName=\"Gradient Text\";// Enhanced property controls with reorganized structure\naddPropertyControls(GradientText,{// Content Section\ncontent:{type:ControlType.String,title:\"Content\",defaultValue:\"Create amazing gradient text effects\",displayTextArea:true,description:\"The text content that will be displayed with gradient highlights\"},htmlTag:{type:ControlType.Enum,title:\"Tag\",options:htmlTagOptions,optionTitles:[\"Heading 1\",\"Heading 2\",\"Heading 3\",\"Heading 4\",\"Heading 5\",\"Heading 6\",\"Paragraph\",\"Span\",\"Div\"],defaultValue:\"h1\",description:\"HTML semantic element for accessibility and SEO\"},targetWords:{type:ControlType.String,title:\"Highlight Terms\",placeholder:\"amazing, gradient, effects\",defaultValue:\"gradient\",description:\"Comma-separated list of words to highlight with gradient. Matching is case-insensitive. Works with punctuation.\"},// Gradient Type Section\ngradientType:{type:ControlType.Enum,title:\"Gradient Type\",options:gradientTypes,optionTitles:[\"Linear\",\"Radial\"],defaultValue:\"linear\",displaySegmentedControl:true,description:\"Choose the type of gradient effect to apply\"},colorSource:{type:ControlType.Enum,title:\"Color Source\",options:[\"custom\",\"preset\"],optionTitles:[\"Custom Palette\",\"Preset Gradients\"],defaultValue:\"custom\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\",description:\"Choose how to define gradient colors\"},gradientPreset:{type:ControlType.Enum,title:\"Gradient Presets\",options:[\"sunset\",\"ocean\",\"rainbow\",\"neon\",\"forest\",\"fire\"],optionTitles:[\"Sunset\",\"Ocean\",\"Rainbow\",\"Neon\",\"Forest\",\"Fire\"],defaultValue:\"sunset\",hidden:props=>props.colorSource!==\"preset\",description:\"Choose from popular gradient combinations\"},// Custom Color Palette Array\ncolorStops:{type:ControlType.Array,title:\"Custom Color Palette\",control:{type:ControlType.Object,icon:\"color\",controls:{color:{type:ControlType.Color,title:\"Color Value\",defaultValue:\"#3B82F6\"},name:{type:ControlType.String,title:\"Color Name\",placeholder:\"e.g. Primary Blue\",defaultValue:\"\",description:\"Optional name for better organization\"}}},defaultValue:[{color:\"#3B82F6\",name:\"Blue\"},{color:\"#EF4444\",name:\"Red\"}],maxCount:8,hidden:props=>props.colorSource!==\"custom\",description:\"Define multiple colors for your gradient. Colors are automatically distributed evenly across the gradient.\"},gradientDirection:{type:ControlType.Number,title:\"Gradient Direction\",defaultValue:135,min:0,max:360,unit:\"\\xb0\",step:15,displayStepper:false,hidden:props=>props.gradientType!==\"linear\",description:\"Angle of the gradient in degrees (0\\xb0 = right, 90\\xb0 = down, 180\\xb0 = left, 270\\xb0 = up)\"},// Text Styles Object\ntextStyles:{type:ControlType.Object,title:\"Text Styles\",description:\"\\nMade with ❤️ by [Soyeb](https://framer.link/project)\",optional:false,buttonTitle:\"Customize Text\",controls:{typography:{type:ControlType.Font,title:\"Typography\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"42px\",variant:\"Bold\",letterSpacing:\"-0.02em\",lineHeight:\"1.1em\",textAlign:\"left\"}},baseTextColor:{type:ControlType.Color,title:\"Base Text Color\",defaultValue:\"#1F2937\",description:\"Color applied to non-highlighted text\"},textShadow:{type:ControlType.Object,title:\"Text Shadow\",optional:true,buttonTitle:\"Add Shadow\",controls:{enabled:{type:ControlType.Boolean,title:\"Enable Shadow\",defaultValue:false},offsetX:{type:ControlType.Number,title:\"X Offset\",defaultValue:2,step:1,hidden:props=>!props.enabled},offsetY:{type:ControlType.Number,title:\"Y Offset\",defaultValue:2,step:1,hidden:props=>!props.enabled},blur:{type:ControlType.Number,title:\"Blur Radius\",defaultValue:4,min:0,step:1,hidden:props=>!props.enabled},color:{type:ControlType.Color,title:\"Shadow Color\",defaultValue:\"rgba(0,0,0,0.3)\",hidden:props=>!props.enabled}},description:\"Add drop shadow effect to text\"},textStroke:{type:ControlType.Object,title:\"Text Outline\",optional:true,buttonTitle:\"Add Outline\",controls:{enabled:{type:ControlType.Boolean,title:\"Enable Outline\",defaultValue:false},width:{type:ControlType.Number,title:\"Stroke Width\",defaultValue:1,min:0,max:10,step:.5,hidden:props=>!props.enabled},color:{type:ControlType.Color,title:\"Stroke Color\",defaultValue:\"#000000\",hidden:props=>!props.enabled}},description:\"Add outline/stroke effect to text\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientText\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"60\",\"framerSupportedLayoutWidth\":\"any\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 400\",\"framerSupportedLayoutHeight\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Gradient_Text.map"],"mappings":"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"}