{"version":3,"file":"GradientHeadline_1.DcYdG9we.mjs","names":["useMemo"],"sources":["https:/framerusercontent.com/modules/vLKD4XiYBchIErqrpzoL/TquL3YnWGlV5agFPUvCP/GradientHeadline_1.js"],"sourcesContent":["// Headline component with gradient highlight for selected words, tag selection, full font controls, and reusable text via prop\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useMemo,createElement}from\"react\";import{addPropertyControls,ControlType}from\"framer\";const tagOptions=[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\"];/**\n * Headline with Gradient Highlight\n *\n * - Select tag (h1-h6, p)\n * - Full font controls\n * - Highlight single/multiple words with gradient\n * - Text is reusable via prop\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function GradientHeadline(props){const{text,tag,highlightWords,gradientFrom,gradientTo,gradientAngle,font,style,textColor}=props;// Parse highlightWords (comma-separated or array)\nconst highlightList=useMemo(()=>{if(!highlightWords)return[];if(Array.isArray(highlightWords))return highlightWords;return highlightWords.split(\",\").map(w=>w.trim()).filter(Boolean);},[highlightWords]);// Split text into words, preserving spaces\nconst wordRegex=/\\S+|\\s+/g;const words=useMemo(()=>{if(!text)return[];return text.match(wordRegex)||[];},[text]);// Render with highlights\nconst renderWords=()=>{if(!highlightList.length)return words.map((word,i)=>/*#__PURE__*/_jsx(\"span\",{children:word},i));// Join all words into a string, find all highlight substrings, and split accordingly\nlet result=[];let str=text;let lastIndex=0;// Build a regex to match any of the highlight phrases (escape special chars)\nconst highlightRegex=new RegExp(highlightList.map(w=>w.replace(/[.*+?^${}()|[\\]\\\\]/g,\"\\\\$&\")).join(\"|\"),\"gi\");let match;let idx=0;while((match=highlightRegex.exec(str))!==null){if(match.index>lastIndex){result.push(/*#__PURE__*/_jsx(\"span\",{children:str.slice(lastIndex,match.index)},idx++));}result.push(/*#__PURE__*/_jsx(\"span\",{style:{backgroundImage:`linear-gradient(${gradientAngle}deg, ${gradientFrom}, ${gradientTo})`,WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\",backgroundClip:\"text\",color:undefined,fontWeight:font?.variant?.includes(\"Bold\")?\"bold\":undefined},children:match[0]},idx++));lastIndex=match.index+match[0].length;}if(lastIndex<str.length){result.push(/*#__PURE__*/_jsx(\"span\",{children:str.slice(lastIndex)},idx++));}return result;};const Tag=tagOptions.includes(tag)?tag:\"h1\";// Check if width is set to 100% (fill mode) or auto (fit content mode)\nconst isFixedWidth=style?.width===\"100%\";const elementStyle={...style,...font,margin:0,width:isFixedWidth?\"100%\":\"max-content\",minWidth:isFixedWidth?undefined:\"max-content\",display:isFixedWidth?\"block\":\"inline-block\",color:textColor};return /*#__PURE__*/createElement(Tag,{style:elementStyle},renderWords());}addPropertyControls(GradientHeadline,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"This is a gradient headline\",displayTextArea:true},tag:{type:ControlType.Enum,title:\"Tag\",options:tagOptions,optionTitles:tagOptions.map(t=>t.toUpperCase()),defaultValue:\"h1\"},highlightWords:{type:ControlType.String,title:\"Highlight Words\",placeholder:\"word1, word2\",defaultValue:\"gradient\",description:\"Comma-separated words to highlight\"},gradientFrom:{type:ControlType.Color,title:\"Gradient From\",defaultValue:\"#0099FF\"},gradientTo:{type:ControlType.Color,title:\"Gradient To\",defaultValue:\"#FF5588\"},gradientAngle:{type:ControlType.Number,title:\"Gradient Angle\",defaultValue:90,min:0,max:360,unit:\"deg\",step:1,displayStepper:true},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"40px\",variant:\"Bold\",letterSpacing:\"-0.04em\",lineHeight:\"1em\"}},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#000000\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GradientHeadline\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GradientHeadline_1.map"],"mappings":"iLAWG,SAAwB,EAAiB,EAAM,CAAC,GAAK,CAAC,OAAK,MAAI,iBAAe,eAAa,aAAW,gBAAc,OAAK,QAAM,aAAW,EACvI,EAAcA,MAAiB,EAA2B,MAAM,QAAQ,CAAc,EAAS,EAAsB,EAAe,MAAM,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,OAAO,EAA1H,CAAC,EAA6H,CAAC,CAAc,CAAC,EAClM,EAAU,WAAiB,EAAMA,MAAiB,GAAqB,EAAK,MAAM,CAAS,GAA9B,CAAC,EAAqC,CAAC,CAAI,CAAC,EACzG,MAAgB,CAAC,GAAG,CAAC,EAAc,OAAO,OAAO,EAAM,KAAK,EAAK,IAAiB,EAAK,OAAO,CAAC,SAAS,CAAI,EAAE,CAAC,CAAC,EACtH,IAAI,EAAO,CAAC,EAAM,EAAI,EAAS,EAAU,EACnC,EAAe,IAAI,OAAO,EAAc,IAAI,GAAG,EAAE,QAAQ,sBAAsB,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE,IAAI,EAAM,EAAU,EAAI,EAAE,MAAO,EAAM,EAAe,KAAK,CAAG,KAAK,MAAS,EAAM,MAAM,GAAW,EAAO,KAAkB,EAAK,OAAO,CAAC,SAAS,EAAI,MAAM,EAAU,EAAM,KAAK,CAAC,EAAE,GAAK,CAAC,EAAG,EAAO,KAAkB,EAAK,OAAO,CAAC,MAAM,CAAC,gBAAgB,mBAAmB,EAAc,OAAO,EAAa,IAAI,EAAW,GAAG,qBAAqB,OAAO,oBAAoB,cAAc,eAAe,OAAO,MAAM,IAAA,GAAU,WAAW,GAAM,SAAS,SAAS,MAAM,EAAE,OAAO,IAAA,EAAS,EAAE,SAAS,EAAM,EAAE,EAAE,GAAK,CAAC,EAAE,EAAU,EAAM,MAAM,EAAM,EAAE,CAAC,OAA+G,OAApG,EAAU,EAAI,QAAQ,EAAO,KAAkB,EAAK,OAAO,CAAC,SAAS,EAAI,MAAM,CAAS,CAAC,EAAE,GAAK,CAAC,EAAU,CAAO,EAAQ,EAAI,EAAW,SAAS,CAAG,EAAE,EAAI,KACpyB,EAAa,GAAO,QAAQ,OAAwM,OAAoB,EAAc,EAAI,CAAC,MAAM,CAA1N,GAAG,EAAM,GAAG,EAAK,OAAO,EAAE,MAAM,EAAa,OAAO,cAAc,SAAS,EAAa,IAAA,GAAU,cAAc,QAAQ,EAAa,QAAQ,eAAe,MAAM,CAAmE,CAAC,EAAE,EAAY,CAAC,CAAE,mBAhB1Q,IAAyC,IAAoD,EAAO,EAAW,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,GAAG,EAgB0H,EAAoB,EAAiB,CAAC,KAAK,CAAC,KAAK,EAAY,OAAO,MAAM,OAAO,aAAa,8BAA8B,gBAAgB,EAAI,EAAE,IAAI,CAAC,KAAK,EAAY,KAAK,MAAM,MAAM,QAAQ,EAAW,aAAa,EAAW,IAAI,GAAG,EAAE,YAAY,CAAC,EAAE,aAAa,IAAI,EAAE,eAAe,CAAC,KAAK,EAAY,OAAO,MAAM,kBAAkB,YAAY,eAAe,aAAa,WAAW,YAAY,oCAAoC,EAAE,aAAa,CAAC,KAAK,EAAY,MAAM,MAAM,gBAAgB,aAAa,SAAS,EAAE,WAAW,CAAC,KAAK,EAAY,MAAM,MAAM,cAAc,aAAa,SAAS,EAAE,cAAc,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,GAAG,IAAI,EAAE,IAAI,IAAI,KAAK,MAAM,KAAK,EAAE,eAAe,EAAI,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,OAAO,cAAc,UAAU,WAAW,KAAK,CAAC,EAAE,UAAU,CAAC,KAAK,EAAY,MAAM,MAAM,aAAa,aAAa,SAAS,CAAC,CAAC"}