{"version":3,"file":"BRU__3njV.8aSt8Ljo.mjs","names":["useRef","React","useCallback","React.forwardRef"],"sources":["https:/framer.com/m/Utils-FINc.js","https:/framerusercontent.com/modules/bMoRFmipBzJ9ZZyOMr87/N3BI2NzoCbel1EdwScAo/TickerPath_Prod.js","https:/framerusercontent.com/modules/8r3TYQRet4PFqQ8DcFqC/cppyF1nMioS21hna4HWs/BRU__3njV.js"],"sourcesContent":["/*\n * Utils\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/aej5zpwxBpkMdzOteBwy/DWeAZ5wauvGM5oFwVdgS/Utils.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import React,{useCallback,useEffect,useRef}from\"react\";import{motion,useAnimationFrame,useMotionValue,useScroll,useSpring,useTransform,useVelocity}from\"framer-motion\";import{ControlType,addPropertyControls,RenderTarget}from\"framer\";import{ComponentMessage}from\"https://framer.com/m/Utils-FINc.js\";var OnScroll;// import { ComponentMessage } from \"../../utils/ComponentMessage\";\n// -------------------------------------------------------------- //\n// INTERFACES\n// -------------------------------------------------------------- //\n(function(OnScroll){OnScroll[\"NoChange\"]=\"No change\";OnScroll[\"SpeedUp\"]=\"Speed up\";})(OnScroll||(OnScroll={}));var Direction;(function(Direction){Direction[\"Normal\"]=\"normal\";Direction[\"Reverse\"]=\"reverse\";})(Direction||(Direction={}));var Path;(function(Path){Path[\"Preset\"]=\"preset\";Path[\"Custom\"]=\"custom\";})(Path||(Path={}));var Preset;(function(Preset){Preset[\"Spiral\"]=\"spiral\";Preset[\"Loop\"]=\"loop\";Preset[\"Wave\"]=\"wave\";Preset[\"Curly\"]=\"curly\";Preset[\"Stripes\"]=\"stripes\";})(Preset||(Preset={}));// -------------------------------------------------------------- //\n// CONSTANTS\n// -------------------------------------------------------------- //\nconst fuSvg=`\n<svg\n  width=\"550\"\n  height=\"550\"\n  viewBox=\"0 0 550 550\"\n  fill=\"none\"\n  xmlns=\"http://www.w3.org/2000/svg\"\n>\n  <g clip-path=\"url(#clip0_967_124)\">\n    <path\n      d=\"M553.75 2.5 L553.75 267.5 A10 10 0 0 1 546.971 274.314 L281.971 539.814 A10 10 0 0 1 275.157 542.593 L10 543 A10 10 0 0 1 0 533 L1.25 285 A10 10 0 0 1 4.036 277.5 L131.616 146.616 A10 10 0 0 1 141.616 146.616 L141.25 405 A10 10 0 0 1 131.25 415 L405 413.75 A10 10 0 0 1 413.75 403.75 L413.75 150 A10 10 0 0 1 416.536 142.5 L541.615 11.61612 A10 10 0 0 1 553.75 2.5\"\n      fill=\"white\"\n    />\n  </g>\n  <defs>\n    <clipPath id=\"clip0_967_124\">\n      <rect width=\"24\" height=\"24\" fill=\"white\" />\n    </clipPath>\n  </defs>\n</svg>\n`;const imgs=[/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/b9909337-7a53-48bc-9672-33fbd0f040a1?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/ecdc9dd7-2862-4c28-abb1-dcc0947390f3?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/79de41ec-baa4-4ac0-a9a4-c090005ca640?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/1a18b312-21cd-4484-bce5-9fb7ed1c5e01?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/d765f64f-7a66-462f-8b2d-3d7bc8d7db55?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/6b9f08ea-f0c5-471f-a620-71221ff1fb65?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/40a09525-4b00-4666-86f0-3c45f5d77605?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/14f05ab6-b4d0-4605-9007-8a2190a249d0?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/d05009a2-a2f8-4a4c-a0de-e1b0379dddb8?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/ba646e35-efc2-494a-961b-b40f597e6fc9?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/e899f9c3-ed48-4899-8c16-fbd5a60705da?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/24e83c11-c607-45cd-88fb-5059960b56a0?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}}),/*#__PURE__*/_jsx(\"img\",{src:\"https://cdn.cosmos.so/cd346bce-f415-4ea7-8060-99c5f7c1741a?format=jpeg\",style:{width:\"100%\",height:\"100%\",objectFit:\"cover\"}})];// -------------------------------------------------------------- //\n// FRAMER PROPERTY CONTROLS\n// -------------------------------------------------------------- //\naddPropertyControls(TickerPath,{content:{type:ControlType.Array,title:\"Content\",defaultValue:[],control:{type:ControlType.ComponentInstance}},repeat:{type:ControlType.Number,title:\"Amount\",defaultValue:2,min:1,max:100,step:1,displayStepper:true},scale:{type:ControlType.Object,controls:{scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,min:.1,max:5,step:.1,unit:\"x\"},hover:{type:ControlType.Number,title:\"Hover\",defaultValue:1.5,min:.1,max:5,step:.1,unit:\"x\"}}},path:{type:ControlType.Enum,title:\"Path\",defaultValue:\"preset\",options:[\"preset\",\"custom\"],optionTitles:[\"Preset\",\"Custom\"],displaySegmentedControl:true},preset:{type:ControlType.Enum,title:\" \",defaultValue:\"spiral\",options:[\"spiral\",\"loop\",\"wave\",\"curly\",\"stripes\"],optionTitles:[\"Spiral\",\"Loop\",\"Wave\",\"Curly\",\"Stripes\"],// displaySegmentedControl: true,\nhidden:props=>props.path!==\"preset\"},svg:{title:\" \",type:ControlType.String,defaultValue:fuSvg,description:\"Must be an SVG with a path element\",hidden:props=>props.path!==\"custom\"},fade:{type:ControlType.Boolean,title:\"Fade\",defaultValue:true},direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"normal\",options:[\"normal\",\"reverse\"],optionIcons:[\"direction-left\",\"direction-right\"],displaySegmentedControl:true},speed:{title:\"Speed\",type:ControlType.Object,controls:{speed:{title:\"Speed\",type:ControlType.Number,defaultValue:5,min:0,max:10,step:.1},hover:{title:\"Hover\",type:ControlType.Number,defaultValue:.3,min:0,max:1,step:.1,unit:\"x\"},onScroll:{title:\"On Scroll\",type:ControlType.Enum,options:[\"No change\",\"Speed up\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"}}},drag:{type:ControlType.Object,controls:{draggable:{type:ControlType.Boolean,title:\"Draggable\",defaultValue:false},dragSensitivity:{type:ControlType.Number,title:\"Sensitivity\",defaultValue:5,min:1,max:10,step:.5,hidden:props=>!props.draggable},grabCursor:{type:ControlType.Boolean,title:\"Grab Cursor\",defaultValue:false,hidden:props=>!props.draggable}},description:\"More components at [Framer University](https://frameruni.link/cc).\"}});// -------------------------------------------------------------- //\n// DEFAULT PROPS\n// -------------------------------------------------------------- //\nTickerPath.defaultProps={content:imgs,repeat:2,scale:{scale:1,hover:1.5},path:\"preset\",preset:\"spiral\",svg:fuSvg,speed:{speed:5,hover:.5,onScroll:\"No change\"},fade:true,direction:\"normal\",drag:{draggable:false,dragSensitivity:.2,grabCursor:false}};// -------------------------------------------------------------- //\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 TickerPath(props){const childrenToRender=props.content.length>0?props.content:imgs;const slowdownOnHover=props.speed.hover<1;const slowDownFactor=props.speed.hover;const containerRef=useRef(null);const transformedSensitivity=useTransform(useMotionValue(props.drag.dragSensitivity),[1,10],[.005,.1]);const presetSvgLookup={[\"spiral\"]:spiralSvg,[\"loop\"]:loopSvg,[\"wave\"]:waveSvg,[\"curly\"]:curlySvg,[\"stripes\"]:stripesSvg};const svgToRender=props.path===\"preset\"?presetSvgLookup[props.preset]:props.svg;// Make all images within container non-draggable\nuseEffect(()=>{const container=document.getElementById(\"ticker-path-container\");if(container){const images=container.getElementsByTagName(\"img\");Array.from(images).forEach(img=>{img.draggable=false;});}},[props.content])// Re-run when content changes\n;// Process children directly without transformation\nconst processedChildren=React.useMemo(()=>childrenToRender,[childrenToRender]);// State to store the extracted path\nconst[extractedPath,setExtractedPath]=React.useState(\"\");// Function to update path based on container size\nconst updatePath=React.useCallback(()=>{if(svgToRender&&containerRef.current){const containerWidth=containerRef.current.offsetWidth;const containerHeight=containerRef.current.offsetHeight;extractPathsFromSvgString(svgToRender,containerWidth,containerHeight).then(path=>{if(path){setExtractedPath(path);}}).catch(error=>{console.error(\"Failed to extract paths from SVG:\",error);});}},[props.path,props.preset,props.svg]);// Effect to handle SVG URL changes and container resizing\nReact.useEffect(()=>{updatePath();// Set up ResizeObserver to watch for container size changes\nconst resizeObserver=new ResizeObserver(()=>{updatePath();});if(containerRef.current){resizeObserver.observe(containerRef.current);}// Cleanup observer on unmount\nreturn()=>{resizeObserver.disconnect();};},[updatePath,props.content]);if(props.content.length===0){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\"},children:/*#__PURE__*/_jsx(ComponentMessage,{title:\"Ticker Path\",subtitle:\"Set up the component by connecting frames to the component or selecting the content from the component properties.\"})});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\"},id:\"ticker-path-container\",children:/*#__PURE__*/_jsx(MarqueeAlongSvgPath,{path:extractedPath,baseVelocity:props.speed.speed,direction:props.direction,slowdownOnHover:slowdownOnHover,slowDownFactor:slowDownFactor,useScrollVelocity:props.speed.onScroll===\"Speed up\",repeat:props.repeat,draggable:props.drag.draggable,dragSensitivity:transformedSensitivity.get(),grabCursor:props.drag.grabCursor,fade:props.fade,children:React.Children.map(processedChildren,(child,i)=>/*#__PURE__*/_jsx(motion.div,{style:{height:\"100%\",width:\"56px\",userSelect:\"none\",scale:props.scale.scale},whileHover:{scale:props.scale.scale*props.scale.hover,transition:{duration:.3,ease:\"easeInOut\"}},children:child},i))})});}// -------------------------------------------------------------- //\n// SUBCOMPONENT\n// -------------------------------------------------------------- //\n// Custom wrap function\nconst wrap=(min,max,value)=>{const range=max-min;return((value-min)%range+range)%range+min;};const MarqueeAlongSvgPath=({children,style,// Path defaults\npath,// pathId,\n// preserveAspectRatio = \"xMidYMid meet\",\n// showPath = false,\n// // SVG defaults\n// width = \"100%\",\n// height = \"100%\",\n// viewBox = \"0 0 100 100\",\n// Marquee defaults\nbaseVelocity=5,direction=\"normal\",easing,slowdownOnHover=false,slowDownFactor=.3,slowDownSpringConfig={damping:50,stiffness:400},// Scroll defaults\nuseScrollVelocity=false,scrollAwareDirection=true,scrollSpringConfig={damping:50,stiffness:400},// Items repetition\nrepeat=3,// Drag defaults\ndraggable=false,dragSensitivity=.2,dragVelocityDecay=.7,dragAwareDirection=false,grabCursor=false,// Z-index defaults\nenableRollingZIndex=true,zIndexBase=1,zIndexRange=10,cssVariableInterpolation=[],fade=true})=>{const container=useRef(null);const baseOffset=useMotionValue(0);// Create an array of items outside of the render function\nconst items=React.useMemo(()=>{const childrenArray=React.Children.toArray(children);return childrenArray.flatMap((child,childIndex)=>Array.from({length:repeat},(_,repeatIndex)=>{const itemIndex=repeatIndex*childrenArray.length+childIndex;const key=`${childIndex}-${repeatIndex}`;return{child,childIndex,repeatIndex,itemIndex,key};}));},[children,repeat]);// Function to calculate z-index based on offset distance\nconst calculateZIndex=useCallback(offsetDistance=>{if(!enableRollingZIndex){return undefined;}// Simple progress-based z-index\nconst normalizedDistance=offsetDistance/100;return Math.floor(zIndexBase+normalizedDistance*zIndexRange);},[enableRollingZIndex,zIndexBase,zIndexRange]);// Scroll tracking\nconst{scrollY}=useScroll({container:container.current});const scrollVelocity=useVelocity(scrollY);const smoothVelocity=useSpring(scrollVelocity,scrollSpringConfig);// Hover and drag state tracking\nconst isHovered=useRef(false);const isDragging=useRef(false);const dragVelocity=useRef(0);// Direction factor for changing direction based on scroll or drag\nconst directionFactor=useRef(direction===\"normal\"?1:-1);// Motion values for animation\nconst hoverFactorValue=useMotionValue(1);const defaultVelocity=useMotionValue(1);const smoothHoverFactor=useSpring(hoverFactorValue,slowDownSpringConfig);// Transform scroll velocity into a factor that affects marquee speed\nconst velocityFactor=useTransform(useScrollVelocity?smoothVelocity:defaultVelocity,[0,1e3],[0,5],{clamp:false});// Animation frame handler\nuseAnimationFrame((_,delta)=>{if(isDragging.current&&draggable){baseOffset.set(baseOffset.get()+dragVelocity.current);// Add decay to dragVelocity\ndragVelocity.current*=.9;// Stop completely if velocity is very small\nif(Math.abs(dragVelocity.current)<.01){dragVelocity.current=0;}return;}// Update hover factor\nif(isHovered.current){hoverFactorValue.set(slowdownOnHover?slowDownFactor:1);}else{hoverFactorValue.set(1);}// Calculate regular movement\nlet moveBy=directionFactor.current*baseVelocity*(delta/1e3)*smoothHoverFactor.get();// Adjust movement based on scroll velocity if scrollAwareDirection is enabled\nif(scrollAwareDirection&&!isDragging.current){if(velocityFactor.get()<0){directionFactor.current=-1;}else if(velocityFactor.get()>0){directionFactor.current=1;}}moveBy+=directionFactor.current*moveBy*velocityFactor.get();if(draggable){moveBy+=dragVelocity.current;// Update direction based on drag direction if dragAwareDirection is true\nif(dragAwareDirection&&Math.abs(dragVelocity.current)>.1){directionFactor.current=Math.sign(dragVelocity.current);}// Gradually decay drag velocity back to zero\nif(!isDragging.current&&Math.abs(dragVelocity.current)>.01){dragVelocity.current*=dragVelocityDecay;}else if(!isDragging.current){dragVelocity.current=0;}}baseOffset.set(baseOffset.get()+moveBy);});// Pointer event handlers for dragging\nconst lastPointerPosition=useRef({x:0,y:0});const handlePointerDown=e=>{if(!draggable)return;e.currentTarget.setPointerCapture(e.pointerId);if(grabCursor){e.currentTarget.style.cursor=\"grabbing\";}isDragging.current=true;lastPointerPosition.current={x:e.clientX,y:e.clientY};// Add global pointer event listeners\nwindow.addEventListener(\"pointerup\",handleGlobalPointerUp);window.addEventListener(\"pointercancel\",handleGlobalPointerUp);window.addEventListener(\"blur\",handleGlobalPointerUp);// Pause automatic animation by setting velocity to 0\ndragVelocity.current=0;};const handlePointerMove=e=>{if(!draggable||!isDragging.current)return;const currentPosition={x:e.clientX,y:e.clientY};// Calculate movement delta - simplified for path movement\nconst deltaX=currentPosition.x-lastPointerPosition.current.x;const deltaY=currentPosition.y-lastPointerPosition.current.y;// For path following, we use a simple magnitude of movement\nconst delta=Math.sqrt(deltaX*deltaX+deltaY*deltaY);const projectedDelta=deltaX>0?delta:-delta;// Update drag velocity based on the projected movement\ndragVelocity.current=projectedDelta*dragSensitivity;// Update last position\nlastPointerPosition.current=currentPosition;};const handleGlobalPointerUp=useCallback(e=>{if(!isDragging.current)return;isDragging.current=false;dragVelocity.current=0;// Remove global event listeners\nwindow.removeEventListener(\"pointerup\",handleGlobalPointerUp);window.removeEventListener(\"pointercancel\",handleGlobalPointerUp);window.removeEventListener(\"blur\",handleGlobalPointerUp);// Update cursor if needed\nif(grabCursor&&container.current){container.current.style.cursor=\"grab\";}},[grabCursor]);const handlePointerUp=e=>{if(!draggable)return;e.currentTarget.releasePointerCapture(e.pointerId);handleGlobalPointerUp();};// Clean up event listeners on unmount\nuseEffect(()=>{return()=>{window.removeEventListener(\"pointerup\",handleGlobalPointerUp);window.removeEventListener(\"pointercancel\",handleGlobalPointerUp);window.removeEventListener(\"blur\",handleGlobalPointerUp);};},[handleGlobalPointerUp]);// Handlers for individual item hover state, now passed down\nconst handleItemMouseEnter=useCallback(()=>{isHovered.current=true;},[]);const handleItemMouseLeave=useCallback(()=>{isHovered.current=false;},[]);return /*#__PURE__*/_jsx(\"div\",{ref:container,onPointerDown:handlePointerDown,onPointerMove:handlePointerMove,onPointerUp:handlePointerUp,onPointerCancel:handlePointerUp,style:{position:\"relative\",...style},children:items.map(({child,repeatIndex,itemIndex,key})=>/*#__PURE__*/_jsx(MarqueeItem,{itemKey:key,child:child,itemIndex:itemIndex,totalItems:items.length,repeatIndex:repeatIndex,baseOffset:baseOffset,path:path,easing:easing,enableRollingZIndex:enableRollingZIndex,calculateZIndex:calculateZIndex,draggable:draggable,grabCursor:grabCursor,cssVariableInterpolation:cssVariableInterpolation,onMouseEnter:handleItemMouseEnter,onMouseLeave:handleItemMouseLeave,fade:fade},key))});};const MarqueeItem=({child,itemIndex,totalItems,repeatIndex,baseOffset,path,easing,enableRollingZIndex,calculateZIndex,draggable,grabCursor,cssVariableInterpolation,itemKey,onMouseEnter,onMouseLeave,fade})=>{// Create a unique offset transform for this item\nconst itemOffset=useTransform(baseOffset,v=>{const position=itemIndex*100/totalItems;const wrappedValue=wrap(0,100,v+position);return`${easing?easing(wrappedValue/100)*100:wrappedValue}%`;});// Create a motion value for the current offset distance\nconst currentOffsetDistance=useMotionValue(0);// Create opacity transform based on offset distance\nconst opacity=useTransform(currentOffsetDistance,[0,10,90,100],[0,1,1,0]// Output range (opacity values)\n);const isOnFramerCanvas=RenderTarget.hasRestrictions();const finalOpacity=fade?opacity:1;// Update z-index when offset distance changes\nconst zIndex=useTransform(currentOffsetDistance,value=>calculateZIndex(value));// Update current offset distance value when animation runs\nuseEffect(()=>{const unsubscribe=itemOffset.on(\"change\",value=>{const match=value.match(/^([\\d.]+)%$/);if(match&&match[1]){currentOffsetDistance.set(parseFloat(match[1]));}});return unsubscribe;},[itemOffset,currentOffsetDistance]);// Calculate CSS variables based on the offset distance\nconst cssVariables=Object.fromEntries((cssVariableInterpolation||[]).map(({property,from,to})=>[property,useTransform(currentOffsetDistance,[0,100],[from,to])]));return /*#__PURE__*/_jsx(motion.div,{style:{offsetPath:`path('${path}')`,offsetDistance:itemOffset,opacity:isOnFramerCanvas?1:finalOpacity,zIndex:enableRollingZIndex?zIndex:undefined,position:\"absolute\",top:\"0\",left:\"0\",cursor:draggable&&grabCursor?\"grab\":\"default\",...cssVariables},\"aria-hidden\":repeatIndex>0,onMouseEnter:onMouseEnter,onMouseLeave:onMouseLeave,children:child},itemKey);};// -------------------------------------------------------------- //\n// UTILITY FUNCTIONS\n// -------------------------------------------------------------- //\n// New function to scale AND translate SVG path data\nconst scaleAndTranslateSvgPath=(pathString,scale,offsetX,offsetY)=>{if(!pathString||scale<=0)return\"\"// Added scale check\n;const commandRegex=/([MmLlHhVvCcSsQqTtAaZz])([^MmLlHhVvCcSsQqTtAaZz]*)/g;let currentX=0;let currentY=0;let startX=0// Keep track of subpath start for Z\n;let startY=0;const transformedPath=pathString.replace(commandRegex,(_match,command,params)=>{const numbers=params.trim().split(/[\\s,]+/).filter(n=>n!==\"\").map(Number)// Added type :string\n;// Handle Z command specifically as it has no parameters\nif(command.toUpperCase()===\"Z\"){// Move current point back to subpath start for internal tracking\ncurrentX=startX;currentY=startY;return command// Return 'Z' or 'z' as is\n;}// If no numbers and not Z, it's likely an error or empty command, return original\nif(numbers.length===0)return command;const transformedParams=[];const transformX=x=>x*scale+offsetX;const transformY=y=>y*scale+offsetY;const scaleValue=val=>val*scale// Scale delta or radius\n;// Helper to update current point based on original coordinates\nconst updateCurrentPoint=(x,y,isRelative)=>{if(isRelative){currentX+=x;currentY+=y;}else{currentX=x;currentY=y;}};switch(command){// Absolute commands\ncase\"M\":transformedParams.push(transformX(numbers[0]),transformY(numbers[1]));updateCurrentPoint(numbers[0],numbers[1],false);startX=currentX;startY=currentY// New subpath start\n;for(let i=2;i<numbers.length;i+=2){// Implicit LineTos\ntransformedParams.push(transformX(numbers[i]),transformY(numbers[i+1]));updateCurrentPoint(numbers[i],numbers[i+1],false);}break;case\"L\":for(let i=0;i<numbers.length;i+=2){transformedParams.push(transformX(numbers[i]),transformY(numbers[i+1]));updateCurrentPoint(numbers[i],numbers[i+1],false);}break;case\"H\":for(let i=0;i<numbers.length;i++){transformedParams.push(transformX(numbers[i]));updateCurrentPoint(numbers[i],currentY,false)// Y stays the same\n;}break;case\"V\":for(let i=0;i<numbers.length;i++){transformedParams.push(transformY(numbers[i]));updateCurrentPoint(currentX,numbers[i],false)// X stays the same\n;}break;case\"C\":for(let i=0;i<numbers.length;i+=6){transformedParams.push(transformX(numbers[i]),transformY(numbers[i+1]),transformX(numbers[i+2]),transformY(numbers[i+3]),transformX(numbers[i+4]),transformY(numbers[i+5]));updateCurrentPoint(numbers[i+4],numbers[i+5],false);}break;case\"S\":for(let i=0;i<numbers.length;i+=4){transformedParams.push(transformX(numbers[i]),transformY(numbers[i+1]),transformX(numbers[i+2]),transformY(numbers[i+3]));updateCurrentPoint(numbers[i+2],numbers[i+3],false);}break;case\"Q\":for(let i=0;i<numbers.length;i+=4){transformedParams.push(transformX(numbers[i]),transformY(numbers[i+1]),transformX(numbers[i+2]),transformY(numbers[i+3]));updateCurrentPoint(numbers[i+2],numbers[i+3],false);}break;case\"T\":for(let i=0;i<numbers.length;i+=2){transformedParams.push(transformX(numbers[i]),transformY(numbers[i+1]));updateCurrentPoint(numbers[i],numbers[i+1],false);}break;case\"A\":for(let i=0;i<numbers.length;i+=7){// Scale radii rx, ry\ntransformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]),numbers[i+2],numbers[i+3],numbers[i+4],transformX(numbers[i+5]),transformY(numbers[i+6]))// x, y\n;updateCurrentPoint(numbers[i+5],numbers[i+6],false);}break;// Relative commands\ncase\"m\":transformedParams.push(scaleValue(numbers[0]),scaleValue(numbers[1]));updateCurrentPoint(numbers[0],numbers[1],true);startX=currentX;startY=currentY// New subpath start based on relative move\n;for(let i=2;i<numbers.length;i+=2){// Implicit linetos\ntransformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]));updateCurrentPoint(numbers[i],numbers[i+1],true);}break;case\"l\":for(let i=0;i<numbers.length;i+=2){transformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]));updateCurrentPoint(numbers[i],numbers[i+1],true);}break;case\"h\":for(let i=0;i<numbers.length;i++){transformedParams.push(scaleValue(numbers[i]));updateCurrentPoint(numbers[i],0,true)// dy = 0\n;}break;case\"v\":for(let i=0;i<numbers.length;i++){transformedParams.push(scaleValue(numbers[i]));updateCurrentPoint(0,numbers[i],true)// dx = 0\n;}break;case\"c\":for(let i=0;i<numbers.length;i+=6){transformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]),scaleValue(numbers[i+2]),scaleValue(numbers[i+3]),scaleValue(numbers[i+4]),scaleValue(numbers[i+5]));updateCurrentPoint(numbers[i+4],numbers[i+5],true);}break;case\"s\":for(let i=0;i<numbers.length;i+=4){transformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]),scaleValue(numbers[i+2]),scaleValue(numbers[i+3]));updateCurrentPoint(numbers[i+2],numbers[i+3],true);}break;case\"q\":for(let i=0;i<numbers.length;i+=4){transformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]),scaleValue(numbers[i+2]),scaleValue(numbers[i+3]));updateCurrentPoint(numbers[i+2],numbers[i+3],true);}break;case\"t\":for(let i=0;i<numbers.length;i+=2){transformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]));updateCurrentPoint(numbers[i],numbers[i+1],true);}break;case\"a\":for(let i=0;i<numbers.length;i+=7){// Scale radii and final dx/dy\ntransformedParams.push(scaleValue(numbers[i]),scaleValue(numbers[i+1]),numbers[i+2],numbers[i+3],numbers[i+4],scaleValue(numbers[i+5]),scaleValue(numbers[i+6]))// dx, dy\n;updateCurrentPoint(numbers[i+5],numbers[i+6],true);}break;}// Join parameters for the current command\n// Use space as separator, handle potential extra spaces if params is empty (though unlikely now)\nreturn command+(transformedParams.length>0?\" \"+transformedParams.join(\" \"):\"\");});return transformedPath;};const extractPathsFromSvgString=async(svgString,containerWidth,containerHeight)=>{try{if(!svgString){console.warn(\"SVG string is empty.\");return\"\";}if(containerWidth<=0||containerHeight<=0){console.warn(\"Container dimensions are invalid.\");return\"\"// Cannot scale to zero or negative size\n;}const parser=new DOMParser;const svgDoc=parser.parseFromString(svgString,\"image/svg+xml\");const parserError=svgDoc.querySelector(\"parsererror\");if(parserError){console.error(\"SVG parsing error:\",parserError);throw new Error(\"Invalid SVG format\");}const pathElements=svgDoc.querySelectorAll(\"path\");const paths=Array.from(pathElements).map(path=>path.getAttribute(\"d\")).filter(d=>d!==null);if(paths.length===0){throw new Error(\"No paths found in SVG\");}// Get SVG dimensions\nconst svgElement=svgDoc.querySelector(\"svg\");const viewBox=svgElement?.getAttribute(\"viewBox\")?.split(\" \").map(Number);const svgWidth=parseFloat(svgElement?.getAttribute(\"width\")||\"100\");const svgHeight=parseFloat(svgElement?.getAttribute(\"height\")||\"100\");// Get original dimensions based on viewBox (preferred) or width/height\nlet originalWidth;let originalHeight;let viewBoxMinX=0;let viewBoxMinY=0;if(viewBox&&viewBox.length===4){viewBoxMinX=viewBox[0];viewBoxMinY=viewBox[1];originalWidth=viewBox[2];originalHeight=viewBox[3];}else{// Fallback to width/height, assuming viewBox starts at 0,0 if not specified\noriginalWidth=svgWidth;originalHeight=svgHeight;}if(originalWidth<=0||originalHeight<=0){console.error(\"Invalid original SVG dimensions (width/height or viewBox width/height must be positive).\");throw new Error(\"Invalid SVG dimensions\");}// Calculate scaling factors to fit container while maintaining aspect ratio ('meet')\nconst scaleX=containerWidth/originalWidth;const scaleY=containerHeight/originalHeight;const scale=Math.min(scaleX,scaleY)// Use the smaller scale factor to fit\n;// Calculate the dimensions of the scaled SVG content\nconst scaledWidth=originalWidth*scale;const scaledHeight=originalHeight*scale;// Calculate the translation offset needed to center the scaled content ('xMidYMid')\n// We also need to account for the viewBox minX/minY offset\nconst offsetX=(containerWidth-scaledWidth)/2-viewBoxMinX*scale;const offsetY=(containerHeight-scaledHeight)/2-viewBoxMinY*scale;// Scale, translate, and join all paths\nconst transformedPaths=paths.map(path=>scaleAndTranslateSvgPath(path,scale,offsetX,offsetY));const finalPath=transformedPaths.join(\" \");return finalPath;}catch(error){console.error(\"Error extracting paths from SVG:\",error);return\"\";}};// -------------------------------------------------------------- //\n// SVG PRESETS\n// -------------------------------------------------------------- //\nconst spiralSvg=`\n<svg width=\"554\" height=\"504\" viewBox=\"0 0 554 504\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M552.252 227.051C548.029 306.06 512.971 378.902 455.545 430.344C400.585 479.577 327.738 506.39 252.252 502.051C181.842 498.004 114.56 466.734 66.6361 412.667C22.0061 362.315 -2.09651 295.787 2.25209 227.051C6.32059 162.744 35.3062 101.999 84.3141 59.1129C130.089 19.0564 190.301 -2.3067 252.252 2.0509C309.676 6.09001 364.17 32.2761 402.512 76.7909C437.912 117.89 456.63 171.763 452.252 227.051C448.208 278.129 424.467 326.176 384.835 359.634C348.269 390.502 300.695 406.437 252.252 402.051C207.796 398.026 166.087 376.909 137.347 341.956C111.016 309.933 97.8551 268.651 102.252 227.051C106.263 189.106 124.83 153.774 155.025 129.824C182.472 108.054 217.447 97.6339 252.252 102.051C283.787 106.053 312.708 122.137 331.802 147.501C349.184 170.594 356.655 199.315 352.252 227.051C348.202 252.565 334.364 274.9 314.124 288.923C295.634 301.733 273.22 306.492 252.252 302.051C233.275 298.032 217.287 286.766 208.058 271.245C199.787 257.335 197.75 241.215 202.252 227.051C206.273 214.401 215.087 204.843 225.735 200.534C235.225 196.695 245.107 197.508 252.252 202.051C258.669 206.132 261.767 212.558 261.091 218.212\" stroke=\"white\" stroke-width=\"1\"/>\n</svg>\n`;const loopSvg=`\n<svg width=\"871\" height=\"295\" viewBox=\"0 0 871 295\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M1.08594 231.344C352.809 387.946 512.017 209.267 529.76 135.148C543.975 75.7694 504.152 0.618567 446.536 0.61853C388.986 0.618494 339.625 59.6711 355.081 135.148C372.658 220.984 539.76 378.328 869.94 231.344\" stroke=\"white\"/>\n</svg>\n`;const waveSvg=`\n<svg width=\"1255\" height=\"233\" viewBox=\"0 0 1255 233\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M1.20703 116.533C105.589 -36.9698 209.971 -36.9698 314.353 116.533C418.736 270.036 523.118 270.036 627.5 116.533C731.882 -36.9698 836.264 -36.9698 940.646 116.533C1045.03 270.036 1149.41 270.036 1253.79 116.533\" stroke=\"white\"/>\n</svg>\n`;const curlySvg=`\n<svg width=\"864\" height=\"839\" viewBox=\"0 0 864 839\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M1.23828 418.527C862.941 -138.096 -429.613 -138.096 432.09 418.527C1293.79 975.151 1.23828 979.368 862.941 418.527\" stroke=\"white\"/>\n</svg>\n`;const stripesSvg=`\n<svg width=\"1823\" height=\"756\" viewBox=\"0 0 1823 756\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M755.676 0.524414L1.20703 754.994M534.32 754.994L1288.79 0.524414M1821.9 0.52448L1067.43 754.994\" stroke=\"white\"/>\n</svg>\n`;TickerPath.displayName=\"Ticker Path\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"TickerPath\",\"slots\":[],\"annotations\":{\"framerIntrinsicWidth\":\"400\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TickerPath_Prod.map","// Generated by Framer (9805f18)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{cx,motion,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(motion.img,{...rest,layoutId:layoutId,ref:ref}):/*#__PURE__*/_jsx(\"img\",{...rest,ref:ref});});const getProps=({height,id,width,...props})=>{return{...props};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,...restProps}=getProps(props);return /*#__PURE__*/_jsx(SVG,{...restProps,alt:\"\",className:cx(\"framer-sm1WU\",className),layoutId:layoutId,ref:ref,src:'data:image/svg+xml,<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 1200 1200\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 190.588 127.164 C 190.646 119.367 190.14 111.607 189.073 103.883 C 188.005 96.159 186.385 88.549 184.213 81.06 C 182.047 73.57 179.343 66.279 176.12 59.18 C 172.89 52.086 169.166 45.258 164.953 38.701 C 164.078 37.289 163.161 35.909 162.203 34.56 C 161.245 33.206 160.25 31.888 159.208 30.596 C 158.172 29.305 157.099 28.044 155.984 26.82 C 154.87 25.596 153.718 24.404 152.531 23.247 C 151.349 22.091 150.125 20.971 148.87 19.893 C 147.62 18.81 146.333 17.768 145.015 16.763 C 143.698 15.758 142.349 14.794 140.974 13.872 C 139.599 12.951 138.198 12.07 136.765 11.232 C 135.338 10.398 133.885 9.602 132.406 8.852 C 130.932 8.107 129.432 7.404 127.911 6.742 C 126.39 6.086 124.854 5.471 123.297 4.909 C 121.739 4.346 120.166 3.826 118.578 3.357 C 116.989 2.888 115.39 2.466 113.776 2.096 C 112.161 1.721 110.536 1.398 108.906 1.128 C 107.271 0.852 105.63 0.628 103.984 0.456 C 102.338 0.279 100.687 0.154 99.031 0.081 C 97.375 0.008 95.724 -0.018 94.067 0.013 C 92.411 0.039 90.755 0.112 89.104 0.242 C 87.453 0.367 85.807 0.544 84.166 0.768 C 82.526 0.997 80.896 1.273 79.271 1.596 C 77.646 1.924 76.031 2.299 74.432 2.721 C 72.833 3.143 71.245 3.617 69.672 4.138 C 68.099 4.654 66.541 5.221 65.005 5.836 C 63.468 6.451 61.948 7.112 60.453 7.815 C 58.953 8.523 57.479 9.273 56.026 10.07 C 54.573 10.867 53.146 11.706 51.745 12.586 C 50.338 13.471 48.968 14.393 47.62 15.357 C 46.276 16.326 44.958 17.331 43.677 18.378 C 42.39 19.419 41.14 20.503 39.922 21.628 C 38.703 22.747 37.515 23.904 36.37 25.096 C 35.218 26.289 34.109 27.518 33.031 28.779 C 31.958 30.039 30.922 31.331 29.927 32.654 C -11.828 83.398 -9.464 177.482 34.354 225.966 C 107.489 302.232 193.401 216.935 190.588 127.164 Z M 190.588 127.164\" fill=\"rgb(0, 0, 0)\" height=\"255.5009529543354px\" id=\"HnfiAJqu4\" transform=\"translate(396.391 282.683)\" width=\"190.6555500668087px\"/><path d=\"M 166.31 130.195 C 166.367 124.94 166.148 119.695 165.659 114.466 C 165.164 109.232 164.404 104.039 163.367 98.888 C 162.331 93.737 161.034 88.654 159.466 83.638 C 157.898 78.622 156.076 73.701 153.997 68.872 C 151.914 64.05 149.591 59.346 147.018 54.763 C 144.445 50.18 141.638 45.747 138.602 41.456 C 135.565 37.169 132.315 33.05 128.846 29.102 C 125.378 25.154 121.716 21.399 117.857 17.831 C 116.898 16.945 115.919 16.086 114.914 15.253 C 113.909 14.425 112.878 13.622 111.826 12.852 C 110.773 12.081 109.695 11.341 108.602 10.633 C 107.503 9.93 106.388 9.253 105.253 8.612 C 104.117 7.971 102.961 7.362 101.789 6.789 C 100.617 6.216 99.43 5.675 98.227 5.169 C 97.023 4.669 95.805 4.201 94.576 3.768 C 93.341 3.331 92.102 2.935 90.846 2.576 C 89.591 2.216 88.331 1.893 87.055 1.612 C 85.784 1.326 84.503 1.076 83.216 0.867 C 81.924 0.659 80.633 0.487 79.336 0.352 C 78.039 0.216 76.737 0.122 75.435 0.065 C 74.128 0.008 72.826 -0.013 71.523 0.008 C 70.216 0.024 68.914 0.081 67.612 0.18 C 66.31 0.274 65.013 0.409 63.721 0.581 C 62.43 0.753 61.138 0.961 59.857 1.206 C 58.576 1.456 57.305 1.742 56.039 2.065 C 54.779 2.383 53.523 2.742 52.279 3.138 C 51.034 3.534 49.805 3.966 48.586 4.435 C 47.367 4.904 46.164 5.409 44.977 5.945 C 43.789 6.487 42.617 7.06 41.466 7.669 C 40.31 8.274 39.174 8.919 38.055 9.591 C 36.94 10.268 35.841 10.971 34.768 11.711 C 33.695 12.451 32.638 13.221 31.612 14.024 C 30.581 14.82 29.576 15.654 28.591 16.513 C 27.612 17.372 26.654 18.263 25.727 19.175 C 24.799 20.091 23.893 21.034 23.023 22.003 C 22.148 22.971 21.305 23.966 20.487 24.987 C 19.674 26.003 18.888 27.044 18.133 28.112 C 17.378 29.175 16.659 30.263 15.966 31.367 C 15.273 32.477 14.617 33.602 13.992 34.747 C 13.367 35.893 12.779 37.06 12.221 38.237 C -20.378 103.742 14.044 222.591 93.966 226.852 C 143.419 226.024 167.211 178.742 166.31 130.195 Z M 166.31 130.195\" fill=\"rgb(0, 0, 0)\" height=\"226.8516451772947px\" id=\"c0ZBAoLZv\" transform=\"translate(232.227 454.839)\" width=\"166.33455902947276px\"/><path d=\"M 533.41 170.354 C 495.832 134.24 454.358 94.907 402.816 46.714 C 398.91 43.042 394.842 39.558 390.608 36.261 C 386.373 32.969 381.998 29.875 377.477 26.99 C 372.957 24.104 368.311 21.438 363.54 18.99 C 358.769 16.537 353.894 14.318 348.915 12.323 C 343.936 10.328 338.878 8.573 333.733 7.052 C 328.592 5.532 323.389 4.256 318.123 3.219 C 312.863 2.188 307.566 1.401 302.227 0.86 C 296.894 0.323 291.545 0.037 286.181 0 C 280.931 -0.01 275.691 0.224 270.462 0.703 C 265.233 1.183 260.035 1.907 254.873 2.87 C 249.712 3.839 244.608 5.042 239.556 6.485 C 234.509 7.927 229.535 9.604 224.644 11.511 C 219.753 13.422 214.957 15.552 210.264 17.907 C 205.571 20.266 200.998 22.834 196.545 25.62 C 192.092 28.401 187.78 31.391 183.608 34.578 C 179.431 37.766 175.415 41.141 171.556 44.703 C 119.483 93.162 76.8 133.573 37.342 171.698 C -43.991 245.157 17.649 388.953 125.118 385.412 C 170.977 384.495 210.717 366.62 254.368 358.969 C 297.457 351.985 337.988 360.979 386.441 373.599 C 398.477 377.808 410.811 380.828 423.431 382.657 C 436.05 384.485 448.727 385.089 461.467 384.474 C 562.983 377.349 611.285 237.756 533.41 170.354 Z M 533.41 170.354\" fill=\"rgb(0, 0, 0)\" height=\"385.4760227682841px\" id=\"tSoBlAatZ\" transform=\"translate(321.601 580.472)\" width=\"571.9536796608678px\"/><path d=\"M 61.709 8.931 C 11.584 39.91 -7.338 102.843 2.521 160.223 C 13.516 229.374 89.599 253.16 135.266 192.306 C 140.11 185.889 144.433 179.139 148.24 172.056 C 152.047 164.968 155.287 157.634 157.964 150.051 C 160.636 142.468 162.719 134.723 164.198 126.817 C 165.683 118.91 166.552 110.942 166.802 102.9 C 171.172 38.259 124.412 -23.553 61.709 8.931 Z M 61.709 8.931\" fill=\"rgb(0, 0, 0)\" height=\"227.2208984058587px\" id=\"YE3kYCXjr\" transform=\"translate(816.922 454.479)\" width=\"167.0852019414479px\"/><path d=\"M 190.45 128.251 C 194.142 31.235 100.398 -49.567 27.778 36.428 C -11.035 87.579 -8.904 175.537 32.476 224.37 C 104.085 304.886 194.715 218.193 190.45 128.251 Z M 190.45 128.251\" fill=\"rgb(0, 0, 0)\" height=\"256.2757286328839px\" id=\"opPbe1vnv\" transform=\"translate(628.722 281.862)\" width=\"190.59479811276117px\"/></svg>',style:{...style}});});const css=[`.framer-sm1WU { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; user-select: none; width: 1200px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 1200\n * @framerIntrinsicHeight 1200\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"5\",\"color\":{\"type\":\"static\",\"value\":\"rgb(0,0,0)\"},\"set\":{\"localId\":\"vectorSet/rPAbwyi5a\",\"id\":\"rPAbwyi5a\",\"moduleId\":\"XuX9cGImPlmbT7jIpNFt\"}}\n */const Icon=withCSS(Component,css,\"framer-sm1WU\");Icon.displayName=\"5\";export default Icon;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerVector\":\"{\\\"name\\\":\\\"5\\\",\\\"color\\\":{\\\"type\\\":\\\"static\\\",\\\"value\\\":\\\"rgb(0,0,0)\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/rPAbwyi5a\\\",\\\"id\\\":\\\"rPAbwyi5a\\\",\\\"moduleId\\\":\\\"XuX9cGImPlmbT7jIpNFt\\\"}}\",\"framerIntrinsicWidth\":\"1200\",\"framerIntrinsicHeight\":\"1200\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}