{"version":3,"file":"Text_Carousel_1.DUT7UHT0.mjs","names":["useMemo","useState","useRef"],"sources":["https:/framerusercontent.com/modules/rofp3mS0LNY15cjhHzia/mqQEarGIByho1rG31aTv/BlurGradient_Prod.js","https:/framerusercontent.com/modules/1TDJb9TEnEKsnEfWCvOM/NK86baTuenmthpgB5UIm/Text_Carousel_1.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useMemo}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";/**\n * @framerDisableUnlink\n *\n * @framerIntrinsicWidth 240\n * @framerIntrinsicHeight 240\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */function BlurGradient({blur,borderRadius,direction,transition}){const blurSteps=useMemo(()=>[{blur:`${blur/2/2/2/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 1) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 0) 37.5%`},{blur:`${blur/2/2/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 12.5%, rgba(0, 0, 0, 1) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 0) 50%`},{blur:`${blur/2/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 25%, rgba(0, 0, 0, 1) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 0) 62.5%`},{blur:`${blur/2/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 37.5%, rgba(0, 0, 0, 1) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 0) 75%`},{blur:`${blur/2/2/2}px`,gradient:`rgba(0, 0, 0, 0) 50%, rgba(0, 0, 0, 1) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 0) 87.5%`},{blur:`${blur/2/2}px`,gradient:`rgba(0, 0, 0, 0) 62.5%, rgba(0, 0, 0, 1) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 0) 100%`},{blur:`${blur/2}px`,gradient:`rgba(0, 0, 0, 0) 75%, rgba(0, 0, 0, 1) 87.5%, rgba(0, 0, 0, 1) 100%`},{blur:`${blur}px`,gradient:`rgba(0, 0, 0, 0) 87.5%, rgba(0, 0, 0, 1) 100%`}],[blur]);return /*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",inset:0,overflow:\"hidden\"},children:blurSteps.map((step,index)=>/*#__PURE__*/_jsx(motion.div,{transition:transition,initial:{backdropFilter:`blur(${step.blur})`},animate:{backdropFilter:`blur(${step.blur})`},style:{opacity:1,position:\"absolute\",inset:0,zIndex:index+1,maskImage:`linear-gradient(${direction}, ${step.gradient})`,WebkitMaskImage:`linear-gradient(${direction}, ${step.gradient})`,borderRadius:borderRadius,pointerEvents:\"none\"}},index))});}BlurGradient.defaultProps={blur:10,borderRadius:\"0px\",direction:\"toBottom\",transition:{duration:.3}};addPropertyControls(BlurGradient,{blur:{title:\"Blur\",type:ControlType.Number,defaultValue:10,min:0,max:100,step:1,description:\"Large blur values (10<) can impact performance.\"},borderRadius:{title:\"Radius\",type:ControlType.BorderRadius,defaultValue:\"0px\",description:\"Blur Gradient component's parent frame can't have border radius (it will break the component). If you need corner radius, apply it directly to the Blur Gradient component here.\"},direction:{title:\"Direction\",type:ControlType.SegmentedEnum,options:[\"to bottom\",\"to top\",\"to left\",\"to right\"],optionTitles:[\"↓\",\"↑\",\"←\",\"→\"],defaultValue:\"to bottom\"},transition:{type:ControlType.Transition,defaultValue:{duration:.3},title:\"Transition\",description:\"Control how the blur animates when used on hover states or any othe interaction.\\n\\nMore components at [Framer University](https://frameruni.link/cc).\"}});BlurGradient.displayName=\"Blur Gradient\";export default BlurGradient;\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"BlurGradient\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"240\",\"framerIntrinsicWidth\":\"240\",\"framerDisableUnlink\":\"*\",\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./BlurGradient_Prod.map","// WordCarousel.framer.tsx\nimport{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useEffect,useRef,useState}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";// framer-motion accepts a 4-number bezier tuple for `ease`\nconst SWEEP_EASE=[.2,0,.3,.3];const FADE_MS=250// dissolve length\n;const GAP_MS=70// slight pause after fade\n;export default function WordCarousel(props){const{words,sweepMs,holdMs,className=\"\",font,fontSize}=props;const[idx,setIdx]=useState(0);const[fadeOut,setFadeOut]=useState(false);const timer=useRef(null);const fadeTimer=useRef(null);useEffect(()=>{if(!words?.length)return;if(timer.current)window.clearTimeout(timer.current);if(fadeTimer.current)window.clearTimeout(fadeTimer.current);// start fading just before the end of the cycle, then leave a tiny gap\nfadeTimer.current=window.setTimeout(()=>{setFadeOut(true);},Math.max(0,sweepMs+holdMs-FADE_MS-GAP_MS));// switch after fade + gap\ntimer.current=window.setTimeout(()=>{setFadeOut(false);setIdx(i=>(i+1)%words.length);},sweepMs+holdMs+GAP_MS);return()=>{if(timer.current)window.clearTimeout(timer.current);if(fadeTimer.current)window.clearTimeout(fadeTimer.current);};},[idx,words,sweepMs,holdMs]);const word=words?.[idx]??\"\";const gradient=`\n    linear-gradient(in oklch 90deg,\n      #000000 0%,  #000000 30%,\n      #FF0099 35%,\n      #FF0000 45%,\n      #FF4F04 50%,\n      #FFA600 55%,\n      #F8F8F8 60%,\n      #0056FF 65%,\n      #FFFFFF 70%, #FFFFFF 100%\n    )\n  `;// Build typography from Framer Font control (robust to both key shapes)\nconst fontStyle=toFontStyle(font);// Allow explicit fontSize prop to override font control size\nif(typeof fontSize===\"number\"&&fontSize>0){fontStyle.fontSize=fontSize;// preserve relative line-height behavior if not provided\nif(!fontStyle.lineHeight)fontStyle.lineHeight=\"1.2em\";}// Reuse the exact same typography on both layers (no reliance on inheritance)\nconst typography={fontFamily:fontStyle.fontFamily,fontWeight:fontStyle.fontWeight,fontStyle:fontStyle.fontStyle,fontSize:fontStyle.fontSize,lineHeight:fontStyle.lineHeight,letterSpacing:fontStyle.letterSpacing};return /*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",alignItems:\"center\",width:\"100%\",height:\"100%\",overflow:\"hidden\"},children:/*#__PURE__*/_jsxs(\"span\",{\"aria-live\":\"polite\",className:className,style:{position:\"relative\",display:\"inline-block\",whiteSpace:\"nowrap\",...typography},children:[/*#__PURE__*/_jsx(motion.span,{style:{color:\"#000000\",...typography},initial:{opacity:0},animate:{opacity:fadeOut?0:1},transition:fadeOut?{duration:FADE_MS/1e3,ease:\"easeOut\"}:{delay:sweepMs*.8/1e3,duration:.12,ease:\"easeOut\"},children:word},`black-${idx}`),/*#__PURE__*/_jsx(motion.span,{style:{position:\"absolute\",left:0,right:0,top:\"-0.30em\",bottom:\"-0.30em\",paddingTop:\"0.30em\",paddingBottom:\"0.30em\",lineHeight:\"inherit\",pointerEvents:\"none\",backgroundOrigin:\"padding-box\",backgroundImage:gradient,backgroundClip:\"text\",WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\",color:\"transparent\",backgroundRepeat:\"no-repeat\",backgroundSize:\"400% 100%\",willChange:\"background-position, opacity, filter\",// ← motion-blur via CSS var so it animates smoothly\nfilter:\"blur(var(--blur))\",...typography},initial:{backgroundPositionX:\"100%\",opacity:1,[\"--blur\"]:\"4px\"},animate:{backgroundPositionX:\"0%\",opacity:[1,1,0],[\"--blur\"]:[\"4px\",\"0.5px\",\"0px\"]},transition:{backgroundPositionX:{duration:sweepMs/1e3,ease:SWEEP_EASE},opacity:{duration:sweepMs/1e3,times:[0,.985,1],ease:\"linear\"},[\"--blur\"]:{duration:sweepMs/1e3,times:[0,.8,1],ease:\"easeOut\"}},children:word},`overlay-${idx}`)]})});}function toFontStyle(font){if(!font)return{};// Handle both Framer's common shape (fontFamily, fontWeight, ...) and the alternate (family, weight, ...)\nconst fontFamily=font.fontFamily??font.family;const fontWeight=font.fontWeight??font.weight;const fontStyle=font.fontStyle??font.style;const fontSize=font.fontSize??font.size;const lineHeightRaw=font.lineHeight;const letterSpacing=font.letterSpacing;const computedLineHeight=typeof lineHeightRaw===\"number\"&&typeof fontSize===\"number\"?`${lineHeightRaw/100*fontSize}px`:lineHeightRaw;return{fontFamily,fontStyle,fontWeight,fontSize,lineHeight:computedLineHeight,letterSpacing};}/** ---------- Framer Controls ---------- */addPropertyControls(WordCarousel,{words:{type:ControlType.Array,title:\"Words\",propertyControl:{type:ControlType.String,placeholder:\"Word\"},defaultValue:[\"fast\",\"smooth\",\"colorful\",\"crisp\"]},sweepMs:{type:ControlType.Number,title:\"Sweep (ms)\",min:100,max:5e3,step:10,defaultValue:750},holdMs:{type:ControlType.Number,title:\"Hold (ms)\",min:0,max:1e4,step:10,defaultValue:2e3},font:{type:ControlType.Font,title:\"Font\"},fontSize:{type:ControlType.Number,title:\"Font Size\",min:8,max:256,step:1,displayStepper:true,defaultValue:64}});WordCarousel.defaultProps={width:600,height:100,words:[\"Holla\",\"Namaste\",\"Hello\",\"Konichiwa\"],sweepMs:750,holdMs:2e3,fontSize:64};\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"WordCarousel\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Text_Carousel_1.map"],"mappings":"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"}