{"version":3,"file":"CaretTypingAnimation.FuY2tTdD.mjs","names":["useMemo","useState","useRef"],"sources":["https:/framerusercontent.com/modules/4QqJLXII0nEgNKHxZ5sA/FT0MAlOfPTfEJbfBBmF2/CaretTypingAnimation.js"],"sourcesContent":["// Caret typing animation with gray static text and orange rotating typed text\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useState,startTransition,useMemo,useRef}from\"react\";import{addPropertyControls,ControlType}from\"framer\";// Keyboard layout map with positions (row, column) and finger assignments\nconst keyboardLayout={\"q\":{row:1,col:0,finger:\"left-pinky\"},\"w\":{row:1,col:1,finger:\"left-ring\"},\"e\":{row:1,col:2,finger:\"left-middle\"},\"r\":{row:1,col:3,finger:\"left-index\"},\"t\":{row:1,col:4,finger:\"left-index\"},\"y\":{row:1,col:5,finger:\"right-index\"},\"u\":{row:1,col:6,finger:\"right-index\"},\"i\":{row:1,col:7,finger:\"right-middle\"},\"o\":{row:1,col:8,finger:\"right-ring\"},\"p\":{row:1,col:9,finger:\"right-pinky\"},\"a\":{row:2,col:0,finger:\"left-pinky\"},\"s\":{row:2,col:1,finger:\"left-ring\"},\"d\":{row:2,col:2,finger:\"left-middle\"},\"f\":{row:2,col:3,finger:\"left-index\"},\"g\":{row:2,col:4,finger:\"left-index\"},\"h\":{row:2,col:5,finger:\"right-index\"},\"j\":{row:2,col:6,finger:\"right-index\"},\"k\":{row:2,col:7,finger:\"right-middle\"},\"l\":{row:2,col:8,finger:\"right-ring\"},\"z\":{row:3,col:0,finger:\"left-pinky\"},\"x\":{row:3,col:1,finger:\"left-ring\"},\"c\":{row:3,col:2,finger:\"left-middle\"},\"v\":{row:3,col:3,finger:\"left-index\"},\"b\":{row:3,col:4,finger:\"left-index\"},\"n\":{row:3,col:5,finger:\"right-index\"},\"m\":{row:3,col:6,finger:\"right-index\"},\" \":{row:4,col:4.5,finger:\"thumb\"}};// Calculate distance between two keys\nconst getKeyDistance=(char1,char2)=>{const key1=keyboardLayout[char1.toLowerCase()];const key2=keyboardLayout[char2.toLowerCase()];if(!key1||!key2)return 0;const rowDiff=Math.abs(key1.row-key2.row);const colDiff=Math.abs(key1.col-key2.col);return Math.sqrt(rowDiff*rowDiff+colDiff*colDiff);};// Check if same finger is used for consecutive keys\nconst isSameFinger=(char1,char2)=>{const key1=keyboardLayout[char1.toLowerCase()];const key2=keyboardLayout[char2.toLowerCase()];if(!key1||!key2)return false;return key1.finger===key2.finger;};// Helper function to add natural variation to timing\nconst getVariedSpeed=baseSpeed=>{// Make timing exactly match the base speed without random variation\nreturn baseSpeed;};// Helper function to get pause after punctuation\nconst shouldPauseAfterChar=char=>{// Disable extra pauses so timing adheres exactly to the configured speed\nreturn 0;};// Calculate typing delay based on keyboard layout\nconst getKeyboardBasedDelay=(currentChar,previousChar,baseSpeed)=>{// Use a constant delay equal to the base speed to keep typing speed consistent\nreturn baseSpeed;};/**\n * Caret Typing Animation\n *\n * @framerIntrinsicWidth 600\n * @framerIntrinsicHeight 60\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function CaretTypingAnimation(props){const{staticText,colors,category,brandingOptions,productDesignOptions,consultancyOptions,timings,caret,font,alignment}=props;// Combine options based on selected category\nconst options=useMemo(()=>{if(category===\"all\"){return[...brandingOptions,...productDesignOptions,...consultancyOptions];}else if(category===\"branding\"){return brandingOptions;}else if(category===\"product design\"){return productDesignOptions;}else{return consultancyOptions;}},[category,brandingOptions,productDesignOptions,consultancyOptions]);const[currentIndex,setCurrentIndex]=useState(0);const[currentText,setCurrentText]=useState(\"\");const[isDeleting,setIsDeleting]=useState(false);const[isPaused,setIsPaused]=useState(false);const[isPausedBeforeTyping,setIsPausedBeforeTyping]=useState(false);const[lastChar,setLastChar]=useState(\"\");const typedSpanRef=useRef(null);const[dynamicFontSize,setDynamicFontSize]=useState(()=>{const base=typeof font?.fontSize===\"string\"?parseFloat(font.fontSize):typeof font?.fontSize===\"number\"?font.fontSize:32;return isNaN(base)?32:base;});const dynamicFontSizeRef=useRef(dynamicFontSize);useEffect(()=>{if(typeof window===\"undefined\"){startTransition(()=>setCurrentText(options[0]?options[0]+\".\":\"\"));return;}const currentOption=options[currentIndex]?options[currentIndex]+\".\":\"\";if(isPaused){const pauseTimer=setTimeout(()=>{startTransition(()=>{setIsPaused(false);setIsDeleting(true);});},timings.pauseAfterTyping);return()=>clearTimeout(pauseTimer);}if(isPausedBeforeTyping){const pauseTimer=setTimeout(()=>{startTransition(()=>{setIsPausedBeforeTyping(false);});},timings.pauseAfterDeleting);return()=>clearTimeout(pauseTimer);}if(isDeleting){if(currentText===\"\"){startTransition(()=>{setIsDeleting(false);// Randomly select next index, ensuring it's different from current\nlet nextIndex=Math.floor(Math.random()*options.length);if(options.length>1){while(nextIndex===currentIndex){nextIndex=Math.floor(Math.random()*options.length);}}setCurrentIndex(nextIndex);setIsPausedBeforeTyping(true);setLastChar(\"\");});return;}const deleteTimer=setTimeout(()=>{startTransition(()=>{setCurrentText(prev=>{const newText=prev.slice(0,-1);setLastChar(newText[newText.length-1]||\"\");return newText;});});},getVariedSpeed(timings.deletingSpeed));return()=>clearTimeout(deleteTimer);}if(currentText===currentOption){startTransition(()=>setIsPaused(true));return;}const nextChar=currentOption[currentText.length];const extraPause=shouldPauseAfterChar(nextChar);const keyboardDelay=getKeyboardBasedDelay(nextChar,lastChar,timings.typingSpeed);const typeTimer=setTimeout(()=>{startTransition(()=>{setCurrentText(currentOption.slice(0,currentText.length+1));setLastChar(nextChar);});},keyboardDelay+extraPause);return()=>clearTimeout(typeTimer);},[currentText,currentIndex,isDeleting,isPaused,isPausedBeforeTyping,options,timings.typingSpeed,timings.deletingSpeed,timings.pauseAfterTyping,timings.pauseAfterDeleting,lastChar]);useEffect(()=>{// Keep a ref in sync with the current dynamic font size so measurements\n// don't cause re-render loops that lead to flickering.\ndynamicFontSizeRef.current=dynamicFontSize;},[dynamicFontSize]);useEffect(()=>{if(!typedSpanRef.current)return;const el=typedSpanRef.current;const base=typeof font?.fontSize===\"string\"?parseFloat(font.fontSize):typeof font?.fontSize===\"number\"?font.fontSize:32;const baseFontSize=isNaN(base)?32:base;const minFontSize=12;const measureAndAdjust=()=>{if(!el)return;const overflowing=el.scrollWidth>el.clientWidth+1;if(el.clientWidth<=0||el.scrollWidth<=0)return;// Only shrink the font size when overflowing to avoid oscillation flicker\nconst currentSize=dynamicFontSizeRef.current;if(overflowing&&currentSize>minFontSize){const ratio=el.clientWidth/el.scrollWidth;// Avoid tiny adjustments that cause flicker\nif(ratio<.98){const nextSize=Math.max(minFontSize,Math.floor(currentSize*ratio*.98));if(currentSize-nextSize>=1){startTransition(()=>{setDynamicFontSize(nextSize);dynamicFontSizeRef.current=nextSize;});}}}};if(typeof window!==\"undefined\"){const rAF=window.requestAnimationFrame(measureAndAdjust);return()=>window.cancelAnimationFrame(rAF);}else{measureAndAdjust();}},[currentText,font]);useEffect(()=>{// Reset font size to base when switching to a new option to prevent accumulated shrinking\nconst base=typeof font?.fontSize===\"string\"?parseFloat(font.fontSize):typeof font?.fontSize===\"number\"?font.fontSize:32;const baseFontSize=isNaN(base)?32:base;startTransition(()=>setDynamicFontSize(baseFontSize));},[currentIndex,font]);const isFixedWidth=props?.style&&props.style.width===\"100%\";const alignmentMap={left:\"flex-start\",center:\"center\",right:\"flex-end\"};return /*#__PURE__*/_jsxs(\"div\",{style:{...props.style,position:\"relative\",display:\"flex\",flexDirection:\"column\",alignItems:alignmentMap[alignment],gap:\"0.3em\",...isFixedWidth?{}:{minWidth:\"max-content\"}},role:\"region\",\"aria-live\":\"polite\",children:[/*#__PURE__*/_jsx(\"span\",{style:{color:colors.staticColor,...font},children:staticText}),/*#__PURE__*/_jsx(\"span\",{ref:typedSpanRef,style:{color:colors.typedColor,position:\"relative\",display:\"inline-block\",minHeight:\"1em\",textAlign:alignment,width:\"100%\",whiteSpace:\"nowrap\",overflow:\"hidden\",...font,fontSize:`${dynamicFontSize}px`},\"aria-label\":`${staticText} ${options[currentIndex]||\"\"}${options[currentIndex]?\".\":\"\"}`,children:/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline\"},children:[currentText||\"​\",caret.show&&/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",width:`${caret.width}px`,height:`${caret.height}em`,backgroundColor:caret.color,marginLeft:\"2px\",verticalAlign:\"baseline\",animation:\"blink 1s ease-in-out infinite\"},\"aria-hidden\":\"true\"})]})}),/*#__PURE__*/_jsxs(\"span\",{style:{position:\"absolute\",width:\"1px\",height:\"1px\",padding:0,margin:\"-1px\",overflow:\"hidden\",clip:\"rect(0, 0, 0, 0)\",whiteSpace:\"nowrap\",border:0},children:[staticText,\" \",options.join(\". \")]}),/*#__PURE__*/_jsx(\"style\",{children:`\n\t\t\t\t\t@keyframes blink {\n\t\t\t\t\t\t0%, 49% { opacity: 1; }\n\t\t\t\t\t\t50%, 100% { opacity: 0; }\n\t\t\t\t\t}\n\t\t\t\t`})]});}addPropertyControls(CaretTypingAnimation,{staticText:{type:ControlType.String,title:\"Static Text\",defaultValue:\"lets work together to\"},alignment:{type:ControlType.Enum,title:\"Alignment\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"left\",displaySegmentedControl:true},colors:{type:ControlType.Object,title:\"Colors\",controls:{staticColor:{type:ControlType.Color,title:\"Static Color\",defaultValue:\"#CCCCCC\"},typedColor:{type:ControlType.Color,title:\"Typed Color\",defaultValue:\"#FF8800\"}},defaultValue:{staticColor:\"#CCCCCC\",typedColor:\"#FF8800\"}},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"32px\",variant:\"Semibold\",letterSpacing:\"-0.03em\",lineHeight:\"1.2em\"}},category:{type:ControlType.Enum,title:\"Category\",options:[\"all\",\"branding\",\"product design\",\"consultancy\"],optionTitles:[\"All\",\"Branding\",\"Product Design\",\"Consultancy\"],defaultValue:\"all\",displaySegmentedControl:false},brandingOptions:{type:ControlType.Array,title:\"Branding Options\",control:{type:ControlType.String},defaultValue:[\"define your brand\",\"stand out with branding\",\"create a strong identity\",\"communicate your brand clearly\",\"make your brand memorable\",\"visualize your core values\",\"sharpen your digital identity\",\"polish your brand presence\",\"elevate your visual identity\",\"position your brand effectively\",\"clarify your brand story\",\"tell your story visually\",\"shape your visual language\"]},productDesignOptions:{type:ControlType.Array,title:\"Product Design Options\",control:{type:ControlType.String},defaultValue:[\"prototype an app idea\",\"increase app conversion\",\"greatly improve your website\",\"launch your digital product\",\"bring ideas to life\",\"refine your app experience\",\"optimize user journeys\",\"build a better website\",\"craft a seamless UX\",\"grow through great design\",\"elevate your online presence\",\"simplify complex interfaces\",\"design for conversion\",\"modernize your product look\",\"improve your product design\",\"bring clarity to UX\",\"solve UI/UX pain points\",\"craft branded web experiences\",\"build intuitive user flows\",\"turn clicks into customers\",\"boost user engagement fast\",\"make design work harder\",\"plan your product experience\",\"streamline your user flows\",\"scale with better design\"]},consultancyOptions:{type:ControlType.Array,title:\"Consultancy Options\",control:{type:ControlType.String},defaultValue:[\"design with strategy in mind\",\"align design with business\",\"define your design direction\",\"align design with strategy\",\"audit your digital presence\",\"solve your UX challenges\",\"turn insights into impact\",\"refocus your design efforts\",\"bridge strategy and creativity\",\"become your design partner\",\"drive product strategy forward\",\"rethink your digital approach\",\"make smarter design decisions\",\"bridge goals and design\",\"plan your next big move\",\"collaborate on digital strategy\",\"bring clarity to complexity\",\"shape your product roadmap\",\"design what matters most\",\"connect with your audience\",\"unlock your design potential\"]},timings:{type:ControlType.Object,title:\"Timings\",controls:{typingSpeed:{type:ControlType.Number,title:\"Typing Speed\",defaultValue:50,min:10,max:500,step:10,unit:\"ms\"},deletingSpeed:{type:ControlType.Number,title:\"Deleting Speed\",defaultValue:30,min:10,max:500,step:10,unit:\"ms\"},pauseAfterTyping:{type:ControlType.Number,title:\"Pause After Typing\",defaultValue:2e3,min:200,max:5e3,step:100,unit:\"ms\"},pauseAfterDeleting:{type:ControlType.Number,title:\"Pause After Deleting\",defaultValue:200,min:200,max:5e3,step:100,unit:\"ms\"}},defaultValue:{typingSpeed:50,deletingSpeed:30,pauseAfterTyping:2e3,pauseAfterDeleting:200}},caret:{type:ControlType.Object,title:\"Caret\",controls:{show:{type:ControlType.Boolean,title:\"Show\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},width:{type:ControlType.Number,title:\"Width\",defaultValue:2,min:1,max:10,step:1,unit:\"px\"},height:{type:ControlType.Number,title:\"Height\",defaultValue:1,min:.5,max:2,step:.1,unit:\"em\"},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#FF8800\"}},defaultValue:{show:true,width:2,height:1,color:\"#FF8800\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CaretTypingAnimation\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicWidth\":\"600\",\"framerIntrinsicHeight\":\"60\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CaretTypingAnimation.map"],"mappings":"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"}