{"version":3,"file":"Animator_Basic_With_Scroll.rMCBtSSL.mjs","names":["useRef","gsap","ScrollTrigger","Children"],"sources":["https:/framerusercontent.com/modules/zDZmPs9SMXZGCkq3DBFr/ovwBM12yw3SYetuDRU8Q/Animator_Basic_With_Scroll.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useRef,useLayoutEffect,Children}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import gsap from\"gsap\";import{ScrollTrigger}from\"gsap/ScrollTrigger\";gsap.registerPlugin(ScrollTrigger);export default function Animator(props){const{animate,slots=[],start,end,scrub}=props;const pathRef=useRef(null);const triggerRef=useRef(null);useLayoutEffect(()=>{if(!animate)return;if(RenderTarget.current()===RenderTarget.canvas)return;const pathEl=pathRef.current;if(!pathEl)return;let length=0;try{length=pathEl.getTotalLength();}catch{return;}pathEl.style.strokeDasharray=String(length);pathEl.style.strokeDashoffset=String(length);const ctx=gsap.context(()=>{const tween=gsap.fromTo(pathEl,{strokeDashoffset:length},{strokeDashoffset:0,ease:\"none\",duration:1});const scrubValue=Number(scrub);triggerRef.current=ScrollTrigger.create({trigger:pathEl,start:start||\"top 50%\",end:end||\"bottom 50%\",scrub:scrubValue>0?scrubValue:false,animation:tween,toggleActions:\"play none none none\"});});return()=>{triggerRef.current?.kill();triggerRef.current=null;ctx.revert();};},[animate,start,end,scrub]);const hasChildren=Children.count(slots)>0;if(!hasChildren){return /*#__PURE__*/_jsxs(\"div\",{style:placeholderStyles,children:[/*#__PURE__*/_jsx(\"div\",{style:emojiStyles,children:\"✍️\"}),/*#__PURE__*/_jsx(\"p\",{style:titleStyles,children:\"Connect to Graphic\"}),/*#__PURE__*/_jsx(\"p\",{style:subtitleStyles,children:\"Animates single or joined paths on Web Pages only.\"})]});}const firstChild=getFirstChild(slots);const svgChild=getFirstChild(firstChild?.props?.svg);if(!svgChild||RenderTarget.current()===RenderTarget.canvas){return firstChild;}const attributes=svgChild.match(/[\\w-]+=\"[^\"]*\"/g)||[];let pathD,stroke,strokeWidth,strokeLinecap,strokeLinejoin;for(const attr of attributes){if(attr.includes(\"d=\"))pathD=splitAndReplace(attr);if(attr.includes(\"stroke=\"))stroke=splitAndReplace(attr);if(attr.includes(\"stroke-width=\"))strokeWidth=splitAndReplace(attr);if(attr.includes(\"stroke-linecap=\"))strokeLinecap=splitAndReplace(attr);if(attr.includes(\"stroke-linejoin=\"))strokeLinejoin=splitAndReplace(attr);}const viewBoxMatch=svgChild.match(/viewBox=\"([^\"]+)\"/);const svgViewbox=viewBoxMatch?.[1];const safeStroke=stroke||\"currentColor\";const safeStrokeWidth=strokeWidth||2;return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",placeContent:\"center\",placeItems:\"center\",backgroundColor:\"transparent\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"svg\",{xmlns:\"http://www.w3.org/2000/svg\",width:\"100%\",height:\"100%\",viewBox:svgViewbox,preserveAspectRatio:\"xMidYMid meet\",children:/*#__PURE__*/_jsx(\"path\",{ref:pathRef,d:pathD,stroke:safeStroke,strokeWidth:safeStrokeWidth,strokeLinejoin:strokeLinejoin,strokeLinecap:strokeLinecap,fill:\"transparent\"})})});}// Defaults\nAnimator.defaultProps={animate:true,start:\"top 50%\",end:\"bottom 50%\",scrub:.5};// Property Controls\naddPropertyControls(Animator,{slots:{type:ControlType.ComponentInstance,title:\"Children\"},animate:{title:\"Animate\",type:ControlType.Boolean,defaultValue:Animator.defaultProps.animate,enabledTitle:\"True\",disabledTitle:\"False\"},start:{title:\"Start\",type:ControlType.String,defaultValue:Animator.defaultProps.start,placeholder:\"e.g. top 60%\"},end:{title:\"End\",type:ControlType.String,defaultValue:Animator.defaultProps.end,placeholder:\"e.g. bottom 40%\"},scrub:{title:\"Scrub\",type:ControlType.Number,defaultValue:Animator.defaultProps.scrub,min:0,step:.1,displayStepper:true}});// Helpers\nconst splitAndReplace=str=>str.split(\"=\")[1].replace(/['\"]+/g,\"\");function getFirstChild(slots){let firstChild;Children.map(slots,child=>{if(firstChild===undefined)firstChild=child;});return firstChild;}\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Animator\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Animator_Basic_With_Scroll.map"],"mappings":"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"}