{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/My8LfYggTppvuOAzTkRH/iKbElkRzyRvkI56fRNrM/TextHighlighter.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";import{useEffect,useState}from\"react\";/**\n * @copyright \u00A9framersnippets.com\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any\n * @framerIntrinsicWidth 221\n * @framerDisableUnlink\n **/export default function TextHighlighter(props){const{text,font,color,highlights,textWrap,tag}=props;const[imagesLoaded,setImagesLoaded]=useState({});useEffect(()=>{let loadedImages={};highlights.forEach((highlight,index)=>{if(highlight.useImage&&highlight.customImage){const img=new Image;img.onload=()=>setImagesLoaded(prev=>({...prev,[index]:true}));img.src=highlight.customImage;loadedImages[index]=false;}});setImagesLoaded(loadedImages);},[highlights]);const renderTextWithHighlight=()=>{const regex=new RegExp(`(${highlights.map(h=>h.highlightText).join(\"|\")})`,\"gi\");const parts=text.split(regex);return parts.map((part,index)=>{const highlight=highlights.find(h=>h.highlightText.toLowerCase()===part.toLowerCase());if(highlight){const image=highlight.useImage&&imagesLoaded[highlights.indexOf(highlight)]&&/*#__PURE__*/_jsx(\"img\",{src:highlight.customImage,alt:\"\",style:{width:`${highlight.size}px`,height:\"auto\",verticalAlign:\"middle\",display:\"inline-block\",marginRight:highlight.imagePlacement===\"left\"?`${highlight.gap}px`:0,marginLeft:highlight.imagePlacement===\"right\"?`${highlight.gap}px`:0}});return /*#__PURE__*/_jsxs(\"span\",{style:{position:\"relative\",zIndex:highlight.imagePlacement===\"center\"?highlight.Zindex+1:\"auto\",display:\"inline\"},children:[highlight.imagePlacement===\"left\"&&image,/*#__PURE__*/_jsx(\"span\",{style:{color:highlight.useColor?highlight.color:\"inherit\",position:\"relative\"},children:part}),highlight.imagePlacement===\"right\"&&image,highlight.imagePlacement===\"center\"&&highlight.useImage&&/*#__PURE__*/_jsx(\"img\",{src:highlight.customImage,alt:\"\",style:{position:\"absolute\",width:`${highlight.size}px`,height:\"auto\",top:`${highlight.top}px`,left:`${highlight.left}px`,zIndex:highlight.Zindex,display:\"block\"}})]},index);}return part;});};const Tag=tag||\"p\";return /*#__PURE__*/_jsx(motion.div,{style:{...font,display:\"block\",overflow:\"visible\",color:color,alignItems:\"baseline\",whiteSpace:\"normal\",wordWrap:\"break-word\",textWrap:textWrap?\"balance\":\"normal\"},children:/*#__PURE__*/_jsx(Tag,{style:{all:\"unset\",fontSize:font.fontSize},children:renderTextWithHighlight()})},textWrap);}TextHighlighter.defaultProps={text:\"Create magical headlines that captivate your audience.\",font:{fontSize:16},color:\"#000\",highlights:[{highlightText:\"magical\",useColor:false,color:\"\",useImage:false,customImage:\"\",imagePlacement:\"right\",size:15,gap:5,top:-5,left:0,Zindex:-1}],textWrap:true,tag:\"h1\"};addPropertyControls(TextHighlighter,{text:{type:ControlType.String,title:\"Content\",placeholder:\"Your content..\",displayTextArea:true},font:{type:ControlType.Font,controls:\"extended\",displayFontSize:true,defaultFontType:\"sans-serif\",defaultValue:{fontSize:15,lineHeight:1.4,letterSpacing:0}},color:{type:ControlType.Color,title:\"Color\"},highlights:{type:ControlType.Array,title:\"Highlights\",propertyControl:{type:ControlType.Object,controls:{highlightText:{type:ControlType.String,title:\"Text\",placeholder:\"Your words..\",description:\"Text or word to highlight\"},useColor:{type:ControlType.Boolean,title:\"Color\",defaultValue:false},color:{type:ControlType.Color,title:\"\u200E\",defaultValue:\"#0599ff\",hidden:props=>!props.useColor},useImage:{type:ControlType.Boolean,title:\"Image\",defaultValue:false},customImage:{type:ControlType.Image,title:\"\u200E\",hidden:props=>!props.useImage},imagePlacement:{type:ControlType.Enum,title:\"\u200E\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],displaySegmentedControl:true,defaultValue:\"right\",hidden:props=>!props.useImage},size:{type:ControlType.Number,title:\"Size\",min:1,max:2e3,step:1,defaultValue:15,displayStepper:true,hidden:props=>!props.useImage},gap:{type:ControlType.Number,title:\"Gap\",min:0,max:100,step:1,defaultValue:5,displayStepper:true,hidden:props=>!props.useImage||props.imagePlacement===\"center\"},top:{type:ControlType.Number,title:\"Top\",min:-100,max:100,step:1,defaultValue:-5,displayStepper:true,hidden:props=>!props.useImage||props.imagePlacement!==\"center\"},left:{type:ControlType.Number,title:\"Left\",min:-100,max:100,step:1,defaultValue:0,displayStepper:true,hidden:props=>!props.useImage||props.imagePlacement!==\"center\"},Zindex:{type:ControlType.Number,title:\"Z Index\",min:-1,max:50,step:1,defaultValue:0,displayStepper:true,hidden:props=>!props.useImage||props.imagePlacement!==\"center\"}}}},textWrap:{type:ControlType.Boolean,title:\"Balance\",defaultValue:true},tag:{type:ControlType.Enum,title:\"Tag\",options:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\",\"span\"],optionTitles:[\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"p\",\"span\"],defaultValue:\"h1\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TextHighlighter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"any\",\"framerIntrinsicWidth\":\"221\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TextHighlighter.map"],
  "mappings": "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",
  "names": ["TextHighlighter", "props", "text", "font", "color", "highlights", "textWrap", "tag", "imagesLoaded", "setImagesLoaded", "ye", "ue", "loadedImages", "highlight", "index", "img", "prev", "renderTextWithHighlight", "regex", "h", "part", "image", "p", "u", "Tag", "motion", "addPropertyControls", "ControlType"]
}
