{"version":3,"file":"FluidText.D0yuEohu.mjs","names":["React.useState","React.useRef","React.Fragment","_Fragment","React.useLayoutEffect","React.useEffect"],"sources":["https:/framerusercontent.com/modules/0XuUEnceJojdJWytv8g4/bdfedF2mfko1NR0tiUM5/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,useReducedMotion,useScroll,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\",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};/*\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 *\n * This intentionally DOES NOT use Motion's\n * viewport.margin / IntersectionObserver rootMargin.\n *\n * Position is calculated directly against the\n * viewport height.\n *\n * Position 100%\n * = bottom of viewport\n *\n * Position 50%\n * = exact vertical center of viewport\n *\n * Threshold controls how much of the element\n * must enter the active region.\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;}/*\n                 * Framer Preview runs inside\n                 * its own viewport/iframe.\n                 *\n                 * clientHeight gives us the\n                 * actual visible viewport of\n                 * that document.\n                 */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;}/*\n                 * Active viewport region:\n                 *\n                 * top    = 0\n                 * bottom = Position %\n                 */const triggerY=viewportHeight*(safePosition/100);/*\n                 * How much of the element\n                 * currently overlaps the\n                 * active viewport region.\n                 */const intersectionTop=Math.max(rect.top,0);const intersectionBottom=Math.min(rect.bottom,triggerY);const intersection=Math.max(0,intersectionBottom-intersectionTop);/*\n                 * Threshold 0:\n                 * any visible pixel is enough.\n                 *\n                 * Threshold 0.2:\n                 * 20% of the element must\n                 * enter the active region.\n                 */const isInside=safeThreshold<=0?intersection>0:intersection>=elementHeight*safeThreshold;/*\n                 * Once = Yes\n                 *\n                 * Latch visible state after\n                 * first activation.\n                 */if(once&&hasTriggeredRef.current){if(!active){setActive(true);}return;}if(isInside&&once){hasTriggeredRef.current=true;setActive(true);return;}setActive(isInside);});};/*\n         * Check immediately.\n         */check();/*\n         * Scroll events work reliably in\n         * Framer Preview because we're\n         * measuring geometry directly\n         * inside the preview document.\n         */window.addEventListener(\"scroll\",check,{passive:true});window.addEventListener(\"resize\",check);/*\n         * Recheck if the text itself\n         * changes dimensions.\n         */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,reducedMotion,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)\"]);if(reducedMotion){return /*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\"},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 style=clone.style;style.position=\"fixed\";style.left=\"-100000px\";style.top=\"0\";style.width=`${width}px`;style.visibility=\"hidden\";style.pointerEvents=\"none\";style.margin=\"0\";style.padding=\"0\";style.border=\"0\";style.boxSizing=\"border-box\";style.fontFamily=computed.fontFamily;style.fontSize=computed.fontSize;style.fontWeight=computed.fontWeight;style.fontStyle=computed.fontStyle;style.fontStretch=computed.fontStretch;style.fontVariant=computed.fontVariant;style.lineHeight=computed.lineHeight;style.letterSpacing=computed.letterSpacing;style.fontKerning=computed.fontKerning;style.fontFeatureSettings=computed.fontFeatureSettings;style.fontVariationSettings=computed.fontVariationSettings;style.textTransform=computed.textTransform;style.textIndent=computed.textIndent;style.textAlign=computed.textAlign;style.whiteSpace=\"pre-wrap\";style.overflowWrap=computed.overflowWrap;style.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;const prefersReducedMotion=useReducedMotion();const reducedMotion=Boolean(prefersReducedMotion);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     * Appear / In View\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     * In View\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);/*\n     * Custom in-view state.\n     *\n     * This replaces whileInView +\n     * viewport.margin entirely.\n     */const customInView=useViewportPositionTrigger(rootRef,canAnimate&&trigger===\"inView\",triggerPosition,viewportAmount,playOnce);/*\n     * ---------------------------------------------------\n     * SCRUB\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 scrubOffset=[`start ${scrubStart}%`,`end ${scrubEnd}%`];const{scrollYProgress:scrubProgress}=useScroll({target:rootRef,offset:scrubOffset});/*\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;const initialY=reducedMotion?\"0%\":`${signedDistance}%`;const initialOpacity=reducedMotion?1:startOpacity;const initialBlur=reducedMotion?0:blur;const unitVariants={hidden:{opacity:initialOpacity,y:initialY,filter:`blur(${initialBlur}px)`},visible:index=>({opacity:1,y:\"0%\",filter:\"blur(0px)\",transition:reducedMotion?{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:scrubProgress,index:index,total:total,stagger:scrubStagger,direction:direction,distance:distance,startOpacity:startOpacity,blur:blur,reducedMotion:reducedMotion,children:value}):/*#__PURE__*/_jsx(motion.span,{custom:index,variants:unitVariants,style:{display:\"inline-block\",willChange:reducedMotion?\"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:scrubProgress,index:index,total:totalLines,stagger:scrubStagger,direction:direction,distance:distance,startOpacity:startOpacity,blur:blur,reducedMotion:reducedMotion,children:line.length>0?line:\"​\"}):/*#__PURE__*/_jsx(motion.span,{custom:index,variants:unitVariants,style:{display:\"inline-block\",whiteSpace:\"pre-wrap\",willChange:reducedMotion?\"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     * APPEAR\n     */if(trigger===\"appear\"){rootMotionProps.animate=animationReady?\"visible\":\"hidden\";}/*\n     * IN VIEW\n     *\n     * Uses our custom viewport-position\n     * detection instead of whileInView.\n     */if(trigger===\"inView\"){rootMotionProps.animate=animationReady&&customInView?\"visible\":\"hidden\";}return /*#__PURE__*/_jsxs(_Fragment,{children:[/*#__PURE__*/_jsx(\"style\",{children:responsiveCSS}),/*#__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,{text:{type:ControlType.String,title:\"Text\",defaultValue:\"Fluid Text\",displayTextArea:true},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\"},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\"},appearAnimation:{type:ControlType.Object,title:\"Animation\",buttonTitle:\"Edit Animation\",icon:\"effect\",hidden(props){return props.appearEnabled!==true;},controls:{split:{type:ControlType.Enum,title:\"Split\",options:[\"chars\",\"words\",\"lines\"],optionTitles:[\"Chars\",\"Words\",\"Lines\"],defaultValue:\"lines\",displaySegmentedControl:true},trigger:{type:ControlType.Enum,title:\"Trigger\",options:[\"appear\",\"inView\",\"scrub\"],optionTitles:[\"Appear\",\"In View\",\"Scrub\"],defaultValue:\"appear\"},mask:{type:ControlType.Boolean,title:\"Mask\",defaultValue:true,enabledTitle:\"On\",disabledTitle:\"Off\"},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;}},direction:{type:ControlType.Enum,title:\"From\",options:[\"fromBottom\",\"fromTop\"],optionTitles:[\"Bottom\",\"Top\"],defaultValue:\"fromBottom\",displaySegmentedControl:true},distance:{type:ControlType.Number,title:\"Offset\",defaultValue:110,min:0,max:300,step:1,unit:\"%\",displayStepper:true},startOpacity:{type:ControlType.Number,title:\"Opacity\",defaultValue:0,min:0,max:1,step:.05,displayStepper:true},blur:{type:ControlType.Number,title:\"Blur\",defaultValue:0,min:0,max:100,step:1,unit:\"px\",displayStepper:true},/*\n             * APPEAR / IN VIEW\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             * IN VIEW\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             * SCRUB\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     * ---------------------------------------------------\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\":{\"framerIntrinsicHeight\":\"80\",\"framerIntrinsicWidth\":\"500\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"* @framerSupportedLayoutWidth any\",\"framerSupportedLayoutHeight\":\"auto\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./FluidText.map"],"mappings":"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"}