{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/2AusMW9Upi6mhJ0JzKTi/T3PpsJ5IHtZKcvyOM7MR/MotionText.js"],
  "sourcesContent": ["import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,useMotionValue,useAnimate,stagger}from\"framer-motion\";import{SplitText}from\"@cyriacbr/react-split-text\";const visibleVariant={opacity:1,x:0,y:0,scale:1,rotate:0,rotateX:0,rotateY:0};/**\n * Motion Text\n * By Benjamin den Boer & Adam Seckel\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 200\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any\n */export default function MotionText(props){const{opacity,x,y,scale,rotate,rotateX,rotateY}=props.effectOptions;const[hasAnimated,setHasAnimated]=useState(false);const isCanvas=RenderTarget.current()===RenderTarget.canvas;const initialOpacity=useMotionValue(isCanvas?1:0);const isSpring=props.transitionOptions.type===\"spring\";const springCurve={type:props.transitionOptions.type,stiffness:props.transitionOptions.stiffness,damping:props.transitionOptions.damping,mass:props.transitionOptions.mass};const easeCurve={type:props.transitionOptions.type,duration:props.transitionOptions.duration,ease:props.transitionOptions.ease};// Constructing the variants based on Effects\n// Hidden: from, visible: to\nconst item={hidden:{opacity,x,y,scale,rotate,rotateX,rotateY},visible:visibleVariant};const filteredTransition=isSpring?springCurve:easeCurve;const delay=props.transitionOptions.delay;const isLetter=props.type===\"letter\";const isWord=props.type===\"word\";const isLine=props.type===\"line\";const splitWrapperStyle={display:\"contents\"};function getSplitTextProps({isLetter,isWord,isLine}){const sharedProps={type:props.type,variants:item,perWord:props.perWord};if(isLetter)return{LetterWrapper:info=>/*#__PURE__*/_jsx(MotionSpanComponent,{...info,...sharedProps})};if(isLine)return{LineWrapper:info=>/*#__PURE__*/_jsx(MotionSpanComponent,{...info,...sharedProps})};return{WordWrapper:info=>/*#__PURE__*/_jsx(MotionSpanComponent,{...info,...sharedProps})};}const[scope,animate]=useAnimate();// If the variant changes, trigger the animation if the variant boolean has changed.\nuseEffect(()=>{if(isCanvas)return;let animation;const requestId=requestAnimationFrame(()=>{if(!scope.current)return;initialOpacity.set(1);animation=animate(\".motion-text-segment\",props.variant?item.visible:item.hidden,{...filteredTransition,delay:stagger(props.stagger,{startDelay:delay})});animation.then(()=>setHasAnimated(true));});return()=>{animation===null||animation===void 0?void 0:animation.stop();cancelAnimationFrame(requestId);};},[props.variant]);return /*#__PURE__*/_jsx(motion.div,{ref:scope,style:{width:\"100%\",height:\"100%\",// display: \"inline-block\",\nposition:\"relative\",overflow:props.overflow?\"visible\":\"hidden\",fontSize:props.font.fontSize,fontFamily:props.font.font,fontWeight:props.font.fontWeight,letterSpacing:props.font.letterSpacing,lineHeight:props.font.lineHeightType?props.font.lineHeight:`${props.font.lineHeightPixels}px`,textAlign:props.font.textAlign,whiteSpace:props.font.whiteSpace,color:props.color,left:`${props.font.offset}%`,margin:0,padding:0,opacity:initialOpacity},initial:isCanvas||hasAnimated?\"visible\":\"hidden\",children:isCanvas?props.text:/*#__PURE__*/_jsx(SplitText,{style:splitWrapperStyle,...getSplitTextProps({isLetter,isWord,isLine}),children:props.text})});}const getIndex=(isLetter,isWord,isLine,countIndex=0,letterIndex=0,wordIndex=0,lineIndex=0,perWord)=>{if(isLetter)return perWord?letterIndex:countIndex;if(isWord)return countIndex;return lineIndex;};const MotionSpanComponent=({type,countIndex=0,letterIndex=0,wordIndex=0,lineIndex=0,variants,isCanvas,children,perWord,...props})=>{const isLetter=type===\"letter\";const isWord=type===\"word\";const isLine=type===\"line\";const index=getIndex(isLetter,isWord,isLine,countIndex,letterIndex,wordIndex,lineIndex,perWord);return /*#__PURE__*/_jsx(motion.span,{...props,style:{perspective:1200,display:\"inline-block\",whiteSpace:\"pre\",margin:0,padding:0,willChange:\"transform\"},variants:variants,className:\"motion-text-segment\",children:children});};MotionText.displayName=\"Motion Text\";MotionText.defaultProps={text:\"Hello World\",stagger:.05,variant:true,newTab:true,tag:\"heading1\",effectOptions:{x:0,y:100,rotate:0,rotateX:0,rotateY:0},transitionOptions:{type:\"spring\",stiffness:400,damping:30,mass:1,delay:.05},overflow:false,font:{font:\"Inter\",fontSize:32,fontWeight:400,textAlign:\"center\",lineHeight:1.2,lineHeightType:true,lineHeightPixels:100,letterSpacing:0,offset:0,whiteSpace:\"nowrap\"}};/* Property Controls */addPropertyControls(MotionText,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Hello World\",displayTextArea:true},type:{title:\"Type\",type:ControlType.Enum,options:[\"letter\",\"word\",\"line\"],optionTitles:[\"Letter\",\"Word\",\"Line\"],defaultValue:\"letter\"},// link: { type: ControlType.Link, title: \"Link\" },\n// newTab: { type: ControlType.Boolean, title: \"New Tab\", defaultValue: true },\nperWord:{type:ControlType.Boolean,title:\"Per Word\",defaultValue:false,hidden:props=>props.type!==\"letter\"},variant:{title:\"Animate\",type:ControlType.Boolean,defaultValue:true,enabledTitle:\"In\",disabledTitle:\"Out\"},overflow:{title:\"Overflow\",type:ControlType.Boolean,enabledTitle:\"Show\",disabledTitle:\"Hide\",defaultValue:false},stagger:{title:\"Stagger\",type:ControlType.Number,step:.01,defaultValue:.05,displayStepper:true},effectOptions:{title:\"From\",type:ControlType.Object,controls:{opacity:{title:\"Opacity\",type:ControlType.Number,min:0,max:1,step:.01,defaultValue:0},x:{title:\"X\",type:ControlType.Number,min:-200,max:200,unit:\"%\",step:1,defaultValue:0,displayStepper:true},y:{title:\"Y\",type:ControlType.Number,min:-200,max:200,unit:\"%\",step:1,defaultValue:100,displayStepper:true},scale:{title:\"Scale\",type:ControlType.Number,min:0,max:5,step:.01,defaultValue:1,displayStepper:true},rotate:{title:\"Rotate\",type:ControlType.Number,min:-360,max:360,unit:\"\\xb0\",step:1,defaultValue:0},rotateX:{title:\"Rotate X\",type:ControlType.Number,min:-360,max:360,unit:\"\\xb0\",step:1,defaultValue:0},rotateY:{title:\"Rotate Y\",type:ControlType.Number,min:-360,max:360,unit:\"\\xb0\",step:1,defaultValue:0}}},transitionOptions:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"spring\",stiffness:400,damping:30,mass:1,delay:.05}},color:{type:ControlType.Color,defaultValue:\"#888\"},font:{type:ControlType.Object,controls:{font:{type:ControlType.String,placeholder:\"Inter\",defaultValue:\"Inter\"},fontSize:{title:\"Size\",type:ControlType.Number,min:0,max:500,step:.5,defaultValue:32},fontWeight:{type:ControlType.Enum,options:[100,200,300,400,500,600,700,800,900],defaultValue:400,title:\"Weight\"},textAlign:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Align\",options:[\"left\",\"center\",\"right\"],optionTitles:[\"Left\",\"Center\",\"Right\"],defaultValue:\"center\"},letterSpacing:{title:\"Letter\",type:ControlType.Number,defaultValue:0,step:.1,displayStepper:true},offset:{type:ControlType.Number,title:\"Offset\",min:-100,max:100,displayStepper:true,step:.25,defaultValue:0,unit:\"%\"},whiteSpace:{type:ControlType.Enum,title:\"Space\",options:[\"normal\",\"nowrap\",\"pre\",\"pre-wrap\",\"preline\",\"break-spaces\"],optionTitles:[\"Normal\",\"No Wrap\",\"Pre\",\"Pre Wrap\",\"Preline\",\"Break Spaces\"],defaultValue:\"center\"},lineHeight:{type:ControlType.Number,title:\"Line\",min:-500,max:500,displayStepper:true,step:.1,defaultValue:1.2,hidden:props=>!props.lineHeightType},lineHeightPixels:{type:ControlType.Number,title:\"Line\",min:-500,max:500,displayStepper:true,step:.1,defaultValue:100,hidden:props=>props.lineHeightType},lineHeightType:{type:ControlType.Boolean,title:\" \",enabledTitle:\"em\",disabledTitle:\"px\",defaultValue:true}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"MotionText\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"fixed\",\"framerDisableUnlink\":\"*\",\"framerIntrinsicWidth\":\"200\",\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./MotionText.map"],
  "mappings": "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",
  "names": ["visibleVariant", "MotionText", "props", "opacity", "x", "y", "scale", "rotate", "rotateX", "rotateY", "hasAnimated", "setHasAnimated", "ye", "isCanvas", "RenderTarget", "initialOpacity", "useMotionValue", "isSpring", "springCurve", "easeCurve", "item", "filteredTransition", "delay", "isLetter", "isWord", "isLine", "splitWrapperStyle", "getSplitTextProps", "sharedProps", "info", "p", "MotionSpanComponent", "scope", "animate", "useAnimate", "ue", "animation", "requestId", "stagger", "motion", "getIndex", "countIndex", "letterIndex", "wordIndex", "lineIndex", "perWord", "type", "variants", "children", "index", "addPropertyControls", "ControlType"]
}
