{"version":3,"file":"FloatingParticlesBackground.fePvcRB7.mjs","names":["React.useContext","React.useMemo","React.Fragment","props","useRef","React.useId","sharedStyle.className","sharedStyle1.className","sharedStyle2.className","sharedStyle3.className","sharedStyle4.className","sharedStyle5.className","sharedStyle6.className","className","Image","\"SoOdu9iwJ\"","\"WrdOumKzd\"","sharedStyle.css","sharedStyle1.css","sharedStyle2.css","sharedStyle3.css","sharedStyle4.css","sharedStyle5.css","sharedStyle6.css","sharedStyle.fonts","sharedStyle1.fonts","sharedStyle2.fonts","sharedStyle3.fonts","sharedStyle4.fonts","sharedStyle5.fonts","sharedStyle6.fonts","props","useRef","useState","useMemo","useCallback","dx","dy","distance"],"sources":["https:/framerusercontent.com/modules/JLdGSzQYgUjU6TvJT8Xb/g5wCOj1S6ZnhT70epxAm/koiNKcxHI.js","https:/framerusercontent.com/modules/qBkhbst9l3bp1CWxJ58I/vAg41nAwgPSIAUsCb58T/FloatingParticlesBackground.js"],"sourcesContent":["// Generated by Framer (4c8a172)\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addFonts,addPropertyControls,ComponentPresetsProvider,ControlType,cx,getFontsFromComponentPreset,getFontsFromSharedStyle,Image,RichText,useComponentViewport,useLocaleInfo,useVariantState,withCSS,withFX}from\"framer\";import{LayoutGroup,motion,MotionConfigContext}from\"framer-motion\";import*as React from\"react\";import{useRef}from\"react\";import*as componentPresets from\"https://framerusercontent.com/modules/ScHyrQ2huZfKWrXNBMKu/AK3diy3oitynsZWDNPjd/componentPresets.js\";import*as sharedStyle5 from\"https://framerusercontent.com/modules/DEoU66e97739x0Z1YExN/9qPROCg0CQEOvS849otb/avw4XAcRp.js\";import*as sharedStyle2 from\"https://framerusercontent.com/modules/WRgA9erhu2e6RuIXOrRS/1LD0R9RCeB26k16mBeln/Eluj2mfHN.js\";import*as sharedStyle1 from\"https://framerusercontent.com/modules/hqw3hBPpphmvTOMOXvl6/dumQ7dPZxNSwHkZVRCxn/IkiUpXA4B.js\";import*as sharedStyle3 from\"https://framerusercontent.com/modules/2D7m8GitwqOxBcXuj64m/I3xfHHH1CUb1DSLfqUX1/jyl5Cryq5.js\";import*as sharedStyle from\"https://framerusercontent.com/modules/Iwsgeo9sfJG4mOSOKf5h/xhvlmUopDGJrlwY3MrDi/Ou5wdEict.js\";import*as sharedStyle4 from\"https://framerusercontent.com/modules/mjor41zU35li7jtVQMlW/RhqtvGVUEL329L6SmEvT/RHXGFYGWl.js\";import*as sharedStyle6 from\"https://framerusercontent.com/modules/IJBfo7NGyWEdXvxXSzXZ/459QLUkO1XxQEetXZZyl/vPzCcVEb_.js\";const MotionDivWithFX=withFX(motion.div);const cycleOrder=[\"BQaMaHWtb\",\"Yatqrbi8e\"];const serializationHash=\"framer-Yinuo\";const variantClassNames={BQaMaHWtb:\"framer-v-11d21rx\",Yatqrbi8e:\"framer-v-1upejo3\"};function addPropertyOverrides(overrides,...variants){const nextOverrides={};variants?.forEach(variant=>variant&&Object.assign(nextOverrides,overrides[variant]));return nextOverrides;}const XIS3_nUiy=undefined;const ThQNmWlxv=undefined;const MtXLNramk=undefined;const JUp8ieLv4=undefined;const PTGzPgt_W=undefined;const numberToPixelString=value=>{if(typeof value!==\"number\")return value;if(!Number.isFinite(value))return undefined;return Math.max(0,value)+\"px\";};const transition1={bounce:.2,delay:0,duration:.4,type:\"spring\"};const animation={opacity:0,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,x:400,y:0};const transition2={delay:0,duration:.4,ease:[.44,0,.56,1],type:\"tween\"};const animation1={opacity:1,rotate:0,rotateX:0,rotateY:0,scale:1,skewX:0,skewY:0,transition:transition2,x:0,y:0};const toResponsiveImage=value=>{if(typeof value===\"object\"&&value!==null&&typeof value.src===\"string\"){return value;}return typeof value===\"string\"?{src:value}:undefined;};const Transition=({value,children})=>{const config=React.useContext(MotionConfigContext);const transition=value??config.transition;const contextValue=React.useMemo(()=>({...config,transition}),[JSON.stringify(transition)]);return /*#__PURE__*/_jsx(MotionConfigContext.Provider,{value:contextValue,children:children});};const Variants=motion.create(React.Fragment);const humanReadableVariantMap={\"Desktop - Testimonial Card\":\"BQaMaHWtb\",\"Mobile - Testimonial Card\":\"Yatqrbi8e\"};const getProps=({height,id,imageTestimonial,padding,testimonial,testimonialAuthorName,testimonialAuthorSCompany,width,...props})=>{return{...props,JUp8ieLv4:testimonialAuthorName??props.JUp8ieLv4??\"Patrick McGuire, CEO\",MtXLNramk:imageTestimonial??props.MtXLNramk,PTGzPgt_W:testimonialAuthorSCompany??props.PTGzPgt_W??/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{children:\"Content\"})}),ThQNmWlxv:testimonial??props.ThQNmWlxv??\"“As a CEO and CRO, I’m in back-to-back meetings with clients and my team. I use AI to optimize all my work. I've used many AI agents, and Radiant is my favourite AI agent for meeting summaries, notes, and tasks.”\",variant:humanReadableVariantMap[props.variant]??props.variant??\"BQaMaHWtb\",XIS3_nUiy:padding??props.XIS3_nUiy??\"80px 40px 80px 40px\"};};const createLayoutDependency=(props,variants)=>{if(props.layoutDependency)return variants.join(\"-\")+props.layoutDependency;return variants.join(\"-\");};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const fallbackRef=useRef(null);const refBinding=ref??fallbackRef;const defaultLayoutId=React.useId();const{activeLocale,setLocale}=useLocaleInfo();const componentViewport=useComponentViewport();const{style,className,layoutId,variant,ThQNmWlxv,MtXLNramk,JUp8ieLv4,XIS3_nUiy,PTGzPgt_W,...restProps}=getProps(props);const{baseVariant,classNames,clearLoadingGesture,gestureHandlers,gestureVariant,isLoading,setGestureState,setVariant,variants}=useVariantState({cycleOrder,defaultVariant:\"BQaMaHWtb\",ref:refBinding,variant,variantClassNames});const layoutDependency=createLayoutDependency(props,variants);const sharedStyleClassNames=[sharedStyle.className,sharedStyle1.className,sharedStyle2.className,sharedStyle3.className,sharedStyle4.className,sharedStyle5.className,sharedStyle6.className];const scopingClassNames=cx(serializationHash,...sharedStyleClassNames);return /*#__PURE__*/_jsx(LayoutGroup,{id:layoutId??defaultLayoutId,children:/*#__PURE__*/_jsx(Variants,{animate:variants,initial:false,children:/*#__PURE__*/_jsx(Transition,{value:transition1,children:/*#__PURE__*/_jsxs(motion.div,{...restProps,...gestureHandlers,className:cx(scopingClassNames,\"framer-11d21rx\",className,classNames),\"data-border\":true,\"data-framer-name\":\"Desktop - Testimonial Card\",layoutDependency:layoutDependency,layoutId:\"BQaMaHWtb\",ref:refBinding,style:{\"--1rznzw1\":numberToPixelString(XIS3_nUiy),\"--border-bottom-width\":\"1px\",\"--border-color\":\"var(--token-d25252d9-0436-4084-9bea-42e1eab1ecf4, color(display-p3 0.058824 0.545098 1))\",\"--border-left-width\":\"1px\",\"--border-right-width\":\"1px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1px\",borderBottomLeftRadius:32,borderBottomRightRadius:32,borderTopLeftRadius:32,borderTopRightRadius:32,...style},...addPropertyOverrides({Yatqrbi8e:{\"data-framer-name\":\"Mobile - Testimonial Card\"}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h2,{className:\"framer-styles-preset-17cqcbu\",\"data-styles-preset\":\"Ou5wdEict\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-1of0zx5, var(--token-1cdabc98-27d8-481f-bc6a-3f8133d688ad, rgb(255, 255, 255)))\"},children:\"“As a CEO and CRO, I’m in back-to-back meetings with clients and my team. I use AI to optimize all my work. I've used many AI agents, and Radiant is my favourite AI agent for meeting summaries, notes, and tasks.”\"})}),className:\"framer-lzzl5m\",\"data-framer-name\":\"testimonial\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"ZmvwNfUGs\",style:{\"--extracted-1of0zx5\":\"var(--token-1cdabc98-27d8-481f-bc6a-3f8133d688ad, rgb(255, 255, 255))\"},text:ThQNmWlxv,variants:{Yatqrbi8e:{\"--extracted-1lwpl3i\":\"var(--token-1cdabc98-27d8-481f-bc6a-3f8133d688ad, rgb(255, 255, 255))\"}},verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({Yatqrbi8e:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.h5,{className:\"framer-styles-preset-1g4i8ey\",\"data-styles-preset\":\"IkiUpXA4B\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-1lwpl3i, var(--token-1cdabc98-27d8-481f-bc6a-3f8133d688ad, rgb(255, 255, 255)))\"},children:\"“As a CEO and CRO, I’m in back-to-back meetings with clients and my team. I use AI to optimize all my work. I've used many AI agents, and Radiant is my favourite AI agent for meeting summaries, notes, and tasks.”\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsxs(MotionDivWithFX,{__framer__animate:{transition:transition2},__framer__animateOnce:true,__framer__enter:animation,__framer__exit:animation1,__framer__styleAppearEffectEnabled:true,__framer__threshold:.5,__perspectiveFX:false,__smartComponentFX:true,__targetOpacity:1,className:\"framer-1k9b9ru\",layoutDependency:layoutDependency,layoutId:\"USu02THZz\",...addPropertyOverrides({Yatqrbi8e:{__framer__styleAppearEffectEnabled:undefined}},baseVariant,gestureVariant),children:[/*#__PURE__*/_jsx(motion.div,{className:\"framer-xhv3em\",\"data-border\":true,layoutDependency:layoutDependency,layoutId:\"rNkWJjAsM\",style:{\"--border-bottom-width\":\"1.5px\",\"--border-color\":\"var(--1xx4wxe, rgba(0, 142.8, 255, 0.8))\",\"--border-left-width\":\"1.5px\",\"--border-right-width\":\"1.5px\",\"--border-style\":\"solid\",\"--border-top-width\":\"1.5px\",borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100},children:/*#__PURE__*/_jsx(Image,{background:{alt:\"\",fit:\"fill\",pixelHeight:4e3,pixelWidth:3e3,sizes:\"45px\",...toResponsiveImage(MtXLNramk)},className:\"framer-qpieet\",\"data-framer-name\":\"Banner\",layoutDependency:layoutDependency,layoutId:\"QM3Xl2BQs\",style:{borderBottomLeftRadius:100,borderBottomRightRadius:100,borderTopLeftRadius:100,borderTopRightRadius:100}})}),/*#__PURE__*/_jsxs(motion.div,{className:\"framer-1h7469e\",layoutDependency:layoutDependency,layoutId:\"ppFos55Ip\",children:[/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1w4pvi9\",\"data-styles-preset\":\"Eluj2mfHN\",style:{\"--framer-text-alignment\":\"center\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.6))\"},children:\"Alex Doe, Freelancer\"})}),className:\"framer-kokvrl\",\"data-framer-name\":\"testimonial_name\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"OlvtrG5kD\",style:{\"--extracted-r6o4lv\":\"rgba(255, 255, 255, 0.6)\"},text:JUp8ieLv4,verticalAlignment:\"top\",withExternalLayout:true,...addPropertyOverrides({Yatqrbi8e:{children:/*#__PURE__*/_jsx(React.Fragment,{children:/*#__PURE__*/_jsx(motion.p,{className:\"framer-styles-preset-1w4pvi9\",\"data-styles-preset\":\"Eluj2mfHN\",style:{\"--framer-text-alignment\":\"left\",\"--framer-text-color\":\"var(--extracted-r6o4lv, rgba(255, 255, 255, 0.6))\"},children:\"Patrick McGuire, CEO\"})})}},baseVariant,gestureVariant)}),/*#__PURE__*/_jsx(ComponentPresetsProvider,{presets:{\"module:NEd4VmDdsxM3StIUbddO/4sbLnuatuUfmOTwFGSJM/YouTube.js:Youtube\":componentPresets.props[\"SoOdu9iwJ\"],\"module:pVk4QsoHxASnVtUBp6jr/qhOaaIFLWIvsdhR6tsCM/CodeBlock.js:default\":componentPresets.props[\"WrdOumKzd\"]},children:/*#__PURE__*/_jsx(RichText,{__fromCanvasComponent:true,children:PTGzPgt_W,className:\"framer-1r3pbvk\",\"data-framer-name\":\"testimonial_name\",fonts:[\"Inter\"],layoutDependency:layoutDependency,layoutId:\"IRk6n5B7W\",stylesPresetsClassNames:{a:\"framer-styles-preset-5ux0ak\",img:\"framer-styles-preset-3fig9o\",p:\"framer-styles-preset-17b8jg5\",table:\"framer-styles-preset-yplivn\"},verticalAlignment:\"top\",withExternalLayout:true})})]})]})]})})})});});const css=[\"@supports (aspect-ratio: 1) { body { --framer-aspect-ratio-supported: auto; } }\",\".framer-Yinuo.framer-cuqxqj, .framer-Yinuo .framer-cuqxqj { display: block; }\",\".framer-Yinuo.framer-11d21rx { align-content: center; align-items: center; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: hidden; padding: var(--1rznzw1); position: relative; width: 950px; will-change: var(--framer-will-change-override, transform); }\",\".framer-Yinuo .framer-lzzl5m { flex: none; height: auto; max-width: 800px; position: relative; white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",\".framer-Yinuo .framer-1k9b9ru { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 16px; height: min-content; justify-content: center; overflow: hidden; padding: 0px; position: relative; width: 100%; }\",\".framer-Yinuo .framer-xhv3em { align-content: center; align-items: center; display: flex; flex: none; flex-direction: row; flex-wrap: nowrap; gap: 10px; height: min-content; justify-content: center; overflow: visible; padding: 4px; position: relative; width: min-content; }\",\".framer-Yinuo .framer-qpieet { flex: none; height: 45px; position: relative; width: 45px; }\",\".framer-Yinuo .framer-1h7469e { align-content: flex-start; align-items: flex-start; display: flex; flex: none; flex-direction: column; flex-wrap: nowrap; gap: 4px; height: min-content; justify-content: center; overflow: var(--overflow-clip-fallback, clip); padding: 0px; position: relative; width: min-content; }\",\".framer-Yinuo .framer-kokvrl, .framer-Yinuo .framer-1r3pbvk { flex: none; height: auto; position: relative; white-space: pre; width: auto; }\",\"@supports (color: color(display-p3 1 1 1)) { .framer-Yinuo { --1xx4wxe: color(display-p3 0.058824 0.545098 1 / 0.8); } }\",\".framer-Yinuo.framer-v-1upejo3 .framer-1h7469e { width: 147px; }\",\".framer-Yinuo.framer-v-1upejo3 .framer-kokvrl, .framer-Yinuo.framer-v-1upejo3 .framer-1r3pbvk { white-space: pre-wrap; width: 100%; word-break: break-word; word-wrap: break-word; }\",...sharedStyle.css,...sharedStyle1.css,...sharedStyle2.css,...sharedStyle3.css,...sharedStyle4.css,...sharedStyle5.css,...sharedStyle6.css,'.framer-Yinuo[data-border=\"true\"]::after, .framer-Yinuo [data-border=\"true\"]::after { content: \"\"; border-width: var(--border-top-width, 0) var(--border-right-width, 0) var(--border-bottom-width, 0) var(--border-left-width, 0); border-color: var(--border-color, none); border-style: var(--border-style, none); width: 100%; height: 100%; position: absolute; box-sizing: border-box; left: 0; top: 0; border-radius: inherit; pointer-events: none; }'];/**\n * This is a generated Framer component.\n * @framerIntrinsicHeight 445\n * @framerIntrinsicWidth 950\n * @framerCanvasComponentVariantDetails {\"propertyName\":\"variant\",\"data\":{\"default\":{\"layout\":[\"fixed\",\"auto\"]},\"Yatqrbi8e\":{\"layout\":[\"fixed\",\"auto\"]}}}\n * @framerVariables {\"ThQNmWlxv\":\"testimonial\",\"MtXLNramk\":\"imageTestimonial\",\"JUp8ieLv4\":\"testimonialAuthorName\",\"XIS3_nUiy\":\"padding\",\"PTGzPgt_W\":\"testimonialAuthorSCompany\"}\n * @framerImmutableVariables true\n * @framerDisplayContentsDiv false\n * @framerAutoSizeImages true\n * @framerComponentViewportWidth true\n * @framerColorSyntax true\n */const FramerkoiNKcxHI=withCSS(Component,css,\"framer-Yinuo\");export default FramerkoiNKcxHI;FramerkoiNKcxHI.displayName=\"Testimonial Card\";FramerkoiNKcxHI.defaultProps={height:445,width:950};addPropertyControls(FramerkoiNKcxHI,{variant:{options:[\"BQaMaHWtb\",\"Yatqrbi8e\"],optionTitles:[\"Desktop - Testimonial Card\",\"Mobile - Testimonial Card\"],title:\"Variant\",type:ControlType.Enum},ThQNmWlxv:{defaultValue:\"“As a CEO and CRO, I’m in back-to-back meetings with clients and my team. I use AI to optimize all my work. I've used many AI agents, and Radiant is my favourite AI agent for meeting summaries, notes, and tasks.”\",title:\"Testimonial\",type:ControlType.String},MtXLNramk:{title:\"Image - Testimonial\",type:ControlType.ResponsiveImage},JUp8ieLv4:{defaultValue:\"Patrick McGuire, CEO\",title:\"Testimonial - Author Name\",type:ControlType.String},XIS3_nUiy:{defaultValue:\"80px 40px 80px 40px\",title:\"Padding\",type:ControlType.Padding},PTGzPgt_W:{defaultValue:\"<p>Content</p>\",title:\"Testimonial - Author's Company\",type:ControlType.RichText}});addFonts(FramerkoiNKcxHI,[{explicitInter:true,fonts:[{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",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\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116\",url:\"https://framerusercontent.com/assets/EOr0mi4hNtlgWNn9if640EZzXCo.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+1F00-1FFF\",url:\"https://framerusercontent.com/assets/Y9k9QrlZAqio88Klkmbd8VoMQc.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0370-03FF\",url:\"https://framerusercontent.com/assets/OYrD2tBIBPvoJXiIHnLoOXnY9M.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",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\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",unicodeRange:\"U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2070, U+2074-207E, U+2080-208E, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD\",url:\"https://framerusercontent.com/assets/GrgcKwrN6d3Uz8EwcLHZxwEfC4.woff2\",weight:\"400\"},{cssFamilyName:\"Inter\",source:\"framer\",style:\"normal\",uiFamilyName:\"Inter\",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\"}]},...getFontsFromSharedStyle(sharedStyle.fonts),...getFontsFromSharedStyle(sharedStyle1.fonts),...getFontsFromSharedStyle(sharedStyle2.fonts),...getFontsFromSharedStyle(sharedStyle3.fonts),...getFontsFromSharedStyle(sharedStyle4.fonts),...getFontsFromSharedStyle(sharedStyle5.fonts),...getFontsFromSharedStyle(sharedStyle6.fonts),...componentPresets.fonts?.[\"WrdOumKzd\"]?getFontsFromComponentPreset(componentPresets.fonts?.[\"WrdOumKzd\"]):[],...componentPresets.fonts?.[\"SoOdu9iwJ\"]?getFontsFromComponentPreset(componentPresets.fonts?.[\"SoOdu9iwJ\"]):[]],{supportsExplicitInterCodegen:true});\nexport const __FramerMetadata__ = {\"exports\":{\"Props\":{\"type\":\"tsType\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"FramerkoiNKcxHI\",\"slots\":[],\"annotations\":{\"framerComponentViewportWidth\":\"true\",\"framerVariables\":\"{\\\"ThQNmWlxv\\\":\\\"testimonial\\\",\\\"MtXLNramk\\\":\\\"imageTestimonial\\\",\\\"JUp8ieLv4\\\":\\\"testimonialAuthorName\\\",\\\"XIS3_nUiy\\\":\\\"padding\\\",\\\"PTGzPgt_W\\\":\\\"testimonialAuthorSCompany\\\"}\",\"framerCanvasComponentVariantDetails\":\"{\\\"propertyName\\\":\\\"variant\\\",\\\"data\\\":{\\\"default\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]},\\\"Yatqrbi8e\\\":{\\\"layout\\\":[\\\"fixed\\\",\\\"auto\\\"]}}}\",\"framerDisplayContentsDiv\":\"false\",\"framerImmutableVariables\":\"true\",\"framerAutoSizeImages\":\"true\",\"framerIntrinsicWidth\":\"950\",\"framerColorSyntax\":\"true\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"445\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","// Floating dust particles background with mouse interaction\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef,useState,useCallback,useMemo}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function FloatingParticlesBackground(props){const{particleCount=50,particleSize=2,particleOpacity=.6,glowIntensity=10,movementSpeed=.5,mouseInfluence=100,backgroundColor=\"#000000\",particleColor=\"#FFFFFF\",mouseGravity=\"none\",gravityStrength=50,glowAnimation=\"ease\",particleInteraction=false,interactionType=\"bounce\"}=props;const canvasRef=useRef(null);const animationRef=useRef();const mouseRef=useRef({x:0,y:0});const particlesRef=useRef([]);const isStatic=useIsStaticRenderer();const[canvasSize,setCanvasSize]=useState({width:800,height:600});const containerRef=useRef(null);const isScrollingRef=useRef(false);const scrollTimeoutRef=useRef();// Detect if device supports touch (mobile/tablet)\nconst isTouchDevice=useMemo(()=>{if(typeof window===\"undefined\")return false;return\"ontouchstart\"in window||navigator.maxTouchPoints>0;},[]);const initializeParticles=useCallback((width,height)=>{return Array.from({length:particleCount},(_,index)=>({x:Math.random()*width,y:Math.random()*height,vx:(Math.random()-.5)*movementSpeed,vy:(Math.random()-.5)*movementSpeed,size:Math.random()*particleSize+1,opacity:particleOpacity,baseOpacity:particleOpacity,mass:Math.random()*.5+.5,id:index}));},[particleCount,particleSize,particleOpacity,movementSpeed]);const redistributeParticles=useCallback((width,height)=>{particlesRef.current.forEach(particle=>{// Redistribute particles proportionally across the new dimensions\nparticle.x=Math.random()*width;particle.y=Math.random()*height;});},[]);const updateParticles=useCallback(canvas=>{const rect=canvas.getBoundingClientRect();const mouse=mouseRef.current;particlesRef.current.forEach((particle,index)=>{// Calculate distance to mouse\nconst dx=mouse.x-particle.x;const dy=mouse.y-particle.y;const distance=Math.sqrt(dx*dx+dy*dy);// Mouse influence and gravity - only apply on non-touch devices\nif(!isTouchDevice&&distance<mouseInfluence&&distance>0){const force=(mouseInfluence-distance)/mouseInfluence;const normalizedDx=dx/distance;const normalizedDy=dy/distance;const gravityForce=force*(gravityStrength*.001);// Apply gravity effect based on mouseGravity setting\nif(mouseGravity===\"attract\"){particle.vx+=normalizedDx*gravityForce;particle.vy+=normalizedDy*gravityForce;}else if(mouseGravity===\"repel\"){particle.vx-=normalizedDx*gravityForce;particle.vy-=normalizedDy*gravityForce;}particle.opacity=Math.min(1,particle.baseOpacity+force*.4);// Apply glow animation based on type\nconst targetGlow=1+force*2;const currentGlow=particle.glowMultiplier||1;if(glowAnimation===\"instant\"){particle.glowMultiplier=targetGlow;}else if(glowAnimation===\"ease\"){// Ease in-out animation\nconst easeSpeed=.15;particle.glowMultiplier=currentGlow+(targetGlow-currentGlow)*easeSpeed;}else if(glowAnimation===\"spring\"){// Spring animation with overshoot\nconst springForce=(targetGlow-currentGlow)*.2;const damping=.85;particle.glowVelocity=(particle.glowVelocity||0)*damping+springForce;particle.glowMultiplier=currentGlow+particle.glowVelocity;}}else{particle.opacity=Math.max(particle.baseOpacity*.3,particle.opacity-.02);// Return glow to normal based on animation type\nconst targetGlow=1;const currentGlow=particle.glowMultiplier||1;if(glowAnimation===\"instant\"){particle.glowMultiplier=targetGlow;}else if(glowAnimation===\"ease\"){const easeSpeed=.08;particle.glowMultiplier=Math.max(1,currentGlow+(targetGlow-currentGlow)*easeSpeed);}else if(glowAnimation===\"spring\"){const springForce=(targetGlow-currentGlow)*.15;const damping=.9;particle.glowVelocity=(particle.glowVelocity||0)*damping+springForce;particle.glowMultiplier=Math.max(1,currentGlow+particle.glowVelocity);}}// Particle interaction\nif(particleInteraction){for(let j=index+1;j<particlesRef.current.length;j++){const other=particlesRef.current[j];const dx=other.x-particle.x;const dy=other.y-particle.y;const distance=Math.sqrt(dx*dx+dy*dy);const minDistance=particle.size+other.size+5;if(distance<minDistance&&distance>0){if(interactionType===\"bounce\"){// Elastic collision\nconst normalX=dx/distance;const normalY=dy/distance;// Relative velocity\nconst relativeVx=particle.vx-other.vx;const relativeVy=particle.vy-other.vy;// Relative velocity in collision normal direction\nconst speed=relativeVx*normalX+relativeVy*normalY;// Only resolve if velocities are separating\nif(speed<0)return;// Collision impulse\nconst impulse=2*speed/(particle.mass+other.mass);// Update velocities\nparticle.vx-=impulse*other.mass*normalX;particle.vy-=impulse*other.mass*normalY;other.vx+=impulse*particle.mass*normalX;other.vy+=impulse*particle.mass*normalY;// Separate particles to prevent overlap\nconst overlap=minDistance-distance;const separationX=normalX*overlap*.5;const separationY=normalY*overlap*.5;particle.x-=separationX;particle.y-=separationY;other.x+=separationX;other.y+=separationY;}else if(interactionType===\"merge\"){// Temporary merge effect - increase glow and size\nconst mergeForce=(minDistance-distance)/minDistance;particle.glowMultiplier=(particle.glowMultiplier||1)+mergeForce*.5;other.glowMultiplier=(other.glowMultiplier||1)+mergeForce*.5;// Attract particles slightly\nconst attractForce=mergeForce*.01;particle.vx+=dx*attractForce;particle.vy+=dy*attractForce;other.vx-=dx*attractForce;other.vy-=dy*attractForce;}}}}// Update position\nparticle.x+=particle.vx;particle.y+=particle.vy;// Add subtle random movement\nparticle.vx+=(Math.random()-.5)*.001;particle.vy+=(Math.random()-.5)*.001;// Damping\nparticle.vx*=.999;particle.vy*=.999;// Boundary wrapping\nif(particle.x<0)particle.x=rect.width;if(particle.x>rect.width)particle.x=0;if(particle.y<0)particle.y=rect.height;if(particle.y>rect.height)particle.y=0;});},[mouseInfluence,mouseGravity,gravityStrength,glowAnimation,particleInteraction,interactionType,isTouchDevice]);const drawParticles=useCallback(ctx=>{ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);particlesRef.current.forEach(particle=>{ctx.save();// Create glow effect with enhanced blur based on interaction\nconst currentGlowMultiplier=particle.glowMultiplier||1;ctx.shadowColor=particleColor;ctx.shadowBlur=glowIntensity*currentGlowMultiplier*2;ctx.globalAlpha=particle.opacity;ctx.fillStyle=particleColor;ctx.beginPath();ctx.arc(particle.x,particle.y,particle.size,0,Math.PI*2);ctx.fill();ctx.restore();});},[particleColor,glowIntensity]);const animate=useCallback(()=>{const canvas=canvasRef.current;if(!canvas)return;const ctx=canvas.getContext(\"2d\");if(!ctx)return;updateParticles(canvas);drawParticles(ctx);animationRef.current=requestAnimationFrame(animate);},[updateParticles,drawParticles]);const handleMouseMove=useCallback(e=>{const canvas=canvasRef.current;if(!canvas)return;const rect=canvas.getBoundingClientRect();mouseRef.current={x:e.clientX-rect.left,y:e.clientY-rect.top};},[]);const resizeCanvas=useCallback(()=>{const canvas=canvasRef.current;const container=containerRef.current;if(!canvas||!container)return;const rect=container.getBoundingClientRect();const newWidth=rect.width;const newHeight=rect.height;canvas.width=newWidth;canvas.height=newHeight;// Update canvas size state and redistribute particles\nsetCanvasSize({width:newWidth,height:newHeight});// Only redistribute if particles exist and size changed significantly\nif(particlesRef.current.length>0){redistributeParticles(newWidth,newHeight);}},[redistributeParticles]);// Effect to reinitialize particles when particle count changes\nuseEffect(()=>{if(isStatic)return;const canvas=canvasRef.current;if(!canvas)return;particlesRef.current=initializeParticles(canvas.width||canvasSize.width,canvas.height||canvasSize.height);},[particleCount,initializeParticles,isStatic,canvasSize]);// Effect to update particle properties when they change\nuseEffect(()=>{if(isStatic)return;particlesRef.current.forEach(particle=>{particle.baseOpacity=particleOpacity;particle.opacity=particleOpacity;// Update velocity based on new movement speed\nconst currentSpeed=Math.sqrt(particle.vx*particle.vx+particle.vy*particle.vy);if(currentSpeed>0){const ratio=movementSpeed/currentSpeed;particle.vx*=ratio;particle.vy*=ratio;}});},[particleOpacity,movementSpeed,isStatic]);useEffect(()=>{if(isStatic)return;resizeCanvas();if(typeof window!==\"undefined\"){// Only add mouse move listener on non-touch devices\nif(!isTouchDevice){window.addEventListener(\"mousemove\",handleMouseMove);}window.addEventListener(\"resize\",resizeCanvas);}// Set up ResizeObserver for container\nif(containerRef.current&&typeof ResizeObserver!==\"undefined\"){const resizeObserver=new ResizeObserver(()=>{resizeCanvas();});resizeObserver.observe(containerRef.current);return()=>{resizeObserver.disconnect();if(typeof window!==\"undefined\"){if(!isTouchDevice){window.removeEventListener(\"mousemove\",handleMouseMove);}window.removeEventListener(\"resize\",resizeCanvas);}};}return()=>{if(typeof window!==\"undefined\"){if(!isTouchDevice){window.removeEventListener(\"mousemove\",handleMouseMove);}window.removeEventListener(\"resize\",resizeCanvas);}};},[handleMouseMove,resizeCanvas,isStatic,isTouchDevice]);useEffect(()=>{if(isStatic)return;animate();return()=>{if(animationRef.current){cancelAnimationFrame(animationRef.current);}};},[animate,isStatic]);if(isStatic){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",backgroundColor,position:\"relative\",overflow:\"hidden\"},children:Array.from({length:Math.min(particleCount,20)}).map((_,i)=>/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",left:`${Math.random()*100}%`,top:`${Math.random()*100}%`,width:`${particleSize}px`,height:`${particleSize}px`,backgroundColor:particleColor,borderRadius:\"50%\",opacity:particleOpacity,boxShadow:`0 0 ${glowIntensity}px ${particleColor}`}},i))});}return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{width:\"100%\",height:\"100%\",backgroundColor,position:\"relative\",overflow:\"hidden\"},children:/*#__PURE__*/_jsx(\"canvas\",{ref:canvasRef,style:{width:\"100%\",height:\"100%\",display:\"block\"}})});}addPropertyControls(FloatingParticlesBackground,{particleCount:{type:ControlType.Number,title:\"Particle Count\",defaultValue:50,min:10,max:1e3,step:1},particleSize:{type:ControlType.Number,title:\"Particle Size\",defaultValue:2,min:1,max:10,step:.5,unit:\"px\"},particleOpacity:{type:ControlType.Number,title:\"Particle Opacity\",defaultValue:.6,min:.1,max:1,step:.1},glowIntensity:{type:ControlType.Number,title:\"Glow Intensity\",defaultValue:10,min:0,max:30,step:1,unit:\"px\"},glowAnimation:{type:ControlType.Enum,title:\"Glow Animation\",options:[\"instant\",\"ease\",\"spring\"],optionTitles:[\"Instant\",\"Ease In-Out\",\"Spring\"],defaultValue:\"ease\",displaySegmentedControl:true},movementSpeed:{type:ControlType.Number,title:\"Movement Speed\",defaultValue:.5,min:.1,max:2,step:.1},mouseInfluence:{type:ControlType.Number,title:\"Mouse Influence\",defaultValue:100,min:50,max:300,step:10,unit:\"px\"},backgroundColor:{type:ControlType.Color,title:\"Background Color\",defaultValue:\"#000000\"},particleColor:{type:ControlType.Color,title:\"Particle Color\",defaultValue:\"#FFFFFF\"},mouseGravity:{type:ControlType.Enum,title:\"Mouse Gravity\",options:[\"none\",\"attract\",\"repel\"],optionTitles:[\"None\",\"Attract\",\"Repel\"],defaultValue:\"none\",displaySegmentedControl:true},gravityStrength:{type:ControlType.Number,title:\"Gravity Strength\",defaultValue:50,min:10,max:200,step:10,hidden:({mouseGravity})=>mouseGravity===\"none\"},particleInteraction:{type:ControlType.Boolean,title:\"Particle Interaction\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},interactionType:{type:ControlType.Enum,title:\"Interaction Type\",options:[\"bounce\",\"merge\"],optionTitles:[\"Bounce\",\"Merge\"],defaultValue:\"bounce\",displaySegmentedControl:true,hidden:({particleInteraction})=>!particleInteraction}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FloatingParticlesBackground\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutHeight\":\"any\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FloatingParticlesBackground.map"],"mappings":"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"}