{"version":3,"file":"CaretTypingAnimation.EIIZkEdv.mjs","names":["useMemo","useState"],"sources":["https:/framerusercontent.com/modules/4QqJLXII0nEgNKHxZ5sA/KU1l1VYvY1KgZOG4Pe92/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}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;};/**\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(\"\");// Helper function to add natural variation to timing\nconst getVariedSpeed=baseSpeed=>{const variation=baseSpeed*.3// 30% variation\n;return baseSpeed+(Math.random()*variation*2-variation);};// Helper function to get pause after punctuation\nconst shouldPauseAfterChar=char=>{if(char===\",\"||char===\";\")return 150;if(char===\" \")return Math.random()<.1?50:0// Occasional pause at spaces\n;return 0;};// Calculate typing delay based on keyboard layout\nconst getKeyboardBasedDelay=(currentChar,previousChar,baseSpeed)=>{if(!previousChar||!currentChar)return baseSpeed;const distance=getKeyDistance(previousChar,currentChar);const sameFinger=isSameFinger(previousChar,currentChar);// Base delay\nlet delay=baseSpeed;// Add delay based on distance (longer distance = more time)\ndelay+=distance*15;// Add extra delay if same finger is used (finger needs to move)\nif(sameFinger&&distance>0){delay+=40;}// Add slight random variation\ndelay+=(Math.random()-.5)*20;return Math.max(delay,baseSpeed*.5)// Never go below 50% of base speed\n;};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]);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\",{style:{color:colors.typedColor,position:\"relative\",display:\"inline-block\",minHeight:\"1em\",textAlign:alignment,width:\"100%\",...font},\"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:30,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:30,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\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicHeight\":\"60\",\"framerIntrinsicWidth\":\"600\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CaretTypingAnimation.map"],"mappings":"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"}