{"version":3,"file":"FluidText.CBUNYf3m.mjs","names":["React.useState","React.useRef","React.Fragment","_Fragment","React.useLayoutEffect","React.useEffect","__esmMin","init_npm_react_18_3_1","init_ssg_sandbox_shims","window","x","le","l","_e","p","c","init_jsx_runtime","ce","de","useTransform","useScroll","useSpring","MotionConfig","useReducedMotion","init_framer_motion_DhsWWWsN","motion","init_framer_CaDWdxiz","ControlType","addPropertyControls","RenderTarget","clamp","value","max","min","cssSize","unit","canvasSize","safeValue","canvasWidth","createHash","hash","i","typographyWithoutFontSize","typography","restTypography","getMaskStyle","enabled","safeBleed","bleed","DEFAULT_APPEAR","padding","negativeMargin","useViewportPositionTrigger","active","setActive","hasTriggeredRef","useIsomorphicLayoutEffect","frame","resizeObserver","safePosition","position","safeThreshold","threshold","check","element","ref","viewportHeight","rect","elementHeight","triggerY","intersectionTop","intersectionBottom","intersection","isInside","once","getScrubRange","safeTotal","total","stagger","staggerPercent","duration","start","index","ScrubUnit","props","signedDistance","direction","distance","y","progress","end","opacity","startOpacity","filter","blur","reduceMotion","getGraphemeSegments","Segmenter","segmenter","text","item","result","offset","splitGraphemes","splitWhitespaceTokens","token","measureVisualLines","width","computed","clone","cloneStyle","textNode","graphemes","lineStarts","lastTop","segment","boundary","range","rects","top","previous","lines","line","sameLines","a","b","FluidText","DEFAULT_DESKTOP","DEFAULT_TABLET","DEFAULT_MOBILE","DEFAULT_BREAKPOINTS","DEFAULT_CANVAS_WIDTHS","renderTarget","isCanvas","isStaticTarget","canAnimate","appearEnabled","prefersReducedMotion","respectReducedMotion","appearAnimation","shouldReduceMotion","motionReductionPolicy","rootRef","tabletMax","breakpoints","mobileMax","desktopFontSize","desktop","tabletFontSize","tablet","mobileFontSize","mobile","className","responsiveCSS","canvasSettings","canvasReferenceWidth","canvasWidths","canvasMode","canvasFontSize","textTypography","commonStyle","style","splitMode","trigger","isScrub","mask","maskBleed","animationDelay","transition","playOnce","triggerPosition","viewportAmount","customInView","scrubStart","scrubEnd","scrubStagger","scrubInertia","scrubSmoothness","scrubSpringStiffness","scrubSpringDamping","scrubOffset","scrubProgress","smoothScrubProgress","effectiveScrubProgress","visualLines","setVisualLines","current","cancelled","lastWidth","measure","next","entries","fonts","tag","animationReady","initialY","unitVariants","renderInlineUnit","key","renderChars","tokens","totalChars","charIndex","tokenIndex","chars","char","localIndex","renderWords","totalWords","wordIndex","renderLines","totalLines","renderAnimatedText","Tag","showCanvasOutline","MotionTag","MOTION_TAGS","rootMotionProps","init_FluidText"],"sources":["https:/framerusercontent.com/modules/0XuUEnceJojdJWytv8g4/tZJgnlMPZ4tE5rw0e8h2/FluidText.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import*as React from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,MotionConfig,useReducedMotion,useScroll,useSpring,useTransform}from\"framer-motion\";/*\n * ---------------------------------------------------\n * DEFAULTS\n * ---------------------------------------------------\n */const DEFAULT_DESKTOP={size:5,unit:\"vw\"};const DEFAULT_TABLET={size:6,unit:\"vw\"};const DEFAULT_MOBILE={size:10,unit:\"vw\"};const DEFAULT_BREAKPOINTS={tabletMax:1199,mobileMax:809};const DEFAULT_CANVAS_WIDTHS={desktop:1200,tablet:810,mobile:390};const DEFAULT_APPEAR={split:\"lines\",trigger:\"appear\",respectReducedMotion:true,mask:true,maskBleed:.35,direction:\"fromBottom\",distance:110,startOpacity:0,blur:0,stagger:.08,delay:0,transition:{type:\"tween\",duration:.7,ease:[.22,1,.36,1]},once:true,triggerPosition:85,amount:0,scrubStart:90,scrubEnd:20,scrubStagger:60,scrubInertia:true,scrubSmoothness:60};/*\n * ---------------------------------------------------\n * MOTION TAGS\n * ---------------------------------------------------\n */const MOTION_TAGS={div:motion.div,span:motion.span,p:motion.p,h1:motion.h1,h2:motion.h2,h3:motion.h3,h4:motion.h4,h5:motion.h5,h6:motion.h6};/*\n * ---------------------------------------------------\n * HELPERS\n * ---------------------------------------------------\n */const useIsomorphicLayoutEffect=typeof window!==\"undefined\"?React.useLayoutEffect:React.useEffect;function clamp(value,min,max){if(!Number.isFinite(value))return min;return Math.min(max,Math.max(min,value));}function cssSize(value,unit){const safeValue=typeof value===\"number\"&&Number.isFinite(value)?Math.max(0,value):0;return`${safeValue}${unit}`;}function canvasSize(value,unit,canvasWidth){const safeValue=typeof value===\"number\"&&Number.isFinite(value)?Math.max(0,value):0;if(unit===\"px\"){return safeValue;}return safeValue/100*canvasWidth;}function createHash(value){let hash=2166136261;for(let i=0;i<value.length;i++){hash^=value.charCodeAt(i);hash=Math.imul(hash,16777619);}return(hash>>>0).toString(36);}function typographyWithoutFontSize(typography){if(!typography)return{};const{fontSize,...restTypography}=typography;return restTypography;}/*\n * ---------------------------------------------------\n * MASK\n * ---------------------------------------------------\n */function getMaskStyle(enabled,bleed){if(!enabled){return{overflow:\"visible\"};}const safeBleed=typeof bleed===\"number\"&&Number.isFinite(bleed)?Math.max(0,bleed):DEFAULT_APPEAR.maskBleed;if(safeBleed===0){return{overflow:\"clip\"};}const padding=`${safeBleed}em`;const negativeMargin=`${-safeBleed}em`;return{overflow:\"clip\",paddingTop:padding,paddingBottom:padding,marginTop:negativeMargin,marginBottom:negativeMargin};}/*\n * ---------------------------------------------------\n * CUSTOM IN-VIEW POSITION\n * ---------------------------------------------------\n */function useViewportPositionTrigger(ref,enabled,position,threshold,once){const[active,setActive]=React.useState(false);const hasTriggeredRef=React.useRef(false);useIsomorphicLayoutEffect(()=>{hasTriggeredRef.current=false;if(!enabled){setActive(false);return;}if(typeof window===\"undefined\"){return;}let frame=0;let resizeObserver=null;const safePosition=clamp(position,0,100);const safeThreshold=clamp(threshold,0,1);const check=()=>{cancelAnimationFrame(frame);frame=requestAnimationFrame(()=>{const element=ref.current;if(!element){return;}const viewportHeight=document.documentElement.clientHeight||window.innerHeight;if(viewportHeight<=0){return;}const rect=element.getBoundingClientRect();const elementHeight=Math.max(0,rect.height);if(elementHeight<=0){return;}const triggerY=viewportHeight*(safePosition/100);const intersectionTop=Math.max(rect.top,0);const intersectionBottom=Math.min(rect.bottom,triggerY);const intersection=Math.max(0,intersectionBottom-intersectionTop);const isInside=safeThreshold<=0?intersection>0:intersection>=elementHeight*safeThreshold;if(once&&hasTriggeredRef.current){setActive(true);return;}if(isInside&&once){hasTriggeredRef.current=true;setActive(true);return;}setActive(isInside);});};check();window.addEventListener(\"scroll\",check,{passive:true});window.addEventListener(\"resize\",check);if(typeof ResizeObserver!==\"undefined\"&&ref.current){resizeObserver=new ResizeObserver(check);resizeObserver.observe(ref.current);}return()=>{cancelAnimationFrame(frame);resizeObserver?.disconnect();window.removeEventListener(\"scroll\",check);window.removeEventListener(\"resize\",check);};},[ref,enabled,position,threshold,once]);return active;}/*\n * ---------------------------------------------------\n * SCRUB RANGE\n * ---------------------------------------------------\n */function getScrubRange(index,total,staggerPercent){const safeTotal=Math.max(1,total);const stagger=clamp(staggerPercent,0,100)/100;if(safeTotal<=1){return{start:0,end:1};}const duration=1/(1+(safeTotal-1)*stagger);const start=index*stagger*duration;const end=Math.min(1,start+duration);return{start,end};}function ScrubUnit(props){const{progress,index,total,stagger,direction,distance,startOpacity,blur,reduceMotion,children}=props;const{start,end}=getScrubRange(index,total,stagger);const signedDistance=direction===\"fromBottom\"?distance:-distance;const y=useTransform(progress,[start,end],[`${signedDistance}%`,\"0%\"]);const opacity=useTransform(progress,[start,end],[startOpacity,1]);const filter=useTransform(progress,[start,end],[`blur(${blur}px)`,\"blur(0px)\"]);/*\n     * Reduced Motion:\n     *\n     * Render FINAL scrub state.\n     */if(reduceMotion){return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",transform:\"translateY(0)\",opacity:1,filter:\"blur(0px)\"},children:children});}return /*#__PURE__*/_jsx(motion.span,{style:{display:\"inline-block\",y,opacity,filter,willChange:\"transform, opacity, filter\"},children:children});}function getGraphemeSegments(text){const Segmenter=typeof Intl!==\"undefined\"?Intl.Segmenter:undefined;if(Segmenter){const segmenter=new Segmenter(undefined,{granularity:\"grapheme\"});return Array.from(segmenter.segment(text),item=>({text:item.segment,index:item.index,end:item.index+item.segment.length}));}const result=[];let offset=0;for(const value of Array.from(text)){result.push({text:value,index:offset,end:offset+value.length});offset+=value.length;}return result;}function splitGraphemes(text){return getGraphemeSegments(text).map(item=>item.text);}function splitWhitespaceTokens(text){return text.split(/(\\s+)/u).filter(token=>token.length>0);}/*\n * ---------------------------------------------------\n * VISUAL LINE DETECTION\n * ---------------------------------------------------\n */function measureVisualLines(element,text){if(typeof document===\"undefined\"||typeof window===\"undefined\"){return[text];}if(text.length===0){return[\"\"];}const rect=element.getBoundingClientRect();const width=rect.width;if(!Number.isFinite(width)||width<=0){return text.split(/\\r?\\n/u);}const computed=window.getComputedStyle(element);const clone=document.createElement(\"div\");const cloneStyle=clone.style;cloneStyle.position=\"fixed\";cloneStyle.left=\"-100000px\";cloneStyle.top=\"0\";cloneStyle.width=`${width}px`;cloneStyle.visibility=\"hidden\";cloneStyle.pointerEvents=\"none\";cloneStyle.margin=\"0\";cloneStyle.padding=\"0\";cloneStyle.border=\"0\";cloneStyle.boxSizing=\"border-box\";cloneStyle.fontFamily=computed.fontFamily;cloneStyle.fontSize=computed.fontSize;cloneStyle.fontWeight=computed.fontWeight;cloneStyle.fontStyle=computed.fontStyle;cloneStyle.fontStretch=computed.fontStretch;cloneStyle.fontVariant=computed.fontVariant;cloneStyle.lineHeight=computed.lineHeight;cloneStyle.letterSpacing=computed.letterSpacing;cloneStyle.fontKerning=computed.fontKerning;cloneStyle.fontFeatureSettings=computed.fontFeatureSettings;cloneStyle.fontVariationSettings=computed.fontVariationSettings;cloneStyle.textTransform=computed.textTransform;cloneStyle.textIndent=computed.textIndent;cloneStyle.textAlign=computed.textAlign;cloneStyle.whiteSpace=\"pre-wrap\";cloneStyle.overflowWrap=computed.overflowWrap;cloneStyle.wordBreak=computed.wordBreak;const textNode=document.createTextNode(text);clone.appendChild(textNode);document.body.appendChild(clone);try{const graphemes=getGraphemeSegments(text);const lineStarts=[0];let lastTop=null;for(const segment of graphemes){const value=segment.text;if(value.includes(\"\\n\")){const boundary=segment.end;const previous=lineStarts[lineStarts.length-1];if(boundary>previous){lineStarts.push(boundary);}lastTop=null;continue;}if(/^\\s+$/u.test(value)){continue;}const range=document.createRange();range.setStart(textNode,segment.index);range.setEnd(textNode,segment.end);const rects=range.getClientRects();if(rects.length===0){continue;}const top=rects[0].top;if(lastTop===null){lastTop=top;continue;}if(Math.abs(top-lastTop)>.5){const previous=lineStarts[lineStarts.length-1];if(segment.index>previous){lineStarts.push(segment.index);}lastTop=top;}}const lastStart=lineStarts[lineStarts.length-1];if(lastStart<text.length){lineStarts.push(text.length);}const lines=[];for(let i=0;i<lineStarts.length-1;i++){const start=lineStarts[i];const end=lineStarts[i+1];let line=text.slice(start,end);line=line.replace(/\\r?\\n$/u,\"\");line=line.replace(/[ \\t]+$/u,\"\");lines.push(line);}return lines.length>0?lines:[text];}finally{clone.remove();}}function sameLines(a,b){if(!a){return false;}if(a.length!==b.length){return false;}for(let i=0;i<a.length;i++){if(a[i]!==b[i]){return false;}}return true;}/*\n * ---------------------------------------------------\n * FLUID TEXT\n * ---------------------------------------------------\n *//**\n * FluidText\n *\n * @framerDisableUnlink\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n * @framerIntrinsicWidth 500\n * @framerIntrinsicHeight 80\n */export default function FluidText(props){const{text=\"Fluid Text\",desktop=DEFAULT_DESKTOP,tablet=DEFAULT_TABLET,mobile=DEFAULT_MOBILE,breakpoints=DEFAULT_BREAKPOINTS,canvasMode=\"desktop\",canvasWidths=DEFAULT_CANVAS_WIDTHS,typography={},color=\"#000000\",tag=\"div\",appearEnabled=false,appearAnimation=DEFAULT_APPEAR,showCanvasOutline=false,style}=props;const renderTarget=RenderTarget.current();const isCanvas=renderTarget===RenderTarget.canvas;const isStaticTarget=renderTarget===RenderTarget.canvas||renderTarget===RenderTarget.export||renderTarget===RenderTarget.thumbnail;const canAnimate=appearEnabled&&!isStaticTarget;/*\n     * ---------------------------------------------------\n     * REDUCED MOTION\n     * ---------------------------------------------------\n     */const prefersReducedMotion=useReducedMotion();const respectReducedMotion=appearAnimation?.respectReducedMotion??DEFAULT_APPEAR.respectReducedMotion;const shouldReduceMotion=respectReducedMotion&&prefersReducedMotion===true;/*\n     * Respect:\n     * follows user's reduced-motion preference.\n     *\n     * Ignore:\n     * locally tells Motion to keep animations on.\n     */const motionReductionPolicy=respectReducedMotion?\"user\":\"never\";const rootRef=React.useRef(null);/*\n     * ---------------------------------------------------\n     * BREAKPOINTS\n     * ---------------------------------------------------\n     */const tabletMax=Math.max(1,breakpoints?.tabletMax??DEFAULT_BREAKPOINTS.tabletMax);const mobileMax=Math.min(tabletMax,Math.max(1,breakpoints?.mobileMax??DEFAULT_BREAKPOINTS.mobileMax));/*\n     * ---------------------------------------------------\n     * FONT SIZES\n     * ---------------------------------------------------\n     */const desktopFontSize=cssSize(desktop?.size??DEFAULT_DESKTOP.size,desktop?.unit??DEFAULT_DESKTOP.unit);const tabletFontSize=cssSize(tablet?.size??DEFAULT_TABLET.size,tablet?.unit??DEFAULT_TABLET.unit);const mobileFontSize=cssSize(mobile?.size??DEFAULT_MOBILE.size,mobile?.unit??DEFAULT_MOBILE.unit);/*\n     * ---------------------------------------------------\n     * RESPONSIVE CLASS\n     * ---------------------------------------------------\n     */const styleSignature=[desktopFontSize,tabletFontSize,mobileFontSize,tabletMax,mobileMax].join(\"|\");const className=`bestlooker-fluid-text-${createHash(styleSignature)}`;const responsiveCSS=`\n.${className} {\n    font-size: ${desktopFontSize} !important;\n}\n\n@media (max-width: ${tabletMax}px) {\n    .${className} {\n        font-size: ${tabletFontSize} !important;\n    }\n}\n\n@media (max-width: ${mobileMax}px) {\n    .${className} {\n        font-size: ${mobileFontSize} !important;\n    }\n}\n`;/*\n     * ---------------------------------------------------\n     * CANVAS FONT SIZE\n     * ---------------------------------------------------\n     */let canvasSettings=desktop;let canvasReferenceWidth=canvasWidths?.desktop??DEFAULT_CANVAS_WIDTHS.desktop;if(canvasMode===\"tablet\"){canvasSettings=tablet;canvasReferenceWidth=canvasWidths?.tablet??DEFAULT_CANVAS_WIDTHS.tablet;}if(canvasMode===\"mobile\"){canvasSettings=mobile;canvasReferenceWidth=canvasWidths?.mobile??DEFAULT_CANVAS_WIDTHS.mobile;}const canvasFontSize=canvasSize(canvasSettings?.size??0,canvasSettings?.unit??\"px\",canvasReferenceWidth);/*\n     * ---------------------------------------------------\n     * TYPOGRAPHY\n     * ---------------------------------------------------\n     */const textTypography=typographyWithoutFontSize(typography);const commonStyle={...style,...textTypography,color,margin:0,padding:0,boxSizing:\"border-box\",whiteSpace:\"pre-wrap\",overflowWrap:\"break-word\",wordBreak:\"normal\"};/*\n     * ---------------------------------------------------\n     * ANIMATION SETTINGS\n     * ---------------------------------------------------\n     */const splitMode=appearAnimation?.split??DEFAULT_APPEAR.split;const trigger=appearAnimation?.trigger??DEFAULT_APPEAR.trigger;const isScrub=trigger===\"scrub\";const mask=appearAnimation?.mask??DEFAULT_APPEAR.mask;const maskBleed=Math.max(0,appearAnimation?.maskBleed??DEFAULT_APPEAR.maskBleed);const direction=appearAnimation?.direction??DEFAULT_APPEAR.direction;const distance=Math.max(0,appearAnimation?.distance??DEFAULT_APPEAR.distance);const startOpacity=clamp(appearAnimation?.startOpacity??DEFAULT_APPEAR.startOpacity,0,1);const blur=Math.max(0,appearAnimation?.blur??DEFAULT_APPEAR.blur);/*\n     * ---------------------------------------------------\n     * APPEAR / IN VIEW\n     * ---------------------------------------------------\n     */const stagger=Math.max(0,appearAnimation?.stagger??DEFAULT_APPEAR.stagger);const animationDelay=Math.max(0,appearAnimation?.delay??DEFAULT_APPEAR.delay);const transition=appearAnimation?.transition??DEFAULT_APPEAR.transition;/*\n     * ---------------------------------------------------\n     * IN VIEW\n     * ---------------------------------------------------\n     */const playOnce=appearAnimation?.once??DEFAULT_APPEAR.once;const triggerPosition=clamp(appearAnimation?.triggerPosition??DEFAULT_APPEAR.triggerPosition,1,100);const viewportAmount=clamp(appearAnimation?.amount??DEFAULT_APPEAR.amount,0,1);const customInView=useViewportPositionTrigger(rootRef,canAnimate&&trigger===\"inView\"&&!shouldReduceMotion,triggerPosition,viewportAmount,playOnce);/*\n     * ---------------------------------------------------\n     * SCRUB SETTINGS\n     * ---------------------------------------------------\n     */const scrubStart=clamp(appearAnimation?.scrubStart??DEFAULT_APPEAR.scrubStart,0,100);const scrubEnd=clamp(appearAnimation?.scrubEnd??DEFAULT_APPEAR.scrubEnd,0,100);const scrubStagger=clamp(appearAnimation?.scrubStagger??DEFAULT_APPEAR.scrubStagger,0,100);const scrubInertia=appearAnimation?.scrubInertia??DEFAULT_APPEAR.scrubInertia;const scrubSmoothness=clamp(appearAnimation?.scrubSmoothness??DEFAULT_APPEAR.scrubSmoothness,0,100);/*\n     * ---------------------------------------------------\n     * SCRUB INERTIA\n     * ---------------------------------------------------\n     */const smoothnessRatio=scrubSmoothness/100;const scrubSpringStiffness=650-smoothnessRatio*600;const scrubSpringDamping=2*Math.sqrt(scrubSpringStiffness)*1.05;const scrubOffset=[`start ${scrubStart}%`,`end ${scrubEnd}%`];const{scrollYProgress:scrubProgress}=useScroll({target:rootRef,offset:scrubOffset});const smoothScrubProgress=useSpring(scrubProgress,{stiffness:scrubSpringStiffness,damping:scrubSpringDamping,mass:1,restDelta:5e-4,skipInitialAnimation:true});const effectiveScrubProgress=scrubInertia&&scrubSmoothness>0?smoothScrubProgress:scrubProgress;/*\n     * ---------------------------------------------------\n     * VISUAL LINE SPLITTING\n     * ---------------------------------------------------\n     */const[visualLines,setVisualLines]=React.useState(null);useIsomorphicLayoutEffect(()=>{if(!canAnimate||splitMode!==\"lines\"){setVisualLines(current=>current===null?current:null);return;}const element=rootRef.current;if(!element){return;}let frame=0;let cancelled=false;let lastWidth=element.getBoundingClientRect().width;const measure=()=>{cancelAnimationFrame(frame);frame=requestAnimationFrame(()=>{if(cancelled){return;}const next=measureVisualLines(element,text);setVisualLines(current=>sameLines(current,next)?current:next);lastWidth=element.getBoundingClientRect().width;});};measure();let resizeObserver=null;if(typeof ResizeObserver!==\"undefined\"){resizeObserver=new ResizeObserver(entries=>{const width=entries[0]?.contentRect.width??element.getBoundingClientRect().width;if(Math.abs(width-lastWidth)>.25){lastWidth=width;measure();}});resizeObserver.observe(element);}window.addEventListener(\"resize\",measure);const fonts=document.fonts;if(fonts?.ready){fonts.ready.then(()=>{if(!cancelled){measure();}});}return()=>{cancelled=true;cancelAnimationFrame(frame);resizeObserver?.disconnect();window.removeEventListener(\"resize\",measure);};},[canAnimate,splitMode,text,desktopFontSize,tabletFontSize,mobileFontSize,typography,tag]);const animationReady=splitMode!==\"lines\"||visualLines!==null;/*\n     * ---------------------------------------------------\n     * TIMED VARIANTS\n     * ---------------------------------------------------\n     */const signedDistance=direction===\"fromBottom\"?distance:-distance;/*\n     * When Reduce Motion is respected,\n     * hidden == final state.\n     */const initialY=shouldReduceMotion?\"0%\":`${signedDistance}%`;const initialOpacity=shouldReduceMotion?1:startOpacity;const initialBlur=shouldReduceMotion?0:blur;const unitVariants={hidden:{opacity:initialOpacity,y:initialY,filter:`blur(${initialBlur}px)`},visible:index=>({opacity:1,y:\"0%\",filter:\"blur(0px)\",transition:shouldReduceMotion?{duration:0,delay:0}:{...transition,delay:animationDelay+index*stagger}})};/*\n     * ---------------------------------------------------\n     * INLINE UNIT\n     * ---------------------------------------------------\n     */const renderInlineUnit=(value,index,total,key)=>{return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",verticalAlign:\"bottom\",...getMaskStyle(mask,maskBleed)},children:isScrub?/*#__PURE__*/_jsx(ScrubUnit,{progress:effectiveScrubProgress,index:index,total:total,stagger:scrubStagger,direction:direction,distance:distance,startOpacity:startOpacity,blur:blur,reduceMotion:shouldReduceMotion,children:value}):/*#__PURE__*/_jsx(motion.span,{custom:index,variants:unitVariants,style:{display:\"inline-block\",willChange:shouldReduceMotion?\"auto\":\"transform, opacity, filter\"},children:value})},key);};/*\n     * ---------------------------------------------------\n     * CHARS\n     * ---------------------------------------------------\n     */const renderChars=()=>{const tokens=splitWhitespaceTokens(text);const totalChars=tokens.reduce((total,token)=>{if(/^\\s+$/u.test(token)){return total;}return total+splitGraphemes(token).length;},0);let charIndex=0;return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:tokens.map((token,tokenIndex)=>{if(/^\\s+$/u.test(token)){return /*#__PURE__*/_jsx(React.Fragment,{children:token},`space-${tokenIndex}`);}const chars=splitGraphemes(token);return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",whiteSpace:\"nowrap\"},children:chars.map((char,localIndex)=>{const index=charIndex++;return renderInlineUnit(char,index,totalChars,`char-${tokenIndex}-${localIndex}`);})},`word-${tokenIndex}`);})});};/*\n     * ---------------------------------------------------\n     * WORDS\n     * ---------------------------------------------------\n     */const renderWords=()=>{const tokens=splitWhitespaceTokens(text);const totalWords=tokens.filter(token=>!/^\\s+$/u.test(token)).length;let wordIndex=0;return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",children:tokens.map((token,tokenIndex)=>{if(/^\\s+$/u.test(token)){return /*#__PURE__*/_jsx(React.Fragment,{children:token},`space-${tokenIndex}`);}const index=wordIndex++;return renderInlineUnit(token,index,totalWords,`word-${tokenIndex}`);})});};/*\n     * ---------------------------------------------------\n     * LINES\n     * ---------------------------------------------------\n     */const renderLines=()=>{if(!visualLines){return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{visibility:\"hidden\"},children:text});}const totalLines=visualLines.length;return /*#__PURE__*/_jsx(\"span\",{\"aria-hidden\":\"true\",style:{display:\"block\",width:\"100%\"},children:visualLines.map((line,index)=>/*#__PURE__*/_jsx(\"span\",{style:{display:\"block\",width:\"100%\",...getMaskStyle(mask,maskBleed)},children:isScrub?/*#__PURE__*/_jsx(ScrubUnit,{progress:effectiveScrubProgress,index:index,total:totalLines,stagger:scrubStagger,direction:direction,distance:distance,startOpacity:startOpacity,blur:blur,reduceMotion:shouldReduceMotion,children:line.length>0?line:\"​\"}):/*#__PURE__*/_jsx(motion.span,{custom:index,variants:unitVariants,style:{display:\"inline-block\",whiteSpace:\"pre-wrap\",willChange:shouldReduceMotion?\"auto\":\"transform, opacity, filter\"},children:line.length>0?line:\"​\"})},`line-${index}`))});};const renderAnimatedText=()=>{switch(splitMode){case\"chars\":return renderChars();case\"words\":return renderWords();case\"lines\":return renderLines();default:return renderLines();}};/*\n     * ---------------------------------------------------\n     * CANVAS\n     * ---------------------------------------------------\n     */const Tag=tag;if(isCanvas){return /*#__PURE__*/_jsx(Tag,{ref:rootRef,style:{...commonStyle,fontSize:canvasFontSize,outline:showCanvasOutline?\"1px dashed rgba(0, 153, 255, 0.75)\":\"none\",outlineOffset:\"-1px\"},children:text});}/*\n     * ---------------------------------------------------\n     * ANIMATION DISABLED\n     * ---------------------------------------------------\n     */if(!canAnimate){return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:responsiveCSS}),/*#__PURE__*/_jsx(Tag,{ref:rootRef,className:className,style:commonStyle,children:text})]});}/*\n     * ---------------------------------------------------\n     * ANIMATION ENABLED\n     * ---------------------------------------------------\n     */const MotionTag=MOTION_TAGS[tag];const rootMotionProps=isScrub?{}:{initial:\"hidden\",variants:{hidden:{},visible:{}}};/*\n     * Reduced Motion:\n     *\n     * Appear / In View go directly to\n     * the final visible state.\n     *\n     * Scrub final state is handled\n     * inside ScrubUnit.\n     */if(shouldReduceMotion){if(!isScrub){rootMotionProps.initial=\"visible\";rootMotionProps.animate=\"visible\";}}else{/*\n         * APPEAR\n         */if(trigger===\"appear\"){rootMotionProps.animate=animationReady?\"visible\":\"hidden\";}/*\n         * IN VIEW\n         */if(trigger===\"inView\"){rootMotionProps.animate=animationReady&&customInView?\"visible\":\"hidden\";}}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:responsiveCSS}),/*#__PURE__*/_jsx(MotionConfig,{reducedMotion:motionReductionPolicy,children:/*#__PURE__*/_jsx(MotionTag,{ref:rootRef,className:className,style:commonStyle,\"aria-label\":text,...rootMotionProps,children:renderAnimatedText()})})]});}/*\n * ---------------------------------------------------\n * DEFAULT PROPS\n * ---------------------------------------------------\n */FluidText.defaultProps={text:\"Fluid Text\",desktop:DEFAULT_DESKTOP,tablet:DEFAULT_TABLET,mobile:DEFAULT_MOBILE,breakpoints:DEFAULT_BREAKPOINTS,canvasMode:\"desktop\",canvasWidths:DEFAULT_CANVAS_WIDTHS,typography:{},color:\"#000000\",tag:\"div\",appearEnabled:false,appearAnimation:DEFAULT_APPEAR,showCanvasOutline:false};/*\n * ---------------------------------------------------\n * PROPERTY CONTROLS\n * ---------------------------------------------------\n */addPropertyControls(FluidText,{/*\n     * TEXT\n     */text:{type:ControlType.String,title:\"Text\",defaultValue:\"Fluid Text\",displayTextArea:true},/*\n     * TYPOGRAPHY\n     */typography:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",displayTextAlignment:true,displayFontSize:false,defaultValue:{fontSize:\"60px\",lineHeight:\"1.1em\",letterSpacing:\"0em\",textAlign:\"left\"}},color:{type:ControlType.Color,title:\"Color\",defaultValue:\"#000000\"},/*\n     * TAG\n     */tag:{type:ControlType.Enum,title:\"Tag\",options:[\"div\",\"span\",\"p\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"],optionTitles:[\"Div\",\"Span\",\"Paragraph\",\"H1\",\"H2\",\"H3\",\"H4\",\"H5\",\"H6\"],defaultValue:\"div\"},/*\n     * ---------------------------------------------------\n     * TEXT ANIMATION\n     * ---------------------------------------------------\n     */appearEnabled:{type:ControlType.Boolean,title:\"Text Animation\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"},/*\n     * ---------------------------------------------------\n     * ANIMATION PANEL\n     * ---------------------------------------------------\n     */appearAnimation:{type:ControlType.Object,title:\"Animation\",buttonTitle:\"Edit Animation\",icon:\"effect\",hidden(props){return props.appearEnabled!==true;},controls:{/*\n             * SPLIT\n             */split:{type:ControlType.Enum,title:\"Split\",options:[\"chars\",\"words\",\"lines\"],optionTitles:[\"Chars\",\"Words\",\"Lines\"],defaultValue:\"lines\",displaySegmentedControl:true},/*\n             * TRIGGER\n             */trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"appear\",\"inView\",\"scrub\"],optionTitles:[\"Appear\",\"In View\",\"Scrub\"],defaultValue:\"appear\"},/*\n             * REDUCED MOTION\n             */respectReducedMotion:{type:ControlType.Boolean,title:\"Reduce Motion\",defaultValue:true,enabledTitle:\"Respect\",disabledTitle:\"Ignore\",description:\"Respect shows the final animation state when the visitor prefers reduced motion. Ignore keeps the animation enabled.\"},/*\n             * MASK\n             */mask:{type:ControlType.Boolean,title:\"Mask\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},/*\n             * MASK BLEED\n             */maskBleed:{type:ControlType.Number,title:\"Mask Bleed\",defaultValue:.35,min:0,max:2,step:.05,unit:\"em\",displayStepper:true,hidden(props){return props.mask!==true;}},/*\n             * DIRECTION\n             */direction:{type:ControlType.Enum,title:\"From\",options:[\"fromBottom\",\"fromTop\"],optionTitles:[\"Bottom\",\"Top\"],defaultValue:\"fromBottom\",displaySegmentedControl:true},/*\n             * OFFSET\n             */distance:{type:ControlType.Number,title:\"Offset\",defaultValue:110,min:0,max:300,step:1,unit:\"%\",displayStepper:true},/*\n             * OPACITY\n             */startOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,displayStepper:true},/*\n             * BLUR\n             */blur:{type:ControlType.Number,title:\"Blur\",defaultValue:0,min:0,max:100,step:1,unit:\"px\",displayStepper:true},/*\n             * ---------------------------------------------------\n             * APPEAR / IN VIEW\n             * ---------------------------------------------------\n             */stagger:{type:ControlType.Number,title:\"Stagger\",defaultValue:.08,min:0,max:2,step:.01,unit:\"s\",displayStepper:true,hidden(props){return props.trigger===\"scrub\";}},delay:{type:ControlType.Number,title:\"Delay\",defaultValue:0,min:0,max:10,step:.05,unit:\"s\",displayStepper:true,hidden(props){return props.trigger===\"scrub\";}},transition:{type:ControlType.Transition,title:\"Transition\",defaultValue:{type:\"tween\",duration:.7,ease:[.22,1,.36,1]},hidden(props){return props.trigger===\"scrub\";}},/*\n             * ---------------------------------------------------\n             * IN VIEW\n             * ---------------------------------------------------\n             */triggerPosition:{type:ControlType.Number,title:\"Position\",defaultValue:85,min:1,max:100,step:1,unit:\"%\",displayStepper:true,hidden(props){return props.trigger!==\"inView\";},description:\"Exact vertical viewport position where the animation becomes active.\"},amount:{type:ControlType.Number,title:\"Threshold\",defaultValue:0,min:0,max:1,step:.05,displayStepper:true,hidden(props){return props.trigger!==\"inView\";},description:\"Amount of the text that must enter the active viewport region.\"},once:{type:ControlType.Boolean,title:\"Once\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"Replay\",hidden(props){return props.trigger!==\"inView\";}},/*\n             * ---------------------------------------------------\n             * SCRUB\n             * ---------------------------------------------------\n             */scrubStart:{type:ControlType.Number,title:\"Scrub Start\",defaultValue:90,min:0,max:100,step:1,unit:\"%\",displayStepper:true,hidden(props){return props.trigger!==\"scrub\";},description:\"Animation starts when the top of the text reaches this viewport position.\"},scrubEnd:{type:ControlType.Number,title:\"Scrub End\",defaultValue:20,min:0,max:100,step:1,unit:\"%\",displayStepper:true,hidden(props){return props.trigger!==\"scrub\";},description:\"Animation finishes when the bottom of the text reaches this viewport position.\"},scrubStagger:{type:ControlType.Number,title:\"Scrub Stagger\",defaultValue:60,min:0,max:100,step:1,unit:\"%\",displayStepper:true,hidden(props){return props.trigger!==\"scrub\";},description:\"0% animates all units together. 100% makes them fully sequential.\"},/*\n             * SCRUB INERTIA\n             */scrubInertia:{type:ControlType.Boolean,title:\"Inertia\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\",hidden(props){return props.trigger!==\"scrub\";},description:\"Adds spring smoothing so the animation softly catches up with scrolling.\"},/*\n             * SCRUB SMOOTHNESS\n             */scrubSmoothness:{type:ControlType.Number,title:\"Smoothness\",defaultValue:60,min:0,max:100,step:1,unit:\"%\",displayStepper:true,hidden(props){return props.trigger!==\"scrub\"||props.scrubInertia!==true;},description:\"Higher values create more inertia and a softer trailing response.\"}}},/*\n     * ---------------------------------------------------\n     * DESKTOP\n     * ---------------------------------------------------\n     */desktop:{type:ControlType.Object,title:\"Desktop\",buttonTitle:\"Desktop Size\",controls:{size:{type:ControlType.Number,title:\"Size\",defaultValue:5,min:0,step:.1,displayStepper:true},unit:{type:ControlType.Enum,title:\"Unit\",options:[\"vw\",\"px\"],optionTitles:[\"VW\",\"PX\"],defaultValue:\"vw\",displaySegmentedControl:true}}},/*\n     * ---------------------------------------------------\n     * TABLET\n     * ---------------------------------------------------\n     */tablet:{type:ControlType.Object,title:\"Tablet\",buttonTitle:\"Tablet Size\",controls:{size:{type:ControlType.Number,title:\"Size\",defaultValue:6,min:0,step:.1,displayStepper:true},unit:{type:ControlType.Enum,title:\"Unit\",options:[\"vw\",\"px\"],optionTitles:[\"VW\",\"PX\"],defaultValue:\"vw\",displaySegmentedControl:true}}},/*\n     * ---------------------------------------------------\n     * MOBILE\n     * ---------------------------------------------------\n     */mobile:{type:ControlType.Object,title:\"Mobile\",buttonTitle:\"Mobile Size\",controls:{size:{type:ControlType.Number,title:\"Size\",defaultValue:10,min:0,step:.1,displayStepper:true},unit:{type:ControlType.Enum,title:\"Unit\",options:[\"vw\",\"px\"],optionTitles:[\"VW\",\"PX\"],defaultValue:\"vw\",displaySegmentedControl:true}}},/*\n     * ---------------------------------------------------\n     * BREAKPOINTS\n     * ---------------------------------------------------\n     */breakpoints:{type:ControlType.Object,title:\"Breakpoints\",buttonTitle:\"Edit Breakpoints\",controls:{tabletMax:{type:ControlType.Number,title:\"Tablet ≤\",defaultValue:1199,min:1,max:3e3,step:1,unit:\"px\",displayStepper:true},mobileMax:{type:ControlType.Number,title:\"Mobile ≤\",defaultValue:809,min:1,max:3e3,step:1,unit:\"px\",displayStepper:true}}},/*\n     * ---------------------------------------------------\n     * CANVAS MODE\n     * ---------------------------------------------------\n     */canvasMode:{type:ControlType.Enum,title:\"Canvas Mode\",options:[\"desktop\",\"tablet\",\"mobile\"],optionTitles:[\"Desktop\",\"Tablet\",\"Phone\"],defaultValue:\"desktop\",displaySegmentedControl:true,description:\"Set this separately on each Framer page breakpoint.\"},/*\n     * ---------------------------------------------------\n     * CANVAS WIDTHS\n     * ---------------------------------------------------\n     */canvasWidths:{type:ControlType.Object,title:\"Canvas Widths\",buttonTitle:\"Reference Widths\",controls:{desktop:{type:ControlType.Number,title:\"Desktop\",defaultValue:1200,min:1,max:5e3,step:1,unit:\"px\",displayStepper:true},tablet:{type:ControlType.Number,title:\"Tablet\",defaultValue:810,min:1,max:5e3,step:1,unit:\"px\",displayStepper:true},mobile:{type:ControlType.Number,title:\"Phone\",defaultValue:390,min:1,max:5e3,step:1,unit:\"px\",displayStepper:true}}},/*\n     * ---------------------------------------------------\n     * CANVAS GUIDE + CREDIT\n     * LAST FIELD\n     * ---------------------------------------------------\n     */showCanvasOutline:{type:ControlType.Boolean,title:\"Canvas Guide\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\",description:\"Made by [Bestlooker](https://framer.link/CxdtHWB)\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"FluidText\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"80\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerIntrinsicWidth\":\"500\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FluidText.map"],"mappings":"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"}