{"version":3,"file":"SelectiveTextTypeEffect.C-9hr_CU.mjs","names":["React.useState","React.useRef","React.useMemo","React.useCallback","__esmMin","ne","init_npm_react_18_3_1","pe","_e","de","init_jsx_runtime","p","ce","motion","init_framer_motion_DhsWWWsN","addPropertyControls","init_framer_DcxuU94H","ControlType","SelectiveTextTypeEffect","asTag","rest","props","cursorChar","cursorMode","customCursorCharacter","cursorCharacterPreset","displayedText","setDisplayedText","currentCharIndex","setCurrentCharIndex","isDeleting","setIsDeleting","currentTextIndex","setCurrentTextIndex","isVisible","setIsVisible","startOnVisible","currentWordIndex","setCurrentWordIndex","firstColor","textColors","resolvedCursorColor","cursorColorMode","cursorCustomColor","containerRef","As","parsedSegments","regex","segments","lastIndex","match","text","typedSegments","s","allWords","words","segmentWords","segment","w","longestWord","current","longest","getRandomSpeed","variableSpeed","typingSpeed","lo","min","hi","max","getCurrentTextColor","el","obs","entries","entry","timeout","currentWord","processed","reverseMode","run","loop","i","pauseDuration","prev","deletingSpeed","initialDelay","baseStyle","clipOverflow","style","shouldHideCursor","hideCursorWhileTyping","typedIndex","className","showCursor","cursorClassName","cursorBlinkDuration","idx","init_SelectiveTextTypeEffect"],"sources":["https:/framerusercontent.com/modules/pdNuSOCJBUAoTwBHznuF/lTaWQG471mOwul6drIIl/SelectiveTextTypeEffect.js"],"sourcesContent":["// Create a component that allows selecting which text segments (marked with [ and ]) should have the typing effect\n// Animation is per letter, but height is measured based on the longest word in brackets\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import*as React from\"react\";import{motion}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 120\n */export default function SelectiveTextTypeEffect(props){const{text,as:asTag,typingSpeed,initialDelay,pauseDuration,deletingSpeed,loop,className,showCursor,hideCursorWhileTyping,cursorMode,cursorCharacterPreset,customCursorCharacter,cursorClassName,cursorBlinkDuration,textColors,cursorColorMode,cursorCustomColor,variableSpeed,startOnVisible,reverseMode,style,...rest}=props;const cursorChar=cursorMode===\"custom\"?customCursorCharacter?.length?customCursorCharacter:\"|\":cursorCharacterPreset;const[displayedText,setDisplayedText]=React.useState(\"\");const[currentCharIndex,setCurrentCharIndex]=React.useState(0);const[isDeleting,setIsDeleting]=React.useState(false);const[currentTextIndex,setCurrentTextIndex]=React.useState(0);const[isVisible,setIsVisible]=React.useState(!startOnVisible);const[currentWordIndex,setCurrentWordIndex]=React.useState(0);const firstColor=textColors&&textColors[0]||\"#000000\";const resolvedCursorColor=cursorColorMode===\"custom\"&&cursorCustomColor?cursorCustomColor:firstColor;const containerRef=React.useRef(null);const As=asTag||\"div\";const parsedSegments=React.useMemo(()=>{const regex=/\\[([^\\]]+)\\]/g;const segments=[];let lastIndex=0;let match;while((match=regex.exec(text))!==null){if(match.index>lastIndex){segments.push({text:text.slice(lastIndex,match.index),isTyped:false});}segments.push({text:match[1],isTyped:true});lastIndex=regex.lastIndex;}if(lastIndex<text.length){segments.push({text:text.slice(lastIndex),isTyped:false});}return segments;},[text]);const typedSegments=React.useMemo(()=>parsedSegments.filter(s=>s.isTyped).map(s=>s.text),[parsedSegments]);// Split all typed segments into words\nconst allWords=React.useMemo(()=>{const words=[];typedSegments.forEach(segment=>{const segmentWords=segment.split(/(\\s+)/);words.push(...segmentWords.filter(w=>w.length>0));});return words;},[typedSegments]);// Find the longest word for height measurement\nconst longestWord=React.useMemo(()=>{if(allWords.length===0)return\"\";return allWords.reduce((longest,current)=>current.length>longest.length?current:longest,allWords[0]);},[allWords]);const getRandomSpeed=React.useCallback(()=>{if(!variableSpeed)return typingSpeed;const{min,max}=variableSpeed;const lo=Math.max(0,Number(min)||0);const hi=Math.max(lo,Number(max)||lo);return Math.random()*(hi-lo)+lo;},[variableSpeed,typingSpeed]);const getCurrentTextColor=React.useCallback(()=>{if(!textColors||textColors.length===0)return\"#000000\";return textColors[currentTextIndex%textColors.length];},[textColors,currentTextIndex]);React.useEffect(()=>{if(!startOnVisible||!containerRef.current)return;const el=containerRef.current;const obs=new IntersectionObserver(entries=>{entries.forEach(entry=>{if(entry.isIntersecting)setIsVisible(true);});},{threshold:.1});obs.observe(el);return()=>obs.disconnect();},[startOnVisible]);React.useEffect(()=>{if(!isVisible||allWords.length===0)return;let timeout;const currentWord=allWords[currentWordIndex]??\"\";const processed=reverseMode?currentWord.split(\"\").reverse().join(\"\"):currentWord;const run=()=>{if(isDeleting){if(displayedText.length===0){setIsDeleting(false);if(currentWordIndex===allWords.length-1&&!loop)return;setCurrentWordIndex(i=>(i+1)%allWords.length);setCurrentCharIndex(0);timeout=setTimeout(()=>{},pauseDuration);}else{timeout=setTimeout(()=>{setDisplayedText(prev=>prev.slice(0,-1));},deletingSpeed);}}else{if(currentCharIndex<processed.length){timeout=setTimeout(()=>{setDisplayedText(prev=>prev+processed[currentCharIndex]);setCurrentCharIndex(i=>i+1);},variableSpeed?getRandomSpeed():typingSpeed);}else{if(allWords.length>1&&(loop||currentWordIndex<allWords.length-1)){timeout=setTimeout(()=>setIsDeleting(true),pauseDuration);}}}};if(currentCharIndex===0&&!isDeleting&&displayedText===\"\"){timeout=setTimeout(run,initialDelay);}else{run();}return()=>timeout&&clearTimeout(timeout);},[isVisible,allWords,currentWordIndex,loop,currentCharIndex,displayedText,isDeleting,typingSpeed,deletingSpeed,pauseDuration,initialDelay,reverseMode,variableSpeed,getRandomSpeed]);const{clipOverflow=false}=props;const baseStyle={display:\"block\",width:\"100%\",height:\"100%\",whiteSpace:\"pre-wrap\",overflow:clipOverflow?\"hidden\":\"visible\",textAlign:props.textAlign,...style};const shouldHideCursor=hideCursorWhileTyping&&(currentCharIndex<(allWords[currentWordIndex]??\"\").length||isDeleting);let typedIndex=0;let wordIndex=0;return /*#__PURE__*/_jsx(As,{ref:containerRef,className:`text-type ${className||\"\"}`,style:baseStyle,...rest,children:parsedSegments.map((segment,idx)=>{if(segment.isTyped){const segmentWords=segment.text.split(/(\\s+)/).filter(w=>w.length>0);// Only render the typing container once for all typed segments\nif(typedIndex===0){typedIndex++;return /*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-block\",position:\"relative\",width:\"100%\",textAlign:\"center\"},children:[/*#__PURE__*/_jsx(\"span\",{style:{visibility:\"hidden\",display:\"inline\",color:getCurrentTextColor(),...props.font},children:longestWord}),/*#__PURE__*/_jsxs(\"span\",{style:{position:\"absolute\",top:0,left:0,width:\"100%\",textAlign:\"center\",display:\"inline-block\",color:getCurrentTextColor(),...props.font},children:[displayedText,showCursor&&!shouldHideCursor&&/*#__PURE__*/_jsx(motion.span,{className:`text-type__cursor ${cursorClassName||\"\"}`,style:{display:\"inline\",color:resolvedCursorColor,...props.font},animate:{opacity:[1,0]},transition:{duration:cursorBlinkDuration,repeat:Infinity,repeatType:\"reverse\",ease:\"easeInOut\"},children:cursorChar})]})]},idx);}// Skip rendering other typed segments since they all appear in the same position\nreturn null;}else{return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline\",color:getCurrentTextColor(),...props.font},children:segment.text},idx);}})});}SelectiveTextTypeEffect.displayName=\"Selective Text Type Effect\";addPropertyControls(SelectiveTextTypeEffect,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Hello, [Framer] folks! This is the [ultimate] typing text component. Wrap text in [brackets] to type it.\",displayTextArea:true,description:\"Use [brackets] to mark text that should be typed\"},font:{type:ControlType.Font,controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:16,lineHeight:1.2}},textColors:{type:ControlType.Array,title:\"Text Colors\",control:{type:ControlType.Color,defaultValue:\"#000000\"},defaultValue:[\"#000000\"],description:\"Cycles through colors per typed segment\"},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\",\"justify\"],optionTitles:[\"Left\",\"Center\",\"Right\",\"Justify\"],defaultValue:\"left\"},as:{type:ControlType.Enum,title:\"Tag\",options:[\"div\",\"p\",\"span\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],optionTitles:[\"div\",\"p\",\"span\",\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\"],defaultValue:\"p\"},typingSpeed:{type:ControlType.Number,title:\"Type (ms)\",min:1,max:500,step:1,defaultValue:50,description:\"Time between characters\"},deletingSpeed:{type:ControlType.Number,title:\"Delete (ms)\",min:1,max:500,step:1,defaultValue:30,description:\"Time between deletions\"},initialDelay:{type:ControlType.Number,title:\"Delay (ms)\",min:0,max:5e3,step:10,defaultValue:0,description:\"Waiting time before starting\"},pauseDuration:{type:ControlType.Number,title:\"Pause (ms)\",min:0,max:1e4,step:50,defaultValue:2e3,description:\"Waiting time before deleting/next\"},loop:{type:ControlType.Boolean,title:\"Loop\",defaultValue:true},reverseMode:{type:ControlType.Boolean,title:\"Reverse text\",defaultValue:false},startOnVisible:{type:ControlType.Boolean,title:\"Start on visible\",defaultValue:false,description:\"Begin typing only when in view\"},showCursor:{type:ControlType.Boolean,title:\"Show cursor\",defaultValue:true},cursorMode:{type:ControlType.Enum,title:\"Cursor\",options:[\"preset\",\"custom\"],optionTitles:[\"Preset\",\"Custom\"],defaultValue:\"preset\",hidden:p=>!p.showCursor},cursorCharacterPreset:{type:ControlType.Enum,title:\"Preset\",options:[\"|\",\"_\",\"‖\",\"❚\",\"▋\",\"▌\",\"█\"],optionTitles:[\"Pipe |\",\"Underscore _\",\"Double Bar ‖\",\"Block ❚\",\"Left Half ▋\",\"Right Half ▌\",\"Full Block █\"],defaultValue:\"|\",hidden:p=>!p.showCursor||p.cursorMode!==\"preset\"},customCursorCharacter:{type:ControlType.String,title:\"Custom char\",placeholder:\"Any character(s)\",defaultValue:\"|\",hidden:p=>!p.showCursor||p.cursorMode!==\"custom\"},cursorColorMode:{type:ControlType.Enum,title:\"Cursor color\",options:[\"matchFirst\",\"custom\"],optionTitles:[\"Match first color\",\"Custom\"],defaultValue:\"matchFirst\",hidden:p=>!p.showCursor},cursorCustomColor:{type:ControlType.Color,title:\"Custom color\",optional:true,hidden:p=>!p.showCursor||p.cursorColorMode!==\"custom\"},cursorBlinkDuration:{type:ControlType.Number,title:\"Blink (s)\",min:.05,max:2,step:.05,defaultValue:.5,hidden:p=>!p.showCursor},hideCursorWhileTyping:{type:ControlType.Boolean,title:\"Hide while typing\",defaultValue:false,hidden:p=>!p.showCursor},variableSpeed:{type:ControlType.Object,title:\"Variable speed\",optional:true,controls:{min:{type:ControlType.Number,title:\"Min (ms)\",min:1,max:500,step:1,defaultValue:30},max:{type:ControlType.Number,title:\"Max (ms)\",min:1,max:500,step:1,defaultValue:80}},description:\"Random delay between characters\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"SelectiveTextTypeEffect\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"120\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"600\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SelectiveTextTypeEffect.map"],"mappings":"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"}