{"version":3,"file":"shared-lib.DuwCHkK2.mjs","names":["React.useContext","React.useMemo","React.Fragment","React.forwardRef","React.useRef","React.useId","SVG","RichText","UtilsComponentMessage","React","useRef","useState","useCallback","metadata","metadata","siteMetadata","metadataVersion","__FramerMetadata__","siteMetadata"],"sources":["https:/framerusercontent.com/modules/fMDE7Cqb2uOvQFAHEP2m/cRfVFRl0izzBulKFjOAe/W7oLCU4_B.js","https:/framer.com/m/Utils-Component-Message-ZVoG.js@cRfVFRl0izzBulKFjOAe","https:/framerusercontent.com/modules/aej5zpwxBpkMdzOteBwy/DWeAZ5wauvGM5oFwVdgS/Utils.js","https:/framer.com/m/Utils-FINc.js","https:/framerusercontent.com/modules/WwuOTZRJEyY69hD6nKH1/RJFRA6pikoLa6kIjnh8G/AnimateAlongPath_Prod.js","https:/framerusercontent.com/modules/cO5vhO36OUltwdZEKX3I/HsycKxC2dFL7AFFQVTm5/siteMetadata.js","https:/framerusercontent.com/modules/Dyac1sjhdBs58qiFI5xz/Wcsb4SvJmwyzDV76SSih/augiA20Il.js","https:/framerusercontent.com/modules/MxG5uoQAwlXWgEgZidGM/ZF87iVAoCvR9Bxedm7wO/lSnIKRcVz.js"],"sourcesContent":["// Generated by Framer (0b8b5e5)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ControlType,cx,RichText,SVG,useComponentViewport,useLocaleInfo,useVariantState,withCSS}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";const serializationHash=\"framer-q8Ttd\";const variantClassNames={XvqTw0Be9:\"framer-v-jjcw9a\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants===null||variants===void 0?void 0:variants.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value!==null&&value!==void 0?value:config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion(React.Fragment);const getProps=({height,id,subtitle,title,width,...props})=>{var _ref,_ref1;return{...props,WuF2iG84P:(_ref=subtitle!==null&&subtitle!==void 0?subtitle:props.WuF2iG84P)!==null&&_ref!==void 0?_ref:\"Set up the component by adding background and bouncer elements to the component properties.\",yeAnKbEUZ:(_ref1=title!==null&&title!==void 0?title:props.yeAnKbEUZ)!==null&&_ref1!==void 0?_ref1:\"Screen Saver\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{activeLocale,setLocale}=useLocaleInfo();const{style,className,layoutId,variant,yeAnKbEUZ,WuF2iG84P,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({defaultVariant:\"XvqTw0Be9\",variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const ref1=React.useRef(null);const defaultLayoutId=React.useId();const sharedStyleClassNames=[];const componentViewport=useComponentViewport();return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId!==null&&layoutId!==void 0?layoutId:defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsx(motion.div,{...restProps,...gestureHandlers,className:cx(serializationHash,...sharedStyleClassNames,\"framer-jjcw9a\",className,classNames),\"data-framer-name\":\"Default\",layoutDependency:layoutDependency,layoutId:\"XvqTw0Be9\",ref:ref!==null&&ref!==void 0?ref:ref1,style:{backgroundColor:\"rgba(136, 85, 255, 0.1)\",...style},children:/*#__PURE__*/_jsxs(motion.div,{className:\"framer-uh2i08\",layoutDependency:layoutDependency,layoutId:\"aM7oiNoFL\",children:[/*#__PURE__*/_jsx(SVG,{className:\"framer-flw0dh\",\"data-framer-name\":\"Logo\",layout:\"position\",layoutDependency:layoutDependency,layoutId:\"GthLmGmBt\",opacity:1,svg:'<svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" viewBox=\"0 0 28 28\"><g id=\"ss11036020200_1\"><path d=\"M 0 0 L 28 0 L 28 28 L 0 28 Z\" fill=\"transparent\"></path><path d=\"M 21 7.113 C 21 7.041 21.029 6.971 21.079 6.921 L 27.534 0.465 C 27.613 0.388 27.73 0.365 27.831 0.407 C 27.933 0.449 28 0.548 28 0.658 L 28 13.888 C 28 13.96 27.971 14.028 27.921 14.079 L 21 21 Z M 7 21 L 7 7.658 C 7 7.548 6.933 7.449 6.831 7.407 C 6.73 7.365 6.613 7.388 6.534 7.465 L 0.079 13.921 C 0.028 13.972 0 14.041 0 14.113 L 0 27.728 C 0 27.877 0.122 28 0.273 28 L 13.888 28 C 13.96 28 14.028 27.971 14.079 27.921 L 21 21 Z\" fill=\"rgb(153, 102, 255)\"></path></g></svg>',svgContentId:11036020200,withExternalLayout:true}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-k3ullq\",layoutDependency:layoutDependency,layoutId:\"E3DQBYSAf\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--font-selector\":\"SW50ZXItQm9sZA==\",\"--framer-font-family\":'\"Inter\", \"Inter Placeholder\", sans-serif',\"--framer-font-size\":\"11px\",\"--framer-font-weight\":\"700\",\"--framer-letter-spacing\":\"-0.02em\",\"--framer-line-height\":\"1em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgb(153, 102, 255))\"},children:\"Screen Saver\"})}),className:\"framer-q0gs4u\",\"data-framer-name\":\"Title\",fonts:[\"Inter-Bold\"],layoutDependency:layoutDependency,layoutId:\"UqJwZqJjg\",style:{\"--extracted-r6o4lv\":\"rgb(153, 102, 255)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:yeAnKbEUZ,verticalAlignment:\"top\",withExternalLayout:true}),/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{style:{\"--framer-font-size\":\"11px\",\"--framer-letter-spacing\":\"-0.03em\",\"--framer-line-height\":\"1.4em\",\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(153, 102, 255, 0.7))\"},children:\"Set up the component by adding background and bouncer elements to the component properties.\"})}),className:\"framer-g5dqhc\",\"data-framer-name\":\"Subtitle\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"RJ7UF99m8\",style:{\"--extracted-r6o4lv\":\"rgba(153, 102, 255, 0.7)\",\"--framer-link-text-color\":\"rgb(0, 153, 255)\",\"--framer-link-text-decoration\":\"underline\"},text:WuF2iG84P,verticalAlignment:\"top\",withExternalLayout:true})]})]})})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-q8Ttd.framer-qanqo2, .framer-q8Ttd .framer-qanqo2 { display: block; }\",\".framer-q8Ttd.framer-jjcw9a { align-content: center; align-items: center; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: 200px; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 400px; }\",\".framer-q8Ttd .framer-uh2i08 { align-content: center; align-items: center; display: flex; flex: 1 0 0px; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: hidden; padding: 0px 20px 0px 20px; position: relative; width: 1px; }\",\".framer-q8Ttd .framer-flw0dh { flex: none; height: 28px; position: relative; width: 28px; }\",\".framer-q8Ttd .framer-k3ullq { align-content: center; align-items: center; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 12px; height: min-content; justify-content: center; max-width: 200px; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-q8Ttd .framer-q0gs4u, .framer-q8Ttd .framer-g5dqhc { flex: none; height: auto; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\"@supports (background: -webkit-named-image(i)) and (not (font-palette:dark)) { .framer-q8Ttd.framer-jjcw9a, .framer-q8Ttd .framer-uh2i08, .framer-q8Ttd .framer-k3ullq { gap: 0px; } .framer-q8Ttd.framer-jjcw9a > * { margin: 0px; margin-left: calc(10px / 2); margin-right: calc(10px / 2); } .framer-q8Ttd.framer-jjcw9a > :first-child { margin-left: 0px; } .framer-q8Ttd.framer-jjcw9a > :last-child { margin-right: 0px; } .framer-q8Ttd .framer-uh2i08 > * { margin: 0px; margin-bottom: calc(16px / 2); margin-top: calc(16px / 2); } .framer-q8Ttd .framer-uh2i08 > :first-child, .framer-q8Ttd .framer-k3ullq > :first-child { margin-top: 0px; } .framer-q8Ttd .framer-uh2i08 > :last-child, .framer-q8Ttd .framer-k3ullq > :last-child { margin-bottom: 0px; } .framer-q8Ttd .framer-k3ullq > * { margin: 0px; margin-bottom: calc(12px / 2); margin-top: calc(12px / 2); } }\"];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 200\n * @framerIntrinsicWidth 400\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"fixed\"]}}}\n * @framerVariables {\"yeAnKbEUZ\":\"title\",\"WuF2iG84P\":\"subtitle\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerComponentViewportWidth true\n */const FramerW7oLCU4_B=withCSS(Component,css,\"framer-q8Ttd\");export default FramerW7oLCU4_B;FramerW7oLCU4_B.displayName=\"Utils/Component Message\";FramerW7oLCU4_B.defaultProps={height:200,width:400};addPropertyControls(FramerW7oLCU4_B,{yeAnKbEUZ:{defaultValue:\"Screen Saver\",displayTextArea:false,title:\"Title\",type:ControlType.String},WuF2iG84P:{defaultValue:\"Set up the component by adding background and bouncer elements to the component properties.\",displayTextArea:false,title:\"Subtitle\",type:ControlType.String}});addFonts(FramerW7oLCU4_B,[{explicitInter:true,fonts:[{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/DpPBYI0sL4fYLgAkX8KXOPVt7c.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/4RAEQdEOrcnDkhHiiCbJOw92Lk.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/1K3W8DizY3v4emK8Mb08YHxTbs.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/tUSCtfYVM1I1IchuyCwz9gDdQ.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/VgYFWiwsAC5OYxAycRXXvhze58.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/DXD0Q7LSl7HEvDzucnyLnGBHM.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/GIryZETIX4IFypco5pYZONKhJIo.woff2\",weight:\"700\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F\",url:\"https://framerusercontent.com/assets/5vvr9Vy74if2I6bQbJvbw7SY1pQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF\",url:\"https://framerusercontent.com/assets/JeYwfuaPfZHQhEG8U5gtPDZ7WQ.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/vQyevYAyHtARFwPqUzQGpnDs.woff2\",weight:\"400\"},{family:\"Inter\",source:\"framer\",style:\"normal\",unicodeRange:\"U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB\",url:\"https://framerusercontent.com/assets/b6Y37FthZeALduNqHicBT6FutY.woff2\",weight:\"400\"}]}],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerW7oLCU4_B\",\"slots\":[],\"annotations\":{\"framerImmutableVariables\":\"true\",\"framerComponentViewportWidth\":\"true\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"fixed\\\"]}}}\",\"framerVariables\":\"{\\\"yeAnKbEUZ\\\":\\\"title\\\",\\\"WuF2iG84P\\\":\\\"subtitle\\\"}\",\"framerIntrinsicWidth\":\"400\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"200\",\"framerDisplayContentsDiv\":\"false\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./W7oLCU4_B.map","/*\n * Utils/Component Message\n *\n * Learn More: https://www.framer.com/asset-urls\n */\n\nexport * from \"https://framerusercontent.com/modules/fMDE7Cqb2uOvQFAHEP2m/cRfVFRl0izzBulKFjOAe/W7oLCU4_B.js\"\nexport { default } from \"https://framerusercontent.com/modules/fMDE7Cqb2uOvQFAHEP2m/cRfVFRl0izzBulKFjOAe/W7oLCU4_B.js\"\n","import{jsx as _jsx}from\"react/jsx-runtime\";import{cloneElement}from\"react\";import UtilsComponentMessage from\"https://framer.com/m/Utils-Component-Message-ZVoG.js@cRfVFRl0izzBulKFjOAe\";export const ComponentMessage=({title,subtitle,style})=>{return /*#__PURE__*/_jsx(UtilsComponentMessage,{yeAnKbEUZ:title,WuF2iG84P:subtitle,style:{width:\"100%\",height:\"100%\",...style}});};/* \n    This function is also used many times to make sure components work even if we set a color style like \"Accent\" on their color properties. We can make this into a utility function.\n*/export const extractRGBColorFromString=str=>{const rgbRegex=/(rgba|rgb)\\(.*?\\)/g;const match=str.match(rgbRegex);return match?match[0]:str;};/*\n    This function makes a connected layer use the sizing of the component it is inside,\n    preventing it from being larger or smaller than the component's size.\n    Use this on layers connected with ControlType.ComponentInstance.\n*/export function styleLayer(layer,style={}){layer=Array.isArray(layer)?layer[0]:layer;let newLayer=layer;const{width,height,...otherStyle}=style;if(layer&&layer.props&&style&&(width||height)){if(typeof layer.type===\"function\"&&typeof layer.props.children===\"object\"){newLayer=/*#__PURE__*/cloneElement(layer,{children:{...layer.props.children,props:{...layer.props.children.props,style:{...layer.props.children.props.style,...width&&{width},...height&&{height},...otherStyle}}}});}else{newLayer=/*#__PURE__*/cloneElement(layer,{style:{...layer.props.style,...width&&{width},...height&&{height},...otherStyle}});}}return newLayer;}\nexport const __FramerMetadata__ = {\"exports\":{\"ComponentMessage\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"extractRGBColorFromString\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"styleLayer\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Utils.map","/*\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,jsxs as _jsxs}from\"react/jsx-runtime\";import{ControlType,addPropertyControls,RenderTarget}from\"framer\";import{motion,useMotionValue,useTransform,animate}from\"framer-motion\";import React,{useCallback,useEffect,useRef,useState}from\"react\";// @ts-expect-error Framer resolves this supported remote component at runtime.\nimport{ComponentMessage}from\"https://framer.com/m/Utils-FINc.js\";var Path;// ------------------------------------------------------------ //\n// INTERFACES\n// ------------------------------------------------------------ //\n(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// 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=`<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>`;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`;// ------------------------------------------------------------ //\n// PROPERTY CONTROLS\n// ------------------------------------------------------------ //\naddPropertyControls(AnimateAlongPath,{content:{type:ControlType.ComponentInstance,title:\"Content\"},scale:{type:ControlType.Number,title:\"Scale\",defaultValue:1,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:\"Preset\",defaultValue:\"loop\",options:[\"spiral\",\"loop\",\"wave\",\"curly\",\"stripes\"],optionTitles:[\"Spiral\",\"Loop\",\"Wave\",\"Curly\",\"Stripes\"],hidden:props=>props.path!==\"preset\"},svg:{title:\"Custom SVG\",type:ControlType.String,defaultValue:loopSvg,hidden:props=>props.path!==\"custom\",displayTextArea:true},showPath:{type:ControlType.Boolean,title:\"Show path\",defaultValue:true},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#666666\",hidden:props=>!props.showPath},direction:{type:ControlType.Enum,title:\"Direction\",defaultValue:\"normal\",options:[\"reverse\",\"normal\"],optionTitles:[\"Left\",\"Right\"],// @ts-expect-error Framer supports native direction icons at runtime.\noptionIcons:[\"direction-left\",\"direction-right\"],displaySegmentedControl:true},rotation:{type:ControlType.Enum,title:\"Rotation\",defaultValue:\"tangent\",options:[\"fixed\",\"tangent\"],optionTitles:[\"Fixed angle\",\"Tangent\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},animation:{type:ControlType.Object,title:\"Animation\",buttonTitle:\"Edit motion\",icon:\"effect\",description:\"More components at [Framer University](https://frameruni.link/cc).\",controls:{loop:{type:ControlType.Boolean,title:\"Playback\",defaultValue:true,enabledTitle:\"Loop\",disabledTitle:\"Once\"},loopType:{type:ControlType.Enum,title:\"Type\",options:[\"repeat\",\"mirror\"],optionTitles:[\"Repeat\",\"Mirror\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\",defaultValue:\"mirror\",hidden:props=>!props.loop},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"tween\",ease:[.44,0,.56,1],duration:3,delay:0}},startDelay:{type:ControlType.Number,title:\"Start delay\",defaultValue:0,min:0,max:30,step:.1,unit:\"s\"}}}});// ------------------------------------------------------------ //\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 AnimateAlongPath(props){const hasChildren=React.Children.count(props.content)>0;const rootRef=useRef(null);const hasStartedRef=useRef(false);const startDelayDeadlineRef=useRef(null);const isOnFramerCanvas=RenderTarget.hasRestrictions();const[isInView,setIsInView]=useState(true);const[isDocumentVisible,setIsDocumentVisible]=useState(typeof document===\"undefined\"||document.visibilityState!==\"hidden\");// Motion values for animation\nconst baseOffset=useMotionValue(0);const pathOffset=useTransform(baseOffset,v=>`${v}%`);// Get the appropriate SVG based on preset or custom\nconst presetSvgLookup={[\"spiral\"]:spiralSvg,[\"loop\"]:loopSvg,[\"wave\"]:waveSvg,[\"curly\"]:curlySvg,[\"stripes\"]:stripesSvg};const svgToRender=props.path===\"preset\"?presetSvgLookup[props.preset]:props.svg;// State to store the extracted path\nconst[extractedPath,setExtractedPath]=React.useState(\"\");useEffect(()=>{const root=rootRef.current;if(!root)return;const observer=new IntersectionObserver(([entry])=>{setIsInView(entry.isIntersecting);});observer.observe(root);const handleVisibility=()=>{setIsDocumentVisible(document.visibilityState!==\"hidden\");};document.addEventListener(\"visibilitychange\",handleVisibility);return()=>{observer.disconnect();document.removeEventListener(\"visibilitychange\",handleVisibility);};},[]);// Function to update path based on container size\nconst updatePath=useCallback(()=>{if(svgToRender&&rootRef.current){const containerWidth=rootRef.current.offsetWidth;const containerHeight=rootRef.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,props.content]);// Animation effect - Separated from path updates\nuseEffect(()=>{// Only prevent animation on Framer Canvas, allow it in Preview\nif(isOnFramerCanvas||!isInView||!isDocumentVisible){baseOffset.stop();return;}let startDelayTimer;const startAnimation=()=>{// Set initial position based on direction\nbaseOffset.set(props.direction===\"reverse\"?100:0);const{delay:interLoopDelay=0,...motionTransition}=props.animation.transition??{};const transition={...motionTransition,delay:0,repeatDelay:props.animation.loop?interLoopDelay:0,repeat:props.animation.loop?props.animation.loopType===\"mirror\"?Infinity:0:0,repeatType:props.animation.loopType===\"mirror\"?\"mirror\":\"loop\"};const from=props.direction===\"reverse\"?100:0;const to=props.direction===\"reverse\"?0:100;// Stop any existing animation\nbaseOffset.stop();if(props.animation.loop){if(props.animation.loopType===\"mirror\"){animate(baseOffset,[from,to],{...transition,repeat:Infinity,repeatType:\"mirror\"});}else if(props.animation.loopType===\"repeat\"){animate(baseOffset,[from,to],{...transition,repeat:Infinity,repeatType:\"loop\",onComplete:()=>{baseOffset.set(from);}});}}else{animate(baseOffset,to,transition);}};const scheduleAnimation=()=>{window.clearTimeout(startDelayTimer);if(hasStartedRef.current){startAnimation();return;}baseOffset.set(props.direction===\"reverse\"?100:0);if(startDelayDeadlineRef.current===null){startDelayDeadlineRef.current=performance.now()+Math.max(0,props.animation.startDelay??0)*1e3;}const remainingDelay=Math.max(0,startDelayDeadlineRef.current-performance.now());startDelayTimer=window.setTimeout(()=>{hasStartedRef.current=true;startAnimation();},remainingDelay);};scheduleAnimation();// Add window resize listener specifically for Framer Preview\nconst handleResize=()=>{if(RenderTarget.current()===RenderTarget.preview){scheduleAnimation();}};window.addEventListener(\"resize\",handleResize);return()=>{window.clearTimeout(startDelayTimer);baseOffset.stop();window.removeEventListener(\"resize\",handleResize);};},[props.direction,props.animation.loop,props.animation.loopType,props.animation.transition,props.animation.startDelay,baseOffset,isInView,isDocumentVisible]);// Effect to handle SVG URL changes and container resizing\nuseEffect(()=>{updatePath();// Set up ResizeObserver with debounced update\nlet resizeTimeout;const resizeObserver=new ResizeObserver(()=>{// Debounce resize updates to prevent excessive recalculations\nclearTimeout(resizeTimeout);resizeTimeout=setTimeout(()=>{updatePath();// For Framer Preview, ensure path is updated without stopping animation\nif(RenderTarget.current()===RenderTarget.preview){const currentOffset=baseOffset.get();baseOffset.set(currentOffset);}},100)// 100ms debounce\n;});if(rootRef.current){resizeObserver.observe(rootRef.current);}// Cleanup observer and timeout on unmount\nreturn()=>{resizeObserver.disconnect();clearTimeout(resizeTimeout);};},[updatePath]);if(!hasChildren){return /*#__PURE__*/_jsx(ComponentMessage,{title:\"Animate Along Path\",subtitle:\"Set up the component by connecting frame to the component or by adding content to the component properties.\"});}return /*#__PURE__*/_jsxs(\"div\",{ref:rootRef,style:{width:\"100%\",height:\"100%\",position:\"relative\"},children:[props.showPath&&extractedPath&&/*#__PURE__*/_jsx(\"svg\",{style:{position:\"absolute\",width:\"100%\",height:\"100%\",top:0,left:0,pointerEvents:\"none\"},children:/*#__PURE__*/_jsx(\"path\",{d:extractedPath,stroke:props.color??\"#666666\",strokeWidth:\"1\",fill:\"none\"})}),/*#__PURE__*/_jsx(motion.div,{style:{position:\"absolute\",offsetPath:`path('${extractedPath}')`,offsetDistance:pathOffset,offsetRotate:props.rotation===\"tangent\"?\"auto\":\"0deg\",scale:props.scale},children:props.content})]});}// -------------------------------------------------------------- //\n// UTILITY FUNCTIONS\n// -------------------------------------------------------------- //\n// Function to scale AND translate SVG path data\nconst scaleAndTranslateSvgPath=(pathString,scale,offsetX,offsetY)=>{if(!pathString||scale<=0)return\"\";const commandRegex=/([MmLlHhVvCcSsQqTtAaZz])([^MmLlHhVvCcSsQqTtAaZz]*)/g;let currentX=0;let currentY=0;let startX=0;let startY=0;const transformedPath=pathString.replace(commandRegex,(_match,command,params)=>{const numbers=params.trim().split(/[\\s,]+/).filter(n=>n!==\"\").map(Number);if(command.toUpperCase()===\"Z\"){currentX=startX;currentY=startY;return command;}if(numbers.length===0)return command;const transformedParams=[];const transformX=x=>x*scale+offsetX;const transformY=y=>y*scale+offsetY;const scaleValue=val=>val*scale;const updateCurrentPoint=(x,y,isRelative)=>{if(isRelative){currentX+=x;currentY+=y;}else{currentX=x;currentY=y;}};switch(command){case\"M\":transformedParams.push(transformX(numbers[0]),transformY(numbers[1]));updateCurrentPoint(numbers[0],numbers[1],false);startX=currentX;startY=currentY;for(let i=2;i<numbers.length;i+=2){transformedParams.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);}break;case\"V\":for(let i=0;i<numbers.length;i++){transformedParams.push(transformY(numbers[i]));updateCurrentPoint(currentX,numbers[i],false);}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){transformedParams.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]));updateCurrentPoint(numbers[i+5],numbers[i+6],false);}break;case\"m\":transformedParams.push(scaleValue(numbers[0]),scaleValue(numbers[1]));updateCurrentPoint(numbers[0],numbers[1],true);startX=currentX;startY=currentY;for(let i=2;i<numbers.length;i+=2){transformedParams.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);}break;case\"v\":for(let i=0;i<numbers.length;i++){transformedParams.push(scaleValue(numbers[i]));updateCurrentPoint(0,numbers[i],true);}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){transformedParams.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]));updateCurrentPoint(numbers[i+5],numbers[i+6],true);}break;}return 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\"\";}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\");}const 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\");let 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{originalWidth=svgWidth;originalHeight=svgHeight;}if(originalWidth<=0||originalHeight<=0){console.error(\"Invalid original SVG dimensions.\");throw new Error(\"Invalid SVG dimensions\");}const scaleX=containerWidth/originalWidth;const scaleY=containerHeight/originalHeight;const scale=Math.min(scaleX,scaleY);const scaledWidth=originalWidth*scale;const scaledHeight=originalHeight*scale;const offsetX=(containerWidth-scaledWidth)/2-viewBoxMinX*scale;const offsetY=(containerHeight-scaledHeight)/2-viewBoxMinY*scale;const 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\"\";}};AnimateAlongPath.displayName=\"Animate Along Path\";\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AnimateAlongPath\",\"slots\":[\"content\"],\"annotations\":{\"framerIntrinsicHeight\":\"200\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerIntrinsicWidth\":\"400\",\"framerDisableUnlink\":\"\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AnimateAlongPath_Prod.map","// Generated by Framer (f9faa6c)\nexport default function metadata(params,activeLocale){return{description:\"Animate Along Path for Framer. Created by Framer University.\",favicon:\"https://framerusercontent.com/assets/5cobUGTEj03dPTNLhGrQTXXW7M.png\",robots:\"max-image-preview:large\",socialImage:\"https://framerusercontent.com/assets/7RFgwBPsUBp29Vd0dCGZmfzDVY.png\",title:\"Animate Along Path by Framer University\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f9faa6c)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"72rtr7\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"1i6nyat\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"15hurun\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-So1lp\",title:siteMetadata(params,activeLocale).title||\"Home\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Generated by Framer (f9faa6c)\nimport siteMetadata from\"#framer/local/siteMetadata/siteMetadata/siteMetadata.js\";export default function metadata(params,activeLocale){return{breakpoints:[{hash:\"1a4pok\",mediaQuery:\"(min-width: 1200px)\"},{hash:\"qtzy34\",mediaQuery:\"(min-width: 810px) and (max-width: 1199.98px)\"},{hash:\"1kkuznn\",mediaQuery:\"(max-width: 809.98px)\"}],description:siteMetadata(params,activeLocale).description,elements:{},robots:\"max-image-preview:large\",serializationId:\"framer-BxeRn\",title:siteMetadata(params,activeLocale).title||\"Banner\",viewport:\"width=device-width\"};}export const metadataVersion=1;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"metadataVersion\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],"mappings":"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"}