{"version":3,"file":"DigitalTypewriter_Prod.CVCESSgF.mjs","names":["useState","useId","useMemo","_Fragment","useRef","p"],"sources":["https:/framerusercontent.com/modules/TF2OTM1gSYVYv74IUyyJ/4iyab4lCZk1XhXQdaUBM/DigitalTypewriter_Prod.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useId,useMemo}from\"react\";import{useAnimationFrame}from\"framer-motion\";import{ControlType,addPropertyControls,RenderTarget}from\"framer\";import{ComponentMessage}from\"https://framer.com/m/Utils-FINc.js\";// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(DigitalTypewriter,{texts:{type:ControlType.Array,control:{type:ControlType.Object,controls:{text:{type:ControlType.String},cursorColor:{type:ControlType.Color,title:\"Cursor\"},contentColor:{type:ControlType.Color,title:\"Words\"}}}},font:{type:ControlType.Font,defaultFontType:\"monospace\",controls:\"extended\",defaultValue:{letterSpacing:\"1px\",lineHeight:\"1.5em\",textAlign:\"left\",fontSize:32}},probability:{type:ControlType.Number,min:0,max:1,step:.1,defaultValue:.1,description:\"Probability of pausing when a space character is typed.\"},delay:{type:ControlType.Number,min:0,max:10,step:.1,defaultValue:1,unit:\"s\",description:\"More components at [Framer University](https://frameruni.link/cc).\"}});// ------------------------------------------------------------ //\n// DEFAULT PROPS\n// ------------------------------------------------------------ //\nDigitalTypewriter.defaultProps={delay:1,font:{fontFamily:\"monospace\",fontWeight:300,letterSpacing:\"1px\",lineHeight:\"1.5em\",textAlign:\"left\",fontSize:\"32px\"},probability:.1,texts:[{text:\"Framer University\",cursorColor:\"#999999\",contentColor:\"#999999\"},{text:\"Learn Framer\",cursorColor:\"#895BE4\",contentColor:\"#895BE4\"}]};// ------------------------------------------------------------ //\n// MAIN COMPONENT\n// ------------------------------------------------------------ //\n/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerIntrinsicWidth 400\n * @framerIntrinsicHeight 200\n * @framerDisableUnlink\n */export default function DigitalTypewriter(props){const areTextsEmpty=props.texts.length===0||!props.texts;const inOnFramerCanvas=RenderTarget.hasRestrictions();const[currentTextIndex,setCurrentTextIndex]=useState(0);// Get current text item's colors\nconst currentText=props.texts[currentTextIndex];const currentCursorColor=currentText?.cursorColor;const currentContentColor=currentText?.contentColor;// Unique id to avoid clashes between multiple component instances\nconst reactId=useId();const safeId=useMemo(()=>reactId.replace(/[^a-zA-Z0-9_-]/g,\"-\"),[reactId]);const cursorHighlightName=`cursor-${safeId}`;const contentHighlightName=`content-${safeId}`;const typewriterId=useTypewriterColors({cursorColor:currentCursorColor,contentColor:currentContentColor});const{isPaused,pRef}=useTypewriter({texts:props.texts,currentTextIndex,setCurrentTextIndex,delay:props.delay,probability:props.probability,cursorHighlightName,contentHighlightName});const baseStyle=`\n    @layer demo {\n      @property --alpha {\n        syntax: \"<number>\";\n        inherits: true;\n        initial-value: 1;\n      }\n      #mainDigitalTypewriter-${safeId} {\n        animation: cursor-blink 0.8s infinite steps(1) paused;\n        position: relative;\n      }\n      [data-paused=\"false\"] {\n        animation: none;\n      }\n      [data-paused=\"false\"] [data-type] {\n        --alpha: 0;\n      }\n      /* \"{mainDigitalTypewriter\" element will itself carry the data-paused attribute. */\n      #mainDigitalTypewriter-${safeId}[data-paused=\"true\"] {\n        animation-play-state: running;\n      }\n      @keyframes cursor-blink { 50% { --alpha: 0; } }\n      ::highlight(__CURSOR__) { color: transparent; }\n      [data-type] {\n        --cursor-blink: color-mix(in hsl, var(--cursor), #0000 calc(var(--alpha) * 100%));\n      }\n      ::highlight(__CONTENT__) { color: var(--content); }\n      ::highlight(__CURSOR__) { background-color: var(--cursor-blink); }\n      [data-type] {\n        width: 100%;\n        color: transparent;\n        white-space: break-spaces;\n        font-family: ${props.font.fontFamily};\n        font-weight: ${props.font.fontWeight};\n        margin: 0;\n        letter-spacing: ${props.font.letterSpacing};\n        font-size: ${props.font.fontSize};\n        line-height: ${props.font.lineHeight};\n        text-align: ${props.font.textAlign};\n      }\n      /* Handle text wrapping based on parent width */\n      .typewriter-container:has(+ [data-type=\"hidden\"]:not(:empty)) {\n        white-space: nowrap;\n      }\n      .typewriter-container:has(+ [data-type=\"hidden\"]:empty) {\n        white-space: break-spaces;\n      }\n    }\n`;// Generate style string with unique highlight names to avoid collisions\nconst style=useMemo(()=>{return baseStyle.replace(/__CURSOR__/g,cursorHighlightName).replace(/__CONTENT__/g,contentHighlightName);},[cursorHighlightName,contentHighlightName,props.font.fontFamily,props.font.fontWeight,props.font.fontSize,props.font.letterSpacing,props.font.lineHeight,props.font.textAlign]);// get the 20% of the font size\nconst fontSize=Number(props.font.fontSize?.replace(\"px\",\"\"));const letterSpacingReserve=fontSize?`${fontSize*.15}px`:\"3px\";const findLongestText=texts=>{return texts.reduce((longest,current)=>{return current.text.length>longest.text.length?current:longest;},texts[0]);};const longestText=findLongestText(props.texts);if(areTextsEmpty){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},children:/*#__PURE__*/_jsx(ComponentMessage,{title:\"Digital Typewriter\",subtitle:\"Set up the component by adding texts to the component properties.\"})});}return /*#__PURE__*/_jsx(_Fragment,{children:/*#__PURE__*/_jsxs(\"div\",{id:`mainDigitalTypewriter-${safeId}`,\"data-paused\":isPaused,\"data-typewriter-id\":typewriterId,style:{width:\"100%\",height:\"100%\"},children:[/*#__PURE__*/_jsx(\"style\",{children:style}),/*#__PURE__*/_jsxs(\"div\",{className:\"typewriter-container\",style:{position:\"relative\",width:\"fit-content\",height:\"100%\",minWidth:\"100%\"},children:[props.texts.map((_,index)=>/*#__PURE__*/_jsx(\"p\",{className:`typewriter-text-${safeId}`,\"data-type\":index===currentTextIndex?\"\":null,ref:index===currentTextIndex?pRef:null,style:{position:\"absolute\",top:0,left:0,opacity:index===currentTextIndex?1:0,pointerEvents:\"none\",width:\"100%\",whiteSpace:\"inherit\"}},index)),!inOnFramerCanvas&&/*#__PURE__*/_jsx(\"p\",{\"data-type\":\"hidden\",style:{position:\"relative\",opacity:0,pointerEvents:\"none\",width:\"100%\",whiteSpace:\"inherit\",letterSpacing:letterSpacingReserve},\"aria-hidden\":\"true\",children:currentText?.text})]}),inOnFramerCanvas&&/*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"p\",{style:{opacity:0,color:\"transparent\",margin:0,whiteSpace:\"nowrap\",fontFamily:props.font.fontFamily,fontWeight:props.font.fontWeight,letterSpacing:props.font.letterSpacing,fontSize:props.font.fontSize,lineHeight:props.font.lineHeight,textAlign:props.font.textAlign,width:\"100%\"},children:longestText.text}),/*#__PURE__*/_jsx(\"p\",{style:{position:\"absolute\",top:0,left:0,color:props.texts[0].contentColor,margin:0,whiteSpace:\"break-spaces\",fontFamily:props.font.fontFamily,fontWeight:props.font.fontWeight,letterSpacing:props.font.letterSpacing,fontSize:props.font.fontSize,lineHeight:props.font.lineHeight,textAlign:props.font.textAlign,width:\"100%\"},children:props.texts[0].text})]})]})});}const useTypewriterColors=({cursorColor,contentColor})=>{const reactId=useId();const safeId=useMemo(()=>reactId.replace(/[^a-zA-Z0-9_-]/g,\"-\"),[reactId]);useEffect(()=>{if(typeof document===\"undefined\")return;const style=document.createElement(\"style\");style.textContent=`\n      [data-typewriter-id=\"${safeId}\"] {\n        --cursor: ${cursorColor};\n        --content: ${contentColor};\n      }\n    `;document.head.appendChild(style);return()=>{document.head.removeChild(style);};},[cursorColor,contentColor,safeId]);return safeId;};const random=(min,max,step=1)=>{const delta=max-min;const steps=Math.round(delta/step);const rand=Math.floor(Math.random()*(steps+1));return min+rand*step;};const useTypewriter=({texts,currentTextIndex,setCurrentTextIndex,delay,probability,cursorHighlightName,contentHighlightName})=>{const[isPaused,setIsPaused]=useState(true);const pRef=useRef(null);const indexRef=useRef(0);const fpsRef=useRef(12);const accRef=useRef(0);const nodeRef=useRef(null);const cursorRangeRef=useRef(null);const contentRangeRef=useRef(null);const highlightsInitializedRef=useRef(false);const pause=()=>{setIsPaused(true);};const unpause=()=>{setIsPaused(false);};const moveToNextText=()=>{setCurrentTextIndex(prevIndex=>(prevIndex+1)%texts.length);indexRef.current=0;if(nodeRef.current&&contentRangeRef.current&&cursorRangeRef.current){contentRangeRef.current.setEnd(nodeRef.current,0);cursorRangeRef.current.setStart(nodeRef.current,0);cursorRangeRef.current.setEnd(nodeRef.current,1);}window.setTimeout(()=>{unpause();},delay*1e3);};const update=(_,delta)=>{if(!highlightsInitializedRef.current||isPaused)return;const node=nodeRef.current;const cursorRange=cursorRangeRef.current;const contentRange=contentRangeRef.current;if(!node||!cursorRange||!contentRange)return;accRef.current+=delta;if(accRef.current<1e3/fpsRef.current)return;accRef.current=0;const index=indexRef.current;if(index>node.textContent.length-1){pause();window.setTimeout(()=>{moveToNextText();},1e3);return;}cursorRange.setStart(node,index);cursorRange.setEnd(node,index+1);contentRange.setEnd(node,index);indexRef.current+=1;if(Math.random()>1-probability&&node.textContent.charAt(index-1)===\" \"){pause();fpsRef.current=random(8,22,1);window.setTimeout(()=>{fpsRef.current=12;unpause();},random(200,2e3,100));}};useAnimationFrame(update);useEffect(()=>{if(!pRef.current||typeof window===\"undefined\"||!window.CSS?.highlights){return;}highlightsInitializedRef.current=false;indexRef.current=0;fpsRef.current=12;accRef.current=0;const p=pRef.current;const currentText=texts[currentTextIndex];p.innerHTML=`${currentText.text.replace(/\\s+/g,\" \").trim()}&nbsp;`;const treeWalker=document.createTreeWalker(p,NodeFilter.SHOW_TEXT);const node=treeWalker.nextNode();if(!node)return;nodeRef.current=node;const cursorRange=new Range;const contentRange=new Range;cursorRange.setStart(node,0);cursorRange.setEnd(node,1);contentRange.setStart(node,0);contentRange.setEnd(node,0);cursorRangeRef.current=cursorRange;contentRangeRef.current=contentRange;const cursorHighlight=new window.Highlight(cursorRange);const contentHighlight=new window.Highlight(contentRange);window.CSS.highlights.set(cursorHighlightName,cursorHighlight);window.CSS.highlights.set(contentHighlightName,contentHighlight);const startTimeout=window.setTimeout(()=>{highlightsInitializedRef.current=true;unpause();},delay*1e3);return()=>{window.clearTimeout(startTimeout);window.CSS.highlights.delete(cursorHighlightName);window.CSS.highlights.delete(contentHighlightName);highlightsInitializedRef.current=false;};},[texts,currentTextIndex,delay,probability,cursorHighlightName,contentHighlightName]);return{isPaused,pRef,highlightsInitialized:highlightsInitializedRef.current};};DigitalTypewriter.displayName=\"Digital Typewriter\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"DigitalTypewriter\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./DigitalTypewriter_Prod.map"],"mappings":"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"}