{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/21kbSGygMxflqz4HyfEY/izomRCoGCKCV3yAK1uY2/Typewriter.js"],
  "sourcesContent": ["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{useInView}from\"framer-motion\";/**\n *\n * @framerIntrinsicWidth 588\n * @framerIntrinsicHeight 56\n *\n * @framerDisableUnlink\n *\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n *\n */export default function Typewriter({prefixText,dynamicTexts,suffixText,typingSpeed,pauseDuration,font,staticTextColor,dynamicTextColor,showCursor,cursorColor,textAlign}){const[displayText,setDisplayText]=useState(\"\");const[subIndex,setSubIndex]=useState(0);const[deleting,setDeleting]=useState(false);const[dynamicIndex,setDynamicIndex]=useState(0);const[isBlinking,setIsBlinking]=useState(false);const ref=useRef(null);const isInView=useInView(ref,{once:false,margin:\"-10% 0px\"});useEffect(()=>{if(!isInView)return;// Only run when the component is in view\nconst dynamicText=dynamicTexts[dynamicIndex];const handleTyping=()=>{if(deleting){setDisplayText(dynamicText.substring(0,subIndex-1));setSubIndex(prev=>prev-1);if(subIndex===0){setDeleting(false);setDynamicIndex(prev=>(prev+1)%dynamicTexts.length);setIsBlinking(false)// Stop blinking while typing\n;}}else{setDisplayText(dynamicText.substring(0,subIndex+1));setSubIndex(prev=>prev+1);if(subIndex===dynamicText.length){setTimeout(()=>{setDeleting(true);setIsBlinking(true)// Start blinking after typing completes\n;},pauseDuration);}}};const timeout=setTimeout(handleTyping,deleting?typingSpeed/2:typingSpeed);return()=>clearTimeout(timeout);},[isInView,subIndex,deleting,dynamicIndex,dynamicTexts,typingSpeed,pauseDuration]);return /*#__PURE__*/_jsxs(\"div\",{ref:ref,style:{...font,color:staticTextColor,display:\"inline-block\",textAlign,width:\"100%\"},children:[/*#__PURE__*/_jsxs(\"span\",{style:{color:staticTextColor},children:[prefixText,\" \"]}),/*#__PURE__*/_jsxs(\"span\",{style:{color:dynamicTextColor},children:[displayText,showCursor&&/*#__PURE__*/_jsx(\"span\",{style:{color:cursorColor,fontWeight:200,animation:isBlinking?\"blink 1s step-end infinite\":\"none\"},children:\"|\"})]}),/*#__PURE__*/_jsx(\"span\",{style:{color:staticTextColor},children:suffixText}),/*#__PURE__*/_jsx(\"style\",{children:`\n                    @keyframes blink {\n                        0%, 100% { opacity: 0; }\n                        50% { opacity: 1; }\n                    }\n                `})]});}addPropertyControls(Typewriter,{prefixText:{type:ControlType.String,title:\"Prefix Text\",defaultValue:\"You're\"},dynamicTexts:{type:ControlType.Array,title:\"Dynamic Texts\",defaultValue:[\" a Beautiful\",\"an Awesome\",\"an Amazing\"],propertyControl:{type:ControlType.String}},suffixText:{type:ControlType.String,title:\"Suffix Text\",defaultValue:\"Person\"},typingSpeed:{type:ControlType.Number,title:\"Typing Speed\",defaultValue:100,min:10,max:500,unit:\"ms\"},pauseDuration:{type:ControlType.Number,title:\"Pause Duration\",defaultValue:1e3,min:500,max:5e3,unit:\"ms\"},font:{type:ControlType.Font,title:\"Font\",defaultValue:{fontFamily:\"Inter\",fontWeight:\"Regular\",fontSize:44,lineHeight:\"1.5em\"},controls:\"extended\"},staticTextColor:{type:ControlType.Color,title:\"Static Text Color\",defaultValue:\"#275CE3\"},dynamicTextColor:{type:ControlType.Color,title:\"Dynamic Text Color\",defaultValue:\"#FF6200\"},showCursor:{type:ControlType.Boolean,title:\"Show Cursor\",defaultValue:true},cursorColor:{type:ControlType.Color,title:\"Cursor Color\",defaultValue:\"#FFD700\"},textAlign:{type:ControlType.Enum,title:\"Text Align\",options:[\"left\",\"center\",\"right\"],defaultValue:\"center\",description:\"[Mr. Framer](https://mrframer.com), Get Free High Quality Framer Resources.\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Typewriter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicHeight\":\"56\",\"framerIntrinsicWidth\":\"588\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Typewriter.map"],
  "mappings": "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",
  "names": ["Typewriter", "prefixText", "dynamicTexts", "suffixText", "typingSpeed", "pauseDuration", "font", "staticTextColor", "dynamicTextColor", "showCursor", "cursorColor", "textAlign", "displayText", "setDisplayText", "ye", "subIndex", "setSubIndex", "deleting", "setDeleting", "dynamicIndex", "setDynamicIndex", "isBlinking", "setIsBlinking", "ref", "pe", "isInView", "useInView", "ue", "dynamicText", "timeout", "prev", "u", "p", "addPropertyControls", "ControlType"]
}
