{"version":3,"file":"SquiggleEffect_Prod.DTRmvTz7.mjs","names":["React.useState","React.useRef","React.Fragment"],"sources":["https:/framerusercontent.com/modules/9Utm1i17lc4epzKrGohm/jWkNAey9UMNUTfqwNwok/SquiggleEffect_Prod.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType}from\"framer\";import{motion}from\"framer-motion\";/**\n * @framerDisableUnlink\n *\n * @framerSupportedLayoutWidth any-prefer-auto\n * @framerSupportedLayoutHeight any-prefer-auto\n */export default function TurbulentDisplace(props){const{text,font,fontColor,frequency,octaves,scale,animation,mode}=props;const[seed,setSeed]=React.useState(Math.floor(Math.random()*1e3));const[currentScale,setCurrentScale]=React.useState(scale);const[filterKey,setFilterKey]=React.useState(0);const turbulenceRef=React.useRef(null);const displacementMapRef=React.useRef(null);const overlayRef=React.useRef(null);// Use a ref to store a stable filter ID\nconst filterIdRef=`framer-university-${Math.random().toString(36).substr(2,9)}`;React.useEffect(()=>{setCurrentScale(scale);},[scale]);React.useEffect(()=>{setFilterKey(prevKey=>prevKey+1);},[frequency,octaves,scale]);React.useEffect(()=>{if(animation.animate){const interval=setInterval(()=>{const newSeed=Math.floor(Math.random()*1e3);const strengthPercentage=animation.strength/100;const maxDeviation=scale*strengthPercentage;const newScale=scale+(Math.random()*2-1)*maxDeviation;setSeed(newSeed);setCurrentScale(newScale);if(turbulenceRef.current){turbulenceRef.current.setAttribute(\"seed\",newSeed.toString());}if(displacementMapRef.current){displacementMapRef.current.setAttribute(\"scale\",newScale.toString());}if(overlayRef.current){overlayRef.current.style.filter=`url(#${filterIdRef})`;overlayRef.current.style.backdropFilter=`url(#${filterIdRef})`;}},animation.delay);return()=>clearInterval(interval);}},[animation,scale]);const baseFrequency=frequency/100*Math.pow(1.1,octaves-1);const filterSvg=/*#__PURE__*/_jsx(\"svg\",{style:{width:0,height:0,position:\"absolute\"},\"aria-hidden\":\"true\",focusable:\"false\",children:/*#__PURE__*/_jsx(\"defs\",{children:/*#__PURE__*/_jsxs(\"filter\",{id:filterIdRef,\"color-interpolation-filters\":\"sRGB\",children:[/*#__PURE__*/_jsx(\"feTurbulence\",{ref:turbulenceRef,type:\"fractalNoise\",baseFrequency:baseFrequency,numOctaves:octaves,seed:seed,stitchTiles:\"stitch\"}),/*#__PURE__*/_jsx(\"feDisplacementMap\",{ref:displacementMapRef,in:\"SourceGraphic\",scale:currentScale,xChannelSelector:\"R\",yChannelSelector:\"G\"})]})})});const contentStyle={family:\"Inter\",weight:800,fontSize:56,lineHeight:1.2,letterSpacing:\"-0.03em\",...font,color:fontColor,width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"center\",justifyContent:font.textAlign===\"center\"?\"center\":font.textAlign===\"right\"?\"flex-end\":\"flex-start\"};const overlayStyle={position:\"absolute\",top:0,left:0,width:\"100%\",height:\"100%\",pointerEvents:\"none\",backdropFilter:`url(#${filterIdRef})`,WebkitBackdropFilter:`url(#${filterIdRef})`,filter:`url(#${filterIdRef})`};return /*#__PURE__*/_jsxs(React.Fragment,{children:[filterSvg,mode===\"overlay\"?/*#__PURE__*/_jsx(\"div\",{ref:overlayRef,style:overlayStyle},filterKey):/*#__PURE__*/_jsx(motion.div,{style:{...contentStyle,filter:`url(#${filterIdRef})`},children:text})]});}TurbulentDisplace.displayName=\"Squiggle Effect\";TurbulentDisplace.defaultProps={mode:\"text\",text:\"Squiggle Effect\",font:{family:\"Inter\",style:\"normal\",weight:800,fontSize:44,lineHeight:1.5,letterSpacing:0,textAlign:\"center\",textTransform:\"none\"},fontColor:\"#fff\",frequency:2,octaves:2,scale:5,animation:{animate:true,strength:5,delay:100}};addPropertyControls(TurbulentDisplace,{mode:{type:ControlType.Enum,title:\"Mode\",options:[\"text\",\"overlay\"],optionTitles:[\"Text\",\"Overlay\"],description:\"Apply 'pointer-events: none' style on the component when using it in overlay mode.\",defaultValue:\"text\",displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},text:{type:ControlType.String,title:\"Text\",hidden:props=>props.mode===\"overlay\"},font:{type:ControlType.Font,controls:\"extended\",title:\"Font\",hidden:props=>props.mode===\"overlay\"},fontColor:{type:ControlType.Color,title:\"Font Color\",hidden:props=>props.mode===\"overlay\"},frequency:{type:ControlType.Number,title:\"Frequency\",min:0,max:100,step:1},octaves:{type:ControlType.Number,title:\"Octaves\",min:1,max:10,step:1},scale:{type:ControlType.Number,title:\"Scale\",min:1,max:500,step:1},animation:{type:ControlType.Object,description:\"More components at [Framer University](https://frameruni.link/cc).\",controls:{animate:{type:ControlType.Boolean,title:\"Animate\"},strength:{type:ControlType.Number,title:\"Flux\",description:\"Controls how much the 'Scale' property fluctuates during the animation, as a percentage of the Scale value.\",min:0,max:100,step:1,unit:\"%\",hidden:props=>!props.animate},delay:{type:ControlType.Number,title:\"Delay\",min:0,max:1e4,step:10,unit:\"ms\",hidden:props=>!props.animate}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TurbulentDisplace\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-auto\",\"framerDisableUnlink\":\"*\",\"framerSupportedLayoutHeight\":\"any-prefer-auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SquiggleEffect_Prod.map"],"mappings":"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"}