{"version":3,"file":"AudioVisualizer.CwUp8UCB.mjs","names":["React.useRef","React.useMemo","React.useRef","React.useMemo"],"sources":["https:/framerusercontent.com/modules/FsHn0mQGCfqbXdRGmerD/0JStY8nIM9lDK0o5fBGf/AmbientMusicBlob.js","https:/framerusercontent.com/modules/RLoUte7bvJlNpMZfNTCC/KIQob1vnvVnLSGslyEAk/AudioVisualizer.js"],"sourcesContent":["// Create a new Framer code component named Ambient Music Blob for the SOUNDRAW CTA.\n// Render one abstract soft-edged blob behind a centered button using an irregular organic SVG shape with cyan/violet/soft-yellow gradient, substantial blur, very low contrast, and a slow ebb-and-flow morph that drifts/dissipates.\n// Keep transparency outside the blob with no bounding box, no lines/ripples/particles/bars, non-interactive behavior, wide shallow suitability, reduced-motion/static attractive still state, and controls for cyanColor, violetColor, accentColor, opacity, blur, and speed.\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,useInView,useReducedMotion}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */export default function AmbientMusicBlob(props){const{cyanColor=\"#00E5FF\",violetColor=\"#8B5CFF\",accentColor=\"#F2E98A\",opacity=.22,blur=24,speed=1}=props;const safeOpacity=Math.max(.03,Math.min(.8,opacity));const safeBlur=Math.max(0,Math.min(80,blur));const safeSpeed=Math.max(.2,Math.min(3,speed));const isStatic=useIsStaticRenderer();const reducedMotion=useReducedMotion();const containerRef=React.useRef(null);const isInView=useInView(containerRef,{amount:.15});const blobPaths=React.useMemo(()=>[\"M 50 12 C 62 10, 78 15, 84 24 C 89 31, 87 42, 79 49 C 71 56, 57 58, 46 56 C 36 55, 24 52, 18 44 C 11 35, 13 23, 22 17 C 30 11, 40 13, 50 12 Z\",\"M 50 13 C 64 9, 79 17, 86 26 C 91 34, 86 45, 77 52 C 69 58, 56 60, 44 57 C 33 55, 21 51, 16 42 C 11 34, 14 22, 24 16 C 33 10, 42 14, 50 13 Z\",\"M 50 11 C 61 8, 76 14, 83 22 C 90 30, 90 42, 82 50 C 73 58, 59 61, 47 59 C 34 56, 22 53, 16 45 C 10 36, 12 24, 21 17 C 30 10, 40 11, 50 11 Z\",\"M 50 12 C 63 10, 80 16, 85 25 C 89 33, 88 44, 80 51 C 72 57, 58 59, 46 57 C 35 55, 23 50, 17 42 C 12 34, 14 23, 23 17 C 31 12, 41 13, 50 12 Z\"],[]);const shouldAnimate=!isStatic&&!reducedMotion&&isInView;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,\"aria-hidden\":\"true\",style:{position:\"relative\",width:\"100%\",height:\"100%\",pointerEvents:\"none\",overflow:\"visible\",opacity:safeOpacity},children:/*#__PURE__*/_jsxs(\"svg\",{width:\"100%\",height:\"100%\",viewBox:\"0 0 100 60\",preserveAspectRatio:\"none\",role:\"presentation\",\"aria-hidden\":\"true\",style:{display:\"block\"},children:[/*#__PURE__*/_jsxs(\"defs\",{children:[/*#__PURE__*/_jsxs(\"linearGradient\",{id:\"ambientMusicBlobGradient\",x1:\"10%\",y1:\"25%\",x2:\"92%\",y2:\"78%\",children:[/*#__PURE__*/_jsx(\"stop\",{offset:\"0%\",stopColor:cyanColor,stopOpacity:.9}),/*#__PURE__*/_jsx(\"stop\",{offset:\"52%\",stopColor:violetColor,stopOpacity:.8}),/*#__PURE__*/_jsx(\"stop\",{offset:\"100%\",stopColor:accentColor,stopOpacity:.7})]}),/*#__PURE__*/_jsx(\"filter\",{id:\"ambientMusicBlobBlur\",x:\"-60%\",y:\"-120%\",width:\"220%\",height:\"320%\",children:/*#__PURE__*/_jsx(\"feGaussianBlur\",{stdDeviation:safeBlur/6})})]}),/*#__PURE__*/_jsx(motion.g,{animate:shouldAnimate?{x:[0,1.6,-1.3,.8,0],y:[0,-1.1,1.4,-.7,0],opacity:[1,.92,.86,.94,1]}:undefined,transition:shouldAnimate?{duration:18/safeSpeed,repeat:Infinity,repeatType:\"loop\",ease:\"easeInOut\"}:undefined,children:/*#__PURE__*/_jsx(motion.path,{d:blobPaths[0],fill:\"url(#ambientMusicBlobGradient)\",filter:\"url(#ambientMusicBlobBlur)\",animate:shouldAnimate?{d:blobPaths}:undefined,transition:shouldAnimate?{duration:16/safeSpeed,repeat:Infinity,repeatType:\"mirror\",ease:\"easeInOut\"}:undefined})})]})});}addPropertyControls(AmbientMusicBlob,{cyanColor:{type:ControlType.Color,title:\"Cyan\",defaultValue:\"#00E5FF\"},violetColor:{type:ControlType.Color,title:\"Violet\",defaultValue:\"#8B5CFF\"},accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#F2E98A\"},opacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:.22,min:.03,max:.8,step:.01},blur:{type:ControlType.Number,title:\"Blur\",defaultValue:24,min:0,max:80,step:1},speed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.2,max:3,step:.05}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AmbientMusicBlob\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AmbientMusicBlob.map","// Create a new self-contained Framer code component named Audio Visualizer for the SOUNDRAW AI music generator hero.\n// Render 5–7 thin vertical equalizer bars aligned to a shared bottom baseline, animating only their heights in staggered looping music-like patterns.\n// Keep the visual lightweight and transparent with cyan-to-violet bar coloring and a gentle glow, no background/card.\n// Expose editable controls for accentColor, secondaryColor, barCount, barWidth, gap, and animationSpeed.\n// Ensure it works at a compact size around 72×48 pixels, scales cleanly when resized, and uses no fetching/external dependencies/stateful browser APIs.\nimport{jsx as _jsx}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer}from\"framer\";import{motion,useInView}from\"framer-motion\";/**\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight fixed\n */export default function AudioVisualizer(props){const{accentColor=\"#00E5FF\",secondaryColor=\"#8B5CFF\",barCount=6,barWidth=4,gap=6,animationSpeed=1,style}=props;const safeBarCount=Math.max(5,Math.min(24,Math.round(barCount)));const safeSpeed=Math.max(.2,animationSpeed);const isStatic=useIsStaticRenderer();const containerRef=React.useRef(null);const isInView=useInView(containerRef,{amount:.2});const patterns=React.useMemo(()=>[[.2,.82,.42,.95,.3,.75,.36],[.55,.28,.88,.38,.8,.34,.62],[.35,.92,.26,.78,.44,.97,.22],[.78,.33,.68,.24,.9,.29,.71]],[]);const bars=React.useMemo(()=>Array.from({length:safeBarCount},(_,index)=>{const pattern=patterns[index%patterns.length];const rotation=index%pattern.length;const keyframes=[...pattern.slice(rotation),...pattern.slice(0,rotation)];return{id:index,keyframes,duration:(1.3+index%3*.25)/safeSpeed,delay:index*.08,staticHeight:`${Math.round(keyframes[2]*100)}%`};}),[patterns,safeBarCount,safeSpeed]);const shouldAnimate=!isStatic&&isInView;return /*#__PURE__*/_jsx(\"div\",{ref:containerRef,style:{position:\"relative\",width:\"100%\",height:\"100%\",display:\"flex\",alignItems:\"flex-end\",justifyContent:\"center\",gap,overflow:\"visible\",...style},children:bars.map(bar=>/*#__PURE__*/_jsx(motion.div,{style:{width:barWidth,minWidth:barWidth,height:bar.staticHeight,borderRadius:999,background:`linear-gradient(180deg, ${secondaryColor} 0%, ${accentColor} 100%)`,boxShadow:`0 0 8px ${accentColor}66, 0 0 14px ${secondaryColor}44`,transformOrigin:\"bottom center\"},animate:shouldAnimate?{height:bar.keyframes.map(value=>`${Math.round(value*100)}%`)}:false,transition:shouldAnimate?{duration:bar.duration,delay:bar.delay,repeat:Infinity,repeatType:\"loop\",ease:\"easeInOut\"}:undefined},bar.id))});}addPropertyControls(AudioVisualizer,{accentColor:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#00E5FF\"},secondaryColor:{type:ControlType.Color,title:\"Second\",defaultValue:\"#8B5CFF\"},barCount:{type:ControlType.Number,title:\"Bars\",defaultValue:6,min:5,max:24,step:1},barWidth:{type:ControlType.Number,title:\"Bar Width\",defaultValue:4,min:1,max:16,step:1,unit:\"px\"},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:6,min:0,max:200,step:1,unit:\"px\"},animationSpeed:{type:ControlType.Number,title:\"Speed\",defaultValue:1,min:.2,max:3,step:.1}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"AudioVisualizer\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"fixed\",\"framerSupportedLayoutWidth\":\"fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./AudioVisualizer.map"],"mappings":"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"}