{"version":3,"file":"TypewriterText.COM2MYFr.mjs","names":["React.useState"],"sources":["https:/framerusercontent.com/modules/ZEgkXYnciqZ5BI5vhSh7/YO3Zh1KihT8BnWHdGHbu/TypewriterText.js"],"sourcesContent":["// Typewriter text component with cycling, per-character animation, and custom cursor\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsOnFramerCanvas}from\"framer\";/**\n * Typewriter\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 24\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight fixed\n *\n * Features:\n * - <p> tag\n * - Customizable string(s), cycles through array\n * - Autoplay, per-character animation\n * - Loop endlessly\n * - 0.05s per character\n * - No pause between texts\n * - Text color: #FFFFFF\n * - Font: Inter, 12px, 500\n * - Cursor: |, color #888888\n */function Typewriter(props){const{texts=[\"Typewriter\"],delay=.05,deleteDelay=.02,textColor=\"#FFFFFF\",cursorColor=\"#888888\",cursorChar=\"|\",font,pauseAfterTyped=0}=props;const isOnCanvas=useIsOnFramerCanvas();const[index,setIndex]=React.useState(0);const[displayed,setDisplayed]=React.useState(\"\");const[typing,setTyping]=React.useState(true);const[charIdx,setCharIdx]=React.useState(0);const[deleting,setDeleting]=React.useState(false);React.useEffect(()=>{if(isOnCanvas){setDisplayed(texts[0]||\"\");return;}let timeout;if(typing&&!deleting){if(charIdx<texts[index].length){timeout=setTimeout(()=>{setDisplayed(texts[index].slice(0,charIdx+1));setCharIdx(charIdx+1);},delay*1e3);}else{timeout=setTimeout(()=>{setDeleting(true);},pauseAfterTyped*1e3);}}else if(deleting){if(charIdx>0){timeout=setTimeout(()=>{setDisplayed(texts[index].slice(0,charIdx-1));setCharIdx(charIdx-1);},deleteDelay*1e3);}else{setDeleting(false);setTyping(true);setIndex((index+1)%texts.length);}}else{setCharIdx(0);setTyping(true);}return()=>clearTimeout(timeout);},[charIdx,typing,deleting,index,texts,delay,isOnCanvas]);React.useEffect(()=>{if(!deleting&&typing)setCharIdx(0);},[index,deleting,typing]);// Blinking cursor\nconst[showCursor,setShowCursor]=React.useState(true);React.useEffect(()=>{if(isOnCanvas)return;const interval=setInterval(()=>setShowCursor(v=>!v),500);return()=>clearInterval(interval);},[isOnCanvas]);return /*#__PURE__*/_jsxs(\"p\",{style:{...props.style,color:textColor,fontFamily:font?.fontFamily||\"Inter, sans-serif\",fontWeight:font?.variant===\"Bold\"?700:font?.variant===\"Semibold\"?600:500,fontSize:props.fontSize||font?.fontSize||12,letterSpacing:typeof props.letterSpacing===\"number\"?`${props.letterSpacing}em`:font?.letterSpacing||\"normal\",lineHeight:font?.lineHeight||\"1.3em\",margin:0,width:\"100%\",minWidth:0,background:\"transparent\",position:\"relative\",display:\"inline-block\"},\"aria-live\":\"polite\",children:[displayed,/*#__PURE__*/_jsx(\"span\",{style:{color:cursorColor,opacity:showCursor?1:0,fontWeight:500,fontFamily:\"inherit\",fontSize:\"inherit\",transition:\"opacity 0.1s\"},\"aria-hidden\":\"true\",children:cursorChar})]});}addPropertyControls(Typewriter,{texts:{type:ControlType.Array,title:\"Texts\",control:{type:ControlType.String,defaultValue:\"Typewriter\"},defaultValue:[\"Typewriter\"]},delay:{type:ControlType.Number,title:\"Delay (s)\",min:.01,max:1,step:.01,defaultValue:.05},deleteDelay:{type:ControlType.Number,title:\"Delete Delay (s)\",min:.005,max:1,step:.005,defaultValue:.02},textColor:{type:ControlType.Color,title:\"Text Color\",defaultValue:\"#FFFFFF\"},cursorColor:{type:ControlType.Color,title:\"Cursor Color\",defaultValue:\"#888888\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontSize:\"12px\",variant:\"Medium\",letterSpacing:\"normal\",lineHeight:\"1.3em\"},controls:\"basic\",defaultFontType:\"sans-serif\"},fontSize:{type:ControlType.Number,title:\"Font Size (px)\",min:8,max:64,step:1,defaultValue:12},letterSpacing:{type:ControlType.Number,title:\"Kerning (em)\",min:-.1,max:1,step:.01,defaultValue:0},cursorChar:{type:ControlType.String,title:\"Cursor Character\",defaultValue:\"|\",placeholder:\"|\"},pauseAfterTyped:{type:ControlType.Number,title:\"Pause After Typed (s)\",min:0,max:2,step:.01,defaultValue:0}});export default Typewriter;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Typewriter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerIntrinsicHeight\":\"24\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TypewriterText.map"],"mappings":"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"}